匿名性について
終端間暗号化
I2Pネットワーク上のノード間の通信は全て終端間暗号化が施されている。そのため、送信者Aと受信者Bがいて、その間に中継するノードを挟んでいても、そのノードには通信内容がわからない。I2Pを使用したアプリケーション(I2PSnarkやI2PHiddenService)についても同様で、Destinationアドレスが各アプリケーション毎に発行されるが、送信者は受信者に正しくDestinationアドレスが伝わっている時、これを使って送信者と受信者はセキュアな終端間暗号化が可能である。
I2Pを通したBitTorrentクライアント
標準のBitTorrentプロトコルは通信の暗号化をサポートしておらず、通信相手のIPアドレスを直接知ることができる。すなわち匿名性を確立するための機構は一切用意されていない。I2Pを通したBitTorrentは、他のI2Pノードと通信するが、互いに通信先は暗号化されたアドレスが通知されるため接続元のIPアドレスを知ることはできない。また、I2Pの特性からBitTorrentに参加しないノードも中継することになるが、中継ノードは通信内容を知ることができないため何のファイルを共有しているのかを知ることもできない。さらに、I2Pを通してBitTorrentでファイル共有する場合に暗号化アドレスを使用するが、このアドレスは任意に変更することが可能であるため、同じアドレスを使い続けることによって共有しているファイルが何であるかを推測されにくい。こうした利点が伴い、高い匿名性とセキュアな通信によるファイル共有が可能である。
国内ノードのみの使用による匿名性評価
ファイル共有をするAとB、そしてAとBがそれぞれ中継するノードが存在し、これら全てのノードが国内のノードであった場合の匿名性を考える。ただし、AとBも互いの発信元が国内であることは知らないこととする。
ノードAは中継ノードを介してノードBと互いに接続する。ノードBも同様に中継ノードを介する。これによってノードAとノードBは互いの発信元を知ることはできない。
中継ノードはランダムに入れ替わり、ノードA側に最も近い中継ノードはノードAの発信元を知ることができるが、ノードAが何の通信をしているかはわからない。同様にノードBに最も近い中継ノードもノードBの通信が何であるかを知ることはできない。このことからノードAとノードBは互いに「同じファイルについてファイル共有している」ということだけを知ることができ、ノードAとノードBそれぞれの最も近い中継ノードは「ノードA/ノードBとつながっている」ことだけしかわからない。最終的にあるファイルについて共有しているという事実を知ることができるのは、ファイル共有の当事者であるノードAとノードBだけである。このようになるのは、ノードAとノードBは互いに終端間暗号化をしているので、中継ノードは一切通信内容を知ることができないためである。よって中継ノードもファイル共有の当事者も国内の発信元であっても、「ファイルXについてファイル共有している」という事実を当事者以外に知ることはできない。
ノードの追跡を考える。ノードAまたはノードBの中継ノードの末端から発信元を追跡していくことでノードAとノードBの発信元が突き止められる可能性がある。しかしI2Pでは全てのノードが持つ中継ノードがランダムに短時間で切り替わるため、現実的に追跡することは難しく、追跡によるノードAとノードBの特定は困難であると考えられる。このことから全ての国内ノードの通信が監視下にあっても、監視者にとっては「暗号化された通信をしている」ことしかわからないため、発信元の追跡は成功しないと考えられる。
悪意あるノードによる監視についてTorとI2Pの対比
Torで(HiddenServiceでない場合)使用者は出口ノードに向けてトラフィックを送信する時、3つのリレーノードを持ち、そのリレーノードはディレクトリサーバーからランダムに選ばれ、短時間でランダムに切り替わる。その時に悪意あるノードが選ばれた場合、通信内容を解読される可能性がある。これは出口ノードと終端間暗号化をせず、オニオンルーティングの特性でPoint-to-Pointの暗号化を行っているためである。I2Pではトラフィックの到達先にデータを送信する際、事前にDestinationアドレスから得られた公開鍵を使って終端間暗号化を行うため、悪意あるノードが選ばれることによる通信内容が解読される恐れはない。
政府や公安が通信の傍受を目的としたリレーノードを設置することがあるが、I2Pではそのような方法をとられても傍受には全く役に立たない。
TorHiddenServiceの場合、送信者は1つのリレーノードを中継して目的のサーバーへアクセスするが、終端間暗号化を行うため鍵配送がセキュアであると仮定した場合リレーノードが悪意を持っていても通信内容が解読されることはない。
最終更新:2016年01月08日 19:44