Criptaţi parolele: pentru binele Dvs şi al celorlalţi


Mi se întâmplă tot mai frecvent în ultima vreme, cum tot testez zeci de servicii, unele ce cer abonarea, ca la parolă să pun litere la întâmplare. Orice sit care se respectă oferă posibilitatea de recuperare a parolei aşa că de ce să o mai memorez (dacă oricum testez acel sit şi s-ar putea să nu mai revin niciodată sau doar peste multe luni)? Sau de ce să dau una din parolele pe care le folosesc la serviciile foarte importante? Cei mai mulţi dintre noi greşim folosind o parolă (sau câteva) peste tot. În ce pericol ne punem? Un anumit sit este spart, iar un hacker găseşte acolo lista de adrese şi de parole. Găseşte nu ştiu câte adrese @yahoo sau @gmail şi, surpriză, la 90% dintre ele parola folosită pe situl spart coincide cu parola contului de email… acces liber! Atunci când aceeaşi parolă de la un cont de email aţi folosit-o şi în altă parte, lăsându-vă acolo şi adresa de email respectivă, tocmai aţi creat o gravă breşă de securitate.

img203

Să punem acum problema din perspectiva webmasterilor, cărora li se adresează în primul rând articolul. Dacă dezvoltaţi o aplicaţie ce presupune înscrierea cu parolă (fie că e vorba de o librărie sau ceva magazin online, ori de vreo altă aplicaţie) asiguraţi-vă că criptaţi parolele. De ce? În primul rând scăpaţi Dvs de o grijă majoră: dacă aplicaţia vă este spartă de cineva, hacker-ul nu va avea decât parolele criptate ale utilizatorilor (inutile). Astfel în al doilea rând scapă şi utilizatorii de o grijă: că parola le-ar putea fi aflată. Cel care scrie aceste rânduri este păţit! Am avut o aplicaţie, serverul a fost spart (nu aplicaţia) şi parolele aflate: a trebuit să contactez de urgenţă pe toţi "clienţii" pentru a-i ruga să îşi schimbe parolele la conturile de email pentru că, bineînţeles, parolele folosite la aplicaţia cu pricina erau şi parolele de la contul de email (şi de la cine ştie câte alte conturi).

Cum mai orice aplicaţie foloseşte o bază de date MySQL ne vom folosi de funcţia MD5 pentru criptare (informaţii generale despre MD5 şi pseudoalgoritmi de generare găsiţi pe Wikipedia). Să zicem că sunteţi în PHP. Aţi extras în variabila $parola secvenţa de cifre şi litere introdusă de utilizator ca parolă. Tot ce trebuie să faceţi acum este să obţineţi criptarea ei. Cum? Simplu: SELECT MD5($parola). Vreţi câteva exemple? SELECT MD5("parola") returnează 8287458823facb8ff918dbfabcd22ccb. Sau SELECT MD5("anaaremere") care returnează 4f1d047c27dbb0db0c8e90d202cf9548. În loc să memoraţi în baza de date parola veţi memora criptarea ei. Apar două situaţii:

  • identificarea (login): în acest caz luaţi valoarea introdusă de utilizator ca parolă, o criptaţi şi comparaţi rezultatul cu câmpul parolă din tabela MySQL – dacă valorile coincid (la fel şi numele de utilizator sau adresa de email, în funcţie de perechea ce o folosiţi pentru login) atunci avem o identificare reuşită!

  • pierderea parolei: în acest caz aveţi două opţiuni: generaţi aleator o parolă (sau luaţi primele 8 caractere din criptare) şi o trimiteţi utilizatorului, invitându-l să se identifice cu ea pe sit şi imediat să îşi schimbe parola; sau să trimiteţi utilizatorului un link (care trebuie să conţină secvenţe aleatorii, pentru a nu putea fi folosit de altcineva, întâmplător sau rău-voit) pe care când dă click să ajungă la un formular cu un singur câmp: acela pentru noua parolă, pe care o recriptaţi şi o repuneţi în tabela corespunzătoare

Da, memorarea parolei criptate complică puţin lucrurile (mai ales la recuperarea parolei) dar astfel parolele utilizatorilor aplicaţiei Dvs sunt în siguranţă chiar dacă aplicaţia sau serverul ce o găzduieşte ar fi spart. Nu este oare acest lucru cel mai important?

Dacă aţi înţeles mecanismul ştiţi deja să judecaţi webaplicaţiile pe care le folosiţi. Încercaţi să vă recuperaţi parola: dacă v-o trimite curat, în email, atunci tocmai aţi aflat că nu vă criptează parola, deci aplicaţia merită un minus, un mare minus; dacă în schimb v-a fost generată una nouă, aleatoare, sau aţi fost trimis online să resetaţi vechea parolă indicând o alta nouă, atunci webaplicaţia cu pricina ţine la clienţi.


Apreciază articolul:

1 stea2 stea3 stea4 stea5 stea (2 evaluări, media: 4,00 din 5)
Loading...Loading...

0 comentarii


Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile necesare sunt marcate *