Кратко
- RFC 9539 имеет статус Experimental и описывает добровольное одностороннее применение DoT/DoQ между рекурсивными и авторитативными DNS-серверами для защиты от пассивного мониторинга.
- Профиль принимает любой сертификат и после ошибки возвращается к Do53. Он не защищает от активного downgrade или MitM, не удостоверяет peer и не заменяет DNSSEC.
- История возможностей IP и конфиденциальность отдельного запроса — разные доказательства. Нужны попытки, обработанный ответ, сертификат, SNI, таймеры, причина fallback и сетевой маршрут.
Шифрование успело ко второму запросу
Представим первый запрос к авторитативному адресу X. В таблице resolver нет свежего знания о его зашифрованных транспортах. Система отправляет DNS по порту 53 и почти одновременно начинает DoT или DoQ по порту 853. Так проверка новой возможности не должна задерживать обычное разрешение.
Ответ Do53 приходит раньше и обрабатывается. Через несколько миллисекунд успешно завершается криптографический handshake. Resolver записывает, что данная исходная IP смогла связаться с X по выбранному транспорту; следующие запросы могут не запускать Do53, пока действует persistence.
В итоге адрес поддерживает шифрование, но первый вопрос уже был виден в открытом канале. Метрика handshakes описывает возможность, а не долю защищённых запросов. RFC 9539 допускает параллельную гонку для постепенного внедрения. Нельзя приписывать победившему позднее соединению конфиденциальность раннего ответа.
Сертификат тоже не доказывает авторитетность. Клиент должен принять предъявленный сертификат даже при неудачной проверке имени или цепочки. Результат можно сохранить для анализа, но нельзя только из-за него отвергнуть шифрование и перейти к открытому каналу. Это защита от пассивного наблюдения, не от активного посредника.
Локальное решение без центрального разрешения
RFC 9539 опубликован в феврале 2024 года как экспериментальный документ IETF. DoT и DoQ определяют транспорт, а профиль переносит его на участок recursive-to-authoritative.
Авторитативный оператор может включить порт 853 независимо от resolver. Resolver может пробовать адреса, которые уже нашёл через обычную делегацию. Не требуется реестр участия, разрешающая запись или общая дата миграции.
Так работает opportunistic security: когда исходное состояние — открытый текст, неаутентифицированное шифрование всё равно усложняет массовый пассивный сбор. Явная более строгая политика сохраняет приоритет. В модели Heng Lu общая спецификация ограничена совместимостью, а дальнейший выбор остаётся у участников с running code; публикация сама не меняет трафик.
Порт 853 не создаёт новую иерархию власти. Ответившая машина не получает права на зону. Эксперимент не предотвращает активное отключение шифрования и не проверяет DNS-данные. DNSSEC отдельно устанавливает их подлинность при наличии действующей цепочки.
Состояние принадлежит маршруту
Возможность рекомендуется хранить по IP авторитативного сервера. Один NS имеет несколько адресов, а один адрес скрывает load balancer или anycast. Если успех одного backend распространить на hostname, следующий encrypted attempt может попасть к неподготовленному узлу и добавить timeout.
Важна и исходная IP resolver. Балансировщик способен распределять клиентов по источнику, anycast — вести разные когорты к разным площадкам. Точный факт звучит так: конкретный источник достиг конкретного адреса по конкретному протоколу в конкретный момент.
Таблица содержит initiated, completed, status, last-response, resumption tickets, session, очередь запросов и last-activity. После restart нельзя сохранять видимость живого socket или очереди, но можно оставить недавнюю историю возможностей.
Рекомендуемые начальные значения — три дня persistence после успеха, один день damping после ошибки и четыре секунды handshake timeout. Это не универсальные нормы. Они определяют, как долго один успех исключает Do53 и как долго один сбой запрещает новую попытку приватности; поэтому значения входят в аудит.
Ошибка, чистое закрытие и timeout запроса
Ошибка handshake или уже установленного транспорта ставит fail, переводит непокрытые запросы в Do53 и задерживает следующую попытку до конца damping. Чистое закрытие отличается: сервер может освобождать старые соединения из-за памяти, но следующий запрос вправе немедленно снова пробовать encryption.
Timeout одного запроса не равен отказу всей session. Другой transport, адрес или запрос могут ещё работать. TLS alert, молчащий порт, rate limit, clean close, DNS SERVFAIL и query timeout имеют разные причины. Активный противник способен имитировать часть событий и вызвать downgrade.
Для каждого fallback сохраняются причина, время, запрос, резервный путь и момент новой проверки. Поле encrypted=false не объясняет, было ли решение вызвано совместимостью, ресурсами или атакой.
Профиль не требует fail closed, потому что предложение шифрования не является аутентифицированным обязательством. Строгая версия потребовала бы устойчивого к downgrade сигнала, проверки сервера и определённого scope. Без них необязательная функция получила бы власть останавливать доступные имена.
Три независимых свойства
Были ли байты зашифрованы? Был ли peer ожидаемым авторитативным сервером? Были ли DNS-данные подлинными? TLS/QUIC отвечают на первое только для своей session. RFC 9539 не отвечает на второе. DNSSEC при действующей цепочке отвечает на третье независимо от transport.
DNSSEC-valid ответ по Do53 имеет аутентичность данных без конфиденциальности пути. DoT с непроверенным сертификатом даёт конфиденциальность от пассивного наблюдателя без доказательства peer. Без DNSSEC он также не доказывает происхождение данных. Общий ярлык «secure DNS» скрывает место дефекта.
Открытый SNI на общей IP может показать имя NS и связанную зону. Профиль рекомендует не отправлять его; ECH уменьшает утечку при необходимости. EDNS padding из RFC 7830 и RFC 8467 усложняет анализ размера. QNAME minimisation сокращает имя, видимое каждой authority. Ни один механизм не удостоверяет сервер.
Несогласованный pool за одной IP
Encrypted и unencrypted listener должны отвечать из одинаковых zone data. Из-за транспорта могут различаться размер, EDNS и TC, но не содержательное состояние зоны.
Load balancer способен чередовать обновлённые и старые backend; anycast — приводить одну IP на площадки разных стадий rollout. RFC предлагает включать pool за короткий интервал, держать client-IP affinity или направлять 853 только совместимым членам.
Результаты сравнивают по исходным когортам, площадкам и времени. Handshake без DNS response, колебание поддержки и расхождение содержимого — отдельные признаки. Один успешный путь не сертифицирует весь fleet.
Строка доказательства
Она начинается с query ID, QNAME, QTYPE, QCLASS, времени, исходной и целевой IP, NS/zone context и vantage. Затем перечисляет transports, port, ALPN, начало, завершение, pending queues и обработанный ответ.
Для encryption сохраняются fingerprint и тип сертификата, identity verdict, SNI/ECH, session/resumption, early data и класс ошибки. Для policy — persistence, damping, timeout. Для DNS — bytes или hash, RCODE, flags и DNSSEC result.
Итог сообщает, проходил ли запрос по Do53, когда и почему случился fallback, когда разрешён новый probe, какая cohort ответила и какой trigger откроет review. Сводная метрика считает реальные запросы по transport, не количество IP с однажды успешным handshake.
Источники
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров
