Si tienes preguntas sobre esta política, dirígete al foro de políticas de CT: ct-policy@chromium.org
Cuando se valida el certificado de seguridad de la capa de transporte (TLS) de una conexión en una app que habilita la transparencia de certificados, se evalúa su cumplimiento con la política de transparencia de certificados (CT) de Android. Se dice que los certificados que se acompañan de marcas de tiempo de certificado firmado (SCT) que satisfacen esta política son compatibles con el CT.
El cumplimiento de CT se logra con un certificado y un conjunto de SCT complementarios que satisfacen un conjunto de requisitos técnicos que aplican las bibliotecas de TLS populares (incluida la biblioteca integrada Conscrypt) durante la validación del certificado, que se definen en esta política.
Estados de los registros de CT
El cumplimiento de CT en Android se determina evaluando los SCT de los registros de CT y garantizando que estos registros se encuentren en los estados correctos en el momento de la verificación. El conjunto de estados posibles en los que puede estar un registro de CT es el siguiente:
Pending
Qualified
Usable
ReadOnly
Retired
Rejected
Para ayudar a comprender los requisitos de cumplimiento de la CT en Android, la definición de estos estados, los requisitos de los registros en cada estado y cómo estos estados afectan el comportamiento de Android, se describen en detalle en el Explicador del ciclo de vida del registro de CT de la documentación de Chrome.
Certificados que cumplen con la normativa de CT
Un certificado TLS es compatible con CT si se acompaña de un conjunto de SCT que satisface al menos uno de los criterios definidos más adelante, según cómo se entreguen los SCT a Android. En las apps de Android que aplican la CT, todos los certificados TLS de confianza pública deben ser compatibles con la CT para validarse correctamente. Sin embargo, los certificados que no se registran en la CT o que tienen SCT insuficientes no se consideran emitidos de forma incorrecta.
Cuando se evalúa un certificado para determinar si cumple con los requisitos de CT, Android considera varios factores, como la cantidad de SCT presentes, quién opera el registro de CT que emitió el SCT y en qué estado se encontraba el registro de CT que emitió el SCT, tanto en el momento en que se valida el certificado como en el momento en que el registro de CT creó el SCT.
Según cómo se presenten los SCT a Android, el cumplimiento de la CT se puede lograr si se cumple con uno de los siguientes criterios:
SCT incorporados:
- Al menos un SCT incorporado de un registro de CT que era
Qualified
,Usable
oReadOnly
en el momento de la verificación - Hay SCT incorporadas de al menos N registros de CT distintos que eran
Qualified
,Usable
,ReadOnly
oRetired
en el momento de la verificación, donde N se define en la siguiente tabla. - Entre los SCT que satisfacen el requisito 2, al menos dos deben emitirse desde operadores de registros de CT distintos, según el reconocimiento de Android.
- Entre los SCT que satisfacen el requisito 2, al menos uno debe emitirse desde un registro que Android reconozca como compatible con RFC 6962.
Ciclo de vida del certificado | Cantidad de SCT de registros de CT distintos |
---|---|
<= 180 días | 2 |
Más de 180 días | 3 |
SCTs entregados a través de OCSP o TLS:
- Al menos dos SCT de un registro de CT que era
Qualified
,Usable
oReadOnly
en el momento de la verificación - Entre los SCT que satisfacen el requisito 1, al menos dos deben emitirse desde operadores de registros de CT distintos, según el reconocimiento de Android.
- Entre los SCT que satisfacen el requisito 1, al menos uno debe emitirse desde un registro de CT que Android reconozca como compatible con RFC6962.
Tanto para los SCT incorporados como para los que se entregan con OCSP o TLS, la singularidad del operador de registro se define como la existencia de entradas independientes dentro de la sección de operadores de la lista de registros.
En la rara situación en la que un registro de CT cambia de operador durante su vida útil, los registros de CT pueden incluir una lista de previous_operators
, junto con la marca de tiempo final en la que el operador anterior operó este registro.
Para evitar que los cambios en los operadores de registros interrumpan los certificados existentes, se determina que el operador de registro de cada SCT es el operador en el momento de la emisión de la SCT comparando la marca de tiempo de la SCT con las marcas de tiempo de previous_operators
, si están presentes.
Notas importantes
Siempre y cuando se cumpla uno de los criterios de cumplimiento de CT anteriores con alguna combinación de SCT que se presente en el protocolo de enlace, los SCT adicionales, independientemente de su estado, no afectarán el estado de cumplimiento de CT de un certificado de forma positiva ni negativa.
Para contribuir al cumplimiento de CT de un certificado, se debe haber emitido un SCT antes de la marca de tiempo Retired
del registro, si existe.
Android usa el SCT más antiguo entre todos los SCT presentados para evaluar el cumplimiento de la CT en relación con las marcas de tiempo de los registros de CT Retired
.
Esto tiene en cuenta los casos extremos en los que un registro de CT se retira durante el proceso de envío de solicitudes de registro de certificados.
"SCT incorporado" significa un SCT que se entrega con la extensión SignedCertificateTimestampList
de X.509v3 dentro del certificado. Muchos servidores TLS no admiten el OCSP Stapling ni la extensión TLS, por lo que las AC deben estar preparadas para incorporar SCT en los certificados emitidos y garantizar la validación correcta o el tratamiento de EV en Android.
Cómo se agregan los registros de CT a Android
Los criterios para que los registros de CT se conviertan en Qualified
, así como las circunstancias que pueden hacer que se conviertan en Retired
, se pueden encontrar en la Política de registros de CT de Chrome.
Tiempo de espera de la aplicación de la CT
Todos los días, Google publica una nueva lista de registros de CT que contiene un log_list_timestamp
nuevo. Una vez al día, los dispositivos Android intentarán descargar la versión más reciente de esta lista para fines de verificación. En cualquier momento, si no hay una lista de registros disponible en el dispositivo o si la marca de tiempo de la lista de registros tiene más de 70 días, se inhabilitará la aplicación de la CT.
Este tiempo de espera proporciona una garantía fundamental al ecosistema de CT de que los registros de CT nuevos pueden pasar de forma segura a Usable en un período fijo después de convertirse en Qualified
.
Lista de registros de Android
La lista de registros de Android se publica en log_list.json, que se actualiza diariamente. Esta lista de registros se ofrece sin una API estable, un ANS o garantías de disponibilidad.
Android pone a disposición su lista de registros de CT para los fines de los solicitantes de certificados (como las autoridades de certificación) y los supervisores y auditores de CT que deseen seguir siendo compatibles con los ecosistemas de CT y WebPKI, o investigar sus contenidos.
La dependencia no autorizada de la lista de registros del CT de Android pone en peligro no solo a tus usuarios, sino también a los usuarios de Android y al ecosistema del CT en su conjunto. Si estás explorando la posibilidad de agregar la aplicación de la CT a tu app, usa un mecanismo compatible con la plataforma de Android.
El uso de la lista de registros de CT de Android fuera de línea con esta política se realiza bajo tu propio riesgo y puede provocar la interrupción de tu aplicación o biblioteca. Android debe poder realizar cambios en la lista de registros de CT en respuesta a incidentes en el ecosistema de CT para mantener la seguridad de los usuarios de Android. Android puede tomar medidas para garantizar que las dependencias de terceros en la lista de registros del CT no pongan en riesgo la capacidad de Android para responder a tales incidentes, incluidos los cambios no anunciados en la lista de registros para interrumpir el uso no autorizado.