Время жизни сеанса SSL в https - PullRequest
8 голосов
/ 05 января 2010

У нас есть активное (но дружеское) обсуждение между коллегами о времени жизни сеанса SSL, лежащего в основе связи https.

Когда я устанавливаю соединение https с сервером с помощью обычного браузера, базовый протокол ssl создает сеанс (включая общий секрет) с использованием асимметричного шифрования, остальная часть связи шифруется с использованием (более быстрого) симметричного шифрования.

Вопрос: при последующих запросах https (щелкните ссылку) к тому же серверу снова используется старый сеанс ssl, что позволяет избежать издержек асимметричного шифрования при создании ключа сеанса? Или требуется новое асимметричное зашифрованное рукопожатие ssl для установления сеанса ssl?

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

Так как мы здесь кучка придурков, ссылка на какой-то авторитетный источник будет признательна.

Ответы [ 3 ]

10 голосов
/ 23 октября 2012

Протестировано это с Chrome:

перейти к https://www.americanexpress.com. netstat показывает:

$ netstat -n -p tcp|grep 184.86.149.155
tcp4       0      0  10.177.78.58.50311     184.86.149.155.443     ESTABLISHED
tcp4       0      0  10.177.78.58.50310     184.86.149.155.443     ESTABLISHED
tcp4       0      0  10.177.78.58.50309     184.86.149.155.443     ESTABLISHED

При переходе по другим ссылкам на сайте netstat показывает:

$ netstat -n -p tcp|grep 184.86.149.155
tcp4       0      0  10.177.78.58.50311     184.86.149.155.443     ESTABLISHED
tcp4       0      0  10.177.78.58.50310     184.86.149.155.443     ESTABLISHED
tcp4       0      0  10.177.78.58.50309     184.86.149.155.443     ESTABLISHED

Сессия была поддержана. Когда я закрыл вкладку браузера и снова открыл вкладку, было открыто другое соединение:

$ netstat -n -p tcp|grep 184.86.149.155
tcp4       0      0  10.177.78.58.50398     184.86.149.155.443     ESTABLISHED
tcp4       0      0  10.177.78.58.50311     184.86.149.155.443     ESTABLISHED
tcp4       0      0  10.177.78.58.50310     184.86.149.155.443     ESTABLISHED
tcp4       0      0  10.177.78.58.50309     184.86.149.155.443     ESTABLISHED

Может показаться, что современные браузеры используют те же тайм-ауты активности активности, что и http. Эти таймауты можно посмотреть здесь:

http://gabenell.blogspot.com/2010/11/connection-keep-alive-timeouts-for.html

4 голосов
/ 05 января 2010

См. Раздел 2.2 из http://www.ietf.org/rfc/rfc2818.txt и раздел 8.1 из http://www.ietf.org/rfc/rfc2616.txt

По сути, сеанс SSL ДОЛЖЕН поддерживаться, пока клиент поддерживает постоянное соединение.

Длябольше информации о реализации постоянных соединений в популярных браузерах см. http://en.wikipedia.org/wiki/HTTP_persistent_connection#Use_in_web_browsers

3 голосов
/ 05 января 2010

Если ваш браузер поддерживает возобновление сеанса и сервер кэшировал сеанс, то вы можете продолжить сеанс между соединениями, GNUTLS поддерживает это, и вы можете увидеть демонстрацию здесь:

https://test.gnutls.org:5556/

...