您的 IPv4 地址:
操作系统:
运营商:

Punycode 与国际化域名详解

Punycode 是一种编码方式,用于把国际化域名中的 Unicode 字符表示为与 ASCII 兼容的形式。因此,用本国文字书写的域名,在技术数据中可能显示为以 xn-- 开头的标签。这种编码改变的只是表示形式,并不能证明网站是真实可信的。

Unicode 标签与 DNS 标签

人们看到的可能是 Unicode 标签,通常称为 U-label。与之对应的 ASCII 兼容形式称为 A-label,使用 Punycode 时以 xn-- 开头。点号之间每个符合条件的标签都会被单独处理。转换并不是对整个 URL 进行编码:协议、路径和查询参数遵循的是其他规则。

例如,IDN 测试标签 bücher 的 A-label 是 xn--bcher-kva。按照适用的 IDNA 规则处理时,这两种形式指的是同一个域名标签。注册管理机构可能还会对哪些标签能实际注册作出进一步限制。

显示形式为什么会变

浏览器会根据自身的安全和语言规则,对某些域名显示 Unicode 形式,对另一些则显示 A-label。因此,把 URL 复制到诊断工具中时,可能会看到一串陌生的 xn-- 字符。对于许多国际化域名来说这完全正常,其本身并不是遭受攻击的证据。

不过,不同文字体系中的字符可能长得很像。仿冒域名可能看起来与某个熟悉的品牌如出一辙,底层的码位却并不相同。Punycode 会如实地编码这些字符;它不会识别仿冒行为,不会核实所有权,也不会检查网站内容。

检查可疑地址

输入凭据之前,请完整阅读主机名,包括域名后缀。将其与可信的书签或该机构公布的地址进行对比。对紧急消息中的链接要格外小心;浏览器报告警告时,请检查证书上的名称。

转换工具可以显示 Unicode 形式和 ASCII 形式,但转换本身并不是安全结论。注册数据可以提供一些背景信息,但私密或受限的记录无法证明发件人的身份。如有疑问,请自行访问该服务,而不要点击可疑的链接。

记录可疑域名时,请同时保存其 Unicode 形式和 A-label 形式。这样可以避免因为复制粘贴或字体差异,而掩盖了实际访问过的准确域名。

保存可疑链接的证据时,请同时复制显示出来的 Unicode 拼写和对应的 A-label。字体差异或自动生成的链接预览可能会掩盖实际使用了哪些字符。另外,请把完整的 URL 与域名分开记录;具有误导性的路径可能出现在合法的主机名之后。

国际化域名仍然使用常规的 DNS 机制

转换完成后,A-label 与其他有效标签一样参与 DNS:委派、缓存、DNSSEC 和各类记录类型照常适用。如果某个 Unicode 域名无法访问,请对比准确的 ASCII 形式和 DNS 应答,而不要只看浏览器中的显示。