Come devo modificare la crittografia secondo *** ATTENZIONE: derivazione della chiave obsoleta utilizzata


15

Quando crittografare o decrittografare un file, ottengo *** WARNING : deprecated key derivation used. Using -iter or -pbkdf2 would be better.

Non capisco cosa significhi, come dovrei cambiare le mie procedure. Potresti aiutarmi? Cripto openssl des3 <input >output.des3e decifro con openssl des3 -d <input.des3 >output

A proposito dell'ambiente

Ubuntu 18.10

~$ openssl version OpenSSL 1.1.1 11 Sep 2018


1
3DES come metodo di crittografia viene ritirato. L'avvertimento suggerisce solo di utilizzare un altro metodo, forse fare riferimento a crypto.stackexchange.com/questions/51629/… per maggiori dettagli.
Guiverc,

1
Tale errore si verifica per qualsiasi tipo di cifra. È necessario aggiungere -pbkdf2 ai comandi di crittografia e decrittografia.
Daniele Dellafiore,

Siamo spiacenti, ma potresti fornire un esempio di come aggiungere -pbkdf2 ai comandi? Non capisco come debba essere aggiunto.
Tommy Pollák,

1
Nel tuo esempio, devi solo fare openssl des3 -e -pbkdf2 < input > output.des3e openssl des3 -d -pbkdf2 < input.des3 > output. Mi capita anche di concordare con il primo commento sul fatto che dovresti usare un codice a blocchi diverso invece di 3DES (DES è del 1977), un modo semplice per farlo è quello di scambiare aes256dove hai attualmente des3in quei comandi, per usare AES ( AES a 256 bit soddisfa gli attuali standard di sicurezza).
Joelhardi,

Grazie! Ora funziona e senza avvisi usando aes256. Quindi si risponde alla domanda.
Tommy Pollák,

Risposte:


12

Confrontando le sinossi delle due versioni principali e recenti di OpenSSL, vorrei citare le pagine man.

OpenSSL 1.1.0

openssl enc -ciphername [-help] [-ciphers] [-in filename] [-out filename] [-pass arg] [-e] [-d] [-a/-base64] [-A] [-k password] [-kfile filename] [-K key] [-iv IV] [-S salt] [-salt] [-nosalt] [-z] [-md digest] [-p] [-P] [-bufsize number] [-nopad] [-debug] [-none] [-engine id]

OpenSSL 1.1.1

openssl enc -cipher [-help] [-ciphers] [-in filename] [-out filename] [-pass arg] [-e] [-d] [-a] [-base64] [-A] [-k password] [-kfile filename] [-K key] [-iv IV] [-S salt] [-salt] [-nosalt] [-z] [-md digest] [-iter count] [-pbkdf2] [-p] [-P] [-bufsize number] [-nopad] [-debug] [-none] [-rand file...] [-writerand file] [-engine id]

Ci sono ovviamente alcune differenze maggiori, vale a dire considerando questa domanda, ci sono questi due interruttori mancanti in 1.1.0:

  • pbkdf2

  • iter


Hai sostanzialmente due opzioni ora. Ignora l'avviso o regola il comando di crittografia in modo simile a:

openssl enc -aes-256-cbc -md sha512 -pbkdf2 -iter 100000 -salt -in InputFilePath -out OutputFilePath

Dove questi interruttori:

  • -aes-256-cbcè quello che dovresti usare per la massima protezione o la versione a 128 bit, il 3DES (Triple DES) è stato abbandonato qualche tempo fa, vedi Triple DES è stato deprecato dal NIST nel 2017 , mentre AES viene accelerato da tutte le moderne CPU di molto; puoi semplicemente verificare se la tua CPU ha l' istruzione AES-NI impostata per esempio usando grep aes /proc/cpuinfo; vincere, vincere

  • -md sha512 è la variante più veloce della famiglia di funzioni SHA-2 rispetto a SHA-256 mentre potrebbe essere un po 'più sicura; vincere, vincere

  • -pbkdf2: usa l' algoritmo PBKDF2 (Key-Derivation Function 2) basato su password

  • -iter 100000 sta sovrascrivendo il conteggio predefinito delle iterazioni per la password, citando la pagina man:

    Utilizzare un determinato numero di iterazioni sulla password per derivare la chiave di crittografia. Valori elevati aumentano il tempo necessario per forzare il file risultante. Questa opzione abilita l'uso dell'algoritmo PBKDF2 per derivare la chiave.


1
Quindi, come decodificarlo quando usi openssl enc -aes-256-cbc -md sha512 -pbkdf2 -iter 1000 -salt -in InputFilePath -out OutputFilePath
l mingzhi il

1
Aggiungendo semplicemente -dal comando:openssl enc -aes-256-cbc -md sha512 -pbkdf2 -iter 1000 -salt -d -in InputFilePath
Eduard Itrich,

1
Sono abbastanza sicuro che ci siano alcuni problemi con questo suggerimento. Secondo en.wikipedia.org/wiki/Key_derivation_function vuoi la variante più lenta dell'algoritmo di derivazione chiave. In altre parole, non usare sha512 Secondo en.wikipedia.org/wiki/PBKDF2 in the year 2000 the recommended minimum number of iterations was 1000, but the parameter is intended to be increased over time as CPU speeds increase - quindi consiglierei un posto tra 10.000 e 100.000 iterazioni anziché 1000.
oskarpearson

@oskarpearson Vero, l'ho letto proprio ora. Aggiornamento della risposta.
LinuxSecurityFreak

@oskarpearson Che hash mi consigliate allora?
Anthony
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.