CGA認証

「CGA認証」の編集履歴(バックアップ)一覧に戻る
CGA認証」を以下のとおり復元します。
*CGA(Cryptographically Generated Address)認証
各ノードは公開鍵暗号の鍵ペアを作成し、DHT等のネットワーク上に保管する。
もしくは、ネットワークに参加する際に、他のノードに作成してもらう。
ハッシュ関数はChordアルゴリズムではSHA-1が利用されることが一般的である。

ノードのIDはノード自身が決めるのではなく、ノードの公開鍵とIPアドレスから一定の処理を行い決定される。
----
ID = H(PubKey) || H(IPAddress)
----
ここでH(x)はハッシュ関数、PubKeyはノードの公開鍵、IPAddressはノードのIPアドレスで、||は連結である。IPv4かIPv6であるかは問わない。
これ以降、ノードは決定されたノードIDを名乗る。
ノードと接続する際、相手ノードに公開鍵とIPアドレスを与える(多くの場合自明となる)。
相手ノードはこれらからIDを再計算し、正しいノードIDであることを確認したら通信を開始する。
これにより勝手なIDを名乗ることができなくなる。とんでもない量の計算によりIDを算出することは不可能ではないが、事実上不可能だといえる。
これによりデータの改竄が困難なものとなる。特定のデータDはSuccessor(H(D))のノードに配置されるため、ノードIDを自由に選べることはデータの改竄や削除を許す可能性があるからだ。
(これにより生成されたIDはあくまで通信相手の識別という低いレイヤーでの使用に限り、掲示板上での個人の識別は、別途公開鍵暗号を利用した署名で行うべきかもしれない。)

復元してよろしいですか?