Как должен я изменять шифрование согласно ***, ПРЕДУПРЕЖДАЮЩЕМУ: ключевая деривация устаревшая используется

Когда я шифрую или дешифрую файл, я добираюсь *** WARNING : deprecated key derivation used. Using -iter or -pbkdf2 would be better.

Я не понимаю то, что это означает, как я должен изменить свои процедуры.Вы не могли бы мне помочь? Я шифрую с openssl des3 <input >output.des3 и дешифруйте с openssl des3 -d <input.des3 >output

О среде

Ubuntu 18.10

~$ openssl version OpenSSL 1.1.1 11 Sep 2018

13
задан 16 November 2018 в 15:40

2 ответа

При сравнении Synopsys двух основных и последних версий OpenSSL позвольте мне заключить страницы справочника в кавычки.

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]

Очевидно, существуют некоторые большие различия, а именно, рассматривая этот вопрос, существуют эти два переключателя, отсутствующие в 1.1.0:

  • pbkdf2

  • iter


У Вас есть в основном две опции теперь. Или проигнорируйте предупреждение или скорректируйте свою команду шифрования к чему-то как:

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

Где эти переключатели:

  • -aes-256-cbc то, что необходимо использовать для максимальной защиты или 128-разрядной версии, 3DES (Утройтесь, DES) отказался некоторое время назад, в то время как AES ускоряется всеми современными центральными процессорами много; можно просто проверить, имеет ли ЦП систему команд AES-NI, например, с помощью grep aes /proc/cpuinfo; победа, победа

  • -md sha512 более быстрый вариант семейства функций SHA-2 по сравнению с SHA-256, в то время как это могло бы быть немного более безопасно; победа, победа

  • -pbkdf2: используйте PBKDF2 (Основанная на пароле Ключевая Функция Деривации 2) алгоритм

  • -iter 1000 переопределяет количество по умолчанию повторений для пароля, заключая страницу справочника в кавычки:

    Используйте данное количество повторений на пароле в получении ключа шифрования. Высокие значения увеличивают время, требуемое до "в лоб" получающийся файл. Эта опция позволяет использованию алгоритма PBKDF2 получить ключ.

10
ответ дан 23 November 2019 в 03:23

Другой ответ по существу правильный. хотя другие вещи изменились в этих версиях (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

4
ответ дан 24 May 2020 в 06:17

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

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