1.WPA概述:
WPA,即 Wi-Fi 保护访问。该协议于 2003 年推出,它是 Wi-Fi 联盟对 WEP 的替代协议。它与 WEP 有相似之处,但在处理安全密钥的方式和用户授权方式上进行了改进。WEP 为每个授权系统提供相同的密钥,而 WPA 使用临时密钥完整性协议 (TKIP),该协议可动态更改系统使用的密钥。这可以防止入侵者创建自己的加密密钥以匹配安全网络使用的密钥。TKIP 加密标准后来被高级加密标准 (AES) 所取代。
此外,WPA 包括消息完整性检查,以确定攻击者是否已捕获或更改数据包。WPA 使用的密钥为 256 位,相比 WEP 系统中使用的 64 位和 128 位密钥有了显著提升。但是,尽管存在这些改进,WPA 的元素还是遭到利用,这导致 WPA2 诞生。
您有时会听到与 WPA 相关的术语“WPA 密钥”。WPA 密钥是用于连接到无线网络的密码。您可以从运行网络的任何人那里获取 WPA 密码。在某些情况下,无线路由器上可能会印有默认的 WPA 密码。如果您无法确定路由器密码,也可以重置它。
2.Wpa_supplicant及wpa_cli介绍
a.概述:
Wpa_supplicant是一个连接、配置WIFI的工具。它主要包含两个程序:wpa_supplicant与wpa_cli。两者的关系就是server与client的关系。通常情况下,可以通过wpa_cli来进行WIFI的配置与连接,如果有特殊的需要,可以编写应用程序直接调用wpa_supplicant的接口直接开发。
b.使用方法:
(1)启动wpa_supplicant应用
wpa_supplicant -D nl80211 -i wlan0 -c /etc/wpa_supplicant.conf -B
- -D 驱动程序名称
- -i 接口名称
- -c 配置文件
- -B 在后台运行守护进程
wpa_supplicant.conf文件的意义:
根据配置文件/etc/wpa_supplicant.conf来初始化wlan0,用来保存用户连接过的WIFI热点,好处在于,然后每次开启WIFI时,则会自动根据该文件来连接热点。该文件保存的每个热点都有priority值,用来系统优先选择哪个热点。
注意:配置文件/etc/wpa_supplicant.conf文件里,添加下面代码:
ctrl_interface=/var/run/wpa_supplicant
update_config=1
1)ctrl_interface:
指向的是一个目录,在这个目录中默认会生成一个文件/var/run/wpa_supplicant/wlan0,这是local socket address,相当于UNIX Domain Socket,程序和后台程序wpa_supplicant进行通信(其实是wpa_supplicant作为后台服务程序是通过本地socket和客户端进行通信的)
2)update_config = 1时会在(客户端发送SAVE_CONFIG命令)更新这个配置文件。
(2)启动wpa_cli应用
wpa_cli -i wlan0 scan
搜索附近 wifi 网络
wpa_cli -i wlan0 scan_result
打印搜索 wifi 网络结果
wpa_cli -i wlan0 add_network
添加一个网络连接,并返回网络ID号,如果wpa_supplicant.conf文件为空,则返回0,表示第一个热点,然后该ID号会在连接热点用到。
wpa_cli set_network 0 ssid '"wifi_name"'
设置ID为0的热点SSID,wifi_name热点名称
wpa_cli set_network 0 psk '"wifi_passwd"'
设置ID为0的热点的密码,wifi_passwd热点密码
wpa_cli set_network 0 scan_ssid 1
设置ssid默认为1即可,表示可以扫描隐藏wifi
wpa_cli set_network 0 priority 1
设置当前网络优先级为1
wpa_cli -i wlan0 enable_network 0
启动连接ID为0的网络
wpa_cli -i wlan0 select_network 0
选择网络0(这样做的好处在于,可以取消先前的其它网络连接)
(3)分配 ip,netmask,gateway,dns
udhcpc -b -i wlan0 -x hostname IPCAM -R
此时只是连接上,所以还要自动分配IP地址。-b:后台 -i:指定接口 -x:停止正在运行的DHCP客户端,而不释放当前租约 -R:退出时释放IP
(4)保存连接
wpa_cli -i wlan0 save_config
保存当前连接的网络配置到wpa_supplicant.conf文件中,使得下次自动连接
(5)查看网卡当前的连接状态
wpa_cli -i wlan0 status
(6)断开连接
wpa_cli -i wlan0 disable_network 0
与ID为0的网络进行断开
(7)连接已有的连接
wpa_cli -i wlan0 list_network
列举所有保存的连接
wpa_cli -i wlan0 select_network 0
连接第 1 个保存的连接
wpa_cli -i wlan0 enable_network 0
使能第 1 个保存的连接
(8)关闭WIFI
ifconfig wlan0 down
killall udhcpc
killall wpa_supplicant
本文介绍了WPA协议及其相对于WEP的安全改进,包括TKIP和AES加密。接着详细讲解了wpa_supplicant和wpa_cli的使用方法,包括启动、配置、连接和管理WIFI网络的步骤。
2972

被折叠的 条评论
为什么被折叠?



