Skyhook: utilizzare gli access point WiFi per la geolocalizzazione

Skyhook: utilizzare gli access point WiFi per la geolocalizzazione

Il GPS

Tutti ormai hanno familiarità col GPS (Global Positioning System), sistema creato inizialmente nell’ambito militare USA, che sfrutta una costellazione di satelliti per calcolare la propria posizione in un qualsiasi punto del globo con un’accuratezza di pochi metri.

Il principio del GPS è abbastanza semplice: attraverso i segnali ricevuti dai satelliti in orbita (almeno 4) il

schema di funzionamento del GPS

schema di funzionamento del GPS

terminale riesce a calcolare la propria posizione conoscendo il tempo di volo del segnali, la mappa dei satelliti e la loro sincronizzazione temporale. Da quando il suo utilizzo è stato liberalizzato per usi civili e commerciali, il suo successo è stato esponenziale, dai navigatori sui veicoli alle più recenti implementazioni sugli smartphones avanzati.

L’utilizzo del GPS in mobilità ha aperto nuovi interessanti scenari non solo per la navigazione cartografica, ma anche per tutti quei servizi che possono sfruttare l’informazione sulla localizzazione dell’utente per fornire un servizio personalizzato di informazioni, meteo, traffico ecc, senza dimenticare i risvolti social di Twitter e Foursquare.

Il GPS però presenta molti problemi se utilizzato in ambienti chiusi oppure in città, tra gli edifici. Per questo sono state pensate alcune soluzioni alternative: una di queste è l’utilizzo delle segnale GSM o UMTS ricevuto dalle celle circostanti: ogni antenna trasmette infatti informazioni sulla propria posizione geografica, ma l’accuratezza di questo tipo di localizzazione è evidentemente pari alla grandezza della cella, per cui può anche essere di alcuni Km in zone rurali.

Il WPS

Un altro sistema che è venuto fuori negli ultimi tempi è quello che sfrutta la presenza di access point WiFi sparsi nel territorio: conoscendo l’esatta ubicazione degli access point ricevuti dal proprio terminale, è possibile determinare la posizione con un’accuratezza di poche decine di metri. Questo sistema è chiamato anche WPS (Wireless Positioning System).

Dato che non c’è un modo intrinseco di ricavare la localizzazione dagli access point, è necessario avere un database in cui sono associati ai MAC address degli AP con le rispettive location.
Probabilmente avrete di recente sentito parlare di alcune questioni dovute alle macchine di Google che, percorrendo le strade per registre le immagini impiegate in Street View, raccolgono contemporaneamente le informazioni degli access point ricevuti, mappandoli. Qualcuno si è chiesto che tipo di dati venissero “sniffati” e salvati da Google (a cui in teoria serve solo il MAC address), soprattutto se la rete in questione è aperta, senza alcuna protezione.
Fermo restando che secondo me chiunque lasci aperta la propria rete wireless è un incosciente, perché è come lamentarsi se i ladri rubano in casa dopo aver lasciato porte e finestre spalancate, Google, dopo aver dichiarato che non viene raccolto alcun dato per scopi diversi alla localizzazione, pare abbia acconsentito a far visionare i propri dati e promesso di cancellare tutti quelli captati “per sbaglio”.

Google possiede appunto uno di questi database wps, ma non è l’unica.

Skyhook

Un altro servizio molto importante e diffuso è quello Skyhook Wireless, azienda americana fondata nel 2003 per rispondere alla crescente domanda di servizi location-based.

Skyhook

Skyhook è stata la prima a creare un sistema diffuso di raccolta dei dati ed un database su scala mondiale.

Il sistema messo a punto è chiamato XPS, un sistema ibrido in cui vengono messi insieme i dati provenienti dal GPS, dalle reti cellulari e dal WPS, fornendo un’accuratezza in qualsiasi situazione di 10m – 20m.

xps

Xps performance

Tutti i dati raccolti sono accessibili alle applicazioni ed ai servizi web attraverso API dedicate, incluse nell’SDK pubblico disponibile. Il database di Skyhook è già collegato con tutti gli altri, per esempio con quello di Google.

La copertura del database Skyhook è a livello mondiale, anche se per ora concentrata soprattutto nel nordAmerica, Europa e Giappone. E’ disponibile anche una cartina, in cui visualizzare in dettaglio le zone coperte. In Italia la copertura è abbastanza buona, ma limitata per lo più alle città, alle zone densamente abitate e alle maggiori autostrade.

copertura italia

Copertura di Skyhook Wireless in Italia

 

Gli addetti di Skyhook, come quelli di Google Map, girano per le città con macchine, motorni e biciclette equipaggiate con GPS e scanner WiFi e raccolgono tutti gli AP disponibili, e le reti cellulari, riscansionandoli di tanto in tanto.

Skyhook a Firenze

l'auto di Skyhook a Firenze! (altre foto su Flickr)

La cosa ottima però è che è possibile espandere autonomamente il database inserendo il MAC address del proprio access point (o di quelli dei vicini) ed associarlo alla giusta locazione. In pochi secondi il sistema verrà aggiornato con i nuovi dati e potremo sfruttarlo subito.

E’ sufficiente andare nella pagina apposita, trovare il punto esatto dell’access point sulla mappa ed inserire il suo indirizzo MAC, ricavabile semplicemente dalla scansione delle reti wireless del proprio dispositivo mobile o computer (Nota per i Mac Users: cliccate sull’icona Airport nella status bar tenendo premuto il tasto Alt per vedere tutti i dettagli !)

Utilizzi

Ma a cosa ci può servire praticamente tutto questo?

I servizi ed i programmi che già utilizzano la geolocalizzazione sono già molti. Ne elenco alcuni:

  • Supportato da tutti i browser più recenti (quelli decenti): Firefox 3.5+, Chrome 5+, Safari 5+, Safari Mobile, Opera 10.60+ adottano tutti le specifiche W3C Geolocation API. Tutte le volte che si tenterà di accedere ad una pagina che richiede la localizzazione, apparirà una richiesta di autorizzazione (che sarà possibile rimuovere in qualsiasi momento).
  • Google Map. Vuoi trovare automaticamente la tua posizione? Clicca nel puntino nell’angolo in alto a sinistra, proprio sotto il pad di navigazione.
  • iPhone: il WPS viene sfruttato su iPhone per determinare la posizione qualora il segnale GPS non fosse (ancora) disponibile. Testato con l’applicazione Mappe, con Safari mobile e con tutte quelle app che sfruttano la localizzazione.
  • Android: stessa identica situazione del punto sopra.
  • Google Latitude: se utilizzate questo servizio nella vostra iGoogle, determinerà automaticamente la vostra posizione.
  • Twitter: disponibile sia attraverso il sito ufficiale che tramite alcuni programmi (per esempio, su iPhone)

Privacy

A quelli che si stanno chiedendo che fine fa la privacy con tutti questi servizi, voglio ricordare che nessuna delle applicazioni richiede la nostra posizione senza il nostro consenso: saremo noi a fornirglielo espressamente e, in caso cambiassimo idea per qualunque motivo, rimuoverlo. Servizi come Skyhook inoltre salvano solamente il MAC degli Access Point (disponibile in chiaro nei beacon di ogni rete WiFi), tralasciando qualsiasi dati viaggi nella rete.

Proteggere la propria rete wireless con una password (almeno WPA) è comunque fondamentale per evitare che malintenzionati possano accedervi e/o leggere i dati che viaggiano nell’etere.