Splync nu stochează niciodată parolele tale în text simplu
În articolele anterioare am explorat cum HTTPS protejează comunicarea dintre aplicația ta și serverul nostru, și cum SSH securizează serverul în sine. Acum e momentul să vedem cum îți protejează Splync parola odată ajunsă pe server. Dacă cineva ți-ar obține parola, ar putea să intre în contul tău și să acceseze informații sensibile, inclusiv evidențele tale de cheltuieli. De aceea, Splync nu stochează parolele în text simplu. În schimb, fiecare parolă este transformată într-o versiune hash înainte de a fi salvată în baza de date. Ce înseamnă asta mai exact? Hashing-ul e o conversie unidirecțională — o dată transformată, nu poate fi reconvertită în parola originală. Această metodă este standard pe internet, de la bănci la servicii de cloud majore, însă mulți oameni nu știu cum funcționează de fapt. Hai să explorăm acest lucru printr-o analogie simplă, de zi cu zi.
Noțiuni de bază despre hashing: un blender care amestecă mereu la fel
Pentru a înțelege cum funcționează protecția parolelor, să începem cu o metodă simplă de hashing numită SHA-256. Imaginează-ți că e ca un blender care amestecă ingredientele exact la fel de fiecare dată. Dacă pui aceeași parolă în blender și apeși butonul, vei obține mereu același smoothie unic — un amestec de litere și cifre. Ideea cheie e că procesul nu poate fi inversat. La fel cum nu poți separa un smoothie înapoi în banană și lapte, nu poți lua un hash amestecat și să recuperezi parola originală.
Exemplu de SHA-256: cum să verifici parolele fără să le știi
SHA-256 este unul dintre cele mai comune algoritmi de hashing. De exemplu, hash-ează parola "splync1234" în „9cdafa20d069ecfb202e5f0bc937c73071cc6cd85634cc2d95d30ddcf2a71d41”. În câteva milisecunde, de fiecare dată când un utilizator existent introduce o parolă de conectare, SHA-256 produce același hash de parolă. Aplicația hash-ează din nou parola introdusă și verifică dacă se potrivește cu hash-ul stocat. Sistemul nu cunoaște niciodată parola originală a utilizatorului. Dar ce se întâmplă dacă un atacator pre-calculează o listă de parole comune și hash-urile acestora (cunoscut ca un atac cu tabelă curcubeu) pentru a ghici rapid parolele utilizatorilor? Această îngrijorare este foarte reală. De aceea sistemele moderne, inclusiv Splync, nu se bazează pe SHA-256 simplu.
Splync hash-ează parolele cu bcrypt — mai puternic decât SHA-256
Bcrypt folosește un salt aleatoriu pentru fiecare utilizator și codifică acel salt (și factorul de cost) direct în șirul hash stocat. Imaginează-ți bcrypt ca un blender cu un condiment secret (salt) și un motor lent (factor de lucru) — face fiecare amestec unic și mai greu de copiat. Deoarece saltul este de 128 de biți (≈3×10³⁸ posibilități), aceeași parolă poate corespunde unui număr astronomic de hash-uri stocate diferite. Asta face ca tabelele curcubeu preconstruite să fie inutile la scară largă. În timpul autentificării, Splync citește saltul și costul din șirul bcrypt salvat, rulează din nou bcrypt pe parola introdusă cu acei parametri și compară rezultatul cu hash-ul stocat. Dacă se potrivesc, parola este corectă — dar deoarece bcrypt este intenționat lent și sărurile sunt unice, atacurile brute-force devin mult mai costisitoare pentru un atacator.
Un exemplu simplu cu bcrypt
Să vedem cum arată în practică. Dacă hash-ezi parola "splync1234" cu bcrypt (folosind cost 12), ai putea obține un șir ca acesta: `$2b$12$gBeouKYdue9uvvuV0HtGgeVPymnrojMqP/wcRw28HFlGEGIQbyw7O`. În acest șir bcrypt, `$2b` indică versiunea algoritmului, `$12` arată factorul de cost (de câte ori este procesată parola), `gBeouKYdue9uvvuV0HtGgeV` este saltul aleatoriu unic, iar `PymnrojMqP/wcRw28HFlGEGIQbyw7O` este parola finală hash-uită. Deoarece hash-ul în sine conține saltul și costul, Splync poate reproduce același proces de hashing pentru verificare prin extragerea acestor valori din șirul stocat și comparând rezultatul. Pe de altă parte, dacă un atacator nu cunoaște saltul și costul, nu poate construi o tabelă curcubeu care să funcționeze pentru fiecare utilizator.
Parolele hash-uite oferă protecție dublă
Această abordare are un alt avantaj important. Deoarece Splync nu stochează niciodată parolele în text simplu, chiar dacă baza de date ar fi scursă sau furată, utilizatorii nu sunt imediat în pericol. Atacatorii nu se pot autentifica direct cu datele furate, deoarece ceea ce au sunt doar șiruri amestecate. Acest design le oferă utilizatorilor un strat suplimentar de protecție, pe lângă măsurile de securitate care există deja în jurul serverului. Hashing-ul parolelor nu este unic pentru Splync; este standardul în industria tehnologică, folosit de giganți precum Google, Apple și Amazon. Splync este construit foarte sigur și va deveni și mai sigur pe măsură ce îmbunătățim securitatea cu caracteristici precum verificarea prin email, protecția împotriva atacurilor de tip brute-force și monitorizarea continuă.