Как обработать рукопожатие при входе в SSL, а все остальное в текстовом формате? - PullRequest
0 голосов
/ 18 апреля 2011

Я использую OpenSSL.

Я могу вызвать SSL_set_fd, чтобы присоединить сокет к моему экземпляру ssl. Но что нужно сделать, когда я больше не хочу шифровать данные, но хочу продолжать общение через сокет?

Причина заключается в том, чтобы не подвергать вычислительные издержки SSL менее чувствительным данным. Я просто хочу защитить полномочия.

Редактировать : Я буду добавлять код аутентификации сообщений (MAC) ко всем незашифрованным сообщениям от клиента к серверу, чтобы предотвратить захват соединения и олицетворение пользователя.

Редактировать : класс .NET SslStream предоставляет удобный логический аргумент для конструктора, который контролирует, будет ли закрываться основной поток при закрытии SslStream. Я ищу что-то подобное в библиотеке OpenSSL C ++.

Ответы [ 3 ]

2 голосов
/ 18 апреля 2011

SSL (протокол) преднамеренно не дает возможности сделать это. Если это произойдет, после того как вы вернете сеанс из безопасного режима, сетевой злоумышленник сможет захватить TCP-соединение и выдать себя за аутентифицированного пользователя. И это в первую очередь победило бы цель шифрования учетных данных.

0 голосов
/ 05 мая 2011

На самом деле нет никакой точки при этом, потому что вычислительные издержки SSL передаются в начальной настройке сеанса, где используется асимметричная криптография. После настройки сеанса используются только симметричные алгоритмы, которые имеют тривиальные издержки.

0 голосов
/ 20 апреля 2011

После установления сеанса SSL / TLS для соединения его нельзя безопасно вернуть в небезопасное состояние. Если вы хотите зашифровать только часть сообщения, зашифруйте нужные вам данные, а не все соединение. Например, некоторые интернет-протоколы (электронная почта, HTTP и т. Д.) Используют для этого механизмы SASL.

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