2009-04-29 4 views
2


Как долго сохраняется SSL-соединение между клиентом и сервером?

Я только начал изучать SSL и мальчик это сбивает с толку


Q1 - Как долго SSL соединение между клиентом и сервером сохранялось? До тех пор, пока клиент не перейдет к другому URL-адресу или ...?


Q2

A) Предположим, что клиент (браузер) устанавливает соединение SSL с сервером IIS.

Теперь, как IIS вычисляет каждый ответ, что он имеет дело с тем же аутентифицированным клиентом/браузером и, следовательно, он уже имеет SSL-соединение, установленное с этим клиентом?


B) Предполагая, что соединение SSL не теряется, если браузер прибои в какой-то другой URL:

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

Как сервер IIS сможет выяснить, что текущий запрос на страницу поступает от клиента, у которого уже установлено соединение SSL с этой страницей, и, следовательно, будет использовать уже установленное соединение SSL?


Thanx


EDIT:


  • Предполагая, что браузер прибои в какой-то другой URL и если при возврате на исходную страницу соединение SSL все еще установлено, как браузер «помнит» значение ключа симметричного шифрования, которое обе стороны использовали для связи?


  • Я понимаю, что это зависит от того, какой браузер вы используете, но с IE и Firefox, я предполагаю, что, когда вы закрываете браузер, он посылает connection.close() (или что-то в этой связи) на сервер и, следовательно, соединение SSL немедленно закрывается?


  • Но если вы просматриваете прочь какой-то другой URL, а затем, если браузер не отправляет уведомление на сервер, не будет, то соединение SSL остается установлено в течение некоторого времени (даже 10 или более минут), и, таким образом, браузер может легко вернуться к этой странице, как будто ничего не произошло ?!


Я ценю это

ответ

1

пост-редактирования ответов:

То, что я думаю, что вам может отсутствовать в том, что SSL связан неразрывно с TCP. У вас не может быть SSL-соединение с сервером, который не работает поверх TCP-соединения. Вы ломаете его, вы ломаете другого.

Большинство реализаций SSL включают в себя согласование «быстрого доступа», в котором последующие новые соединения могут использовать шифрование открытого ключа, которое уже имело место, и вместо этого напрямую использовать последний согласованный симметричный ключ. Однако подробности этого скрыты в реализации SSL. С точки зрения пользовательского и/или клиентского программного обеспечения, в художественной литературе говорится, что все переговоры проходили так же, как и при первом соединении.

  1. Если соединение SSL все еще установлено, то следует, что симметричная ключевая информация сохраняется на обоих концах.

  2. Да.

  3. Да, хотя было бы невероятным, если бы клиент мог поддерживать соединение с сервером после того, как он переместился на другой сайт.

+0

благодарит всех вас за помощь – SourceC

+0

Неверно. SSL не заботится о базовом протоколе (единственное требование заключается в том, что протокол гарантирует доставку). –

+0

Ну, в реальном мире, где люди имеют компьютеры, подключенные к Интернету, SSL практически всегда работает через TCP. В теоретической радужной вселенной, в которой вы живете, тогда да, SSL может пережить любую чертову вещь. Большое вам спасибо за разъяснение этого. – nsayer

4

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

Q2A. Если браузер все еще имеет TCP-соединение, открытое с этим сервером, он может повторно использовать это соединение. В противном случае согласовывается новое TCP-соединение с аутентификацией SSL и IIS.

Q2B. То же, что и Q2A. Вы не можете зависеть от этого, но TCP-соединения не будут удалены немедленно. Есть шанс, что вы можете повторно использовать существующий в зависимости от вашего браузера.

2

A1. Соединение SSL сохраняется до тех пор, пока клиент или сервер не закроют его. Когда это происходит, зависит от используемого протокола. Для HTTP большинство современных клиентов сделают несколько параллельных подключений к серверу для извлечения страницы и ее ресурсов и повторного использования этих соединений до тех пор, пока страница не будет загружена.

A2A. Клиент должен аутентифицироваться по каждому запросу, если аутентификация использует HTTP-аутентификацию. Если клиент использует авторизацию SSL-сертификата, то это, очевидно, поддерживается для каждого соединения, так что последующие запросы на одном и том же соединении сохраняют одни и те же учетные данные.

A2B. Сервер будет знать это, потому что предположительно запрос будет включен в уже установленное SSL-соединение.

Смежные вопросы