ノードの認証

「ノードの認証」の編集履歴(バックアップ)一覧はこちら

ノードの認証」(2014/03/05 (水) 22:40:24) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

*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はあくまで通信相手の識別という低いレイヤーでの使用に限り、掲示板上での個人の識別は、別途公開鍵暗号を利用した署名で行うべきかもしれない。)
*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はあくまで通信相手の識別という低いレイヤーでの使用に限り、掲示板上での個人の識別は、別途公開鍵暗号を利用した署名で行うべきかもしれない。)

表示オプション

横に並べて表示:
変化行の前後のみ表示: