web-dev-qa-db-ja.com

英国政府が提案するインターネット監視機器はどのようにして「暗号化をバイパスする」のでしょうか

http://www.channel4.com/news/black-boxes-to-monitor-all-internet-and-phone-data

http://rt.com/news/uk-privacy-internet-freedom-186/

「ブラックボックス」はインターネットサービスプロバイダーによってインストールされ、暗号化された資料をフィルタリングしてデコードします–ソーシャルメディアや電子メールメッセージを含み、批評家は個人のプライバシーへの影響。

11
Matt H

暗号化を「バイパス」するのではなく、サーバーのIDを偽装してMITM攻撃を(効果的に)実行できます。

SSL/TLS接続を設定する場合、暗号化自体は構成の一部にすぎません。これにより、クライアントとサーバー間の通信の機密性が保証されます。その前に、クライアントはサーバーのIDを確認して、予期するパーティーと機密的にデータを交換していることを確認する必要があります。これが証明書の使用目的です。

X.509証明書は、特定のサーバー名に対してCAによって発行されます。ブラウザーがこのCAを信頼する場合(ほとんどのブラウザーには、デフォルトで提供される多数のトラストアンカーがあります)、そのコンテンツを信頼できます。つまり、公開鍵とそれに含まれる名前の間のバインディングです。また、ブラウザは、探していたサーバー名が証明書の名前の1つであることを確認する必要があります。

政府ができることは、そのCA証明書を信頼するように依頼して(および/または大きなCAに中間CA証明書を与えて)、監視デバイスに証明書を発行して、実サーバーの証明書を偽装できるようにすることです。このデバイスはサーバーであり、接続を解読し、実サーバーへのクライアント自体として機能します。2つの暗号化セクションがあります。1つはクライアントと監視デバイスの間、もう1つはそのデバイスと実サーバーの間です。

これを実行するアプライアンス(「MITMプロキシサーバー」と呼ばれることもあります)が存在し、通常はエンタープライズネットワークで使用されます。

そのCAの秘密鍵を制御している誰もがクライアントがHTTPSサイトに送信するトラフィックを確認および変更できるという事実に加えて(ここでは多くの非技術的な問題があります)、これを行うときにいくつかの技術的な問題があります。国の規模:

  • これらのプロキシサーバーは、ブラウザで(HTTPプロキシとして)明示的に構成する必要がある場合があります。

    実際、MITMプロキシを透過的に実装することは非常に困難です。MITMプロキシは、最初のTCP=パケットを確認するだけで動的に生成する証明書に入れる必要がある名前を常に取得できるわけではないためです。サーバーの場合名前表示は使用されていません(SNIは今日では非常に一般的ですが、すべてのクライアントでサポートされているわけではありません)。サーバーのIPアドレスのみ取得できます。これは、必ずしも期待される名前に解決されるとは限りません。たとえば、 www.facebook.comのアドレスを取得し、逆DNSルックアップを実行すると、www-XYZ-XYZ.facebook.comのようなものが得られます。ここではワイルドカードを使用できますが、そのパターンは一般的に期待できません。

  • これにより、クライアント証明書認証を使用するすべてのサービスが中断します。 SSL/TLSハンドシェイク中にクライアント証明書が使用されると、クライアントは最後にすべてのハンドシェイクメッセージ(サーバー証明書を含む)の連結に署名し、サーバーはそれを送受信したもの(実際の証明書)。途中で独自の証明書を挿入するものがある場合、これによりこの検証が失敗します。

  • 証明書を動的に生成する必要がある場合があるため、ハンドシェイクの確立には確かに遅延があります。 (一部はキャッシュされる可能性があります。)

  • これは、ユーザーが "Niceをプレイ"し、意図したポートを使用することを期待しています。代替ポートが監視されていないか、完全にファイアウォールで保護されている必要があります。

  • Facebook/Google +/Gmailの交換を使用可能な形式で追跡するには、これらのデバイスがページの構造(またはAJAXのJSONペイロード)を調べ、関連するデータを抽出できる(またはすべてを保存できる)必要があります。どこか理解できません)。これらのサービスの内部APIに少しでも変更を加えると、コストのかかる調整が必要になります。

すべてのHTTPS通信でこれをすべて行うと、確かに大量の計算能力が必要になり、かなりの電気料金が発生します。

(ちなみに、FacebookがすべてをHTTPSに切り替える前に、内務省がそのような計画を立てるように導いたレポートが起草された可能性があります。)

9
Bruno

すべてのブラウザが有効な証明書を発行できるように、CAルートゾーンにあるCAを取得します。このCAはおそらく英国に拠点を置く会社になります。スパイはユーザーに対して完全に透過的です。ブラウザは警告を表示しません。これは数日間機能しますが、それが一般に検出されるまで、ブラウザベンダーは問題のCAのルート証明書を失効させます。暗号化された接続を解読する実用的な方法は他にありません。ただし、誰かが非常に週のプロトコルを使用している場合を除きますが、そうではありません。また、このボックスをインストールして選択的に使用することもできます。誰もではなく、スパイしたい人だけを対象にできます。この場合、おそらく検出されず、CA証明書は拒否されません。ただし、安全なインターネットトラフィックをすべて監視および復号化することはできず、気付かれることもありません。

8
Matrix