FirefoxでのHTTP Strict Transport Security(HSTS)の実装を見ていました。 FirefoxはサイトのこのデータをSiteSecurityServiceState.txt
というファイルに保存します
私はそれにエントリを見る-
support.mozilla.org:HPKP 3 17242 1483383397412,1,0、r/mIkG3eEpVdm + u/ko/cwxzOMo1bk4TyHIlByibiA5E = WoiWRyIOVNa9ihaBciRSC7XHjliYS9VwUGOIud4PB1818:web.HS0791979.TS181979.TS1818.com
HSTSは私が探していたものです。これは、対応するヘッダーを応答ヘッダーで送信するようにWebサーバーで構成されます。ブラウザはそれを保存し、後続のすべてのリクエストが常に正しいhttpsと証明書に送られるようにします-例外を追加することを許可しません(少なくともFirefoxで)。
では、このHPKPとは何ですか?他のセキュリティ設定ですか?
HSTSとHPKPは異なる概念です。
HTTP Strict Transport Security(HSTS)ヘッダーは、Webサイトへの今後のすべての接続にHTTPSを使用するようにクライアントに指示し、ダウングレード攻撃を防ぎます。 HPKPとは異なり、証明書の検証方法には影響しません。
HTTP公開キーのピン留め(HPKP)ヘッダーは、特定の公開キーをドメインにピン留めするようクライアントに指示します。したがって、 HPKP-supporting browser がHPKPヘッダーを検出すると、指定された公開鍵ハッシュを記憶し、それらをそのドメインに関連付けます。将来(指定されたmax-age
タイムアウトの期限が切れるまで)、証明書の信頼チェーン内のいずれかのキーが関連するハッシュのいずれかと一致する場合にのみ、ブラウザはそのドメインの証明書を受け入れます。
HPKPは、認証局を危険にさらした後に攻撃者が不正な証明書を発行するリスクを軽減します( ときどき発生する )。信頼された [〜#〜] ca [〜#〜] によって正しく署名されている場合、ブラウザーは通常、不正な証明書を検出できません。 (証明書の失効を検出するメカニズムはありますが、たとえば [〜#〜] ocsp [〜#〜] / CRLs です。)ただし、特定の証明書を事前にWebサイトにアクセスしている場合、攻撃者はブラウザを停止させずにWebサイトを置き換えることはできません。
HPKPは trust-on-first-use であるため、(HSTSと同様に)Webサイトに初めてアクセスした後でのみ有効になります。例外は、注目のWebサイト(Google、Facebook、Twitterなど)のブラウザーベンダーによって維持されるプリロードリストです。つまり、DigiCert(FacebookのCA)が今日侵害されたとしても、元の証明書の公開鍵がブラウザーにプリロードされているため、攻撃者はFacebookへの接続を傍受できません。
これはhttp公開鍵の固定です。これは、侵害されたCAに対する何らかの(ただし、全体ではない)保護を提供することを目的としています。