回線の構築
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/04/09 06:56 UTC 版)
以下は、TorクライアントAlice(発信元)から、オニオンルータBob、Carolまでの回線を構築する際の説明である。 Aliceは、あらかじめ得ているディレクトリリストの中から、無作為的にBobとCarolを選択する(実際は最初のノードは2、3ヶ月同じ)。 Alice→Bob: Alice は create cell(セルに回線構築要求コマンドを乗せたもの)を送信し、回線構築の要求を行うこのとき、Alice は今までに使われていない circID C A B {\displaystyle C_{AB}} を発行する ペイロードは Bob のオニオンキーで暗号化された、DH ハーフハンドシェイクを含んでいる ( g x {\displaystyle g^{x}} ) Bob→Alice: Bob は created cell(セルに構築完了を通知するためのコマンドを乗せたもの)の中に g y {\displaystyle g^{y}} と共通鍵 K = g x y {\displaystyle K=g^{xy}} のハッシュを積んで送るAliceとBobは共通鍵 K 1 = g x 1 y 1 {\displaystyle K_{1}=g^{x1y1}} を共有できた 以降、Alice-Bob間の通信はこの共通鍵で暗号化されて行われる Alice→Bob: Alice は relay extend cell(セルにサーキットを延長する要求を乗せたもの)を送信するこの中に次の OR (Carol) のアドレスが含まれており、Carol のオニオンキーで暗号化された g x 2 {\displaystyle g^{x2}} も含まれる Bob→Carol: Bob はハーフハンドシェイクを create cell に入れ、Carolに送信するこのとき、Bob は今までに使われていない circID C B C {\displaystyle C_{BC}} を発行する Carol→Bob: created cell に共通鍵のハッシュを積んで送るBob は C A B {\displaystyle C_{AB}} と C B C {\displaystyle C_{BC}} を対応付けている Bob→Alice: Carol が created cell を返した場合、ペイロードを relay extended cell に入れて Alice に返すAlice と Carol は共通鍵 K 2 = g x 2 y 2 {\displaystyle K_{2}=g^{x2y2}} を共有できた 以上の手続きは一方向エンティティ認証、すなわち、Alice は Bob を知っているが、Alice は公開鍵を使っていないので、Bob は Alice が誰なのか知らないということを達成している。一方向鍵認証も達成しており、Alice と Bob は鍵について合意しており、Alice は Bob のみがその鍵を知っていることを知っていることを意味している。前方秘匿性とキーの新鮮さの保持にも成功していて、これにより、鍵共有プロトコルでセッションキーを生成した際に、のちに秘密鍵の安全性が破れたとしてもセッションキーの安全性が保たれることが保証される。 Alice-Bob間、Bob-Carol間の共通鍵はそれぞれAliceとBob、BobとCarolしか知らないので、データを盗聴されることなく、中継により匿名性を得ることができる。 セッション鍵交換のためにDiffie-Hellman鍵交換方式が用いられ、通信の暗号化としてはAESが使用される。オニオンサーキット構築を含めたTorノード間の全通信は、外部からの盗聴や改竄を防ぐために、TLSによる通信の上で行われる。
※この「回線の構築」の解説は、「Tor」の解説の一部です。
「回線の構築」を含む「Tor」の記事については、「Tor」の概要を参照ください。
- 回線の構築のページへのリンク