Sal (criptografia)

En criptografia, una sal (en inglés: salt) és un conjunt de bits aleatoris que s'usen com una de les entrades en una funció derivadora de claus. L'atra entrada és habitualment una contrasenya. L'eixida de la funció derivadora de claus s'almagasena com la versió sifrada de la contrasenya. Una sal també pot usar-se com a part d'una clave en un sifrat o un atre algoritme criptográfico. La funció de derivació de claus generalment usa una funció hash. A voltes s'usa com a sal el vector d'inicialisació, un valor generat prèviament.
Les senyes en sal compliquen els ataques de diccionari que sifren cada una de les entrades del mateix: cada bit de sal duplica la cantitat d'almagasenament i computació requerides.
Per a major seguritat, el valor de la sal es guarda en secret, separat de la base de senyes de contrasenyes. Açò aporta una gran ventaja quan la base de senyes és furtada, pero la sal no. Per a determinar una contrasenya a partir d'un hash furtat, l'atacant no pot simplement provar contrasenyes comunes (com a paraules o noms), sino calcular els hashes de caràcters aleatoris (a lo manco la porció de l'entrada que se sap és la sal), lo que és molt més llent.
En alguns protocols, la sal es transmet com a text pla en les senyes sifrades, a voltes junt en el número de iteraciones empleades en la generació de la clau (per a millorar la seua fortalea). Els protocols criptogràfics que usen sal inclouen el SSL i Ciphersaber.
Els primers sistemes UNIX usaven sal de 12 bits; les implementacions modernes usen valors majors.
La sal està relacionada molt de prop en el concepte de nonce.
El benefici aportat per usar una contrasenya en sal és que un atac simple de diccionari contra els valors sifrats és impracticable si la sal és lo suficientment llarga. Ademés, un atacant no podrà crear rainbow tables, diccionaris de valors sifrats (contrasenya + ix), ya que tardaria massa temps o ocuparia massa espai. Açò forçaria a l'atacant a usar el mecanisme d'autenticació proporcionat (el qual 'coneix' el valor de sal correcte).
Eixemples
Supongam que la clau secreta (sifrada) d'un usuari és furtada, i se sap que usa una de 200.000 paraules com a contrasenya. El sistema usa una sal de 32 bits. La clau salada és ara la contrasenya original unida a una sal aleatòria de 32 bits. A causa d'açò, els hashes precalculats de l'atacant carixen de valor. Deurà calcular el hash de cada paraula junt en cada una de les 232 (4,294,967,296) possibles combinacions de sales fins que es trobe una coincidència. El número total de possibles entrades es pot obtindre multiplicant el número de paraules en el diccionari pel número de possibles sals:
Per a completar un atac per força bruta, l'atacant deurà ara computar prop de 860 billons de hashes, en lloc de només 200.000. Inclús quan la contrasenya en sí mateixa siga simple, la sal secreta fa que trencar la contrasenya siga radicalment més difícil.
Implementacions Unix
Versions més antigues d'Unix usaven un archiu passwd per a almagasenar els hashes de les contrasenyes salades (contrasenyes precedides per una sal de dos caràcters aleatoris). Note's també que en estes versions antigues d'Unix, la sal era també almagasenada en l'archiu passwd (en text pla) junt en el hash de la contrasenya salada. L'archiu passwd pot ser llegit públicament per tots els usuaris del sistema. Deu ser llegible per a que software en privilegis d'usuari puga trobar noms d'usuari i una atra informació. La seguritat de les contrasenyes està llavors protegida solament per les funcions (sifrat o hashing) usades per al propòsit.
Les primeres implementacions d'Unix llimitaven les contrasenyes a 8 caràcters i usaven una sal de 12 bits, permetent aixina 4096 possibles valors. Encara que 12 bits eren suficients per a molts propòsits en 1970 (encara en certs dubtes expressats llavors), en 2005 la capacitat de disc s'ha tornat lo suficientment barata per a que un atacant pot precomputar els hashes de millons de contrasenyes comunes, incloent totes les 4096 possibles variacions de sal per a cada contrasenya, i almagasenar-los en un únic disc dur portàtil. Un atacant en gran presupost pot construir un almagasén de discs en totes les contrasenyes de 6 caràcters i les més comunes de 7 i 8 caràcters almagasenades en forma sifrada, per a cada una de les 4096 possibles sals. Vore password cracking.
Vore també
- Este artícul conté una traducció derivada de «Sal (criptografía)» de Wikipedia en castellà publicada baix la Llicència de documentació lliure de GNU i la Llicència Creative Commons Reconeiximent-CompartirIgual 4.0 Internacional.