TLS 1.3 и постквантовая криптография
TLS — самый распространённый криптографический протокол в мире, и его последняя версия собрана как ответ на все атаки предыдущих десятилетий: только AEAD, только эфемерный обмен ключами, подпись параметров рукопожатия, вывод ключей через HKDF, строгая валидация. Одновременно на горизонте появилась угроза другого масштаба: квантовый компьютер, для которого задача факторизации и дискретного логарифма перестают быть трудными.
Тема завершает курс и собирает всё вместе. Сначала рукопожатие TLS 1.3: обмен ключами, аутентификация, вывод ключей, защита от понижения версии. Потом 0-RTT и его цена — повтор запросов. Затем постквантовые схемы: почему RSA и ECC уязвимы к алгоритму Шора, как устроен ML-KEM, зачем гибридные конструкции и что такое «сохранить сейчас — расшифровать потом». Завершается практикум: аудит учебного модуля, в котором намеренно собраны ошибки из всех предыдущих тем.
Рукопожатие TLS 1.3
Обмен и аутентификация
Клиент отправляет ClientHello с поддерживаемыми шифрами, группами и расширением key_share — своим эфемерным открытым ключом. Сервер отвечает ServerHello, своим key_share, сертификатом и подписью по транскрипту рукопожатия. Обе стороны вычисляют общий секрет Z = ECDH(...), выводят ключи через HKDF и переходят к защищённому обмену 1.
Подпись охватывает весь транскрипт, включая параметры обмена: так аутентифицируется не только сертификат, но и сам обмен. Пошаговые примеры рукопожатия с реальными байтами собраны в RFC 8448 2. Это закрывает атаки, где противник подменяет группу или точку.
Только AEAD и только эфемерность
В TLS 1.3 убраны статические RSA-обмены (они не давали прямой секретности), CBC-шифры (оракулы) и RC4. Остались AEAD с эфемерным (EC)DHE: каждый сеанс имеет свои ключи, утечка долгоживущего ключа не раскрывает прошлое 1.
Защита от понижения версии: клиент присылает набор поддерживаемых версий и отдельное случайное значение, сервер подписывает транскрипт; попытка «откатить» протокол обнаруживается. Схема на рисунке 1.
Режимы установления ключа
Формулировка «в TLS 1.3 остался только эфемерный (EC)DHE» — упрощение. RFC 8446 описывает несколько режимов: полное рукопожатие с (EC)DHE и аутентификацией сертификатом, рукопожатие с PSK (в том числе PSK-only, без обмена эфемерными ключами) и комбинированный режим PSK + (EC)DHE. Прямая секретность есть только там, где присутствует эфемерный DH: в PSK-only режиме компрометация долговременного PSK раскрывает и записанные сессии. Поэтому PSK-only применяется в ограниченных сценариях — возобновление сессии, встроенные устройства с предварительно разделённым секретом, — а не как общий случай. При возобновлении с PSK + (EC)DHE свежий эфемерный обмен восстанавливает прямую секретность даже при утечке тикета.
Вывод ключей
Из общего секрета через HKDF выводятся ключи для разных направлений и целей: client_handshake, server_handshake, client_application, server_application, плюс ключи для экспорта и обновления. Разделение по назначению — защита от переиспользования ключей, разобранного в апокрифах 4–6.
0-RTT и повтор запросов
Что даёт 0-RTT
Клиент, уже имеющий сессионный тикет, может отправить данные в первом же сообщении, не дожидаясь ответа сервера: это ускоряет повторные соединения. Ключи 0-RTT выводятся из раннего секрета, связанного с тикетом.
Цена
Данные 0-RTT не защищены от повтора: противник может записать запрос и отправить его снова. Для идемпотентных GET это приемлемо, для POST-запросов с эффектом — нет. Поэтому в TLS 1.3 0-RTT помечен как опция с явным предупреждением, а сервер обязан ограничивать эффекты 3.
Защита на уровне приложения: одноразовые токены, идемпотентные ключи, отказ от 0-RTT для изменяющих операций. Протокол не может решить это за приложение, и это классическая граница «криптография заканчивается там, где начинается семантика».
Квантовая угроза
Алгоритм Шора
Алгоритм Шора решает задачи факторизации и дискретного логарифма за полиномиальное время на квантовом компьютере 4. Это означает, что RSA, DH, ECDH и ECDSA в текущем виде перестают быть стойкими, если такой компьютер появится в достаточном масштабе. Симметричные примитивы страдают меньше: стойкость AES-256 и SHA-256 снижается вдвое (алгоритм Гровера), что приемлемо.
«Сохранить сейчас — расшифровать потом»
Данные, перехваченные сегодня, могут быть расшифрованы, когда появится квантовый компьютер. Для долгоживущих секретов (медицинские записи, государственные тайны) это уже сегодняшняя проблема, а не будущая 8. Отсюда миграция начинается раньше, чем угроза станет реальной.
Постквантовые схемы
ML-KEM
ML-KEM (бывший Kyber) — схема инкапсуляции ключей на решётках, стандартизована в FIPS 203 5. Она построена не на «LWE с ошибкой» напрямую, а из двух слоёв. Первый — K-PKE, схема шифрования с открытым ключом над Module-LWE: модуль Z_q с q = 3329, векторы и матрицы многочленов степени 255, ошибки из центрированного биномиального распределения. Второй — преобразование Фудзисаки — Окамото (FO), которое превращает IND-CPA-схему в IND-CCA KEM: секрет инкапсуляции не передаётся, а выводится из общего с обеих сторон значения и хеша шифртекста, а при расшифровании шифртекст заново шифруется и сверяется с полученным. Именно FO-слой отвечает за стойкость против активного противника и за неявное подтверждение ключа; без него K-PKE остаётся только IND-CPA.
Параметры заданы тремя наборами — ML-KEM-512, -768, -1024, различающимися рангом модуля (2, 3, 4) и, соответственно, размерами ключей и шифртекста. Секрет и шифртекст дополнительно сжимаются, что экономит байты ценой управляемой вероятности ошибки. Противник не может восстановить секрет, не решив задачу о кратчайшем векторе в решётке 6.
Лекционная модель LWE в работе показывает идею: b = A·s + e, где e — малая ошибка; без ошибки секрет восстанавливается линейной алгеброй, с ошибкой — нет. Это верно как интуиция для K-PKE, но полная схема включает ещё и FO-преобразование, и именно оно делает её KEM.
Гибридные конструкции
Переход делается гибридами: X25519 вместе с ML-KEM. Общий секрет — комбинация обоих, обычно через KDF от конкатенации. Утверждение «стойкость сохраняется, если стойка хотя бы одна схема» верно не автоматически, а при корректном комбинаторе: секреты обеих схем должны смешиваться так, чтобы знание одного из них не позволяло вычислить итоговый ключ, и чтобы обе стороны использовали один и тот же контекст. Классический контрпример — конкатенация, из которой итоговый ключ берётся как KDF(secret_1), игнорируя secret_2: тогда вся конструкция не сильнее первой схемы. Именно поэтому в TLS 1.3 гибрид описан вместе с определённой схемой вывода (HKDF-Extract по общему значению, в которое входят оба секрета и транскрипт) 7.
Схема на рисунке 2.
Одноразовые подписи и деревья
Lamport-подпись в работе показывает базовую идею постквантовой подписи: одноразовый ключ, хеши, стойкость только к одной подписи. Дерево Меркле (апокриф 7) позволяет использовать много одноразовых ключей с одним корнем — так устроены hash-based подписи (SPHINCS+). Цена — размер подписи и ограничение числа подписей.
Итоги темы
- TLS 1.3: только AEAD, подпись транскрипта, HKDF, защита от понижения версии; прямая секретность — при эфемерном DH, PSK-only режим её не даёт.
- 0-RTT ускоряет соединение и допускает повтор запросов; приложение обязано ограничивать эффекты.
- Шор ломает RSA/DH/ECC; симметрика страдает вдвое.
- ML-KEM — это K-PKE на Module-LWE плюс преобразование Фудзисаки — Окамото, а не «LWE с ошибкой» в чистом виде; подписи ML-DSA и SLH-DSA разобраны в теме 16 основного курса.
- Переход идёт через гибриды; их стойкость зависит от корректного комбинирования секретов, а не только от стойкости компонентов.
- «Сохранить сейчас — расшифровать потом» делает миграцию срочной.
Литература
- RFC 8446: The Transport Layer Security (TLS) Protocol Version 1.3. 2018. — рукопожатие, вывод ключей, требования.
- RFC 8448: Example Handshake Traces for TLS 1.3. 2018. — пошаговые примеры для отладки.
- Fischlin M., Günther F. Replay Attacks on Zero Round-Trip Time: The Case of the TLS 1.3 Handshake Candidates. IEEE EuroS&P 2017. — анализ 0-RTT.
- Shor P. Algorithms for Quantum Computation: Discrete Logarithms and Factoring. FOCS 1994. — квантовая угроза.
- NIST. FIPS 203: Module-Lattice-Based Key-Encapsulation Mechanism Standard. 2024. — ML-KEM.
- NIST. Post-Quantum Cryptography Standardization. — процесс отбора и обоснование схем.
- Connolly K. et al. Hybrid Post-Quantum Key Encapsulation Methods (PQ KEM) for TLS. IETF draft. — гибридные обмены.
- Mosca M. Cybersecurity in an Era with Quantum Computers: Will We Be Ready? 2018. — «сохранить сейчас — расшифровать потом».