Fornire una password a PBKDF2 in binario raw vs base64?

2

Background: sto lavorando con la libreria crypto del nodo. Sto usando PBKDF2 per convertire una "passphrase" binaria di lunghezza variabile in chiavi a lunghezza costante per una cifratura AES più tardi.

La fonte sottostante di questi dati di passphrase, per motivi fuori dal mio controllo, è codificata con base64. Per abitudine, decodifico la passphrase in binario prima di fornirla a PBKDF2. Ma questo mi ha fatto pensare ... La codifica Base64 rende la passphrase più lunga, ma con un set di caratteri più limitato. Nelle applicazioni pratiche, renderebbe i dati migliori o peggiori come input per PBDKF2?

In altre parole, se viene data una scelta tra:

key = pbkdf2(binaryPassphrase)

... contro ...

key = pbkdf2(base64encode(binaryPassphrase))

... c'è qualche differenza nella sicurezza offerta?

    
posta smitelli 07.01.2014 - 18:04
fonte

1 risposta

2

Tra

key = pbkdf2(binaryPassphrase)

e

key = pbkdf2(base64encode(binaryPassphrase))

non c'è differenza nella quantità di sicurezza fornita. La passphrase codificata base64 è più lunga, ma è basata esattamente sulla stessa quantità di entropia e quindi non offre alcuna sicurezza aggiuntiva.

La funzione pbkdf2 richiede praticamente lo stesso tempo di esecuzione con entrambi gli input (a meno che binaryPassphrase non sia più kilobyte o più). L'unica differenza significativa sarà che le chiavi risultanti derivate saranno diverse.

    
risposta data 07.01.2014 - 18:35
fonte

Leggi altre domande sui tag