Wie soll ich die Verschlüsselung gemäß *** ändern? WARNUNG: Veraltete Schlüsselableitung wird verwendet

14

Beim Ver- oder Entschlüsseln einer Datei erhalte ich *** WARNING : deprecated key derivation used. Using -iter or -pbkdf2 would be better.

Ich verstehe nicht, was das bedeutet, wie ich meine Abläufe ändern soll. Kannst du mir helfen? Ich ver- openssl des3 <input >output.des3und entschlüssle mit openssl des3 -d <input.des3 >output

Über die Umwelt

Ubuntu 18.10

~$ openssl version OpenSSL 1.1.1 11 Sep 2018

Tommy Pollák
quelle
1
3DES als Verschlüsselungsmethode wird eingestellt. Die Warnung schlägt nur vor, dass Sie eine andere Methode verwenden. Weitere Informationen finden Sie unter crypto.stackexchange.com/questions/51629/… .
guiverc
1
Dieser Fehler tritt für alle Arten von Chiffren auf. Sie müssen -pbkdf2 sowohl zum Ver- als auch zum Entschlüsseln von Befehlen hinzufügen.
Daniele Dellafiore
Entschuldigung, aber können Sie uns bitte ein Beispiel geben, wie man -pbkdf2 zu den Befehlen hinzufügt? Ich verstehe nicht, wie es hinzugefügt werden soll.
Tommy Pollák
1
In Ihrem Beispiel, brauchen Sie nur zu tun , openssl des3 -e -pbkdf2 < input > output.des3und openssl des3 -d -pbkdf2 < input.des3 > output. Ich stimme auch dem ersten Kommentar zu, dass Sie eine andere Blockverschlüsselung anstelle von 3DES verwenden sollten (DES ist aus dem Jahr 1977). Eine einfache Möglichkeit, dies zu tun, besteht darin, einfach die Stelle auszutauschen, aes256an der Sie derzeit über des3diese Befehle verfügen , um AES zu verwenden ( 256-Bit-AES entspricht den aktuellen Sicherheitsstandards.
Joelhardi
Vielen Dank! Jetzt funktioniert es und ohne Warnung mit aes256. Damit ist die Frage beantwortet.
Tommy Pollák

Antworten:

11

Lassen Sie mich die Manpages zitieren, indem ich die Synopsys der beiden Hauptversionen und der jüngsten Versionen von OpenSSL vergleiche.

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]

Es gibt offensichtlich einige größere Unterschiede, nämlich wenn man diese Frage betrachtet, fehlen in 1.1.0 diese beiden Schalter:

  • pbkdf2

  • iter


Sie haben jetzt grundsätzlich zwei Möglichkeiten. Ignorieren Sie die Warnung oder passen Sie Ihren Verschlüsselungsbefehl an:

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

Wo diese Schalter:

  • -aes-256-cbcist das, was Sie sollen vor einiger Zeit aufgegeben wurde für maximalen Schutz oder die 128-Bit - Version, das 3DES (Triple DES) verwenden, siehe Triple - DIE von NIST veraltet im Jahr 2017 wurde , während AES von allen modernen CPUs durch eine Menge beschleunigt wird; Sie können einfach überprüfen, ob Ihre CPU über den AES-NI-Befehlssatz verfügt, indem Sie beispielsweise Folgendes verwenden grep aes /proc/cpuinfo: gewinnen, gewinnen

  • -md sha512 ist die schnellere Variante der SHA-2-Funktionsfamilie im Vergleich zu SHA-256, obwohl sie möglicherweise etwas sicherer ist. gewinnen, gewinnen

  • -pbkdf2: Verwenden Sie den PBKDF2 -Algorithmus (Password-Based Key Derivation Function 2)

  • -iter 100000 überschreibt die Standardanzahl der Iterationen für das Kennwort unter Angabe der Manpage:

    Verwenden Sie eine bestimmte Anzahl von Iterationen für das Kennwort, um den Verschlüsselungsschlüssel abzuleiten. Hohe Werte erhöhen die Zeit, die erforderlich ist, um die resultierende Datei zu brachialisieren. Diese Option ermöglicht die Verwendung des PBKDF2-Algorithmus zum Ableiten des Schlüssels.

LinuxSecurityFreak
quelle
1
Dann, wie es zu entschlüsseln, wenn Sie openssl enc -aes-256-cbc -md sha512 -pbkdf2 -iter 1000 -salt -in InputFilePath -out OutputFilePath
l Mingzhi
1
Durch einfaches Hinzufügen -dzum Befehl:openssl enc -aes-256-cbc -md sha512 -pbkdf2 -iter 1000 -salt -d -in InputFilePath
Eduard Itrich
1
Ich bin mir ziemlich sicher, dass es einige Probleme mit diesem Vorschlag gibt. Wie pro en.wikipedia.org/wiki/Key_derivation_function möchten Sie die langsamste Variante Schlüsselableitungsalgorithmus. Mit anderen Worten, verwenden Sie sha512 nicht. Wie in en.wikipedia.org/wiki/PBKDF2 beschrieben 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 - ich würde also zwischen 10.000 und 100.000 Iterationen anstelle von 1000
empfehlen
@oskarpearson Stimmt, ich habe es gerade gelesen. Antwort wird aktualisiert.
LinuxSecurityFreak