限制证书颁发机构(CA)签发SSL证书。在DNS中启用CAA记录
Cyber Sins and Security - Rishi Narang的博客
什么是CAA?
CAA或证书颁发机构授权是一种记录,用于标识哪些CA(证书颁发机构)被允许为相关域名颁发证书。它通过DNS记录中的CAA类型声明,公开可见,并且可以在证书颁发机构颁发证书之前进行验证。
简要背景
尽管第一份草案由Phillip Hallem-Baker和Rob Stradling在2010年记录,但由于CA的问题和黑客攻击,它在过去五年中加速了工作。第一次CA颠覆是在2001年,当时VeriSign向一个声称代表微软的个人颁发了两个名为“Microsoft Corporation”的证书。这些证书本可用于欺骗身份和提供恶意更新等。进一步在2011年,Comodo1和DigiNotar2在被伊朗黑客攻击后颁发了欺诈性证书(更多关于Comodo攻击和荷兰DigiNotar攻击的信息);这是它们在伊朗的MITM攻击中使用的证据。
进一步在2012年,Trustwave颁发了一个子根证书,用于以透明流量管理的名义嗅探SSL流量。因此,是时候在域级别限制或白名单CA了。
如果DNS中没有配置CAA记录会怎样?
简单来说,CAA记录应配置为宣布哪些CA(证书颁发机构)被允许为您的域名颁发证书。如果没有提供CAA记录,任何CA都可以为您的域名颁发证书。
CAA是一种限制您的CA存在及其为您的域名合法颁发证书的权力(们)的良好实践。这就像在您的域中白名单它们!
该过程强制证书颁发机构4(是的,现在强制!)查询DNS以获取您的CAA记录,并且只有在没有记录可用或此CA已被“白名单”时,才能为您的 hostname 颁发证书。CAA记录启用父域的规则,并且这些规则被子域继承。(除非DNS记录中另有说明)。
证书颁发机构将缺乏CAA记录解释为授权无限制颁发,而存在单个空白颁发标签则禁止所有颁发。5
CAA记录语法/格式
CAA记录具有以下格式:<flag>``<tag>``<value>
,并具有以下含义:
标签名称 | 用途 |
---|---|
flag | 这是一个整数标志,值在1-255之间,如RFC 68446中所定义。目前用于调用关键标志。7 |
| value | 在<tag>
中定义的属性的值。 |
RFC中定义的标签具有以下含义和对CA记录的理解:
- iodef:如果证书被颁发或请求违反了DNS记录中定义的CAA策略,证书颁发机构将相应地报告违规行为。(选项:mailto:、http://或https://)
DNS软件支持
根据维基百科8的摘录:CAA记录受BIND(自版本9.10.1B起)、Knot DNS(自版本2.2.0起)、ldns(自版本1.6.17起)、NSD(自版本4.0.1起)、OpenDNSSEC、PowerDNS(自版本4.0.0起)、Simple DNS Plus(自版本6.0起)、tinydns和Windows Server 2016支持。
许多托管DNS提供商也支持CAA记录,包括Amazon Route 53、Cloudflare、DNS Made Easy和Google Cloud DNS。
示例:(我自己的网站DNS)
根据策略,我配置了仅“letsencrypt.org”,但由于Cloudflare Universal SSL支持,以下证书颁发机构也被配置:
|
|
此外,为违规配置了iodef:0 iodef "mailto:hello@cybersins.com"
WWW与CAA的现状如何?
在审计练习之后,我好奇地想知道前10,000个Alexa网站在CAA方面的表现如何,奇怪的是,我对结果感到惊讶:只有4%的前10K网站有CAA DNS记录。
[更新2018年2月27日]: 此饼图已更新为正确的数字。感谢Ich Bin Niche Sie识别计算错误。
现在,我们还有很长的路要走,包括新的安全标志和政策,如“CAA DNS记录”、“security.txt”文件等,我将持续覆盖这些主题,以所有可能的方式推广安全,而不干扰业务。记住始终与业务携手合作。
保持安全,并保持关注。
参考链接:
-
Comodo CA攻击 by Iranian hackers: https://arstechnica.com/information-technology/2011/03/independent-iranian-hacker-claims-responsibility-for-comodo-hack/ ↩︎
-
Dutch DigiNotar攻击 by Iranian hackers: https://arstechnica.com/information-technology/2011/08/earlier-this-year-an-iranian/ ↩︎
-
CAA Checking Mandatory (Ballot 187 results) 2017: https://cabforum.org/pipermail/public/2017-March/009988.html ↩︎
-
Wikipedia Article: https://en.wikipedia.org/wiki/DNS_Certification_Authority_Authorization ↩︎
-
IETF RFC 6844 on CAA record: https://tools.ietf.org/html/rfc6844 ↩︎
-
The confusion of critical flag: https://tools.ietf.org/html/rfc6844#section-7.3 ↩︎
-
Wikipedia Support Section: https://en.wikipedia.org/wiki/DNS_Certification_Authority_Authorization#Support ↩︎
归档: « 上一篇 DevSecOps来了!不要害怕改变 下一篇 » 实施“security.txt”以倡导负责任的漏洞披露
© 2025 Cyber Sins。 向Astrid致谢支持。感谢Vimux的Mainroad基础主题和Turtle Media的徽标。用💛和Hugo制作。