web-dev-qa-db-ja.com

GoogleとFacebookで、bettercapとsslstripが時々動作するのはなぜですか?

sslstripbettercapは、Chrome Facebook、Google、AOLなどのプリロードHSTSを使用する他のサイトのブラウザーで「ときどき」機能します。なぜそれができるのですか?まったく機能しないはずなのに時々機能しますか?

1
AznBoyStride

documentation によると、これはHTTPSリンクを別のサブドメインのHTTPリンクに書き換えることで機能します。これらのサイトはincludeSubDomainsディレクティブを使用していないため、ブラウザはこれらの書き換えられたリンクにHSTSを使用しません。 includeSubDomainsディレクティブを使用すると、特定のサブドメインだけでなく、サイトのすべてのサブドメインに対してHTTPSの使用をブラウザーに強制させることにより、この攻撃を防止できます。

preload list ではincludeSubDomainsを指定する必要があるため、通常、これはプリロードされたサイトでは機能しませんが、リストは特にGoogleおよびフェイスブック。 Googleには、accounts.google.com、docs.google.com、encrypted.gogole.comなどのプリロードされたサブドメインの長いリストがありますが、google.comはプリロードされていません。同様に、Facebookにはwww.facebook.com、m.facebook.com、secure.facebook.com、およびその他のいくつかがプリロードされていますが、facebook.comはプリロードされていません。したがって、すでにHTTPサイトにアクセスしている場合、sslstrip2はリンクをwww.facebook.comからwwww.facebook.comに書き換えてHSTSを回避できます。


これをテストしているときに、FirefoxのプリロードリストがChromeのプリロードリストと異なることも発見しました。前述のように here 、FirefoxのリストはChromeのリストに基づいていますが、Firefoxは独自にリストの検証を行います。これにより、touch.facebook.comのようなケースが発生します。ここでChromeはincludeSubdomainsがプリロードリストでtrueに設定されていますが、Firefoxはfalseに設定されています(実際、テストしたばかりの場合私が得たヘッダーはstrict-transport-security max-age=15552000; preload)。

3
AndrolGenhald