web-dev-qa-db-ja.com

HSTSでHTTPがHTTPSに変換されない

HTTPとHTTPSの両方のWebサイトでのHSTSの動作と、それらのHTTPおよびHTTPS埋め込みリソースを調べています。私の理解では、HSTS応答ヘッダーがHTTPS応答でサーバーによって渡された場合、またはサイトの名前がHSTSプリロードリストに存在する場合、その要求のすべてのリソースはHTTPSで送信されます。

ただし、Firefox Web Inspectorを介して一部のサイトを検査しているときに、いくつかの矛盾に気づきました。たとえば、ここの_cnn.com_(HTTP Webサイト)では、_doubleclick.net_のサブドメインのリクエストの一部は、HSTSプリロードリストに here =(include_subdomains:trueを使用)。

enter image description here

ルートドメインがHSTSヘッダーを送信しているかどうかをテストするために、ロケーションアドレスバーの_ad.doubleclick.net_リンクに移動すると、ダブルクリックのメインサイト_https://www.doubleclickbygoogle.com_が表示されます。ここにHSTSヘッダーが送信されます:

enter image description here

しかし、リロードしても_cnn.com_に対するdoubleclickのリクエストには影響がありません。

enter image description here

もう1つの興味深いことは、[インスペクター]タブに移動してDOMでリクエストのソースタグを見つけようとしたときに、_http://ad.doubleclick.net_(クエリ文字列でつながれている)を持つタグがないことです。インスペクタの「原因」と「タイプ」の見出しは、ピクセルのトラッカーのようなものを示しているようです。

誰かがここで何が起こっているのか考えていますか?

7
QPTR

あなたが言及したソースコードから引用するには:

354  // Other Google-related domains that must use an acceptable certificate
355  // iff using SSL.
     ...
361  { "name": "doubleclick.net", "include_subdomains": true, "pins": "google" },

これは、証明書が固定されていることを意味しますiffサイトはhttps経由で提供されます。これは、サイトをhttps経由で提供する必要があるという意味ではありません。これは、force-https属性が設定されている他のドメインとは異なります。

264  { "name": "accounts.google.com", "include_subdomains": true, "mode": "force-https", "pins": "google" },

編集:Chromiumのソースコードに基づいて(TransportSecurityState::GetStaticDomainState内の関数net/http/transport_security_state.ccchrome://net-internals/#hstsに表示される情報と、静的情報との関係を説明しますnet/http/transport_security_state_static.jsonの例を使用doubleclick.net

static_sts_domain: doubleclick.net
static_upgrade_mode: OPPORTUNISTIC

OPPORTUNISTICがデフォルトのモードです(STSState::MODE_DEFAULT)。これは、HTTPSを強制しないことを意味します。設定に明示的なforce-https設定が指定されていないため、デフォルトモードが使用されます。

static_sts_include_subdomains: true

Httpsを強制しないため、この設定は重要ではありません。ただし、この構成行にinclude_subdomainsが含まれていない場合でも、値は上記のforce-httpsの構成が原因である可能性があります。

static_sts_observed: 1476162000

これは、静的HSTS/HPKPリストの作成時間です。つまり、この場合は2016/09/04です。

static_pkp_domain: doubleclick.net
static_pkp_include_subdomains: true
static_pkp_observed: 1476162000
static_spki_hashes: sha256/IPMbDAjLVSGntGO3WP53X/zilCVndez5YJ2+vJvhJsA=,sha256/7HIpactkIAq2Y49orFOOQKurWxmmSFZhBCoQYcRhJ3Y=,sha256/h6801m+z8v3zbgkRHpq6L29Esgfzhj89C1SyUCOQmqU=

これらは固定に関する情報です。これらは、上に示した設定(つまり、include_subdomainsと使用するピン)に直接関係しています。

9
Steffen Ullrich

HSTSは、設定されているドメインにのみ適用されます。

あなたが探しているのは、安全でないアップグレード要求のCSPディレクティブです。

Content-Security-Policy:upgrade-insecure-requests

HSTSプリロードリストでは、キーの固定用のHSTSに対してdoubleclick.netがリストされていません。

https://scotthelme.co.uk/migrating-from-http-to-https-ease-the-pain-with-csp-and-hsts/ の詳細

3
Tom