Поделиться через


Протокол подтверждения TLS

Протокол подтверждения протокол (TLS) отвечает за проверку подлинности и обмен ключами, необходимый для установления или возобновления безопасных сеансов. При установке безопасного сеанса протокол подтверждения управляет следующими способами:

  • Согласование набора шифров
  • Проверка подлинности сервера и при необходимости клиент
  • Обмен информацией о ключе сеанса.

Согласование наборов шифров

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

Аутентификация

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

Обмен ключами

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

Установка безопасного сеанса с помощью TLS

Протокол подтверждения TLS включает следующие действия.

  1. Клиент отправляет на сервер сообщение "Client hello", а также случайное значение клиента и поддерживаемые наборы шифров.
  2. Сервер отвечает, отправив клиенту сообщение "Server hello" вместе со случайным значением сервера.
  3. Сервер отправляет сертификат клиенту для проверки подлинности и может запросить сертификат от клиента. Сервер отправляет сообщение "Сервер привет готово".
  4. Если сервер запросил сертификат от клиента, клиент отправляет его.
  5. Клиент создает случайный секрет предварительного мастера и шифрует его с помощью открытого ключа из сертификата сервера, отправляя зашифрованный секрет предварительного образца на сервер.
  6. Сервер получает секрет предварительного образца. Сервер и клиент создают главный секрет и ключи сеансов на основе предварительного секрета.
  7. Клиент отправляет на сервер уведомление "Изменить спецификацию шифров", чтобы указать, что клиент начнет использовать новые ключи сеансов для хэширования и шифрования сообщений. Клиент также отправляет сообщение "Готово клиент".
  8. Сервер получает "Изменение спецификации шифра" и переключает состояние безопасности уровня записи на симметричное шифрование с помощью ключей сеансов . Сервер отправляет клиенту сообщение "Завершено сервером".
  9. Клиент и сервер теперь могут обмениваться данными приложения по защищенному каналу, который они установили. Все сообщения, отправляемые с клиента на сервер и с сервера на клиент, шифруются с помощью ключа сеанса.

Возобновление безопасного сеанса с помощью TLS

  1. Клиент отправляет сообщение "Client hello" с помощью идентификатора сеанса сеанса для возобновления.

  2. Сервер проверяет кэш сеансов для соответствующего идентификатора сеанса. Если совпадение найдено, и сервер может возобновить сеанс, он отправляет сообщение "Server hello" с идентификатором сеанса.

    Заметка

    Если совпадение идентификатора сеанса не найдено, сервер создает новый идентификатор сеанса, а клиент TLS и сервер выполняют полное подтверждение.

     

  3. Клиент и сервер должны обмениваться сообщениями "Изменить спецификацию шифров" и отправлять сообщения "Готово клиент" и "Сервер завершен".

  4. Клиент и сервер теперь могут возобновить обмен данными приложения через безопасный канал.