Die Verschlüsselung / Entschlüsselung funktioniert nicht gut zwischen zwei verschiedenen OpenSSL-Versionen

11

Ich habe openssl-1.1.0 heruntergeladen und kompiliert.

Ich kann mit der gleichen exe von openssl verschlüsseln und entschlüsseln (wie auch hier )

%Vor%

Diese openssl verwendet: libcrypto.so.1.1, libssl.so.1.1

Wenn ich versuche, mit dem auf meinem ubuntu installierten openssl zu entschlüsseln, das benutzt: /lib/x86_64-linux-gnu/libssl.so.1.0.0, /lib/x86_64-linux-gnu/libcrypto.so.1.0.0

Ich bekomme einen Fehler:

%Vor%

Was kann das verursachen? Danke

    
hudac 22.09.2016, 11:09
quelle

3 Antworten

37

Der Standard-Digest wurde in Openssl 1.1 von MD5 auf SHA256 geändert

Versuchen Sie es mit -md md5

%Vor%

Die hässlichen Details:

Das eingegebene Passwort wird nicht wie bei aes (oder einer anderen Verschlüsselung) verwendet, sondern der Befehl leitet implizit einen Schlüssel daraus ab. Die Schlüsselableitung verwendet den Nachrichtenauszug, der in openssl 1.1 geändert wurde Verwenden Sie SHA256 nicht als Standardauszug .

Wenn Sie das Passwort einfach behalten wollen und nicht mit dem Keying-Kampf (-K, -iv) herumspielen wollen, erzwingen Sie den gleichen Digest mit -md

    
idog 22.09.2016, 14:08
quelle
3

Ich habe die AES Verschlüsselung und Entschlüsselung mit der Version 1.1.0a (heruntergeladen von openssl.org) und der Version 1.0.2g-fips (von meinem ubuntu 16.04) getestet

Wenn Sie die Option -p mit 2 verschiedenen Versionen von openssl verwenden, unterscheiden sich die IV und der Schlüssel:

%Vor%

Ich vermute eine andere Ableitung von Schlüssel und IV basierend auf dem Salz mit den 2 Versionen.

Wenn Sie diesen Entschlüsselungsfehler loswerden möchten, können Sie die Option -salt entfernen und die Optionen -K für den Schlüssel und -iv in Ihrem openssl-Befehl verwenden.

    
oliv 22.09.2016 12:02
quelle
0

Dieses Problem kann auch zwischen OpenSSL 1.1 und LibreSSL auftreten. In diesem Fall und in anderen Fällen, in denen sicherere Nachrichtenauszüge verfügbar sind, sollten Sie die Verwendung von -md md5 zum Verschlüsseln neuer Dateien vermeiden, da der MD5-Algorithmus umfangreiche Sicherheitslücken aufweist.

Sie sollten stattdessen -md sha256 oder einen anderen sichereren Nachrichtenauszug verwenden, der von allen Versionen unterstützt wird. -md md5 sollte nur zur Entschlüsselung alter Dateien verwendet werden und sollte idealerweise mit sha256 erneut verschlüsselt werden. Dies wird auch in den OpenSSL-FAQ erwähnt.

Um zu überprüfen, welche Nachrichtenauszüge von den verschiedenen Versionen, die Sie gerade spielen, unterstützt werden, führen Sie openssl help :

aus

LibreSSL 2.2.7 (im Lieferumfang von macOS 10.13 High Sierra enthalten):

%Vor%

OpenSSL 1.1f:

%Vor%     
Aaron Brager 31.03.2018 15:03
quelle