CAAレコード -- 認証局の認可

CAA DNSレコードを使用して、ドメインのSSL/TLS証明書を発行できる認証局を制限する方法を解説します。不正な証明書発行を防止しましょう。

CAASecurity

Zone File Entry

example.com.    IN    CAA    0 issue "letsencrypt.org"
example.com.    IN    CAA    0 issuewild "letsencrypt.org"
example.com.    IN    CAA    0 iodef "mailto:security@example.com"

詳細な説明

CAAレコードとは?

CAAレコード(Certificate Authority Authorization)は、ドメインのSSL/TLS証明書を発行することが許可される認証局(CA)を指定します。2017年以降(CA/Browser Forum Ballot 187に基づき)、すべてのCAは証明書を発行する前にCAAレコードを確認することが義務付けられています。

BINDゾーンファイルの構文

; Let's Encryptのみに証明書発行を許可
example.com.    3600    IN    CAA    0 issue "letsencrypt.org"

; Let's Encryptに通常の証明書を許可、ワイルドカードはすべて拒否
example.com.    3600    IN    CAA    0 issue "letsencrypt.org"
example.com.    3600    IN    CAA    0 issuewild ";"

; 複数のCAを許可
example.com.    3600    IN    CAA    0 issue "letsencrypt.org"
example.com.    3600    IN    CAA    0 issue "digicert.com"
example.com.    3600    IN    CAA    0 issue "sectigo.com"

; 違反の報告
example.com.    3600    IN    CAA    0 iodef "mailto:security@example.com"

CAAタグ

タグ 説明
issue 非ワイルドカード証明書の発行をCAに認可
issuewild ワイルドカード証明書の発行をCAに認可
iodef ポリシー違反をこの連絡先に報告(メールまたはURL)

CAAチェックの仕組み

CAがwww.example.comの証明書リクエストを受け取った場合:

  1. CAがwww.example.comのCAAレコードを問い合わせ
  2. 存在しない場合、example.comを確認
  3. 存在しない場合、com.(親ゾーン)を確認
  4. どのレベルにもCAAレコードが見つからなければ、CAは発行を許可される
  5. CAAレコードが存在し、そのCAがリストにない場合、発行は拒否される

つまり、CAAレコードを1つでも追加すると、リストされたCAのみに発行が即座に制限されます。

フラグフィールド

タグの前の数値(通常0)はフラグフィールドです:

  • 0:非クリティカル -- CAがタグを理解できない場合、処理を続行できる
  • 128:クリティカル -- CAがタグを理解できない場合、発行を拒否しなければならない

実際には、すべてのCAがissueissuewildiodefを理解するため、標準タグには常に0を使用してください。

ワイルドカード証明書の制御

issuewildタグは、ワイルドカード証明書(*.example.com)を特に制御します。issueレコードのみ存在する場合、通常証明書とワイルドカード証明書の両方に適用されます。issuewildレコードが存在する場合、ワイルドカードリクエストに対してのみissueを上書きします。

すべてのワイルドカード証明書をブロックするには:

example.com.    IN    CAA    0 issuewild ";"

セキュリティ上のメリット

  • 誤発行の防止:未認可のCAがドメインの証明書を発行することを阻止
  • インシデント通知iodefタグにより、CAがポリシーに基づいてリクエストを拒否した際にアラートを受信
  • 多層防御:Certificate Transparencyのログ記録やHSTSプリロードを補完
  • サブドメイン保護:CAAレコードはオーバーライドされない限りサブドメインに継承される

ユースケース

CAAレコードを追加して、ドメインのSSL/TLS証明書を発行できる認証局を制限し、不正な証明書発行のリスクを軽減します。

試してみる — DNS Record Generator

フルツールを開く