Chiarimento necessario per il white paper del NIST "Raccomandazione per la derivazione delle chiavi basata su password"

5

Quali sono alcuni esempi di casi d'uso che il NIST sta supportando in questa politica / whitepaper riguardante PBKDF2?

This Recommendation specifies a family of password-based key derivation functions (PBKDFs) for deriving cryptographic keys from passwords or passphrases for the protection of electronically-stored data or for the protection of data protection keys.

Avrei maggiori possibilità di comprendere questo paragrafo se sapessi cosa è implicitamente escluso da quell'elenco di applicazioni mirate.

Esempi concreti di ciò che è in ambito e fuori ambito sarebbe estremamente utile.

    
posta random65537 29.09.2011 - 04:48
fonte

1 risposta

2

Una funzione di derivazione chiave trasforma alcuni dati segreti in altri dati segreti e viene utilizzata per creare chiavi di dimensioni appropriate da altri tasti che non hanno le dimensioni appropriate. Un esempio di KDF è quello denominato "PRF" all'interno di SSL / TLS : è usato per convertire qualunque chiave condivisa sia stata costruita tra client e server (utilizzando la crittografia RSA o Diffie-Hellman) nelle chiavi simmetriche che verranno utilizzate successivamente per la crittografia simmetrica e il controllo di integrità nella connessione stabilita.

Un KDF basato su password (da cui il nome "PBKDF") è un KDF in cui il materiale sorgente è una "password", cioè un pezzo di dati che viene trattenuto nel cervello di un essere umano e (solitamente) tipizzato su una tastiera dal proprietario del cervello. Questo non è il caso di SSL. Un KDF basato su password viene utilizzato ogni volta che si desidera eseguire la crittografia dei dati "bloccata" da una password. Ad esempio, quando "crittografate" un file con una password (ad esempio "protezione password" in Word o un archivio Zip protetto da password o un portachiavi PGP o chiave privata SSH memorizzato in un file con "protezione passphrase"), puoi essere sicuro che è stato coinvolto un KDF basato su password.

Il lavoro di un KDF basato su password è:

  1. accetta come input una sequenza di caratteri (di lunghezza semi-arbitraria) e genera una sequenza di bit di lunghezza appropriata per l'algoritmo crittografico previsto (ad esempio 128 bit per la crittografia AES);
  2. "proteggere" la password contro gli attacchi del dizionario essendo opportunamente lenti e costosi (un utente malintenzionato potrebbe tentare di indovinare la password provando potenziali password, noi vogliamo che ogni processo sia pesante e costoso per lui) e usando un sale (in modo che l'attacco di due file crittografati sia due volte più costoso di un altro).

PBKDF2 assicura la seconda proprietà attraverso un "numero di iterazioni" configurabile e una salt (entrambi i parametri sono in genere memorizzati in un'intestazione pubblica per il file crittografato).

Un uso ambiguo ma comune di PBKDF2 è l'hash delle password. Si tratta di utilizzare l'output PBKDF2 come token di verifica password; una password sarà accettata se la derivazione tramite PBKDF2 darà lo stesso valore. PBKDF2 non è stato inizialmente progettato per questo, ma continua a funzionare in modo accettabile, anche se bcrypt è decisamente migliore (vedi questa risposta ).

    
risposta data 29.09.2011 - 15:16
fonte

Leggi altre domande sui tag