Memorizzazione della password AES per la verifica

1

Mi chiedevo se tale pratica sarebbe stata sicura:

  • Ho una tabella che memorizza le note crittografate
  • Ogni nota ha un campo dati e un campo password
  • Quando viene inserita una password, voglio selezionare tutte le note, crittografate con quella password
  • A tale scopo, ho bisogno di memorizzare la password in modo sicuro accanto ai dati
  • Possono esserci molte note e molte password diverse

Per risolvere questo problema, ecco cosa faccio:

  • Cifra i dati da memorizzare con un tasto AES, generato da PBKDF
  • Hash la chiave con md5
  • Memorizza la versione md5 della chiave accanto ai dati

Ecco cosa sto pensando:

  • MD5 è super insicuro!
  • Quindi abbiamo una possibilità migliore che impone all'hash MD5 di recuperare la chiave originale
  • Ma ...
  • La chiave stessa è 256 bit
  • Quindi, in teoria, forzare brutalmente un simile hash MD5 dovrebbe essere ancora un incubo ... o ho sbagliato?

Quale sarebbe un'alternativa migliore per memorizzare un hash della password (ne ho solo bisogno per determinare quali note selezionare da db)?

Grazie per i tuoi pensieri

    
posta Marius 18.11.2014 - 09:20
fonte

2 risposte

3

Da quello che posso dire dai commenti, vuoi usare password più forti e più deboli a seconda della sensibilità del file. Per questo, suggerisco un approccio diverso: invece di avere password diverse, richiedono una password aggiuntiva per i documenti più sensibili. Pertanto, tutti i file vengono crittografati per impostazione predefinita dalla password standard e i file più sensibili vengono nuovamente crittografati con la password più sicura. Fai in modo che l'utente esegua l'autenticazione utilizzando la sua password predefinita all'avvio dell'app, quindi chiedigli la password sensibile ogni volta che desidera accedere ai file riservati.

Se si desidera memorizzare le note crittografate con la stessa password, non è necessario memorizzare la password stessa. In effetti, non memorizzare affatto la password. Memorizza il livello di sicurezza del file (basso / medio / alto) e chiedi le password in base a quel livello di sicurezza.

    
risposta data 18.11.2014 - 11:50
fonte
3

Da Wikipedia :

A 2013 attack by Xie Tao, Fanbao Liu, and Dengguo Feng breaks MD5 collision resistance in 2^18 time. This attack runs in less than a second on a regular computer.[2]

Questo significa che c'è una debolezza nella capacità di MD5 di distinguere tra dati di input diversi - che due input arbitrari possono calcolare lo stesso hash.

In April 2009, a preimage attack against MD5 was published that breaks MD5's preimage resistance. This attack is only theoretical, with a computational complexity of 2^123.4 for full preimage.[40][41]

Questo significa che c'è una debolezza teorica nell'MD5, che ti consente di individuare una preimage dal valore del risultato. Se il tuo MD5 è 508e01033ebe14c9c339b9928d7ce4bd, qualcuno potrebbe in futuro (dato un sufficiente potere di calcolo) usare l'attacco preimage per scoprire che la password originale era hfghfhghfhgf.

    
risposta data 18.11.2014 - 09:39
fonte

Leggi altre domande sui tag