Mix network

提供: tezos-wiki
移動先: 案内検索

thumb |簡単な解読ミックスネット。メッセージは一連の公開鍵で暗号化されます。各ミックスノードは、独自の秘密鍵を使用して暗号化レイヤーを削除します。ノードはメッセージ順序をシャッフルし、その結果を次のノードに送信する。

ミックスネットワーク は、複数の送信者からのメッセージを取り込む「ミックス」と呼ばれる一連のプロキシサーバーを使用して、追跡が難しい通信を作成するルーティングプロトコルであり、シャッフルそれを次の宛先(場合によっては別のミックスノード)にランダムな順序で戻します。これにより、要求元と宛先との間のリンクが切断され、盗聴者がエンドツーエンド通信を追跡するのが難しくなります。さらに、ミックスはただちにメッセージを受信したノードと直後の宛先がシャッフルされたメッセージを送信するノードを知っているため、ネットワークは悪意のあるミックスノードに対して抵抗力があります。

各メッセージは公開鍵暗号を使用して各プロキシに暗号化されます。結果として得られる暗号化はメッセージを最内層としてロシア人形(各 "人形"が同じサイズであることを除いて)のように階層化されます。各プロキシサーバーは、独自の暗号化レイヤーを取り除き、次にメッセージを送信する場所を明らかにします。プロキシサーバーの1つを除くすべてがトレーサによって侵害された場合でも、弱い敵に対してはトレーサビリティはまだ達成できます。

ミックスネットワークのコンセプトは1981年にDavid Chaumによって最初に記述されました。このコンセプトに基づいたアプリケーションには、 Mixmasterや[onion routing ]]( Torを含む))。

どのように動作するか[編集]

参加者の「A」は、ランダム値Rをメッセージに付加し、受信者の公開鍵で封印することにより参加者の「B」への配信のためのメッセージを作成する<math> K_b </ math>、Bの住所を追加するその結果をミックスの公開鍵で暗号化する(K_m <math>)。 Mは自分の秘密鍵でそれを開き、今度はBのアドレスを知って、&lt; Math&gt; K_b(message、R)&lt; / math&gt; B.

メッセージフォーマット[編集]

K_m(R1、K_b(R0、message)、B)\ longrightarrow(K_b(R0、message)、B)</ math>

これを達成するために、送信者は、ミックスの公開鍵(&lt; math&gt; K_m&lt; / math&gt;)を取り、それを使用してランダムストリング(<math> R1 </ math>)、受信者の電子メールアドレス( B )を入力します。このネストされたエンベロープは、受信者の公開鍵(&lt; math&gt; K_b&lt; / math&gt;)で暗号化され、送信されるメッセージの本文とともに別のランダムな文字列( R0 )暗号化されたトップレベルエンベロープを受信すると、ミックスはその秘密鍵を使用してオープンします。内部では、受信者のアドレス( B )と B にバインドされた暗号化されたメッセージが見つかります。ランダムストリング(<math> R1 </ math>)は破棄される。

<数学> R0 <数学>攻撃者がメッセージを推測するのを防ぐためにメッセージに必要です。攻撃者は、すべての受信メッセージと送信メッセージを監視できると想定されています。ランダムな文字列が使用されていない(すなわち、<math>(K_b(message))</ math>のみが<math> B </ math>に送られている)、攻撃者は、 math&gt;メッセージ '&lt; / math&gt; (メッセージ)= K_b(メッセージ)&lt; / math&gt;が送信されたかどうかをテストすることができる。それによって彼はメッセージの内容を知ることができる。ランダムストリング<math> R0 </ math>を付加することにより、攻撃者はこの種の攻撃を実行できません。正しいメッセージを推測すべきであっても(すなわち、&lt; Math&gt;メッセージ=メッセージ&lt; / math&gt;が真である)、秘密値を知らないので正しいかどうかを知ることはできない。数学>具体的には、<数式> R0 <数式> として機能します。

アドレスを返す[編集]

現在必要とされているのは、「B」が「A」に応答し、「A」の秘密を「B」から秘密にしておくための方法です。

解決法は、トレース不可能なリターンアドレスを形成するための「A」に対する解であり、K_m(S1、A)、K_x </ math>ここで、<math> A </ math>は、それ自身の実アドレス、<math> K_x </ math>は、現時点で選択された公開ワンタイムキーであり、<math> S1 </ math>シールの目的でランダムな文字列としても機能するキーです。すると、 A はすでに説明した手法で送信されたメッセージの一部としてこの返信アドレスを B に送ることができます。

Bは、K_m(S1、A)、K_x(S0、応答)</ math> Mに変換し、Mは、それをA、S1(K_x(S0、response))</ math>に変換する。   このミックスは、ビットの列を使用する(S1&lt; / math&gt;それは、アドレス部分を解読した後に見つかることを意味する。K_m(S1、A)</ math>メッセージ部分K_x(S0、response)&lt; / math&gt;を再暗号化する鍵として使用する。 'A' 'は<math> S1 </ math>の両方を生成しているため、出力先A' 'のみが出力結果を解読することができます。 &lt;数学> K_x </数学>。 追加キー<Kath> K_x </ math>は、ミックスが返信メッセージの内容を見ることができないことを保証する。   以下は、 'B'がどのように A へのレスポンスを形成するためにこのトレース不可能なリターンアドレスを新しい種類のミックスで使用するかを示しています。

「A」「&lt; math&gt; \ longrightarrow&lt; / math&gt;」というメッセージは、 B

(R0、メッセージ、K_m(S1、A)、K_x)、K_m(R1、メッセージ、K_m(S1、A)、K_x)

'B' '&lt; math&gt; \ longrightarrow&lt; / math&gt;' 'A' 'からの返信メッセージ:

K_m(S1、A)、K_x(S0、response)\ longrightarrow A、S1(K_x(S0、response))</ math>

ここで、K_b </ math>は、 = B の公開鍵、<math> K_m </ math> =ミックスの公開鍵。

宛先は、発信元の匿名性を犠牲にすることなく、発信元に返信することができます。返信メッセージは、送信元から宛先への匿名メッセージとすべてのパフォーマンスとセキュリティの利点を共有します。

脆弱性[編集]

ミックスネットワークは、敵が経路全体を見ることができたとしてもセキュリティを提供しますが、ミキシングは完全には完璧ではありません。敵対者は長期の相関攻撃を提供し、パケットの送信者と受信者を追跡できます。

脅威モデル[編集]

敵対者は、ミックスネットワークとの間のトラフィックを監視することによって受動的な攻撃を行うことができます。複数のパケット間の到着時間を分析することで、情報を明らかにすることができます。積極的にパケットに変更を加えることはないので、このような攻撃は検出しにくい。ワーストケースの攻撃では、ネットワークのすべてのリンクが敵対者によって観察され、ミックスネットワークの戦略とインフラストラクチャがわかっていると見なします。

入力リンク上のパケットは、パケットが受信された時間、パケットのサイズ、またはパケットの内容に関する情報に基づいて、出力リンク上のパケットと相関することはできません。パケットタイミングに基づくパケット相関は、バッチ処理によって防止され、コンテンツに基づく相関があり、パケットサイズは、それぞれ暗号化およびパケット埋め込みによって防止される。

パケット間の間隔、すなわち、2つのネットワークリンク上の2つの連続するパケットの観測間の時間差が、リンクが同じ接続を運ぶかどうかを推測するために使用されます。暗号化とパディングは、同じIPフローに関連するパケット間インターバルに影響を与えません。パケット間の間隔のシーケンスは接続間で大きく変化します。たとえば、Webブラウジングでは、トラフィックはバーストで発生します。この事実は、接続を識別するために使用できます。

活発な攻撃[編集]

アクティブな攻撃は、一意のタイミングシグネチャを含むパケットのバーストをターゲットフローに注入することで実行できます。攻撃者は、他のネットワークリンク上でこれらのパケットを識別しようとする攻撃を実行できます。攻撃者は、後続のすべてのミックスで対称鍵に関する必要な知識のために、新しいパケットを作成できないことがあります。リプレイパケットは、ハッシングやキャッシングによって容易に予防できないため、使用できません。

人工ギャップ[編集]

攻撃者が大量の連続パケットをフロー内にドロップした場合、ターゲットフローに大きなギャップを作成することができます。たとえば、3000パケットをターゲットフローに送信するシミュレーションが実行されます。攻撃者は、フローの開始後1秒でパケットをドロップします。連続するパケットの数が増加するにつれて、防御低下の有効性は著しく低下する。大きなギャップを導入すると、ほとんどの場合、認識可能な機能が作成されます。

人工バースト[編集]

攻撃者は人工的なバーストを作成することができます。これは、人工パケットから一定期間、リンク上に保持し、すべてを一度に解放することによって、シグネチャを作成することによって行われます。このシナリオでは、防御ドロップは防御を提供せず、攻撃者はターゲットフローを識別できます。この攻撃を防ぐために他の防衛策を講じることができます。そのような解決策の1つは、適応型パディングアルゴリズムであってもよい。パケットが遅延するほど、行動を識別することが容易になり、より良い防御が観察されます。

その他の時間解析攻撃[編集]

攻撃者は、パケット間の間隔以外の他のタイミング攻撃を調べることもできます。攻撃者はパケットストリームを積極的に変更して、ネットワークの動作に起因する変更を監視できます。パケットは、TCPパケットの再送信を強制するために破損する可能性があり、その動作は情報を明らかにするために容易に観察可能である。

寝台攻撃[編集]

敵対者は、メッセージがしきい値ミックスに送受信されているのを見ることができますが、これらのミックスの内部作業や同じメッセージが送信されるのを見ることはできません。敵がそれぞれのミックスに自分のメッセージを残し、2人のうちの1人を受け取った場合、送信されたメッセージとそれに対応する送信者を特定することができます。敵はいつでもメッセージ(アクティブコンポーネント)をミックスに配置しなければならず、メッセージはメッセージが送信される前にそこに残っていなければなりません。これは通常、アクティブな攻撃ではありません。より弱い敵は、この攻撃を他の攻撃と組み合わせて使用​​して、より多くの問題を引き起こすことができます。

ミックスネットワークは、受信メッセージの順序を変更して、受信メッセージと送信メッセージの間に重要な関係が生じないようにセキュリティを引き出します。ミックスはメッセージ間の干渉を引き起こします。この干渉は、ミックスのオブザーバに情報漏洩率の限界を課す。サイズnの混合では、混合物への入力および出力を観測する敵対者は、一致を決定する際に次数nの不確実性を有する。寝台攻撃はこれを利用することができます。各ミックスのスリープとスレッショルドミックスの階層型ネットワークでは、送信者からの入力を受け取るレイヤーと、メッセージを最終的な宛先に転送するミックスの第2レイヤーがあります。このことから、攻撃者は、受信したメッセージが送信者から発せられなかったレイヤ1ミックスには到着しなかったことを知ることができます。送信されたメッセージと受信されたメッセージがこれらのスリーパーと一致する可能性が高くなり、したがって通信は完全に匿名ではありません。ミックスは、完全に時間を合わせることもできます。特定のインターバルで受信したメッセージの順序をランダム化し、ミックスにその一部を添付し、そのインターバルで受信したものにもかかわらず、インターバルの終わりに転送します。ミキシングに使用できるメッセージは干渉しますが、利用可能なメッセージがない場合は、受信したメッセージに干渉はありません。

ソース[編集]

http://wikipedia.org/