Подготовка двух данных приложения с одинаковым состоянием SSL_CTX - PullRequest
0 голосов
/ 07 октября 2018

Есть ли способ подготовить две записи данных приложения с одинаковым состоянием SSL_CTX (с одинаковым порядковым номером и состоянием шифра) и затем записать только одну из них в fd?Или, в качестве альтернативы, какие-либо методы для экспорта / импорта состояния SSL_CTX?

1 Ответ

0 голосов
/ 07 октября 2018

Контекст SSL (SSL_CTX) не является состоянием текущего сеанса TLS.Вместо этого это только общий набор настроек, которые можно использовать для нескольких сеансов TLS.Он еще не содержит никаких порядковых номеров или обмененных ключей.См. Что такое контекст SSL? .

То, что вы, вероятно, имеете в виду, это состояние самого сеанса SSL, который содержит набор шифров для использования, порядковые номера, ключи шифрования и т. Д. Этот сеанс не готовится заранее, но он является результатомрукопожатие TLS между клиентом и сервером.Поскольку он связан с базовым соединением, в котором было выполнено квитирование TLS (обычно это соединение TCP, но теоретически это может быть также любой поток данных).

Я не знаю ни одного метода, предлагаемого OpenSSL для сериализации и десериализации полного состояния запущенного сеанса SSL, т.е. всего, что необходимо для продолжения работы с существующим соединением TLS.Что можно сделать, это разветвить текущий процесс, и в этом случае у дочернего процесса будет точная копия состояния сеанса.Не состояния в дочернем и родительском не синхронизированы, то есть только одно из них должно взаимодействовать с сеансом SSL.

Что также можно сделать, это получить объект SSL_SESSION.Это не описывает полностью состояние текущего сеанса SSL (т.е. нет порядковых номеров), но включает в себя такие вещи, как шифр и ключи шифрования.Этот объект может быть сериализован с использованием i2d_SSL_SESSION и может использоваться для возобновления того же сеанса в другом процессе - при условии, что сервер его поддерживает.Один и тот же SSL_SESSION может использоваться одновременно несколькими подключениями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...