HPKPとは何ですか?

HPKPは非推奨のWebセキュリティ応答ヘッダーであり、頭字語はHTTP公開鍵ピンを表します。これは、侵害された、または不正な認証局が、公的に信頼されているがハッカーが制御するHTTPS証明書をWebサイトに発行するのを防ぐことを目的としています。このシナリオでは、ハッカーは影響を受けるWebサイトへの傍受されたHTTPSトラフィックを復号化できます。

ヒント:Web応答ヘッダーは、サーバーが要求に応答するときに含めるメタデータの一部です。これらの小さなサブセットは、さまざまなセキュリティ機能を有効にして構成するため、セキュリティヘッダーと呼ばれます。

HTTPS証明書インフラストラクチャ

HTTPSが構築されている証明書インフラストラクチャは、信頼のWebに基づいています。多くの企業が、1つ以上のルート証明書を公開する認証局(CA)として機能します。ルート証明書のセットは、トラストストア内のすべてのデバイスに含まれています。WebサイトがCAに独自のHTTPS証明書を要求すると、証明書はルート証明書によって署名されます。コンピューターがHTTPS証明書を検出すると、署名をチェックします。証明書が信頼するルート証明書によって署名されている場合、コンピューターはHTTPS証明書も信頼します。

ヒント:CAは、ルート証明書によって署名された中間証明書を持つこともできます。これらの中間証明書は、WebサイトのHTTPS証明書に署名するためにも使用できます。

認証局の仕事は、証明書を要求した人がWebサイトの真の所有者であることを確認した場合にのみ証明書を発行することです。この構造の考え方は、ハッカーがWebサイト用に独自の証明書を作成した場合、その証明書はコンピューターが信頼するCAによって署名されないため、警告が表示されるというものです。

HPKPは何をしましたか?

証明書システム全体は、認証局の信頼性に依存しています。ただし、当初は、CAがハッカーによって侵害されたり、不正になり、証明書を誤って発行することを選択したりすることに対する保護はありませんでした。

HPKPは、この可能性に対する保護となるように設計されています。これにより、Webサイトは、ピン留めと呼ばれるプロセスでWebサイトに対して信頼できる証明書の排他的なリストを指定できます。ルート証明書または中間証明書を固定することが可能であり、基本的に単一のCAがWebサイトの証明書を発行できるようになりました。Webサイト自体の証明書を固定して、適切なCAでさえ別の有効な証明書を発行できないようにすることも可能でした。

技術的には、固定されるのは証明書自体ではなく、証明書のキーのハッシュです。ハッシュは一方向の暗号化関数です。これは、Webサイトによってブラウザーに提示された証明書が固定された証明書と一致することを確認することは可能ですが、ハッシュを使用して有効な証明書を作成することはできないことを意味します。

HPKPでは、少なくとも2つのキーを固定する必要があり、そのうちの少なくとも1つはバックアップであり、現在の証明書チェーンに含まれていない必要があります。このバックアップにより、ユーザーが接続できなくなることのない、新しい証明書へのスムーズなハンドオーバーを構成できます。

Webサイトによってブラウザーに提示されたHTTPS証明書が、固定された証明書の1つと一致しない場合、ブラウザーはそれを拒否し、ユーザーが証明書のエラーメッセージをバイパスしないようにする必要があります。

HPKPの構造

HPKPヘッダーには、3つの必須部分と2つのオプション部分があります。ヘッダーには「Public-Key-Pins」というタイトルを付ける必要があります。次の2つ以上の証明書には、base64でエンコードされたSHA256ハッシュを「pin-sha256 =」」の形式で固定する必要があります。最後の必須部分は「max-age」です。これは、ブラウザーが制限を適用する時間の秒単位のカウントです。

ヒント:SHA256は、HPKPで使用されるハッシュアルゴリズムです。Base64は、0〜9、az、AZ、および特殊文字「+」と「/」の64文字で構成される文字セットです。「=」は、必要に応じて最後の2文字までパディングするために使用されます。 

オプションの設定は「includeSubDomains」と「report-uri」です。「includeSubDomainsは、「max-age」タイマーの期間中、現在のWebサイトの任意のサブドメインにHPKP保護を適用するようにブラウザーに指示します。「report-uri」は、エラーレポートを送信できるWebサイトを指定できる機能であり、問​​題の特定と解決に役立つように設計されています。

「Public-Key-Pins-Report-Only」というタイトルのヘッダーの2番目のバリアントがあります。すべて同じですが、エラーが見つかった場合、ブラウザと「report-uri」(設定されている場合)にエラーメッセージを返す以外のアクションは実行されません。レポートのみのバリアントは、展開前にヘッダーの本格的なテストを可能にするように設計されており、エラーによってユーザーに問題が発生することはありません。

HPKPの問題

HPKPは、2つの主な理由で非推奨になりました。ヘッダーがそれを使用するWebサイトに深刻な問題を引き起こす可能性がある2つの方法があり、これらはHPKPSuicideとRansomPKPと名付けられました。

HPKP Suicideは、Webサイトの正当な所有者がピン留めされたすべてのキーにアクセスできなくなる問題です。これは、偶発的な削除、ハッキング、ウイルス、データの破損、またはその他の多くの理由で発生する可能性があります。HPKPを正しく実装すること、特に証明書のローテーション中にHPKPを更新し続けることは複雑であるため、構成エラーを起こすのは比較的簡単です。ただし、HPKPを使用すると、問題が発生した場合、最近Webサイトにアクセスしたすべてのユーザーが、「最大年齢」タイマーの期間中、Webサイトにアクセスできなくなります。ウェブサイトsmashingmagazine.comは、まさにこの問題の経験を詳述した記事を投稿しました。これにより、修正が展開される前の4日間、ほとんどの訪問者がサイトをオフラインにしました。

身代金PKPは、ハッカーがWebサーバーにアクセスし、信頼できるすべての証明書とキーを盗み、その返還のために身代金を要求する理論上の攻撃です。通常の設定では、新しいキーと証明書を生成するだけで、1時間以内にWebサイトをバックアップして実行できます。ただし、HPKPを有効にすると、これらのキーは固定されます。固定された証明書をユーザーに提供できない場合、「最大年齢」タイマーの間、ユーザーはWebサイトにアクセスできません。構成によっては、バックアップが存在する場合、この問題を解決できない可能性があります。

これらの問題の両方で、新しいユーザーは通常どおりWebサイトにアクセスできます。これは、古いHPKPヘッダーが、現在欠落している証明書のみを信頼するようにブラウザーに指示するのを見たことがないためです。ただし、常連客や読者など、最近のすべての訪問者は、「最大年齢」タイマーの全期間を待つ必要があります。

これらの問題の重大度と構成および保守の複雑さを考えると、HPKPヘッダーの使用は非常に少なかった。最終的に、主要なブラウザは完全にサポートを終了することに同意し、数年以内にHPKPヘッダーは一般的に非推奨になりました。



Leave a Comment

ミュゼプラチナム、破産へ - 長年の実績、オーナー、そして何が起きてしまったのか?救済の道は?

ミュゼプラチナム、破産へ - 長年の実績、オーナー、そして何が起きてしまったのか?救済の道は?

大手脱毛サロンチェーン「ミュゼプラチナム」が、現在、破産という危機に瀕しています。2025年5月、複数の報道機関によって、同社を運営する株式会社MPHに対し、債権者である従業員らが破産手続きの申し立てを準備していることが報じられました。長年にわたり多くの女性に支持されてきたミュゼプラチナムに一体何が起こっているのでしょうか。

トゥン・トゥン・トゥン・サフール:2025年ラマダンのTikTokで爆発的人気のミーム

トゥン・トゥン・トゥン・サフール:2025年ラマダンのTikTokで爆発的人気のミーム

「トゥン・トゥン・トゥン・サフール(Tung Tung Tung Sahur)」は、2025年初頭にTikTokで爆発的に広まったバイラルミームで、イスラム教の聖なる断食月であるラマダンと密接に関連しています。

修正: Windows 11 でピン留めされていないアプリが再度表示される問題

修正: Windows 11 でピン留めされていないアプリが再度表示される問題

ピン留めが解除されたアプリやプログラムがタスクバーに再度表示される場合は、Layout XMLファイルを編集してカスタム行を削除できます。

Firefoxの自動入力から保存された情報を削除する方法

Firefoxの自動入力から保存された情報を削除する方法

WindowsおよびAndroidデバイス用の簡単な手順で、Firefoxの自動入力から保存された情報を削除します。

iPod Shuffleのソフトリセットとハードリセットの方法

iPod Shuffleのソフトリセットとハードリセットの方法

このチュートリアルでは、Apple iPod Shuffleのソフトリセットまたはハードリセットを実行する方法を示します。

AndroidでGoogle Playのサブスクリプションを管理する方法

AndroidでGoogle Playのサブスクリプションを管理する方法

Google Playには多くの素晴らしいアプリがあり、サブスクリプションを登録せずにはいられません。しかし、それが増えると、Google Playのサブスクリプションを管理する必要が出てきます。

Galaxy Z Fold 5でSamsung Payを使用する方法

Galaxy Z Fold 5でSamsung Payを使用する方法

ポケットや財布の中で支払い用のカードを探すのは本当に面倒です。近年、さまざまな企業が非接触型支払いソリューションを開発・発売しています。

Androidのダウンロード履歴を削除する方法

Androidのダウンロード履歴を削除する方法

Androidのダウンロード履歴を削除することで、ストレージスペースが増えます。以下の手順を実行してください。

Facebookから写真やビデオを削除する方法

Facebookから写真やビデオを削除する方法

このガイドでは、PC、Android、またはiOSデバイスを使用してFacebookから写真やビデオを削除する方法を説明します。

Galaxy Tab S9をリセットする方法

Galaxy Tab S9をリセットする方法

Galaxy Tab S9 Ultraを使っている間、時にはリセットが必要になる場合があります。ここでは、Galaxy Tab S9をリセットする方法を詳しく説明します。