Пожалуйста, направляйте любые вопросы по этой Политике на форум CT Policy: ct-policy@chromium.org
При проверке сертификата TLS (Transport Layer Security) соединения в приложении, использующем функцию прозрачности сертификатов , он оценивается на соответствие политике прозрачности сертификатов Android (CT). Сертификаты, сопровождаемые меткой времени подписанного сертификата (SCT), удовлетворяющей этой политике, считаются соответствующими CT.
Соответствие CT достигается за счет сертификата и набора сопутствующих SCT, отвечающих набору технических требований, предъявляемых популярными библиотеками TLS (включая встроенную 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, уникальность оператора журнала определяется как наличие отдельных записей в разделе операторов списка журнала .
В редких случаях, когда в журнале CT в течение его жизненного цикла меняются операторы, журналы CT могут содержать список previous_operators
с конечной меткой времени, указывающей, что этот журнал обрабатывался предыдущим оператором. Чтобы предотвратить нарушение существующих сертификатов при изменении оператора журнала, оператор журнала каждого SCT определяется как оператор на момент выпуска SCT путем сравнения метки времени SCT с метками времени previous_operators
(если таковые имеются).
Важные примечания
Пока один из предыдущих критериев соответствия CT выполняется какой-либо комбинацией SCT, представленных в рукопожатии, дополнительные SCT, независимо от статуса SCT, не повлияют на статус соответствия CT сертификата ни положительно, ни отрицательно.
Чтобы сертификат соответствовал требованиям CT, SCT должен быть выпущен до временной метки Retired
журнала, если таковая имеется. Android использует самую раннюю SCT из всех представленных SCT для оценки соответствия CT по временным меткам Retired
» журнала CT. Это учитывает пограничные случаи, когда журнал CT становится упразднённым в процессе отправки запросов на регистрацию сертификатов.
«Встроенный SCT» означает SCT, предоставленный с использованием расширения SignedCertificateTimestampList
X.509v3 внутри самого сертификата. Многие TLS-серверы не поддерживают OCSP Stapling или расширение TLS, поэтому центры сертификации должны быть готовы встраивать SCT в выданные сертификаты для обеспечения успешной проверки или обработки EV в Android.
Как журналы CT добавляются в Android
Критерии, по которым журналы CT могут стать Qualified
, а также обстоятельства, при которых они могут стать Retired
, можно найти в Политике в отношении журналов Chrome CT.
Тайм-аут принудительного применения CT
Каждый день Google публикует новый список журналов CT, содержащий актуальную метку log_list_timestamp
. Раз в день устройства Android пытаются загрузить последнюю версию этого списка для проверки. В любой момент времени, если на устройстве нет доступного списка журналов или его временная метка старше 70 дней, принудительное применение CT будет отключено. Этот тайм-аут обеспечивает экосистеме CT критически важную гарантию того, что новые журналы CT смогут безопасно перейти в состояние Usable в течение фиксированного периода времени после получения Qualified
.
Список журналов Android
Список журналов Android публикуется в файле log_list.json , который обновляется ежедневно. Этот список журналов предоставляется без стабильного API, SLA или гарантий доступности.
Android предоставляет свой список журналов CT для организаций, предоставляющих сертификаты (например, органов сертификации), а также для мониторов и аудиторов CT, желающих поддерживать совместимость с экосистемами CT и WebPKI или исследовать их содержимое.
Несанкционированное использование списка журналов Android CT ставит под угрозу не только ваших пользователей, но и пользователей Android и экосистему CT в целом. Если вы рассматриваете возможность добавления функции CT в своё приложение, используйте механизм, поддерживаемый платформой Android .
Использование списка журналов Android CT вне рамок данной политики осуществляется на ваш страх и риск и может привести к сбою вашего приложения или библиотеки. Android должна иметь возможность вносить изменения в список журналов CT в ответ на инциденты в экосистеме CT для обеспечения безопасности пользователей Android. Android может принять меры для обеспечения того, чтобы зависимости от списка журналов CT от сторонних поставщиков не ставили под угрозу способность Android реагировать на такие инциденты, включая необъявленные изменения списка журналов для предотвращения несанкционированного использования.