Тихая уязвимость DNS, которая сделала возможным создание поддельных веб-сайтов
Когда вы посещаете веб-сайт, ваш компьютер не подключается к имени вроде "example.com". Вместо этого ему нужен IP-адрес. Ваш компьютер отправляет запрос резолверу, обычно вашему роутеру или интернет-провайдеру, который затем обращается к различным DNS-серверам для поиска правильного IP-адреса.
Ранние DNS-ответы были уязвимы, поскольку полагались на простой 16-битный идентификатор транзакции для сопоставления ответов с запросами. Хотя этот идентификатор помогал упорядочивать запросы, он не предлагал криптографического подтверждения личности отправителя. Злоумышленники могли завалить резолвер поддельными ответами, угадывая один из 65 536 возможных идентификаторов, и если поддельный ответ приходил раньше легитимного, резолвер принимал его и кэшировал вредоносные данные.
Этот фундаментальный изъян стал очевиден в 2008 году с обнаружением атаки Kaminsky. Дэн Камински продемонстрировал, как использовать эту слабость, нацеливаясь на произвольные несуществующие поддомены, что позволило злоумышленникам быстро отравить запись авторитетного DNS-сервера домена. Это обнажило широко распространенный риск отравления DNS-кэша и подчеркнуло острую необходимость в более безопасной архитектуре DNS.
Долгосрочное решение, DNSSEC, было сформулировано еще в 2005 году. Оно ввело криптографическую аутентификацию, гарантирующую, что каждый шаг в цепочке DNS-запросов — от корневых серверов до отдельных серверов доменов — может проверить подлинность следующего. Эта система установила цепочку доверия, предотвращая внедрение злоумышленниками мошеннической информации и перенаправление пользователей на вредоносные сайты.
Цепочка доверия заканчивается на одном корневом ключе
DNSSEC, долгосрочное решение проблем уязвимости DNS, использует криптографию с открытым ключом для защиты запросов. У каждого подписывающего есть закрытый ключ для генерации цифровых подписей для DNS-данных и соответствующий открытый ключ для проверки. Резолверы используют эти открытые ключи, чтобы подтвердить, что DNS-данные не были изменены при передаче, обеспечивая их подлинность.
Цепочка доверия простирается от корня DNS до отдельных доменов. Когда резолвер ищет example.com, он сначала опрашивает корневые серверы, которые подтверждают серверы домена верхнего уровня (TLD) .com. Затем серверы .com подтверждают собственный DNS-сервер example.com. Каждая родительская зона криптографически подписывает открытые ключи своих дочерних зон, создавая непрерывный путь проверки.
Ключ подписи ключа корневой зоны (Root Zone Key Signing Key (KSK)) уникален; не существует более высокого DNS-авторитета для его аутентификации. Поэтому его открытый ключ должен быть предварительно настроен в качестве якоря доверия (trust anchor) во всех резолверах, поддерживающих DNSSEC. Тот, кто контролирует закрытую часть KSK, может подписывать поддельные корневые данные, подрывая всю цепочку доверия DNS. Этот критически важный закрытый ключ хранится в высокозащищенном, изолированном от сети (air-gapped) аппаратном модуле безопасности (Hardware Security Module) и доступен только во время строго контролируемых многосторонних церемоний смены ключей.
Внутри церемонии, созданной для сохранения секретности одного ключа
Поддержание секретности корневого ключа требует сложного многоуровневого протокола безопасности, выполняемого на защищенном объекте в Калпепере, штат Вирджиния. Этот объект, управляемый ICANN и Public Technical Identifiers (PTI), защищает аппаратные модули безопасности (HSMs), которые генерируют и хранят закрытый ключ. Доступ в комнату проведения церемонии включает в себя несколько контрольно-пропускных пунктов, за которыми следует запертая клетка, а затем сейфы, содержащие сами HSM.
Процесс подписания — это многопользовательский механизм защиты. Семь назначенных Crypto Officers, выбранных из мирового интернет-сообщества и независимых от ICANN, владеют ключами безопасности от своих индивидуальных сейфовых ячеек. Для активации HSM и выполнения защищенной операции необходимо физическое присутствие как минимум трех Crypto Officers, которые должны вставить свои уникальные ключи безопасности.
Церемонии являются публично наблюдаемыми и документированными, что обеспечивает прозрачность. Участники загружают ноутбук с доверенной операционной системы, работающей только для чтения, вслух проверяя её криптографический отпечаток. Как только три ключа безопасности вставлены, одна команда инициирует процесс генерации ключа внутри изолированного от сети HSM. Закрытый ключ никогда не покидает эту защищенную среду, за исключением зашифрованной резервной копии. Идентификатор нового ключа, например 38696 для ключа 2024 года, затем записывается, и процесс завершается подписанием бумажного сценария всеми участниками. Для получения дополнительной информации об этих процедурах обратитесь к документации IANA Root KSK Ceremonies.
Нравится статья? Получайте такие каждое утро на почту.
одно письмо в день · отписка в два клика · без сторонних трекеров
Что меняется при смене корневого ключа
Смена ключей предполагает внедрение нового Key Signing Key (KSK), который заменяет старый в качестве активного ключа подписи для набора записей DNSKEY корневой зоны. Хотя новый ключ генерируется и сертифицируется за несколько месяцев до этого, фактическая «смена» (rollover) происходит, когда он становится основным ключом подписи, а его открытый компонент должен быть доступен всем DNSSEC-валидирующим резолверам в качестве доверенного якоря (trust anchor).
Неспособность обновить этот доверенный якорь может привести к серьезным сбоям. Резолвер с устаревшим открытым ключом не сможет проверить подписи, созданные новым KSK, и будет отклонять все DNS-ответы для подписанных доменов. В результате пользователи будут видеть ошибки SERVFAIL, из-за чего веб-сайты будут казаться недоступными, даже если их серверы полностью работоспособны.
Современные DNSSEC-валидирующие резолверы, такие как те, что используются интернет-провайдерами или публичными сервисами, например Cloudflare 1.1.1.1 и Google 8.8.8.8, обычно используют автоматическое обновление доверенных якорей, что минимизирует большинство рисков. Однако более старые прошивки маршрутизаторов или системы с ручной настройкой могут отставать, требуя явных обновлений. Если вы столкнулись с ошибками DNS, совпадающими по времени со сменой ключа, обновление прошивки вашего маршрутизатора или программного обеспечения резолвера — это хороший первый шаг. Помните, что защита DNSSEC зависит как от подписанных доменов, так и от валидирующих резолверов.
Часто задаваемые вопросы
Что такое мастер-ключ DNSSEC в интернете?
Это закрытая часть Key Signing Key (KSK) корневой зоны, используемая для подписи ключей DNSSEC корневой зоны. Его открытый аналог является доверенным якорем для валидирующих резолверов.
Зачем DNS нужен DNSSEC?
DNSSEC добавляет криптографические подписи, которые позволяют валидирующим резолверам проверять, являются ли данные DNS подлинными и неизмененными, помогая предотвратить принятие поддельных ответов.
Может ли смена корневого ключа прервать мое интернет-соединение?
Это может нарушить работу DNS для пользователей, находящихся за валидирующим резолвером, который не получил новый доверенный якорь. Резолвер может отклонять ответы, часто возвращая ошибку SERVFAIL.
Как защищен корневой ключ?
Закрытый ключ хранится в защищенном оборудовании, а операции с ключом требуют участия нескольких авторизованных лиц. Церемонии проводятся в контролируемых помещениях с использованием документированных процедур и публичных записей.

