我一直想试着在飞机上用一用互联网,倒不是因为果真需要它,而是就是想体验一下。不过,即便有几回这样的机会确实摆在面前,我也不相信这种系统会安全地处理我的信用卡资料。这只是一种直觉。
几天前,我搭乘维珍美国航空公司配备Gogo服务的航班时,决定探究一下安全性。现在回想起来,我之前的犹豫似乎有其道理。
我先从一款安卓设备上的WiFi Analyzer应用程序开始入手,检查可用网络。两个网络被隐藏了起来,这给我的第一印象并不好,因为隐藏网络提供不了多少安全性。
其中一个隐藏的网络使用WEP安全机制,我关闭了设备,以免接入该网络。
安装网络的技术人员允许在飞机上使用像WEP这么不安全的技术,这表明了什么?没什么好东西。这也许是个蜜罐?
另一个隐藏的网络用WPA2 PSK保护起来。它有七个接入点,几个使用2.4GHz波段,还有几个使用5GHz波段。
据WiFi Analyzer显示,所有网络使用思科硬件作为接入点。也就是说,除了一个以外。还有一个由iPhone建立的网络,这给我的感觉是很糟糕。准是某个苹果用户不知道如何在飞机上关闭热点功能。
至于乘客应该可以使用的主网络,它完全大门敞开着。也就是说,根本没有什么WEP、WPA或WPA2加密技术。换句话说,它是最危险的一种无线网络,这种网络让坏人轻而易举就能窥视你在网上的一举一动。
想应对敞开网络的危险,标准的建议就是使用虚拟专用网(VPN)。换句话说,引入你自己的加密技术。我对许多航班乘客会这么做持怀疑态度。
关闭加密以获得易用性实在太司空见惯了。那样,最终用户不仅没必要输入密码,他们也没必要了解密码是什么。
但这是宣传教育上的失败。只要稍微花点力气,就能大大加强无线网络的安全。我在BSides安全大会上刚看到了这样一个例子。
安全大会使用网络名称告知用户密码。
大会的公共无线网络用WPA2-PSK-CCMP保护起来,网络名称(SSID)是BSidesPublicPassord:BSidesLV。诚然,这个名称有点长,“密码是123rabbit”之类的网络名称会一样好。即便整个飞机都使用一个密码(尽管远远称不上理想)也是在安全方面向前迈出了一步。
我想,航空公司和Gogo渴望从无线服务中获得利润,害怕提高准入门槛。密码很麻烦。但是加强安全性会鼓励更多的用户使用无线网络。我迫不及待地想看到哪架航空公司率先宣传其无线网络的安全性多高,而不是宣传网速多快。
主网络的名称是“gogoinfight”。有两个接入点使用2.4GHz,两个接入点使用5GHz波段。在2.4GHz波段上,它使用信道1和信道11,这很好。
我从安卓4.4设备一连上去,系统就提醒:我需要登入到网络。这是安卓系统以自己的方式表明网络使用强制网络门户(captive portal),你要做的头一件事情就是运行Web浏览器。实际上不需要登入到任何系统。与许多公共的强制网络门户一样,新用户完全要同意服务条款。
一旦进入,我看了一下费用。在飞机上,最便宜的一种服务是30分钟互联网接入。我之前在地面上查看时,最便宜的一种服务是1小时互联网接入。
我开始购买服务,以检查安全性。
我注意到的头一件事就是,Gogo网站并不使用扩展验证(EV)证书。这么做是毫无理由可言的。
EV证书向最终用户表明了他们打交道的这家公司的名称。相比之下,成本较低的域名验证(DV)证书只提供了加密功能,根本不提供验证功能。
为了表明这种区别,不妨想一想Gogo公司本身。很少有人知道其网站名称。是gogo.com、gogo.net、gogoinflight.com、 gogointernet.com还是gogointheair.com?欺诈域名(比如gogoinflite.net)的所有者可以获得DV证书。然而,只有货真价实的Gogo公司才能获得EV证书,因为扩展验证证实了这家公司确实就是它声称的那家公司。如果使用成本较低的DV证书,没人能证实gogoinflite.net的所有者与Gogo有任何关系。
在网上销售产品/服务的任何公司都应该有EV证书。这笔经营成本是少不了的。
Gogo尤其需要EV证书,因为它使用不仅仅一个域名。在空中,它使用gogoinflight.com。在地面上,它又使用gogoair.com。
Gogo网站上缺少的另一项安全功能是完美向前保密(Perfect Forward Secrecy)。就一句话,要是没有完美向前保密,可以说在线安全就是骗人的。
最后,我寻找另一项无线安全功能:隔离。
你通常可以看到路由器建立的访客网络上提供的隔离功能。访客网络与飞机上的无线网络有一个相似的目标:它们希望用户能够访问互联网,但别的其他网络访问不了。也就是说,它们想把访客网络用户与可能在网络上的任何设备与其他任何人隔离开来。
TP-LINK Archer C8路由器建立的访客网络适用的配置选项就是这方面的一个典例,如下所示。
第一个选项确定了访客用户能否看到对方,第二个选项控制了他们能否看到本地网络上的其他设备(比如网络打印机)。这很简单,而且解释清楚。
想测试运行“gogoinfight”网络的思科设备是否也在阻止客户机看到对方,我在安卓设备上运行了Fing LAN扫描工具(http://www.overlooksoft.com)。
Fing结果发现了另外22个无线网络用户。在30000英尺高空下,便宜的消费级路由器Archer C8提供了比昂贵的思科设备还要好的隔离安全效果。
另一款安卓局域网扫描工具PingTools(https://play.google.com/store/apps/details?id=ua.com.streamsoft.pingtools&hl=en)拥有Bonjour浏览器。我对Bonjour不太熟悉,只知道它用在iOS和OS X上,用于发现网络上的设备和服务。当然了,Bonjour浏览器发现了网络上的一个苹果用户。
很显然,用户彼此没有隔离开来,这让他们暴露在中间人攻击面前。
使用ARP中毒(也就是ARP欺骗),网络上的坏人就能佯称是思科接入点。受害者通常不知道发生了什么坏事,因为坏人继续提供在互联网接入服务,但是流量都经过他之手。也就是说,网络上的坏人能看到从中招的无线设备进进出出的所有信息。更糟糕的是,坏人能够在飞行中篡改数据。连通常很安全的HTTPS/SSL/TLS流量也会沦为中间人攻击的受害者。
顺便说一下,ARP中毒并不是无线网络上才有的,它可以追溯到所有网络都使用有线以太网的时期。
很显然,Gogo在搭建互联网接入服务时,安全并没有引起它的注意。要做的防御性工作就是把飞机当成是无线禁区。
英文:A look at the security of Wi-Fi on a plane