Шифрование OpenSSL с ключом RSA в TLSv1.3 - PullRequest
0 голосов
/ 20 апреля 2020

Я не специалист по шифрованию, поэтому обращайтесь осторожно ...

На данный момент у нас есть приложение, которое использует OpenSSL для создания пары ключей RSA 2048 бит, а затем шифрует файл с использованием случайного пароля file:

$ openssl genrsa -out fileToEncrypt 2048
$ openssl rand -out password.file -base64 128
$ openssl enc -aes-256-cbc -salt -in fileToEncrypt -out secure.file -pass file:password.file

Я смотрю на команду шифрования ( -aes-256-cb c) и пытаюсь дать перекрестную ссылку на команду, которую я использую для выяснения версия SSL / TLS, к которой это относится. Из того, что я вижу, если я запускаю:

$ openssl ciphers -v | awk {'print $1 " using " $2}' | grep "AES-256-CBC"

, я вижу, что получаю два ответа:

SRP-RSA-AES-256-CB C -SHA с использованием SSLv3

SRP-AES-256-CB C -SHA с использованием SSLv3

Полагаю, я мог бы с уверенностью сказать, что мы используем SSLv3.

Итак, это говорит мне, где я сейчас нахожусь. Тем не менее, моя цель состоит в том, чтобы получить хотя бы TLS1.2 и, возможно, даже TLS1.3, поэтому я начал путешествие, которое, надеюсь, дало бы мне несколько ответов, используя обратный лог c, то есть:

  1. Запуск шифров OpenSSL для поиска записей TLS1.3
  2. Убедитесь, что параметр "en c" для этих записей будет

Итак, я запустил следующее:

openssl ciphers -v | awk {'print $1 " using " $2}' | egrep "TLSv1.3$"

Какая игра мне:

TLS_AES_256_GCM_SHA384 с использованием TLSv1.3

TLS_CHACHA20_POLY1305_SHA256 с использованием TLSv1.3

TLS_M_S_S_S_S_S_S_S_S_S_S_S_SF 1039 *

Поэтому я смело пробую каждую из следующих команд, но безуспешно ...

$ openssl enc -aes-256-gcm-sha384 -salt -in meshinstall.sh -out payload.enc -pass file:passwordFile
$ openssl enc -aes-128-gcm-sha256 -salt -in meshinstall.sh -out payload.enc -pass file:passwordFile

... с "Даны дополнительные аргументы. En c: Use - «Справка для резюме» в качестве ответов. Итак, я вижу, какие параметры я могу использовать с параметром en c, но, похоже, ничего не хочет работать с тем, что мне нужно для TLS1.3, а затем и для TLS1.2.

Есть ли общее правило заставить эти команды работать согласно определенному набору шифров? Я рад, что копаюсь, но я не понимаю, почему, когда я спрашиваю openssl о шифрах, которые он может использовать (шифры openssl), я не могу понять, каковы их соответствующие Параметр "en c" будет иметь значение?

Может, кто-нибудь подскажет, пожалуйста?

Спасибо !!

[Редактировать: я пытаюсь это сделать в Ubuntu 16 / 18 с OpenSSL 1.1.0h и 1.1.1 соответственно]

[Редактировать: только что найдено список openssl -cipher-алгоритмов , но все еще не получается заставить работать "openssl en c -id-aes256-GCM ... "возвращает (новую) ошибку: шифры AEAD не поддерживаются" ??? !!!]

...