Google Chromeブラウザは、ページchrome://net-internals/#hsts
(セクションクエリドメイン)を介してドメインのHSTS(HTTP Strict Transport Security)ステータスをすばやく確認する方法を提供します。
クエリ結果は次のようになります。このような:
Found:
domain: owasp.org
static_upgrade_mode: UNKNOWN
static_sts_include_subdomains:
static_pkp_include_subdomains:
static_sts_observed:
static_pkp_observed:
static_spki_hashes:
dynamic_upgrade_mode: STRICT
dynamic_sts_include_subdomains: false
dynamic_pkp_include_subdomains: false
dynamic_sts_observed: 1409173001.03746
dynamic_pkp_observed: 1409173001.03746
dynamic_spki_hashes:
これらの線はどういう意味ですか? HSTSモードが有効になっているかどうか。結果のdynamic_
エントリとstatic_
エントリの違いは何ですか?
static_upgrade_mode:
またはdynamic_upgrade_mode:
行のいずれかをSTRICT
に設定すると、HSTSが有効になります。
Dynamic
は、次のようなHTTP応答ヘッダー(TLS経由で提供される)によってHSTSを有効にするようにブラウザーに指示されたことを意味します。
Strict-Transport-Security: max-age=157680000; includeSubDomains;
これは、ブラウザがhttp://
(https://
ではなく)でドメインを初めてリクエストするときに、攻撃者が通信を傍受する攻撃に対して脆弱です。
この弱点を克服するために、HSTSレコードをブラウザーのソースに直接ハードコーディングできるstatic
モードがあります。ヘッダーは、管理者の意図を示すために変更されています。
Strict-Transport-Security: max-age=157680000; includeSubDomains; preload
最後にpreload
が含まれていることに注意してください。その後、ドメインは確認のために submitted になります。承認された場合、それは Chromiumリスト に追加されます。これは、Firefox、Safari、およびIE 11 + Edgeリストにも含まれています。
chrome://net-internals/#hsts
に対してクエリを実行すると、Chromeを使用してアクセスした保存済みのHSTSサイトのみがクエリされます。 static_
およびdynamic_
の部分は、通信用にSTSを有効にするメソッドを示しています。
結果は、static
メソッドが定義されていないことを示し、dynamic
メソッドのみが定義されています。結果のpop
およびsts
は、それぞれpublic-key-pinningおよびstrict transport securityを表しています。したがって、dynamic_pkp_observed
およびdynamic_sts_obeserved
は、ドメインで有効になっているSTSの時間です。 STSはそのドメインで許可されていますが、サブドメインでは許可されていません。
Stsのチェックには "curl"を使用することをお勧めします。
例えば:curl -siL "owasp.org" | grep "Strict"
(-Lはhttpsにリダイレクトします)
ドメインがSTSを使用するように構成されている場合、サーバーの応答にヘッダーStrict-Transport-Security: max-age =
valueが表示されます
それが私がStrict
を求めている理由です。
static
はブラウザ(この場合はChrome)を意味します プリロードされたHSTSサイトdynamic
は、「外出先」で取得または追加されたサイトを意味します 手動で
pkp
は PublicKey Pinning の略で、以降Chrome 69 deprecatedspki_hashes
は SubjectPublicKeyInfoハッシュを意味します
_include_subdomains
リクエストにサブドメインを含めるかどうかを意味します_observed
は、ブラウザが最初にリクエストを監視した UNIX時間 です_expiry
は、ブラウザがリクエストを忘れる UNIX時間 です