Dovrei essere preoccupato per le password brute-forcing che codificano AES?

5

Sto costruendo un'applicazione che ha bisogno di archiviare localmente dati sensibili, che viene crittografato usando SHA-256 di una password fornita dall'utente. Utilizza AES per la crittografia.

Sono preoccupato che alcuni utenti possano scegliere di utilizzare una password debole, che potrebbe essere forzata brutalmente da un utente malintenzionato che ottiene quel file e desidera leggere il contenuto.

Penso che, per ottenere l'hash, debba essere aggiunto un nonce a quella password, e il primo nonce per il quale l'hash ha i primi X bit impostati a zero, questa è la chiave che deve essere usata. Se X è impostato su 20, è necessario calcolare in media circa 1 milione di hash per ottenere la chiave valida dalla password fornita dall'utente.

In questo modo l'utente potrebbe impiegare 1 secondo per calcolare la chiave (a seconda della macchina), rendendo estremamente più difficile forzare la scrittura forzata indovinando le password.

Naturalmente, questo è qualcosa che mi è venuto in mente, e suppongo che sia perché non dovrei usarlo . Esistono alternative ampiamente testate per questo?

    
posta Nathan Parker 03.11.2015 - 12:46
fonte

1 risposta

16

.. encrypted using the sha256 of a password provided by the user.

Non dovresti usare un semplice hash per creare la chiave dalla passphrase. Questi hash sono ottimizzati per la velocità e quindi la forzatura bruta è possibile. Dovresti invece utilizzare funzioni di derivazione della chiave provate come PBKDF2 o simili. Consulta l' articolo di Wikipedia sulle funzioni di derivazione delle chiavi per ulteriori dettagli.

    
risposta data 03.11.2015 - 13:01
fonte

Leggi altre domande sui tag