Il NIST consiglia davvero PBKDF2 per l'hashing della password?

8

Abbiamo esitato tra BCrypt e PBKDF2 per l'hashing della password. In molti forum e blog le persone dicono qualcosa come "Nella loro Pubblicazione speciale SP 800-132 In pratica, il NIST consiglia di utilizzare PBKDF2 per l'hashing della password. "

Questo può essere un argomento molto importante per il nostro cliente (adoro gli standard). Ma non riesco ancora a leggere questa raccomandazione in testo semplice ... Quindi non posso reclamarlo comodamente. In breve, il NIST più o meno dice:

The derived keying material is called a Master Key (MK), denoted as mk. The MK is used either 1) to generate one or more Data Protection Keys (DPKs) to protect data, or 2) to generate an intermediate key to protect one or more existing DPKs or generated from the MK using an approved Key Derivation Function (KDF) as defined in [2]. The MK shall not be used for other purposes.

C'è una tale raccomandazione o questo è solo un mito?

    
posta Lachezar Balev 17.05.2012 - 13:16
fonte

3 risposte

11

La raccomandazione è che PBKDF2 sia utilizzato come algoritmo per generare una chiave crittografica da una password, non per l'hashing di una password per l'archiviazione sicura a fini di autenticazione. (Mi fido che stai salando anche tu?) Quindi la risposta è no, per il tuo caso d'uso non esiste tale raccomandazione. Questo non significa che non sia adatto, ma non c'è una raccomandazione NIST da citare.

    
risposta data 17.05.2012 - 23:19
fonte
3

Penso che tu stia trovando questo :

Verifiers SHALL store memorized secrets in a form that is resistant to offline attacks. Secrets SHALL be hashed with a salt value using an approved hash function such as PBKDF2 as described in [SP800-132]. The salt value SHALL be a 32 bit (or longer) random value generated by an approved random bit generator and is stored along with the hash result. At least 10,000 iterations of the hash function SHOULD be performed. A keyed hash function (e.g., HMAC), with the key stored separately from the hashed authenticators (e.g., in a hardware security module) SHOULD be used to further resist dictionary attacks against the stored hashed authenticators.

    
risposta data 22.12.2016 - 21:29
fonte
0

Mentre NIST SP 800-132 non riguarda specificamente l'hashing delle password, e soprattutto non le password per l'autenticazione, vi è una strong raccomandazione di utilizzare PBKDF2 soprattutto per la sua resistenza a forza bruta.

L'imminente NIST SP 800-63B bozza < em> (Digital Identity Guidelines Authentication and Lifecycle Management ) tuttavia menziona PBKDF2 esplicito, ma si occupa anche di un pepe HMAC :

Verifiers SHALL store memorized secrets in a form that is resistant to offline attacks. Secrets SHALL be hashed with a salt value using an approved hash function such as PBKDF2 as described in [SP 800-­132]. The salt value SHALL be a 32­bit or longer random value generated by an approved random bit generator and stored along with the hash result. At least 10,000 iterations of the hash function SHOULD be performed. A keyed hash function (e.g., HMAC [FIPS198­1]), with the key stored separately from the hashed authenticators (e.g., in a hardware security module) SHOULD be used to further resist dictionary attacks against the stored hashed authenticators.

C'è molto da discutere su questo, ma in ogni caso richiede "funzione hash approvata" che esclude scrypt (parzialmente poiché utilizza intenzionalmente un passaggio PBKDF2) e bcrypt . E adoro il fatto che inviti alla conservazione separata di un peperone. Questo è il motivo per cui ho rianimato il mio tentativo di definire un formato PBKDF2 comune: link

    
risposta data 19.03.2017 - 11:37
fonte