Política de Transparência dos certificados do Android

Envie suas dúvidas sobre esta política para o fórum de políticas de CT: ct-policy@chromium.org

Quando o certificado de segurança da camada de transporte (TLS) de uma conexão é validado em um app que ativa a transparência de certificados, ele é avaliado quanto à conformidade com a política de transparência de certificados (CT) do Android. Os certificados que são acompanhados por um carimbo de data/hora de certificado assinado (SCT, na sigla em inglês) que atendem a essa política são considerados em conformidade com o CT.

A conformidade com a CT é alcançada por um certificado e um conjunto de SCTs que atendem a um conjunto de requisitos técnicos aplicados por bibliotecas TLS conhecidas (incluindo o Conscrypt integrado do Android) durante a validação de certificados, que são definidos nesta política.

Estados de registro de CT

A conformidade com a CT no Android é determinada avaliando as SCTs dos registros de CT e garantindo que esses registros estejam no estado correto no momento da verificação. O conjunto de estados possíveis em que um registro de CT pode estar é:

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

Para ajudar a entender os requisitos de conformidade com a CT no Android, a definição desses estados, os requisitos de registros em cada estado, bem como a forma como esses estados afetam o comportamento do Android são descritos em detalhes no explicador do ciclo de vida de registros de CT da documentação do Chrome.

Certificados compatíveis com CT

Um certificado TLS é compatível com CT se for acompanhado de um conjunto de SCTs que atendam a pelo menos um dos critérios definidos mais adiante, dependendo de como os SCTs são enviados ao Android. Em apps que exigem CT no Android, todos os certificados TLS de confiança pública precisam ser compatíveis com CT para validação. No entanto, os certificados que não são registrados no CT ou que têm SCTs insuficientes não são considerados emitidos incorretamente.

Ao avaliar um certificado para conformidade com a CT, o Android considera vários fatores, incluindo quantos SCTs estão presentes, quem opera o registro de CT que emitirá o SCT e em que estado o registro de CT que emitiu o SCT estava, tanto no momento em que o certificado está sendo validado quanto no momento em que o SCT foi criado pelo registro de CT.

Dependendo de como as SCTs são apresentadas ao Android, a conformidade com a CT pode ser conseguida atendendo a um dos seguintes critérios:

SCTs incorporados:

  1. Pelo menos um SCT incorporado de um registro de CT que foi Qualified, Usable ou ReadOnly no momento da verificação; e
  2. Há SCTs incorporados de pelo menos N registros de CT distintos que foram Qualified, Usable, ReadOnly ou Retired no momento da verificação, em que N é definido na tabela a seguir.
  3. Entre as SCTs que atendem ao requisito 2, pelo menos duas precisam ser emitidas por operadores de registro de CT distintos, conforme reconhecido pelo Android.
  4. Entre as SCTs que atendem ao requisito 2, pelo menos uma SCT precisa ser emitida de um registro reconhecido pelo Android como compatível com o RFC 6962.
Ciclo de vida do certificado Número de SCTs de registros de CT distintos
<= 180 dias 2
> 180 dias 3

SCTs enviados por OCSP ou TLS:

  1. Pelo menos dois SCTs de um registro de CT que foi Qualified, Usable ou ReadOnly no momento da verificação; e
  2. Entre as SCTs que atendem ao requisito 1, pelo menos duas SCTs precisam ser emitidas por operadores de registro de CT distintos, conforme reconhecido pelo Android.
  3. Entre as SCTs que atendem ao requisito 1, pelo menos uma SCT precisa ser emitida de um registro de CT reconhecido pelo Android como compatível com RFC6962.

Para SCTs incorporados e aqueles enviados usando OCSP ou TLS, a exclusividade do operador de registro é definida como ter entradas separadas na seção de operadores de log_list.json.

Na rara situação em que um registro de CT muda de operador durante a vida útil, os registros de CT podem conter uma lista de previous_operators, acompanhada do carimbo de data/hora final em que esse registro foi operado pelo operador anterior. Para evitar que as mudanças no operador de registro quebrem certificados existentes, cada operador de registro de um SCT é determinado como o operador no momento da emissão do SCT, comparando o carimbo de data/hora do SCT com os carimbos de data/hora de previous_operators, se presentes.

Observações importantes

Desde que um dos critérios de conformidade de CT anteriores seja atendido por alguma combinação de SCTs apresentados no handshake, outras SCTs, independentemente do status da SCT, não afetarão o status de conformidade de CT de um certificado de forma positiva ou negativa.

Para contribuir com a conformidade de CT de um certificado, um SCT precisa ter sido emitido antes do carimbo de data/hora Retired do registro, se houver um. O Android usa o SCT mais antigo entre todos os SCTs apresentados para avaliar a conformidade do CT com os carimbos de data/hora Retired do registro de CT. Isso explica casos extremos em que um registro de CT é desativado durante o processo de envio de solicitações de registro de certificado.

"SCT incorporado" significa um SCT enviado usando a extensão SignedCertificateTimestampList X.509v3 no próprio certificado. Muitos servidores TLS não oferecem suporte à vinculação OCSP ou à extensão TLS. Portanto, as ACs precisam estar preparadas para incorporar SCTs a certificados emitidos para garantir a validação ou o tratamento de EV no Android.

Como os registros de CT são adicionados ao Android

Os critérios para que os registros de CT possam se tornar Qualified, bem como as circunstâncias que podem fazer com que eles se tornem Retired, podem ser encontrados na política de registro de CT do Chrome.

Tempo limite de aplicação de CT

Todos os dias, o Google publica uma nova lista de registros de CT que contém uma log_list_timestamp atualizada. Uma vez por dia, os dispositivos Android vão tentar fazer o download da versão mais recente dessa lista para fins de verificação. A qualquer momento, se nenhuma lista de registros estiver disponível no dispositivo ou se o carimbo de data/hora da lista de registros tiver mais de 70 dias, a aplicação de CT será desativada. Esse tempo limite garante ao ecossistema de CT que os novos registros de CT podem fazer a transição com segurança para "Usável" em um período fixo após se tornarem Qualified.