如何通过CAA记录限制证书颁发机构(CA)签发SSL证书

本文详细介绍了CAA(DNS证书颁发机构授权)记录的作用、语法格式及配置方法,通过限制可颁发SSL证书的CA机构来提升域名安全性,并分析了当前互联网CAA记录的采用现状。

限制证书颁发机构(CA)签发SSL证书:启用DNS中的CAA记录

什么是CAA?

CAA(证书颁发机构授权)是一种DNS记录类型,用于指定哪些证书颁发机构(CA)有权为特定域名签发证书。该记录通过公开可查的DNS记录声明,CA在颁发证书前必须进行验证。

背景知识

虽然CAA的首个草案由Phillip Hallem-Baker和Rob Stradling在2010年提出,但过去5年由于CA相关问题和黑客攻击频发而加速发展。历史上首次CA违规事件发生在2001年,VeriSign向冒充微软代表的个人颁发了名为"Microsoft Corporation"的证书。2011年,Comodo和DigiNotar在被伊朗黑客攻击后签发欺诈证书。2012年Trustwave签发用于SSL流量嗅探的子根证书。

未配置CAA记录的风险

若未配置CAA记录,任何CA都可为您的域名签发证书。CAA记录相当于在域名级别对CA进行白名单限制。根据现行规范,CA必须查询域名的CAA记录,仅当无记录或CA在白名单中时才能签发证书。

CAA记录语法格式

CAA记录格式为:<flag> <tag> <value>

  • flag:整数标志(1-255),目前用于关键标志

  • value:标签定义的属性值

主要标签说明:

  • iodef:指定违规报告方式(mailto/http/https)

DNS软件支持情况

支持CAA记录的DNS软件包括:

  • BIND(9.10.1B及以上)
  • Knot DNS(2.2.0及以上)
  • PowerDNS(4.0.0及以上)
  • Windows Server 2016等

主流DNS服务商如Amazon Route 53、Cloudflare、Google Cloud DNS也提供支持。

实际配置示例

作者网站配置示例:

1
2
3
4
5
6
7
8







0 iodef "mailto:[email protected]"

互联网现状

审计发现Alexa Top 10,000网站中仅4%配置了CAA记录,网络安全措施仍有很大提升空间。

参考资料:

  1. Comodo CA攻击事件
  2. DigiNotar攻击事件
  3. Trustwave子根证书事件
  4. CAA强制检查规范(Ballot 187)
  5. IETF RFC 6844标准
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计