
DNSSEC validation на Go: написал свой validator и не до конца сошёл с ума
cyberscoper 8 минут назад DNSSEC validation на Go: написал свой validator и не до конца сошёл с ума Сложный 7 мин 94 DNS * Go * Сетевые технологии * Информационная безопасность * Кейс ну и снова привет, Хабр!Я пилю...
В сфере искусственного интеллекта произошло заметное событие. cyberscoper 8 минут назад DNSSEC validation на Go: написал свой validator и не до конца сошёл с ума Сложный 7 мин 94 DNS * Go * Сетевые технологии * Информационная безопасность * Кейс ну и снова привет, Хабр! Я пилю VantageDNS, privacy-focused recursive DNS-резолвер с фильтрацией. Edge-фронт на Go, 10 нод по миру, миекговский miekg/dns под капотом.
На каком-то этапе у меня закончились отговорки, и пришлось писать DNSSEC validator. Под кофе восьмой кружки. Ниже расскажу, как устроен trust chain, что есть в стандартной библиотеке, какие грабли разложены по дороге, и почему алгоритм 14 я до сих пор обхожу как кота во дворе.
Технические детали
В конце ссылки на open-source реализацию, можно поковырять. Зачем вообще DNSSECЕсли коротко, DNSSEC решает две задачи. Первая, защита от cache poisoning.
Атака Каминского, помните? Ей в 2026 году исполнилось 17 лет, а сюрпризов меньше не стало: каждый раз, когда в новостях очередное «BGP-инцидент перенаправил трафик», где-то рядом обязательно лежит резолвер без валидации. Вторая задача — проверка origin: вы убеждаетесь, что ответ действительно подписан владельцем зоны, а не дядей в кафе с openwrt и злыми намерениями.
На практике, по моим замерам на edge-нодах, около 95% доменов в TLD . net до сих пор без RRSIG. Подписаны в основном крупные сервисы, банки, госуслуги и параноики.
Отраслевые последствия
Но для критичных сценариев DNSSEC реально нужен. И если вы делаете резолвер всерьёз, надо валидировать. Я сначала пытался его игнорировать.
Реальность, как водится, побила меня палкой по голове. Trust chain в одну страницуОбъясню коротко, чтобы дальше код был понятен. DNSSEC строится как иерархия подписей от запрошенной записи до root-зоны.
На каждом уровне есть три ключевые сущности. DNSKEY — публичные ключи зоны. Их два типа: KSK (Key Signing Key, флаг 257) подписывает только DNSKEY rrset.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





