web-dev-qa-db-ja.com

公開鍵ピンニングとサブドメイン

まもなく、新しいWebサーバーをインストールする予定であり、ユーザーをもう少し保護したいと思います。私はすでにドメイン、(仮想)サーバー、およびサーバーを構成するときに重要な他のすべてを持っています。基本的にこれは家族の個人用ストレージのウェブサーバーとして使用されるため、現在の場所に関係なくドキュメントを相互に共有できます。彼らは技術などにあまり詳しくないので、もう少し接続を確保したいと思います。ファイルストレージ用のWebアプリケーションと一緒に、簡単なWebサイトを作成します。将来的には、Webサーバーもブログをホストすると思います。私はこのようにウェブサイトを構築することにしました:

  • storage.domain.tld-私たちの個人用ストレージ用
  • domain.tld-簡単なWebサイトがいくつかあります(CSSファイルとJSファイルを含むHTMLファイル)
  • domain.tld/blog-しばらくすると、このアドレスはブログに使用されると思います

StartSSLを使用して、Webサーバーにインストールされる証明書に署名します。 HPKPにはバックアップ証明書が必要なため、将来障害が発生した場合に備えて、追加の証明書も作成します。少し読んだ後、HPKPの構成方法は正しく理解できたと思いますが、サブドメインの処理方法と、HPKPヘッダーが正しく構成されていない場合に何が問題になる可能性があるのか​​まだわかりません。

したがって、最初にサブドメインについて...私たちの家族のほとんどはstorage.domain.tldを使用します。 StartSSLは、メインドメインと1つのサブドメインの証明書の署名を可能にします。 domain.tldにのみ設定し、includeSubdomainsを追加した場合、ブラウザーはサブドメインのHPKPヘッダーを認識しますか?実際にアクセスしたドメインでのみブラウザがHPKPヘッダーを認識する場合はどうすればよいですか?私はここで何をすべきか考えがないので、このトピックに関するいくつかの提案も見たいと思います。

そして、誤って構成されたHPKPについての2番目のこと。すべてを設定するときは、HPKPヘッダーのmax-ageを約60に設定すると思います(HPKPが正しく機能するかどうかをテストするには1分で十分です)。成功した後、私は最大年齢を半年に延長すると思います。私が正しく理解していれば、ブラウザはHPKPヘッダーの公開鍵がWebサーバーのものと同じであるかどうかをチェックするだけです。一致するものがあれば、すべて問題ないはずです。では、HPKPの正しい設定を確認するための他のサービスへの接続はありませんか?ブラウザをプライベートモードで使用していて、HPKPが正しく構成されていないサイトにアクセスした場合、HPKPヘッダーを削除して非プライベートモードでサイトに再度アクセスすると、この問題は解消されますか?

私の質問に対するすべての提案とコメントに感謝します。前もって感謝します!

1
user1257255

Domain.tldにのみ設定し、includeSubdomainsを追加した場合、ブラウザーはサブドメインのHPKPヘッダーを認識しますか?

ユーザーがdomain.tldにアクセスせず、HPKPヘッダーがこのドメインへのリクエストでのみ送信される場合、ブラウザーにはHPKPヘッダーが表示されません。ただし、ブラウザがヘッダーを確認した後でのみ、効果があります。ブラウザがヘッダーを確認すると、指定したのでサブドメインにも影響しますが、サブドメインのみのリクエストを行う場合、ヘッダーは魔法のようにブラウザに移動しません。したがって、影響を受けるすべてのドメインにヘッダーを追加して、ブラウザーがヘッダーを取得し、更新も取得するようにする必要があります。

では、HPKPの正しい設定を確認するための他のサービスへの接続はありませんか?

正しい。 HPKPは、ブラウザとHPKPヘッダーを送信するサーバー(サーバー)との間の通信のみを使用します。すべてはあなたの管理下にあります。そして、あなたがそれを台無しにした場合、あなただけがそれを修正することができます。

ブラウザをプライベートモードで使用していて、HPKPが正しく構成されていないサイトにアクセスした場合、HPKPヘッダーを削除して非プライベートモードでサイトに再度アクセスすると、この問題は解消されますか?

私にはこれの情報源はありませんが、私はそれを疑っています。 HPKPはプライベートモードで完全に共有されるため問題が解決しないか、共有が行われない場合、問題はプライベートモードでは発生せず、非プライベートモードでも発生します。共有が一方向にのみ行われ、特にプライベートモードから非プライベートモードに行われることはないと思います。

3
Steffen Ullrich

上記のSteffanの回答に応えて、長さのために別の回答として投稿

Chrome:// net-internals /#hstsページを使用すると、ChromeのコピーからHPKPを簡単に削除できます。他のブラウザはそれほど多くありません。

リーチパーソンを訪問できない限り、他のすべての人のChromeから削除することはできません(これはユースケースでは可能かもしれませんが、一般的にはキットです)。

IncludeSubDomainは、サブドメインがない場合でもより安全であるため、役に立たないことに同意しないでください。たとえば、誰かがあなたのサイトが使用しているDNSにアクセスでき、そのサイトにアクセスするように説得した場合、誰かがfake.domain.tldを設定し、domain.tldのCookieにアクセスできるようになります。はいとは思われませんが、HPKPが保護を提供するユースケースも同様です(誰かがドメインの認識された証明書を作成し、アクセスしてもらうことができます)。

個人的には、HPKPを主流の用途として検討する必要はないと思います。正直なところ、欠点が多すぎて、これらの欠点が十分に指摘されていないと思います。 元の質問 にトピックから外れることに興味がある場合は、ここでブログに投稿しました。

1
Barry Pollard