币安钓鱼域名 Unicode 同形字变体识别:IDN homograph 全字符对照与 punycode 实战

BiaBaLab 实验室拆解币安钓鱼域名的 Unicode 同形字变体:33 组高危字符对照、punycode 手工转换、xn-- 开头识别、浏览器兜底配置与 5 步核验流程。

发布于 2026-07-02 · 约 10 分钟 · 真伪辨识

直答:肉眼看到的 binance.com,字符集里可能是 bіnаnсе.com——只要其中任何一个字母被替换成西里尔、希腊或其他 Unicode 同形字,浏览器解析出来的真实主机是 xn-- 开头的 punycode 域名,跟官方 binance.com 完全不是同一台服务器。 BiaBaLab 实验室这一期把 2026 年 6 月抓到的 12 个 IDN 同形字变体全部剖开,附 33 组高危字符对照表、punycode 手工转换步骤,以及 5 步核验流程。想直接进入官方,请点 币安官网;想拿 App 安装包,请去 下载页下载币安 App

一、Unicode 同形字为什么在 2026 年仍能骗过人眼

IDN(Internationalized Domain Name)本来是为多语言而设计的:让日语、俄语、阿拉伯语用户能用母语字符注册域名。副作用是——只要一个字符在两种字母表里长得一模一样,攻击者就能注册一个视觉上和 binance.com 无差别的域名。这就是 IDN homograph 攻击的技术根源。

实验室对 12 个抓到的样本做了 4 组测量:首屏视觉相似度字符集识别成本浏览器兜底强度用户输入错觉率。结果是:83% 的样本在 1080p 屏幕上肉眼无法区分,只有把地址栏字体放大到 200% 才能分辨西里尔 а 和拉丁 a 的宽度差异。

1.1 三类高危字符来源

  • 西里尔字母:а е о р с у х(对应拉丁 a e o p c y x)
  • 希腊字母:α ο ν(对应 a o v,形近但非完全同形)
  • 拉丁扩展与全形:a b c(全形 ASCII,Punycode 编码后一定 xn-- 开头)

风险提示:只要 URL 中出现任何非 ASCII 字符,浏览器在解析时都会把整个标签转成 xn-- 前缀的 punycode 字符串。这是 IDN 攻击唯一可靠的自动化识别信号。

1.2 一次典型的骗流路径

攻击者购买 xn--binnce-6va.com 之类的域名(其中一个字符是西里尔),配 Let's Encrypt 证书,绿锁齐全;然后在 Telegram、X 评论区批量投放,配文"币安官方福利,用这个链接注册返佣 50%"。用户点开地址栏一看和真官网一模一样,就把邮箱密码填了进去。整个链路的成本不到 10 美元。

二、33 组高危字符对照表

这一节是本文核心工具。实验室把 IDN 攻击里使用频次最高的 33 组字符列成对照表,包含拉丁字符、同形替代字符、Unicode 代码点、以及一个真实观察案例。任何时候不放心,直接对着表逐字符核对。

2.1 西里尔字母同形组

拉丁字符 拉丁 codepoint 西里尔同形字 西里尔 codepoint 观察到的仿冒串
a U+0061 а U+0430 binаnce.com
e U+0065 е U+0435 binancе.com
o U+006F о U+043E binancо.com
p U+0070 р U+0440 binancер.com(子域场景)
c U+0063 с U+0441 binanсe.com
y U+0079 у U+0443 biуance.com
x U+0078 х U+0445 binanхe.com
B U+0042 В U+0412 Вinance.com
E U+0045 Е U+0415 binancE→Е 变体
K U+004B К U+041A Кucoin(跨所仿冒)
M U+004D М U+041C Мetamask 仿冒

2.2 希腊字母同形组

拉丁字符 拉丁 codepoint 希腊同形字 希腊 codepoint 备注
a U+0061 α U+03B1 略有斜度,警觉度低
o U+006F ο U+03BF 小圆点位置略高
v U+0076 ν U+03BD 开口略窄
i U+0069 ι U+03B9 无点 i
p U+0070 ρ U+03C1 常与西里尔 р 混用
u U+0075 υ U+03C5 圆润度略高

2.3 全形 ASCII 与拉丁扩展

拉丁字符 全形/扩展字符 codepoint 识别提示
a U+FF41 宽度是普通 a 的 2 倍
b U+FF42 全形
c U+FF43 全形
i ï U+00EF 双点
n ñ U+00F1 带波浪符
e é U+00E9 带锐音符
a ā U+0101 带长音符
o ø U+00F8 带斜线
l ł U+0142 带斜线

2.4 数字/字母混淆组

数字/字母 混淆字符 codepoint 常见变体
1 l U+006C b1nance→blnance
0 O/о U+004F/U+043E binance→b0nance
5 S U+0053 b5nance 少见
rn m U+006D binarnce→binamce 视觉合并

三、Punycode 手工转换与 xn-- 识别

浏览器地址栏是防御链的最后一道门,看懂 punycode 就能把 IDN 攻击拦在门外。

3.1 Punycode 的 3 条规则

  1. 只要域名标签中出现任何非 ASCII 字符,整个标签就会被转成 xn-- 前缀的字符串。
  2. 转换后的 xn-- 字符串中,前半段是 ASCII 保留字符,后半段是编码后的 Unicode 位置信息。
  3. 一个 xn-- 出现,就意味着这个域名一定用到了非 ASCII 字符,一律先视为可疑。

3.2 转换示例对照

视觉字符串 真实 punycode 说明
binаnce.com(西里尔 а) xn--binnce-6va.com 3 号位是西里尔 а
bіnance.com(西里尔 і) xn--bnance-4be.com 2 号位是西里尔 і
bіnаnce.com(两处替换) xn--bnnce-w0ac.com 2 号位与 3 号位同时被替换
binance.com(全形 b) xn--binance-tp96b.com 首字符是全形 b
binancе.com(西里尔 е 结尾) xn--binanc-r5a.com 末字符是西里尔 е

3.3 浏览器兜底:强制显示 punycode

  • Chrome/Edge:默认对多字符集混合的域名显示 punycode,但对纯西里尔标签不显示。建议装 Punycode Alert 扩展作为兜底。
  • Firefox:地址栏输入 about:config,把 network.IDN_show_punycode 设为 true,从此所有 IDN 都以 xn-- 显示。
  • Safari:默认对含混合字符集的域名显示 punycode,其他情况不会。

风险提示:移动端浏览器 90% 都不显示 punycode,手机上遇到疑似链接一律用长按拷贝功能把地址粘贴到备忘录里,再肉眼核对每一个字符。

四、5 步实战核验流程

碰到一条"币安官方"链接,按下面 5 步跑一遍,30 秒内能得到明确结论。

  1. 拷贝地址栏完整 URL——不要点,先复制。手机长按地址栏,桌面 Ctrl+L 全选复制。
  2. 在文本编辑器里查非 ASCII——用 VS Code 或 Sublime 把 URL 粘进去,切成等宽字体,任何字符宽度不一致的立刻标红。
  3. 命令行做 punycode 转换——运行 python3 -c "print('binаnce.com'.encode('idna').decode())",输出 xn-- 开头即证实为 IDN 攻击。
  4. whois 拉注册时间——真 binance.com 于 2017 年注册。任何 2025 年之后新注册的仿冒域名,配合 IDN 特征基本可判定钓鱼。更多识别信号可参考 币安钓鱼站真伪辨识方法论
  5. 回到浏览器书签直连官方——完成排查后,务必从书签栏点回 币安官网,绝不复用刚才那条链接。

五、账号已经在同形字站上输过密码怎么办

如果你已经把邮箱密码填进钓鱼站,攻击方几乎会在 60 秒内尝试登录。按下面顺序执行,越快越好:

  • 第 1 分钟:打开真官网改密码,新密码不复用任何旧库。
  • 第 3 分钟:解绑并重建 Google Authenticator 2FA 密钥。
  • 第 5 分钟:删除所有 API key、开启提币白名单。
  • 第 10 分钟:登录 币安官网 检查登录设备,把不认识的会话全部踢出。
  • 第 15 分钟:从 下载页 下载 下载币安 App,用 App 客服通道提交工单,留存 trace id。

风险提示:攻击方从拿到凭据到发起提现的平均耗时是 17 分钟,24 小时之后再补救基本无效。

六、常见问题

问:为什么 Chrome 有时会显示 punycode 有时不会?

A:Chrome 的策略是"同一 URL 里混用多种字符集"才会强制显示 punycode,纯单一字符集(例如全部是西里尔字母)反而会以视觉字符显示。这就是 IDN 攻击最狡猾的地方——攻击方专门挑纯西里尔的组合。解决办法:装扩展或者养成"任何链接都先拷贝到编辑器"的习惯。

问:手机看不到 xn-- 是不是没救了?

A:不是。第一,长按地址栏拷贝完整 URL,粘到备忘录里;第二,直接从 App 内官方渠道进入。用 下载币安 App 拿到 App 之后,站内所有跳转都是内网协议,不走浏览器解析,天然免疫同形字攻击。

问:Unicode 同形字只能仿冒币安吗?

A:不是。实验室 2026 年抓到的样本里,Metamask、OKX、Kucoin、Coinbase 都有对应的 IDN 变体。防御方法完全相同:任何时候看到 xn--、全形字符、非 ASCII,先视为可疑,走 5 步核验。相关背景可读 BiaBaLab 币安域名历史与变迁

问:邮件里点开的链接怎么办?

A:邮件客户端的地址栏行为参差不齐。原则是:不要点邮件里的按钮,鼠标悬停看左下角真实链接,任何非 binance.com 根域一律不点。真官方主域始终是 binance.com,一个字符都不能变。

问:Punycode 转换工具有推荐吗?

A:命令行首选 Python 内置的 idna 编码,python3 -c "print('域名'.encode('idna').decode())" 一条即可;不写代码就用 punycoder.com 之类的在线工具,注意粘贴前把域名前后空格去掉。

相关教程

文档发布于 2026-07-01,下次复测计划 2026-10-01