Defaults.Exposed › Исправления › Современное шифрование (версия TLS и шифры)
Как исправить Современное шифрование (версия TLS и шифры)
TLS — это замок, шифрующий данные, что текут между вашими посетителями и сайтом. Две вещи делают этот замок надёжным: использование современной версии TLS (а не старых, сломанных) и использование сильных шифров (собственно рецепта шифрования). Эта страница охватывает обе — плюс несколько связанных настроек, которые не влияют на оценку, но о которых стоит знать.
Главное для вашего бизнеса: Если ваш сайт работает на устаревшем шифровании или слабых шифрах, личные данные, которые вводят клиенты, — логины, номера карт, контакты, — можно тихо перехватить и прочитать в общих сетях, и вы можете провалить проверки безопасности, которых теперь требуют банки, платёжные процессоры и более крупные клиенты, прежде чем вести с вами дела.
Во что это может вам обойтись
- Клиент платит или входит через WiFi отеля или кафе, устаревшее соединение или слабый шифр позволяет постороннему в этой сети прочитать его карту и пароль, и мошенничество — и гневный звонок — ведут прямиком к вашему сайту.
- Вы подаёте заявку на приём платежей картами (или ваш платёжный провайдер проводит повторный аудит) и получаете отказ из-за устаревшего TLS или запрещённого шифра, нарушающего правила платёжной безопасности, — ваша онлайн-оплата заморожена, пока это не исправлено.
- ИТ-служба более крупного клиента перед подписанием запускает рутинное сканирование безопасности, видит, что ваш сайт всё ещё допускает сломанное шифрование, и помечает вас как риск — контракт буксует из-за проблемы, которая чинится бесплатно.
- На ваш стол ложится жалоба о защите данных или утечка, и первый вопрос регуляторов — защитили ли вы данные клиентов «надлежащим образом»; работающее шифрование, публично известное как сломанное годами, — очень тяжёлый ответ.
- На вашем сайте есть замок, поэтому все считают его полностью безопасным, и этот пробел остаётся незамеченным годами — пока один перехваченный вход или номер карты не превратится в инцидент куда дороже бесплатного исправления.
Почему это важно. Безопасное шифрование невидимо; устаревшее или слабое шифрование — это пассив, который тихо ждёт до дня, когда обойдётся вам в клиента, контракт или прохождение проверки соответствия. Проверки версии TLS и шифра — две части, реально двигающие вашу оценку, и обе обычно одна бесплатная настройка — нет никакого плюса в том, чтобы оставлять старые, сломанные опции включёнными.
Простыми словами
Когда кто-то заходит на ваш сайт, всё, что он вводит — логины, номера карт, имена, телефоны, сообщения, — шифруется в пути, чтобы посторонние не могли это прочитать. Технология, которая шифрует, называется TLS (вы можете услышать и старое название SSL). Чтобы это шифрование реально было безопасным, две вещи должны быть верны:
- Версия TLS — какое поколение технологии вы используете. Ранние версии (TLS 1.0 и 1.1) публично сломаны годами; безопасные — TLS 1.2 и TLS 1.3.
- Шифр — конкретный рецепт, которым TLS шифрует. Некоторые шифры (вроде RC4, DES и 3DES) взломаны и теперь запрещены; современные шифры по-прежнему сильны.
Эта страница охватывает обе, потому что сайт может сделать одно верно, а другое неверно. У вас может быть современный замок со старым, взламываемым рецептом всё ещё включённым — или сильный рецепт, защищённый устаревшим замком. Любой из этих пробелов — открытая дверь. Оба обычно закрываются одним и тем же бесплатным изменением настроек вашего сервера или хостинга.
Чем это может вам обойтись
- Клиента грабят в публичном WiFi. Кто-то входит в аккаунт или платит из отеля, кафе или аэропорта. Поскольку ваш сайт всё ещё допускает старую версию TLS или слабый шифр, посторонний в той же сети принуждает соединение к взламываемой опции и читает его пароль и номер карты в реальном времени. Мошенничество ложится на клиента, но вина — и звонок в поддержку — ложатся на вас.
- Ваши платежи картами отключают. Правила платёжной безопасности (PCI DSS) требуют TLS 1.2 как минимум и явно запрещают слабые шифры вроде RC4. Когда ваш процессор проводит повторный аудит или когда вы подаёте заявку на приём карт, устаревшая конфигурация проваливает проверку, и ваша оплата заморожена, пока это не исправлено, — ровно в неудачный момент для денежного потока.
- Сделка буксует на проверке безопасности. Прежде чем более крупный клиент подпишет, его ИТ-служба запускает рутинное сканирование. Оно сразу помечает, что ваш сайт всё ещё принимает сломанное шифрование, — находка, которая выглядит небрежно и заставляет покупателя гадать, что ещё разболтано. Контракт зависает из-за проблемы, которая чинится бесплатно.
- Регулятор задаёт неудобный вопрос. После любой жалобы или утечки первое, что хочет знать орган по защите данных, — защитили ли вы персональные данные «надлежащим образом». Работающее шифрование, публично известное как сломанное годами, очень тяжело защищать, а «мы не осознавали, что старая версия всё ещё включена» — некомфортный ответ.
- Оно прячется за замком годами. Поскольку ваш сайт всё ещё показывает нормальный замок, никто не замечает пробел — пока один перехваченный вход или номер карты не станет публичным инцидентом куда дороже пятиминутного исправления.
Что это на самом деле
Версия TLS
Сайт поддерживает не одну версию TLS — он может предлагать сразу несколько и позволять браузеру каждого посетителя выбрать. Современный посетитель использует новейшую доступную версию и видит нормальный замок. Опасность в том, что старые, сломанные версии могут сидеть рядом с хорошими как открытая задняя дверь: злоумышленник может принудить соединение посетителя «понизиться» до TLS 1.0 или 1.1, а затем эксплуатировать известные слабости этих версий (атаки BEAST и POODLE — знаменитые примеры), чтобы расшифровать трафик.
Поэтому наша проверка подключается к вашему сайту и тестирует каждую версию по отдельности — TLS 1.0, 1.1, 1.2 и 1.3 — чтобы увидеть, какие ваш сервер всё ещё принимает. Вот как выглядит «хорошо» и как это оценивается:
- TLS 1.3 (с 1.2 или без), и без устаревшего: лучший результат — современная, чистая конфигурация. Полный балл.
- Только TLS 1.2, без 1.3: безопасно и проходит, но вы оставляете новейшую, самую быструю версию неиспользованной. Большинство баллов; включить 1.3 стоит.
- TLS 1.0 или 1.1 всё ещё принимается: автоматический провал, ноль баллов и пометка «критично» — неважно, что 1.2/1.3 тоже работают, потому что сломанные версии и есть открытая дверь. Это то, что нужно исправить.
Шифр
Когда версия выбрана, TLS выбирает шифр — собственно алгоритм, шифрующий данные. Большинство современных шифров сильны. Горстка сломана и не должна использоваться никогда: RC4 (его шифрование смещено и выдаёт открытый текст), DES (его ключ так короток, что взламывается перебором), 3DES (уязвим к атаке «Sweet32»), плюс NULL (вообще без шифрования), EXPORT-grade шифры (намеренно ослаблены — атаки FREAK и Logjam) и анонимные шифры (без проверки личности, так что самозванец может сесть посередине).
Наша проверка шифра делает две вещи. Сначала она смотрит на шифр, который ваш сервер фактически согласовал с нами. Затем — и это важная часть — она активно пытается установить рукопожатие, используя несколько известных сломанных шифров (RC4, 3DES, EXPORT, NULL и анонимные варианты). Сервер может выбрать сильный шифр в разговоре с современным клиентом, но всё же принять слабый, если злоумышленник настаивает, — и это реальный риск понижения. Если ваш сервер принимает любой запрещённый шифр, проверка это помечает; приём критического (вроде RC4 или NULL) — провал. (На TLS 1.3 здесь не о чем беспокоиться — эта версия по замыслу удалила каждый слабый шифр, так что зондирования пропускаются.)
Три информационных дополнения
О трёх связанных пунктах сообщается, но они не влияют на вашу оценку — они помечены как информационные, потому что их нельзя надёжно проверить снаружи, а на любом современном сервере или CDN они уже корректно обрабатываются:
- Сжатие TLS (атака CRIME): старая функция, которая, оставшись включённой, могла бы позволить злоумышленнику вытянуть сессионные куки. Она отключена по умолчанию на каждом современном веб-сервере уже больше десятилетия, так что сегодня это фактически не вопрос.
- OCSP stapling: приятная мелочь для производительности и приватности, где ваш сервер заранее получает доказательство, что его сертификат не отозван, чтобы каждому посетителю не приходилось спрашивать удостоверяющий центр самому (что медленнее и выдаёт данные о просмотре). CDN вроде Cloudflare делают это автоматически.
- Безопасная пересогласовка: исправление старого изъяна (CVE-2009-3555), позволявшего злоумышленникам внедрять данные в сессию. TLS 1.3 полностью удалил пересогласовку, так что там это не вопрос, а современные серверы TLS 1.2 реализуют исправление по умолчанию.
Мы выводим их, чтобы у вашего ИТ-специалиста была полная картина, но для подавляющего большинства владельцев делать нечего — вашу оценку двигают проверки версии и шифра выше.
Как это исправить (бесплатно, ~30 минут)
Передайте это вашему ИТ-специалисту — исправление бесплатно. Этот раздел для того, кто ведёт ваш домен, сайт или хостинг. Исправление — это изменение конфигурации, а не покупка; мы берём плату только за мониторинг того, что шифрование остаётся корректно настроенным со временем. Одна современная конфигурация ниже чинит и версию, и шифры разом.
Самый простой надёжный подход — сгенерировать заведомо хорошую конфигурацию, а не писать её вручную: вставьте тип вашего сервера в Mozilla SSL Configuration Generator по адресу https://ssl-config.mozilla.org/ и выберите профиль «Intermediate» (широкая совместимость) или «Modern» (только TLS 1.3, если вам не нужно поддерживать что-то старое). Он выдаёт корректные строки ssl_protocols и ssl_ciphers за вас.
По платформам:
- Cloudflare или управляемый хост — обычно один-два клика. В Cloudflare: SSL/TLS → Edge Certificates → Minimum TLS Version → TLS 1.2, а наборы шифров там управляются за вас (платформа не предложит запрещённые шифры). Большинство управляемых хостингов и конструкторов сайтов (Squarespace, Wix, Shopify, современные хосты WordPress) уже принуждают TLS 1.2+ с сильными шифрами — просто убедитесь, что не включена опция «legacy TLS» или «совместимость со старыми браузерами».
- Nginx. Задайте только современные версии и явный список сильных шифров, затем перезагрузите:
(TLS 1.3 требует OpenSSL 1.1.1+ на машине.)ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384'; ssl_prefer_server_ciphers on; - Apache. Отключите старые версии и закрепите сильный список шифров, затем перезапустите:
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1 SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384 SSLHonorCipherOrder on - Windows / IIS. Используйте бесплатный инструмент IIS Crypto (или эквивалентные настройки реестра), чтобы отключить TLS 1.0 и 1.1, отключить шифры RC4/DES/3DES/NULL/EXPORT и оставить TLS 1.2 и 1.3 с включёнными сильными шифрами. Шаблон «Best Practices» этого инструмента делает всё это в один клик.
- Информационные дополнения (опционально, бесплатно). Если хотите чистый результат: на Nginx добавьте
ssl_stapling on; ssl_stapling_verify on;(со строкойresolver) для OCSP stapling; на Apache —SSLUseStapling On. Сжатие TLS и безопасная пересогласовка уже безопасны по умолчанию на современных серверах — действий не нужно. На Cloudflare все три обрабатываются автоматически. - Проверьте, затем перепроверьте здесь. Убедитесь, что остались только безопасные версии и шифры — например, через
nmap --script ssl-enum-ciphers -p 443 вашдомен.comили тест на связанных инструментахhttps://ssl-config.mozilla.org/— затем перезапустите эту проверку. По возможности включите TLS 1.3 наряду с 1.2: он и быстрее, и безопаснее.
Частые ошибки
- «У нас есть замок, значит, всё в порядке». Замок лишь доказывает, что защищённое соединение существует. Он ничего не говорит о том, принимается ли в фоне старая версия или запрещённый шифр, — а это ровно тот пробел, что находят эти проверки.
- Исправить версию, но не шифры (или наоборот). Отключение TLS 1.0/1.1 не убирает автоматически RC4 или 3DES, а закрепление сильных шифров не отключает автоматически старые версии. Задайте оба — сгенерированная конфигурация выше это делает.
- Оставить включёнными переключатели «legacy» или «совместимость со старыми браузерами». У многих хостов и CDN есть опция, тихо снова включающая сломанные версии или слабые шифры «для совместимости». Реальному посетителю она почти никогда не помогает и прямо вызывает эту находку.
- Забыть собственно перезагрузить/перезапустить сервер. Изменения конфигурации не вступают в силу, пока веб-сервер не перезагрузят, — на удивление частая причина, по которой «исправленный» сайт всё ещё проваливает перепроверку.
- Настроить один сервер, но не все. Если у вас балансировщик нагрузки, несколько веб-серверов или отдельные поддомены (магазин, блог, приложение), каждой конечной точке TLS нужна та же конфигурация — самую слабую и атакует злоумышленник.
Что запомнить
Версия TLS и шифр — две части вашего шифрования, реально двигающие вашу оценку, и обе сводятся к отключению опций, публично сломанных годами. Исправление бесплатно, обычно это одна современная строка конфигурации на сервер, и для обычного посетителя оно не меняет ничего, кроме того, что делает его соединение по-настоящему безопасным. Связанные пункты — сжатие, OCSP stapling, безопасная пересогласовка — стоит знать, но они не повлияют на вашу оценку, и на любой современной настройке они уже обрабатываются за вас.
Частые вопросы
Я не технический специалист — смогу ли я справиться сам?
Вам не нужно разбираться в технических деталях. На большинстве современных хостингов это одна-две настройки, и это бесплатно. Передайте раздел «Как это исправить» ниже тому, кто ведёт ваш сайт или хостинг (или вашему ИТ-провайдеру) — обычно это изменение на пять-десять минут без видимой разницы для посетителей, кроме более безопасного соединения.
Не перестанут ли при переходе на современное шифрование работать браузеры старых клиентов?
На практике нет. Каждый современный браузер и телефон примерно за последнее десятилетие уже используют новое шифрование и сильные шифры по умолчанию — и делают это годами. Единственное, что опиралось на старые версии или слабые шифры, само устарело и небезопасно, поэтому каждый крупный браузер их и так уже отвергает. Для почти всех бизнесов изменение для клиентов незаметно.
Мой сайт нормально загружается с замком — почему это всё равно помечается?
Замок означает лишь, что защищённое соединение существует; он не говорит, какая версия TLS или какой шифр за ним. Ваш сайт может показывать совершенно нормальный замок, при этом тихо всё ещё принимая старую сломанную версию или запрещённый шифр рядом с хорошими, — и эту открытую заднюю дверь ловят эти проверки. Закрытие её не убирает замок; оно лишь гарантирует, что разрешены только безопасные опции.
В чём разница между версией TLS и шифром?
Считайте версию TLS поколением замка, которое вы используете, а шифр — конкретным рецептом, которым он шифрует данные. У вас может быть современный замок (TLS 1.2 или 1.3), но всё ещё включён старый, взламываемый рецепт (вроде RC4 или 3DES) — или наоборот. Оба должны быть верны, поэтому мы проверяем их раздельно. Хорошая новость: одна и та же однострочная современная конфигурация обычно чинит оба сразу.
А как насчёт OCSP stapling и сжатия TLS — влияют ли они на мою оценку?
Нет. Они (наряду с безопасной пересогласовкой) только информационные — мы сообщаем о них, потому что они важны для производительности и эшелонированной защиты, но они не двигают вашу оценку. На современных веб-серверах и любом CDN вроде Cloudflare они корректно обрабатываются по умолчанию, так что большинству владельцев делать нечего. Детали — в разделе ниже для вашего ИТ-специалиста.
Исправление правда бесплатно?
Да. Отключение старых версий TLS и слабых шифров и включение этих защит — это изменения конфигурации на вашем существующем сервере или хостинге; покупать нечего. Мы берём плату только за мониторинг того, что ваше шифрование остаётся корректно настроенным со временем, а не за исправление.