web-dev-qa-db-ja.com

単一のIPからの1つ以上のWebサイトへのHTTPSトランザクション中にURLを識別できますか?

たとえば、「A.com/1」、「A.com/2」、「A.com/3」、「B.com/1」の5つのIPを使用した2つのWebサイトへのHTTPS URLであるとします。 、「B.com/2」。

パケットの監視は明らかにしますか:

  • 何も、
  • 「A.com」と「B.com」(DNSのみを意味する)を訪問したIPのみを明らかにする、
  • 「A.com/1」と「B.com/1」(各サイトの最初のHTTPSリクエスト)にアクセスしたIPのみを明らかにします。
  • アクセスしたすべてのHTTPS URLの完全なリストを明らかにする、
  • 「A.com」と「B.com」のIPのみを明らかにする、
  • または、他の何か?

関連質問:会社が私が行ったHTTPSサイトを確認できますか?

この質問には追加情報がありますが、私が知る限り、「IPだけが「A.com/1」と「B.com/1」にアクセスしたことを明らかにするというシナリオについて具体的には触れていません(最初の各サイトのHTTPSリクエスト)」-これは間違っている可能性が高いですが、質問が重複している場合は削除してください。


注:これは次のように投稿された answer へのフォローアップ質問です: なぜHTTPSではないのですか?デフォルトのプロトコル?

69
blunders

TLSは、盗聴者に次の情報を公開します。

  • 連絡しているサイト
  • 残りのURLの長さ(おそらくおおよそ)
  • アクセスしたページのHTMLの長さ(概算)(キャッシュされていない場合)
  • アクセスしたページ上の他のリソース(画像、iframe、CSSスタイルシートなど)の(おそらく概算)数(キャッシュされていない場合)
  • 各パケットが送信され、各接続が開始された時刻。 (@nealmcbは、盗聴者がタイミングについてlotを学習することを指摘します:各接続が開始された正確な時間、接続の持続時間、各パケットの時間が送信され、応答が送信された時刻、サーバーが各パケットに応答する時刻など)

一連のリンクをクリックしてWebサイトを操作すると、盗聴者はWebページをクリックするたびにこれらを確認できます。この情報を組み合わせて、アクセスしているページを推測することができます。

したがって、この例では、TLSはA.comとB.comのみを明らかにします。これは、この例では、URLの残りの部分がすべての場合で同じ長さであるためです。ただし、あなたの例は不十分に選択されました。これは、Webでの一般的なプラクティスを表すものではありません。通常、特定のサイトのURLの長さはさまざまであるため、アクセスしているURLに関する情報が明らかになります。さらに、ページの長さとリソースの数も異なるため、さらに多くの情報がわかります。

これらの漏えいが、閲覧しているページに関する情報を盗聴者に明らかにする可能性があることを示唆する研究があります。したがって、TLSがあなたがアクセスしているページを盗聴者から隠しているとしない必要があります。 (これは直観に反していると思います。)


追加:HTTPSのトラフィック分析に関する文献のいくつかの研究への引用は次のとおりです。

81
D.W.

2番目の選択肢。主に。

ブラウザーがHTTPS Webサイトにアクセスすると、ブラウザーは [〜#〜] tls [〜#〜] トンネルを確立します。これには、非対称キー交換が含まれます(クライアントとサーバーが共有シークレットについて合意します)。その鍵交換メカニズムは、サーバーの公開鍵を使用します。サーバーの公開鍵は、サーバーの証明書の一部として表示されます。サーバー証明書には、サーバーnameが含まれています(例:A.com)とクライアントは、名前が期待する名前(URL内のサーバー名)と一致することを確認します。サーバー証明書は、致命的に、キー交換の前に前に送信されるため、わかりやすく表示されます。

URLの残りの部分は、暗号化されたトンネル内で発生するHTTPリクエストの一部として送信されるため、第三者には見えません。特定のトンネルは、他のいくつかのHTTPリクエストで再利用できますが、(構造上)それらはすべて同じサーバー(同じドメイン名)に対するものです。

20
Thomas Pornin