TLS Pinning
TLS 証明書ピン留めは、期待される証明書の公開鍵やハッシュをクライアントに埋め込み、それ以外の証明書をすべて拒否する。正規 CA が発行した偽造証明書を含む中間者攻撃を防ぐ。
目的
正規 CA 証明書を持つ敵(政府や侵害された CA など)による中間者攻撃を防ぐ。
メカニズム
クライアントはサーバ証明書の SPKI ハッシュ(ピン)を事前設定する。TLS ハンドシェイク時にサーバ証明書とピンを比較し、不一致なら接続を拒否する。種類は SPKI ピンと証明書チェーンピンである。モバイルアプリで一般的で、ブラウザでは証明書のローテーションが難しいためほとんど使わない。
ユースケース
- モバイルアプリ API の MITM 防御
- IoT デバイスの通信
- 高セキュリティな API クライアント
- サービス間通信
例
- 入力
pin: sha256/SPKI=abc...OutputReject on certificate mismatchPublic key pinning
よくあるエラー
- Expired pins without updates cause connection failures
- Provide backup pins and a rotation policy