同形异义字攻击 (Homograph Attack / IDN Homograph Attack) 是利用外观相同或极其相似的不同 Unicode 字符来伪装正规域名的攻击手法。例如,拉丁字母"a" (U+0061) 和西里尔字母"a" (U+0430) 肉眼无法区分,但在计算机中被视为不同字符。
具体案例:将"apple.com"中的拉丁字母"a"替换为西里尔字母"a",注册一个外观完全相同但实际不同的域名,搭建 Apple 的仿冒网站。2017 年安全研究员 Xudong Zheng 实证了这一手法,引起广泛关注。
国际化域名 (IDN) 机制使这种攻击成为可能。IDN 允许在域名中使用日文、阿拉伯文等非 ASCII 字符,内部通过 Punycode (以 xn-- 开头的编码) 转换。浏览器地址栏显示 Unicode 形式,用户很难察觉伪装。
短链接与同形异义字攻击存在双重风险。第一,短链接服务本身的域名可能被同形异义字伪装。第二,短链接的重定向目标可能是使用同形异义字域名的钓鱼网站。短链接服务需要将注册的 URL 域名转换为 Punycode,与已知钓鱼域名进行比对。
主流浏览器已实施了同形异义字攻击的防护措施。Chrome 和 Firefox 会将混合不同文字系统的域名切换为 Punycode 显示,提醒用户该域名可能存在异常。相关书籍可在 Amazon 上查阅。