QRkoder

TLS / SSL

Семейство криптографических протоколов для защиты соединений в интернете. SSL — историческое название (Netscape, 1990-е), TLS — современный стандарт с 1999 года. Используется в HTTPS, SMTP, IMAPS, FTPS и защищает каждую ссылку в QR-коде.

SSL и TLS — разница и история

SSL (Secure Sockets Layer) появился в 1994 году в браузере Netscape Navigator как ответ на рост коммерческой активности в сети. SSL 2.0 вышел в 1995-м, SSL 3.0 — в 1996-м. В 1999 году комитет IETF взял SSL 3.0 за основу, существенно переработал и выпустил под новым именем: TLS 1.0 (Transport Layer Security). С этого момента SSL стал историей, хотя его название осталось в обиходе.

Сегодня, когда хостинг-провайдер говорит «установим SSL», он имеет в виду сертификат TLS. Это устоявшийся жаргон, а не техническая неточность. Сертификат один и тот же — меняется только версия протокола, который его использует.

Оба SSL 2.0 и SSL 3.0 официально выведены из эксплуатации (RFC 6176 и RFC 7568). SSL 3.0 в 2014 году поразила атака POODLE: исследователи показали, что при определённых условиях злоумышленник может расшифровать зашифрованные куки сессии. После этого браузеры отключили поддержку SSL 3.0 принудительно.

Как работает TLS handshake

При каждом новом HTTPS-соединении браузер и сервер выполняют рукопожатие — серию сообщений, которая занимает несколько десятков миллисекунд:

  1. ClientHello. Браузер сообщает список поддерживаемых версий TLS и наборов шифров (cipher suites).
  2. ServerHello + Certificate. Сервер выбирает версию и шифр, отправляет сертификат TLS с публичным ключом.
  3. Проверка сертификата. Браузер проверяет подпись сертификата через цепочку доверия до корневого удостоверяющего центра (CA): Let's Encrypt, DigiCert, Sectigo, GlobalSign и др.
  4. Обмен ключами. Стороны согласуют общий сессионный ключ через алгоритм Diffie-Hellman. Перехват трафика задним числом бессмысленен — это свойство называется Perfect Forward Secrecy.
  5. Шифрование данных. Все последующие запросы и ответы передаются в зашифрованном виде с согласованным ключом.

В TLS 1.3 handshake сокращён до одного round-trip вместо двух: это сэкономило до 100 мс на мобильных сетях. Именно поэтому HTTPS с TLS 1.3 в реальности быстрее HTTP/1.1 при нестабильном соединении — важный факт для QR-переходов в зонах нестабильного Wi-Fi.

Версии и совместимость

Не все версии TLS одинаково безопасны. Хронология:

  • SSL 2.0 / 3.0 — deprecated, уязвимые, поддержка отключена во всех современных браузерах;
  • TLS 1.0 (1999) и TLS 1.1 (2006) — deprecated с 2020 года решением Apple, Google, Mozilla и Microsoft; браузеры блокируют сайты с этими версиями;
  • TLS 1.2 (2008) — актуальный минимум, поддерживается повсеместно, однако допускает слабые cipher suites при неправильной настройке;
  • TLS 1.3 (2018) — текущий стандарт. Убраны все устаревшие алгоритмы, упрощён handshake, Perfect Forward Secrecy включено по умолчанию для всех соединений.

Платные сертификаты от DigiCert и Sectigo добавляют верификацию организации (OV) или расширенную проверку (EV) — в адресной строке отображается юридическое лицо. Для большинства сайтов достаточно бесплатного Domain Validated (DV) сертификата от Let's Encrypt, выдаваемого автоматически на 90 дней через ACME-протокол.

Частые вопросы

Почему говорят «SSL-сертификат», хотя SSL давно устарел?

Это исторический жаргон, прижившийся в индустрии. Все современные «SSL-сертификаты» работают с протоколом TLS — SSL физически не используется с 2015 года. Когда хостинг пишет «бесплатный SSL», он имеет в виду сертификат, выданный через Let's Encrypt или подобного CA, с поддержкой TLS 1.2 и 1.3. Путаница в терминах безвредна: важно, что сертификат есть и протокол актуален.

Как TLS связан с безопасностью QR-кодов?

Каждый QR-код, ведущий на сайт, передаёт URL браузеру или QR-сканеру. Если в URL схема http://, соединение идёт без TLS: провайдер, злоумышленник в той же Wi-Fi-сети или корпоративный прокси могут перехватить или подменить контент на лету (атака MITM). Браузеры Chrome и Safari с 2024 года показывают явное предупреждение «Соединение не защищено» при переходе на HTTP и всё чаще блокируют такие запросы автоматически. Про то, как мошенники используют QR с поддельными URL, читайте в статье про quishing.

Влияет ли версия TLS на скорость открытия QR-страницы?

Да, и в пользу новых версий. TLS 1.3 сокращает handshake до одного round-trip против двух у TLS 1.2. На практике это 50–100 мс экономии при первом подключении — заметно на мобильных сетях 4G/5G с высокой задержкой. TLS 1.3 также обязателен для работы HTTP/3 (QUIC), который ещё быстрее при потере пакетов. Правильная конфигурация сервера с TLS 1.3 ускоряет посадочную страницу QR-кода — то есть напрямую влияет на конверсию.

Нужен ли платный сертификат или хватит Let's Encrypt?

Для защиты соединения — Let's Encrypt абсолютно достаточен. Он выдаёт Domain Validated сертификат с поддержкой TLS 1.2 и 1.3, бесплатно, автоматически. Браузеры доверяют ему наравне с DigiCert или Sectigo. Платные сертификаты OV/EV нужны в специфических случаях: финансовые сервисы, где требуется подтверждение юрлица, или ситуации когда страховка удостоверяющего центра покрывает убытки от компрометации. Для QR-кодов, лендингов и интернет-магазинов Let's Encrypt — оптимальный выбор.

Что значит "цепочка доверия" и может ли она оборваться?

Браузер хранит список корневых CA (около 150 в Chrome). Сертификат сайта подписан промежуточным CA, тот — корневым. Браузер проверяет всю цепочку: если она обрывается или сертификат просрочен, отображается ошибка NET::ERR_CERT_AUTHORITY_INVALID. У Let's Encrypt срок сертификата — 90 дней, обновление через certbot или хостинг-панель происходит автоматически. Если автопродление сломалось, QR-переходы начнут заканчиваться страницей ошибки у всех пользователей — мониторить это обязательно.

Как проверить версию TLS на своём сайте?

Самый простой способ — SSL Labs от Qualys (ssllabs.com/ssltest): вводите домен и через 30 секунд получаете полную диагностику — поддерживаемые версии TLS, cipher suites, оценку от A+ до F, уязвимости. Для быстрой проверки из командной строки: openssl s_client -connect yourdomain.ru:443 -tls1_3 — если ответил сервер, TLS 1.3 работает. Оценку A+ даёт связка: TLS 1.2+1.3, HSTS-заголовок, отключённые устаревшие cipher suites и корректный HTTPS-редирект.

Создавайте QR-коды бесплатно

Динамические QR-коды с аналитикой, дизайном и без ограничений по сканированиям.

Начать бесплатно