Протокол подтверждения TLS
Протокол подтверждения протокол (TLS) отвечает за проверку подлинности и обмен ключами, необходимый для установления или возобновления безопасных сеансов. При установке безопасного сеанса протокол подтверждения управляет следующими способами:
- Согласование набора шифров
- Проверка подлинности сервера и при необходимости клиент
- Обмен информацией о ключе сеанса.
Согласование наборов шифров
Клиент и сервер делают контакт и выбирают набор шифров, который будет использоваться во время обмена сообщениями.
Аутентификация
В TLS сервер докажет свое удостоверение клиенту. Клиенту также может потребоваться доказать свое удостоверение на сервере. PKI, использование пар открытых и закрытых ключейявляется основой этой проверки подлинности. Точный метод, используемый для проверки подлинности, определяется согласованным набором шифров.
Обмен ключами
Клиент и сервер обмениваются случайными числами и специальным номером, называемым секретом предварительного образца. Эти номера объединяются с дополнительными данными, позволяющими клиенту и серверу создавать общий секрет, называемый главным секретом. Главный секрет используется клиентом и сервером для создания секрета MAC записи, который является ключом сеанса, используемым для хэширования, а также ключ записи, который является ключом сеанса, используемым для шифрования.
Установка безопасного сеанса с помощью TLS
Протокол подтверждения TLS включает следующие действия.
- Клиент отправляет на сервер сообщение "Client hello", а также случайное значение клиента и поддерживаемые наборы шифров.
- Сервер отвечает, отправив клиенту сообщение "Server hello" вместе со случайным значением сервера.
- Сервер отправляет сертификат клиенту для проверки подлинности и может запросить сертификат от клиента. Сервер отправляет сообщение "Сервер привет готово".
- Если сервер запросил сертификат от клиента, клиент отправляет его.
- Клиент создает случайный секрет предварительного мастера и шифрует его с помощью открытого ключа из сертификата сервера, отправляя зашифрованный секрет предварительного образца на сервер.
- Сервер получает секрет предварительного образца. Сервер и клиент создают главный секрет и ключи сеансов на основе предварительного секрета.
- Клиент отправляет на сервер уведомление "Изменить спецификацию шифров", чтобы указать, что клиент начнет использовать новые ключи сеансов для хэширования и шифрования сообщений. Клиент также отправляет сообщение "Готово клиент".
- Сервер получает "Изменение спецификации шифра" и переключает состояние безопасности уровня записи на симметричное шифрование с помощью ключей сеансов . Сервер отправляет клиенту сообщение "Завершено сервером".
- Клиент и сервер теперь могут обмениваться данными приложения по защищенному каналу, который они установили. Все сообщения, отправляемые с клиента на сервер и с сервера на клиент, шифруются с помощью ключа сеанса.
Возобновление безопасного сеанса с помощью TLS
Клиент отправляет сообщение "Client hello" с помощью идентификатора сеанса сеанса для возобновления.
Сервер проверяет кэш сеансов для соответствующего идентификатора сеанса. Если совпадение найдено, и сервер может возобновить сеанс, он отправляет сообщение "Server hello" с идентификатором сеанса.
Заметка
Если совпадение идентификатора сеанса не найдено, сервер создает новый идентификатор сеанса, а клиент TLS и сервер выполняют полное подтверждение.
Клиент и сервер должны обмениваться сообщениями "Изменить спецификацию шифров" и отправлять сообщения "Готово клиент" и "Сервер завершен".
Клиент и сервер теперь могут возобновить обмен данными приложения через безопасный канал.