Criptare prin model: cum îți protejează fișierele o formă desenată
Desenezi un model cu degetul. PBKDF2 transformă acel gest într-o cheie de seif, care deblochează o cheie aleatorie separată ce îți protejează fișierele cu AES-256-GCM. Fără câmp de parolă, fără PIN scurt. Doar modelul tău și o ierarhie de chei construită intenționat pe straturi.
Vaultaire serializează o formă desenată pe o grilă de 5×5 și o procesează cu PBKDF2-HMAC-SHA512, 600.000 de iterații și o sare la nivel de dispozitiv stocată în iOS Keychain. Rezultatul de 256 de biți este o cheie de seif: criptează indexul seifului și despachetează cheia principală aleatorie separată pe care AES-256-GCM o folosește pentru conținutul și metadatele fișierelor.
Ce este criptarea prin model?
Majoritatea aplicațiilor de seif se bazează pe un PIN sau o parolă. Tastezi patru cifre și apar pozele. Pare destul de sigur, nu?
Iată problema: un PIN de patru cifre are exact 10.000 de combinații posibile. Un computer le poate încerca pe toate în mai puțin de o secundă. Șase cifre? Un milion de combinații. Tot banal de rapid pentru hardware-ul modern. Chiar și o parolă de opt caractere, dacă folosește doar litere mici, îți dă aproximativ 200 de miliarde de posibilități. Pare mult până afli că un laptop obișnuit poate testa miliarde de hash-uri de parole pe secundă.
Criptarea prin model are o abordare fundamental diferită. În loc să tastezi caractere într-o casetă, desenezi o formă geometrică pe o grilă de puncte. Traseul exact pe care îl urmezi (ce puncte atingi, în ce ordine, cu ce geometrie) devine intrarea unei funcții de derivare a cheilor din parole. Rezultatul nu este doar verificat de interfață: trebuie să deblocheze un index criptat autentificat și cheia principală aleatorie din el.
Diferența contează. Când introduci un PIN în unele aplicații, aplicația verifică doar dacă ai tastat numărul corect. Dacă da, se deschide, chiar dacă fișierele pot fi protejate în principal prin controlul accesului. Vaultaire, în schimb, trece modelul desenat prin PBKDF2 pentru a deriva o cheie de seif de 256 de biți. Acea cheie trebuie să autentifice și să decripteze indexul seifului înainte să poată despacheta cheia principală aleatorie folosită pentru fișiere. Un model nerecunoscut este prezentat ca un seif gol, dar autentificarea AES-GCM de dedesubt distinge în continuare o cheie corectă de una greșită.
O barieră de acces cu PIN poate fi ca o ușă încuiată pusă în fața unor fișiere altfel lizibile. Modelul Vaultaire seamănă mai mult cu combinația unui seif: derivă cheia care deschide un index criptat, care la rândul lui eliberează cheia separată ce protejează conținutul. Interfața nu poate pur și simplu să ocolească acest lanț criptografic.
Cum funcționează, pas cu pas
Iată ce se întâmplă din momentul în care degetul tău atinge ecranul până când fișierele tale devin ilizibile pentru toți ceilalți.
Pasul 1: îți desenezi modelul
Vaultaire afișează o grilă de 5×5 puncte. Desenezi un traseu continuu care conectează cel puțin 6 puncte, cu cel puțin o schimbare de direcție. Aplicația înregistrează exact ce puncte ai atins și în ce ordine. Această secvență este modelul tău.
Spre deosebire de grilele de 3×3 folosite des pe ecranele de blocare Android, Vaultaire folosește o grilă de 5×5. Nu este o alegere cosmetică. Douăzeci și cinci de poziții permit mult mai multe trasee, intersecții, salturi și schimbări de direcție decât nouă poziții. Spațiul teoretic mai mare ajută, dar securitatea reală depinde tot de cât de imprevizibil este traseul ales. O literă familiară sau o formă simplă rămâne ușor de ghicit chiar dacă grila poate exprima miliarde de alternative.
Pasul 2: modelul derivă o cheie de seif
Modelul desenat este serializat împreună cu dimensiunea grilei și trecut prin PBKDF2 (Password-Based Key Derivation Function 2) cu HMAC-SHA512, 600.000 de iterații și o sare aleatorie la nivel de dispozitiv. Sarea este o valoare nesecretă stocată în iOS Keychain ca element WhenUnlockedThisDeviceOnly. Leagă derivarea locală de dispozitiv; nu este unică pentru fiecare seif și nu adaugă entropie unui model ales de om.
Procesul de derivare a cheii este costisitor intenționat. PBKDF2 rulează 600.000 de iterații HMAC-SHA512 pentru fiecare model candidat, ceea ce crește costul unui atac prin ghicire. Asta nu transformă un model cu entropie scăzută în 256 de biți de securitate, iar timpul atacului depinde de hardware-ul atacatorului. Scopul este mai îngust și măsurabil: face fiecare încercare mult mai costisitoare decât un simplu hash.
Pasul 3: fișierele tale sunt criptate
Când seiful este creat, Vaultaire generează o cheie principală aleatorie de 256 de biți. Cheia de seif derivată din model criptează indexul și împachetează acea cheie principală; nu criptează direct fiecare fișier. Cheia principală este folosită cu AES-256-GCM pentru antetele fișierelor, conținut, miniaturi și metadatele asociate. Nonce-urile noi asigură că același text necriptat nu produce același text cifrat sub aceeași cheie.
Modul GCM adaugă un strat important: autentificarea. Nu doar amestecă datele, ci generează și o etichetă care detectează orice modificare. Dacă un singur bit din fișierul criptat este modificat, decriptarea eșuează. Nimeni nu îți poate modifica fișierele fără să afli.
Pasul 4: starea cheilor active este ștearsă
Când Vaultaire se blochează, șterge starea activă a cheii de seif și a cheii principale și cere o nouă deblocare înainte să afișeze din nou fișierele. Cât timp seiful este deschis, acei octeți ai cheilor simetrice există în mod necesar în procesul aplicației, ca CryptoKit să poată efectua operațiile AES-GCM. Vaultaire păstrează și informațiile de recuperare, inclusiv modelul și plicul de recuperare criptat cu fraza, într-o bază de date criptată AES-GCM stocată în iOS Keychain. Asta diferă fundamental de afirmația că modelul și fiecare copie a cheii nu sunt stocate nicăieri.
Matematica din spate (pe înțelesul tuturor)
Nu ai nevoie de o diplomă în informatică pentru a înțelege de ce funcționează. Securitatea se reduce la trei numere: câte modele sunt posibile, cât durează fiecare încercare și câte încercări poate face un atacator.
Entropia: măsura imprevizibilității
Entropia este un cuvânt pretențios pentru „cât de greu se ghicește”. O aruncare cu banul are 1 bit de entropie (două rezultate). Un PIN de patru cifre are aproximativ 13 biți de entropie (10.000 de rezultate). Un model bine ales pe o grilă de 5×5, care conectează 8 sau mai multe puncte, poate depăși 30 de biți de entropie, adică peste un miliard de modele posibile.
Entropia modelului stabilește plafonul unui atac prin ghicire. PBKDF2 nu poate crea entropie pe care gestul nu o conține, dar poate face fiecare candidat mult mai costisitor de testat.
Derivarea cheii: încercări costisitoare
PBKDF2 ia modelul serializat și rulează 600.000 de runde HMAC-SHA512. Estimările de atac trebuie să folosească un cost măsurat pe hardware-ul care face ghicirea: la exact o milisecundă per candidat complet, un miliard de candidați ar dura un milion de secunde, adică aproximativ 11,6 zile, pe un singur procesor. Un cost măsurat mai mare per candidat crește acest timp; hardware-ul paralel îl reduce. Lungimea de 256 de biți a rezultatului nu schimbă dimensiunea spațiului de căutare al modelelor.
Sarea la nivel de dispozitiv este stocată în Keychain și nu este gândită să fie secretă. Keychain și iOS Data Protection pot îngreuna extragerea în cazul confiscării dispozitivului, dar analiza criptografică trebuie să presupună că un examinator care obține fișierele criptate poate obține și sarea. Sarea previne precalcularea între dispozitive; nu înlocuiește un model puternic.
AES-256: un standard public, bine studiat
AES-256 este un cifru standard și puternic, publicat de NIST ca FIPS 197. „256” se referă la lungimea cheii în biți. O cheie de 256 de biți are 2256 valori posibile, mult prea multe pentru a fi încercate prin forță brută. Un atacator atacă în schimb modelul, motiv pentru care Vaultaire îl întărește cu 600.000 de iterații PBKDF2.
Securitatea AES-256 nu depinde de păstrarea secretă a algoritmului. Dar întregul sistem nu este protejat doar de spațiul cheilor AES: limita practică a ghicirii vine din entropia modelului, factorul de lucru PBKDF2 și protecția din jurul sării dispozitivului și a stocării criptate. AES-256-GCM oferă o criptare autentificată puternică după ce cheia principală aleatorie corectă a fost deblocată.
Ce ar trebui să depășească un atac
Să vedem principalele moduri în care cineva ar putea încerca să-ți acceseze fișierele criptate, ce face Vaultaire pentru a crește costul și unde rămân limitele.
Forța brută: încercarea fiecărui model
PBKDF2 obligă fiecare model candidat să plătească 600.000 de iterații HMAC-SHA512. Este o apărare semnificativă, dar nu o promisiune a unui număr fix de ani: rezultatul depinde de alegerea modelului, viteza de derivare măsurată, paralelism și de faptul dacă examinatorul a recuperat sarea dispozitivului. Traseele mai lungi și mai puțin previzibile contează, pentru că PBKDF2 crește costul încercărilor, nu creează entropie nouă.
Atacurile prin urme: citirea ecranului
Pe o grilă de 3×3, urmele de degete de pe ecran pot restrânge mult modelele posibile. Pe o grilă de 5×5, urmele arată ce puncte au fost atinse, dar nu ordinea, direcția sau legăturile dintre ele. Explozia combinatorie face această abordare nepractică.
Privitul peste umăr: cineva te urmărește cum desenezi
Modelele desenate rapid pe ecranul mic al unui telefon sunt extrem de greu de memorat prin observare, mai ales pe o grilă de 5×5. Cercetările arată că observatorii reproduc mult mai greu modelele complexe decât un PIN sau o parolă auzite cu voce tare.
Confiscarea dispozitivului: cineva îți ia telefonul
Dacă cineva îți ia telefonul, conținutul fișierelor și indexurile Vaultaire rămân text cifrat AES-GCM până când cheile necesare sunt disponibile. Aplicația nu stochează o înregistrare clasică de verificare a parolei, dar asta nu elimină verificarea offline. Numele fișierului fiecărui index criptat de seif conține un hash trunchiat al cheii de seif, iar decriptarea autentificată AES-GCM reușește sau eșuează și ea pentru o cheie candidată. Protecția dispozitivului și puterea modelului rămân deci parte din modelul de amenințare.
Nu este nevoie de un hash separat al parolei pentru a testa o încercare pe text cifrat autentificat. Etichetele AES-GCM din Vaultaire dau un rezultat de reușită sau eșec cu încredere ridicată, iar numele fișierului de index oferă o verificare preliminară mai ieftină. Apărarea este costul și imprevizibilitatea credențialului, plus protecția iOS a materialului local, nu lipsa unui mijloc de verificare.
Alegerea unui model puternic
Criptarea este la fel de puternică precum modelul pe care îl alegi. Iată cum îți maximizezi securitatea cu efort minim.
Ce face un model puternic
- Folosește mai multe puncte. Conectează cel puțin 8 dintre cele 25 de puncte disponibile. Fiecare punct în plus multiplică numărul de modele posibile.
- Trece peste propriul traseu. Modelele care revin, sar peste puncte sau schimbă direcția neașteptat sunt mult mai greu de reprodus din memorie sau din observare.
- Evită formele evidente. Literele (L, Z, S), formele geometrice simple (pătrate, triunghiuri) și liniile drepte sunt primele lucruri pe care le-ar încerca un atacator.
- Folosește toată grila. Modelele care rămân într-un colț sau de-a lungul unei margini irosesc entropia disponibilă. Extinde-te.
Ce să eviți
- Modelele de lungime minimă. Vaultaire cere cel puțin 6 puncte și o schimbare de direcție, dar atingerea minimului nu face un traseu imprevizibil. Folosește o parte mai mare din grilă și schimbă direcția de mai multe ori, cât timp îți poți aminti sigur rezultatul.
- Formele geometrice simple. Un L, un zigzag sau o diagonală dreaptă sunt echivalentul lui „password123” la modele.
- Pornirea mereu din același colț. Cercetările despre modelele de blocare Android arată că majoritatea oamenilor pornesc din punctul din stânga sus. Atacatorii știu asta.
Echilibrul ideal
Un model care conectează 8–12 puncte cu mai multe schimbări de direcție este mai greu de ghicit și rămâne ușor de reținut prin memoria musculară. Nu trebuie să-l memorezi ca pe o parolă: mâna ta ține minte mișcarea, la fel cum ține minte cum îți scrii semnătura.
De ce te poți simți în siguranță
Criptarea prin model din Vaultaire nu este doar o tastatură PIN mai frumoasă. Gestul este procesat de o funcție reală de derivare a cheilor și trebuie să deblocheze date criptate autentificate. Puterea lui depinde tot de gestul ales, așa că Vaultaire combină grila mai mare cu un factor de lucru PBKDF2 ridicat, în loc să prezinte lungimea de 256 de biți a rezultatului drept 256 de biți de entropie a secretului uman.
Modelul și cheia de seif locală nu sunt trimise către Vaultaire. Cât timp backupul este activ, adică implicit, o cheie de backup separată, derivată din model, criptează înregistrările CloudKit, iar un manifest de recuperare criptat permite frazei de recuperare să restaureze cheile de seif și de backup. Vaultaire nu deține o cheie de furnizor care să decripteze acele înregistrări, dar dispozitivul și credențialele de recuperare rămân părți critice pentru securitatea designului.
Desenezi o formă. Acea formă îți protejează fișierele. Matematica face restul.
Întrebări frecvente
Ce se întâmplă dacă îmi uit modelul?
Când creezi un seif, Vaultaire generează o frază de recuperare personalizată de nouă cuvinte. PBKDF2 derivă din acea frază o cheie de recuperare, care deschide un plic criptat ce conține cheia de seif. Dacă pierzi și modelul, și fraza de recuperare, Vaultaire nu are o cheie pe server care să poată restaura seiful.
Este un model chiar mai sigur decât o parolă?
Un model bine ales pe o grilă de 5×5 poate egala sau depăși entropia unei parole obișnuite. Avantajul este ușurința în utilizare: oamenii aleg parole slabe pentru că cele puternice sunt greu de reținut. Modelele se bazează pe memoria musculară, deci e firesc să folosești unul complex fără să-l memorezi conștient.
Poate cineva să facă o captură de ecran sau să-mi înregistreze modelul?
Vaultaire aplică pe grila de model o protecție împotriva capturilor de ecran, în limita posibilităților, și reacționează când iOS raportează o înregistrare activă a ecranului. iOS nu oferă un indicator public de ecran securizat pentru conținutul oricărei aplicații, deci aceste controale reduc capturile accidentale, dar nu pot garanta că fiecare metodă de captură este blocată.
Ce algoritm de criptare folosește Vaultaire?
Vaultaire folosește PBKDF2-HMAC-SHA512 cu 600.000 de iterații pentru a deriva o cheie de seif din model și dintr-o sare din Keychain la nivel de dispozitiv. Acea cheie de seif criptează indexul seifului și împachetează o cheie principală aleatorie de 256 de biți. AES-256-GCM, sub cheia principală, protejează conținutul fișierelor, antetele, metadatele și miniaturile cu criptare autentificată.
Este modelul stocat pe dispozitivul meu?
Vaultaire stochează informațiile de recuperare, inclusiv modelul, într-o bază de date de recuperare criptată AES-GCM, păstrată în iOS Keychain. Modelul nu este trimis către Vaultaire și nu este stocat în fișiere necriptate. Cât timp un seif este deschis, octeții cheilor există în procesul aplicației; blocarea elimină starea activă a cheilor din Vaultaire.
Poate Vaultaire să-mi acceseze fișierele criptate?
Vaultaire nu operează un serviciu care să-ți primească modelul, fraza de recuperare, cheile de decriptare sau conținutul lizibil al seifului. Backupurile iCloud criptate rămân în baza ta de date CloudKit privată. Această limită față de furnizor nu protejează un seif deschis de o versiune compromisă a aplicației, a sistemului de operare sau a dispozitivului.
Încearcă criptarea prin model
Desenează primul model și vezi cum e să ai fișierele cu adevărat protejate.
Descarcă Vaultaire gratuit