3. PHP Passwords
És fonamental emmagatzemar correctament les contrasenyes en qualsevol aplicació web, desenvolupada en qualsevol llenguatge. La seguretat dels usuaris depèn directament d'això. Una bretxa de seguretat on les contrasenyes es revelin pot suposar un robatori d'identitat o un accés no autoritzat a serveis.
Per què és crucial emmagatzemar-les bé?
El mètode d'emmagatzematge mai ha de ser en text pla. Si un atacant aconsegueix accedir a la base de dades, tindrà totes les contrasenyes sense cap esforç.
La solució universalment acceptada és utilitzar funcions de hashing segures i robustes. El hashing és un procés unidireccional: transforma la contrasenya en una cadena de caràcters (el hash) que és gairebé impossible de revertir.
El hashing segur
-
Algorisme Fort: Cal utilitzar algorismes moderns i lents com Argon2 (el millor actualment) o Bcrypt (molt recomanable). PHP, per exemple, ofereix la funció password_hash() que gestiona això de manera excel·lent. Algorismes antics i ràpids com MD5 o SHA-1 estan obsolets i s'han d'evitar.
-
Salt: Cada hash ha d'incloure un salt únic i aleatori. Això garanteix que, encara que dos usuaris tinguin la mateixa contrasenya, el seu hash serà diferent, frustrant els atacs rainbow table. Els algorismes moderns com Bcrypt i Argon2 integren el salt automàticament.
-
Factor de Cost/Treball: La funció de hashing ha de ser lenta. Aquesta lentitud no afecta significativament l'experiència de l'usuari, però incrementa exponencialment el temps necessari perquè un atacant utilitzi brute-forcing.
Hashing vs crypting
La diferència principal rau en la reversibilitat i l'objectiu. El hashing és un procés unidirecci...
Legislació
La Llei 34/2002, d'11 de juliol, de serveis de la societat de la informació i de comerç electròni...
Encriptació
L'encriptació simètrica i l'encriptació asimètrica són els dos tipus principals d'algoritmes util...
Hash
Com a funció criptogràfica, el hash (o funció resum) transforma qualsevol dada d'entrada en una c...
Hash password PHP
password_hash(): Creació del hash La funció password_hash() és la responsable de generar el hash...
Funció crypt()
La funció crypt() de PHP serveix per generar un hash unidireccional (irreversible) d'una cadena d...
Xifrat OpenSSL
Per xifrar una cadena de caràcters (no només fer-ne el hash per contrasenyes, sinó xifrar-la per ...
Base64
El Base64 és un sistema de codificació (no d'encriptació) que converteix dades binàries (imatges,...