È sicuro archiviare la passphrase AES crittografata con il tasto AES risultante?

2

Ho scoperto che uno strumento di crittografia crittografa e memorizza la passphrase immessa dall'utente e utilizzata per generare la chiave AES oltre al payload crittografato.

Pseudocodice:

key = md5(passphrase)
iv = 0
cipher = Cipher(key, "AES/CBC/PKCS7", iv)
encryptedpayload = cipher.encrypt(payload)
cipher = Cipher(key, "AES/CBC/PKCS7", iv)
encryptedpassphrase = cipher.encrypt(passphrase + chr(0))
// Write encryptedpayload and encryptedpassphrase Base64 encoded to file

Il motivo per archiviare la frase crittografata è che lo strumento lo utilizza per decidere se la passphrase specificata per la decrittografia è quella corretta, quindi l'utente può essere avvisato se la passphrase è sbagliata.

Se AES è un modo sicuro per crittografare qualsiasi informazione, non ci dovrebbero essere problemi per crittografare la passphrase, tuttavia ho un brutto presentimento.

Soprattutto perché non c'è sale usato e IV è sempre impostato su 0.

E la lunghezza della passphrase cifrata fornisce alcune informazioni sulla lunghezza della passphrase (se è lunga 16 byte, la passphrase non può essere più lunga di 15 byte a causa del byte 0 aggiunto prima della crittografia).

Quindi mi piacerebbe sapere se questo schema di crittografia è valido o dovrebbe essere evitato questo strumento?

E qual è la procedura migliore per rilevare se la passphrase inserita è quella corretta per decrittografare il testo cifrato?

    
posta siebert 05.10.2014 - 13:36
fonte

0 risposte

Leggi altre domande sui tag