2010 年代初頭、スタンフォード大学、マサチューセッツ大学、トール プロジェクト、SRI インターナショナルの専門家からなる共同チームが、研究結果を発表しました。
科学者たちは、当時存在していたブロッキングを回避する方法を分析し、フラッシュ プロキシと呼ばれる独自の方法を提案しました。 今回はその本質と開発の歴史についてお話します。
導入
インターネットはあらゆる種類のデータにオープンなネットワークとして始まりましたが、時間が経つにつれて、多くの国でトラフィックがフィルタリングされるようになりました。 YouTube や Facebook などの特定のサイトをブロックする州もあれば、特定の素材を含むコンテンツへのアクセスを禁止する州もあります。 ヨーロッパを含むさまざまな地域の数十か国で、さまざまな種類の閉塞が使用されています。
ブロッキングが使用されている地域のユーザーは、さまざまなプロキシを使用してブロッキングをバイパスしようとします。 このようなシステムの開発にはいくつかの方向性があり、プロジェクトではテクノロジーの XNUMX つである Tor が使用されました。
通常、ブロッキングをバイパスするためのプロキシ システムの開発者は、解決する必要がある XNUMX つのタスクに直面します。
- ランデブープロトコル。 ランデブー プロトコルを使用すると、ブロックされている国のユーザーが少量の情報を送受信してプロキシとの接続を確立できます。たとえば、Tor の場合、ランデブーを使用して Tor リレー (ブリッジ) の IP アドレスを配布します。 このようなプロトコルは低レートのトラフィックに使用されるため、ブロックするのはそれほど簡単ではありません。
- プロキシを作成します。 ブロッキングを克服するシステムでは、クライアントからターゲット リソースにトラフィックを送信したり、クライアントからターゲット リソースに戻ったりするために、フィルタリングされたインターネットを備えた地域外のプロキシが必要です。 ブロック オーガナイザーは、ユーザーがプロキシ サーバーの IP アドレスを学習してブロックするのを阻止することで対応する場合があります。 そういったものに対抗するには
シビルの攻撃 プロキシ サービスは、常に新しいプロキシを作成できる必要があります。 新しいプロキシを迅速に作成することが、研究者によって提案された方法の主な本質です。 - 迷彩。 クライアントがブロックされていないプロキシのアドレスを受信した場合、トラフィック分析ツールを使用してセッションがブロックされないように、何らかの方法でそのプロキシとの通信を隠す必要があります。 オンライン ストアやオンライン ゲームなどとのデータ交換など、「通常の」トラフィックとして偽装する必要があります。
研究の中で、科学者たちはプロキシを迅速に作成するための新しいアプローチを提案しました。
これはどう動かすのですか
重要なアイデアは、複数の Web サイトを使用して、有効期間が数分以内の膨大な数のプロキシを作成することです。
これを行うために、インターネットがブロックされている地域外に住むユーザーのホームページなど、ボランティアが所有する小規模なサイトのネットワークが作成されています。 これらのサイトは、ユーザーがアクセスしたいリソースとはまったく関連付けられていません。
このようなサイトには小さなバッジが設置されていますが、これは JavaScript を使用して作成されたシンプルなインターフェイスです。 このコードの例:
<iframe src="//crypto.stanford.edu/flashproxy/embed.html" width="80" height="15" frameborder="0" scrolling="no"></iframe>
バッジは次のようになります。
ブロックされた領域外の場所からブラウザがバッジが付いたこのようなサイトに到達すると、この領域へのトラフィックの送信とその逆の送信が開始されます。 つまり、Web サイト訪問者のブラウザが一時的なプロキシになります。 ユーザーがサイトを離れると、プロキシは痕跡を残さずに破棄されます。
その結果、Tor トンネルをサポートするのに十分なパフォーマンスを得ることができます。
Tor Relay とクライアントに加えて、ユーザーはさらに XNUMX つの要素が必要になります。 いわゆるファシリテーター。クライアントからリクエストを受け取り、プロキシに接続します。 通信はクライアント上のトランスポート プラグインを使用して行われます (ここでは
このスキームを使用した一般的なセッションは次のようになります。
- クライアントは、フラッシュ プロキシ クライアント (ブラウザ プラグイン) である Tor を実行し、ランデブー プロトコルを使用して登録リクエストをファシリテーターに送信します。 プラグインはリモート接続の待機を開始します。
- Flash プロキシがオンラインに表示され、ファシリテーターに連絡してクライアントとの接続を要求します。
- ファシリテーターは登録を返し、接続データをフラッシュ プロキシに渡します。
- プロキシは、データが送信されたクライアントに接続します。
- プロキシはトランスポート プラグインと Tor リレーに接続し、クライアントとリレーの間でデータ交換を開始します。
このアーキテクチャの特徴は、クライアントがどこに接続する必要があるかを事前に正確に知ることができないことです。 実際、トランスポート プラグインは、トランスポート プロトコルの要件に違反しないようにするためにのみ、偽の宛先アドレスを受け入れます。 このアドレスは無視され、別のエンドポイントである Tor リレーへのトンネルが作成されます。
まとめ
Flash プロキシ プロジェクトは数年間にわたって開発され、2017 年に作成者はサポートを停止しました。 プロジェクト コードは次の場所から入手できます。
出所: habr.com