Sono in viaggio per imparare tutto sulla sicurezza delle informazioni e, come ho letto su come proteggere una password, non ho capito bene perché dovrei rallentare l'hashing di una password e come fallo correttamente .
Sì, ci vuole più tempo per craccarlo ma alla fine sarà rotto, anche se succederà da anni.
Inoltre, sarebbe bello se tu potessi darmi qualche consiglio su cosa aggiungere al codice sottostante per renderlo più sicuro. Voglio davvero fare una password per essere sicuro come può essere.
$password = 'userinput';
$hash = password_hash($password, PASSWORD_DEFAULT);
Dopo alcune ricerche ho capito che password_hash è il modo migliore per farlo, perché fa tutto il lavoro correttamente (sale, algoritmo di crittografia) e il bcrypt (PASSWORD_DEFAULT) è, per ora, il più sicuro da usare. Anche per la memorizzazione della password VARCHAR (255) è quella consigliata.
-
Non ho capito bene a cosa serve ['cost'], tranne che è anche usato per rallentare l'hashing.
-
Dovrei usare un pepe? E come incorporarlo nel codice? Dovrei archiviarlo nel database, è utile in seguito? Ho letto questo post ma non riuscivo a capire come replicarlo usando password_hash come il codice sopra.
-
Dopo questo blog , se sono usando un pre-hash (pepe) del tutto con l'hash del passaggio, l'hash può contenere NULL-byte che sono devastanti per la sicurezza, quindi dovrei in qualche modo disinfettare il 'userinput' per rimuovere l'insieme di caratteri '\ 0'? o fai come dice lui:
- Use hex output from the pre-hash
- Base64 encode the raw output of a pre-hash
Per favore, se qualcuno delle mie affermazioni / domande è sbagliato, correggimi.
Un codice e la spiegazione sarebbero molto utili per me. Questo mi aiuterebbe molto a capire meglio la sicurezza della password. Grazie
UPDATE: Dopo che questa domanda è stata contrassegnata come duplicata, ho trovato un post abbastanza informativo sul perché è utile rallentare l'hashing. Ma questo era solo un punto della mia intera domanda.
I 4 punti non sono ancora chiari e senza risposta e non sono riuscito a trovare quasi nulla su di loro in quel post.
Una cosa che ho dimenticato di menzionare è che sto codificando in PHP, e sarebbe utile se l'esempio di codice fosse scritto in PHP. Inoltre, non credo che questa domanda sia troppo ampia in quanto l'argomento del post è semplicemente la protezione della password e non l'intera sicurezza delle informazioni. Ho visto qui domande molto più complesse e ampie delle mie.