查看原文
其他

网络安全之无线安全

计算机与网络安全 计算机与网络安全 2022-06-01

一次性进群,长期免费索取教程,没有付费教程。

教程列表见微信公众号底部菜单

进微信群回复公众号:微信群;QQ群:460500587



微信公众号:计算机与网络安全

ID:Computer-network

无线安全与我们密不可分。无线黑客门槛虽然不低,但若是接触到高级的层次,破坏力可以说是极其强大的。在这个万物趋向互联的世界,了解一些无线安全知识,做到心中有数,是非常重要的。


本文将从多角度剖析无线安全,从基本原理入手,然后切入算法安全,阐述无线通信中加密算法的应用与破解;接着协议安全解析多个标准协议的特性并指出破绽所在以及漏洞的利用方法;通信安全分析无线通信过程中传输内容的信息获取和解读;杂项应用讲解在更广范围的无线安全领域中的各类技术应用和应对措施。


一、无线安全基本原理


无线安全指的是无线通信安全。一台设备中的信息通过调制从天线发出,另一台设备经过滤波之后解调信号,获得信息。在这个通信的过程中所有发射的信息都是广播的,也就是说任何人在一定范围内放一根天线都能接收到这个信号,这就是无线安全所有应用的根本前提:如果数据会被别人获取,那有什么解决方法?


1、无线通信


无线通信在传输的过程中通常是加密进行的,有时由于设备性能等多种原因会选择不加密,这种情况称为透明传输,简称透传。透传的信号非常容易被解密,因此是较为不安全的。只要攻击者有合适的设备来截取信号,配合特定的开源软件,就可以根据公开的协议进行解密,然后获得数据,即“无线抓包”。


2、加密与算法


既然直接传输不安全,那肯定就要考虑加密传输了。加密的原理就是将数据编码,以至于获取到数据的人并非都能解读其中的内容,没有密钥或者解密方法的人得到了加密过的数据也只能干瞪眼,而无法获取其中的信息(这里不考虑算法的有效性和暴力破解的可能)。所以加密这种操作,在无线传输这种跨过多层进行的传输中,只要有任何一层通信做了加密,通信即可被认为是安全的。比如WiFi没有加密,但是你使用了加密的VPN或者代理来连接外部网站,那么你和该网站之间的通信依然是安全的。


算法是指程序为实现某一目的所执行的步骤。加密算法就是指程序在对数据加密的过程中所执行的具体步骤以及计算的方法。常见的加密算法有AES、DES、RC4、RSA等。


3、操作系统与实现


无线安全在实践的过程中通常会涉及操作系统的原理。Windows系统因为内核阻隔了程序直接与硬件交互的权限,使得程序只能通过Windows的API来实现与硬件的交互,以至于想在Windows下使网卡进入监视(Monitor)状态是一件很困难的事。由于这个原因,接下来的内容都基于Linux系统。Linux是开源系统,具有更好的开放性,故被广泛地用于渗透测试中。无线安全中最常见的Aircrack-ng工具套件虽然也有Windows版本,但是使用并不方便。Linux下的网络硬件会被做一些特定的标记,比如eth0表示第一个以太网卡(面向高级用户的程序通常使用0来表示第一个元素),lo表示回路(这是一个特殊的网络设备,表示回路,在Linux下的ping 127.0.0.1就是通过这个虚拟网络设备实现的)。无线网卡通常会被标注为wlan0,这是正常模式。当使用工具将网卡载入moniter模式时,网卡标记会变为mon0,这是Linux下的设备名,所有程序与硬件直接进行的交互操作都将使用该设备名作为交互对象。由于Linux较为严格的权限管理,程序与硬件直接交互需要系统的最高权限,也就是root权限,请在root权限下执行无线渗透测试套件(Kali和BT系列等专用的渗透测试系统通常默认权限就是root) 。这里推荐在Ubuntu系统下搭建适合自己的环境,当然还可以使用集成了工具的BackBox、Kali等系统,这对于不熟悉Linux的新手会很方便。


二、算法与协议安全


加密通信最核心的部分就是算法,此处主要介绍无线安全中的算法安全。不管是WEP、WPA还是更多的加密方式,都必须使用加密算法加密,一旦加密算法漏洞或者密钥被破解(如果是有密钥的加密算法),一切加密便成了空谈。


目前整个互联网的安全可以说都是基于加密算法的,最早的时候只有对等加密算法(加解密使用相同的密钥),后来出现了不对等加密(加解密使用一对密钥,加密用其中一个,解密只能用另一个)以及以MD5算法为代表的不可逆加密。因为有了不对等加密,可以在不预先共享密钥的前提下进行加密通信。HTTPS加密的通信方式以及OpenSSL可以说是世界互联网安全的基石,而不可逆加密算法(摘要算法)则是网络安全的重要保证。MD5算法在网站后台中实现了在对用户进行密码鉴权的同时不保存用户密码,保证了用户信息的安全。


下面将演示如何进行无线渗透测试,目的是获取密钥,将用两个无线网络作为实例,一个采用WEP加密,一个采用WPA-PSK加密。


如果您想使用独立的Linux系统来练习,可以尝试直接U盘启动BackBox等渗透测试系统,如果打算安装独立的Linux系统,在分区和安装系统的部分一定要非常小心,Linux采用了完全不同的文件系统,安装的时候若选择不当很可能会丢失数据。自己在硬盘上搭建渗透测试环境的话,可以直接安装Kali/Backbox或者基于Ubuntu安装所需的工具。另外虚拟机下的Linux不支持笔记本的内置网卡,包括ExpressCard网卡都不支持,只能使用USB网卡。

1、WEP


WEP协议使用RC4加密,RC4本来是一种私有加密算法,但是后来被人公开了,运用就变得广泛起来,但是其实很不安全。WEP的易破解性和ShadowSocks中使用RC4加密的不安全性都证明了这一点。RC4是流加密算法的一种,同一个子密钥绝不能使用两次,所以使用(虽然是用明文传送的)IV的目的就是要避免重复;但是24bit(3个Byte)的IV实在太短了,在稍微繁忙的网络上都极易产生重复,而且IV的使用方式也使其可能遭受到关联式钥匙攻击。RC4算法主要是对数据进行了打乱(重排),使得数据混淆,而没有加干扰,这使得RC4被普遍认为是一种不安全的算法,因为在数据中没有密钥长度。在WEP的破解过程中只要截获足够多的数据包就可以得到密钥,而使用密钥则可以监听并解密所有的数据包。


(1)打开终端。


(2)输入sudo-i,然后根据提示输入Linux管理员账户、密码,按回车键(输入密码的时候屏幕上不会显示密码或星号,但不代表你密码没输进去),下一行命令开头的$变为#则代表成功(提示符已是#的忽略此步骤)。


(3)输入apt-get update更新软件源。


(4)输入apt-get install aircrack-ng(渗透测试系统忽略此步骤)。


(5)先测试无线网卡能不能用,使用命令iwconfig,如果出现了某一个网卡后面有比较详细的信息就请记住它左边的字符,这里是wlan0(见图1)。

图1  iwconfig命令返回信息

(6)将网卡设定为监控模式,输入airmon-ng start wlan0(将wlan0替换为你使用iwconfig查到的字段),如图2所示。

图2  airmon-ng命令正确返回信息

(7)使用ifconfig确认网卡已进入监控模式,在终端输入ifconfig命令,将在结果中看到mon0字样的网络设备,如图3所示。

图3  正确设置网卡为监听模式后所能看到的信息

(8)安装minidwep-gtk。常用的渗透测试系统都自带了这个软件,从软件发布的源码说明来看,作者应该是中国人(如图4所示)。

图4  minidwep-gtk界面

(9)使用minidwep-gtk破解WEP密码。由于WEP的各种协议漏洞,使得破解WEP的密码变得极为容易,甚至有这种全自动工具产生。破解方法很简单,单击Scan搜索WiFi,选择加密方式为WEP的热点,然后单击Lanch按钮(应该是Launch,开发者打错字了),只要信号够好,没几分钟就能在右边看到密码了。


以上是破解WEP密码的方法。由于破解过程极为简单,WEP这样的加密方式在当前的安全环境中已基本失去了价值。


2、WPA(2)/PSK


WPA和WPA2是现在主流的两种加密方法,这两种加密方法其实都具有很高的安全性,它们本身都是企业级的安全加密标准,需要使用Radius服务器来进行用户鉴权。使用Raidus服务器做认证时AP会自动开放一条从客户端到认证服务器的通道,因此认证方法极为自由,可以是用户名、密码或者是证书,还可以是其他方法。一旦用户通过了服务器的鉴权,服务器返回同意连接的信息到AP上,至此客户端就连接上了一个WPA/WPA2认证的AP。由于Radius服务器部署的不便捷性和高成本,在个人应用中,通常使用WPA-PSK或者WPA2-PSK作为加密方法,PSK的意思是pre-shared key,即预共享密钥。简单地说就是在用户访问之前将访问密码告诉用户,用户得到密码之后就使用这个密码来连接热点。


WPA2和WPA的区别是算法,WPA和WEP一样都使用了RC4算法,但是WPA拓展了IV的位数,使得IV远远没有WEP中那么容易重复,想等到两个相同IV的包变得异常困难。同时在RC4算法的基础上为每个包引入了单独的密钥(per-packet key机制),使截获正常的通信数据包对密钥的破解不再有帮助。密钥通过算法进行不可逆运算之后的数据只会在握手包中出现。所以WPA的监听必须在监听到握手包之后才能获得有可能解密的数据包,而真正解密需要等到破解了密码。解密WPA数据包也是一个麻烦的过程,因为这种运算的不可逆性,必须使用密码字典中的密码逐个做同样的运算,尝试能否得到一样的结果。这样的运算量较WEP无疑是巨大的,而且浮点运算对于CPU是一件非常吃力的事(比特币也是浮点运算),所以通常会使用显卡或者专门的FPGA计算卡来猜测密码。


WPA2允许使用AES算法。AES是高级加密标准,是一种加密强度和加解密速度都高于DES的算法。AES128在AES标准中的加密强度最低,但是这样的加密强度对破解时间的要求已经远超人类历史了,所以是很安全的东西(当然不能排除存在算法漏洞)。


现在WEP热点已经非常少见了,根据需求,一般人要么选择不加密,要么选择WPA加密,而不会选择WEP这种加密强度低、又不向他人开放网络的方法。


WPA(2)-PSK加密的破解无疑是非常困难的,后来由于快速连接(WPS/QSS)方法的出现,可以使破解变得更加有效,但是不能像传统方法一样抓到包后离开热点范围慢慢破解,而需要将设备置于热点周边几个小时,等待破解完毕。


这里重点是网络安全而不是讲解如何蹭网,WPS/QSS法在实际的渗透过程中没有什么价值,毕竟没有一个可以让你进行几小时渗透的环境,故这里只讲解抓握手包的方法。


下面讲解WPA(2)-PSK网络的破解方法,直接从网卡进入了监视模式之后开始,前几步和之前所介绍的内容是一样的。


(1)使用airodump-ng mon0查看当前的所有无线网络,并获取详细信息(见图5)。

图5  airodump-ng界面

airodump-ng的结果随着时间的推进会越来越多,上面一组结果是AP的信息,下面的是客户端的信息,当目标AP出现在了上面一组结果的时候就可以按Ctrl+C组合键收手了。这里第2条c103就是目标。


(2)记录一下目标AP的BSSID(MAC地址)和频段(此处为6),然后执行airodump-ng -c频段--bssid mac地址-w保存抓到的数据包的文件名mon0,如图6所示。

图6  airodump-ng命令示例

然后终端会进入如图7所示的界面。

图7  加筛选的airodump-ng界面

正常情况下上方只会出现一个BSSID,下方的信息条数是当前发现的客户端数量,如果没有发现客户端则无法进行攻击,当发现了客户端之后就可以进行重放攻击抓取握手包了。图7中第二个客户端是测试用的手机,下面将使用重放攻击,并捕获它和AP之间的联系。


(3)开启一个新终端(获取root权限),进行重放攻击,输入aireplay-ng -0 10 -a BSSID -c客户端地址(station列)mon0,如图8所示。

图8  许多计算机在使用aireplay-ng时会出现的问题

此时出现了一个问题,就是没有做过特殊处理的内核可能会导致mon0返回频段为-1(不存在的频段),根据提示可以使用--ignore-negative-one忽略这个问题。执行成功后会出现如图9所示的画面,这时可以进行下一步,否则可能是信号原因,请多重试几次。

图9  aireplay-ng攻击成功返回信息

(4)在airodump的终端里按Ctrl+C组合键结束进程,然后用aircrack-ng跑密码。常用命令aircrack-ng -w字典文件-b bssid地址cap文件名,如图10所示。

图10  aircrack-ng命令示例

按回车键进入跑包界面,如图11所示。

图11  aircrack-ng爆破密码成功返回信息

此处为节省时间直接把正确密码放入字典了,所以瞬间就跑出了结果。


以上就是破解WPA(2)-PSK加密的全过程。


三、通信安全


无线通信作为一种通信方式,最核心的部分自然是信息本身。此处着重关注信息在无线网络传递过程中的安全问题,将使您对无线网络环境中传输信息的安全性以及针对信息内容的攻防手段有所了解。


1、加密网络渗透


通常情况下,大多数人破解无线网络可能只是为了“蹭网”,也就是获得访问权限,但是黑客破解热点的另一重意义是为自己在一个安全的网络环境中打开一个突破口。破解无线热点可以快速侵入防火墙内部(相对于从外部穿透NAT),从而进入内网渗透阶段。这样的情景通常会出现在社工渗透或者APT中,同时目的也不仅是可以上网那么简单,而是窃取信息。此时人们保卫的不仅仅是带宽和网络资源,更是网络的信息安全。

2、通信监听


很多企业会采用另外一种无线内网的部署方式,即透传无线网+登录界面。比较典型的解决方案是H3C提供的IMC Portal。工作的地方也采用了这套方案来实现局域网的管理。当用户连接上该网络后,将不能获得Internet及其他同局域网计算机的访问权限,ping都ping不通。若黑客社工渗透的过程中使用一台有线网机器(通常无须鉴权)或已完成登录的无线网机器搭跳板,使用Iodine等DNS穿透工具,就可以使用DNS通道穿透内网,从而进入内网渗透阶段。另外很可能遇到的一种情况是IPv6无屏蔽,而IPv4的数据包却基本无法穿透。这时,攻击者会将安装了自己固件的开发板接入有线(开发板体积较小,隐蔽性较好),搭建IPv6转IPv4代理服务器,从而实现未鉴权计算机通过IPv6穿透到开发板做的内网跳板,同时接入内网,进入内网渗透阶段。攻击者一般先用Intel Galileo Gen2作为跳板,其次是Beagle Bone和树莓派。IPv6代理服务器比较难配置,但是已经有成熟的方案存在了。


攻击者对于没有加密的无线网络,一般从无线本身入手进行攻击。由于其目的是窃取数据,可以在不连接或者无鉴权的情况下实现,甚至做到获得鉴权所用的账户(由于登录界面通常没有加密,合法用户登录时的信息是明文传输的),从而获得进入内网的合法身份。


明文通信的监听具体操作非常简单。攻击者依然可以使用之前的方法将网卡进入监听模式,然后使用Wireshark进行抓包即可。


有几个要点需要提示一下:Wireshark需要使用root权限启动,否则无法抓取监听模式网卡的通信,请确保网卡被锁定在了被监听的目标热点的频段上,如果做不到可以让网卡在连接目标热点的同时进行监听(可能会打草惊蛇),如果怕对方发现则可以连接到相同频段的WiFi,例如是自己的手机热点(多试几次总会连到相同频段的),然后进行监听。这种方法可以用在不能杀掉引起网卡调频的进程时候锁定网卡的频段。Wireshark默认只能抓取一些无法识别具体应用层协议的数据包,若要识别应用层数据包(例如在HTTP传输中具体包含的内容)则需要打开设置中的一个开关,如图12所示,需要打开Enable decryption开关。

图12  Wireshark打开加密支持开关

之后Wireshark会要求重启一次监听,按要求重新进行监听之后就可以读取应用层数据包了。例如在Filter栏输入http并单击旁边的Apply便可以只查看可以轻易理解的HTTP数据包,而不显示其他数据包,具体效果如图13所示。

图13  Wireshark的http筛选器效果

同样,这个方法还可以应用于加密的WiFi,当然前提是知道密码。对加密WiFi通信的数据包进行解密的方法也很简单。单击Decryption Keys后面的Edit按钮,然后按照第一层设置界面上的格式要求添加自己所需要的key,即可将加密的WiFi通信进行截取,操作如图14所示。

图14  Wireshark添加目标WiFi密钥

这种被动监听的方案在做了ARP隔离的网络中,或者在想彻底隐蔽自己不被目标的网络管理员发现的情况下是非常有效的攻击方法。


3、已保存热点钓鱼


最后一种比较常用的攻击方式就是利用受害者设备上已经保存的热点进行钓鱼攻击。绝大多数WiFi接入设备都会自动连接周边的能搜索到的且名称已保存在本地的WiFi网络。之所以不验证热点的MAC地址是因为很多时候企业组网都会用大量同名不同MAC的AP,而终端应该保证在这些AP之间无缝切换。但是这样就给了攻击者可乘之机,即建立可以和目标设备保存的WiFi同名的热点。如果这个热点没有密码,可以凭此轻松对目标设备进行中间人攻击;而当热点有密码的时候,可以利用这个钓鱼热点来骗取密码(仍然需要破解)。


这种方法其实也只是理论可行,而真正使其工程化的是一种叫Probe的机制。由于隐藏热点的存在,同时为了提升连接效率,许多移动设备会主动向外发送自己考虑连接的热点列表,而这种信息在airodump-ng中一目了然,如图15所示。


图15下半部分是目前网卡所能扫描到的客户端列表,而最右边一栏Probes则是这些客户端所发出的试探信号。当攻击的目标机发出了Chinanet、CMCC等明显没有密码的热点试探信号,或者知道其中的某个网络是没有密码的(例如部署了IMC Portal)的校园内网时,就可以轻易开启同名热点,然后对大量客户端进行钓鱼攻击(客户端会自动连上信号最强的同名热点)。

图15  airodump-ng对Probe的显示

由于许多企业都采用了加密的无线内网方案,给利用无线网进行的APT造成了障碍,此时如果能利用某一台会发送Probe的客户端,则可以获取到密码。开启钓鱼热点之后,受害终端将会发送携带密文的数据包到钓鱼热点,此时钓鱼热点就能截取这个数据包,并使用它破解目标热点的密码。而获取到密码之后则可以开启受害终端并连接成功的钓鱼热点,仿冒OA界面等对敏感信息进行钓鱼


四、杂项


无线安全是一个非常复杂的领域。从广义上讲,无线安全所包含的远远不止WLAN通信,从电报安全到4G网络与卫星通信安全,都可以归为无线安全的范畴,此处将讨论无线安全中WiFi以外的部分。


随着时代的发展,生活中大量的有线通信都转变为了无线通信。我们关注的无线通信和无线安全也不能仅仅局限于WiFi,还有大量的领域等待人们去探索。


现在除了WiFi外,无线通信主要还有蓝牙、ZigBee、DVB-T、GSM等很多种,这些领域多多少少都会有一些安全漏洞。举个简单的例子,国内的某些基于蓝牙4.0协议的手环可以轻松被黑客控制。它们普遍存在工厂调试接口没有封闭或者加密,以至于开发者可以轻易截取并解密接口,然后实现对手环控制权的夺取。有的手环甚至对开源方案的协议没有做任何更改,攻击者只要看到品牌就能对着文档直接进入工厂模式并夺取控制权。夺取控制权之后,攻击者就可以随意更改屏幕内容,控制手环无限振动,虽然这并不能造成太大损失,但这些漏洞着实令人担忧。


曾经有人通过使用一个四轴飞行器夺取另一个四轴飞行器的控制权,这就属于典型的物联网透传的漏洞。很多时候这些遥控设备使用的并非是生活中常见的通用协议,而是使用了低成本的nfr24l01等芯片进行直接通信。以nrf24l01p为例,这是一枚非常常见的无线数传芯片(可以简单地理解为不使用蓝牙/WiFi的无线串口),它本身支持AES加密传输,但是许多开发者基于性能考虑或者干脆就是因为偷懒而没有开启这个功能,以至于设备和设备间的通信可以轻易被监听,甚至可以劫持被控设备的控制权。


GSM协议是目前世界上使用最广的通信协议,但是它本身也有许多漏洞。这个协议可以说是很不安全的,它的很多漏洞很早就已经被发现,但至今也没有得到妥善修复。有些运营商架设GSM网络根本就没有做传输加密处理,以至于不利用漏洞就可以轻易监听在空中明文传输的短信等内容。而3G和4G网络一直被认为是安全的通信方式,可是3G网络也已经被攻破了,攻击者也许是出于维护公共网络安全的目的并没有公开攻击方式与所利用的漏洞。4G可以说是目前唯一认为比较安全的移动通信,4G网络中的应用层不加密协议通信,被认为是不可以被除用户自己和运营商外第三方监听的。


有些设备例如大多数对讲机天生就不具备加密特性,它的所有通信都可以被轻易监听,监听者甚至只需要将对讲机调至同一频段就能实现监听。谈到对讲就不得不说一个在国际安全界已经引起注意的严重问题,那就是机场塔台与飞机之间的通信。使用特殊的设备(其实很常见)和专门的软件可以轻易监听机场塔台和飞机之间的对讲等通信,此时如果发出干扰信号去引导飞机飞向错误的方向,很可能会引起非常严重的事故,这可以说是一个真正威胁到普通民众生命安全的无线安全漏洞


另一个长期受关注的主题是RFID与NFC的安全。简单地说,这就是近距离非接触式通信的安全。NFC安全是研究对各种加密或是不加密的卡片进行破解、复制、修改信息等内容。NFC在当今社会大量用于身份验证和支付,NFC的漏洞可以使攻击者对物理空间进行未授权访问,或者去商店“偷”抹茶小饼干。


1、物联网透传


随着互联网技术、无线通信技术以及嵌入式行业的蓬勃发展,智能家居渐渐进入了人们的视野,各种智能插座、家庭控制中心在一次次的众筹中诞生,但这些已经渐渐掌控了家庭中各种物品控制权的设备真的安全吗?


先来谈谈各种射频模块。射频模块通常被称为RF模块,不同的射频模块工作在不同的频段。通常射频模块使用自己的私有协议,实现的功能可以简单地理解为无线串口。但是在不使用应用层或者协议层的加密时,这些模块之间的通信往往是不加密的,只需要有相同(或者支持相同协议的)模块即可轻易监听所有通信内容。


以APC220模块为例,这是一个常见的工作在433MHz频段的射频数字信号传输模块。它可以模拟为一个串口设备与主控芯片连接,同时发送所有从主控串口上接收到的信息,并且将自己以无线信号形式接收到的信息使用串口发送给主控芯片,实现多设备之间的无线数传。


APC220是一个非常优秀的模块,功耗较低而信号较强。两块APC220可以间隔几百米或者隔着好几堵承重墙依然维持稳定的通信。这个模块在通信能力方面可以被视为极其优秀的,但是模块之间的通信并没有被加密,使用第三个APC220可以轻易监听另外两个模块之间的通信。


当这样的无线数传模块被应用到智能家居中时就会产生很多问题。例如现在比较流行的智能家居通常会包含射频控制车库门开关的功能,此时的通信内容若是每次指令都一模一样(非常常见的情况),那么攻击者可以轻易截取空中传输的控制信令,从而进行重放攻击,打开车库门,轻松对民宅进行未授权访问。


假设另外一种更加安全的情况,如果控制中心和车库门之间使用加密通信,并在通信内容中包含时间戳,那么这样的通信就会变得非常难以破解,也不可能被重放,从而实现了对家庭安全的良好保护。


这里主要是提醒大家有关智能家居和智能硬件的问题,现在智能家居和智能硬件还属于新兴行业,很多产品都处于不成熟阶段,也许它们的功能很令人满意,但是它们的安全性在攻击者面前却可能不堪一击。


很多随身设备也一样是不安全的,典型的是智能手环。国内曾经有开发者发现了某闭源手环的无限振动漏洞。当然这样的漏洞危害不大,而不会有什么实际的危害性。但是这只是很普通的运动记录设备,一旦使用者佩戴的是具有危险性的设备,例如带有电击叫醒功能的手表或者心脏起搏器,这样的设备如果有安全漏洞,并且遭遇攻击,就可能对生命安全造成严重威胁。


2、移动通信


移动通信是我们在日常生活中几乎离不开的东西,从最早的寻呼机、大哥大,到现在支持LTE、WiMAX等4G协议的终端设备,都在使用移动通信。1G网络早已彻底退役。2G网络则在当今世界还有极其广泛的应用。2G网络可以分为FDMA(频分多址,不同设备/传输方向工作在不同小频段,国内GSM网络采用此方式);TDMA(时分多址,将时间分为多个帧,设备在基站分配的允许的时段/帧进行数据发送或接收);CDMA(码分多址,没有物理频段区分,只有逻辑频道,基站和终端使用信号中的代码区分信号发送者与接收方)。CDMA是较为安全的网络,而另外两种则漏洞百出。虽然大多数漏洞都已被封堵,但是仍旧有许多运营商在使用存在漏洞的设备,有些运营商甚至干脆没有对自己拥有的GSM蜂窝网络通信做加密处理。攻击者可以轻易地使用非常便宜的设备实现对短信的监听。如果攻击者追踪了GSM通信的跳频,甚至可以实时监听通话。


国外有一个在安全界很出名的项目叫Osmocom,这个项目主要针对GSM做渗透测试。项目组开源了一套对GSM网络做特殊应用的套件,也放出了一套能自动收集当地GSM网络安全性信息的虚拟机镜像。比较典型的可以用于监听的设备是摩托罗拉的C118/C123手机,只要使用标准的3.5mm音频接口串口线加上一个3.5mm转2.5mm的音频转接头,以及一个USB转TTL串口的模块,就可以将C118使用串口连接到计算机,从而使用Osmocom的工具进行渗透测试


使用原版的C118只能监听附近基站指定信道的GSM通信,但是如果对C118中的某几个滤波器以及其他元件使用特定的元件替换,就可以发送信号,干扰正常的GSM通信。鉴于搭建伪基站是违法行为,不对具体的方法做解析。


当你的GSM手机受到伪基站攻击时会出现短暂的信号丢失,然后立刻变得比之前正常通信的状态强,攻击停止时也会出现短暂的信号丢失,之后信号比被攻击时弱。伪基站可以伪装成任何号码向你的手机发送短信甚至拨打电话。例如伪基站伪装成银行官方号码向你的手机发送诈骗短信,“注意发件人号码”的技巧将不再管用,你可能会轻信短信中所陈述的内容。


最近的消息是3G网络(特指WCDMA/联通系,可能包括TD/移动系,不包括电信/高通系的CDMA2000)也可以被监听短信,这导致我们对于移动通信的可信度产生了新的怀疑。也许在移动通信中只有网络通信才是真正安全的。


对移动通信感兴趣的朋友可以研究一下一个名为“OpenBTS”的开源基站程序,这个程序基于GnuRadio运行,算是软件无线电的一种功能、实例。 OpenBTS支持常规频分多址的GSM网络以及UMTS制式的3G通信。


3、软件无线电


软件无线电是在当前的无线电领域非常有用的设备,或者说是方法。英文名为SDR(Software Defined Radio),即软件定义无线电。这个概念理解起来非常简单,通常典型的无线电设备,例如手机中的基带芯片、nrf51822低功耗蓝牙芯片等都属于对无线通信协议的硬件(固件)实现。但是无线通信本身无非是在空中传播的信号,所以软件实现无线电协议在理论上是完全可行的。Gnu Radio是一套用于软件无线电的工具,根据官网的说明,就连声卡都能用于软件无线电。


现在成本比较低的SDR实现是用Realtek公司生产的电视棒做接收器,俗称RTL-SDR。一根Realtek的电视棒,通常仅需50多元即可买到,即便是被专门修改过周边电路以进行低频接收的设备,也仅仅只需200多元,最高能监听1.7GHz的信号。专业些的设备会比较贵,例如HackRF这一款SDR设备,价格将近2000元,但是可以收发的范围也能达到可怕的6GHz。


此处有一点非常重要,必须在此说明:在进行不明确免费民用频段的SDR研究时一定要保持彻底沉默地被动监听,不要试图主动发送任何信号。国家在无线电方面有很严格的管理机制,只允许特定的人(设备)在特定的频段发送特定范围内的信号,在进行需要发信的SDR研究前依照规定应取得业余无线电操作证书。平时我们使用的WiFi工作在2.4GHz,这是国家开放使用的频段,但是有一定的功率限制——你不能架设一个功率巨大的WiFi热点向整个县或是区域广播信息。5GHz的WiFi现在也是一个趋势,802.11AC标准就是为5GHz设定的。但是很多国家5GHz频段中的部分小频段是不允许使用的,因为这些频段很可能是军用或者因其他原因管制的。一些比较优秀的路由器中都会要求你为5G频段设置国家,以便路由器知道它所在的位置允许使用的频段。


为什么U盘必须插在计算机上?既然无线信号能够传输数据,那么是不是U盘只要供上电,不插在计算机上也能用?生活常识告诉我们,显然是不能用。但是为什么呢?空间中的信号传输是不稳定的,日常生活中常见的信号源都是低频信号源,所传递的信息也是低频率的信息。比如声波就是一种典型的低频信号。麦克风的原理揭示了声波可以直接转换成同频的电信号,但是这样的电信号如果直接发送,由于频率较低,即使经过功率放大也非常容易受到干扰,几乎无法无线传输。这时调制解调技术就被引入到了无线传输中。人们日常接触到的信号源首先被数字化,全部转换为二进制内容,然后使用高频的电磁波发送(称为载波),使得信号在传输过程中所受的干扰减小。当接收端接收到信号时,首先进行滤波,滤除不在载波频段上的信号,然后对载波进行解调,恢复其中的数字信息。这个过程其实包含了一次信息丢失,输入的信号例如声音本质上是模拟信号,但是经过这个系统的传输,转换成了数字信号,再精细的数字信号也会在数模转换的过程中导致信息的丢失。将这个原理应用到我们日常的WiFi通信中,就可以把计算机发送数据(精确到bit)的速率理解为信号本身的频率,而WiFi信号的频率为2.4GHz,远远高于计算机发送的数据频率。这也说明了为什么5G网络比2.4G网络在理论上快许多的原因,除了干扰源更少以外,同样重要的原因是5G频率的信号作为载波能承载更高频率的原始信号。

微信公众号:计算机与网络安全

ID:Computer-network

【推荐书籍】

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存