Кратко

  • Распознанный accounturi ограничивает конкретное свойство CAA запрашивающим аккаунтом, но URI является публичным идентификатором, а не секретом или переносимым полномочием.
  • Все системы выпуска, использующие один идентифицирующий домен CA, должны последовательно распознавать поддерживаемые параметры; несовместимые системы могут использовать разные домены.
  • После слияния пространства URI должны оставаться однозначными, а другие применимые свойства CAA и уже выпущенные сертификаты требуют отдельного учёта.

Пусть две дочерние системы имеют аккаунт 1042. В первой он принадлежит центральной платформе обновления, во второй — старому корпоративному шлюзу. Пока системы раздельны, номер не вызывает сомнений. После объединения инвентаря строка без источника превращает два субъекта в одного. Ограничение в DNS тогда может быть точным по синтаксису и ошибочным по принадлежности.

RFC 8659 определяет, что CAA управляет текущим разрешением на выпуск. CA ищет релевантный RRset для каждого запрошенного имени, следует псевдонимам при CAA-запросе и поднимается до первого непустого набора. Этот механизм не задаёт проверку уже выданного сертификата у relying party и не отзывает сертификат при последующей смене DNS.

RFC 8657 добавляет accounturi. Если CA распознаёт параметр, содержащее его issue или issuewild может разрешить выпуск только запрашивающему аккаунту с данным URI; совпадение идентифицирующего домена CA всё равно обязательно. Без параметра свойство допускает любой аккаунт. Повтор, некорректный или неизвестный URI делает именно это свойство неудовлетворимым.

Публичность URI принципиальна. Он обозначает аккаунт, но не является его ключом. Поддерживающая расширение ACME-система распознаёт URI объекта ACME account; не-ACME система может назначить иную URI. Знание значения не доказывает владение учётными данными и не переносит разрешение между разными CA.

validationmethods сужает свойство до метода из списка. Пустой список не допускает ни одного метода. Для ACME существуют зарегистрированные метки, для не-ACME могут понадобиться значения, определённые CA. Правильная строка в DNS действует лишь там, где издатель явно заявил её поддержку.

Такое распознавание необязательно и специфично для CA. Let's Encrypt, например, документирует идентификатор letsencrypt.org, формат URI аккаунта и поддержку http-01, dns-01, tls-alpn-01. Это полезное публичное заявление одной службы, а не независимый аудит каждого её тракта и не доказательство всеобщей поддержки.

Если несколько систем используют один идентифицирующий домен, свобода заканчивается. RFC 8657 требует последовательного распознавания параметров во всех этих системах. Он прямо учитывает ACME и не-ACME каналы, а также объединённые системы. Если привести их к общей семантике нельзя, CA может выделить отдельные идентифицирующие домены. Объявлять поддержку под общим именем при иной трактовке на одном входе нельзя.

Однозначность аккаунтов охватывает все идентифицирующие домены, которые признаёт одна CA, включая объединённые пространства. URI с компонентом authority сохраняет источник лучше голого локального номера. Требование не означает общей базы аккаунтов для независимых CA; оно запрещает одной организации терять различие между собственными субъектами.

Даже идеальная нумерация не делает весь RRset строгим. Разрешения CAA складываются. Другое применимое свойство может разрешить ту же CA без ограничения аккаунта или метода. Для wildcard при наличии issuewild оно заменяет issue; обычные имена оцениваются по issue. Проверка одного класса не покрывает другой.

Критический флаг тоже относится к неизвестному или неподдерживаемому тегу свойства, а не превращает все параметры известного issue в обязательные. Знание тега и знание параметра — разные факты.

Авторизация домена и выпуск могут быть разнесены во времени. Короткий срок авторизации или повторная проверка CAA ближе к выпуску сокращают окно, но приведённый в RFC порядок около часа не является универсальным требованием. Сертификат, выданный во временно разрешённый период, может оставаться действительным после ужесточения записи.

Поэтому миграционный реестр должен связывать исходную систему аккаунта, полный URI, полномочия аккаунта, запрошенные имена, фактический RRset и DNSSEC, выбранное свойство, метод, канал, момент решения и сертификат. Номер без происхождения — не идентичность, а приглашение к ложному объединению.

Источники

  1. RFC 8657 — Расширения CAA для URI аккаунта и привязки метода ACME
  2. RFC 8659 — Ресурсная запись DNS Certification Authority Authorization
  3. Let's Encrypt — Документация CAA
  4. Heng Lu — Агентская проблема в центре управления Интернетом
  5. Heng Lu — Зачем существует BTW Media и почему продуктом является реальность