Как зашифровать файл, используя OpenSSL и AES-256 с SHA-256?

1984
Vlastimil

Система: Linux Mint 18.3 Cinnamon 64-bit.

OpenSSL: 1.0.2 г

Обычно я бы зашифровал файл следующим образом:

openssl enc -aes-256-cbc -salt -in somefile -out somefile.enc 

Но мне интересно, какой алгоритм будет использоваться для хеширования моего пароля и могу ли я его изменить?

0
Dupe https://superuser.com/questions/455463/openssl-hash-function-for-generating-aes-key за исключением того, что устарел до сих пор; для получения полной информации см. https://crypto.stackexchange.com/questions/3298/is-there-a-standard-for-openssl-interoperable-aes-encryption. Обратите внимание, что любой отдельный хеш является плохим PBKDF; SHA-256 не заметно лучше, чем MD5. И `-salt` был по умолчанию более десяти лет, почти два. dave_thompson_085 6 лет назад 0
@ dave_thompson_085: OpenSSL _does_ использует KDF вместо простого хэша, хотя он все еще кажется доморощенным и довольно слабым (см. EVP_BytesToKey). grawity 6 лет назад 0
@ Grawity мой ответ на крипто-QI, связанный, объясняет это в деталях. EVP_BytesToKey - это подстройка PBKDF1 от PKCS5, но в командной строке используется EVP_BytesToKey с числом итераций 1, поэтому он выполняет только один хэш на выходной блок, на самом деле он НЕ выполняет итерацию, как PBKDF. Медведь соглашается: https://security.stackexchange.com/questions/29106/openssl-recover-key-and-iv-by-passphrase dave_thompson_085 6 лет назад 1
Властимил: Вы не используете это для пуленепробиваемой безопасности? Рассмотрим вместо этого GPG / PGP, это все равно должно поставить в тупик крупнейших игроков. @ dave_thompson_085 Они все еще повторяются только один раз? Yowza. Отойти от MD5 - это как минимум шаг ребенка. Они отслеживают используемый хэш и шифрование, или вам все еще нужно помнить себя? (Я тоже [процитировал медведя] (https://stackoverflow.com/questions/28247821/openssl-vs-gpg-for-encrypting-off-site-backups/28248800#28248800) ;-) Xen2050 6 лет назад 0

1 ответ на вопрос

0
Vlastimil

Я узнал случайно, здесь, что для opensslверсии 1.1.0:

-md digest Use the specified digest to create the key from the passphrase. The default algorithm is sha-256. 

Таким образом, нет смысла указывать алгоритм дайджеста сообщения для более новой версии, opensslпоскольку он уже использует SHA-256.

Но так как в моей системе есть opensslверсия 1.0.2g, я вырыл дальше и выяснил, здесь, что:

... In OpenSSL 1.1.0 we changed from MD5 to SHA-256 ... 

По сути, это означает, opensslчто по умолчанию я буду использовать старый и устаревший MD5.

К счастью, это можно изменить на SHA-256 с opensslверсией 1.0.2g:

openssl enc -aes-256-cbc -md sha256 -salt -in somefile -out somefile.enc 

Если у вас более старая opensslверсия, чем у меня, вы можете попробовать -md sha1, если вышеперечисленное не помогло.

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