Сертифікаційні центри (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), провідний науковий співробітник АПНІК, одного з п'яти регіональних інтернет-реєстраторів, відгукнувся про 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 — чи вдасться технології «повернутися в сідло» і все ж таки стати масовою, доведеться побачити в майбутньому.