証明書ピニング(...)
最終更新:2026/4/27
...
別名・同義語 HPKP証明書固定化
ポイント
証明書ピニングは、信頼された認証局(CA)だけでなく、特定の証明書自体を検証することで、セキュリティを強化する。これにより、CAが侵害された場合でも、攻撃を防ぐことができる。
証明書ピニングとは
証明書ピニングは、HTTPS通信におけるセキュリティ対策の一つです。通常、ウェブブラウザやOSは、信頼された認証局(CA)によって署名された証明書を検証することで、ウェブサイトの正当性を確認します。しかし、CAが侵害されたり、不正な証明書が発行されたりするリスクがあります。証明書ピニングは、このリスクを軽減するために、特定のウェブサイトとの通信において、信頼できる証明書を固定し、それ以外の証明書を拒否する技術です。
証明書ピニングの仕組み
証明書ピニングは、ウェブサイトの証明書のハッシュ値や公開鍵をクライアント側に保存し、通信時にその値と一致するかどうかを検証します。一致しない場合、通信は中断されます。これにより、たとえCAが侵害されて不正な証明書が発行されたとしても、事前にピンニングされた証明書と一致しないため、攻撃を防ぐことができます。
証明書ピニングの種類
証明書ピニングには、主に以下の2つの種類があります。
- 証明書ハッシュピニング: 証明書のハッシュ値をピンニングします。証明書の内容が変更されるとハッシュ値も変更されるため、改ざんを検知できます。
- 公開鍵ピニング: 証明書の公開鍵をピンニングします。公開鍵が変更されると通信が中断されます。
証明書ピニングのメリットとデメリット
メリット:
- CAの侵害によるリスクを軽減できる
- 中間者攻撃を防ぐことができる
- セキュリティレベルを向上させることができる
デメリット:
- 証明書の更新時に、クライアント側の設定変更が必要になる場合がある
- 設定ミスにより、正当なウェブサイトへのアクセスが拒否される可能性がある
- 実装が複雑になる場合がある
証明書ピニングの実装方法
証明書ピニングは、ウェブブラウザやOS、アプリケーションなど、様々な環境で実装できます。ウェブブラウザでは、HTTP Strict Transport Security (HSTS) と組み合わせることで、より効果的なセキュリティ対策を実現できます。アプリケーションでは、専用のライブラリやAPIを使用して実装できます。