Crowds

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

この記事は「提案された匿名性ネットワーク」を参照しています。思春期同位体群を指す心理学的および社会学的用語については、[[群衆(青年期)]を参照のこと。

'Crowds' は、anonymous web browsingの提案された匿名性ネットワークです。 Crowdsの匿名プロトコルの背後にある主要なアイデアは、類似したユーザーのグループ内でランダムにルーティングすることによって、各ユーザーの通信を非表示にすることです。したがって、共同グループメンバーもエンドレシーバーも、グループ内でパケットの発信元を確認することはできません。群衆は Michael K. Reiterと[[Avi Rubin | Aviel D. Rubin]によって設計されました。内部の攻撃者や破損した受信者を防御しますが、グローバルな攻撃者やローカルの盗聴者に対しては匿名を提供しません(「群衆:Webトランザクションの匿名性」を参照)。群衆は[前任者の攻撃]に対して脆弱です。これはReiterとRubinの論文で議論され、Matthew K. Wright氏、Micah Adler氏、Brian Neil Levine氏による「先発攻撃:匿名通信システムへの脅威分析」でさらに詳しく述べられています。群衆は、多数のコンピュータに混じっているユーザーの概念を導入しました。

群衆の働き[編集]

#各ユーザーは、メンバーシップ管理を担当する単一のサーバーであるブレンダーに自分自身を登録することによって、他のユーザーの集まりに参加します。ユーザーが登録すると、群衆の他のすべてのメンバーに通知されます。ブレンダーは、仮想パスに沿ってルーティングされるパケットの暗号化と復号化に使用される個々のペアのjondosに対称鍵を配布するため、鍵の配布も担当します。 #各ユーザーは、ユーザーのコンピューター上で動作するアプリケーションである、自分のマシン上のjondoによって表されます。 #各jondoは、エンドサーバに要求を提出するか、無作為に選ばれたjondo(おそらくそれ自体)に転送します。その他のjondoタスクは、Cookieなどの個人情報を除外し、ヘッダーフィールドを特定することです。 #jondoは、リクエストが前のjondoまたはその前のjondoによって開始されたかどうかを知ることはできません。 #要求と応答は、確率を含むアルゴリズムを使用して構築された同じ仮想パスに従います。仮想パスは、新しく追加されたメンバーの匿名性を可能にするために、定期的に解体され、再構築されます。

定義[編集]

群衆は次の用語を使用し定義します:

送信者:メッセージの発信者
受信者:メッセージの最終受信者
考えられるイノセンス:攻撃者は、ノードがメッセージを開始したことを50%以上の信頼感を持つことはできません(ノードはメッセージを開始する可能性が同等に見える - 各ユーザーはそうでないよりも無実です)。
Local Eavesdropper(ローカル盗聴者):ノードのすべてのプロバッサセットの着信メッセージと発信メッセージをすべて監視できる攻撃者
破損ノード:メッセージを転送して得た情報を使用して送信者を決定すると、ノードが壊れています
<数学> C <数学> :破損したノードの数
<数学> N <数学> :ノードの数(<math> N-C </ math>は良好なノードの数である)
&lt; math&gt; p_f&lt; / math&gt; :転送の確率

基本設計[編集]

群衆は、各ノードをメッセージのイニシエータと同等に見えるようにすることによって機能します。 私たちは、各ノードが他のユーザーからの要求を転送したり受信したりする小さなプロセスである "jondo"( "John Doe"から)を開始することによって、ネットワークに参加すると述べました。 jondoが起動すると、ネットワーク内のすべてのノードに新しいノードの入り口が通知され、フォワーダとして彼を選択し始めます。 実際にメッセージを送信するために、ノードは、ネットワーク内のすべてのノードから無作為に(均一の確率で)選択し、それらにメッセージを転送する。 メッセージを受信すると、ノードはバイアスされたコインを反転させ(確率<path> p_f> \ frac {1} {2}となる)、それが別のランダムノードに転送するならば、 最終目的地まで 別のノードに転送するときの各ノードは先行ノードを記録し、このようにトンネルが構築され、これは送信側と受信側の間の通信に使用されます。

各マシンのアルゴリズム==[編集]

&lt; code&gt; OnReceive(ノードP、メッセージM) #偏ったコインを裏返す(<math> \ Pr(Heads)= p_f </ math>)

    1. If Heads Then 一様にランダムなノードを選択し、それらに転送する
    2. Else 目的地へ進む

#トンネルを構築できるようにPを記録する &lt; / code&gt;

セキュリティ分析[編集]

私たちは、説明したCrowdsの仕組みを考慮して、攻撃者がWebトランザクションの送信者と受信者についてどのような情報を知ることができるかという問題を検討します。

ローカルの盗聴者[編集]

エンド・サーバーへの最終リクエストを除いて、パス上で転送されたすべてのメッセージは暗号化されていることに注意してください。 したがって、盗聴者はユーザのコンピュータから発せられたメッセージを見ることができるが、エンドサーバに提出されたメッセージのみを見る ユーザのjondoが最終的にユーザの要求自体を提出する場合。 ユーザーのjondoが最終的に要求を送信する確率は1 / nで、nはパスが作成されたときの群衆のサイズです。 したがって、盗聴者が受信機の身元を知る確率は、群衆の大きさの関数として減少することがわかります。 さらに、ユーザーのjondoが最終的に要求を提出しない場合、ローカルの盗聴者はエンドサーバーの暗号化されたアドレスのみを認識します。これは疑わしい(非公式に)受信者の匿名性をもたらします。 (疑惑を超えて - ユーザーは誰よりも他人よりも疑わしい)。

協力のジョンド[編集]

群衆の中で協力して腐敗したjondosのセットを考えてみましょう。各jondoは、経路指定された経路上で平文のトラフィックを観測することができるため、エンドサーバのアドレスを含むそのようなトラフィックは、この攻撃者にさらされます。 ここで考慮する質問は、攻撃者が誰がパスを開始したかを判断できるかどうかです。共同作業者の目標は、パスを開始したメンバーを決定することです。 ここでは、共同作業者が直前のものが実際にパスイニシエータであることがどの程度自信があるかを分析します。

第1の協力者が経路上のk番目の位置を占めるイベントを示し、開始者自身が0番目の位置を占める(そしておそらく他のもの)。 「サブカテゴリ」とは、「サブカテゴリ」、「サブカテゴリ」、「サブカテゴリ」、「サブカテゴリ」、「サブカテゴリ」、「サブカテゴリ」、「サブカテゴリ」、「サブカテゴリ」、 ; 'または' H sub k + 2 / sub または。 。 。 。

  1. Let 'I' は、パス上の最初の共同作業者がパス開始側のパスの直前にあるイベントを示します。

'H 1 </ sub>は、 =&gt;私は 'ですが、反対に' '= H 1 '/' 'は真ではない。 jondoを開始することがパスに複数回表示される可能性があります。次のようにパスが構成される場合があります。 :イニシエータjondo(0 - 位置)----&gt; jondo(1位)----&gt; :イニシエータjondo(2位)----&gt;共同ジョンド(3位)

パス上の最初の共同作業者は3番目の位置にあることに注意してください。

:4.この表記があると、共同作業者は今、 協力者がパス上にある場合、パス開始者が最初の共同作業者の直前の先祖である確率はどのくらいであるか?「P(I | H 1 +1 + / sub)

'定義:' &lt; br /&gt; P(I | H 1 +)> 1 '2' ならば、

パスイニシエータに無害な可能性をもたらすために、 条件が満たされている必要があります。 特に、 'pf&gt; 1/2 '(システムでの転送の確率)

'c' - 群衆の中の協力者の数)

'n' - パスが形成されたときの群衆の総数)

以下の定理は、pf、c、nについて十分な条件を与えて、 おそらく経路開始剤の純粋さ。

定理:

&lt; / math&gt;&lt; math&gt; n \ geq \ frac {p_f} {p_f - \ frac {1} {2}} \ left(c + 1 \ right)

証明: 私たちは 'pf&gt; 1/2&nbsp; &nbsp; &lt; / math&gt; '&lt; math&gt; n \ geq \ frac {p_f} {p_f - \ frac {1} {2}} \ left(c +

ご了承ください:

(n-c)(n-c){n-1}(nは自然数)とすると、P(H sub i)

最初の共同作業者がパス上のi番目の位置に来るには、パスは最初に、i-1 'の非同僚に振り向かなければなりません。 それぞれが確率 'pf' でパスを転送することを選択し、次いで確率<math> \ frac {nath}で協力者に転送することを選択した\ frac {nc} {n}&lt; / math&gt; c} {n} </ math>。

次の2つの事実はこのすぐ後に続く

(n-c){n})^ {k} = {f} {f} (\ frac {c} {n}}){\ frac {1} {1- \ frac {p_f(n-c)} {}})&lt; / math&gt;

(n-c){n})^ {k} = {f(n-c)} = (n-c)} {n}})&lt; / math&gt; {\ frac {c} {n}} {\ frac {

P(H 1 / sub)= <数学> \ frac {c} {n}&lt; / math&gt;

P(I | H 1 / sub)= <数式1>

P(I | H 2 / sub)= {f 1} {n-c}

今、P(I)は

P(I | H 1)+ P(H 2 +1)P(I H <1) (n-np_fn + cp_f + pf)} {n ^ 2-pfn(nc)} ...(2)

I =&gt; H1 +&lt; / sub&gt;

ここで、P(I | H 1 +)は次式で表される。 = {P(I)} {P(H1 +)} / math =(n-c-1)} {n} </ math>

したがって、もし<math> n \ geq \ frac {p_f} {p_f - \ frac {1} {2}} \ left(c + 1 \ right)&lt; / math&gt;

P(I | H 1 + / sub)≦1 2

例えば。 'pf = 3 \ 4' ならば、n> = 3(c + 1)である限り、無害性が保証される

静的パス[編集]

動的パスは、共同のjondosに対してシステムによって提供される匿名性プロパティを減少させる傾向があります。 その理由は、共同作業者が多くの異なる経路を同じjondoによって開始されたものとしてリンクすることができれば、無実の可能性がなくなるからです。 共同のjondosは、関連するパスの内容やタイミングに基づいて、同じ未知のjondoによって開始されたパスをリンクすることができます。 パス上の通信。 これを防ぐために、パスを静的にしたので、攻撃者は同じjondoにリンクする複数のパスを持たないだけです。

埋め込まれたイメージとタイミング攻撃[編集]

HTMLページは、ページが取得されたときにユーザのブラウザが自動的に別の要求を出すようにするURL(例えば、画像のアドレス)を含むことができる。 jondosを連携させることでタイミング攻撃の可能性を最大限に引き出すのは、これらの要求の直接の性質です。 パス上の最初の協力jondoは、自動的に取得されるURLを含むそのパス上のWebページを返すと、そのURLに対する要求を受信するまでの時間を計測できます。期間が十分に短い場合、これは共同作業者の直前の前任者が要求の開始者であることを明らかにすることができる。

どのように防ぐために?

jondoは、ユーザーのブラウザから直接受信したリクエストまたはエンド・サーバーに直接送信したリクエストに対するHTML応答を受信すると、HTMLページを解析して、この応答を受信した結果、ユーザーのブラウザが自動的に要求するすべてのURLを識別します。パス上の最後のjondoは、これらのURLを要求し、元の要求が受信されたのと同じパスに戻します。 ユーザのjondoは、これらのURLに対する要求をユーザのブラウザから受信すると、パス上でこれらの要求を転送するのではなく、URLコンテンツがパス上に到着するのを待ってからブラウザに送ります。このようにして、パス上の他のjondosは、ブラウザによって生成された要求を決して見ることができず、したがって、そこからタイミング情報を収集することはできません。

スケール[編集]

私たちが評価するスケールの尺度は、各時点でどのような時点でもすべてのパスで期待される出現回数です。 たとえば、1つのパスで2つの位置を占め、別のパスで1つの位置を占める場合、これらのパスには合計3つの外観が作成されます。

'定理:サイズnの群衆では、どんなジョンドがすべての経路上で作る予想される総出現回数は' (1-p_f)^ 2}(1 + \ frac {1} {n}))</ math>

パス上の各jondoの予想される出現回数は、群衆の大きさの関数として事実上一定です。 これは、群衆がかなり大きく成長できることを示唆しています。

攻撃[編集]

すべてのメンバーがイニシエータであった可能性が高いように見えるので、群衆は破損した受信者に対して完全な匿名性を提供する(すなわち、[匿名性の程度]を参照)。私たちが協力して腐敗したノードに対して示したように、群衆は、<math> N \ geq \ frac {p_f} {p_f - \ frac {1} {2}} \ left(C + 1 \ right)数学&gt; (これを導出するための論文を参照)、そして[匿名性の度合い] {\ frac {N-p_f \ cdot(N-C-1)} {N} \ cdot \ lg \ left {\ frac {N} {N-p_f \ cdot(N-C-1)} \ right] + p_f \ cdot \ frac { left [N / p_f \ right]} {\ lg(N-C)} </ math>。 [前任攻撃]に対して、群衆は<math> O \ left(\ frac {N} {C} \ lg(N)\ right)&lt; / math&gt;この攻撃は、パスの前のホップを保持している壊れたノードによって動作します。これは、ネットワークを再構築するラウンドで他のどのノードよりも多くの送信者になります。 ReiterとRubinはこれに言及し、パスの再編成間の時間(パス内のノードがネットワークを離れるときに発生する)を「長い」(可能であれば無限に)推奨します。 Crowdsは、リンク上で暗号化を使用できないため、グローバルな盗聴者から保護することはできません。これは、Crowdsの各ノードが他のすべてのノード(完全に接続されたグラフ)と通信できるためです。 O(N ^ 2)math&gt;ペアワイズキー。これは実行可能な数値が大きすぎます。ローカルの盗聴者に対して再び、盗聴者は入力していないノードからメッセージが出てくるのを見て、送信者としてノードを確実に識別します。

関連項目[編集]

ソース[編集]

http://wikipedia.org/