Minimalne naivni prgaci androidich aplikaci kteri nikdy nemeli paraty primo v operacnim systemu. Kdo jednou mel co docineni s vyvojem primo Androidiho OS tak budto musel hulit dost dobrej matros a nebo ma sadomasochisticke sklony.
Android je takovy krasny antipattern jak nema neco vypadat z hlediska sw engineeringu.
Z hlediska levelu prasaren neni tolik projektu ktere zmotaji verze komponent dohromady, nechaji v hlavickach starou verzi a nadto napatlaji svoje zmeny... Takze clovek vlastne nevi z ceho se mu ten android sklada a z jakych verzi. To je jen vrcholek ledovce.
Já nepotřebuju heslo v paměti, já potřebuju vydumpovat secret z TPM, abych mohl udělat rychlý offline útok.
No a rozumné samozřejmě je mít heslo k disku takové, aby ani rychlým offline útokem nešlo zlomit. Jenže na Androidu je komplikované nastavit jiné heslo k disku a k obrazovce…
Vazne te to prekvapilo? A vis co ti Qualcomm posle jako dodavateli misto driveru? Desitky MB velky binarni blob bez kteryho ti tvuj androy'th nebude fungovat. Schova se ta x spehovacich softu. Temer zadne release notes a minimalni docka(email:)).
S qualcommem gratuluji:) Jeste horsi nez intel a TPM. Gratuluji hosi! Jen kupujte ty telefonky pro gelouse bez klavesnice.
Dal chci uvest ze Windows phone je proti androidu docela pekny OS s o x radu cistejsim navrhem.
Zběžně jsem si pročetl původní popis útoku na blogu autora. Z toho, co jsem pochopil, musím konstatovat, že šifrování jako takové v Androidu rozhodně nebylo prolomeno a je stále bezpečné při použití dlouhého a komplikovaného hesla. Co však prolomeno bylo, je obezlička, která má za úkol z krátkého, a tedy nebezpečného, hesla ve zkratkce odvodit heslo o bezpečné délce.
Android totiž ve výchozím stavu pracuje pouze s jedním heslem (pinem, kombinací), které používá jak pro zamykací obrazovku, tak pro odvození šifrovacího hesla. Pro potřeby zamykání naprosto postačuje relativně krátké heslo, protože systém jednoduše neumožní zadat stovky a tisíce pokusů (prodlevy, smazání dat, vypnutí; jde o online útok). V případě zašifrovaného úložiště je situace kvůli možnosti offline útoku jiná. Zde je naprosto zásadní dlouhé a komplikované heslo, protože útočník může bez problémů zkoušet i miliony a víc hesel za sekundu.
Aby tedy uživatel nemusel při každém odemykání obrazovky zadávat dvacetimístné heslo, radši systém uměle "prodlouží" krátké heslo (pin, kombinaci) a teprve to použije pro zašifrování úložiště. Bohužel ta funkce "prodloužení" hesla je implementována nešikovně a lze ji prolomit. Díky tomu se úloha uhodnutí dlouhého hesla mění na úlohu uhodnutí krátkého hesla, kterou lze často vyřešit v proveditelném čase pomocí hrubé síly.
Co s tím může udělat uživatel kromě změny přístroje? Na nerootnutém telefonu je jediné řešení použití dlouhého a komplikovaného hesla (gl & hf). U rootnutého telefonu (popř. root => změna => unroot) lze změnit samotné šifrovací heslo pomocí utility Cryptfs Password na něco dlouhého (zadává se jednou při startu, takže nevadí), přičemž zamykací heslo (pin, kombinace) zůstává původní.
Jedina moznost je urobit tu funkciu 'predlzovania' (key derivation) dostatocne komplikovanou, napriklad tak ze bude trvat sekundy. To by ale zase vsetci hubovali aky je ten android pomaly pri starte. Samozrejme musi sa tam pridat este nejaky salt aby sa takato tabulka nedala predpocitat ale aj tak ak dobre pocitam ak mam iba 4 cisla a derivacna funkcia by trvala 10 sekund na ARM tak je to 27 hodin :-/ co samozrejme neberie do uvahy rychlost ARM vs Intel vs GPU takze je to bieda.
Takze jedina sanca, ostava stale je HW clen ktory po 3 pokusoch kluc zmaze a je vymalovane.
To moc nepomůže. I pokud ta funkce místo milisekundy bude trvat 4 sekundy, znamená to efektivní prodloužení hesla o pouhé dva znaky (64 možných znaků ^ 2).
> Takze jedina sanca, ostava stale je HW clen ktory po 3 pokusoch kluc zmaze a je vymalovane.
Ještě je možné prostě si nastavit delší heslo ;). Mně nevadí, že při bootu ho na té dotykové klávesnici zadávám relativně dlouho, protože bootuju jednou za měsíc.
Šifrování na Androidu prolomeno nebylo, je pořád naprosto stejně bezpečné jako šifrování disku ve standardním Linuxu (používá léty ověřený dm_crypt). Jediné co bylo prolomeno je "Trusted Execution Environment" (konkrétně implementace ARM TrustZone od Qualcommu), tedy jakási "hardwarová úschovna klíčů" v ARM procesoru, co se používá např. taky pro implementaci DRM (přičemž právě děravá DRM knihovna Widevine, kterou používá např. Netflix nebo Google Play Movies, byla původně použita k prolomení se do TrustZone). Ta je používaná jen jako obezlička, aby mohlo být použité stejné slabé heslo pro odemykání displaye a pro šifrování.
Stačí používat silné šifrovací heslo a prolomení vám rozhodně nehrozí (ani od FBI, NSA, FSB, GRU, apod.). A šifrovací heslo může být rozdílné od hesla pro odemykání displaye, takže není problém mít silné neprolomitelné šifrovací heslo (které zadáváte pouze při zapnutí telefonu) a slabé heslo/PIN na odemykání displaye. Můžete na to použít mojí opensource aplikaci SnooperStopper, která zároveň hlídá počet pokusů o odemknutí displaye a po překročení nastaveného množství natvrdo vypne telefon (tzn. útočník pak už musí při opětovném zapnutí zadat silné heslo).
Nebo ještě lépe pokud máte telefon Google Nexus (verzi 5 a vyšší), nainstalujte bezpečný hardened fork Androida CopperheadOS, který (kromě spousty dalších bezpečnostních vylepšení) má tuto funkcionalitu již zahrnutou přímo v základním systému.
Jestli nemáš roota na systému, který vlastníš, je něco špatně.
Vetsina zarizeni s Androidem neni rootnuta. BFU nevi jak, na nektera zarizeni neni k mani primocary postup nebo neni vubec zadny a po rootnuti se nejspise bude vyrobce cukat kvuli zaruce. Takze vetsina lidi se musi spolehnout na to blbe sifrovani, ktere je k mani. Pricemz pri prvnim spusteni telefonu jim nikdo nevysvetli, jaka jsou uskali kratkeho hesla.
Na QNX ktery bezi na mem mobilu taky nemam roota. A fakt ho nepotrebuju. Ani VMko pro beh androidich aplikaci ho nepotrebuje.
Ani v debug modu nemam roota a neschazi mi. Jedinej kdo ma snad roota je interni updatovaci software a par systemovych utilit.
V simulatoru je mozno ziskat roota ale nevidim k tomu duvod.