Slabi časi za zasebnost v Androidu
Matej Kovačič
4. jul 2016 ob 15:22:50
ARM TrustZone je desetletje stara tehnologija, ki omogoča poganjanje aplikacij v tim. varnem okolju. Ko ARM procesor teče v tim. "varnem načinu", ima programska oprema, ki teče na procesorju dostop do dodatnih funkcij in naprav, ki jih zunaj tega varnega okolja ne vidi. Tako ima programska oprema s preklopom v TrustZone dostop do kriptografskih funkcij in kriptografskih poverilnic, do katerih aplikacije, ki tečejo izven TrustZone nimajo dostopa. Qualcommova implementacija ARM TrustZone (Qualcomm je eden največjih proizvajalcev procesorjev za mobilne telefone) omogoča običajnim aplikacijam, da v tim. varno okolje, ki ga imenujejo Qualcomm Secure Execution Environment naloži tim. zaupanja vredne aplikacije (imenujejo se trustlets).
Omenjena tehnologija se uporablja tudi pri šifriranju notranjega pomnilnika mobilnega telefona. V ta namen Android uporablja tim. KeyMaster - gre za modul, ki teče v varnem okolju (tim. Trusted Execution Environment) in je popolnoma ločen od Androida (tim. Hardware-Backed Keystore). KeyMaster modul je mogoče uporabiti za ustvarjanje šifrirnih ključev ter izvajanje kriptografskih operacij ne da bi bilo ob tem potrebno šifrirne ključe razkriti "ne-varnemu svetu". Pri de/šifriranju notranjega pomnilnika (tim. FDE - Full Disk Encyption) v Andoidu naj tako šifrirni ključi ne bi nikoli zapustili KeyMaster modula v surovi obliki.
A kot je ugotovil neodvisni izraelski varnostni raziskovalec Gal Beniamini, Androidni telefoni s Qualcommovim čipovjem šifrirnih ključev za FDE ne shranjujejo na ločenem strojnem modulu (kot to na primer počne iPhone s svojim Secure Enclave), pač pa so neposredno dostopni vsej TrustZone programski opremi (torej tim. trustles-om).
Takoj se seveda postavi vprašanje kako varna je TrustZone programska oprema (tim. trustleti) in kako varno je TrustZone jedro, oziroma ali je v tej programski opremi mogoče najti kakšno zlorabo (tim. exploit). Beniamini je pokazal, da je to vsekakor mogoče. Na svojem blogu je objavil dva postopka za zlorabo varnostne ranljivosti, ki omogočata pridobitev FDE ključev iz TrustZone. Zlorabi sta sicer že zakrpani (CVE-2015-6639 in CVE-2016-2431), vendar posodobitve zaradi znane razdrobljenosti Andriodnega ekosistema še niso prišle na vse ranljive mobilne telefone (po nekaterih ocenah je nezakrpanih ranljivih še okrog 57% modelov ranljivih mobilnih telefonov). Poleg tega šifrirni ključ za FDE izvira iz strojnega ključa SHK (ki ga ni mogoče spreminjati), kar pomeni, da je na ranljive naprave mogoče namestiti predposodobljeno različico programske opreme, kjer je napad na šifrirne ključe zopet uspešen. Mimogrede, uporaba SHK za šifriranje namesto njegovega derivativa, ni mogoča, saj je SHK dostopen programskim aplikacijam na Androidu, poleg tega uporaba derivativa omogoča, da je kriptografska implementacija neodvisna od strojne opreme.
Dodatno težavo predstavlja tudi dejstvo, da lahko proizvajalci mobilnih telefonov (npr. na zahtevo kakšne države) sami izdelajo zlonamerno posodobitev TrustZone, ki omogoča izvoz šifrirnih ključev. Ko pa so šifrirni ključi enkrat izvoženi, je mogoče nad njimi s pomočjo kriptoanalize izračunati šifrirno geslo uporabnika.
Dodaten udarec varnosti in zasebnosti Androida pa očitno zadaja kar sam Google. Z zadnjimi posodobitvami politike zasebnosti iz dne 28. junija 2016, si namreč Google pridržuje pravico za beleženje dnevniških zapisov vašega telefona, kar vključuje tako vašo telefonsko številko, številke, ki ste jih klicali, datume in čase ter tipe klicev in prometne podatke povezane z SMS sporočili.
Google torej potihem uvaja hrambo prometnih podatkov, torej prakso, ki so jo številna vrhovna in ustavna sodišča v Evropi že označila kot nezakonito. Res je, da je šlo v prvem primeru za beleženje in hrambo prometnih podatkov, ki je bila zapovedana s strani države, a je bivši nemški pooblaščenec za varstvo osebnih podatkov in predsednik ARTICLE 29 Data Protection Working Party Peter Schaar mnenja, da je takšna praksa tudi v primeru Googla nezakonita.