LoginSignup
0
1

More than 1 year has passed since last update.

HPKP(証明書ピンニング)について調べた時のあれこれ

Posted at

きっかけはAWS

先日AWSさんより以下のお達しがありました。

背景:
 2023 年 2 月 1 日から 2023 年 3 月 31 日までの間に、Amazon は Amazon が発行したすべてのパブリック証明書を、旧来の中間 CA, intermediate certificate authority (ICA) から、2022 年 10 月に導入された複数の中間 CA (ICA) /下位認証局のいずれかに移行します。
※証明書のピン留めによって既存の ICA 情報を明示的に利用しない限り、お客様による操作は必要ありません
参考:AWSドキュメント
https://docs.aws.amazon.com/ja_jp/acm/latest/userguide/troubleshooting-pinning.html

この「※証明書のピン留め」というのが証明書ピンニングというものだそうです。
参考:https://www.digicert.com/jp/blog/certificate-pinning-what-is-certificate-pinning

何がマズいの?

認証局を移行する => 違う証明書が必要になる = 今までの証明書が使えない = 通信断‼ = 悪即斬‼

AWSさんからの指令:証明書pinning をしていると影響がある可能性ありますので、確認いただけると助かります。

OK、完全に理解した
証明書がピンニングされてるかどうか調べればいいんですね。
楽勝楽勝~~(フラグ)

とりあえずACMにあるパブリック証明書を確認してみよう。

あれ、設定ひと通り見たけどそれっぽいものが無い。。。

いや、証明書はどうやらロードバランサーに紐づいてるからそっちを見てみよう。

リスナーの「Default SSL Cert」に設定されてることは分かったが

分かったが?・・・分からん。

僕「Google先生~、証明書 ピンニング 確認方法~」

G先生「これとかこれとか、こんなんどう?、知らんけど」

ダメだ、解決できない(汗)

途中 teratail で同じ質問してる同志がいたが、あとから様子見に行くと削除されてた。。。

これは言い出しっぺ?のAWSさんに聞くしかない。

僕「AWSさん、たすけて」

AWSさん「参考:https://developer.mozilla.org/ja/docs/conflicting/Web/Security/Certificate_Transparency

HPKP の有効化
サイトでこの機能を有効化するには、サイトに HTTPS でアクセスされたとに、 HTTP の Public-Key-Pins (en-US) ヘッダーを返す必要があります。
Public-Key-Pins: pin-sha256="base64=="; max-age=expireTime [; includeSubDomains][; report-uri="reportURI"]

なるほど、このページはピンニングする側の確認方法ではないけれど、
ピンニングした証明書を使ってアクセスするためには、アクセスされるサーバー側にPublic-Key-Pins (en-US) ヘッダーを返す設定が必要なのね。
つまりサーバー側にその設定がされてるかどうか確認すればいいと。

よし、

開発チームに依頼しよう(ぶん投げ)

というわけで調査依頼を出して終了したのでした。
めでたしめでたし

そもそも

https://www.digicert.com/jp/blog/certificate-pinning-what-is-certificate-pinning
こちらでも言及されている通り、

Googleは、2011年(英語リンク)にChromeブラウザでメインWebサイトの発行認証局をピン留めしたことで、最初にピン留めを利用し始めた例の1つとなりました。
~
中略
~
安全かつ確実にピン留めを実装することの難しさから、サイトの保護よりもピン留めにより弊害が起こるケースが増えてきました。これらを含む多くの問題が見つかり、やがてGoogleとFirefoxはHPKP導入後わずか数年後にサポートをやめることになりました

2011年から数年後には非推奨となっており、プロジェクト担当のAWSさんも「おそらく大丈夫でしょう」とコメントされていました。

所感

HPKP自体は既に非推奨となってしまった技術で、これを知ったからと言って自分が開発するサービスに役立つかというと必ずしもそうではない確率が高い。
だがしかし
インターネットの歴史の一端を垣間見れた気分で個人的には楽しかった。
(本音:お金貰って勉強できるの最高~

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1