DNS Certification Authority Authorization(CAA)は、
ドメイン名の所有者が、どの
認証局(CA)に対して自分の
ドメイン名の
公開鍵証明書の発行を許可するかを定めることができる、インターネットセキュリティポリシーのメカニズムです。この仕組みは、新たに導入された「CAA」というDNSレコードを利用することで実現しています。
背景として、公開的に信頼されている
認証局のセキュリティに関する懸念の高まりを受け、コンピュータ科学者のPhillip Hallam-BakerとRob Stradlingによってこのメカニズムの草案が作成されました。現在、
Internet Engineering Task Force(IETF)の提案標準として提案されています。
具体的には、CAAレコードを用いることで、ドメインの所有者は、特定の
認証局のみに証明書の発行を許可したり、逆にすべての
認証局による発行を禁止したり、不正な証明書リクエストがあった場合に特定のメールアドレスやシステムに通知させたりすることができます。
CAAレコードの具体的な設定例
以下にいくつかのCAAレコードの例を示します。
1.
特定の認証局のみに証明書発行を許可する例
例えば、`ca.example.net`という名前の
認証局に対してのみ、`example.com`とそのすべてのサブドメインの証明書の発行を許可する場合、次のようなCAAレコードをDNSに設定します。
example.com. IN CAA 0 issue "ca.example.net"
2.
すべての認証局による証明書発行を禁止する例
すべての
認証局による証明書の発行を禁止したい場合は、発行者リストを空にするように設定します。
example.com. IN CAA 0 issue ";"
3.
無効な証明書リクエストの通知設定例
不正な証明書リクエストがあった場合に、特定のメールアドレスやReal-time Inter-network Defenseシステムに通知するように設定するには、`iodef`タグを使用します。
example.com. IN CAA 0 iodef "mailto:
[email protected]"
example.com. IN CAA 0 iodef "http://iodef.example.com/"
4.
将来のプロトコル拡張に対応する例
将来的なプロトコルの拡張を利用するために、例えば
認証局が安全に処理する前に認識する必要がある新しい`future`という名前のプロパティを利用する場合、issuer criticalフラグを設定できます。
example.com. IN CAA 0 issue "ca.example.net"
example.com. IN CAA 128 future "value"
このように、CAAレコードはドメインのセキュリティポリシーを細かく制御するための強力なツールとなります。
その他の関連事項
CAAに関連するセキュリティの概念として、以下のものがあります。
Certificate authority compromise: 認証局の侵害。
Certificate Transparency: 証明書の透明性。
DNS-based Authentication of Named Entities: DNSベースの名前付きエンティティの認証。
HTTP Public Key Pinning: HTTP公開鍵ピンニング。
List of DNS record types: DNSレコードタイプのリスト。
参考文献
以下に、CAAに関する詳細な情報源へのリンクを示します。
RFC 8659
*
List of CA identifiers for use in CAA records at Common CA Database
CAAの導入は、ウェブサイトのセキュリティを強化するための重要なステップです。ドメインの所有者は、CAAレコードを適切に設定することで、不正な証明書発行を防ぎ、ドメインの安全性を高めることができます。