постоянное соединение http и сессия ssl - PullRequest
7 голосов
/ 16 января 2011

HTTP - это протокол приложения, и базовое TCP-соединение может быть закрыто и вновь открыто без влияния на приложение HTTP (кроме производительности).
Используя HTTP1.1, мы используем постоянные соединения, но сервер или клиент могут закрыть соединение в любое время.
Для безопасности HTTP использует TCP через SSL / TLS.
Насколько я понимаю, SSL действует во многом как приложение, по крайней мере, именно так TCP "просматривает" SSL.
Мой вопрос: если основной сокет TCP закрывается в момент после установления безопасного соединения, означает ли это, что сеанс SSL становится недействительным, и стороны должны начать через рукопожатие ssl?
Или лежащее в основе соединение TCP не имеет отношения к сеансу TLS?

Спасибо!

Ответы [ 2 ]

5 голосов
/ 16 января 2011

означает ли это, что сеанс SSL становится недействительным, и стороны должны начать через рукопожатие ssl?

Да, сеанс SSL / TLS закончен, и рукопожатие должно быть восстановлено. TLS включает механизмы для возобновления сеанса (все еще будут выполняться некоторые операции, но меньше, чем при полном рукопожатии), но не все приложения поддерживают его.

См. http://ietf.org/rfc/rfc2246.txt, F.1.4 для технических деталей о возобновлении.

4 голосов
/ 07 октября 2011

http://publib.boulder.ibm.com/httpserv/ihsdiag/ihs_performance.html#SSL:

Сеанс SSL - это логическое соединение между клиентом и веб-сервером для безопасной связи.Во время установления сеанса SSL криптография с открытым ключом используется для обмена общим секретным главным ключом между клиентом и сервером, и определяются другие характеристики связи, такие как шифр.Позднее передача данных через сеанс шифруется и дешифруется с помощью криптографии с симметричным ключом с использованием общего ключа, созданного во время SSL-рукопожатия.

Генерация общего ключа очень загружает процессорЧтобы избежать генерации общего ключа для каждого соединения TCP, существует возможность повторного использования одного сеанса SSL для нескольких соединений.Клиент должен запросить повторное использование того же сеанса SSL в последующем квитировании, и на сервере должен быть кэширован идентификатор сеанса SSL.Когда эти требования соблюдены, рукопожатие для последующего TCP-соединения требует гораздо меньше ресурсов сервера (на 80% меньше в некоторых тестах).Все веб-браузеры общего пользования могут использовать один и тот же сеанс SSL.Однако пользовательские веб-клиенты иногда не имеют необходимой поддержки.

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