Политика прозрачности сертификатов Android

Все вопросы, касающиеся данной политики, направляйте на форум CT Policy: ct-policy@chromium.org

При проверке сертификата протокола Transport Layer Security (TLS) соединения оценивается его соответствие политике прозрачности сертификатов Android (CT). Сертификаты, сопровождаемые подписанными метками времени сертификата (SCT), удовлетворяющими этой политике, считаются соответствующими требованиям CT.

Соответствие требованиям CT достигается за счет сертификата и набора сопутствующих SCT, отвечающих ряду технических требований, предъявляемых популярными библиотеками TLS (включая встроенный Conscrypt) в процессе проверки сертификата, которые определены в настоящей Политике.

Состояния лога КТ

Соответствие требованиям CT в Android определяется путем анализа SCT из журналов CT и проверки того, находятся ли эти журналы в правильном состоянии (состояниях) на момент проверки. Возможные состояния журнала CT следующие:

  • Pending
  • Qualified
  • Usable
  • ReadOnly
  • Retired
  • Rejected

Для облегчения понимания требований к соответствию стандарту CT в Android, в документации Chrome подробно описаны определения этих состояний, требования к журналам в каждом состоянии, а также то, как эти состояния влияют на поведение Android.

Сертификаты соответствия требованиям КТ

Сертификат TLS считается соответствующим стандарту CT, если он сопровождается набором SCT, удовлетворяющих хотя бы одному из критериев, определенных далее, в зависимости от способа доставки SCT в Android. В приложениях Android, использующих стандарт CT, для успешной проверки все общедоступные доверенные сертификаты TLS должны соответствовать стандарту CT; однако сертификаты, не зарегистрированные в CT или имеющие недостаточное количество SCT, не считаются ошибочно выданными.

При оценке сертификата на соответствие требованиям CT Android учитывает несколько факторов, включая количество существующих SCT, того, кто управляет журналом CT, выдавшим SCT, и в каком состоянии находился журнал CT, выдавший SCT, как на момент проверки сертификата, так и на момент создания SCT журналом CT.

В зависимости от способа представления SCT в Android, соответствие требованиям CT может быть достигнуто при выполнении одного из следующих критериев:

Встроенные SCT:

  1. По крайней мере, один встроенный SCT из журнала КТ, который на момент проверки был Qualified , Usable или ReadOnly ; и
  2. Имеются встроенные SCT-файлы, полученные как минимум из N различных журналов CT, которые на момент проверки были Qualified , Usable , ReadOnly или Retired , где N определяется в следующей таблице;
  3. Среди SCT, удовлетворяющих требованию 2, по меньшей мере два SCT должны быть выданы различными операторами журнала CT, распознаваемыми Android; и
Сертификат пожизненный Количество SCT из различных журналов КТ
<= 180 дней 2
> 180 дней 3

SCT, предоставляемые через OCSP или TLS:

  1. По меньшей мере два SCT из журнала CT, которые на момент проверки были Qualified , Usable или ReadOnly ; и
  2. Среди SCT, удовлетворяющих требованию 1, по меньшей мере два SCT должны быть выданы различными операторами журнала CT, распознаваемыми Android; и

Как для встроенных SCT, так и для тех, которые передаются с использованием OCSP или TLS, уникальность оператора журнала определяется наличием отдельных записей в разделе операторов списка журналов .

В редких случаях, когда в течение своего существования в журнале CT происходит смена операторов, журналы CT могут содержать список previous_operators , сопровождаемый последней меткой времени, когда этот журнал обрабатывался предыдущим оператором. Чтобы предотвратить нарушение существующих сертификатов из-за смены оператора журнала, оператор журнала каждого SCT определяется как оператор на момент выдачи SCT путем сравнения метки времени SCT с метками времени previous_operators , если таковые имеются.

Важные примечания

До тех пор, пока выполняется хотя бы один из вышеуказанных критериев соответствия CT при наличии определенной комбинации SCT, представленных в ходе рукопожатия, дополнительные SCT, независимо от статуса SCT, не будут влиять на статус соответствия сертификата CT ни положительно, ни отрицательно.

Для того чтобы сертификат соответствовал требованиям CT, сертификат SCT должен быть выдан до метки времени Retired в журнале, если таковая существует. Android использует самый ранний из всех представленных сертификатов SCT для оценки соответствия требованиям CT по меткам времени Retired " в журнале CT. Это учитывает крайние случаи, когда журнал CT становится "Retired" в процессе отправки запросов на регистрацию сертификатов.

«Встроенный SCT» означает SCT, предоставленный с использованием расширения SignedCertificateTimestampList X.509v3 внутри самого сертификата. Многие TLS-серверы не поддерживают OCSP Stapling или расширение TLS, поэтому центры сертификации должны быть готовы встраивать SCT в выданные сертификаты для обеспечения успешной проверки или обработки EV в Android.

Как добавляются CT-логи в Android

Критерии, по которым журналы CT Logs могут быть Qualified , а также обстоятельства, при которых они могут быть признаны Retired , можно найти в Политике Chrome в отношении журналов CT Logs .

Тайм-аут применения мер принуждения в сфере КТ

Ежедневно Google публикует новый список журналов CT, содержащий актуальную метку log_list_timestamp . Раз в день устройства Android пытаются загрузить последнюю версию этого списка для проверки. В любой момент времени, если на устройстве нет доступного списка журналов или если метка времени списка журналов старше 70 дней, применение CT отключается. Этот тайм-аут обеспечивает критически важную гарантию для экосистемы CT, гарантируя, что новые журналы CT смогут безопасно перейти в состояние «Пригодно для использования» в течение фиксированного периода времени после получения Qualified .

Список логов Android

Список логов Android публикуется в файле log_list.json , который обновляется ежедневно. Этот список логов предоставляется без стабильного API, SLA или гарантий доступности.

Android предоставляет свой список журналов CT для целей отправителей сертификатов (таких как центры сертификации), а также для мониторинга и аудита CT, желающих сохранить совместимость с экосистемами CT и WebPKI или изучить их содержимое.

Несанкционированное использование списка журналов CT Android угрожает не только вашим пользователям, но и пользователям Android, а также всей экосистеме CT в целом. Если вы рассматриваете возможность внедрения механизмов принудительного применения CT в ваше приложение, используйте механизм, поддерживаемый платформой Android .

Использование списка журналов Android CT вне рамок данной политики осуществляется на ваш собственный риск и может привести к поломке вашего приложения или библиотеки. Android должен иметь возможность вносить изменения в список журналов CT в ответ на инциденты в экосистеме CT для обеспечения безопасности пользователей Android. Android может предпринять шаги для обеспечения того, чтобы сторонние зависимости от списка журналов CT не ставили под угрозу способность Android реагировать на такие инциденты, включая внезапные изменения списка журналов для предотвращения несанкционированного использования.