Kauza iPhone: Apple vysvětluje
Apple prý nesleduje polohu jednotlivých iPhonů (ani iPadů 3G). Data, která uživatelé nalezli ve svých v zařízeních, prý nejsou jejich. Má to být část centrální databáze Applu, využívaná pro rychlejší výpočet polohy a načtená do lokální cache.
Minulý týden, v článku „Velký Bratr iPhone?“, jsem zde na Lupě poprvé psal o problematice lokalizačních údajů, generovaných a využívaných samotnými smartphony, a také o centrálně provozovaných „databázích poloh“, které jsou přitom využívány. Dnes bych se rád k tomuto tématu vrátil, protože v mezidobí se objevily nové zajímavé informace.
Apple vysvětluje
Ke zjištěním, která se týkají jejího iPhonu (ale také třeba iPadů 3G), se minulý týden vyjádřila sama společnost Apple. A to jak formou oficiálního vyjádření (český překlad), tak třeba i formou rozhovoru Steva Jobse s novináři na téma lokalizace.
Asi nejvýznamnějším momentem je tvrzení, že data, nalezená uživateli na jejich iPhonech a iPadech 3G (a hlavně i na zálohujících počítačích, v nijak nechráněné podobě) nejsou údaje o poloze příslušného mobilního zařízení:
Údaje o poloze, které někteří uživatelé našli v telefonech iPhone, nejsou údaji o minulé ani současné poloze telefonu iPhone, ale umístění přístupových bodů sítě Wi-Fi a mobilních vysílačů obklopujících telefon iPhone, které od něj mohou být i více než 150 km vzdáleny.
Jak Apple dále vysvětluje, jsou to „jeho data“, která jsou do počítače stažena (z jeho serverů) kvůli tomu, aby usnadnila a urychlila stanovení aktuální polohy. Vlastně je to část jeho velké databáze poloh, kterou si dlouhodobě buduje (viz minulý článek), a ve které si uchovává zeměpisné souřadnice přístupových bodů Wi-Fi sítí a základnových stanic mobilních sítí.
Jak to vlastně funguje?
Jelikož je to hlavní pointa celé kauzy, od které se vše odvíjí, připomeňme si věcnou podstatu: pro nejrůznější polohové, resp. lokalizační služby (LBS, Location Based Services), ať již mají formu „polohově cílené“ inzerce či třeba „polohově cíleného“ vyhledávání, předpovědi počasí pro danou lokalitu apod., je nezbytné znát aktuální polohu toho zařízení, které si o službu říká.
Samozřejmě nejjednodušší a nejpřesnější je využití GPSky přímo v daném zařízení. Ale to může trvat dosti dlouho (než se GPSka „chytne“), spotřebovává to energii (místo aby to šetřilo baterii) – a v neposlední řadě to nepřipadá v úvahu tam, kde dotyčné zařízení GPSku vůbec nemá, případně ji nemá puštěnou (zapnutou, aktivovanou).
Mnohem rychlejší (a energeticky šetrnější) může být určení polohy jiným způsobem: podle význačných „okolních bodů“, pokud je známa alespoň jejich přesná poloha. Pak už lze dopočítat i polohu daného zařízení, na principu tzv. triangulace.
V daném případě takovýmito „význačnými okolními body“ jsou právě přístupové body Wi-Fi sítí (které lze jednoznačně identifikovat skrze jejich BSSID, což je MAC adresa jejich rádiového rozhraní), a základnové stanice buněk mobilních sítí (identifikované skrze údaje jako je MCC (Mobile Country Code), MNC (Mobile Network Code), LAC (Location Area Code), CI (Cell Identity) a další).
Když se i běžný mobilní telefon „rozhlédne“ po svém okolí (což musí tak jako tak dělat, už kvůli svému fungování v roli mobilního telefonu), „vidí“ určitý počet základnových stanic ve svém okolí. Pokud by znal jejich zeměpisnou polohu, mohl by si poměrně jednoduše vypočítat i svou vlastní polohu. Obdobně pro přístupové body Wi-Fi sítí.
Otázkou je ale to, jak se mobilní telefon dozví o přesné poloze těch „okolních bodů“, které vidí kolem sebe.
Jednou z možností je, že mobilní telefon vezme identifikační údaje okolních bodů (MAC adresy, resp. MCC+MNC+LAC+CI atd.) a pošle je konkrétnímu „poskytovateli polohových údajů“. Tento poskytovatel musí mít k dispozici co nejúplnější „globální databázi poloh“, obsahující co nejpřesnější údaje o všech přístupových bodech Wi-Fi sítí, a stejně tak všech základnových stanic mobilních sítí – a pomocí této databáze vygeneruje odpověď, kterou vrátí zpět mobilnímu telefonu.
Existuje ale ještě druhá možnost, byť postavená na stejném principu a spíše jen „provozně optimalizovaná“: aby se mobilní telefon nemusel „ptát“ příliš často a přitom spotřebovávat jak energii, tak přenosovou kapacitu, pošle mu příslušný poskytovatel při prvním dotazu hned celý “kus“ své databáze poloh. Samozřejmě jde o cíleně vybraný „kus“, podle toho, jak zněl (čeho se týkal) původní dotaz.
Lidé „od počítačů“ tento princip důvěrně znají, jako tzv. „cache-ování“, obecně jako způsob fungování paměťové hierarchie, resp. způsob realizace virtuální paměti: nejpoužívanější data se z větší ale „vzdálenější“ paměti přesouvají do menší ale „bližší“ paměti, kde jsou snáze (hlavně rychleji) k dispozici. Do tzv. cache paměti.
Vše je přitom postaveno na předpokladu, že platí tzv. princip lokality – což právě zde, v případě mobilních zařízení, zjišťujících svou polohy, je splněno už z podstaty věci: mobilní telefon, který se v určitém časovém okamžiku nachází v určité lokalitě, se v příštím okamžiku nebude nacházet někde „na druhém konci světa“, ale zase jen někde „poblíž“ (protože se může pohybovat jen relativně omezenou rychlostí). A tak má smysl mu dopředu sdělit (poslat, nechat ho načíst) takový kus globální databáze poloh, která mapuje i jeho širší okolí. Protože až se za chvíli bude ptát znovu, na nějaké jiné body ve svém novém (ale nepříliš vzdáleném) okolí, bude si moci „odpovědět sám“. Tedy získat odpověď z té části celé databáze, kterou již má k dispozici ve své cache paměti.
Jak to dělá Apple?
Z oficiálního vyjádření společnosti Apple vyplývá, že používá druhou z popisovaných variant, neboli načítá do lokální cache paměti (v mobilním zařízení) určité dílčí části své globální databáze poloh:
6. Někteří lidé si všimli, že v jejich telefonu iPhone jsou uloženy až roční údaje o jejich poloze. Proč iPhone potřebuje tolik dat k tomu, aby mi pomohl zjistit moji současnou polohu?
Tato data nejsou údaje o poloze telefonu iPhone – jedná se o dílčí sadu (tzv. mezipaměť) uživatelské databáze přístupových bodů sítě Wi-Fi a mobilních vysílačů stažené ze serverů společnosti Apple do telefonu iPhone, která umožňuje rychle a přesně vypočítat polohu telefonu iPhone.
Anglický originál je v tomto ohledu přesnější než český překlad, který používá pojmy „dílčí sada“ a „mezipaměť“:
This data is not the iPhone’s location data—it is a subset (cache) of the crowd-sourced Wi-Fi hotspot and cell tower database which is downloaded from Apple into the iPhone to assist the iPhone in rapidly and accurately calculating location.
Pokud jde o technické parametry tohoto načítání do cache pamětí, pak zde oficiální vyjádření hovoří o „šířce“ více jak 150 kilometrů:
iPhone vaši polohu nezaznamenává. Udržuje pouze databázi přístupových bodů sítě Wi-Fi a mobilních vysílačů v okolí vašeho stávajícího umístění, z nichž některé se mohou nacházet i více než 150 km od vašeho telefonu iPhone, čímž umožňuje v telefonu iPhone rychle a přesně vypočítat polohu v případě položení dotazu.
Co mi na vyjádření Apple nesedí?
Společnost Apple ve svém vyjádření (a stejně tak Steve Jobs ve svém interview) opakovaně zdůrazňuje, že nemonitoruje polohu konkrétního zařízení, resp. jeho uživatele.
1. Proč Apple sleduje polohu mého telefonu iPhone?
Společnost Apple polohu vašeho telefonu iPhone nesleduje. Společnost Apple tak nikdy nečinila a nemá v úmyslu k tomu nikdy v budoucnosti přistoupit.
Aniž bych to chtěl zpochybňovat, dovolím si poukázat na to, že už konkrétní způsob načítání částí celé globální databáze poloh do lokální cache paměti vypovídá o poloze konkrétního zařízení.
Ostatně, proto také uživatelé iPhonů po celém světě (stejně jako já v minulém článku) dokázali zmapovat pohyb příslušného zařízení. Jak trefně poznamenal autor tohoto blogu: s přesností, která by sice nestačila na zamíření řízené střely, ale už může stačit jako důkaz u rozvodového řízení. Nebo může posloužit ještě dříve, jako argument či přímo důkaz pro žárlivého partnera či partnerku.
A kromě toho: proč se v načtené části databáze poloh (v cache paměti), která ale nemá být záznamem o pohybu zařízení, objevují takové položky, které neobsahují žádné údaje o geografické poloze? Že tam jsou, si dovolím, ukázat na následujícím obrázku (jde o stejná data jako v minulém článku a položek bez geografické polohy je mezi WiFi sítěmi 81 z 11510).
K čemu by ale jejich stažení (načtení do cache) bylo dobré?
TTL podle objemu?
Zajímavé je také to, jak dlouho se data, načtená z globální databáze poloh do lokální cache na mobilním zařízení (iPhonu či iPadu 3G) v této cache paměti uchovávají. Protože právě to určuje, jak hluboko do minulosti lze ze způsobu uchovávání dat v cache paměti odvodit polohu konkrétního zařízení.
Možností je samozřejmě více, a podle již zmiňovaného rozhovoru Steva Jobse to vypadá, že Apple zvolil poměrně nešťastnou variantu „dokud je místo“, které nastavil na 2 MB. To ale znamená, že u zařízení, se kterými jejich uživatelé moc necestují, se data v místní cache paměti mohou uchovávat opravdu hodně dlouho. Ostatně, některé příklady v médiích hovořily o plné historii pohybu mobilu od nástupu iOS verze 4.
Z čistě technického hlediska přitom varianta „dokud je místo“, podle mého odhadu kombinovaná se strategií LRU (Least Recently Used, neboli: když už místo není, vyhoď v poslední době nejméně používaná data), může být optimálním řešením. Dokáže totiž maximálně využít principu lokality a maximalizovat efekt cacheování.
Jenže z ostatních hledisek - zejména těch, které se týkají soukromí a jeho ochrany – již zdaleka tak optimální není. V kombinaci s tím, že takto cache-ovaná data nejsou fakticky nijak chráněna (a defaultně ani šifrována), je jejich dlouhodobější uchovávání úplnou časovanou bombou. A právě ta nedávno vybuchla.
Apple to dnes přiznává jako chybu. Neprezentuje to ale jako chybně zvolený koncept (jak to popisuji zde), ale jako chybu v implementaci. Současně naznačuje přechod na strategii, v rámci které budou data v mobilním zařízení uchovávána v cache paměti nikoli podle volného místa, ale podle svého stáří:
Důvodem ukládání tak velkého množství dat v telefonu iPhone je nedávno odhalená chyba, kterou se chystáme co nejdříve opravit (…). Domníváme se, že by se v telefonu iPhone neměla ukládat data starší než sedm dní.
Dovolím si podotknout, že to může znamenat určitou větší zátěž na konzumované zdroje (kvůli častějším dotazům do centrální databáze, které nelze zodpovědět z místní cache). Na druhou stranu to nemusí být ani měřitelné, zatímco (příznivé) dopady na oblast soukromí budou mnohem významnější.
Byla to chyba. Ale v čem?
S tím souvisí i další zajímavý aspekt. Apple totiž ve svém oficiálním vyjádření připouští, že ke stahování do cache (a tím k její aktualizaci) dosud docházelo i v době, kdy byly všechny služby pro zjišťování polohy vypnuty. A prezentuje to opět jako chybu:
7. Pokud vypnu službu zjišťování polohy, proč můj iPhone občas stále aktualizuje data o přístupových bodech sítě Wi-Fi a mobilních vysílačích z uživatelské databáze společnosti Apple?
Neměl by. Jedná se o chybu, kterou plánujeme brzy opravit (…).
Z čistě technického hlediska ale může být výhodné aktualizovat data v místní cache průběžně, když jsou k tomu vhodné podmínky (jako je dostupnost Wi-Fi připojení, změna centrální obsahu centrální databáze atd.), případně podle nějakého předem daného časového harmonogramu, a ne až v okamžiku skutečné potřeby. Opět ale: jde o čistě technické hledisko, zatímco jiná kritéria mohou vést na úplně jiný pohled.
Jenže všechno by také mohlo být úplně jinak. Ve svém interview totiž Steve Jobs prezentoval právě tento aspekt v poněkud jiném světle: nikoli jako pokračující načítání dat (z globální databáze poloh do lokální cache paměti na mobilním zařízení), ale jako opačný přenos: z mobilního zařízení do centrální databáze. Když byl dotázán, v souvislosti s budováním nové dopravní databáze (viz dále), zda by lidé neměli být podrobněji informování o účelech, ke kterým jsou data využívána a sami volit, na kterých komerčních projektech se chtějí účastnit a kterých ne, odpověděl:
Jestliže se lidé nechtějí účastnit některých věcí, budou moci vypnout polohové služby. Jakmile odstraníme tu chybu, na kterou jsme přišli, jejich telefon již nebude sbírat ani přispívat žádnými „crowd-sourced“ informacemi. Ale také nebude vyhodnocovat svou polohu.
Podceněná osvěta
Jinou oblastí, které se společnost Apple ve svém vyjádření dotkla, je oblast osvěty:
2. Tak proč se tomu věnuje taková pozornost?
Poskytování rychlých a přesných údajů o poloze při dodržení zabezpečení a zachování soukromí uživatelů mobilních zařízení vyžaduje vyřešení mnoha složitých technických problémů, které je poměrně složité stručně a jednoduše vysvětlit. Uživatelé jsou proto často zmateni, částečně také proto, že jim tvůrci této nové technologie (včetně společnosti Apple) o těchto problémech dosud neposkytli dostatečné množství potřebných informací.
Zlatá slova. Ale nepadají jen na hlavu společnosti Apple (která důsledky pocítila asi nejsilněji), nýbrž i řady dalších subjektů. Možná by se dalo říci všech.
Obávám se ale, že i po nynější kauze zůstává pořádná mezera v osvětě ještě v jednom nesmírně důležitém aspektu, který se týká rozlišování dvou různých věci.
Budování globálních databází
Jde konkrétně o to, že je třeba rozlišovat mezi:
- využíváním (lokalizačních, resp. polohových) služeb ze strany zákazníků
- budováním a aktualizací „globálních databází poloh“, které jsou k poskytování služeb nutné.
Principiální rozdíl by měl být patrný už na tom, že druhý bod (budování a aktualizace databází poloh) nemusí vyžadovat žádnou spoluúčast ze strany zákazníků. Subjekty jako je Apple (ale nejenom on) si takovouto databázi mohou jednorázově koupit a pak si platit její aktualizace. Nebo si ji jednorázově vybudovat a pak si ji také sami aktualizovat, bez jakékoli „pomoci“ svých zákazníků.
Ostatně, právě takto to zpočátku dělala společnost Skyhook, jejíž databázi původně využíval i Apple: měla vlastní flotilu vozidel, které posílala do předem vytipovaných oblastí mapovat polohu základnových stanic mobilních sítí a WiFi AP (podrobněji). A copak asi dělal Google, s údaji které získal při mapování pro svou službu StreetView?
Jenže takovýto přístup (budovat a průběžně aktualizovat databázi vlastními prostředky a na vlastní náklady) je složitější a nákladnější oproti možnosti, že s tím „pomohou“ uživatelé. Že jejich smartphony, vybavené GPSkami a schopné detekovat základnové stanice a přístupové body ve svém okolí, dokáží dodat podklady, ze kterých se pak takováto „globální databáze poloh“ sestaví a průběžně udržuje poměrně snadno a levně.
Zajímavá je také otázka terminologie: Apple ve svém oficiálním vyjádření používá termín „crowd-sourced database“, což je docela přesné a trefné (protože jde o databázi, jejímž zdrojem je aktivita „davu“ uživatelů). Český překlad, který používá adjektivum „uživatelská“ (a hovoří o „uživatelských databázích“), mi přijde dosti nepřesný a hlavně nešťastný. Navozuje totiž dojem, že jde o databázi patřící samotným uživatelům a nikoli společnosti Apple.
Tak tomu ale není, jak ostatně říká i Apple, když popisuje využití „cache-ované“ části své centrální databáze poloh:
Tyto výpočty se provádějí živě přímo v telefonu iPhone s využitím uživatelských databází přístupových bodů sítě Wi-Fi a údajů z mobilních vysílačů, které byly vytvořeny pomocí desítek milionů telefonů iPhone, které anonymně a šifrovaně odesílaly společnosti Apple zeměpisně označené informace o poloze blízkých přístupových bodů sítě Wi-Fi a mobilních vysílačů.
S čím uživatelé udělují svůj souhlas?
Vzhledem k tomu, že budování globálních databází polohy „skrze samotné uživatele“ má řady významných výhod, nelze se asi divit tomu, že subjekty jako Apple časem (od iOS verze 4) přestaly používat služeb společnosti Skyhook a začaly si budovat a používat vlastní „crowd sourced“ databáze. Jen bylo třeba nějak „ošetřit“ to, aby uživatelé sami poskytovali potřebné podklady. A to „ošetřit“ jak po stránce právní, tak i technické, a v neposlední řadě i po stránce osvětové.
Právě zde, pokud jde o osvětu, se obávám, že došlo k matení pojmů a „vypouštění mlhy“. A troufnu si i vyjádřit názor, že tomu tak mohlo být záměrně: aby lidé tolik nevnímali zásadní rozdíl mezi prvním a druhým bodem výše uvedené klasifikace. Tedy mezi využíváním služeb a pomocí s budováním a aktualizací příslušných „crowd-sourced“ databází. Aby se nemohli jen tak snadno „vyzout“ z této pomoci. Aby to vypadalo, že mohou využívat, jen když budou současně pomáhat. Nebo ještě lépe: aby využívali a nemuseli mít ani tušení o tom, že současně i pomáhají. Viz také již citovaná odpověď Steva Jobse.
Pravdou je, že tomuto „splývání“ a nerozlišování různých věci nahrává i to, jak vše funguje. V obou případech se totiž vždy něco odesílá směrem „do centra“, k poskytovateli. Rozdíl je až v tom, co se „ v centru“ s takto zaslanými daty dále děje: zda jsou využita (právě a pouze) k vygenerování určité odpovědi, což odpovídá prvnímu bodu resp. využití služby, nebo zda jsou tato data využita pro potřeby budování či aktualizace centrální databáze poloh, což odpovídá druhému bodu (a žádná odpověď nemusí být generována). Nebo nějaké jiné databáze.
Proto je obvykle vyžadován jen jeden souhlas od uživatele, a to s „poskytováním údajů o vlastní poloze“ – a už se podrobněji nevysvětluje, co a jak se s těmito daty děje (zda ve smyslu „využívání“, resp. prvního výše uvedeného bodu, nebo ve smyslu „budování a aktualizace“, resp. druhého bodu), a také kdy jsou takováto data zasílána. Jen někam hluboko do smluvních podmínek se zabuduje souhlas s využitím poskytnutých údajů i pro druhý bod (pro budování a aktualizaci databází), tak aby i právníci měli krytá záda. Viz již minule citovaná pasáž ve smluvních podmínkách Applu, vložená s přechodem na iOS verze 4:
Služby podle místa uživatele
Aby společnost Apple mohla v souvislosti s produkty Apple poskytovat služby podle místa uživatele, může společnost Apple a její partneři a držitelé licence shromažďovat, užívat a sdílet přesné lokalizační údaje, včetně geografické polohy vašeho počítače nebo zařízení Apple v reálném čase. Tyto lokalizační údaje jsou shromažďovány anonymně způsobem, který neumožňuje zjistit vaši totožnost, a společnost Apple a její partneři a držitelé licence je používají, aby vám mohli poskytovat produkty a služby podle místa uživatele a tyto produkty a služby dále zlepšovat. Údaje o geografické poloze můžeme například sdílet s poskytovateli aplikací, pokud se přihlásíte k užívání jejich služeb podle místa uživatele.
S tím souvisí i to, jak je na iPhonech a iPAdech 3G realizováno udělování a odnímání souhlasu (skrze zapnutí či vypnutí „Polohových služeb“): nerozlišují se oba účely a tak není možné souhlasit pouze s využíváním (prvním bodem), ale nikoli s budováním a aktualizací (druhým bodem).
Apple buduje dopravní databázi
Společnost Apple ve svém oficiálním vyjádření sama a proaktivně přišla ještě s jedním dalším sdělením – což prý, vzhledem k její tradiční „málomluvnosti“, je už samo o sobě zajímavým signálem. Řekla totiž, že právě sestavuje „dopravní databázi“, a to opět na „crowd-sourced“ principu:
8. Jaké další údaje o poloze společnost Apple získává z telefonů iPhone kromě uživatelské databáze přístupových bodů sítě Wi-Fi a mobilních vysílačů?
Apple v současnosti shromažďuje anonymní údaje o dopravním provozu s cílem vytvoření uživatelské dopravní databáze, aby mohl uživatelům telefonů iPhone poskytovat během několika let kvalitnější dopravní informace.
Právě na tomto sdělení je možná nejlépe vidět rozdíl mezi „využíváním“ a „budováním“: jelikož zmíněná dopravní databáze teprve vzniká, žádné „využívání“ dosud neprobíhá. Ale „budování“ ano, a uživatelé iPhonů a iPadů se na něm již podílí. Bylo by určitě velmi zajímavé vědět, jak přesně k tomu dochází: jaká konkrétní data a jakým konkrétním způsobem jsou sbírána a posílána do společnosti Apple. To už asi nebudou jen „statické“ informace o výskytu Wi-Fi AP v okolí, protože ty by neumožnily postihnout to, co je pro dopravu podstatné: jaká je dynamika změn polohy.
Stejně tak bude zajímavé, jak Apple vysvětlí, jak při budování této dopravní databáze dodržel své vlastní tvrzení, že:
Společnost Apple polohu vašeho telefonu iPhone nesleduje. Společnost Apple tak nikdy nečinila a nemá v úmyslu k tomu nikdy v budoucnosti přistoupit.
Jak by ale zjistili něco užitečného pro svou vznikající dopravní databázi, pokud by nesledovali polohu konkrétních zařízení a hlavně jejich změny? Byť nepotřebují vědět, komu zařízení patří, a stačí jim anonymizované informace.
A navíc: nemusí to zůstat jen u dopravní databáze. Když byl Steve Jobs ve zmiňovaném interview dotázán na to, zda jde o jediné využití hromadně sbíraných dat, odpověděl že „jde o jedinou aktivitu, kterou může v tuto chvíli zmínit“. Takže kdoví, co Apple ještě chystá.