HOPRベーシック:匿名ルーティング

ビニール(vinyl)
HOPR Japanese
Published in
Mar 10, 2022

今回は、HOPRの基本を解説するシリーズの3話目です。これまでのエピソードはこちら(エピソード1「HOPRについて」)こちら(エピソード2「メタデータについて」)です。

前回は、私たちがオンラインで何かをするたびに、膨大な量の接続メタデータが作成されることを学びました。このメタデータは、インターネット上とインターネット外の両方で、私たちのすべての活動に関するプロファイルを構築するために使用することができます。

これはプライバシーにとって大きな問題ですが、どうすれば解決できるのでしょうか。メタデータは、インターネットが機能する上で不可欠な要素です。しかし、メタデータはインターネットの仕組みに不可欠なものであり、これを無効にするのは簡単ではありません。

今回のエピソードでは、HOPRのようなネットワークでデータを匿名でルーティングするための基本的な方法を学びます。

匿名メッセージのパラドックス

前回の封筒の話に戻りますが、郵便で友人にメッセージを送るとして、それを配達してくれる人を信用できないとします。どうやって秘密を守るか?1つの方法は、あなたとその友人だけが知っている暗号でメッセージを書くことです。そうすれば、たとえ誰かが封筒を開けても、中のメッセージは無意味なものになります。これは、エンド・ツー・エンドのデータ暗号化とほぼ同じです。

しかし、前回、問題はデータではなく、メタデータであることを確認しました。もし、あなたが友人に手紙を書いたことを誰にも知られないようにする必要があるとしたらどうでしょう?コードによるアプローチはうまくいきません。もし、配送先の住所をコードで書いたら、その手紙は目的地には届きません。

1つの解決策は、複数の人を経由して手紙を送ることで、送り主と送り先を偽ることです。ロシア人形のように、封筒の束を用意し、その中に手紙を入れる。その1つ1つが、次の連鎖の人に宛てたものである。誰かが小包を受け取ると、一番外側の封筒を開けて、残りの小包を次の住所に送ります。これが、あなたの友人が最後の封筒、つまりメッセージの入った封筒を受け取るまで続くのです。一通の配達を見ただけでは、それが宛先なのか、それとも単なる連鎖なのか、誰もわからないでしょう。

チェーン上の各人が暗号レイヤーを1つ削除してから、それを渡す。誰も自分がチェーンのどこにいるのか正確に知ることはできません。

これは、Torプロジェクト(TorはThe Onion Routerの略)のようなプラットフォームで使用されている、オニオンルーティングの仕組みの基本的なアナロジーです(ご存じでしょう)。オニオンルーティングでは、封筒は実際には暗号化の層であり、誰も複数の層を開くことはできませんし、メッセージの経路を先読みしてスパイすることもできません(または、経路をたどることも)。データを受け取るとき、あなたはそれがどのノードから来たのか、そして次にどのノードに行くのかだけを知っています。

このように、ある受信者から次の受信者にメッセージを渡すプロセスを「中継」と呼びます。HOPRの名前の由来でもあるのですが、データはある人から次の人へと「ホップ」して目的地に到達するため、このように呼ばれています。中継者の集まり全体をネットワークと呼び、ネットワーク上の各ポイントをノードと呼びます。

これは非常に優れたシステムで、人間にとって、誰が誰にメッセージを送っているかを追跡するのは、複雑すぎます。しかし、十分な解析力があれば、このようなネットワークをクラックすることは可能です。

ネットワークの活動を追跡できれば、ノード間のパターンを見つけることができるようになります。ChaoがBettyからデータ・パケットを受け取り、次にDymtroにパケットを送れば、それらはすべて同じチェーンの一部であると推測できます。このような推論を十分に行えば、ネットワークのプライバシーを破壊することができます。Betty、Chao、Dymtro(あるいは3人とも)が攻撃者であれば、これはさらに簡単です。

つまり、2種類の攻撃者から同時に保護する必要があるのです。外部からすべてのネットワーク活動を見ることができる人物と、1つまたは複数の正直なノードを装い、内部からシステムを攻撃する人物の2種類です。オープンな分散型ネットワークでは、誰もが参加できることが重要であることを忘れないでください。これは自由にとって重要なことですが、守ることが難しくなります。

パケットの分割

セキュリティを向上させる1つの方法として、メッセージを異なる番号のついたパケットに分割することが挙げられます。すべてのパケットが宛先に到着すると、番号付けを利用してメッセージ全体を再構築することができます。この方式は、インターネット上の標準的なデータ通信でも使われていますが、HOPRのようなネットワークでは、各パケットを別のルートで送ることができるため、新たな威力を発揮します。このように経路が多様化することで、何が起こっているかを追跡することがはるかに難しくなり、また悪意のあるノードがアクセスできる情報も減少します。

データを番号付きのパケットに分割することで、さまざまなルートを使ってメッセージを送り、宛先で再び組み立てることができます。

残念ながら、「難しい」と「不可能」は同じではありません。このように複雑であっても、攻撃者はタイミング、メッセージサイズ、接続ログなどの他のメタデータを使用して、ネットワークを介したトラフィックの一貫した全体像を構築することができます。私たちは、さらに良い方法を取る必要があります。

幸いなことに、ミキシングを導入することによって、このアプローチを次のレベルに引き上げることができます。次回は、この方法を紹介します。

Jose Aguinaga,
HOPR Head of Engineering

Website: https://www.hoprnet.org
Testnet: https://network.hoprnet.org
Twitter: https://twitter.com/hoprnet
Twitter(日本語):https://twitter.com/HOPR_Japan
Telegram: https://t.me/hoprnet
Telegram(日本語):https://t.me/HOPRJapanese
Discord: https://discord.gg/dEAWC4G
LinkedIn: https://www.linkedin.com/company/hoprnet
Forum: https://forum.hoprnet.org
Github: https://github.com/hoprnet

HOPRベーシック エピソード一覧:

Episode 1: HOPRについて
Episode 2: メタデータについて
Episode 3: 匿名ルーティング
Episode 4: ミックスネット
Episode 5: インセンティブ
Episode 6: Proof of Relay
Episode 7: チケットと支払いチャンネル
Episode 8: 確率的支払い
Episode 9: カバートラフィック
Episode 10: カバートラフィックノード
Episode 11: カバートラフィックのバランス
Episode 12: HOPR DAOの紹介

--

--