为什么在酒店连上了Wi-Fi登录页面却死活弹不出来

你在高铁站、机场或者酒店大堂,大概率遇到过这么一个让人窝火的瞬间。

掏出手机连上公共 Wi-Fi,右上角信号瞬间拉满,看起来一切都连得好好的。

你顺手切回微信准备回消息,转圈。切到浏览器点开网页,白屏。

你盯着屏幕,等那个熟悉的登录页面跳出来,让你输个手机号,或者点一下「同意并连接」。

五秒、十秒、半分钟过去了。

屏幕上一片死寂,那个登录页面,死活弹不出来。

你断开重连了好几次,依然没有半点反应。右上角明明满格信号,手机却像断了网一样,什么都干不了

其实对付这种情况,有个百试百灵的办法。

打开手机自带的浏览器,别搜百度,直接在地址栏里输一个网址,叫 neverssl.com

回车一按,那个失踪半天的酒店登录页,真就啪的一下弹了出来

很多人第一次试这个办法,以为是什么黑客后门,或者觉得刚才是路由器抽风。

其实不是网络太烂,真相恰恰相反,这是因为现代互联网变得太安全了。

倒退回十几年前,大家在公共场所蹭网,体验其实没这么糟。

因为那时候全网绝大多数流量都是 HTTP,也就是明文传输。

你在酒店大堂点开一个网页,手机发出的请求经过前台的路由器,路由器一看这台设备还没认证,当场就在半路上把数据包给掉包了。它不管你想看什么,直接把酒店的登录页面塞给你。

在网络工程里,这叫「强制门户」(Captive Portal)。说得通俗点,就是路由器在半路设了个收费站搞拦截。

在大家都裸奔的明文年代,路由器想怎么掉包就怎么掉包,登录弹窗自然秒出。

但后来,事情全变了。

全世界开始强推 HTTPS 加密。

从密码、银行卡,到微信聊天、新闻网页,所有数据离开手机的那一刻,全被塞进了一条加密隧道里。

这就带来了一个让所有工程师头皮发麻的冲突。

你想想看,当你连上酒店 Wi-Fi,你手机里的 App 一出门走的全是高强度加密。

这时候酒店的破路由器还想按老规矩搞半路拦截,强行把你要看的页面换成酒店登录页。

你手机里的浏览器当场就炸了。

因为 HTTPS 的命门在于数字证书。浏览器一看,你明明要去百度,半路上怎么蹦出来一个自称是「如家大堂路由器」的假证书?

在网络安全里,这叫中间人劫持

现代浏览器对待劫持绝不手软,直接切断连接,甚至在屏幕上甩出刺眼的红色感叹号,警告你「连接不安全」。

安全标准越严密,全世界的公共 Wi-Fi 就越发集体瘫痪

正经网页全被加密锁死了,路由器没法合法拦截,那大家还怎么蹭网?

苹果和谷歌只能捏着鼻子,在系统底层搞了一套非常滑稽的妥协。

你在 iPhone 上连上 Wi-Fi 的那一瞬间,iOS 其实偷偷干了一件很不光彩的事。

它无视了安全规范,悄悄向苹果服务器发了一个明文的、坚决不加密的 HTTP 请求,去访问 http://captive.apple.com/hotspot-detect.html

这个网页啥也没有,就纯文本写了七个英文字母,Success

如果手机顺顺当当收到了这七个字母,说明网络是通的,右上角就亮起 Wi-Fi 图标。

但如果酒店路由器在半路拦截了这个明文请求,塞回一个登录表单,iPhone 立刻就懂了,我被绑架了。于是赶紧拉起一个独立小窗口,把登录页推到你眼前。

安卓也是一模一样的手法,连上 Wi-Fi 就悄悄去敲谷歌的 generate_204 接口,只要返回的不是 204 状态码,就知道遇到了拦路虎。

那既然系统有这个机制,为什么我们平时还是经常卡住呢?

因为在真实的弱网里,这套妥协太脆弱了。

有时是酒店的 DNS 解析太慢,系统探针超时放弃了;有时是后台 App 疯狂抢发加密请求,把路由器可怜的连接数挤爆了。

一旦手机错过了刚连上时短短两三秒的探测窗口,你就掉进了死锁。

手机以为连上了,不再主动探测;你手动打开的 App 又全是强加密,路由器不敢拦也不能拦。手机连着 Wi-Fi,却什么事都干不了。

2017 年,一位叫 Andrey Petrov 的工程师被这个问题搞烦了。

当时全网都在普及 HTTPS,他反过来自己做了个网站,叫 neverssl.com

页面极其简陋,上面写得很清楚,这个网站永远不加 HTTPS,永远只走明文

它的作用就一个,给公共 Wi-Fi 当诱饵

你被卡在酒店 Wi-Fi 里的时候,在浏览器里敲下这个网址,就是故意发一个未加密的明文请求。

路由器在半路当场拦截,把请求换成酒店的登录页,那个死活不弹的窗口,一下就被逼出来了。

回过头来看这事,挺有意思的。

我们花了二十年时间造出密不透风的加密高墙,把黑客和窃听者挡在门外。

但到头来,为了能在出差的深夜连上酒店的 Wi-Fi,大家又不得不合谋在墙角凿出一个个狗洞,甚至专门留着一个发誓永远不加密的网站。

技术的世界从来不是什么完美的建筑。

多的是这种为了照顾粗糙的现实,在聪明和妥协之间,打下的奇怪补丁。

署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)
位旅人路过 次翻阅 初次见面