{"id":18292110,"url":"https://github.com/seemoo-lab/wifi-password-sharing","last_synced_at":"2026-01-27T01:03:25.064Z","repository":{"id":94401344,"uuid":"267558793","full_name":"seemoo-lab/wifi-password-sharing","owner":"seemoo-lab","description":"An open source implementation of Apple's Wi-Fi Password Sharing protocol in Swift.","archived":false,"fork":false,"pushed_at":"2021-02-13T08:20:57.000Z","size":100,"stargazers_count":14,"open_issues_count":1,"forks_count":4,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-05T10:33:38.336Z","etag":null,"topics":["apple","password-sharing","reverse-engineering","wifi"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/seemoo-lab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-05-28T10:20:34.000Z","updated_at":"2025-03-30T17:33:15.000Z","dependencies_parsed_at":"2023-03-08T16:16:00.319Z","dependency_job_id":null,"html_url":"https://github.com/seemoo-lab/wifi-password-sharing","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/seemoo-lab/wifi-password-sharing","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seemoo-lab%2Fwifi-password-sharing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seemoo-lab%2Fwifi-password-sharing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seemoo-lab%2Fwifi-password-sharing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seemoo-lab%2Fwifi-password-sharing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/seemoo-lab","download_url":"https://codeload.github.com/seemoo-lab/wifi-password-sharing/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seemoo-lab%2Fwifi-password-sharing/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28794565,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-26T21:49:50.245Z","status":"ssl_error","status_checked_at":"2026-01-26T21:48:29.455Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apple","password-sharing","reverse-engineering","wifi"],"created_at":"2024-11-05T14:16:42.874Z","updated_at":"2026-01-27T01:03:25.048Z","avatar_url":"https://github.com/seemoo-lab.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Apple Wi-Fi Password Sharing\n\nA hacky implementation of Apple's Wi-Fi Password Sharing protocol for macOS.\n\nA Linux-only implementation in Python is available [here](https://github.com/seemoo-lab/openwifipass).\n\n## Disclaimer\n\nThis project contains experimental software and is the result of reverse engineering efforts by the [Open Wireless Link](https://owlink.org) project.\nThe code serves solely documentary and educational purposes. It is *untested* and *incomplete*.\nThis project is not affiliated with or endorsed by Apple Inc.\n\n## Requirements\n\nInstall [`libsodium`](https://doc.libsodium.org), e.g., via Homebrew:\n\n```bash\nbrew install libsodium\n```\n\n## Run\n\nWe provide both the grantor and requestor roles.\nYou can use the Xcode application or `make` to build the project.\n\n### Grantor\n\nRun the target `PWS-Grantor` to start a password sharing giving device client, which will scan BLE advertisements and connect to the first matching one and start sharing. Alternatively, when built via `make`:\n\n```bash\nbuild/DerivedData/Build/Products/Debug/PWS-Grantor \u003cssid\u003e \u003cpsk\u003e\n```\n\n### Requestor\n\nThe requestor role requires a special setup due to security and Bluetooth restrictions of macOS.\n\n**Step 1:** We need to disable the AMFI security feature to access the user's Apple ID certificate [as described here](https://github.com/seemoo-lab/airdrop-keychain-extractor). Reboot in recovery mode (⌘+R) and run:\n\n```bash\ncsrutil disable\nnvram boot-args=\"amfi_get_out_of_my_way=0x1\"\n```\n\n**Step 2:** Since we can not set the manufacturer data of a BLE advertisement with `CoreBluetooth`, we provide a GATT relay server in [`python-gatt-relay`](python-gatt-relay). Setup the relay on an external Linux machine, e.g., a Raspberry Pi 4. See the included [`README`](python-gatt-relay/README.md) for details.\n\n**Step 3:** Finally, run the `PWS-Requestor` target to ask for a password from another device. Alternatively, when built via `make`:\n\n```bash\nbuild/DerivedData/Build/Products/Debug/PWS-Requestor \u003cappleID\u003e \u003cgattServerAddress\u003e\n```\n\n## Authors\n\n* Jannik Lorenz\n\n## Publications\n\n* Milan Stute, Alexander Heinrich, Jannik Lorenz, and Matthias Hollick. **Disrupting Continuity of Apple’s Wireless Ecosystem Security: New Tracking, DoS, and MitM Attacks on iOS and macOS Through Bluetooth Low Energy, AWDL, and Wi-Fi.** *30th USENIX Security Symposium (USENIX Security ’21)*, August 11–13, 2021, Vancouver, B.C., Canada. *To appear*.\n* Jannik Lorenz. **Wi-Fi Sharing for All: Reverse Engineering and Breaking the Apple Wi-Fi Password Sharing Protocol.** Bachelor thesis, *Technical University of Darmstadt*, March 2020.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseemoo-lab%2Fwifi-password-sharing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fseemoo-lab%2Fwifi-password-sharing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseemoo-lab%2Fwifi-password-sharing/lists"}