Безопасное шифрование файлов openSSL - PullRequest
0 голосов
/ 26 октября 2018

Я хочу надежно зашифровать гигабайты данных с помощью OpenSSL (несколько файлов).

Я использую эту команду (openSSL 1.0.2p-i386-win32):

openssl.exe enc -e -aes-256-ctr -in secret.txt -out encrypted.txt -salt -pass pass:AsIDHnd19!&@#@!#lJglG1f31!

Myвопросы:

  1. Какой режим использовать?CTR или CBC?(CTR для скорости?)
  2. Как генерировать случайные IV?Например, в скрипте PowerShell.(Я использую Pshell v2.0)
  3. Достаточно ли безопасна предоставленная мною команда?
  4. Могу ли я использовать одну и ту же соль для каждого файла для лучшей скорости шифрования?
  5. Действительно ли случайный пароль в 20-30 символов компенсирует недостаток IV?

РЕДАКТИРОВАТЬ:

Я скачал более новую версию с возможностью использовать PBKDF2 (openSSL 1.1.1-win32-mingw):

openssl.exe enc -e -aes-256-ctr -in secret.txt -out encrypted.txt -salt -pass pass:AsIDHnd19!&@#@!#lJglG1f31! -pbkdf2 -p

С помощью -p я вижу соль, ключ и IV, которые используются для шифрования файла.Все 3 параметра меняются каждый раз, когда я запускаю openssl, даже если для одного и того же файла и с одним и тем же проходом.

Означает ли это, что я в безопасности сейчас, а IV - случайный?

1 Ответ

0 голосов
/ 26 октября 2018
  1. CBC и CTR должны иметь одинаковую скорость.
  2. Если не указано, IV генерируется из вашего пароля с pbkdf2.
  3. CTR рекомендуется для CBC.
  4. Использование той же соли не рекомендуется.Соль, используемая для предотвращения атак на пароль, из документации OpenSSL.

Без опции -salt можно проводить эффективные атаки по словарю на пароль и атаковать зашифрованные данные потокового шифра.Причина этого в том, что без соли один и тот же пароль всегда генерирует один и тот же ключ шифрования.Когда используется соль, первые восемь байтов зашифрованных данных зарезервированы для соли: она генерируется случайным образом при шифровании файла и считывается из зашифрованного файла при его дешифровании.

IV не недостаток.OpenSLL генерирует для вас, если не дано.
...