Кратко
- RFC 9729 позволяет заранее подготовленному клиенту доказать право доступа уже в первом запросе: свежесть даёт TLS exporter, поэтому серверу не требуется сначала отвечать вызовом 401 и подтверждать существование функции.
- Доказательство связано с соединением и контекстом origin, но не с методом, путём или телом HTTP. Повторное использование соединений, TLS-терминатор и доверенная передача на backend становятся частью границы аутентификации.
- Публичный ответ «здесь ничего нет» не может быть внутренним диагнозом. Причина отказа, поколение ключевой базы, отзыв, авторизация и фактическая выдача ресурса должны оставаться раздельными проверяемыми событиями.
Представим закрытый интерфейс управления. Неизвестный посетитель получает тот же ответ, что и на адрес, которого никогда не существовало. Авторизованный клиент обращается к тому же URL с параметрами Concealed и получает услугу. Сервер заранее не сообщил, что здесь ожидаются учётные данные; доказательство было готово до его первого ответа.
RFC 9729 заменяет случайность серверного вызова материалом, экспортированным из TLS-соединения. Клиент подписывает его и может отправить подтверждение без предварительного приглашения. Исчезает один публичный сигнал, но не полномочия тех, кто выдаёт ключи, определяет принимающие origin и свидетельствует о TLS-канале.
Первый контур управления находится вне HTTP
Стандарт предполагает внешний механизм выдачи ключей. У клиента есть идентификатор и асимметричная пара, у origin — отображение принятых идентификаторов на публичные ключи. Кто достоин ключа, где защищён секрет, как сообщается потеря и когда отзыв считается доставленным всем проверяющим узлам, протокол не определяет.
Правильная подпись по старой базе безошибочно доказывает старую политику. Удаление файла у клиента не отзовёт публичный ключ, который всё ещё принимают серверы. Обновление строки базы становится рабочим фактом лишь после загрузки нового поколения каждым verifier, способным выдать ресурс, и после синтетической проверки отказа старому ключу при сохранении успеха нового.
Полезный реестр связывает издателя, класс субъекта, origin и realm, fingerprint публичного ключа, начало, срок, причину отзыва, поколение распространения и список потребителей. Секрет не журналируется; цепочка решения обязана быть доказуемой.
Границы контекста TLS exporter
Зарегистрированная метка — EXPORTER-HTTP-Concealed-Authentication. В контекст входят номер алгоритма TLS-подписи, ID ключа, публичный ключ, схема URI, host, port и необязательный realm. Из 48 байтов результата 32 участвуют в подписываемом материале, а 16 передаются как проверочный параметр v.
Credential несёт также k, a, p и s. Сервер находит ID, сравнивает представленный ключ с сохранённым, сверяет v с exporter этого соединения и проверяет подпись. Явные сравнения снижают риск путаницы ключей и связывают принятие с нужным каналом.
Метод, путь и тело запроса в контекст не входят. Для одного ключа на одном соединении доказательство может быть одинаковым в разных запросах. Это полезно для сжатия, но превращает изоляцию HTTP/2 и HTTP/3 в условие безопасности: контекст, способный прочитать чужой Authorization, может повторить его в том же соединении.
У свежести есть возраст. Доказательство может быть таким же старым, как долго живущее или возобновлённое соединение. Принудительное переподключение сокращает окно, но расходует handshake, ёмкость и надёжность. Возраст соединения, цепочка resumption и причина обновления должны сохраняться рядом с вердиктом.
TLS-терминатор становится свидетелем личности
В разделённой схеме frontend завершает TLS или QUIC и отправляет backend исходный Authorization вместе с Concealed-Auth-Export. Backend не может вывести материал канала клиент–frontend из собственного соединения и принимает утверждение frontend.
Поэтому поле учитывается только от заранее доверенного отправителя, а frontend обязан удалить одноимённое поле, внедрённое клиентом. Load balancer, который может создать значение, влияющее на принятие личности, — уже не «только транспорт».
Широкого сетевого ACL недостаточно. Доказательство включает аутентифицированную личность frontend, поколения ПО и конфигурации, клиентское соединение, virtual host, нормализованный authority, защищённую корреляцию exporter и итоговый backend route. Потерянный или дублированный header, другой host при построении контекста либо маршрутизация в чужой домен способны дать снаружи лишь безупречный 404.
После криптографических проверок начинается авторизация
Backend разбирает параметры, находит ID, сравнивает ключ, проверяет exporter и подпись. Любое несоответствие обрабатывается как отсутствие credential. Лишь полный набор позволяет считать клиента аутентифицированным; право на операцию из этого не следует.
Действующий ключ подрядчика может разрешать одну функцию. Аккаунт может быть приостановлен. Один маршрут может держать старое поколение политики. Обратная ошибка — выдача ресурса по пути, где Concealed не выполняется вовсе. Результат аутентификации, решение авторизации и эффект ресурса записываются отдельно и соединяются с внешним canary.
Единый отказ — это политика раскрытия
Для non-probeable ресурса неудачная аутентификация должна получить в точности ответ несуществующего ресурса. Код 404 — только одна координата. Тело, заголовки, cache, закрытие соединения, длина и распределение задержки могут выдать ветвь.
Криптографическая проверка требует времени. Если неизвестный путь возвращается сразу, а защищённый ищет ключ и проверяет подпись, возникает timing oracle. Сравнивать нужно распределения при сходной нагрузке и сети. Индекс, sitemap, ошибка, клиентский bundle, аналитика, документация и DNS также могут раскрыть адрес.
Версия стандарта тоже входит в доказательство
Реестр errata уже содержит практический урок. Подтверждённая errata 8807 исправляет шестнадцатеричный пример: он кодировал HTTP Signature Authentication, хотя нормативная конструкция требует HTTP Concealed Authentication. Реализация, скопировавшая пример, получит скрытую за общим ответом несовместимость.
Errata 8843 пока имеет статус reported и относится к ABNF целого s: напечатанная форма исключает однозначные ненулевые числа, тогда как текст допускает 0–65535. Оператору нужно фиксировать выбранное толкование, версию parser, тесты и изменение статуса.
Записи IANA для scheme, HTTP-поля и exporter label координируют имена и ссылки. Они не доказывают поддержку клиента, правильность выдачи ключей, полноту маршрутов или равенство ответов. Документальная власть и исполняемый эффект принадлежат разным слоям реальности.
Две поверхности с разной детализацией
Публичная поверхность сокращает различия для неавторизованного наблюдателя. Закрытая поверхность для подотчётных операторов различает malformed credential, неизвестный и отозванный ключ, несовпадение публичного ключа или exporter, неверную подпись, неподходящий TLS, недоверенный frontend, отказ авторизации, ошибочный route и downstream failure.
Причины не отражаются в публичном теле или времени. Они связываются с фактами соединения и конфигурации защищённым идентификатором, имеют срок хранения и аудит доступа. Негативная матрица включает настоящий неизвестный путь, concealed-путь без credential, повреждённые данные, неизвестный и отозванный ключ, неверный host или port, неподходящий TLS, внедрённое клиентом поле, недоверенный frontend и отказ после правильной аутентификации. Снаружи нужные классы сходятся, внутри причины остаются различимыми.
Источники
- RFC 9729, карточка RFC Editor и errata
- Запись IETF Datatracker
- Реестры IANA: HTTP authentication schemes, HTTP fields, TLS parameters
- RFC 9110, RFC 5705, RFC 7627, RFC 8446
- Lu Heng: Running-Code Primacy, Minimum Initial Specification и Reality Layers
- Дополнительные первичные записи: RFC 9729 в текстовом виде, RFC 9846 о метках TLS exporter и RFC 9266 о channel bindings
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров

