独家新闻日记

网络安全之无线网的安全

现在我们用到的无线网络要多于有线网络,所以无线安全与我们密不可分。无线黑客门槛虽然不低,但若是接触到高级的层次,破坏力可以说是极其强大的。在这个万物趋向互联的世界,了解一些无线安全知识,做到心中有数,是非常重要的。我会从基础方面来讲讲无线安全,从基本原理入手,然后切入算法安全,阐述无线通信中加密算法的应用与破解;接着协议安全解析多个标准协议的特性并指出破绽所在以及漏洞的利用方法;通信安全分析无线通信过程中传输内容的信息获取和解读;杂项应用讲解在更广范围的无线安全领域中的各类技术应用和应对措施。

一、无线安全基本原理

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

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的新手会很方便。

推荐新闻