WIFI知识摘要
2016-1-20 wpa_supplicant
加密方式:TKIP & AES 对应 TKIP & CCMP
这里主要涉及WEP、WPA、WPA2和RC4、TKIP、AES。
安全方式:NONE WEP WPA-PSK WPA2-PSK
[WEP][ESS] [] []
安全选项:
例如[WPA-PSK-CCMP][ESS]
加密模式主要有:
WEP,
WPA-PSK(TKIP),
WPA2-PSK(AES)和
WPA-PSK(TKIP)+ WPA2-PSK(AES)。-最安全
WPA=IEEE802.11idraft3=IEEE802.1X/EAP+WEP(选择性项目)/TKIP
WPA2=IEEE802.11i=IEEE802.1X/EAP+WEP(选择性项目)/TKIP/CCMP
在802.11中的帧有三种类型:
管理帧(Management Frame,例如Beacon帧、Association帧)、
控制帧(Control Frame,例如RTS帧、CTS帧、ACK帧)、
数据帧(Data Frame,承载数据的载体,其中的DS字段用来标识方向很重要)。帧头部中的类型字段中会标识出该帧属于哪个字段。
group=CCMP TKIP表示自动匹配加密算法
CCMP采用的是AES算法,从安全性角度看比较好。
但目前现网中老一些的终端(如采用windows XP SP1系统)不支持WPA2的ccmp,所以TKIP的适用性更广泛一些。
答:802.11i是无线安全协议,是总的原则,相当于“宪法”,其内容包括WPA和WPA2两个部分内容,WPA相当于“治安处罚管理条例”,而WPA2相当于“刑罚”,所以WPA2是更高级的一种安全方式。PSK和802.1X是两种无线安全实现的方式,PSK是一种个人级别的,相对简单,而802.1X是一种企业级别的,较为复杂,但更安全。TKIP和CCMP是两种数据加密算法,在WPA和WPA2中都可以使用。而AES是CCMP算法中的核心算法,且目前来看,是最可靠的加密算法。
经过编译后的wpa_supplicant源程序可以看到
命令集 iwconfig iwgetid iwlist iwpriv iwspy --help
引用
# iwconfig interface key 0123-4567-89
# iwconfig interface key [3] 0123-4567-89
# iwconfig interface key s:password [2]
# iwconfig interface key [2]
# iwconfig interface key open
# iwconfig interface key off
# iwconfig interface key restricted [3] 0123456789
# iwconfig interface key 01-23 key 45-67 [4] key [4]
两个主要的可执行工具:wpa_supplicant和wpa_cli。
wpa_supplicant是核心程序,它和wpa_cli的关系就
是服务和客户端的关系:后台运行wpa_supplicant,
使用wpa_cli来搜索、设置、和连接网络。
WPA2只是RSN的别名,而AES也是CCMP的一部分
network=开始是无线接入点的具体配置,一般的无线接入点可以用wpa_passphrase来自动生成
wpa_passphrase TPLINK 12345678 //获取network={}
wpa_passphrase TPLINK 12345678 |sudo tee -a /etc/wpa_supplicant/wpa_supplicant.conf
wpa_supplicant是一个较好的选择,但缺点是它不支持所有的驱动。
wireless-tools支持几乎所有的无线网卡和驱动,但它不能连接到那些只支持WPA的AP。
D-Link_DIR-612
wpa_cli -iwlan0 -p/data/system/wpa_supplicant
eg.1、连接无加密的AP
eg.2、连接WEP加密AP
eg.3、连接WPA-PSK/WPA2-PSK加密的AP
>add_network (assume return 2)
>set_network 2 ssid "666"
>set_network 2 psk "your pre-shared key"
>enable_network 2
get_network <network id> <key>
wpa_supplicant.conf
network
//
1. 此无线网络不设置安全机制
# iwlist scanning # 搜索无线网络,我们假设搜索到了 oceanboo-wireless
# iwconfig interface essid oceanboo-wireless
# dhcpcd interface
够简单了吧,这样,你的机器就连接上 oceanboo-wireless 这个无线网络了,dhcp 获得了 ip 地址。不过不给无线路由器设置密码是很愚蠢的做法,假如你不是开咖啡厅、快餐店,还是设置一个密码吧。
2. 此无线网络设置了安全机制,使用 WEP 加密认证。
# iwlist scanning # 还是一样的搜索,记住这个命令。
# iwconfig interface essid oceanboo-wireless key XXXX-XXXX-XXXX-XXXX or XXXXXXXX. # XXX多了点,不过如果你设置过无线路由,你一定知道这是啥玩意,我就不多说了。
# dhcpcd interface
//
WEP 全名为 Wired Equivalent Privacy 有线等效加密
WPA 全名为 Wi-Fi Protected Access 完备之前替代 WEP 的过渡方案
WPA2 实作了完整的标准,但不能用在某些古老的网卡上。
wpa_supplicant -i interface -c /etc/wpa_supplicant/wpa_supplicant.conf -D wext -B
上面的命令
各个选项及其含义:
-b = optional bridge interface name
增加网桥名称
-B = run daemon in the background
后台执行
-c = Configuration file
附加配置文件,即根据配置文件执行操作
-C = ctrl_interface parameter (only used if -c is not)
控制网口参数
-i = interface name
网口名称
-d = increase debugging verbosity (-dd even more)
增加调试信息输出
-D = driver name (can be multiple drivers: nl80211,wext)
驱动名称
-g = global ctrl_interface
全局网口配置
-K = include keys (passwords, etc.) in debug output
在debug输出中包含keys
-t = include timestamp in debug messages
将各个debug信息前输出时间标签
-h = show this help text
显示帮助信息
-L = show license (GPL and BSD)
显示license
-o = override driver parameter for new interfaces
覆盖driver参数
-O = override ctrl_interface parameter for new interfaces
覆盖ctrl_interface参数
-p = driver parameters
携带驱动参数
-P = PID file
进程文件
-q = decrease debugging verbosity (-qq even less)
在debug中不输出指定参数
-v = show version
显示版本信息
-W = wait for a control interface monitor before starting
启动前等待控制接口
-N = start describing new interface
启动对新接口的描述
-t -d /data/misc/wifi/log.txt
# dhcpcd interface
# emerge -av wpa_supplicant
emerge --ask wpa_supplicant
wpa_supplicant 、 wpa_cli 、 wpa_passphrase 、 wpa_gui
驱动(一般常使用的就是wext):
wext = Linux wireless extensions (generic)
hostap = Host AP driver (Intersil Prism2/2.5/3)
atmel = ATMEL AT76C5XXx (USB, PCMCIA)
wired = Wired Ethernet driver
iwlist scanning # 还是一样的搜索,记住这个命令。
#/system/bin/wpa_supplicant -d -Dwext -iwlan0 -c/data/misc/wifi/wpa_supplicant.conf
/system/bin/wpa_supplicant :wpa_supplicant可执行程序path
/data/misc/wifi/wpa_supplicant.conf :wpa_supplicant的配置文件path
#wpa_cli -iwlan0 -p/data/system/wpa_supplicant
wpa_passphrase TPLINK 12345678
# Example MACsec configuration
#network={
# key_mgmt=IEEE8021X
# eap=TTLS
# phase2="auth=PAP"
# anonymous_identity="anonymous@example.com"
# identity="user@example.com"
# password="secretr"
# ca_cert="/etc/cert/ca.pem"
# eapol_flags=0
# macsec_policy=1
#}
/etc/wpa_supplicant/wpa_supplicant.conf:
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=wheel
update_config=0
fast_reauth=1
#WEP网络
network={
ssid="SYSTEX-GROUP"
psk="密码"
pairwise=TKIP
group=TKIP
priority=5
}
#WPA网络
network={
ssid="SYSTEX"
key_mgmt=WPA-EAP IEEE8021X
group=CCMP
pairwise=CCMP
identity="用户名"
password="密码"
priority=5
}