web-dev-qa-db-ja.com

HPKPはサーバーまたはクライアントに適用されますか?

HPKPについて学習しようとしていますが、HTTPSを介したMiTM攻撃を軽減するためのユーザーエージェントの保護レベルにすぎないのか、サーバーも役割を果たしているのかを把握しようとしています。

私は文字通りこれについて今学習し、読んで、グーグルしているだけなので、進行中の質問の詳細が用語や概念を誤って使用している可能性があることを覚えておいてください。私自身の教育のために、そして同じ限られた情報でこの質問に私の後に来るかもしれない他の人たちのために、私/彼らの無知を自由に軽減してください。

そのため、現在理解しているように、サーバーは関連するHPKPヘッダーをユーザーエージェントに配信します。その場合、それを実施するのは、Webブラウザなどのエージェントだけです。サーバーで検証が行われているようには見えません。

つまり、Pinningヘッダーの詳細を完全に無視するカスタムクライアントを作成できます。確かにヘッダーを受信しますが、私のカスタムクライアントは、(HTTPSプロトコルの範囲内で)適切と思われる方法でHTTPS要求を自由に行うことができます。明らかに、私は架空のユーザーをこの情報を無視するリスクにさらすことになります。

サーバーの検証が行われていないので、私は完全に自由ですがskipそれで、すべてが正常に進行します。

要約すると、HPKPはユーザーエージェントにバインドされた機能であり、HSTSと同じ方針に沿ったサーバーにバインドされた機能ではないようです。これらは、エージェントに「ねえ、これを実行してください。ただし、それは本当にあなた次第です」と伝える応答ヘッダーです。私が責任あるユーザーエージェントの作成者であり、ユーザーのセキュリティに関心がある場合は、ユーザーエージェントを準拠させます。ただし、コンプライアンスはオプションです。

1
Adam Venturella

はい、HSTSとHPKPの両方がクライアント/ユーザーエージェントによって実施されます。サーバーが行うことは、応答ヘッダーを生成することだけです。

MITM /傍受シナリオでは、サーバーがポリシーの実施にまったく関与していない可能性があるため、サーバーはコンプライアンスを実施できません。

4
Lie Ryan