Registro de transparência do APK dos serviços do sistema do Google

O registro de transparência do APK dos serviços do sistema do Google usa a tecnologia de registro de transparência.

A utilidade dos registros de transparência foi comprovada por projetos como a Transparência de binários do Pixel e a Transparência de certificados.

Os registros de transparência são implementados com árvores Merkle. Esta página pressupõe conhecimento geral sobre árvores de Merkle e transparência binária. Consulte Estruturas de dados verificáveis para uma visão geral das árvores de Merkle e a página principal para uma visão geral do esforço de transparência binária no Android.

Implementação de registros

O registro de transparência do APK dos serviços do sistema do Google é implementado como uma árvore Merkle baseada em blocos. A raiz do conteúdo do bloco é veiculada em https://developers.google.com/android/binary_transparency/google1p/tile/. Essa não é uma página da Web comum: as entradas de registro contidas nos subdiretórios dela precisam ser lidas de forma programática com a biblioteca Tlog do Golang SumDB, não por um navegador. Para fins de esclarecimento, informamos o link aqui.

Consulte Conteúdo do registro para uma descrição do que cada entrada contém.

O hash da raiz da árvore de Merkle de um registro, contido em um checkpoint, é veiculado em https://developers.google.com/android/binary_transparency/google1p/checkpoint.txt no formato de checkpoint. As folhas dessa árvore de Merkle são veiculadas em https://developers.google.com/android/binary_transparency/google1p/package_info.txt. A assinatura do ponto de verificação pode ser verificada com a chave pública descrita no certificado a seguir.

-----BEGIN CERTIFICATE-----
MIICPzCCAeWgAwIBAgIUAV4UWNut89Vj0EIwMTUlOYclCMMwCgYIKoZIzj0EAwIw
dDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1v
dW50YWluIFZpZXcxFDASBgNVBAoMC0dvb2dsZSBJbmMuMRAwDgYDVQQLDAdBbmRy
b2lkMRAwDgYDVQQDDAdBbmRyb2lkMCAXDTI0MDkyNTIzNTYwOVoYDzIwNTQwOTE4
MjM1NjA5WjB0MQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQG
A1UEBwwNTW91bnRhaW4gVmlldzEUMBIGA1UECgwLR29vZ2xlIEluYy4xEDAOBgNV
BAsMB0FuZHJvaWQxEDAOBgNVBAMMB0FuZHJvaWQwWTATBgcqhkjOPQIBBggqhkjO
PQMBBwNCAASofcYuVig/lsWwIfwMfLk22mMltFDDd8k1IBNKajw6VdQynSh7XapH
Ace10/uT1ceUmwJinyOPR1Bpj431+18vo1MwUTAdBgNVHQ4EFgQUwHSDZ/iAB8Go
Rt1oDkVktxyizhYwHwYDVR0jBBgwFoAUwHSDZ/iAB8GoRt1oDkVktxyizhYwDwYD
VR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAgNIADBFAiEAleFB+Arfv1KW0r6TbSEX
EfvBnJMPqRNAIVPd8LrVhw0CIAX56Txqs8H5XWdMoNF21w8Z0PmUNvLLtZtM+25O
wjq8
-----END CERTIFICATE-----

A mesma chave pública também pode ser encontrada no bloco de chaves públicas PGP da Segurança do Android em https://services.google.com/corporate/publickey.txt, identificada por CFAB31BE8DD7AC42FC721980ECA5C68599F17322 se você preferir PGP.

A página de verificação descreve em mais detalhes como os vários componentes do registro são usados para verificar as declarações feitas no modelo de requerente.

Uma prova de conceito não intencional

A entrada no índice 39 deste registro é uma entrada de teste incorreta. A existência contínua dele é sua garantia da integridade do nosso registro. Não podemos excluir esse registro, o que prova que ninguém pode ocultar entradas maliciosas. Consulte a página de errata para detalhes específicos.