Si tienes alguna pregunta sobre esta Política, dirígela al foro de la Política de CT: ct-policy@chromium.org
Cuando se valida el certificado de seguridad de la capa de transporte (TLS) de una conexión, se evalúa el cumplimiento de la Política de Certificado de Transparencia (CT) de Android. Se dice que los certificados que están acompañados de marcas de tiempo de certificados firmados (SCT) que cumplen con esta Política cumplen con el CT.
El cumplimiento del CT se logra cuando un certificado y un conjunto de SCT que lo acompañan cumplen con un conjunto de requisitos técnicos que aplican las bibliotecas TLS populares (incluido el Conscrypt integrado) durante la validación del certificado, que se definen en esta Política.
Estados de los registros de CT
El cumplimiento del CT en Android se determina mediante la evaluación de las SCT de los registros de CT y la garantía de 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:
PendingQualifiedUsableReadOnlyRetiredRejected
Para ayudar a comprender los requisitos para el cumplimiento del CT en Android, la definición de estos estados, los requisitos de los registros en cada estado, así como la forma en que estos estados afectan el comportamiento de Android se describen en detalle en la explicación del ciclo de vida de los registros de CT de la documentación de Chrome.
Certificados que cumplen con el CT
Un certificado TLS cumple con el CT si está acompañado de un conjunto de SCT que satisfacen al menos uno de los criterios definidos más adelante, según cómo se entreguen las SCT a Android. En las apps que aplican el CT de Android, se requiere que todos los certificados TLS de confianza pública cumplan con el CT para que se validen correctamente. Sin embargo, los certificados que no se registran en el CT o que no tienen suficientes SCT no se consideran emitidos de forma incorrecta.
Cuando evalúa un certificado para el cumplimiento del CT, Android considera varios factores, incluida la cantidad de SCT presentes, quién opera el registro de CT que emitió la SCT y en qué estado se encontraba el registro de CT que emitió la SCT, tanto en el momento en que se valida el certificado como en el momento en que el registro de CT creó la SCT.
Según cómo se presenten las SCT a Android, el cumplimiento del CT se puede lograr si se cumple uno de los siguientes criterios:
SCT incorporadas:
- Al menos una SCT incorporada de un registro de CT que era
Qualified,UsableoReadOnlyen el momento de la verificación - Hay SCT incorporadas de al menos N registros de CT distintos que eran
Qualified,Usable,ReadOnlyoRetireden el momento de la verificación, donde N se define en la siguiente tabla - Entre las SCT que cumplen con el requisito 2, al menos dos SCT deben emitirse desde operadores de registros de CT distintos, según lo reconoce Android
| Duración del certificado | Cantidad de SCT de registros de CT distintos |
|---|---|
| <= 180 días | 2 |
| > 180 días | 3 |
SCT entregadas a través de OCSP o TLS:
- Al menos dos SCT de un registro de CT que era
Qualified,UsableoReadOnlyen el momento de la verificación - Entre las SCT que cumplen con el requisito 1, al menos dos SCT deben emitirse desde operadores de registros de CT distintos, según lo reconoce Android
Tanto para las SCT incorporadas como para las que se entregan con OCSP o TLS, la singularidad del operador de registro se define como tener entradas separadas en la sección de operadores de la lista de registros.
En la rara situación de que un registro de CT cambie de operador durante su ciclo de vida, los registros de CT pueden contener, de manera opcional, una lista de previous_operators, acompañada de la marca de tiempo final en la que el operador anterior operó este registro.
Para evitar que los cambios en el operador de registro 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 que se cumpla uno de los criterios de cumplimiento del CT anteriores con alguna combinación de SCT presentadas en el protocolo de enlace, las SCT adicionales, independientemente de su estado, no afectarán el estado de cumplimiento del CT de un certificado de forma positiva ni negativa.
Para contribuir al cumplimiento del CT de un certificado, se debe haber emitido una SCT antes de la marca de tiempo Retired del registro, si existe.
Android usa la SCT más antigua entre todas las SCT presentadas para evaluar el cumplimiento del CT en comparación con las marcas de tiempo Retired del registro de CT.
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 incorporada" significa una SCT entregada con la extensión SignedCertificateTimestampList X.509v3 dentro del certificado. Muchos servidores TLS no admiten el grapado OCSP ni la extensión TLS, por lo que las CA deben estar preparadas para incorporar SCT en los certificados emitidos para 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 puedan convertirse 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 aplicación del CT
Todos los días, Google publica una nueva lista de registros de CT que contiene una log_list_timestamp nueva. 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 del CT.
Este tiempo de espera proporciona una garantía fundamental al ecosistema del CT de que los registros de CT nuevos pueden realizar la transición de forma segura a Usable dentro de 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 ni garantías de disponibilidad.
Android pone a disposición su lista de registros de CT para los emisores 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 su contenido.
La dependencia no autorizada de la lista de registros de 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 totalidad. Si estás explorando la posibilidad de agregar la aplicación del CT a tu app, usa un mecanismo compatible con la plataforma Android.
El uso de la lista de registros de CT de Android fuera de 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 del 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 de 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.