Пожалуйста, направляйте любые вопросы по этой Политике на форум CT Policy: ct-policy@chromium.org
Когда сертификат Transport Layer Security (TLS) соединения проверяется в приложении, которое выбирает Certificate Transparency , он оценивается на соответствие политике Android Certificate Transparency (CT). Сертификаты, которые сопровождаются Signed Certificate Timestamp (SCT), которые удовлетворяют этой политике, считаются CT Compliant.
Соответствие CT достигается с помощью сертификата и набора сопутствующих SCT, соответствующих набору технических требований, предъявляемых популярными библиотеками TLS (включая встроенную в Android функцию Conscrypt) во время проверки сертификата, которые определены в настоящей Политике.
Состояния журнала CT
Соответствие CT в Android определяется путем оценки SCT из журналов CT и обеспечения того, чтобы эти журналы находились в правильном состоянии(ях) на момент проверки. Набор возможных состояний, в которых может находиться журнал CT, следующий:
-
Pending
-
Qualified
-
Usable
-
ReadOnly
-
Retired
-
Rejected
Чтобы помочь понять требования к соответствию CT в Android, определение этих состояний, требования к журналам в каждом состоянии, а также то, как эти состояния влияют на поведение Android, подробно описаны в разделе «Объяснение жизненного цикла журналов CT» в документации Chrome.
Сертификаты соответствия CT
Сертификат TLS соответствует CT, если он сопровождается набором SCT, который удовлетворяет хотя бы одному из критериев, определенных далее, в зависимости от того, как SCT доставляются в Android. В приложениях Android, обеспечивающих соблюдение CT, все публично доверенные сертификаты TLS должны соответствовать CT для успешной проверки; однако сертификаты, которые не зарегистрированы в CT или имеют недостаточное количество SCT, не считаются неправильно выпущенными.
При оценке сертификата на соответствие CT Android учитывает несколько факторов, включая количество имеющихся SCT, кто управляет журналом CT, выдавшим SCT, и в каком состоянии находился журнал CT, выдавший SCT, как на момент проверки сертификата, так и на момент создания SCT журналом CT.
В зависимости от того, как SCT представлены в Android, соответствие CT может быть достигнуто путем соблюдения одного из следующих критериев:
Встроенные SCT:
- По крайней мере один встроенный SCT из журнала CT, который был
Qualified
,Usable
илиReadOnly
на момент проверки; и - Имеются встроенные SCT из как минимум N отдельных журналов CT, которые были
Qualified
,Usable
,ReadOnly
илиRetired
на момент проверки, где N определено в следующей таблице; и - Среди SCT, удовлетворяющих требованию 2, по крайней мере два SCT должны быть выданы разными операторами журнала CT, распознаваемыми Android; и
- Среди SCT, удовлетворяющих требованию 2, по крайней мере один SCT должен быть выдан из журнала, признанного Android соответствующим RFC 6962 .
Срок действия сертификата | Количество SCT из отдельных журналов CT |
---|---|
<= 180 дней | 2 |
> 180 дней | 3 |
SCT, доставляемые через OCSP или TLS:
- По крайней мере два SCT из журнала CT, который был
Qualified
,Usable
илиReadOnly
на момент проверки; и - Среди SCT, удовлетворяющих требованию 1, по крайней мере два SCT должны быть выданы разными операторами журнала CT, распознаваемыми Android; и
- Среди SCT, удовлетворяющих требованию 1, по крайней мере один SCT должен быть выдан из журнала CT, распознаваемого Android как соответствующий RFC6962.
Как для встроенных SCT, так и для тех, которые доставляются с использованием OCSP или TLS, уникальность оператора журнала определяется как наличие отдельных записей в разделе операторов log_list.json 1 .
В редкой ситуации, когда журнал CT меняет операторов в течение своего жизненного цикла, журналы CT опционально содержат список previous_operators
, сопровождаемый конечной временной меткой, что этот журнал управлялся предыдущим оператором. Чтобы предотвратить нарушение существующих сертификатов при изменении оператора журнала, каждый оператор журнала SCT определяется как оператор на момент выпуска SCT путем сравнения временной метки SCT с временными метками previous_operators
, если они присутствуют.
Важные примечания
До тех пор, пока один из предыдущих критериев соответствия CT выполняется некоторой комбинацией SCT, представленных в рукопожатии, дополнительные SCT, независимо от статуса SCT, не повлияют на статус соответствия сертификата CT ни положительно, ни отрицательно.
Чтобы способствовать соответствию сертификата CT, SCT должен быть выпущен до временной метки Retired
журнала, если таковая существует. Android использует самый ранний SCT среди всех представленных SCT для оценки соответствия CT по временным меткам CT Log Retired
. Это учитывает пограничные случаи, в которых журнал CT становится Retired в процессе отправки запросов на регистрацию сертификатов.
«Встроенный SCT» означает SCT, доставленный с использованием расширения SignedCertificateTimestampList
X.509v3 в самом сертификате. Многие серверы TLS не поддерживают OCSP Stapling или расширение TLS, поэтому центры сертификации должны быть готовы встроить SCT в выпущенные сертификаты, чтобы обеспечить успешную проверку или обработку EV в Android.
Как CT Logs добавляются в Android
Критерии того, как журналы CT могут стать Qualified
, а также обстоятельства, при которых они могут стать Retired
, можно найти в Политике в отношении журналов Chrome CT.
Тайм-аут принудительного применения CT
Каждый день Google публикует новый список журналов CT, содержащий свежий log_list_timestamp
. Раз в день устройства Android будут пытаться загрузить последнюю версию этого списка для целей проверки. В любой момент времени, если на устройстве нет доступного списка журналов или если временная метка списка журналов старше 70 дней, принудительное применение CT будет отключено. Этот тайм-аут обеспечивает экосистеме CT критически важную гарантию того, что новые журналы CT могут безопасно перейти в состояние Usable в течение фиксированного периода времени после того, как станут Qualified
.
Обратите внимание, что опубликованный список журналов не предлагает ни стабильного API, ни гарантий доступности, и на него не следует полагаться. ↩