最近这两天,著名的网络设备供应商TP-Link发表声明称,某些“所谓的路由器安全软件”引导用户输入路由器管理员密码,进行所谓的“健康检查”,TP-Link建议大家警惕此类软件,坚决不要在此类软件中输入密码。因为当用户将这个密码提供给某些叫做瑞星的厂商时,它们即掌控了路由器的管理权限,上网行为便可能因此暴露出去,包括网银密码、支付信息等。
我们姑且不论这个某些厂商的软件求路由器管理员密码意欲何为,这种行为如果上纲上线可被称作“社会工程攻击”,虽然在小编看来社会工程攻击这种具欺骗性质的私密信息索要方式没有技术含量,它们却真实有效,是黑客常用的方法。大部分钓鱼站点所用的也正是此类攻击方法。
我们不能把某些厂商说成是黑客这么严重,不过宣称“健康检查”却是黑客攻击的有效手段。当然黑客的攻击方式还有很多种,在《黑客入门》系列文章中,我们将对黑客这个饶有味道的词汇做深入探讨。
我们的初衷是要让同学们对网络安全有基本的防范意识,而不是要教导各位成为黑客,如果你有意愿这么做,也欢迎独自深造。就像社会工程一样,黑客们总是从网络中最薄弱的一环开始入手的,路由器也是黑客攻击的核心所在。而在我们常见的网络世界里,无线网络正是最薄弱的一环,所以首篇我们便来说一说WiFi网络。
无线网络很不安全
其实不管是高端大气上档次的小米路由器搭建的家庭WiFi环境,还是星巴克中的免费WiFi网络,其本质都是差不多的,不管路由器本身看起来有多贵气和豪华,它们都必须遵循网络世界中的一些基本协议来运作。
(就算长得跟触控板一样,还是可以破解)
WiFi由于是种无线传输的通讯技术,其传播过程就在空气中。我们的电脑或手机之所以可以收到附近无线热点的信号,并且知道该无线热点的存在性,是因为该无线热点(或者说无线路由器)在不停地对外发出一种信标,信标的内容就是“我在这里,我叫XXX”,而且是以广播的形式反复发出。这一无线网络覆盖范围内的设备都能截获到这一信标,并通知用户该Wi-Fi网络的存在性。
无线网络的这种特性决定了它相较有线网络的不安全性,但凡在无线热点覆盖范围内的设备,只要有能力接收这些信息,就能作信息的进一步掌控甚至截获。所以无线网络通常都一定具备了信息的加密特性,否则黑客很容易就读取到密码之类的敏感信息。
密钥不只是密码
所谓的加密,举个例子说即是当要传输“his”这个单词给对方时,为防止中途被人拦截后获取信息,通过某种加密规则,实际发出的信息是“jku”——这里的规则是每个字母往后推2位。这样即便中间人截获到信息也看不懂这则信息究竟在说什么。当然实际的加密规则不会这么简单,但仅约定双方才知道加密和解密规则,互相读懂对方的信息。
如果某个无线热点要求客户端提供密钥才能连接,则该无线热点会在信标中说“我在这里,我叫XXX,要连接我的话请提供密钥”。密钥顾名思义是一种秘密的钥匙,它实际是指双方约定的加密规则,而不是提供一个验证密码,解密正需要这样一把钥匙。鉴于无线网络在空气一定范围内传播的特性,客户端在回复密钥的过程中,这条回复信息也可以被该网络覆盖范围内的其他设备拦截,如果这个过程不是加密的,那么要读懂这串字符就显得相当轻而易举了。
所以密钥实则可以简单理解为通讯双方约定好的一种加密规则——在此后的通讯中,双方将以这种规则对收发信息进行加密和解密。当然实际情况不会这么简单,通常密钥只是加密规则的一个环节,不同加密协议的规则在复杂性上也是有差异的。
无线信息是如何拦截的
一般来说,无论是PC中的网卡还是手机中的通讯芯片都具备了信息的过滤功能,当它们在接收到某则信息时会首先从最初级的层面将信息拆开,仅查看该信息的接收目标地址,当发现这则信息不是发给自己的时候就将该信息丢弃——这个过程是不会通知用户的。在无线网络中,通讯芯片实际经常会执行这个拾获和丢弃信息的动作。
在例如星巴克这样的公共WiFi区域,我们的网卡会抓获很多原本不是发给自己的信息。恰有一些软件工具,例如Wireshark能够将这些原本要丢弃的信息拾获并反馈给用户,这样也就实现了Wi-Fi网络环境中不属于自己信息的截取。因为爱活是一家非常正经的媒体,且Wireshark设计的初衷是进行数据包分析的,所以这里不会教导同学们Wireshark的使用方法,不过还有一种工具叫百度。
(不过Wireshark截获的这些包你能看懂吗?)
网络上流传的一些安全手段因此也就变得不可靠,比如许多同学认为禁止路由器进行信标广播,即不告诉周围设备自己的存在性就安全了——有用户抱怨小米路由器说设置中没有隐藏信标的选项,但实际情况是就算不进行信标广播,数据通讯仍有无数数据包在收发,要截获也很容易,这些通讯数据包里就包含了网络名称;另外还有同学认为只要在路由器上绑定连接设备的Mac地址即可,其实Mac地址数据既可以截获也可以伪装,所以这些手段根本就称不上安全。
怎么才能知道邻居家的WiFi“密码”
我们打开笔记本或手机的WiFi功能后会发现周围有很多WiFi信号,有些是来自运营商,有些是来自邻居,他们的绝大多数都是需要输入密钥才能连接。我们前面谈过,这些密钥指的是WiFi数据通讯的加密规则或机制。加密机制是多种多样的,用过WiFi路由器的同学应该看到过WEP或WPA/WPA2之类的加密选项。通俗地说,这是实现加密的具体方法或协议,阐述的主要是一些加密规则的实现方式。
(小米路由器设置中的加密方式选择)
WEP是Wi-Fi世界最早提出用于提升无线网络安全性的加密机制,初期有人认为WEP第一次将无线网络的安全性提升到了有线网络的境界。但在本世纪初期,安全或者破坏专家们就发现了WEP的先天缺陷,即采用WEP传输的加密信息中有一部分是相对固定的控制信息。就像数学中的应用题一样,在给定已知条件的情况下,就可以求加密规则和信息原文。实际情况确实是只要截获足够多的传输信息,就能够得出密钥字符串的值。
(如果你有Linux基础,用一些简单命令行工具来抓包,能够获知很多信息)
WPA和WPA2的出现就是为解决WEP存在的这种缺陷而设的。WPA/WPA2的加密认证机制相比WEP要复杂得多,杜绝了各种篡改数据或解密数据的可能性,其通讯过程迄今堪称万无一失。不过黑客们仍然发现,在密钥验证过程中,当合法用户输入正确的密钥并反馈给路由器的时候,路由器会回应:密钥正确,准予连接——这个过程需要进行来去4次通讯,习惯上可称作“四次握手”,握手成功则可进行后续数据收发。虽然四次握手信息也经过了加密,但此加密过程与密钥的关联最大,所以具备了破解的可能性,这是WPA/WPA2的突破口。
在加密机制遭到破解后,还有什么是做不了的呢?这里我们只能把蹭网原理告诉各位同学,具体的实施方法并非三言两语可以说清。但市面上已经出现了不少成套的数据包截获和分析,以及密钥运算工具,其实现原理也就是我们上面提到的这些了。如果你有Linux使用基础,那么这套工具的使用仅需半天时间就能研究透彻,初级应用就是获取邻居家的WiFi“密码”——不过现代路由器给出了更多样的解决方案,比如小米路由器在感知到不明设备接入时就会通知主设备,以期起到防范作用——但这种防蹭网手段其实很低级,要找突破手段仅是需要一些时间而已,而且对数据截获自然也是无能为力。
至于高级的,今年二月份iOS和Mac OS X曝出SSL漏洞,还有近期普遍流行的心脏出血漏洞就可以很好地被WiFi网络中间人攻击利用——SSL简单理解也是一种加密方式(和WEP、WPA/WPA2所处层级不同),虽然它们和WiFi其实没有太直接的关联,但如果能够结合WiFi中间人攻击,又有幸截获到网银密码...咳咳...我们只能到此为止了。
在这一篇章的讲解中,我们非常诚恳殷切地期望同学们注意自家的WiFi网络,以及前往星巴克之类公共场合的无线网络接入安全。Windows系统在感知到周围存在未加密的WiFi网络,用户请求接入时都会询问用户这是在家里、在办公室还是在公共场合,显然是有道理的。
加密是门深刻的学问,即便在比无线安全的有线世界里,加密也是存在而且必须存在的,否则用户在输入网银密码之后就只能沦为黑客的肉鸡了,无需主动给骗子汇款,也能坐等倾家荡产,或成为攻击他人的工具。如果你对网络安全和黑客之道有深深的向往,我们还将在接下来的文章中谈到更多与加密,以及各类常规黑客攻击手段,如我们常听到的DNS、ARP欺骗、DoS攻击等有关的内容,这些都将有助于各位轻松毁灭一个大型网络,最短时间内在网络上报复仇家,绝对是居家旅行杀人偿命的好伴侣。