Рукопожатие TLS
Разберитесь, как начинаются защищённые сеансы
«Рукопожатие TLS» — бесплатный урок Cyber Security Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cyber Security Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cyber Security Academy содержит 4 уроков всего.
Что такое рукопожатие TLS
Рукопожатие TLS — это согласование, которое происходит до передачи любых зашифрованных данных.
Оно позволяет клиенту и серверу согласовать параметры шифрования, проверить личность и установить общие секретные ключи.
Цели рукопожатия
Рукопожатие TLS решает три задачи:
- Аутентификация: клиент проверяет сертификат сервера.
- Обмен ключами: обе стороны получают общие сеансовые ключи.
- Согласование: стороны выбирают набор шифров и версию протокола.
ClientHello
Клиент начинает с сообщения ClientHello, содержащего:
- Поддерживаемые версии TLS
- Список доступных ему наборов шифров
- Случайное значение (случайное значение клиента)
- Расширения, например SNI (имя узла)
ServerHello
Сервер отвечает сообщением ServerHello, выбирая версию TLS и один набор шифров из списка клиента, а также передавая собственное случайное значение.
Затем он отправляет свой сертификат, чтобы клиент мог проверить личность сервера.
Проверка сервера
Клиент проверяет цепочку сертификатов сервера: подписи, сроки действия, отзыв и соответствие имени узла.
Если проверка завершается ошибкой, рукопожатие прерывается и данные не отправляются.
Обмен ключами
Современный TLS использует эфемерный алгоритм Диффи—Хеллмана (ECDHE). Обе стороны обмениваются открытыми долями ключей и независимо вычисляют один и тот же общий секрет.
Это обеспечивает прямую секретность: кража долгосрочного ключа сервера впоследствии не позволит расшифровать прошлые сеансы.
Получение сеансовых ключей
На основе общего секрета и обоих случайных значений стороны получают симметричные сеансовые ключи.
Ресурсоёмкая асимметричная криптография используется только для запуска быстрого симметричного шифрования фактических данных.
Завершающие сообщения
Каждая сторона отправляет сообщение Finished, зашифрованное новыми ключами и содержащее хеш всего рукопожатия.
Если обе стороны успешно проверяют сообщения, это доказывает, что никто не изменил согласование и ключи совпадают.
Ускорение TLS 1.3
TLS 1.3 упростил рукопожатие до одного обмена данными (1-RTT) и исключил небезопасные варианты.
Он также может возобновлять предыдущие сеансы с использованием 0-RTT, отправляя данные уже в первом сообщении.
Наблюдение за рукопожатием
С помощью OpenSSL можно просмотреть подробности рукопожатия, включая согласованные версию и шифр.
openssl s_client -connect example.com:443 -tls1_3Почему это важно
Именно во время рукопожатия безопасность устанавливается или теряется. Ошибочное или принудительно пониженное рукопожатие может раскрыть весь последующий трафик.
Понимание этого процесса помогает диагностировать сбои соединения и распознавать атаки.
Быстрая проверка
Какое преимущество даёт эфемерный алгоритм Диффи—Хеллмана (ECDHE) во время рукопожатия?
Итоги
Вы изучили этапы рукопожатия TLS.
- ClientHello / ServerHello согласуют версию и шифр.
- Клиент проверяет сертификат.
- ECDHE получает общие сеансовые ключи с прямой секретностью.
- TLS 1.3 сделал процесс быстрее и безопаснее.
Далее мы подробно рассмотрим наборы шифров.
Часто задаваемые вопросы
Урок «Рукопожатие TLS» бесплатный?
Да — полный текст урока «Рукопожатие TLS» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cyber Security Academy, подпишись на CoddyKit PRO. Курс Cyber Security Academy содержит 4 уроков всего.
Чему я научусь в уроке «Рукопожатие TLS»?
Разберитесь, как начинаются защищённые сеансы Ты практикуешь Cyber Security Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Cyber Security Academy?
Предыдущий опыт не требуется. Cyber Security Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Рукопожатие TLS»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Cyber Security Academy?
Да. Каждый урок Cyber Security Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.