Ce este salting-ul pentru parole?
Salting-ul este o tehnica de securitate folosita pentru a proteja parolele stocate in baza de date a unei aplicatii. Aceasta tehnica implica adaugarea unui sir de caractere aleatoriu la inceputul sau la sfarsitul parolei inainte de a o stoca in baza de date. Sirul de caractere aleatoriu este numit "salt".
De ce este important salting-ul pentru parole?
In cazul in care un atacator reuseste sa acceseze baza de date a unei aplicatii si obtine parolele, fara salting, el poate folosi dictionare de parole pentru a incerca sa ghiceasca parolele folosite de utilizatori. Daca parolele sunt stocate cu salting, atacatorul trebuie sa ghiceasca si salt-ul, ceea ce face mult mai dificil pentru el sa sparga parolele.
Exemple de cum functioneaza salting-ul
In Python, putem folosi libraria hashlib
pentru a crea un salt si pentru a hash-ui o parola. Iata un exemplu:
import hashlib
import os
password = "mysecretpassword"
salt = os.urandom(32) # generam un salt aleatoriu
# adaugam salt-ul la parola
salted_password = salt + password.encode('utf-8')
# hash-uiam parola cu salt-ul
hashed_password = hashlib.sha256(salted_password).hexdigest()
# stocam hash-ul in baza de date
Cand un utilizator incearca sa se autentifice, putem folosi acelasi salt pentru a hash-ui parola introdusa si pentru a o compara cu hash-ul stocat in baza de date. Daca cele doua hash-uri se potrivesc, atunci utilizatorul a introdus parola corecta.
Salting-ul pentru parole este o tehnica importanta de securitate pentru orice aplicatie care stocheaza parole in baza de date. Prin adaugarea unui salt la parole, putem proteja utilizatorii impotriva atacurilor de tip dictionar si de tip brute-force.