WaveDigger: BSSID-zoekopdracht in de publieke WPS-service van Apple

Een gehoste versie is beschikbaar via: https://wavedigger.networksurvey.app.

Functies

  • BSSID-zoekopdracht: Voer een BSSID in om de benaderde locatie te vinden.
  • Validatie van invoer: Automatische opmaak en validatie van de BSSID-invoer. Ondersteunde formaten zijn:
  • AA:BB:CC:DD:EE:FF
  • AA-BB-CC-DD-EE-FF
  • AABBCCDDEEFF
  • Zendmast-zoekopdracht: Zoek naar LTE-masten (MCC, MNC, TAC, Cell ID) of 5G NR-masten (MCC, MNC, TAC, NCI). Zoekopdrachten voor NR geven de doelcel terug, samen met omliggende NR-cellen in hetzelfde cluster.
  • Interactieve kaart: Visualiseer resultaten op een kaart aangedreven door deck.gl.
  • Zoekgeschiedenis: Houd recente zoekopdrachten bij voor snelle toegang.
  • Responsive design: Werkt op zowel desktop- als mobiele apparaten.

Erkenningen

Dit project zou niet mogelijk zijn zonder het ongelooflijke werk van het apple-corelocation-experiments team. WaveDigger is gebouwd op hun onderzoek en reverse engineering van de location services API van Apple. In het bijzonder wordt gebruikgemaakt van:

  • Hun protobuf-definities voor de WLOC API van Apple.
  • Documentatie van de API-endpoints en de formaten voor verzoeken en antwoorden.
  • Inzicht in coördinaatcodering en het gedrag van de API.
  • Het initiële bytes-prefix dat vereist is voor geldige verzoeken.

Hun werk in het begrijpen en documenteren van de ongedocumenteerde locatievoorzieningen van Apple heeft het mogelijk gemaakt dat projecten zoals WaveDigger kunnen bestaan.

Aan de slag

Voorwaarden

  • Node.js 24+ en npm

Installatie

  1. Installeer de afhankelijkheden:

``bash npm install ``

  1. (Optioneel) Voeg een Mapbox-token toe voor verbeterde kaarttegels:
  • Verkrijg een token via Mapbox.
  • Voeg dit toe aan .env.local:

NEXTPUBLICMAPBOXTOKEN=yourtoken_here

De ontwikkelserver starten

npm run dev

Open http://localhost:3000 om de applicatie te bekijken.

Technische details

Architectuur

  • Frontend: Next.js 15 met TypeScript
  • Kaartvisualisatie: deck.gl met react-map-gl
  • Styling: Tailwind CSS
  • API: Next.js API-routes

De echte Apple WLOC API

De applicatie maakt gebruik van de echte WLOC API van Apple om BSSID-locaties op te vragen. Deze implementatie is gebaseerd op het onderzoek en de protobuf-definities van het apple-corelocation-experiments project.

De API-implementatie:

  • Maakt gebruik van protobuf voor communicatie met de servers van Apple.
  • Verstuurt verzoeken naar https://gs-loc.apple.com/clls/wloc.
  • Verwerkt de conversie van coördinaten (Apple gebruikt int64 met 8 decimalen).
  • Ondersteunt zowel de standaard- als de China-regio endpoints.

Testen met echte BSSID's

Om de app te testen:

  1. Zoek een echte wifi-BSSID (MAC-adres) van je router of toegangspunt.
  2. Voer deze in een van de ondersteunde formaten in.
  3. De app raadpleegt de database van Apple en toont de locatie als deze wordt gevonden.

Let op: Niet alle BSSID's staan in de database van Apple. Recent geïnstalleerde of private toegangspunten hebben mogelijk geen locatiegegevens.

Roadmap voor functies

  • Resultaten exporteren: Download zoekresultaten als JSON/CSV.
  • TAC-clusterweergave: Blader door elke mast in een TAC zonder dat een specifieke Cell ID of NCI nodig is.

Licentie

WaveDigger is gelicentieerd onder de GNU Affero General Public License v3.0. Als u een gewijzigde versie van deze software als netwerkdienst uitvoert, vereist de AGPL dat u de gewijzigde broncode beschikbaar stelt aan de gebruikers van die dienst.