Sto scrivendo un semplice programma per la crittografia dei file. Principalmente come esercizio accademico, ma probabilmente per uso futuro futuro. Tutto il lavoro pesante è fatto con le librerie di terze parti, ma mettere insieme i pezzi in modo sicuro è ancora una sfida per il non crittografo. Fondamentalmente, ho praticamente tutto funziona come penso che dovrebbe.Utilizzo di MD5 per generare una chiave di crittografia dalla password?
Sto utilizzando AES a 128 bit per la crittografia con una chiave di 128 bit. Voglio che gli utenti siano in grado di inserire password di lunghezza variabile, quindi ho deciso di cancellare la password con MD5 e utilizzare l'hash come chiave. Ho pensato che fosse accettabile: la chiave dovrebbe sempre essere un segreto, quindi non c'è motivo di preoccuparsi degli attacchi di collisione.
Ora che l'ho implementato, ho trovato un paio di articoli che indicano che questa è una cattiva idea. La mia domanda è: perché? Se viene scelta una buona password, il cifrario dovrebbe essere abbastanza forte da non rivelare mai la chiave se non tramite uno sforzo brute-force straordinario (leggi: attualmente non fattibile), giusto? Dovrei usare qualcosa come PBKDF2 per generare la chiave o è solo eccessivo per tutte le applicazioni di crittografia più estreme?
salt la password – helloandre