Поддержка DANE и разработка плагинов IE

На сайте Internet Society ведётся список ресурсов, поддерживающих новую технологию DANE. Сайтов там пока что не очень много. Это хорошо объясняется тем, что поддержка DANE пока отсутствует в браузерах. Есть только один плагин для Firefox, да и то – в альфа-версии. Большая проблема. Без браузерной поддержки DANE никому не нужен. Без DANE – DNSSEC теряет заметную часть технологической привлекательности, потому что только благодаря привязке к сайтам DNSSEC можно продвинуть на клиентскую сторону.

Согласно современной реальности Интернета, прорывом был бы качественный плагин для майкрософтовского браузера IE. У меня нет уверенности, что подобный плагин возможен для IE, так как я недостаточно знаком с архитектурой этого браузера. Если кто-то может рассказать подробности, то, пожалуйста, выскажитесь в комментариях. Ниже, я опишу логику работы плагина, вдруг, кто-то захочет его реализовать (что было бы замечательно).

Итак, DANE позволяет разместить в DNS отпечаток SSL-сертификата и проверить достоверность соответствия этого отпечатка домену при помощи DNSSEC. Для проведения проверки требуются: значение специальной записи из DNS и сертификат, предъявляемый веб-сервером. Сличение проводится, грубо говоря, по имени хоста. То есть, отпечаток из DNS для заданного хоста должен соответствовать отпечатку, вычисленному по полученному сертификату. Более подробное описание части, касающейся DNS, есть в записке про DANE.

Соответственно, плагин для браузера должен вмешиваться в процесс установления соединения по HTTPS с веб-сервером, получать отпечаток ключа сертификата, предъявляемого сервером и сверять этот отпечаток с данными, полученными из DNS, если их удалось получить и подтвердить DNSSEC-ом, конечно. Дальнейшее поведение плагина зависит от того, каковы результаты проверки:

  • если валидный отпечаток из DNS совпадает с сертификатом, то браузер должен показать некий дополнительный флаг, означающий, что связка сертификат-сайт проверена DNSSEC. Если при этом сертификат самоподписанный или выдан неизвестным браузеру удостоверяющим центром (УЦ), то нужно подавить предупреждение браузерной системы безопасности (а можно ли это сделать в IE?);
  • если отпечатки не совпали, то нужно, наоборот, выдать предупреждение системы безопасности, даже если сертификат валидный и подписан доверенным УЦ;
  • если данные, полученные из DNS, не прошли проверку подлинности, а всё остальное – совпадает, то, опять же, нужно выдать предупреждение.

Плагину придётся самостоятельно проводить проверку подписей DNSSEC и извлекать их из DNS. В общем, задача не самая простая, но, вероятно, решаемая. Это я к тому, что, может, кто-то возмётся за реализацию.

Адрес записки: https://dxdt.ru/2012/10/05/5260/

Похожие записки:



Далее - мнения и дискуссии

(Сообщения ниже добавляются читателями сайта, через форму, расположенную в конце страницы.)

Комментарии читателей блога: 3

  • 1. 24th October 2012, 09:43 // Читатель Андрей Копейко написал:

    Для желаемого тобой “вмешиваться в процесс установления соединения по HTTPS с веб-сервером” не надо – вмешиваться надо в процесс _валидации_ полученного от сервера SSL-сертификата.

    Эта штука – уже за пределами протокола TLS.

  • 2. 24th October 2012, 10:32 // Александр Венедюхин:

    Да главное – подавить сообщения о недоверенном соединении. Можно ли это в IE сделать?

  • 3. 24th October 2012, 12:11 // Читатель jno написал:

    Если в ИЕ ещё “подавить сообщения о недоверенном соединении”, то можно дальше вообще ни о чём не беспокоиться :)