Sigurnosna arhitektura Cryptilea, sloj po sloj
Cryptile šifrira svaku datoteku, sličicu i indeks algoritmom AES-256-GCM, ključevima koji nastaju na vašem telefonu iz uzorka koji crtate. Nema računa ni poslužitelja, a programer nikad ne drži ključeve.
Preuzmite Cryptile iz App Storea
Jednostavan sažetak nalazi se na stranici o sigurnosti.
Što trebam znati?
- Vaš uzorak izvor je svakog ključa. Bez njega nije pohranjeno ništa čitljivo.
- Veličine i broj trezora su zamućeni. Datoteke su dopunjene, a mjesta za mamce skrivaju koliko trezora postoji.
- Možete provjeriti. Jezgra šifriranja objavljena je za reviziju (dostupan izvorni kôd), s modelom prijetnji i testnim vektorima: github.com/jasonbrelsford/cryptile-core.
Kako uzorak postaje ključ?
- Uzorak se zapisuje kao veličina mreže, a zatim polja koja ste dodirnuli, redom.
- Miješa se s tajnom uređaja od 32 bajta, koja se čuva u iPhoneovu Keychainu samo za ovaj uređaj.
- Nad njim se PBKDF2-HMAC-SHA512 izvodi 600 000 puta. Svako pogađanje košta toliko posla.
- HKDF-SHA256 dijeli rezultat na ključ za traženje i ključ za omatanje.
- Ključ za traženje imenuje datoteku indeksa trezora. Ključ za omatanje je otvara.
Unutar indeksa nalazi se nasumični 256-bitni glavni ključ trezora. HKDF iz njega izvodi zasebne podključeve za datoteke, sličice i indeks. Nijedan se ključ ne koristi u dvije svrhe.
Kako se šifriraju datoteke?
Male stavke, poput sličica i indeksa, zapečaćuju se u jednom komadu algoritmom AES-256-GCM i nasumičnim nonceom.
Velike datoteke koriste STREAM raspored u dijelovima od 1 MB. Svaki dio ima vlastiti nonce i bilježi svoj položaj te je li zadnji. Rezanje, premještanje ili zamjena dijelova uzrokuje neuspjeh dešifriranja.
GCM provjerava autentičnost i svakog zaglavlja, pa se promijenjena datoteka odbacuje umjesto da se prikaže.
Kako se skrivaju veličine i broj trezora?
Svaki mali blok i svaki završni dio datoteke dopunjuje se do višekratnika od 64 KiB. Onaj tko kopira vidi okvirne veličine, ne točne.
Popisa trezora nema. Aplikacija drži najmanje 8 mjesta oblika indeksa, pravih i mamaca, a mamce ponovno nasumično stvara pri svakom zapisivanju. Uzorak koji ne imenuje nijedno mjesto otvara prazan trezor.
Kako radi oporavak?
Svaki trezor dobiva frazu za oporavak od 9 riječi, a to je 96 bitova slučajnosti. Ona otvara zasebnu kopiju trezora za oporavak, zapečaćenu ključem napravljenim iz fraze.
iCloud sigurnosna kopija preslikava šifrirane datoteke onakve kakve jesu. Tajna uređaja zadano nije u njoj, pa se samo na temelju kopije ne mogu pogađati uzorci.
Što je šifrirano, a što nije?
Šifrirano: fotografije, videozapisi, datoteke, bilješke, sličice, nazivi, mape, favoriti, prepoznati tekst i lokacije fotografija. Mala datoteka koja prati mamce i brojila besplatnog plana zapečaćena je ključem uređaja.
Cryptile ne šifrira:
- Postavke. Vrijeme automatskog zaključavanja, redoslijed sortiranja i prekidač kopije ne sadrže tajne.
- Dijeljene stavke koje čekaju dodavanje. Stoje pod iOS-ovom zaštitom datoteka dok ne otvorite trezor.
- Ukupnu veličinu spremnika i vremena zapisivanja. Trezor od 10 GB ne izgleda kao onaj od 10 MB.
- Sve što izvezete. Kopija spremljena u Fotografije ili Datoteke izvan je trezora.
Od čega ovo štiti?
- Netko tko kopira datoteke aplikacije bez vašeg Keychaina. Dobiva šifrirani tekst i ne može isprobavati uzorke.
- Apple ili proboj kod Applea. iCloud drži šifrirani tekst, a ne ključeve.
- Neovlaštene izmjene. Promijenjeni ili premještani podaci ne mogu se dešifrirati.
- Nas. Ne vodimo poslužitelj i ne držimo ključeve, pa ne možemo poništiti pristup.
Od čega ovo ne štiti?
- Kratki uzorci. Uzorak je slabiji od zaporke. Uz vaše datoteke i vaš Keychain uzorak od 6 polja na mreži 4×4 pada za nekoliko minuta na GPU-u. Koristite 8 ili više polja.
- Zlonamjerni program na otključanom telefonu. Kôd koji čita memoriju dok je trezor otvoren izvan je dosega svake aplikacije.
- Netko tko vas gleda dok crtate. Crtajte tamo gdje nitko ne vidi vašu ruku.
- Gubitak telefona i fraze. Trezora više nema. Poništavanja nema.
Panični uzorak u Plusu uništava tajnu uređaja, pa se nijedan trezor na telefonu ne otvara dok se ne obnovi.