web-dev-qa-db-ja.com

特定のドメインの証明書のピン留めをWebブラウザに追加するにはどうすればよいですか?

HPKP(HTTP公開キーのピン留め)があり、サーバーはクライアントのWebブラウザーに、アクセスするドメインに対して(将来的に)信頼する証明書を通知するために使用します。
GoogleのChromeおよびMozillaのFireFoxは、特定の証明書に固定されているWebサイトの独自のリストを提供します(Googleはこのリストのエントリを「ピンセット」と呼びます)。

他のドメインの証明書のピン留めをWebブラウザ(FireFoxなど)に追加するにはどうすればよいですか?

Webブラウザーで証明書の詳細を表示するときに「この証明書をこのURIに固定する」オプションがない理由はありますか? CAの概念を損なうのでしょうか、それとも単に実装されていないのでしょうか。

7
nks

Googleで行うことができますChrome with chrome:// net-internals /#hsts:

その画面では、Webサイトのピン留め状態(HSTS、HPKP、およびプリロード済み)を確認できますが、任意のドメインの証明書ピン留めを追加することもできます

Add domainセクションで、任意のドメインを指定できます。

  • HSTSを強制したい場合
  • 証明書を固定したい場合:公開鍵のフィンガープリントのリストを指定する必要があります

Webブラウザーで証明書の詳細を表示するときに「この証明書をこのURIに固定する」オプションがない理由はありますか? CAの概念を損なうのでしょうか、それとも単に実装されていないのでしょうか。

はい、ユーザーが証明書をピン留めするのを困難にする理由が1つあります。Webマスターが証明書を更新する必要がある場合、ユーザーに通知する方法がありません。ブラウザーはキーが有効ではないことを通知しますが、それが正当かどうかを判断する方法はありません。

chrome net internals : hsts これを行うには、証明書をマッシュエクスポートしてから、次を実行します。

openssl x509 -in certificate.crt -pubkey -noout | openssl rsa -pubin -outform der | openssl dgst -sha256 -binary | openssl enc -base64

(「certificate.crt」を以前に保存したファイルの名前に置き換えます)

YpcIku2YvZ9Q6rgTn8juPpBlEdzH7YFm9ZOLPImwwJk =のようになります。

次に、「公開キーフィンガープリント」フィールドにsha256/YpcIku2YvZ9Q6rgTn8juPpBlEdzH7YFm9ZOLPImwwJk =を入力します

(最初に追加されたsha256 /に注意してください)

ただし、複数のWebサイトで実行する場合は、Certificate Patrol for Firefox( )などのアドオンを使用することを強くお勧めします(https://addons.mozilla.org/fr/firefox/addon/certificate- patrol / )@WhiteWinterWolfが示唆したように。

3
Tom

HPKPはこのニーズに対応していません。

[〜#〜] hpkp [〜#〜] は、HTTPプロトコルの拡張機能であり、Webサイト管理者がブラウザに特定のピン情報を提供できるようにします。

  • 現在のHTTPS接続の認証チェーンを構成する証明書の少なくとも1つを確認するには(プラットフォームアーキテクチャアーキテクチャによっては、サーバー管理者が最終的な証明書ではなく中間またはルート証明書をピン留めすることを選択する場合があります)、
  • 主要なピンが紛失/漏洩した場合などに備えて、バックアップ証明書に対応する代替ピンを提示します。これにより、クライアントは、証明書が変更された後もWebサイトにアクセスできるようになります。
  • 証明書のピン留めもサブドメインに対して有効にする必要があるかどうかをブラウザに通知します。
  • 潜在的なキーの移行スケジュールに従って、ピンが適用される期間をブラウザに通知します。

HPKPが不適切に設定された場合、ブラウザはユーザーに直接頼むことなくWebサイトへのアクセスを拒否します。上記のすべての詳細は主に既知であり、最終ユーザーではなくサーバー管理者によって制御されるため、最終ユーザーはブラウザーでHPKPピンを正しく構成する方法がありません。

代わりに、ブラウザがHPKP以外のWebサイトによって提示された証明書に関するいくつかの情報を保存し、証明書の変更時にユーザーに通知して、新しい証明書を確認し、次の場合に続行することに同意できるようにする必要があります。すべてが整然としているようです。そのような機能は、少なくともFirefoxにはすでに存在しますが、 Certificate Patrol などのアドオンによって処理されます。

3
WhiteWinterWolf

他のドメインの証明書のピン留めをWebブラウザ(FireFoxなど)に追加するにはどうすればよいですか?

FirefoxにはGUIがないと思います。 Chromeについては、トムの回答を参照してください。

Webブラウザーで証明書の詳細を表示するときに「この証明書をこのURIに固定する」オプションがない理由はありますか?

はい。キーのロールオーバーが必要なときは、地獄をサポートします。

CAの概念を損なうのでしょうか、それとも単に実装されていないのでしょうか。

両方とも。そしてそれは意図的なものです。上記を参照。

1
StackzOfZtuff