awesome-everything EN
↑ Обратно к восхождению

Сети и протоколы

TLS 1.3: собери и сломай закалённый эндпоинт

Суть Практический проект — подними закалённый эндпоинт TLS 1.3, захвати и разбери каждый режим handshake, докажи, что replay 0-RTT сдержан, и выведи метрики здоровья TLS.
Высота — путь к senior
НольJuniorMiddleSenior
Ты на senior-высоте — в орбите
◷ 240 min

Читать о handshake — не то же самое, что наблюдать его на проводе и доказать, что он безопасен. Подними реальный эндпоинт TLS 1.3, захвати каждый режим handshake, намеренно попробуй replay 0-RTT и покажи, что твои защиты держат — с доказательствами на уровне пакетов и логов на каждом шаге.

Цель

Преврати ментальную модель юнита в операционный навык: отдавай TLS 1.3 с корректной цепочкой и ротируемыми тикетами, наблюдай холодный, возобновлённый и 0-RTT handshake в захвате, продемонстрируй, что неидемпотентный replay 0-RTT отклоняется, и выведи метрики, на которые ты алертил бы в продакшене.

Проект
0 из 7
Цель

Подними закалённый эндпоинт TLS 1.3 (Nginx, Caddy или сервер на Go/Node), захвати и разбери холодный, возобновлённый и 0-RTT handshake, докажи, что переигранная мутация 0-RTT сдержана, и выведи метрики здоровья TLS — подтверждая каждое утверждение захватом, строкой лога или метрикой, а не словами.

Требования
Критерии приёмки
  • Расшифрованный захват handshake (или аннотированные скриншоты) для всех трёх режимов — холодный 1-RTT, тёплое возобновление по PSK и 0-RTT — с чётко выделенным отличительным сообщением в каждом.
  • Доказательство, что идемпотентный 0-RTT GET принят, а изменяющий 0-RTT POST возвращает 425 Too Early, и что переигранный 0-RTT-запрос отклонён слоем защиты от replay — показано логами или захватами, а не описано.
  • Сравнение до/после ротации STEK, показывающее, что коэффициент возобновления держится через ротацию, потому что старый ключ был сохранён для расшифровки.
  • Короткий разбор: какой режим handshake использовал каждый запрос и почему, откуда берётся forward secrecy и на какую из четырёх метрик ты повесил бы алерт и при каком пороге.
Senior-стретч
  • Добавь Encrypted ClientHello (ECH) через front-end, публикующий ECH-ключ в DNS-записи HTTPS/SVCB, и покажи в захвате, что внутренний SNI больше не виден наблюдателю на пути.
  • Включи гибридный пост-квантовый обмен ключами (X25519MLKEM768) и захвати увеличенный ClientHello; покажи, что он вынуждает сегментацию TCP, и подтверди, что старый сервер откатывается через HelloRetryRequest.
  • Воспроизведи инцидент со сломанной цепочкой: настрой сервер слать только leaf, захвати ошибку openssl verify 21, затем исправь добавлением intermediate и перепроверь return code 0.
  • Напиши однастраничный on-call runbook по TLS: триаж по четырём метрикам, однострочники openssl для проверки цепочки и возобновления, процедура ротации STEK и чеклист политики маршрутов для 0-RTT.
Итог

Это цикл, который ты будешь запускать на каждом реальном развёртывании TLS: отдавай 1.3 с полной цепочкой, наблюдай, как холодный, возобновлённый и 0-RTT handshake пересекают провод, и назови, что делает каждый дешевле, докажи, что твои защиты от replay в 0-RTT действительно отклоняют replay, ротируй STEK без поломки возобновления и следи за четырьмя метриками, которые сигналят о проблемах первыми. Сделав это однажды на собственном эндпоинте, ты превращаешь handshake из схемы в то, что можешь захватить, сломать и защитить.

Продолжить восхождение ↑HTTP: язык запрос-ответ в вебе
хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources3
expand
  1. 01
  2. 02
  3. 03

Trademarks belong to their respective owners. Editorial reference only.