Кратко

  • Exported Authenticator соединяет Certificate, CertificateVerify и Finished с материалом одного установленного TLS/DTLS-соединения. Он доказывает дополнительную X.509-идентичность, не меняя состояние TLS.
  • В нём нет собственного времени создания и номера прикладного потока. Уникальный контекст ограничивает повтор внутри соединения; операцию, момент и право отдельно задаёт приложение.
  • Надёжный учёт разделяет запрос, связь с соединением, криптографию, сертификатную политику, аутентифицированный пустой отказ и решение о полномочии. TLS-терминатор остаётся жёсткой границей даже при одинаковом сертификате.

Проверка успешна, ретроспективное право — нет

Соединение началось в 13:58 с обычной handshake-идентичностью. Через пять минут ответ на запрос дополнительной идентичности прошёл проверки RFC 9261. Ошибка возникла, когда успех превратили в утверждение, будто вся предшествующая работа уже принадлежала новой стороне.

Authenticators независимы и однонаправленны; создание и проверка не меняют TLS явно. Доказательство может обосновать будущее изменение для названной операции после фиксированной границы. Оно не датирует себя, не выбирает поток и не аутентифицирует прошлое.

Certificate предъявляет X.509, CertificateVerify доказывает private key, Finished защищает транскрипт ключом из соединения. Нового handshake и TLS record framing нет. TLS 1.3 использует exporter_master_secret, а TLS 1.2 требует PRF и Extended Master Secret.

Вывод узок: этот peer доказал эту идентичность на этом соединении. Он не охватывает другое соединение, все потоки или бизнес-разрешение. Проверка цепочки отдельна: корректные подпись и Finished не исправляют истёкший сертификат, запрещённого issuer или неподходящую роль.

Контекст уникален только в своей области

certificate_request_context длиной до 255 октетов должен быть уникален в соединении для запросов RFC 9261 и желательно непредсказуем. Ответ его повторяет, поэтому одно принятое доказательство не закрывает другой запрос.

Это не глобальная транзакция, часы, аккаунт или stream ID. Gateway, identity service и worker могут столкнуться, если ведут отдельные пространства. Владение уникальностью должно охватывать всё соединение.

Счётчик бывает уникальным, но предсказуемым; random generator может повториться после snapshot. Записываются hash контекста, эпоха генератора, соединение, extensions, цель и локальное время, но не exporter secrets и private keys.

Клиенту нужен предыдущий запрос; сервер может доказать идентичность спонтанно. Эта асимметрия должна сохраняться в телеметрии.

Соединение не назначает поток

HTTP/2 мультиплексирует много streams. RFC 9001 запрещает TLS post-handshake client authentication в QUIC, поскольку CertificateRequest нельзя надёжно связать с прикладным событием.

Exported Authenticators переносят запрос и доказательство на прикладной слой, но корреляцию не создают. Протокол должен связать контекст X, поток 41, операцию Y и действие только после события Z.

Безопасный default — перспективный и минимальный. Ранее обработанные запросы, очередь до проверки и соседние потоки сохраняют старую идентичность. Подъём всего соединения требует явных правил порядка, barrier и rollback.

В доказательстве нет времени создания. Приём, проверка и действие — три разных момента. Один authenticated_at скрывает задержку, replay и перестановку.

TLS-терминатор меняет криптографический контекст

Handshake Context выводится из исходного соединения. Доказательство с A не проверяется на B. У TLS-terminating proxy два контекста, даже если цепочки совпадают.

Fallback по одинаковому сертификату уничтожил бы связь. Перенос идентичности требует отдельной делегации с issuer, audience, expiry и custody либо двух независимых доказательств и нового решения о доверии.

Reconnect и failover также заканчивают старую границу. Привилегия подтверждается заново, снижается или поддерживается отдельным механизмом непрерывности.

Пустой ответ может быть аутентифицирован

Если подходящей идентичности нет или peer не хочет её выдавать, он возвращает empty authenticator: Finished остаётся, Certificate и CertificateVerify отсутствуют. MAC подтверждает отказ, но не идентичность.

Отличайте его от молчания, повреждения, неверной подписи и отвергнутой цепочки. Бесконечный retry превращает нормальный отказ в DoS-цикл.

Четыре журнала

Журнал соединения хранит version, suite, завершение handshake, peer Finished, EMS и несекретный ID. Журнал запроса — контекст, уникальность, extensions, цель, время и канал. Журнал проверки — Certificate hash, fingerprints, CertificateVerify, Finished, совпадение соединения, X.509, пустой отказ и времена. Журнал полномочий — решающего, поток/операцию, старое и новое право, начало, окончание и rollback.

Общий success rate может расти вместе с повтором контекстов и слишком широкими правами. Wrong-connection rejection, напротив, может быть правильным доказательством границы.

IANA регистрирует labels, OpenSSL и BoringSSL показывают exporter substrate. Это не доказывает внедрение RFC 9261 или корректное право. Спецификация становится операционным фактом только через реконструируемое исполнение.

Источники