CAAレコードとは?
CAA(認証権限認証)レコードは、ドメインのSSL/TLS証明書を発行するために、認証権限(CA)が許可されているDNSレコードタイプです。 CAAは、攻撃者がCAを侵害しても、不正な証明書の発行を防ぎ、セキュリティ制御として機能します。
なぜ CAA レコードのマット
CAAレコードがなければ、信頼できるCAの何百人も、あなたのドメインの証明書を発行することができます。 これはリスクを作成します。
- CAの妥協: 信頼できる CA が妥協している場合、攻撃者はドメインの証明書を取得できます。
- Mis-issuance: CAsは時折証明書を誤って発行します
- 社会工学: 攻撃者は、CAを不正な証明書を発行する可能性があります
CAAレコードは、あなたのドメインのためにどのCAが発行できるかを制限することにより、攻撃面を減らします。
CAAの仕組み
1. ドメイン所有者が公開 DNSのCAAレコード
2. 証明書依頼者 証明書は、証明書の CA を要求します
3. CA チェック ドメインの CAA レコード
4. CA の問題 許可されている場合のみ (または CAA レコードが存在しない場合)
5. 不正な場合、CAは要求を拒否しなければなりません
必須 CA チェック
2017年9月現在、証明書発行前に、CAAの記録を確認するためには、全てのCAが必要です。 これは、CA / Browserフォーラムベースライン要件の一部です。
CAAレコードフォーマット
example.com. IN CAA 0 issue "letsencrypt.org"
コンポーネント:
-0:フラグ(0 =非クリティカル、128 =クリティカル)
- issue/issuewild/iodef : プロパティタグ
- 「letsencrypt.org」: プロパティ値(公認CA)
プロパティタグ
| タグ | ミッション | 事例紹介 |
|---|---|---|
| ニュース | すべての証明書のCAを承認する | 「letsencrypt.org」を発行 |
| パスワード | ワイルドカード証明書のCA認証 | 問題「digicert.com」 |
| iodefについて | 不正な試みを報告する | iodef "mailto:security@example.com" |
CAAレコード例
##シングルCA(暗号化のみ)
example.com. CAA 0 issue "letsencrypt.org"
複数の CAs
example.com. CAA 0 issue "letsencrypt.org"
example.com. CAA 0 issue "digicert.com"
example.com. CAA 0 issue "sectigo.com"
##ワイルドカード制限
通常のcerts、ワイルドカード用のDigiCertのために暗号化しましょう:
example.com. CAA 0 issue "letsencrypt.org"
example.com. CAA 0 issuewild "digicert.com"
##Deny すべて (証明書なし)
証明書を持たないドメインに便利です。
example.com. CAA 0 issue ";"
レポート付き
example.com. CAA 0 issue "letsencrypt.org"
example.com. CAA 0 iodef "mailto:security@example.com"
一般的なCA識別子
| アメリカ | 識別子 |
|---|---|
| 暗号化しましょう | letsencrypt.org |
| ディジコート | digicert.com |
| Sectigo (コモド) | sectigo.com |
| グローバルサイン | globalsign.com |
| ゴーダディ | godaddy.com |
| アマゾン | amazon.com |
| Googleの信頼サービス | pki.googさん |
ご使用の CA のドキュメントを正確に識別子にチェックします。
CAAレコードの実装
DNS プロバイダーによる ##
ほとんどのDNSプロバイダは、インターフェイスでCAAレコードサポートを持っています。
ゾーンファイル経由
; Allow Let's Encrypt and DigiCert
@ IN CAA 0 issue "letsencrypt.org"
@ IN CAA 0 issue "digicert.com"
@ IN CAA 0 iodef "mailto:security@example.com"
CAAの継承
CAAレコードは、DNS階層に従います。
- example.comがCAAレコードを持っている場合、それらはサブドメインに適用します
- サブドメインは、独自のCAAレコード(オーバーライド親)を持つことができます。
- CAAレコードなし = CAは問題ありません
example.com. CAA 0 issue "letsencrypt.org" ; Applies to all
api.example.com. CAA 0 issue "digicert.com" ; Override for api
CAAレコードの確認
掘る:dig example.com CAA
; ANSWER SECTION:
example.com. 300 IN CAA 0 issue "letsencrypt.org"
DomScanの使用:
curl "https://domscan.net/v1/health?domain=example.com"
# Reports hasCAA in security details
CAAベストプラクティス
1. 常にCAAを構成します: 攻撃面を削減
2. 使用しているすべてのカリフォルニアを含む: CDN/クラウドプロバイダCAを忘れないでください
3. 設定 iodef: 不正な試みの通知を得る
4. 強制する前のテスト: CA を検証しても問題が起きる
5. キープレコード更新: 証明書を要求する前に新しいCAを追加
共通CAAの問題
証明書の更新は失敗します:CAAレコードにないCAは、証明書が期限切れする前にそれらを追加します CDN 証明書が失敗: CDN プロバイダの CA が承認されていない - CDN が使用している CA をチェックする ミシングサブドメインCAA: 子は、必要に応じて、親のCAAを継承します。CAAは、すべてのドメインが実装すべきシンプルで強力なセキュリティ制御です。