DNS證書頒發機構授權(英語:DNS Certification Authority Authorization簡稱CAA)是一種互聯網安全英語Internet security政策機制,允許域名持有人指定可以為其域簽發證書的證書頒發機構。該政策憑藉一個新的域名系統資源記錄「CAA」來實現。

這一標準由電腦科學家菲利普·哈勒姆-貝克英語Phillip Hallam-Baker和羅布·斯特拉德林(Rob Stradling)起草,旨在應對公眾對證書頒發機構安全性的擔憂。它是由互聯網工程任務組建議的一項互聯網標準

背景

自2001年開始,曾出現一系列被錯誤頒發的數碼證書[1][2]。這在損害公開可信證書授權機構可信度的同時[3],也加速了各種安全機制的建設,包括證書透明度追蹤不當簽發,HTTP公鑰固定DANE英語DANE客戶端側英語client-side阻止不當簽發的證書,以及DNS證書頒發機構授權(CAA)在證書頒發機構方面阻止不當簽發。[4]

DNS證書頒發機構授權的第一稿由菲利普·哈勒姆-貝克英語Phillip Hallam-Baker和羅布·斯特拉德林(Rob Stradling)起草,並於2010年10月提交為互聯網工程任務組(IETF)的互聯網標準(RFC)草案。[5]PKIX工作群組英語X.509#PKIX Working Group對此進行了逐步改進[6],並於2013年1月向互聯網工程指導小組英語Internet Engineering Steering Group提交了名為RFC 6844的標準提案。[7]不久後CA/瀏覽器討論區展開討論[4],並於2017年3月形成投票,贊成於2017年9月之前強制所有證書頒發機構履行CAA[8][9]。但至少有一家證書頒發機構(科摩多)未能在截止日期前實施CAA[10]慕尼黑工業大學於2017年的一項研究發現,證書頒發機構在很多情況下未能正確施行該標準的部分內容。[4]

截至2018年6月 (2018-06)Qualys英語Qualys的報告顯示,在最流行且支援TLS的前15萬個網站中,只有3.4%使用了CAA記錄。[11]

記錄

實現CAA的證書頒發機構對CAA資源記錄執行DNS尋找,並檢查自己是否被列為授權方,之後再頒發數碼證書[7]每條CAA資源記錄由以下三個屬性組成,並以空格分隔[7]

flag
一個實現了可延伸的英語Extensible訊號系統的位元欄,以供將來使用。截至2018年 (2018-Missing required parameter 1=month!),它僅定義了發行者關鍵標誌,用於指示證書頒發機構在頒發證書之前必須理解相應的屬性標記。[7]此標誌允許將來通過強制擴充對協定進行擴充[4],類似於X.509證書中的關鍵擴充
tag
為下列屬性之一:
issue
此屬性授權關聯屬性值中指定的域名的持有者,向包含該屬性的域名頒發證書。
issuewild
此屬性的作用類似於上述的issue屬性,但僅授權頒發萬用字元證書。當請求為萬用字元證書時,這一屬性優先於issue屬性。
iodef
此屬性指定證書頒發機構使用「事件對象描述交換格式英語Incident Object Description Exchange Format」(Incident Object Description Exchange Format,簡稱:IODEF)向域名持有者報告無效證書請求的方法。截至2018年 (2018-Missing required parameter 1=month!),並非所有證書頒發機構都支援此標籤,因此不能保證所有證書在頒發時都會被報告。
value
與所選的tag屬性所相關聯的值。

當沒有任何CAA記錄時,頒發機構可以正常、不受限地進行頒發。而當存在一個空白的簽發(issue)標籤時,所有頒發被禁止。[7][9][12]

監視證書頒發機構行為的第三方,可能會根據域名的CAA記錄檢查新頒發的證書,但是他們須知道域名的CAA記錄有可能在證書頒發到他們檢查的期間發生過更改。客戶不能將CAA作為其證書驗證過程的一部分。[7]

擴充

2016年10月26日,CAA標準的首個擴充草案發佈。該草案在簽發(issue)屬性後方提議了一個新的account-uri標識,其將一個域名繫結到一個特定的自動化證書管理環境英語Automated Certificate Management Environment帳戶。[13]2017年8月30日,這一草案得到修訂,再引入了validation-methods(驗證方法)標識,用以將一個域與一個特定的驗證方法繫結。2018年6月21日,進一步的修改刪除了account-uri和validation-methods的連字元,accounturi和validationmethods取而代之。[14][15]

例子

若要表明只有標識為ca.example.net的證書頒發機構有權為example.com及所有子域名頒發證書,可以使用以下CAA記錄[7]

example.com. IN CAA 0 issue "ca.example.net"

若要禁止頒發任何證書,可以列出一個空的頒發者列表[7]

example.com. IN CAA 0 issue ";"

若要標識證書頒發機構應將無效的證書請求報告給指定的電子郵件地址即時網絡間防禦英語Real-time Inter-network Defense端點[7]

example.com. IN CAA 0 iodef "mailto:security@example.com"
example.com. IN CAA 0 iodef "http://iodef.example.com/"

若要使用該協定的一個未來擴充——例如,定義了一個新的future屬性,需要證書頒發機構理解該屬性後才能安全地繼續處理——可以設置issuer critical標籤[7]

example.com. IN CAA 0 issue "ca.example.net"
example.com. IN CAA 128 future "value"

另見

參考來源

外部連結

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.