Qual è il modo più sicuro per memorizzare una password in un singolo file?

1

Ho letto su di esso. Questo articolo mi ha aiutato molto. Ma più leggo, più sembra complicato. Ad esempio:

È meglio usare bcrypt, o PBKDF2, sha2 o qualcos'altro per il sale? Come si aggiungono le password di crittografia HMAC?

Supponiamo di dover memorizzare password (tutte le informazioni, hash, salt ....) in un singolo file.

Ho intenzione di farlo in questo modo:

  1. Ottieni password dall'utente finale.
  2. Crea un sale.
  3. Crea hash = SHA256 (sale + password) e salva il sale insieme con l'hash nel file.

Ma non sono sicuro di come migliorarlo. Non capisco come usare HMAC

Bene, la domanda è: qual è il modo più sicuro per memorizzare una password in un singolo file? indipendentemente dal costo dell'algoritmo

PD: sto usando JAVA.

    
posta user60108 27.02.2013 - 07:28
fonte

2 risposte

8

Primo punto, non utilizzare mai SHA256 per l'hashing delle tue password. Utilizza bcrypt o pbkdf2 . Ecco un link in una libreria Java per bcrypt .

La biblioteca si prenderà cura della maggior parte dei dettagli, compresa la generazione di sali. Usalo, non farlo da solo.

Qual è lo scopo della password? È per l'autenticazione? In tal caso, è sufficiente memorizzare l'hash da qualche parte in un secondo momento per il confronto, che si tratti di un file di testo o di un database.

Se si desidera utilizzare la password per la crittografia, beh questa è una serie di problemi completamente diversa da considerare. Dettagli come la gestione delle chiavi, le modalità di utilizzo che dovresti usare variano a seconda del tuo scenario esatto. Non farlo a meno che tu non sia un crittografo esperto, cosa che chiaramente non lo è, dal momento che c'è un sacco di cose che possono e andranno male se provi a lanciare la tua crittografia.

    
risposta data 27.02.2013 - 07:38
fonte
2

L'utilizzo di SHA-256 è una cattiva idea. Questo algoritmo non è stato progettato per essere utilizzato in questa situazione.

L'algoritmo di IETF scrypt è probabilmente il migliore disponibile per l'archiviazione di password, ma non è abbastanza vecchio per essere ampiamente implementato o sottoposto a test intensivi. PBKDF2 , d'altra parte, è promosso dagli Standard di crittografia a chiave pubblica (PKCS) di RSA Laboratories.

In entrambi i casi, usa le librerie Java per fare il lavoro per te e non implementare queste funzioni tu stesso. Trova qui una libreria per scrypt.

    
risposta data 01.03.2013 - 01:37
fonte

Leggi altre domande sui tag