Изменения

Перейти к: навигация, поиск

SSL/TLS

2694 байта добавлено, 00:22, 12 декабря 2016
Добавил handshake.

====Подтверждение связи (handshake)====
[[Файл:Handshake.png|border|right|Схема подтверждения связи]]
# Клиент посылает сообщение '''ClientHello''', указывающее версию SSL или TLS и поддерживаемые клиентом методы шифрования (англ. ''CipherSuite''). Это сообщение также содержит случайное число (набор байт), которое используется в последующих вычислениях. Протокол также позволяет указать поддерживаемые клиентом методы сжатия данных.
# Сервер отвечает сообщением '''ServerHello''', которое содержит метод шифрования, выбранный сервером из списка, предложенного клиентом, а также идентификатор сессии и еще одно случайное число. Также сервер посылает свой цифровой сертификат. Если серверу нужен сертификат для аутентификации клиента, на этом шаге он может послать клиенту запрос такого сертификата.
# Клиент проверяет сертификат сервера.
# Клиент отправляет случайное число, которое клиент и сервер используют для шифрования последующих сообщений. Сама строка из байт шифруется публичным ключом сервера.
# Если сервер потребовал у клиента сертификат, клиент отсылает набор байт, зашифрованный его секретным ключом, и свой цифровой сертификат, или оповещение об отсутствии сертификата.
# Сервер проверяет сертификат клиента.
# Клиент отправляет сообщение '''Finished''', зашифрованное секретным ключом, и таким образом завершает подтверждение связи со своей стороны.
# Аналогичные действия производит сервер.
# На протяжении данной сессии клиент и сервер могут обмениваться сообщениями, зашифрованными секретным ключом.
74
правки

Навигация