随着HTTPS的覆盖率越来越广,SSL证书的需求量也在上升。为了更加完善HTTPS加密协议的使用,2017年3月CA | B论坛(一个全球证书颁发机构和浏览器的技术论坛)发起了一项关于对域名强制检查CAA的一项提案的投票,获得187票支持,投票有效,提议通过。

提议通过后,将于2017年9月8日根据Mozilla的Gervase Markham提出的检查CAA记录作为基准要求来实施。
什么是DNS CAA?

证书颁发机构授权(全称Certificate Authority Authorization,简称CAA)为改善PKI(Public Key Infrastructure:公钥基础设施)生态系统强度,减少证书意外错误发布的风险,通过DNS机制创建CAA资源记录,从而限定了特定域名颁发的证书和CA(证书颁发机构)之间的联系。

CAA是保护域名免受钓鱼的安全措施,网站运营商可以通过该措施来保护域名免于错误发布。在2013年由RFC 6844进行了标准化,允许CA“降低意外证书错误的风险”。默认情况下,每个公共CA都可以为公共DNS中的任何域名颁发证书,只要它们验证对该证书的控制域名。这意味着,如果在许多公共CA的验证过程中有任何一个错误,每个域名都可能受到影响。CAA为域名持有者提供了降低风险的途径。

而DNS Certification Authority Authorization(DNS证书颁发机构授权)是一项借助互联网的域名系统(DNS),使域持有人可以指定允许为其域签发证书的数字证书认证机构(CA)的技术。它会在 DNS 下发 IP 的同时,同时下发一条资源记录,标记该域名下使用的证书必须由某证书颁发机构颁发。

CAA记录格式

根据规范(RFC 6844),CAA记录格式由以下元素组成:

CAA <flags> <tag> <value>

名词解释:

CAA:DNS资源记录类型

<flags>:认证机构限制标志

<tag>:证书属性标签

<value>:证书颁发机构、策略违规报告邮件地址等

<flags>定义为0~255无符号整型,取值:

Issuer Critical Flag:0

1~7为保留标记

<tag>定义为US-ASCII0~9,取值:
CA授权任何类型的域名证书(Authorization Entry by Domain) : issue

CA授权通配符域名证书(Authorization Entry by Wildcard Domain) : issuewild

指定CA可报告策略违规(Report incident by IODEF report) : iodef

auth、path和policy为保留标签

<value>定义为八位字节序列的二进制编码字符串,一般填写格式为:

[domain] [“;” * 参数]

设置CAA资源记录

需要当限制域名example.com及其子域名可由机构GlobalSign颁发不限类型的证书,同时也可由GDCA(trustauth.cn)颁发证书通配符,其他一律禁止,并且当违反配置规则时,发送通知邮件到example@example.com。

配置如下(为便于理解,二进制值值已经过转码,下同):
example.com. CAA 0 issue "letsencrypt.org"

example.com. CAA 0 issue “globalsign.com”

example.com. CAA 0 issuewild “trustauth.cn”

example.com. CAA 0 iodef “mailto:example@example.com”

子域名:如果子域名有单独列出证书颁发要求,例如:

example.com. CAA 0 issue “globalsign.com”

alpha.example.com. CAA 0 issue “trustauth.cn”

那么,因子域策略优先,所以只有GDCA为可以域名alpha.example.com颁发证书。

通配符:此外,CAA记录也可用于将通配符证书的颁发权限指定仅限一家CA。

domain.com. CAA 0 issuewild ” http://trustauth.cn

如果不想手动设置CAA记录,也可以通过自动生成工具生成一段CAA记录,发布到DNS系统中。

CAA记录查询

CAA记录是一个相对较新的资源记录,目前很多工具并不支持。以dig为例,不能适用其标准语法。若需要查询CAA记录,dig时需要直接指定RR类型(type257)。

例如:

$ dig google.com type257

; <<>> DiG 9.8.3-P1 <<>> google.com type257

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64266

;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:

;google.com. IN TYPE257

;; ANSWER SECTION:

google.com. 86399 IN TYPE257 # 19 0005697373756573796D616E7465632E636F6D

;; Query time: 51 msec

;; SERVER: 8.8.8.8#53(8.8.8.8)

;; WHEN: Thu Dec 29 21:07:18 2016

;; MSG SIZE rcvd: 59

该查询的输出是二进制编码记录,需要转码才能知道具体CAA策略。

最后

目前,国内大多数的DNS解析商均不支持CAA记录解析。但随着HTTPS逐步取代HTTP的趋势,使用SSL证书升级HTTPS的解决方案将被大量采纳。为了避免HTTPS证书的错误签发,相信不久的将来,CAA记录解析将被兼容。同时数安时代(GDCA)作为已通过WEBTRUSR国际认证的CA机构,将会坚持不断深入研发,为各大网络商业平台提供更安全的信息安全证书,为涉足互联网的企业打造更安全的生态环境,建立更具公信力的企业网站形象。

文章转载于https://www.trustauth.cn/wiki/24242.html