0Pricing
Cryptology Academy · Урок

Уровень записей TLS и наборы шифров

Разберитесь во фрагментации записей, шифровании AEAD и выборе шифра

«Уровень записей TLS и наборы шифров» — бесплатный урок Cryptology Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cryptology Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cryptology Academy содержит 4 уроков всего.

Обзор слоя записей

Слой записей TLS — это транспортный подуровень TLS. Он разбивает данные на записи размером до 16 КБ, при необходимости сжимает их (только в TLS 1.2), шифрует с помощью AEAD и добавляет заголовок размером 5 байт.

Поля заголовка записи

Байт 0: ContentType (20=ChangeCipherSpec, 21=Alert, 22=Handshake, 23=ApplicationData). Байты 1–2: устаревшая версия (0x0303 для совместимости с TLS 1.2). Байты 3–4: длина следующей полезной нагрузки.

Шифрование записей с помощью AEAD

В TLS 1.3 каждая запись шифруется с помощью AEAD (например, AES-GCM). Одноразовое число получается операцией XOR между неявным порядковым номером и вектором инициализации трафика. AAD — это заголовок записи размером 5 байт. Тег аутентификации добавляется в конец.

Именование наборов шифров

TLS_AES_128_GCM_SHA256 = обмен ключами (неявный ECDHE в TLS 1.3) + AES-128-GCM (AEAD) + SHA-256 (для HKDF). В TLS 1.2 имя TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 явно указывает все компоненты.

Устаревшие наборы шифров

TLS 1.3 запрещает: RC4 (предвзятая гамма), 3DES (атака «встреча посередине», Sweet32), режим CBC (BEAST, Lucky13, POODLE), шифрование NULL, шифры экспортного класса (40 бит), MD5/SHA-1 в PRF. Остаются только наборы AEAD.

Фрагментация записей

Большие записи TLS разбиваются на фрагменты размером ≤16 KB. Каждый фрагмент шифруется независимо. Получатель собирает записи заново, прежде чем передать их на уровень приложения. Границы фрагментов не несут смысловой нагрузки.

Протокол оповещений

Оповещения отправляются как записи TLS с ContentType=21. Два байта: уровень (1=предупреждение, 2=критическое) + описание (0=close_notify, 40=handshake_failure, 42=bad_certificate, 70=protocol_version). Критические оповещения завершают соединение.

Нонс на основе порядкового номера

Порядковый номер каждой записи начинается с 0 и увеличивается на 1. Он дополняется до длины вектора инициализации (12 байт для GCM) и объединяется с вектором инициализации трафика операцией исключающего ИЛИ. Это предотвращает повторное использование нонса между записями без явной передачи нонса.

Выбор набора шифров

Предпочитайте TLS_AES_256_GCM_SHA384 для 256-битной защиты. Используйте TLS_CHACHA20_POLY1305_SHA256 для мобильных и встраиваемых устройств без AES-NI. Избегайте наборов со 128-битной защитой для чрезвычайно чувствительных данных с длительным сроком хранения.

DTLS: TLS поверх UDP

DTLS (RFC 6347) адаптирует TLS для UDP. Он добавляет порядковые номера в заголовки записей, обрабатывает изменение порядка и использует рукопожатие на основе cookie для предотвращения отказа в обслуживании. Применяется в WebRTC, виртуальных частных сетях и протоколах Интернета вещей.

Просмотр записей с помощью Python

Используйте модуль ssl или scapy для захвата записей TLS. Если задан SSLKEYLOGFILE, Wireshark автоматически расшифровывает записи. Python ssl.SSLSocket.read() прозрачно расшифровывает данные на уровне приложения.

Быстрая проверка

От чего защищает порядковый номер при шифровании записей TLS 1.3?

Итоги

Теперь вы понимаете структуру записей TLS, шифрование AEAD, получение нонсов и выбор набора шифров. Далее: как TLS проверяет сертификаты сервера во время рукопожатия.

Часто задаваемые вопросы

Урок «Уровень записей TLS и наборы шифров» бесплатный?

Да — полный текст урока «Уровень записей TLS и наборы шифров» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cryptology Academy, подпишись на CoddyKit PRO. Курс Cryptology Academy содержит 4 уроков всего.

Чему я научусь в уроке «Уровень записей TLS и наборы шифров»?

Разберитесь во фрагментации записей, шифровании AEAD и выборе шифра Ты практикуешь Cryptology Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Cryptology Academy?

Предыдущий опыт не требуется. Cryptology Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Уровень записей TLS и наборы шифров»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Cryptology Academy?

Да. Каждый урок Cryptology Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Рукопожатие TLS 1.3 шаг за шагом
  2. Уровень записей TLS и наборы шифров
  3. Проверка сертификатов в TLS
  4. Атаки на TLS: BEAST, POODLE и понижение версии
← Назад к Cryptology Academy