Sobes.tech
Senior

Descrivi i passaggi della stretta di mano TLS, dove viene utilizzato un certificato e una chiave pubblica

sobes.tech AI

Risposta dell'AI

TLS-рукопожатие (TLS handshake) — процесс установления защищённого соединения между клиентом и сервером. Основные шаги:

  1. Клиент отправляет серверу сообщение ClientHello с поддерживаемыми версиями TLS, наборами шифров и случайным числом.
  2. Сервер отвечает ServerHello, выбирает параметры, отправляет свой сертификат (содержит открытый ключ) и случайное число.
  3. Клиент проверяет сертификат сервера через цепочку доверия (CA), чтобы убедиться в подлинности.
  4. Клиент генерирует секрет (pre-master secret), шифрует его открытым ключом сервера из сертификата и отправляет.
  5. Сервер расшифровывает секрет своим приватным ключом.
  6. Оба вычисляют общий секрет (master secret) на основе pre-master secret и случайных чисел.
  7. На основе master secret формируются ключи шифрования и аутентификации для защищённого канала.

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