Я пытаюсь сделать ручное извлечение / шифрование / дешифрование данных с помощью инструмента командной строки openssl
.
Я просматривал RFC5246, чтобы понять, что мне нужно делать. Мне не совсем ясно, смогу ли я сделать этот шаг с помощью этого инструмента. Я предполагаю, что закрытый ключ в объяснении является личным ключом, сгенерированным, когда я создал свой самозаверяющий сертификат.
Когда RSA используется для аутентификации сервера и обмена ключами, 48-байтовый pre_master_secret генерируется клиентом, шифруется под открытым ключом сервера и отправляется на сервер. Сервер использует свой закрытый ключ для расшифровки pre_master_secret. Затем обе стороны преобразуют pre_master_secret в master_secret, как указано выше.
Может кто-нибудь сказать мне, если мои предположения верны. Может ли инструмент командной строки openssl
использоваться и поставляться с закрытым ключом моего сервера и зашифрованным pre_master_secret от клиента для генерации ключа pre_master для сервера, чтобы его можно было использовать для создания мастер-ключа?
Если это так, я не уверен, как это сделать, потому что я не очень знаком с инструментом.
Еще одна вещь, на которую я должен обратить внимание, это то, что набор шифров, с которым я работаю, это TLS_RSA_WITH_AES_256_CBC_SHA, и я вижу в Wireshark, что pre_master_secret от клиента имеет длину 256 байт.