Есть мнение: технология DANE для браузеров провалилась
Говорим о том, что собой представляет технология DANE для аутентификации доменных имен по DNS и почему она не получила широкого распространения в браузерах.
Сертификационные центры (CA) — это организации, которые занимаются удостоверением криптографических SSL-сертификатов. Они ставят на них свою электронную подпись, подтверждая подлинность. Однако порой возникают ситуации, когда удостоверения выдаются с нарушениями. Например, в прошлом году Google инициировали «процедуру прекращения доверия» к сертификатам Symantec из-за их компрометации (подробно эту историю мы освещали в нашем блоге — раз и два).
Чтобы избежать таких ситуаций, несколько лет назад в IETF начали разрабатывать технологию DANE (но она не получила широкого распространения в браузерах — почему так получилось, поговорим далее).
DANE (DNS-based Authentication of Named Entities) — это набор спецификаций, который позволяет использовать DNSSEC (Name System Security Extensions) для контроля достоверности SSL-сертификатов. DNSSEC представляет собой расширение для системы доменных имен, которое минимизирует атаки, связанные с подменой адресов. Используя две эти технологии, веб-мастер или клиент могут обратиться к одному из операторов зон DNS и подтвердить валидность используемого сертификата.
По сути, DANE выступает в качестве самоподписанного сертификата (гарантом его надежности является DNSSEC) и дополняет функции CA.
Как это работает
Спецификация DANE описана в RFC6698. Согласно документу, в ресурсные записи DNS был добавлен новый тип — TLSA. Он содержит информацию о передаваемом сертификате, размерность и тип передаваемых данных, а также сами данные. Веб-мастер создает цифровой отпечаток сертификата, подписывает его с помощью DNSSEC и размещает в TLSA.
Клиент подключается к сайту в интернете и сравнивает его сертификат с «копией», полученной от DNS-оператора. Если они совпадают, то ресурс считается доверенным.
На wiki-странице DANE приведен следующий пример DNS-запроса к серверу example.org по TCP-порту 443:
IN TLSA _443._tcp.example.org
Ответ на него выглядит так:
_443._tcp.example.com. IN TLSA (
3 0 0 30820307308201efa003020102020... )
DANE имеет несколько расширений, которые работают с другими записями DNS помимо TLSA. Первое — DNS-запись SSHFP для проверки ключей при SSH-соединениях. Оно описано в RFC4255, RFC6594 и RFC7479. Второе — запись OPENPGPKEY для обмена ключами с помощью PGP (RFC7929). Наконец, третье — запись SMIMEA (в RFC стандарт не оформлен, есть только его черновик) для криптографического обмена ключами по S/MIME.
В чем проблема с DANE
В середине мая прошла конференция DNS-OARC (это некоммерческая организация, которая занимается вопросами безопасности, стабильности и развития системы доменных имён). На одной из панелей эксперты пришли к выводу, что технология DANE в браузерах провалилась (по крайней мере, в текущем варианте реализации). Присутствующий на конференции Джефф Хастон (Geoff Huston), ведущий научный сотрудник APNIC, одного из пяти региональных интернет-регистраторов, отозвался о DANE как о «мертвой технологии».
Популярные браузеры не поддерживают аутентификацию сертификатов с помощью DANE. На рынке встречаются специальные плагины, которые раскрывают функциональность TLSA-записей, однако и их поддержку постепенно прекращают.
Проблемы с распространением DANE в браузерах связывают с длительностью процесса валидации по DNSSEC. Система вынуждена производить криптографические расчеты для подтверждения подлинности SSL-сертификата и проходить по всей цепочке DNS-серверов (от корневой зоны до домена хоста) при первом подключении к ресурсу.
Этот недостаток пытались устранить в Mozilla с помощью механизма DNSSEC Chain Extension для TLS. Он должен был сократить количество DNS-записей, которые приходилось просматривать клиенту во время аутентификации. Однако внутри группы разработчиков возникли разногласия, которые разрешить не удалось. В итоге проект забросили, хотя он был одобрен IETF в марте 2018 года.
Еще одной причиной низкой популярности DANE считается слабая распространенность DNSSEC в мире — с ним работает всего 19% ресурсов. Эксперты посчитали, что этого недостаточно для активного продвижения DANE.
Скорее всего, индустрия будет развиваться в другом направлении. Вместо того чтобы использовать DNS для верификации сертификатов SSL/TLS, игроки рынка, наоборот, будут продвигать протоколы DNS-over-TLS (DoT) и DNS-over-HTTPS (DoH). Последний мы упоминали в одном из наших предыдущих материалов на Хабре. Они шифруют и проверяют запросы пользователей к DNS-серверу, не давая злоумышленникам возможности подменить данные. В начале года DoT уже внедрили в Google для своего Public DNS. Что касается DANE — получится ли у технологии «вернуться в седло» и все же стать массовой, предстоит увидеть в будущем.