Je Android Pattern Lock bezpečný?
V tomto příspěvku se zamyslíme nad tím, zda je možno Android pattern lock přijmout jako náhradu za klasické heslo.
V praxi se ukazuje, že gesto používané k odemčení smartphonu s operačním systémem Google Android, které obecně není považováno za příliš bezpečné, neboť na něj může být veden tzv. šmouhový útok (smudge attack), může v reálném světě poskytovat poměrně slušnou ochranu, obzvlášť pokud byl smartphone po odemknutí intenzivně používán.
Poskytuje však stejnou úroveň ochrany před neoprávněným přístupem jako heslo? Rozhodně ne, je nutné si uvědomit, že počet gest, které může uživatel k odemčení svého telefonu použít, je značně omezený. Ostatně pokud je bezpečnost založena na spojení čtyř až devíti bodů, které tvoří matici o rozměrech 3×3 a ještě k tomu Google stanovil určitá omezení, nemůže být řeč o tom, že by se jednalo o rovnocennou náhradu klasického hesla.
Sebesložitější gesto, které vznikne spojením 4 až 9 bodů, lze totiž zapsat jako prosté číslo. Ve své podstatě se tedy jedná o 4 až 9 ciferný PIN, ovšem skutečný počet různých gest je ještě o něco nižší než teoretických 400miliónů (9^4+9^5+9^6+9^7+9^8+9^9) jak by tomu bylo u PINu o dané délce.
Je tomu tak proto, že každým bodem na matici 3×3 smíme prstem projet jen jednou, a počet možných gest nemůžeme počítat jako variace s opakováním, nýbrž jako variace bez opakování. Pokud se budeme nadále držet toho, že každé gesto můžeme vyjádřit jako číslo, znamená to, že se žádná cifra nesmí v PINu opakovat. Tím se dostáváme na necelý 1milión různých gest (V4(9)+ V5(9)+ V6(9)+ V7(9)+ V8(9)+ V9(9)).
A to není všechno. Nejenže se žádná cifra nesmí opakovat, ale některé cifry dokonce po sobě nemohou ani nikdy následovat. Pokud k očíslování jednotlivých bodů použijeme přirozená čísla, tak jak je uvedeno na obrázku, je zřejmé, že nikdy nebude např. možné spojit přímo body 1-3, 1-7, 1-9, 2-8, 4-6 aniž bychom předtím neprošli bodem, který se nachází mezi nimi, a to nám počet všech možných gest ještě o něco snižuje.
Pokud bychom gesto hádali, může se nám zdát necelý milión gest jako nepředstavitelně velké množství gest, které bychom museli vyzkoušet. A vzhledem rychlosti s jakou jsme schopni jednotlivá gesta zkoušet, a k omezení počtu pokusů, se může zdát tato ochrana telefonu jako dostačující. Ovšem je třeba si uvědomit, že gesto uživatele může být prolomeno i jinak.
V systému je totiž samotné gesto uloženo jako prostý hash vzniklý za použití funkce SHA1 z po sobě jdoucích cifer. Není tedy problém vyzkoušet necelý milión různých PINů. Na internetu je k dispozici databáze obsahující hashe pro všechna možná gesta, a i kdyby nebyla, je velice snadné ji vyrobit. V okamžiku, kdy máme k dispozici seznam všech hashů, stačí v němž již vyhledat řetězec, který se nachází v souboru gesture.key.
Ano, gesto je uloženo v podobě hashe v souboru gesture.key v adresáři /data/system. V tomto adresáři se pak nachází i soubor password.key, který obsahuje hash klasického hesla, pokud ho uživatel k odemčení telefonu používá. Přístup k těmto souborům není běžně možný, ovšem pokud je telefon rootnutý a USB debugging mód je zapnutý, je možné použít ADB interface nebo speciální recovery boot loader.
Poznámka: Interně číslování jednotlivých bodů začíná nulou, takže musíme přičíst jedničku, pokud jsme si body očíslovali od 1 do 9.
Závěr: Gesto resp. pattern lock je výrazně méně bezpečný než PIN o stejné délce, neboť počet všech možných gest je 400x menší. Pro úplnost dodejme, že v okamžiku, kdy získáme fyzický přístup k samotnému zařízení, které je chráněno heslem, nemusíme heslo lámat, ale můžeme soubor, který heslo obsahuje, rovnou nahradit souborem, který jsme si pořídili na zařízení, jehož heslo známe.
Štítky: Android, autentizace
K článku “Je Android Pattern Lock bezpečný?” se zde nenachází žádný komentář - buďte první.
Diskuse na tomto webu je moderována. Pod článkem budou zobrazovány jen takové komentáře, které nebudou sloužit k propagaci konkrétní firmy, produktu nebo služby. V případě, že chcete, aby z těchto stránek vedl odkaz na váš web, kontaktujte nás, známe efektivnější způsoby propagace.