Come avviene la gestione delle chiavi in OpenSSL e aescrypt e in che modo la chiave viene archiviata dopo la crittografia?

0

Sto usando OpenSSL e Aescrypt per la crittografia e la decrittografia, quindi come avviene la gestione delle chiavi in OpenSSL, aescrypt e come salvare la chiave dopo la crittografia? Ad esempio, fornisco un codice di esempio

openssl aes-256-cbc -a -salt -in abc.txt -out abc.txt.enc

aescrypt -e -p apples abc.txt

    
posta prasanna 02.06.2017 - 11:39
fonte

1 risposta

1

Se provi a eseguire la riga di comando openssl , vedrai che chiederà una "password di crittografia". Quella password è la chiave; non c'è nessuna chiave memorizzata altrove.

Guardando il codice sorgente di OpenSSL (sono qui guardando OpenSSL-1.0.2g, il file è apps/enc.c ), sembra che la password sia usata, insieme a un salt casuale, nel EVP_BytesToKey() funzione: quella funzione genera la chiave di crittografia (e la IV) dal sale e la password, con un complicato funzione basata su hash. Il numero di iterazioni è codificato su 1 (che, per quanto riguarda l'hashing della password, è terribile). Il file di output (senza contare la codifica Base64 aggiunta con l'opzione -a ) inizia con una sequenza di otto byte fissi ( 53 61 6c 74 65 64 5f 5f ) seguiti dallo stesso sale (8 byte), quindi i dati crittografati. Pertanto, il sale generato casualmente è codificato nel file stesso, ma la password non è memorizzata in nessun altro luogo rispetto al cervello dell'utente.

Non sono a conoscenza di uno strumento standard chiamato "aescrypt". Le ricerche di Google mostrano diversi strumenti con quel nome, quindi non posso sapere quale macchina hai sul tuo computer. Scommetto, però, che il principio generale è lo stesso: lo strumento richiede una password e ricava la chiave di crittografia da quella password.

    
risposta data 02.06.2017 - 17:21
fonte

Leggi altre domande sui tag