Architektúra zabezpečenia Cryptile, vrstva po vrstve
Cryptile šifruje každý súbor, náhľad a index pomocou AES-256-GCM s kľúčmi vytvorenými v telefóne z vzoru, ktorý nakreslíte. Neexistuje účet ani server a vývojár nikdy nedrží kľúče.
Jednoduché zhrnutie je na stránke o zabezpečení.
Čo potrebujem vedieť?
- Váš vzor je zdrojom každého kľúča. Bez neho sa neukladá nič čitateľné.
- Veľkosti a počet trezorov sú rozmazané. Súbory sú doplnené a návnadové miesta skrývajú, koľko trezorov existuje.
- Môžete si to overiť. Šifrovacie jadro je zverejnené na audit (source-available) spolu s modelom hrozieb a testovacími vektormi: github.com/jasonbrelsford/cryptile-core.
Ako sa z vzoru stane kľúč?
- Vzor sa zapíše ako veľkosť mriežky a za ňou bunky, ktorých ste sa dotkli, v poradí.
- Zmieša sa s 32-bajtovým tajomstvom zariadenia uloženým v Kľúčenke iPhonu iba pre toto zariadenie.
- PBKDF2-HMAC-SHA512 nad ním beží 600 000-krát. Každý odhad stojí toľko práce.
- HKDF-SHA256 rozdelí výsledok na vyhľadávací kľúč a obalový kľúč.
- Vyhľadávací kľúč pomenuje indexový súbor trezora. Obalový kľúč ho otvorí.
V indexe je náhodný 256-bitový hlavný kľúč trezora. HKDF z neho odvodí samostatné podkľúče pre súbory, náhľady a index. Žiadny kľúč sa nepoužíva na dva účely.
Ako sa súbory šifrujú?
Malé položky, ako náhľady a index, sa zapečatia naraz pomocou AES-256-GCM a náhodného nonce.
Veľké súbory používajú rozloženie STREAM v blokoch po 1 MB. Každý blok má vlastný nonce a zaznamenáva svoju pozíciu a to, či je posledný. Odstrihnutie, preusporiadanie alebo výmena blokov spôsobí zlyhanie dešifrovania.
GCM overuje aj každú hlavičku, takže zmenený súbor sa odmietne, nezobrazí sa.
Ako sa skrývajú veľkosti a počet trezorov?
Každý malý blok a každý posledný blok súboru sa doplní na násobok 64 KiB. Kto kopíruje, vidí hrubé veľkosti, nie presné.
Zoznam trezorov neexistuje. Aplikácia drží aspoň 8 miest v tvare indexu, skutočných aj návnadových, a návnady pri každom zápise náhodne obnovuje. Vzor, ktorý nepomenuje žiadne miesto, otvorí prázdny trezor.
Ako funguje obnovenie?
Každý trezor dostane 9-slovnú frázu na obnovenie, čo je 96 bitov náhodnosti. Otvorí samostatnú obnovovaciu kópiu trezora zapečatenú kľúčom vytvoreným z frázy.
Záloha v iCloude zrkadlí šifrované súbory tak, ako sú. Tajomstvo zariadenia v nej predvolene nie je, takže samotná záloha sa na hádanie vzorov použiť nedá.
Čo je šifrované a čo nie?
Šifrované: fotky, videá, súbory, poznámky, náhľady, názvy, priečinky, obľúbené, rozpoznaný text a polohy fotiek. Malý súbor, ktorý sleduje návnady a počty v bezplatnom pláne, je zapečatený kľúčom zariadenia.
Cryptile nešifruje:
- Nastavenia. Čas automatického zamknutia, poradie triedenia a vypínač zálohy neobsahujú tajomstvá.
- Zdieľané položky čakajúce na pridanie. Sú pod ochranou súborov iOS, kým neotvoríte trezor.
- Celkovú veľkosť kontajnera a časy zápisu. 10 GB trezor nevyzerá ako 10 MB.
- Všetko, čo exportujete. Kópia uložená do Fotiek alebo Súborov je mimo trezora.
Pred čím to chráni?
- Pred niekým, kto kopíruje súbory aplikácie bez vašej Kľúčenky. Dostane šifrový text a nemôže skúšať vzory.
- Pred Applom alebo únikom u Applu. iCloud drží šifrový text a žiadne kľúče.
- Pred manipuláciou. Zmenené alebo preusporiadané dáta sa nedešifrujú.
- Pred nami. Nemáme server ani kľúče, takže nevieme prístup resetovať.
Pred čím to nechráni?
- Pred krátkymi vzormi. Vzor je slabší než prístupová fráza. S vašimi súbormi a Kľúčenkou padne 6-bunkový vzor na mriežke 4×4 za minúty na GPU. Použite 8 a viac buniek.
- Pred malvérom v odomknutom telefóne. Kód čítajúci pamäť pri otvorenom trezore je mimo možností akejkoľvek aplikácie.
- Pred niekým, kto sleduje, ako kreslíte. Kreslite tam, kde nikto nevidí vašu ruku.
- Pred stratou telefónu aj frázy. Trezor je preč. Resetovanie neexistuje.
Panikový vzor v Plus zničí tajomstvo zariadenia, takže sa žiadny trezor v telefóne neotvorí, kým ho neobnovíte.