浏览漏洞
浏览器地址栏里那个小锁图标,浏览漏洞我盯了它十年。浏览漏洞它亮着绿色,浏览漏洞我就放心地把银行卡号敲进去。浏览漏洞直到上周,浏览漏洞我在一个仿冒银行网站上输入密码时,浏览漏洞瞥见地址栏里其实是浏览漏洞"bank0fchina.com"——数字0替换了字母o。锁图标依然绿着,浏览漏洞因为那个域名挂着有效的浏览漏洞HTTPS证书。 这不是浏览漏洞钓鱼邮件,不是浏览漏洞诱导链接。是浏览漏洞我自己手动输入的网址,一字不差。浏览漏洞我甚至没注意到那个0和o的浏览漏洞差别,直到页面加载完,浏览漏洞设计精致得跟真的一模一样。那一刻我后背发凉——原来浏览器的安全提示,从来就没打算告诉我"你输错了一个字母"。 这类漏洞有个学名,叫"同形异义词攻击"。黑客注册一堆长得像正规域名的地址,比如用rn冒充m,用1冒充l。浏览器厂商知道这事,但治不了根。为什么?因为Unicode字符集里,长得像的字母太多了,全球语言加起来,光拉丁字母的变体就有几百种。你不可能让浏览器把所有相似字符都判为危险,那会误伤大量合法网站。 我试着在Chrome里输入"goog1e.com",地址栏直接提示"您是否要访问google.com?"——这是浏览器在猜我的意图。但换成"g00gle.com"(两个o换成两个0),提示就消失了。为什么?因为Chrome的纠错算法只针对常见的拼写错误,数字替换字母不在它的处理范围内。这个细节让我意识到,所谓"智能地址栏",其防错逻辑简单得可怜。 更讽刺的是,现代浏览器默认隐藏了URL的"https://"前缀和"www"部分。地址栏只显示"example.com/path"。这本来是为了界面简洁,结果反而让用户更难分辨真实域名。当页面标题是"中国工商银行"时,地址栏显示"icbc.com.cn",但你根本不会注意到前面其实多了个"i"——比如"iicbc.com.cn",因为前缀被折叠了,你得点一下地址栏才能展开看全。 我做了个实验。把微信里朋友发的链接复制到地址栏,故意把"taobao.com"改成"ta0bao.com",浏览器直接跳转,没有任何警告。我又试了"jd.com"改成"jd.c0m",同样没反应。只有当你输入的是完全无法解析的字符时,浏览器才会弹警告。这说明什么?说明浏览器的安全机制是"黑名单制",只拦截已知的恶意域名,对未知的变体毫无防御能力。 这种漏洞没法靠技术完全修复。因为互联网的根基DNS系统,本身就不区分0和o。你注册一个"paypa1.com"(用数字1替换字母l),只要DNS能解析,浏览器就只能照单全收。唯一能做的,是让用户自己瞪大眼睛——但人眼在快速浏览时,对相似字符的辨识度极低。心理学研究说,人类阅读单词时是整体识别,不会逐字母比对。这跟技术漏洞无关,是生理层面的弱点。 所以现在,我每次输入网址前都强迫自己双击地址栏,展开完整URL,逐字核对。麻烦,但保命。那个绿色小锁图标依然亮着,但它现在在我眼里只是个装饰——真正的安全,从来不在浏览器里,而在你敲下回车键之前的那三秒。
-
上一篇
-
下一篇