This post is also available in: English (英語)

概要

Torプロジェクトは、インターネット上で匿名性を保ちたいユーザーが利用できる、もっとも有名なツールの1つを提供しています。Torは善悪さまざまな用途に利用されていますが、企業ネットワークでのTorトラフィックの許可は、さまざまな悪用やセキュリティリスクの懸念をもたらします。

政治活動家はTorで政府の目を逃れ、意思表明をします。サイバー犯罪者はTorで防御をかいくぐり、法執行機関から身を隠します。TorはSilk Roadのようなダークウェブマーケットプレイスの運営を可能にしたことで有名で、顧客は麻薬、武器、偽造身分証明書など、さまざまな違法商品をそこで調達できました。マルウェアの作者はつね日頃から、サービス妨害(DoS)攻撃、隠密偵察、エクスプロイト、コマンド&コントロール通信、データ漏出にTorを使っています。

Torトラフィックのリスクを懸念する企業にとっては、マルウェアのコマンド&コントロール、データ漏出、隠密偵察でのTor使用が、もっとも重要なセキュリティリスクのひとつでしょう。また従業員がTorを使えば、パロアルトネットワークスのDNS SecurityサービスやAdvanced URL Filteringサービスが提供しているようなコンテンツブロックポリシー(アダルトサイトやギャンブルサイトのブロックなど)が回避されてしまいます。さらに、ユーザーがサービスの地理的制約から逃れたり、違法な物品を検閲なしで購入する可能性も生じます。こうしたリスクを避けるには、企業ネットワークでTorをブロックすることが推奨されます。

企業におけるTorトラフィックの監視やブロックの重要性は、私たちが1ヶ月のあいだに、204の顧客ネットワークで、691台のデバイスとのあいだに、661万7,473セッションものTorトラフィックの発生を観測したことからも明らかでしょう。

パロアルトネットワークスの脅威防御には、Torトラフィックのフィルタリングするさい、あわせて使うともっとも効果的なソリューションが2つ含まれています。1つめは弊社で継続的にメンテナンスしている検証済みの組み込み外部ダイナミックリスト「Tor Exit IP addresses」です。この外部ダイナミックリストを使うと、Torの出口ノードとの接続をブロックできます。2つめは弊社のトラフィック分類システムApp-IDで、Torの送受信トラフィックをブロックできます。さらにCortex XDRをお使いであれば、エンドポイント、ネットワーク、またはクラウドにおけるTor関連の脅威に対し、アラートを発報したり、しかるべき対応をとることができます。

Unit 42の関連トピック

VPN

目次

Torとは
ハイレベルなTorのしくみ
Torの利用: よい例・悪い例
Torを使う犯罪者が捕まる理由
Torトラフィックをブロックする方法
結論
謝辞
付録

Torとは

Torネットワークの目的は、インターネットユーザーに匿名通信用のツールを提供することです。Torは「The Onion Router」というソフトウェア名の略です。このソフトウェアを使うことで、Torの「ノード(各ホスト)」は「オニオンルーティング」に参加できるようになります。オニオンルーティングは、匿名通信を可能にする技術の1つです。また「インターネット上の匿名性」は、「あるユーザーの行動とその身元を誰も結びつけられないこと」をさします。たとえば、「あるユーザーがフォーラムをホストしているサーバーに接続し、適当にでっちあげたユーザー名で投稿を公開した」場合、グローバルオブザーバー(ここでは「どこからでも通信を観測できる観察者」の意味)も、フォーラムの運営者も、そのほかのユーザーも、誰もこのユーザーの行動から本当の身元を見分けられない、というのが匿名通信の意味です。

匿名性を保つことがいかに難しいかを理解するため、暴君レモンヘッズの支配する架空の国、レモン国について考えてみましょう。この国ではオレンジ推しやオレンジ語りが忌むべき行為とみなされています。今回のヒロイン、エミリアは、オレンジ好きの小さな反体制グループの一員です。自身の情熱を他者と語り合うため、彼女はpeel-the-orange[.]comというサイトを訪れたいと考えています。

エミリアの友人のひとりであるボブは、peel-the-orange[.]comに接続するさい、匿名性を高める技術をなにも使っていませんでした。ボブはエミリアに、自分のトラフィックはHTTPSで接続しているから暗号化されているし、誰も自分が何をしているのか読みとれないのだと説明していました。ボブにとっては残念なことに、HTTPSはDNS名peel-the-orange[.]comを暗号化しません。つまり、レモン国の秘密警察は、彼がオレンジ愛好家向けサイトを訪れていることを簡単に見抜けたのです。このせいでボブは「悪いレモン市民」のリストに載ってしまいました。

これ以降、グループのメンバーはみんな慎重になりました。エミリアのほかの友人たちは、VPNサーバー経由でトラフィックをやりとりすることで身元を隠そうと、海外のVPNプロバイダを利用しはじめました。このせいで秘密警察による禁止サイトへの接続者の身元特定はかなりむずかしくなりました。

エミリアの友人ジェスは、レモンヘッズの「オレンジシンパ疑い」のリストの上位にいました。ジェスのトラフィックを観察しつづけた秘密警察は、彼女が頻繁に既知のVPNプロバイダに接続していることをつきとめました。たしかにそのVPNプロバイダはジェスの身元保護にひと役買っていたのですが、同時に単一障害点にもなることが明らかになりました。VPNプロバイダなら、賄賂を贈ったり、脅したり、ハッキングしたりすればいい。しかもそれらはレモンヘッズがよく使う手でした。より高度な敵対者(たとえばレモン国の秘密警察)なら、統計的手法にもとづく相関攻撃で、VPNサーバーへの送受信トラフィックを照合することもできるのです。

秘密警察は「オペレーション:スゴイスッパイ」を開始し、VPNプロバイダの複数のサーバーに侵入し、peel-the-orange[.]comにアクセスするすべてのレモン市民の完全なリストを盗み出しました。この結果、ジェスを含むエミリアの友人の多くが「悪いレモン市民」リストに載ってしまいました。さらにレモン政府は反体制派による退廃的オレンジ推しを阻止すべく、既知の国外VPNサーバーIPアドレスへの接続を検閲し始めたのです。

エミリアはこの最後の事件以来とても用心深くなりました。彼女は、たとえ秘密警察がプロキシサーバーやVPNサーバーを侵害しても身の安全を保障できる方法を探しました。さらに、peel-the-orange[.]comサーバーが侵害されても、このサーバーにすら自分の身元を明かさないようにしたいと考えました。

そのうちエミリアはTorを見つけました。これなら匿名性を保てるのでは? ところが、これも万能でないことがすぐにわかります。彼女は数人の知人にTorのことを話したのですが、その知人のひとり、ゴードンが秘密警察に特定されたのです。特定された理由は、ゴードンが「オレンジケーキ」というニックネームをさまざまなサイトで使いまわしていたためでした。さいわい、エミリアは「オレンジガール」というハンドル名をpeel-the-orange[.]comでしか使っていませんでした。

ハイレベルなTorのしくみ

図1を見てください。この図は、「レモンヘッズがネットワークトラフィックを完全にグローバルに可視化しても、複数のTorノードを侵害しても、エミリアが匿名性を保てる理由」を説明するのに役立つ図です。

ここではエミリアがすでに「Torサーキット」を構築済みであるものと仮定しています。Torサーキット、つまり、彼女のコンピュータはすでにメッセージを中継するTorノード(Torソフトウェアが動作しているサーバー)を3つ選び、それぞれのノードとの共有鍵を得ている、と仮定します。

エミリア
図1. 構築済みのTorサーキットでWebサイトに接続する様子をハイレベルで概観したところ

エミリアのコンピュータは、まずプライベートデータを3層で暗号化します(図1のステップ1)。これが「オニオンルーティング」の名前の由来です。エミリアのコンピュータはデータを逆順に暗号化していきます。つまり、はじめに最後の出口(Exit)ノードの鍵(Kn3)、次に中間(Middle)にある中継ノードの鍵(Kn2)、最後に入口のガード(Entry Guard)ノードの鍵(Kn1)で暗号化します。入口ノードがデータを受信し、鍵Kn1でいちばん外側の層の暗号化を解除し、復号したメッセージを中間の中継ノードに送ります。受け取った中継ノードは、鍵Kn2で外側から2番めの層を取り除き、出口ノードに中継します。最後に出口ノードが鍵Kn3でメッセージを復号し、本来のデータをWebサーバー(この例ではpeel-the-orange[.]com)に送ります。このように暗号化を多重化することで、鍵を知るノードのみがメッセージを復号することになります。これにより、通信に関与した人物の情報を制限し、秘密にすることができます。

 列ヘッダのどのノードが行ヘッダのどのノードを知っているかを表すマトリクス
表1. 列ヘッダのどのノードが行ヘッダのどのノードを知っているかを表すマトリクス

表1は「どのノードがほかのどのノードを知っているか」をまとめたものです。入口ノードは「エミリアが誰か」と「エミリアのメッセージを受信する次のノードとなる中間中継ノードはどれか」を知っています。ただし入口ノードからみると、Kn1で復号したメッセージはまだ暗号化されたままだし、最後の出口ノードがどこかや、エミリアの最終目的地がどこかはわかりません。中間にある中継ノードはいちばん情報がすくないノードです。元の送信者が誰かも、最終目的地も分からず、入口ノードと出口ノードのみを知っています。出口ノードは中間にある中継ノードと宛先のサーバーを知っています。宛先のサーバーは出口ノードのみを知っています。

エミリアに戻されるメッセージもこれと同様に、各ノードがエミリアと共有した鍵を使い、暗号化層を重ねて送り返されます。

図2はグローバルオブザーバー(どこからでも通信を観測できる観察者)としてのレモンヘッズを描いたものです。この図はエミリアの行っている通信を観測しているレモンヘッズを赤い矢印で示しています。
図2. グローバルな視点で見たTorネットワークとグローバルオブザーバー

図2はグローバルオブザーバー(どこからでも通信を観測できる観察者)としてのレモンヘッズを描いたものです。エミリアがTorを使っていれば、彼女の入口ノードへの接続しかレモンヘッズには観察できません。たとえレモンヘッズが渡されたメッセージを完全にグローバルな視点から観察できたとしても、そのメッセージは全Torユーザーのトラフィックに混ぜこまれるし、べつのノードに渡されるたびにメッセージの暗号の重なりは変わっていくので、エミリアのメッセージを追跡するのは難しくなります。先に述べたように、仮にエミリアが単一のVPNプロバイダを利用していたのなら、そのVPNプロバイダには彼女がどのサイトを閲覧するのかが分かったでしょう。その場合レモンヘッズも、VPNサーバーを出入りするメッセージを観察することで、エミリアがどのサイトを閲覧するかを特定できていた可能性があります。

そこで疑問なのが「エミリアは身元を明かさずにどうやってTorノードと鍵を共有したのか」ということです。この疑問の答えは2部構成のパズルです。

第1のパズルは、「誰でもすべての通信を読むことができる公衆ネットワーク上で、2つのノードが協力して自分たちだけが知る鍵を作るにはどうしたらよいか」というものです。この答えは「DHE(Diffie-Hellman Ephemeral鍵共有)プロトコル」です。その考えかたはこうです。まず、両者は個別に自分用の秘密を生成し、生成した秘密を組み合わせ、両者だけが計算可能な共有秘密(Kn1)を生成します。実際には通常のDHEに存在する問題点を解消するために認証付きの楕円曲線暗号ベースのECDHE (Elliptic Curve Diffie-Hellman Ephemeral)を使います。

この時点でエミリアは個別にTorノードを訪れて鍵を交換できます。ただしそれでは各Torノードに身元がばれてしまいます。そこで登場するのが第2のパズル、「DHEを使った鍵交換」です。エミリアのコンピュータは3つのノードと直接は通信しません。そのかわり、入口ノードと鍵を交換したら、すべてのメッセージをKn1で暗号化し、入口ノードを介して中継ノードにメッセージを送信します。つまり、中継ノードにわかるのは「入口ノードがどれか」だけで、エミリアについては知りません。同様にして、エミリアのコンピュータはKn2とKn1でDHEメッセージを暗号化し、入口ノードと中継ノードを経由して出口ノードに送信します。

残念ながら、エミリアがTorを知って使い始めたのと同じころ、レモンヘッズは公知のTorノードIPへの接続を検閲し始めました。こうした検閲に対抗するため、有志が秘密のTorブリッジ(公知の入口ノードの私的な置き換え)の運営を始め、一度に数人のユーザーだけに小出しに提供するようになりました。

ところがエミリアと仲間のオレンジ愛好家には不運が続きます。リサーチャーたちがIPv4空間をスキャンすればTorブリッジを発見できることを確認してしまったのです。Torの利用上のすべての問題をここで論じるわけにはいきませんが、そのほかの諸問題についてはDefCon 2022のTorにかんするプレゼンで論じています。

結論を言えば、エミリアのような人がネット上で匿名性を保つには、こうしたいたちごっこを続ける必要があるのです。

Torの利用: よい例・悪い例

インターネットユーザーはTorをさまざまな目的で利用します。そのなかには悪い利用例もあれば、良い利用例もあります。たとえば政治活動家であれば、例のエミリア同様、身元を隠し、政府ににらまれるような活動と結びつけられないようにしたいでしょう。また、居住地域ではとくに違法とされていなくても、プライバシーを保護するために閲覧サイトを秘密にしておきたいユーザーもいるかもしれません。

またなかには、地理的な制約のあるコンテンツにアクセスしたり、政府による検閲や所属機関のコンテンツブロックの回避にTorを使うユーザーもいるでしょう。Advanced URL Filteringをご利用中のお客様であっても、Torトラフィックをブロックする設定にしていなければ、従業員がTorを使ってカテゴリベースフィルタリングを回避するのを止めることはできません。

TorはOnion Serviceでも有名です。Torは内部告発者たちのサイトが、自身の身を隠し、報復されるおそれなく、組織内の不正や不道徳な行為を告発する拠り所にもなっています。Tor Onion Serviceは、接続をTor経由に限定することでIPアドレスを秘匿します。「ユーザーとOnion ServiceがTor経由で接続しあい、中間にあるランデブーポイント(Torノード)で会う」という考えかたです。これらOnion Serviceの目的がすべて違法行為の助長というわけではないのですが、過去の調査では、TorユーザーがTor Onion Serviceの相当数または大多数を違法な目的で確立していることが判明しています。ただしTorの全ユーザーのうち、Onion Serviceに接続しているのは6.7%に過ぎません。ユーザーのほとんど大半はOnion Serviceよりも不正なものである可能性が低いクリアサイトを訪れています。たとえば、100万人以上がTorを使ってFacebookのOnion Serviceを閲覧し、政府が検閲している地域からのアクセスを可能にしています。

攻撃者がTorを活動に利用することもあります。攻撃はふつう偵察から始まります。攻撃者は標的のインフラを探索し、オープンポートや実行中のサービスをスキャンして、潜在的な脆弱性を探します。Torを利用すれば、攻撃者は自身のいる場所を隠し、複数の出口ノードに活動を分散できます。

同様に、攻撃アクターは攻撃の後半部分にもTorを利用できます。たとえば偵察中に見つけた脆弱性の悪用、標的のマシン上の悪意あるコードの更新、コマンド&コントロール通信、データ漏出などです。そのほかの悪い利用例には、DoS攻撃、偽アカウント作成、スパムやフィッシングなどがあげられます。

攻撃者はTorをいろんな方法でランサムウェア攻撃に利用してきました。RyukランサムウェアやEgregorランサムウェアの場合、SystemBCと呼ばれる初期RAT(リモートアクセストロイの木馬)が、Tor Onion Serviceをコマンド&コントロール通信のバックドアに使っていました。コマンド&コントロールでのTor Onion Service利用はボットの構築でも有用です。たとえば弊社の各種製品でTorへの接続をブロックでもしないかぎり、テイクダウンは難しいし、アクセス性も維持できます。Gold Waterfall脅威グループDarkSideランサムウェアをインストールするさい、Torを使ってバックドア通信を行っていました。DarkSideRanzy Lockerに関連した窃取データをホストしているリークサイトでもTor Onion Serviceが使われていました。このほか、DoppelPaymerTorの決済サイトを使って身代金を集めていましたし、私たちUnit 42も、リークサイトにTor Onion Serviceを使うCubaランサムウェアや、Torブラウザのダウンロード指示が入った身代金要求メモを標的に送り、それをファイルアクセス復旧で使うBlueSkyランサムウェアに関するレポートを最近公開しています。

Torの利用がサーバーやパソコンを狙うマルウェアばかりとはかぎりません。ある種のAndroid用マルウェアは、Tor Onion Serviceをコマンド&コントロールサーバーに使ってテイクダウンされにくいようにしています。

このほか、さまざまな悪意のあるスパムメッセージの送信にTorが使われていることを発見したリサーチャーもいます。それらはたいてい、コメントや出会い系スパムの形をとっていました。またこうしてTor経由で送られるメールのなかには、AgentTesla RATの配布や、Adobeをテーマにしたフィッシングメール、新型コロナウイルス(COVID-19)に関連したローン詐欺など、深刻な脅威が含まれていることも、筆者らは確認済みです。

Torを使う犯罪者が捕まる理由

たしかにTorはほかの大多数のソリューションと比べて優れた匿名性を提供してくれますが、完璧ではありません。

2013年に、あるハーバード大学の学生が、期末試験を受けたくなくて爆破予告を送りつけたことがありました。この学生は自分の身元がわからないようにTor経由で匿名メールプロバイダに接続し、このメールプロバイダを使って爆破予告を送りました。Torの使いかた自体は適切でしたが、この学生はハーバード大学の無線LANネットワークからTorに接続するという大きなミスを犯していました。Torは「あるユーザーが何をしているか」は隠しますが、「そのユーザーがTorを使っているという事実」については隠さないのです。当局はメールヘッダから誰かがTor経由でメールを送ったことを突き止めました。そこからネットワークログを調べ、大学がメールを受け取った時刻にTorに接続した学生がいなかったかどうかを確認したのです。そこから点と点を結んで、犯人が見つかり、学生は刑事責任を問われることになりました。

Ross Ulbrichtも、Torを適切に使っていたものの、オペミスで逮捕に至ったひとりです。彼はかの悪名高きOnion Service、「Silk Road」の生みの親でした。Silk Roadは当時もっとも有名なダークウェブマーケットで、売り手はそこで麻薬、偽札、偽造した身分証明書類、銃器などの商品を提供していました。FBIは早い段階から、「Altoid」というハンドル名を使う人物が、Silk Roadマーケットプレイスの宣伝のためにサクラの工作(astroturfing)を行っていたことを突き止めました。8ヶ月後、Ulbrichtはこのハンドル名とrosulbricht@gmail[.]comという連絡先で「ベンチャーが支援するビットコインのスタートアップ企業」に協力できるIT専門家を募集する求人広告を出しました。その後FBIは、Ulbrichtが使ったVPNサーバーのログと、彼のGmailアドレスのGoogleのアクセスログの両方にアクセスできたとされています。どちらの記録もサンフランシスコのインターネットカフェを指していたことから同氏の逮捕にいたりました。(Ulbrichtのミスは、最初の例でゴードンが犯したミスに似ています。ゴードンは、複数のサービスで「オレンジケーキ」というハンドル名を使いまわしていたために「悪いレモン市民」リストに載ってしまっています)。

なお、Torの匿名性を解除したい攻撃者は、JavaScriptの利用不正Torノードの設置といった方法を使うこともできます(そしてこれらはいま、実際に行われている可能性があります)。以上をまとめると、「Torは一定の匿名性は提供するものの、ユーザーのオペミスで『身バレ』することはあるし、監視側の決意のほどとリソースしだいでは特定される可能性はある」ということです。

Torトラフィックをブロックする方法

表2 攻撃アクターによるTorの利用形態とそれらに対する防止手段。「パート1*」、「パート2*」のセルは、2つのソリューションを合わせて使って組織を保護する必要があることを意味する
表2. 攻撃アクターによるTorの利用形態とそれらに対する防止手段。「パート1*」、「パート2*」のセルは、2つのソリューションを合わせて使って組織を保護する必要があることを意味する

Torネットワークとやりとりするトラフィックを止める場合、公開されたTorのIPをブロックする方法と、Torのアプリケーショントラフィックを特定してブロックする方法とがあります。表2は、攻撃アクターによる利用形態それぞれについて、これらのブロックのしくみのユースケースをまとめたものです。まず、既知の出口ノードIPリストを使うことで、偵察、エクスプロイト、コマンド&コントロール通信、データ漏出、DoS攻撃などのTorからの攻撃をブロックできます。また、既知の入口ノードIPリストを使うことで、自社のユーザーとそのマシンからTorへのトラフィック送信を止め、データ漏出、コマンド&コントロール通信、地域による通信制限の回避、コンテンツブロックの回避、.onionサイトへのアクセスを防げます。

なお、Torのブリッジノード(非公開で一時的に設置される入口ノード)のリストは不明なので、入口ノードのIPベースブロックはソリューションとしては不完全です。ただし、パロアルトネットワークス製品の場合は、トラフィック分類システムApp-IDを使ってTorトラフィックを直接検出・ブロックできます。App-IDは、既知の入口ノードやブリッジノードのIPのほかに、使われている暗号スイートやデータパケットのサイズなど、接続時の特徴を見てTorトラフィックを識別します。

攻撃者はTorネットワークや侵害マシンからデータ漏出やコマンド&コントロール通信を行うことがあります。このためこうした攻撃の阻止には、出口IPベースのブロック、トラフィック解析ベースのブロックの両方を行うのが最適です。

パロアルトネットワークスでは、一般公開されたTorの出口IPをすべて集め、それぞれのIPを使うTorサーキットを組んで動作テストをしています。こうして確認された稼働中の既知Tor出口ノードのリストが、弊社製品に組み込みの定義済みTor Exit IP address外部ダイナミックリストになります。

私たちは、Tor Exit IP address外部ダイナミックリストとApp-IDを使い、お客様環境の204のネットワークで、ネットワーク内にある691台のデバイスが、1ヶ月に661万7,473セッションのTorトラフィックを発生させている様子を観測しました。

Torトラフィックのブロックだけでなく、Cortex XDRなどのエンドポイント保護製品を活用すれば、Torベースの脅威からさらに組織を保護できます。Cortex XDRは「ユーザーとエンティティの行動分析(User and Entity Behavior Analytics: UEBA)」、エンドポイント検出とレスポンス(Endpoint Detection and Response: EDR)、ネットワーク検出とレスポンス(Network Detection and Response: NDR)、クラウド監査ログをもとに以下の活動を検出します。

結論

Torはユーザーに匿名性を提供してくれ、ユーザーはそれを善悪両方の目的に利用できます。Torは圧政下の政治活動家を支援し、プライバシーを向上させ、内部告発サイトを保護する一方で、隠密偵察やデータ漏出、地域的制限回避、コンテンツブロック回避、ダークウェブの違法マーケットプレイス運営など、さまざまな悪質活動にも役立ちます。

Torはサイバー犯罪者に悪意のある目的で使われることが多いので、企業環境ではTorトラフィックをブロックすることが推奨されます。Torの利用試行はよくあることです。私たちは、1ヶ月のあいだに、204の顧客ネットワーク上で、691台のデバイスから、661万7,473件のTorセッションが発生したようすを確認しています。パロアルトネットワークスの脅威防御には、Torトラフィックのフィルタリングするさい、あわせて使うともっとも効果的なソリューションが2つ含まれています。1つめは弊社で継続的にメンテナンスしている検証済みの組み込み外部ダイナミックリスト、Tor Exit IP addressesです。この外部ダイナミックリストを使うとTorの出口ノードへの接続をブロックできます。2つめは弊社のトラフィック分類システムApp-IDで、組織ネットワーク内のTorトラフィックをブロックできます。さらにCortex XDRをお使いであれば、エンドポイントデバイス、ネットワーク、またはクラウドにおけるTor関連の活動に対し、アラートを発報したり、しかるべき対応をとることもできます。

謝辞

Michael Giuntoli氏、Yue Guan氏、Russell Holloway氏、Erez Levy氏、Daiping Liu氏、Erica Naone氏、Jason Reverri氏、Siddhart Shibiraj氏、Zachary Weinberg氏、Zhibin Zhang氏、Jimmy Chen氏には本稿についての貴重なご意見をいただきました。

付録: Diffie-Hellman Ephemeral (DHE) 鍵共有の詳細

図3. エミリアのコンピュータとTor入口ノード間の鍵共有のための基本的DHEプロトコルのしくみ。なお実際には、ノード認証をともなうECDHE (楕円曲線DHE鍵共有)が使われる
図3. エミリアのコンピュータとTor入口ノード間の鍵共有のための基本的DHEプロトコルのしくみ。なお実際には、ノード認証をともなうECDHE (楕円曲線DHE鍵共有)が使われる

図3はDHEプロトコルを説明したものです。まず両者は、個別に自分用の秘密(ランダムに選択したaとb)を生成し、これらを組み合わせることで両者だけが知る共有秘密(Kn1)を生成する必要があります。これにあたり、エミリアは公開される大きな素数gとpを選び、秘密aと対になる公開のA(=gamod p)を計算して入口ノードに送ります。入口ノードは、自分用の秘密bと対になる公開のB(=gbmod p)を、エミリアの公開した素数gとpから計算します。このとき、公開されたBからKn1(=Bamod p)を計算できるのはエミリアだけで、公開されたAからKn1(=Abmod p)を計算できるのは入口ノードだけ、というのがポイントです。これは、((ga)b = (gb)a)であることを利用しています。

DHEには2つ欠点があります。1つめの欠点は計算量が多いことです。このため実際には、楕円曲線暗号をベースとした、より高度なECDHEと呼ばれる鍵共有プロトコルが使われています。2つめの欠点は素のDHEプロトコルに対しては中間者攻撃(MitM)が可能なことです。DHEプロトコルではすべてのメッセージが公開されていることがその理由です。たとえばレモンヘッズは、エミリアに対しては入口ノードのふりをして鍵を生成・交換し、並行して本当の入口ノードに対してエミリアのふりをして別の鍵を生成・交換することが可能です。こうしたMitM攻撃に対抗するためにTorは認証つきのDHEを使っています。Torネットワークの場合、ユーザーが複数の既知のディレクトリオーソリティにアクセスし、ノードのIDと証明書を取得することでTorノードを認証します。

Enlarged Image