Не мог дешифровать текстовые файлы с openssl на Ubuntu 18.04

Я не могу дешифровать много текстовых файлов, с которыми я зашифровал openssl на Ubuntu 16.04. Я всегда получаю это сообщение об ошибке:

$ openssl des3 -d < ~/ISRIC/credentials.txt.des3.old > ~/temp/credentials.txt.old.2
enter des-ede3-cbc decryption password:
bad decrypt
139771261990464:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:../crypto/evp/evp_enc.c:536:

Я вполне уверен, пароль является правильным.В чем проблема?

4
задан 22 August 2018 в 10:37

3 ответа

Основанный на пароле алгоритм шифрования, используемый в openssl измененный от MD5 в версии 1.0.2 (поставленный с Ubuntu 16.04) к SHA256 в версии 1.1.0 (Ubuntu 18.04). По этой причине любым файлам, зашифрованным на Ubuntu 16.04, не удается быть дешифрованными на Ubuntu 18.04. Решение состоит в том, чтобы установить предыдущую версию openssl, дешифруйте файлы и encryt их назад снова с более новой версией. Шаг за шагом:

Запустите путем загрузки более старой версии openssl (это - сборка amd64, поскольку другие сборки проверяют packages.ubuntu.com):

wget http://security.ubuntu.com/ubuntu/pool/main/o/openssl/openssl_1.0.2g-1ubuntu13.6_amd64.deb

Теперь установите пакет непосредственно с dpkg, это отключит более новую версию:

$ sudo dpkg -i openssl_1.0.2g-1ubuntu13.6_amd64.deb

Удостоверьтесь, что Вы получили правильную версию:

$ openssl version
OpenSSL 1.0.2g  1 Mar 2016 (Library: OpenSSL 1.0.2n  7 Dec 2017)

И теперь дешифруйте файл:

$ openssl des3 -d < secret.des3 > secret.txt

Затем установите последнюю сборку openssl, apt опция:

$ sudo apt install openssl

Удостоверяясь это - последняя версия:

$ openssl version
OpenSSL 1.1.0g  2 Nov 2017

И затем зашифруйте файл снова с последней версией:

$ openssl des3 < secret.txt > secret.des3

Наконец удалите .deb файл загрузил в начале:

$ rm openssl_1.0.2g-1ubuntu13.6_amd64.deb
2
ответ дан 1 December 2019 в 09:02

Для файлов, которые уже шифруются, можно использовать md опция вызвать старое md5 метод пароля.

Это устранило мою проблему с файлами, зашифрованными с 1.0.2 с aes-256-cbc, который не дешифрует на 18,04 (openssl 1.1.0 +).

Мои предыдущие дешифруют:

cat encfile | openssl enc -d -aes-256-cbc -base64 >plainfile

Мои новые дешифруют на 18,04:

cat encfile | openssl enc -md md5 -d -aes-256-cbc -base64 >plainfile

Примечание:
Это не будет работать с файлами, зашифрованными на 18,04 (openssl 1.1.0 г +), поскольку они будут использовать более новый метод пароля SHA по умолчанию, как Luis de Sousa отмечает.

Ссылки:
https://askubuntu.com/a/1067765/873241 (ответ Luis de Sousa)
https://bugzilla.redhat.com/show_bug.cgi? id=1520084
https://github.com/fastlane/fastlane/issues/9542

7
ответ дан 1 December 2019 в 09:02

Другой ответ по существу правильный. хотя другие вещи изменились в этих версиях (v1.1.0 и v1.1.1), о которых полезно знать.

Во-первых, изменился дайджест хеширования паролей по умолчанию, который изменился с md5 на sha512

И, во-вторых, был добавлен "-pbkdf2" "-iter", который давно был необходим. Однако количество итераций по умолчанию слишком мало, и его следует установить как можно выше, чтобы это не слишком раздражало. Достаточно большой, чтобы занять 1/2 секунды, как правило, приемлем как для шифрования, так и для дешифрования, но очень затрудняет подбор пароля методом грубого принудительного подбора.

Проблема в том, что теперь у нас есть все эти новые параметры и значения по умолчанию, а также различные дайджесты и шифры, вам нужно запомнить все эти параметры, чтобы вы могли расшифровать зашифрованный файл. То есть любые варианты шифрования, которые были выбраны, должны использоваться для расшифровки. Однако openssl сохраняет только некоторую «файловую магию» (например, «Salted__» в начале файла и случайную «соль», которая использовалась с зашифрованным файлом.Это оставляет его до вас, чтобы помнить все остальное!

Aespipe — это старая программа, которая обошла это, сохранив часть этой информации в качестве дополнительного заголовка к зашифрованным данным, но сейчас она устаревает, и ее формат не допускает новых опций или легкого расширения.

В качестве альтернативы я создал новый скрипт «keepout» в качестве оболочки вокруг «openssl enc», чтобы сохранить те дополнительные параметры, которые необходимы для запоминания того, как расшифровывать этот конкретный файл, даже в виде более новых параметров, шифров или большего размера. итерации используются при шифровании. По сути, он сохраняет параметр openssl, необходимый для данных.

https://antofthy.gitlab.io/software/#keepout

0
ответ дан 23 September 2020 в 00:01

Другие вопросы по тегам:

Похожие вопросы: