苹果Wi-Fi密码共享协议中授予者角色的开源实现。
OpenWifiPass是实验性软件,是Open Wireless Link项目逆向工程的结果。该代码仅用于文档和教育目的。它未经测试且不完整。例如,该代码未验证请求者的身份。因此,请勿将此实现用于敏感Wi-Fi凭据。OpenWifiPass与苹果公司无关,也未获其认可。
硬件: 低功耗蓝牙无线电,例如Raspberry Pi 4
操作系统: Linux(由于依赖bluepy)
克隆此仓库并安装:
git clone [email protected]/seemoo-lab/openwifipass.git
pip3 install ./openwifipass
运行openwifipass以向任何请求者共享Wi-Fi凭据(SSID和PSK)(我们需要超级用户权限才能使用蓝牙子系统):
sudo -E python3 -m openwifipass --ssid <SSID> --psk <PSK>
使用Shell的引用来消除SSID/PSK中某些字符的特殊含义。 在下面的示例中,我们使用单引号(')阻止Shell展开PSK中的$字符。
成功运行协议的结果如下:
pi@raspberrypi:~/openwifipass $ sudo -E python3 -m openwifipass --ssid OWL --psk '$uper$ecretPassword'
Start scanning...
SSID match in PWS advertisement from aa:bb:cc:dd:ee:ff
Connect to device aa:bb:cc:dd:ee:ff
Send PWS1
Receive PWS2
Send M1
Receive M2
Send M3
Receive M4
Send PWS3
Receive PWS4
Wi-Fi Password Sharing completed
本项目包含一个可复用的OPACK(反)序列化器。更多信息请阅读OPACK.md。
OpenWifiPass根据GNU通用公共许可证v3.0授权。