HTTPS безопасно
HTTP over TLS · порт 443 · с 1994
Что это
HTTPS = HTTP + TLS. Обычный HTTP-протокол оборачивается в TLS-канал, который даёт три вещи:
- Конфиденциальность — трафик шифруется, посередине никто не читает.
- Целостность — если кто вмешается — обнаружишь.
- Аутентификация — сертификат доказывает что ты реально на google.com, а не на подставном.
История
- 1994 — Netscape изобретает SSL 1.0 (был настолько дырявым что не выпустили).
- 1995 — SSL 2.0. Тоже дырявый, deprecate 2011.
- 1996 — SSL 3.0. POODLE (2014) → deprecate.
- 1999 — SSL передан IETF, переименован в TLS. См. /tls.
Как работает handshake
1. TCP handshake (3-way SYN/SYN-ACK/ACK) — 1 RTT
2. TLS handshake:
• ClientHello (версии, ciphers, SNI, key_share)
• ServerHello + сертификат + подпись
• Клиент проверяет сертификат в trust store
• Договариваются об общем ключе
3. HTTP request/response ВНУТРИ TLS-канала
С TLS 1.3 handshake сжат до 1 RTT (или 0-RTT при повторе). С TLS 1.2 — 2 RTT.
Что сейчас в проде (2026)
Живые версии: только TLS 1.2 и TLS 1.3.
Все браузеры (Chrome, Firefox, Safari, Edge) с 2020 года отключили TLS 1.0 и 1.1. TLS 1.0/1.1 сейчас увидишь только в древних embedded / IoT / банкоматах.
Почему TLS 1.2 убирают
TLS 1.2 (2008) всё ещё работает, но постепенно уходит:
- Атаки на CBC-режимы: BEAST (2011), Lucky13 (2013), POODLE-варианты.
- Downgrade-атаки: FREAK и Logjam эксплуатировали слабые export-ciphers.
- Слишком много cipher suites — 200+ комбинаций, часть слабые. Легко ошибиться в конфиге.
- Handshake 2 RTT vs 1 RTT у TLS 1.3.
- Forward secrecy не обязательна — есть RSA key exchange где ключ вскрывается ретроспективно если утёк приватник.
- Renegotiation-уязвимости.
С 2024 года PCI DSS, HIPAA, NIST советуют держать только TLS 1.3 для новых деплоев. TLS 1.2 — legacy, но пока не «мёртв».
Что должно быть в 2026
- Только TLS 1.3 (или 1.2 как fallback).
- ECH — где возможно.
- HSTS-заголовок и preload-list.
- Сертификаты через Let's Encrypt (бесплатные), ротация каждые 90 дней.
- OCSP stapling для быстрой валидации.