Как долго сохраняется SSL-соединение между клиентом и сервером? - PullRequest
2 голосов
/ 30 апреля 2009


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


В1. Как долго сохраняется SSL-соединение между клиентом и сервером? Пока клиент не зайдет на другой URL или ...?


Q2

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

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


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

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

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


спасибо


EDIT:


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


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


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


Я ценю это

Ответы [ 3 ]

4 голосов
/ 30 апреля 2009

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

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

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

2 голосов
/ 30 апреля 2009

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

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

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

1 голос
/ 01 мая 2009

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

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

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

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

  2. Да.

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

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