Před pár týdny jsem publikoval článek o tom, jak snadno získat totální přístup k datům cizího dropboxového účtu. Tehdejší slabinou byl nešifrovaný jedinečný identifikátor počítače registrovaného ve službě Dropbox. Kdokoliv cizí by takový identifikátor použil (zkopíroval ho z počítače nešťastníka, který si zrovna odešel na oběd), mohl by ze svého počítače udělat klon, který by přijímal z Dropboxu to samé co původní počítač.
Něčím pravděpodobně podobným trpí i Android při komunikaci se službami Googlu, ale principiálně i hromada dalších autentizačních služeb. Podobně jako populární OAuth používá Google svůj systém pro autorizaci přístupů ClientLogin. Princip těchto technologií spočívá v tom, že když bude chtít k vašemu účtu Googlu (nebo třeba Twitteru, Facebooku aj.) přistupovat cizí služba, přesměruje vás na stránky originální služby, kde se přihlásíte a služba pak získá pouze jedinečný identifikátor, díky kterému získá práva nakládat s vašimi daty. Výhoda je zřejmá – cizí služba se nedozví vaše heslo, dostane ale skrze identifikátor přístup k datům.
Takto to v mnoha případech funguje i na Androidu a zatím ku prospěchu všech. Pak si ovšem kdosi položil otázku, jestli by tento identifikátor stejně jako v případě Dropboxu nešlo nějakým způsobem získat. U mobilů by to bylo pro hackery relativně snadnější v případě, kdy budou lidé komunikovat v nějaké nezabezpečené bezdrátové síti, ve které by mohl záškodník odposlouchávat HTTP komunikaci.
Z teorie se stala praxe, když bezpečnostní odborníci zjistili, že hromada programů na Androidu komunikuje s Googlem zcela nezabezpečeně (žádná šifrovaná SSL komunikace) a v hlavičce HTTP dotazu tedy posílají i nezabezpečený unikátní identifikátor pro systém ClientLogin. Ten se přitom zasílá pokaždé, kdy program od Googlu něco žádá a stvrzuje tak, že k tomu má skutečně oprávnění. Kdokoliv by tedy tento identifikátor v nezabezpečené síti odchytil, získá stejně jako v případě Dropboxu práva k nakládání třeba s údaji v Google Kalendáři, na Picase a v dalších službách, které tento systém autentizace umožňují.
Inženýři z Ulmu použili k analýze v současné době asi nejpopulárnější „zachytávač paketů“ Wireshark. Zatmavená část je jedinečný identifikátr, který aplikaci otevře cestu ke všem datům na Googlu
Inženýři z univerzity v Ulmu otestovali všechny aktuální verze Androidu na přístup ke kontaktům (Gmail), kalendáři (Google Calendar) a k synchronizovaným fotkám (Picasa). Všechny verze nižší než 2.3.4 umožňují komunikaci aplikací s Googlem na nezabezpečeném HTTP, 2.3.4 a 3.0 pak už pro všechny případy používají SSL (HTTPS).
Máme se bát? V našich končinách to vzhledem k počtu hackerů na tisíc obyvatel asi nebude tak horký problém, nicméně potenciálně je chyba docela nebezpečná. Jediným řešením je tak snad pouze tlak na autory aplikací, kteří ClientLogin používají, aby striktně používali pro jakýkoliv přenos autorizačních informací SSL.