Geolocation i moguće implikacije na sigurnost i privatnost korisnika

HTML5 i nove mogućnosti

Proučavanjem nove nadolazeće revizije HTML standarda moguće je uočiti mnoge zanimljivosti. HTML5 zadržava kompatibilnost sa široko korištenim HTML4 standardom jer u svojoj srži on nije jedna velika stvar, već skup individualnih funkcionalnosti. Kod može provjeriti da li preglednik koji ga obrađuje podržava HTML5 i sukladno s time se mogu koristiti funkcionalnosti kao što su canavas, video ili geolocation. Upravo je ova zadnja funkcionalnost ono što je privuklo moju pažnju i motiviralo pisanje ovog kratkog pregleda. Čitajući Dive Into HTML5, knjigu koja na zanimljiv način pokriva ovu temu, na jednoj od stranica unutar poglavlja o načinima detekcije HTML5 podrške došao sam u mogućnost testiranja geolocation sustava (dostupno i ovdje). Rezultat je bio zapanjujući. Lokator je uspio pronaći moj trenutni položaj u krugu od 10 metara u trenutku kada sam na internet bio spojen sa osobnog prijenosnog računala bežično vezanog na kućni router.

Što je to ustvari geolocation?

Geolocation je, kratko rečeno, sustav koji pronalazi tvoju trenutnu lokaciju na planetu Zemlji sa koje se spajaš na internet. U principu se radi o nečemu što liči na Google Latitude, ali više nije ograničeno samo na mobilne telefone. Lociranje se vrši korištenjem dostupnih podataka kao što su IP adresa, podaci o spoju na bežičnu vezu, podacima o spoju mobilnog telefona na određeni komunikacijski toranj ili jednostavno korištenjem GPS hardvera ugrađenog unutar tvoga prijenosnog računala ili mobilnog telefona.

Preciznije, geolokacija podrazumijeva vezivanje dobivenih podataka (najčešće skup geografskih koordinata) sa nekim od postojećih kartografskih sustava (npr. Google Maps ili OSM) dajući sirovim podacima i vizualni prikaz omogućavajući na taj način lakšu obradu informacije od strane čovjeka. U kontekstu interneta i računalnih sustava, geolokacija se sprovodi povezivanjem geografske lokacije sa IP adresom, MAC adresom, RFID pristupom, lokacijom WiFi konekcije ili GPS koordinatama u tom trenu korištenog uređaja. Do sada je manje-više svima bio poznat sustav lociranja koji je u najboljem slučaju na osnovu tvoje IP adrese na Google karti prikazivao sjedište tvoga ISP-a ili te pozivao da u obližnjem gradu (većem internetskom čvorištu) pronađeš nekoga za druženje… tonight.

Zašto geolocation predstavlja potencijalnu opasnost?

Ono što se sada želi ugraditi kao standard unutar tvoga omiljenog internet preglednika jeste sustav koji će, ako ti to želiš i dozvoliš, omogućiti web servisu koji koristiš informaciju o mjestu sa kojega mu pristupaš. Kao trivijalni slučaj koji mi je prvi pao na pamet jeste spam sustav koji korisniku nekog od novijih pametnih mobitela automatski šalje pozivnice za posjet npr. tek otvorenom kafiću čim se ovaj nađe negdje u krugu od 50 metara od njega.

Testiranjem sam provjerio podršku za geolocation sustav dostupan unutar Mozilla Firefox i Google Chrome internet preglednika (stranice sadrže i upute za potpuno deaktiviranje geolocation sustava). Kako bi bio u potpunosti siguran u način funkcioniranja sustava testiranje sam proširio na više računala sa žičnom vezom spojenih preko različitih ISP-a. Žično spojena računala (bez aktivne wireless veze) su imuna, a zaključak je jednostavan: naše wireless mreže su skenirane i informacije o njima su pohranjene najvjerojatnije u neku od Google Location Services baza. Pomislio sam da promjenom SSID-a mreže mogu zbuniti lociranje, ali nisam testirao.  Sumnjam da bi to bilo od neke pomoći jer pregledom Google Gears geolocation koda (Google Gears pogoni geolocation unutar Chrome preglednika) doznajem kako su i MAC adrese pristupnih točaka također prikupljene. To dokazuje i primjer koda izvađen je iz datoteke wifi_data_provider_win32.cc.

static bool GetNetworkData(const WLAN_BSS_ENTRY &bss_entry,
                           AccessPointData *access_point_data) {
  // Currently we get only MAC address, signal strength and SSID.
  assert(access_point_data);
  access_point_data->mac_address = MacAddressAsString16(bss_entry.dot11Bssid);
  access_point_data->radio_signal_strength = bss_entry.lRssi;
  // bss_entry.dot11Ssid.ucSSID is not null-terminated.
  UTF8ToString16(reinterpret_cast<const char*>(bss_entry.dot11Ssid.ucSSID),
                 static_cast<ULONG>(bss_entry.dot11Ssid.uSSIDLength),
                 &access_point_data->ssid);
  // TODO(steveblock): Is it possible to get the following?
  //access_point_data->signal_to_noise
  //access_point_data->age
  //access_point_data->channel
  return true;
}

Zaključak

Možda pretjerujem; možda bi se netko i nasmijao ovom otkrivanju tople vode, ali ne treba biti previše maštovit kako bi se zaključilo na koji se sve način ovaj naoko zanimljiv i koristan sustav može iskoristiti i protiv tebe. Iako se proizvođači preglednika zaklinju u nebesa kako se sustav ne može aktivirati bez prethodne dozvole korisnika, svi mi znamo kako je samo pitanje dana kada će se to i dogoditi.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>