本文详细阐述了CAA的概念、CAA检测的作用、CAA记录的添加、以及CAA检测工具。

什么是CAA

CAA,全称Certificate Authority Authorization,即证书颁发机构授权。它是一种通过DNS记录类型,用来保护域名免受钓鱼的安全措施,网站管理员可以通过该措施来保护域名免于错误发布。

产生背景

2017年3月7日,[CA/Browser Forum](CA/Browser Forum)(全球证书颁发机构与浏览器的技术论坛),一个监管SSL证书颁发操作的组织机构,也是一个制定证书颁发机构 (Certificate Authority, 简称CA)国际标准的技术联盟,发起了关于对域名强制检测Certificate Authority Authorization (CAA)提议的投票。

自该提议(CA/Browser Forum 187号提案)通过后,从2017年9月8日起,强制CA机构在颁发新的SSL证书之前,必须验证并检测申请证书域名的DNS记录中的CAA字段,以此防止SSL证书错误的措施。

如果网站所有者没有将CAA字段添加到其网站DNS记录中,则任何CA机构都可以为你网站的域名颁发证书。这样钓鱼攻击者可以通过申请你的网站SSL证书,用来仿冒你的网站。

为什么要强制CAA检测

任何一家CA机构对于整个互联网的安全都有极大的影响。这是因为任何一家CA都可以给每一位申请者的域名颁发证书,一些小而不知名的的CA机构常常成为黑客利用的对象。另一方面,一些小型CA机构为了提升业绩,也许在没有正确验证申请者身份的情况下颁发证书。虽然目前有不少规章制度以及措施限制CA机构颁发证书,但仍就存在不少的漏洞。而CAA检测为域名所有者提供了另一个网络安全防线。

如何添加CAA字段

当域名所有者可以指定某一CA机构为其网站颁发证书时,域名所有者在DNS记录中创建一条CAA字段,该记录包含域名指定的证书机构的CA列表,以防止钓鱼攻击者使用其域名申请SSL/TLS证书。

常见的CAA字段有以下几种示例 :

  • 只有Digicert这一CA机构可以向trustasia.com指定域名颁发证书。未经授权的第三方通过其他CA机构申请用于该域名的SSL证书都将会被拒。
    www.trustasia.com. CAA 0 issue "digicert.com "
    

    注意:域名所有者还可以将多个CAA字段添加到域名的DNS记录中。

  • 当有人正在尝试为未经授权的网站申请SSL证书时,iodef属性会告诉CA机构,并向网站所有者发送邮件。网站所有者收到邮件必须有所警惕并深入调查和检查原因。
    trustasia.com. CAA 0 iodef "mailto:admin@trustasia.com"
    
  • 当有其他CA机构申请SSL证书时,iodef属性还支持URL端点,可以记录尝试此类行为。
    trustasia.com. CAA 0 iodef "https://www.trustasia.com/symantec"
    
  • 如果站点使用多个子域,则CAA记录也可以限制钓鱼攻击者对其中任何一个申请SSL证书。
    mpki.trustasia.com. CAA 0 issue "digicert.com "
    news. trustasia.com. CAA 0 issue "digicert.com "
    crm. trustasia.com. CAA 0 issue "comodoca.com "
    
  • 允许DigicertComodo可以向trustasia.com指定域名颁发证书。未经授权的第三方通过其他CA机构申请用于该域名的SSL证书都将会被拒。
    www.trustasia.com. CAA 0 issue "digicert.com "
    www.trustasia.com. CAA 0 issue "comodoca.com "
    
  • 将通配符证书的颁发权限指定仅限一家CA机构,如Digicert
    trustasia.com. CAA 0 issuewild "digicert.com"
    

CAA检测工具

你可以通过DNS诊断工具,输入要检测的域名,进行在线CAA检测。 该工具页面显示为:
“DNS诊断工具”访问页面

更多信息

附录一:各CA机构对应的CAA记录值

CA机构 记录值
AC Camerfirma camerfirma.com
ACCVGovernment of Spain accv.es
Actalis actalis.it
Amazon amazon.com
AssecoUnizeto, Certum certum.pl
Atos atos.net
Buypass buypass.com
CA Disig disig.sk
CATCertConsorci AOC aoc.cat
Certigna certigna.fr
CertinomisDocapost www.certinomis.com
CertizenHongkong Post hongkongpost.gov.hk
certSIGN certsign.ro
CFCAChina Financial cfca.com.cn
Chunghwa Telecom pki.hinet.net
Comodo comodoca.com
D-TRUST dtrust.de
DFN-PKI pki.dfn.de
DigiCertSymantec, GeoTrust, Thawte, RapidSSL digicert.com
DocuSignKeynectis, OpenTrust, Certplus docusign.fr
e-tugra e-tugra.com
EDICOM edicomgroup.com
Entrust entrust.net
Firmaprofesional firmaprofesional.com
FNMTGovernment of Spain fnmt.es
GDCA gdca.com.cn
GlobalSign globalsign.com
GoDaddyStarfield Technologies godaddy.com
Google Trust Services pki.goog
GRCAGovernment of Taiwan gca.nat.gov.tw
HARICA harica.gr
IdenTrust identrust.com
Izenpe izenpe.com
Kamu SM kamusm.gov.tr
Krajowa Izba Rozliczeniowa elektronicznypodpis.pl
Let's Encrypt letsencrypt.org
Microsec e-Szignó e-szigno.hu
NetLock netlock.hu
PKIoverheid www.pkioverheid.nl
QuoVadis quovadisglobal.com
SECOM secomtrust.net
SK ID Solutions AS sk.ee
SSL.com ssl.com
SwissSign swisssign.com
T-Systems telesec.de
Taiwan-CA twca.com.tw
Telia telia.com
Trust Provider B.V.Networking4all trustproviderbv.digitalcertvalidation.com
TrustCor Systems trustcor.ca
Trustwave trustwave.com
Web.com web.com
WISeKey wisekey.com

附录二:CAA在BIND中的配置

在BIND 9.9.6及以上版本的zone标准配置文件中,CAA的配置如下:

www.trustasia.com.	IN	CAA	0 issue "comodoca.com"
www.trustasia.com.	IN	CAA	0 issue "digicert.com"
www.trustasia.com.	IN	CAA	0 issuewild ";"