可以透過 ASCII 相容的表示來查詢以 Unicode 顯示的網域。保留兩種形式和轉換規則,以便可以重現檢查器結果。視覺熟悉度並不能證明兩個名稱標識同一域或屬於同一組織。
將網域名稱與信箱分開
參考: RFC 5890 §2.3.2.1, RFC 5891 §5.
國際化網域標籤可以具有 U 標籤(其有效的 Unicode 形式)和 A 標籤(其經過驗證的 ASCII 相容形式以 xn-- 開頭)。 IDNA 處理在域標籤上進行。它不會將電子郵件本地部分轉換為 ASCII 郵箱,也不會建立 SMTPUTF8 支援。
身份驗證記錄在網域周圍新增協定標籤。使用適當的 IDNA 實現轉換國際化網域部分,然後建立所有者,例如 _dmarc. 加上 A 標籤域。不要透過協議下劃線標籤運行僅主機名的 IDNA 驗證程序並得出底層域無效的結論。
驗證而不僅僅是編碼
參考: RFC 5890 §2.3.2.1, RFC 5891 §4, RFC 5895 §2.
Punycode 是 A 標籤表示的一部分,但並非每個以 xn-- 開頭的字串都是有效的 A 標籤。驗證包括適用的 IDNA 規則、允許的字元和上下文限制。 RFC 5891定義了協定處理,而應用程式對應選擇可能會影響處理之前的使用者輸入。
記錄庫和版本、IDNA 設定檔、Unicode 輸入和產生的 ASCII 形式。工具預設值可能有所不同,特別是對於受映射或舊 IDNA 行為影響的字元。避免默默地標準化不明確的使用者條目並將結果呈現為唯一可能的預期領域。
重現往返賽程
使用已安裝的實作 IDNA2008 的 Python idna 函式庫,運行 idna.encode("bü cher.example ", uts46=False).decode("ascii")。預期輸出是 xn--bcher-kva.example。使用相同的庫對其進行解碼並驗證 Unicode 往返。這個範例是說明性的,並不是關於組織的即時領域的聲明。
構造 _dmarc.xn--bcher-kva.example 和 s1._domainkey.xn--bcher-kva.example 作為DNS擁有者字串。在實驗室或受控檢查器中,擷取工具是否接受 Unicode 輸入、轉換它、拒絕它或發送不同的問題。保留的歷史擷取僅記錄庫轉換,idna 版本為 3.18。本次評測中新的離線轉換檢查單獨記錄了自己安裝的版本; DNS或 SMTPUTF8 測試都不是。
加入帶有無效 xn-- 標籤的負夾具並保留實際的庫異常。將拒絕視為有用的證據,而不是刪除字符,直到輸入恰好通過。對於其他面向使用者的映射,請明確記錄替代配置文件,而不是假設 IDNA2008 嚴格結果與每個瀏覽器匹配。
比較郵件證明中的實際身份
參考: RFC 9989 §4.4, RFC 9989 §5.3.1.
保留原件 來自標題 以及使用的域表示 SPF, DKIM 和 DMARC 分析。對於DMARC , RFC 9989 §5.3.1 要求將提取的 U 標籤作者領域轉換為 A 標籤形式以進行進一步處理。使用協議的 結盟 規則而不是顯示名稱的視覺比較。如果工具不支援訊息語法或國際化行為,請報告限制,而不是默默地選擇一個方便的標識。
使用已知的所有權情境來調查相似者。網域可以透過自己的身份驗證,並且在視覺上仍然類似於另一個組織的名稱。 IDNA 轉換提高了重現性;它不證明品牌所有權,刪除 網路釣魚 冒險或證明電子郵件已獲得預期方的授權。