/ / OpenSSL schlecht entschlĂĽsselt zwischen 0.9.8o und 1.1.0f - debian, ssl, encoding, openssl, debian-stretch

OpenSSL entschlĂĽsselt schlecht zwischen 0.9.8o und 1.1.0f - debian, ssl, encoding, openssl, debian-stretch

Ich verwende OpenSSL, um Klartext zu kodieren und auf mehreren Remote-Servern zu dekodieren. Während ich meine Skripte testete, um die Kompatibilität mit Debian 9 Stretch sicherzustellen, stellte ich einen Fehler fest.

So teste ich: Debian 6, OpenSSL 0.9.8o, kodiert einen String:

# echo "Hi guys" | openssl des3 -salt -a -k "testkey"
U2FsdGVkX1+I3EBhXjqrm+MJOmKRpj+Y5TtNJaJjI/s=

Dekodierung auf demselben Server:

# echo "U2FsdGVkX1+I3EBhXjqrm+MJOmKRpj+Y5TtNJaJjI/s=" | openssl des3 -salt -a -d -k "testkey"
Hi guys

Debian 9, OpenSSL 1.1.0f, dekodiert den String:

# echo "U2FsdGVkX1+I3EBhXjqrm+MJOmKRpj+Y5TtNJaJjI/s=" | openssl des3 -salt -a -d -k "testkey"
bad decrypt
140259873273088:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:../crypto/evp/evp_enc.c:535:
z���AR�

Während der Dekodierung wird gearbeitet an:

Debian 7, OpenSSL 1.0.1t:

$ echo "U2FsdGVkX1+I3EBhXjqrm+MJOmKRpj+Y5TtNJaJjI/s=" | openssl des3 -salt -a -d -k "testkey"
Hi guys

Debian 8, OpenSSL 1.0.1t

# echo "U2FsdGVkX1+I3EBhXjqrm+MJOmKRpj+Y5TtNJaJjI/s=" | openssl des3 -salt -a -d -k "testkey"
Hi guys

Also habe ich getestet, um auf dem Debian 9 OpenSSL 1.1.0f-Testserver zu codieren:

# echo "Hi guys" | openssl des3 -salt -a -k "testkey"
U2FsdGVkX1+p/LDtOotR/gmVTfGL+LabNPvLxKqwbOk=

Und das Dekodieren auf demselben Server funktioniert:

# echo "U2FsdGVkX1+p/LDtOotR/gmVTfGL+LabNPvLxKqwbOk=" | openssl des3 -salt -a -d -k "testkey"
Hi guys

Auf den 3 anderen Servern funktioniert die Dekodierung jedoch nicht: Debian 6, OpenSSL 0.9.8o:

# echo "U2FsdGVkX1+p/LDtOotR/gmVTfGL+LabNPvLxKqwbOk=" | openssl des3 -salt -a -d -k "testkey"
bad decrypt
12605:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:evp_enc.c:330:
��Rv��

Debian 7, OpenSSL 1.0.1t:

$ echo "U2FsdGVkX1+p/LDtOotR/gmVTfGL+LabNPvLxKqwbOk=" | openssl des3 -salt -a -d -k "testkey"
bad decrypt
139771367589544:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:evp_enc.c:516:
â–’â–’Rvâ–’â–’

Debian 8, OpenSSL 1.0.1t:

# echo "U2FsdGVkX1+p/LDtOotR/gmVTfGL+LabNPvLxKqwbOk=" | openssl des3 -salt -a -d -k "testkey"
bad decrypt
139719827605136:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:evp_enc.c:516:
â–’â–’Rvâ–’â–’

Ich habe die OpenSSL - Abhängigkeiten überprüft und auf mehreren Servern für jede Version getestet.

Antworten:

16 fĂĽr Antwort â„– 1

Sorry Leute, einige Minuten später fand ich die Antwort auf Debian Bug Tracker von Sebastian Andrzej Siewior:

Debian-Fehlerbericht # 843064

bah. Sie haben den Standard-Digest von md5 auf sha256 geändert, um den zu erstellen Schlüssel. Wenn Sie "-md md5" zu Ihrer 1.1 hinzufügen. openssl dann klappt es. Das Umgekehrt benötigen Sie "-md sha256", um 1.0 zufrieden zu stellen.

Wenn Sie also unter Debian 9 "-md md5" hinzufügen, funktioniert dies auf älteren OpenSSL-codierten Strings:

# echo "U2FsdGVkX1+I3EBhXjqrm+MJOmKRpj+Y5TtNJaJjI/s=" | openssl des3 -salt -md md5 -a -d -k "testkey"
Hi guys

Und durch Hinzufügen von "-md sha256" unter älteren Debian-Versionen funktioniert die neuere OpenSSL-codierte Zeichenfolge auch:

# echo "U2FsdGVkX1+p/LDtOotR/gmVTfGL+LabNPvLxKqwbOk=" | openssl des3 -md sha256 -salt -a -d -k "testkey"
Hi guys

Den Thread behalten, um Zeit fĂĽr andere zu sparen :)