是否需要保持 DNSSEC 區域新鮮?
我找到了以下關於如何使用 NSD DNS 伺服器和 ldns 實用程序設置 DNSSEC 的指南:https ://www.digitalocean.com/community/tutorials/how-to-set-up-dnssec-on-an-nsd-名稱伺服器-on-ubuntu-14-04
基本上它提供了以下步驟:
- 使用 ldns-keygen 生成 ZSK 和 KSK
- 使用帶有上述密鑰的 ldns-signzone 對區域進行簽名
- 將 NSD 指向區域文件的簽名版本並重新載入配置
- 在註冊商面板上為主題域寫入 DS 條目
- 每當您更改區域(未簽名文件)時,使用提供的腳本(dnszonesigner)
這一切都很好。但是有一條評論“你有沒有想過如何讓簽名區域保持新鮮?RRSIG會過期,應該及時刷新。換句話說,簽名區域應該每隔一段時間就退出一次。”
這是一個正確的評論嗎?我在任何地方都找不到有關過時的 DNSSEC 區域的資訊。如果正確,我應該只通過 cron 執行 dnszonesigner 腳本嗎?如果是,我應該多久執行一次?如果我不這樣做會發生什麼(以及何時)?支持 DNSSEC 的解析器(例如 Google 公共 DNS)是否仍會為我的區域中的記錄提供正確答案?
根據以下所列,即使您的數據保持不變,您也應該每月辭職。
TL;DR 您剛剛發現了 DNSSEC 的一個主要缺點(特別是與 DNS 相關),或者至少是一個非常重要的點要始終牢記:DNSSEC 不僅僅是一次性切換,您可以添加並完成用它。不,相反,它強制對區域進行定期維護,這意味著為此需要專用資源(自動化、監控等)。
RRSIG
記錄有一個開始日期(之前無效,通常在創建時“現在”左右)和到期日期(之後無效)。有
RRSIG
一個過期日期在過去的記錄,所以已經過期,是一個錯誤,這意味著簽名的記錄上沒有有效的簽名,所以它是一個 DNSSEC 失敗。這就是您不想擁有過期的 RRSIG 記錄的原因。
現在本能的回答可能是:“讓我們讓它們在未來幾年內過期”。
當然,從技術上講,你可以。一些解析器可能對此不滿意,但應該遵守,並且一些安全工具肯定會將其標記為問題。
為什麼你不應該呢?
基本上有兩個原因:
- 你正在處理加密的東西;密碼學,作為一門科學,不斷發展;新的攻擊出現了,無論是在理論上還是在實際攻擊中,CPU 執行速度更快,量子計算出現等等,這一切都意味著簽名可能會以某種方式被利用;如果你定期輪換他們,你會給攻擊者更少的選擇,因為它需要他們都需要找到攻擊的方法,而且他們的操作足夠快,至少不會比你的辭職週期長
- 如果您養成定期更改某些內容的習慣,那麼您顯然會制定所有流程和程序,以確保正常進行並儘可能地自動化……這也將在您必須的罕見和不幸的情況下提供極大的幫助在一些災難性事件發生後迅速做出確切的改變
參見https://www.rfc-editor.org/rfc/rfc6781#section-4.4.2的 4.4.2
4.4.2. 簽名有效期
4.4.2.1。最大值
選擇最大簽名有效期的首要考慮因素
是重放攻擊的風險。對於低價值、長期
穩定的資源,風險可能很小,簽名
有效期可能幾個月。
儘管允許多年的簽名有效期,但與
第 3.2.2 節中給出的相同的“操作習慣”論點發揮了作用:當一個區域定期重新簽名時,區域管理員仍然
意識到操作的必要性。重新簽名。
請注意,出於類似原因,密鑰也應該過期。他們的 DNS 記錄中沒有到期日期,但操作實踐是輪換它們。典型的時間框架對於 ZSK 來說是幾個月,對於 KSK 來說是幾年。您還必須考慮密碼學的變化,例如目前 SHA-1 被認為已過時,並且基於 RSA 的密鑰的長度建議在一年中發生變化(前 1024 位,現在是 2048 等)
任何使用 DNSSEC 的“嚴肅”區域,尤其是 TLD 和根,都必鬚髮布“DNSSEC 實踐聲明”,概述其密鑰和簽名的政策和生命週期。例如,請參閱 RFC 6841:“A Framework for DNSSEC Policies and DNSSEC Practice Statements”,其中說:
4.5.3. 密鑰對管理的其他方面
需要為區域運營商和其他參與者考慮密鑰管理的其他方面。對於這些類型的
實體中的每一種,可能需要回答以下問題:
- 管理任何簽名密鑰的生命週期狀態是什麼?
- 這些密鑰的使用期限是多少?對的使用期或活動壽命是多少?
和
4.6.5。簽名生命週期和重新簽名頻率
此子組件描述資源記錄簽名 (RRSIG) 記錄的生命週期。
例如,您可以在https://www.iana.org/dnssec/procedures/zsk-operator/dps-zsk-operator-v2.1.pdf閱讀根 (.) DNSSEC 實踐, 其中包括:
對於這些插槽中的每一個,都有一個預先生成的 DNSKEY 密鑰集,該密鑰集在密鑰儀式上簽署,有效期至少為 15 天,以允許高達 50% 的重疊。
如果您現在進行 DNS 查詢:
$ dig . DNSKEY +dnssec [..] ;; ANSWER SECTION: [..] . 6h17m42s IN RRSIG DNSKEY 8 0 172800 ( 20210512000000 20210421000000 20326 . [..]
目前簽名的有效期為
2021-04-21T00:00:00
至2021-05-12T00:00:00
,正好是 21 天。