同形异义字攻击 (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 形式,用户很难察觉伪装。
短链接与同形异义字攻击存在双重风险。第一,短链接服务本身的域名可能被同形异义字伪装。第二,短链接的重定向目标可能是使用同形异义字域名的钓鱼网站。短链接服务方面也需要在注册环节拒绝伪装域名,但仅凭外观相似难以机械地划出界线。
主流浏览器在地址栏的显示层面采取了防护措施,但切换为 Punycode 显示的条件各家并不相同。Chrome 公开的显示策略除了混合易混淆文字系统的域名之外,还包括仅用单一文字系统构成的易混淆名称,以及把易混淆字符归一为同一形状后与知名域名重合的名称。Firefox 则以顶级域名的注册管理机构已表明防护方针时才允许 Unicode 显示为主,并认为在同一文字系统内替换全部字符的伪装无法在显示层面阻止,应由受理注册的一方负责。2017 年引起关注的案例全部由西里尔字母构成,正是因为这种形式绕过了依赖文字系统混合的判定。地址栏直接显示 Unicode,并不能证明该域名是正规的。