Что такое рукопожатие SSL/TLS? Объясним за 3 минуты

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

Процесс называется рукопожатием или handshake, потому что клиент и сервер встречают друг друга впервые. Рукопожатие начинается с идентификации и заканчивается генерированием секретного ключа.

рукопожатие SSL/TLS

SSL/TLS-рукопожатие — что это?

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

Давайте представим выполнение TLS-рукопожатия как диалог клиента и сервера.

Клиент: «Привет! Я хочу установить безопасное общение между нами. Вот мой набор шифров и совместимая версия SSL/TLS».

Сервер: «Привет, клиент. Я проверил твой шифр и версию SSL/TLS. Думаю, мы можем продолжить общение. Вот мой файл сертификата и открытый ключ. Проверь их».

Клиент: «Сертификат в порядке. Но мне нужно проверить твой закрытый ключ. Я сейчас сгенерирую и зашифрую общий секретный ключ с помощью твоего открытого ключа. Расшифруй его с помощью своего закрытого ключа. Если все получится, ты создашь главный секрет, который мы будем использовать для шифрования и расшифрования информации».

Сервер: «Готово».

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

Клиент: «Я отправлю тебе тестовое сообщение, чтобы проверить, что наш главный секрет работает. Отправь мне расшифрованную версию этого сообщения. Если он работает, наши данные в безопасности».

Сервер: «Да, все работает».

Теперь, каждый файл, который будет передаваться от клиента к серверу и обратно, будет зашифрован. Это и есть SSL/TLS-рукопожатие.

протокол рукопожатия

Источник: статья в блоге Cheap SSL Security

Читайте также: