Une implémentation hacky du protocole de partage de mot de passe Wi-Fi d'Apple pour MacOS.
Une implémentation Linux uniquement dans Python est disponible ici.
Ce projet contient des logiciels expérimentaux et est le résultat des efforts d'ingénierie inverse du projet de liaison sans fil ouvert. Le code sert uniquement des objectifs documentaires et éducatifs. Il n'est pas testé et incomplet . Ce projet n'est pas affilié ou approuvé par Apple Inc.
Installer libsodium
, par exemple, via Homebrew:
brew install libsodium
Nous fournissons à la fois les rôles des conditeurs et des demandeurs. Vous pouvez utiliser l'application Xcode ou make
pour construire le projet.
Exécutez le PWS-Grantor
cible pour démarrer un Client de dispositif de partage de mot de passe, qui analysera les publicités BLE et se connectera à la première correspondance et commencera le partage. Alternativement, lorsqu'il est construit via make
:
build/DerivedData/Build/Products/Debug/PWS-Grantor < ssid > < psk >
Le rôle du demandeur nécessite une configuration spéciale en raison de la sécurité et des restrictions Bluetooth des macOS.
Étape 1: Nous devons désactiver la fonction de sécurité AMFI pour accéder au certificat ID Apple de l'utilisateur comme décrit ici. Redémarrez en mode de récupération (⌘ + r) et exécutez:
csrutil disable
nvram boot-args= " amfi_get_out_of_my_way=0x1 "
Étape 2: Étant donné que nous ne pouvons pas définir les données du fabricant d'une publicité BLE avec CoreBluetooth
, nous fournissons un serveur de relais GATT dans python-gatt-relay
. Configurez le relais sur une machine Linux externe, par exemple, un Raspberry Pi 4. Voir la README
incluse pour plus de détails.
Étape 3: Enfin, exécutez la cible PWS-Requestor
pour demander un mot de passe à un autre appareil. Alternativement, lorsqu'il est construit via make
:
build/DerivedData/Build/Products/Debug/PWS-Requestor < appleID > < gattServerAddress >