コンテンツへスキップ
uencoder

TLS Pinning

TLS 証明書ピン留めは、期待される証明書の公開鍵やハッシュをクライアントに埋め込み、それ以外の証明書をすべて拒否する。正規 CA が発行した偽造証明書を含む中間者攻撃を防ぐ。

目的

正規 CA 証明書を持つ敵(政府や侵害された CA など)による中間者攻撃を防ぐ。

メカニズム

クライアントはサーバ証明書の SPKI ハッシュ(ピン)を事前設定する。TLS ハンドシェイク時にサーバ証明書とピンを比較し、不一致なら接続を拒否する。種類は SPKI ピンと証明書チェーンピンである。モバイルアプリで一般的で、ブラウザでは証明書のローテーションが難しいためほとんど使わない。

ユースケース

  • モバイルアプリ API の MITM 防御
  • IoT デバイスの通信
  • 高セキュリティな API クライアント
  • サービス間通信

例

  • 入力
    pin: sha256/SPKI=abc...
    Output
    Reject on certificate mismatch

    Public key pinning

よくあるエラー

Expired pins without updates cause connection failures
Provide backup pins and a rotation policy

関連用語

References