Domain-Name-System

驗證 DNS SOA(授權開始)

  • November 4, 2019

我無法理解 DNS 服務的一個非常具體的部分及其底層結構。最好通過顯示惡意 ISP(Internet 服務提供商)可能出現的特定問題來進行描述。

假設我的 ISP 修改了它提供給使用者的 dns 記錄的 SOA。如果我無法訪問其他 DNS 伺服器,我如何驗證 SOA 的正確性。

到目前為止我對流程的了解:

  • 當我向註冊商註冊 DNS 時,我輸入負責 DNS 伺服器的域名,該域名定義了權威的 DNS 伺服器。這定義了域名查找的 SOA 條目。
  • 這是我缺少一些資訊的地方。註冊商的資訊(soa、權威dns伺服器ip等)是如何推送到dns服務系統的。或者客戶端如何檢查 SOA 對域的真實性?
  • DNS Server 的權限是通過 dns 結構在 DNS Servers 中定義的,權威伺服器可以返回域的 dns 條目。

我希望使我的問題盡可能容易理解。如果可能,請參考專門針對此主題的 RFC,但也總結了其背後的邏輯。

謝謝

當我向註冊商註冊 DNS 時,我輸入負責 DNS 伺服器的域名,該域名定義了權威的 DNS 伺服器。這定義了域名查找的 SOA 條目。這是我缺少一些資訊的地方。註冊商的資訊(soa、權威dns伺服器ip等)是如何推送到dns服務系統的。或者客戶端如何檢查 SOA 對域的真實性?

這不完全是它的工作原理,或者可能只是術語的問題。(您可以查看RFC 8499“DNS 術語”以獲取完整的詳細資訊)

對於要解析的任何域名,它需要擁有對其具有權威性的名稱伺服器,並且這些名稱伺服器需要在父區域中的 NS 記錄中列出。

因此,如果您有,example.com您可以決定ns1.example.netns2.example.net成為它的權威名稱伺服器並配置它們。這還不夠。為了使解析起作用,兩個名稱伺服器都必須列在父區域中,即.COM此處。

所有這些都是基本的 DNS 委託機制,因此這被 DNS 上的規範 RFC 所涵蓋,即 RFC 1034 和 1035。但是請注意,它們是舊的,其中的許多東西不再適用(當然還有許多新東西它們中未描述的現在適用),並且其中的某些術語(例如域名)具有我們今天所擁有的另一種含義。

父區的變化是如何發生的?你去註冊商example.com那裡並提供名稱伺服器。然後,註冊商將通過特定的非公共協議(通常是 EPP)將它們送出給註冊局,並且在“一段時間”之後,該區域上的註冊局權威名稱伺服器將擁有您的域的 NS 記錄,其中列出了您的名稱伺服器。

EPP 是STD 69,但是通過閱讀這些 RFC,您不會獲得任何有用的高級理解,因為它們詳細解釋了該協議,因為它僅在註冊管理機構和註冊服務商之間您永遠不會看到。

如您所見,SOA上面沒有提到任何地方。SOA 記錄在您的區域中,而不是在區域之外,並且如果被要求或相關查詢,將由您區域上的任一權威名稱伺服器返回。

另請注意,域名註冊商和 DNS 提供商是兩個完全獨立的工作。您選擇一個 DNS 提供商來管理您的權威域名伺服器,您選擇一個註冊商來註冊一個域名,然後不時更新連接到它的域名伺服器。當然,給定的公司可以同時做這兩項工作,但從技術上講,他們每個人都在做與另一個無關的特定事情。

至於記錄的身份驗證,確保它們在傳輸過程中不被篡改,正如 Nikita Kipriyanov 已經回答的那樣,這是 DNSSEC 的工作。有多個 RFC 涵蓋了 DNSSEC,掌握這項技術並非易事,您首先需要對 DNS 有紮實的了解,包括萬用字元和 CNAME 等暗角,然後對密碼學有基本的了解。我建議先不要使用 RFC,而是先從 Wikipedia 獲得足以滿足食慾的介紹:https ://en.wikipedia.org/wiki/Domain_Name_System_Security_Extensions

概括地說,使用 DNSSEC,所有記錄(因此不僅僅是SOA區域中的絕對所有記錄)也將具有新的關聯RRSIG記錄,這些記錄包含使用內容(DNS 記錄)的某些密鑰計算的簽名;如果路徑上的某人更改了部分內容,則簽名將不再匹配(不,顯然,他無法即時重新計算簽名以使其再次匹配)。

對於您提到的特定案例(一個惡意 ISP,它既可以監聽您的所有 DNS 查詢 - 用於分析 - 過濾您的查詢,修改響應),有些人(包括一些瀏覽器供應商)會試圖說服您 DNS over HTTPS(也存在基於 TLS 的 DNS)解決了所有問題,這是錯誤的,至少它不提供與 DNSSEC 相同的服務。但是通過 HTTPS 使用 DNS(通常 DNS 通過 TCP 和 UDP 中的埠 53,所以所有流量都是純文字的;DNSSEC 增加了完整性和身份驗證,但不增加機密性,整個流量仍然是明文的)的想法是使用本身通過 TLS 的 HTTPS,您可以獲得機密性,因為 TLS 將加密所有交換,即您的 DNS 查詢和您的 DNS 響應。

這個神話的推動者未能充分評估問題的地方是,您確實為所有 DNS 交換獲得了隱私(以及相關事實,即無法修改響應;它們仍然可以被過濾),但僅限於您和遞歸 DNS 之間您通過 DoH 查詢的伺服器(DNS over HTTPS 的暱稱)。那個特定的 DNS 解析器顯然會看到您的查詢和答案,因為他是為您處理它們的人,因此它可以為您提供絕對想要的東西,而無需任何真實性證明……如果不使用 DNSSEC。

引用自:https://serverfault.com/questions/989902