Let’s Encrypt опубликовал описание атаки и план по устранению проблемы
10 января 2018 года
Сервис Let's Encrypt опубликовал описание уязвимости, из-за которой сегодня утром был отключен метод проверки владения доменом TLS-SNI-01. Проблема была не на стороне Let's Encrypt и была вызвана предоставлением излишних полномочий на некоторых хостингах.
Уязвимость позволяла получить сертификат на чужой домен, обслуживаемый на том же совместном хостинге в рамках одного виртуального хоста, доступного через тот же IP, что и сайт атакующего. При этом уязвимость затрагивает только хостинги, на которых на одном IP поднято несколько виртуальных хостов и пользователю предоставлены средства для загрузки в настройки http-сервера сертификатов с произвольным именем домена без подтверждения владения этим доменом.
Если атакующий имеет доступ к хостинг-окружению, что и сайт жертвы (например, "example.com"), то он может запустить клиент ACME, инициировать проверку TLS-SNI-01, получить случайный токен, сгенерировать проверочный сертификат и загрузить его для домена "токен.acme.invalid" в конфигурацию общего web-сервера. Далее в рамках процедуры проверки сервер ACME определит IP-адрес домена example.com и отправит на него HTTPS-запрос проверочного домена "токен.acme.invalid" с использованием расширения SNI. Http-сервер провайдера на данный запрос вернёт загруженный атакующим сертификат, что для ACME-сервера станет подтверждением владения доменом, хотя фактически атакующий не контролирует домен example.com.
Разработчики Let's Encrypt намерены вернуть поддержку TLS-SNI-01 как только будут абсолютно уверены в безопасности предпринятых мер защиты. Пока в качестве пути для решения проблемы называется работа с хостинг-провайдерами, у которых используются недостаточно надёжные механизмы контроля за доменами пользователей. Представители Let's Encrypt уже связались с провайдерами, у которых проявляется проблема, и согласовывают пути по устранению уязвимости. В течение 48 часов будет представлен список проблемных провайдеров и связанных с ними IP-адресов. После завершения формирования списка, поддержка TLS-SNI-01 будет возвращена для всех адресов, за исключением чёрного списка.
Напомним, что метод TLS-SNI-01 позволяет выполнить проверку через обращение к хосту по HTTPS (443 порт). Альтернативными методами проверки являются http-01 (проверка по HTTP через 80 порт) и dns-01 (проверка при помощи DNS). При использовании TLS-SNI-01 ACME-сервер генерирует случайный токен и возвращает его клиенту. Клиент ACME использует токен для создания самоподписанного сертификата, который генерируется для несуществующего домена (например, 773c7d.13445a.acme.invalid).
Далее клиент настраивает http-сервер для использования этого сертификата для данного фиктивного проверочного домена. ACME-сервер определяет IP-адрес реального проверяемого домена, инициирует TLS-соединение и обращается к фиктивному домену (773c7d.13445a.acme.invalid), используя TLS-расширение SNI. Если web-сервер вернул сертификат, содержащий данное имя хоста, то считается, что клиент подтвердил контроль над доменом и ему может быть выдан сертификат для реального проверяемого домена.
Источники[править]
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии[править]
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.