Registro de transparência de aplicativos de produtos do Google

O registro de transparência de aplicativos de produtos do Google aproveita a tecnologia de registro de transparência.

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

Os registros de transparência são implementados com árvores Merkle. Esta página pressupõe conhecimento geral de árvores Merkle e transparência binária. Consulte Estruturas de dados verificáveis para uma visão geral das árvores 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 de aplicativos de produtos do Google é implementado usando Tessera e segue a especificação tlog-tiles com uma altura de bloco de 8 (cada bloco ou pacote contém no máximo 28 = 256 itens).

A raiz do conteúdo do registro é disponibilizada em: https://gstatic.com/android/binary_transparency/google1p/apk/2026/02/tile/entries/

A raiz do conteúdo do bloco é disponibilizada em: https://gstatic.com/android/binary_transparency/google1p/apk/2026/02/tile/

Observe que estas não são páginas da Web comuns: as entradas de registro contidas nos subdiretórios precisam ser lidas programaticamente com uma biblioteca de clientes tlog-tiles (como Tessera ou Golang SumDB Tlog) e não por um navegador. Declaramos o link aqui para fins de esclarecimento.

  • Blocos de árvore: os hashes de nós internos e folha da árvore Merkle são disponibilizados em tile/<level>/<path> (por exemplo, tile/0/000, tile/1/000).
  • Pacotes de entrada: os payloads de folha de registro são organizados em pacotes de entrada em tile/entries/<path> (por exemplo, tile/entries/000, tile/entries/001), com cada pacote contendo até 256 entradas concatenadas.

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

O hash de raiz da árvore Merkle do registro, contido em um checkpoint, é disponibilizado em https://gstatic.com/android/binary_transparency/google1p/apk/2026/02/checkpoint no formato de checkpoint. A origem do checkpoint é android.transparency.goog/google1p/apk/2026/1.

As assinaturas de checkpoint são geradas usando o algoritmo de assinatura Ed25519. A assinatura do checkpoint pode ser verificada com a seguinte chave pública no formato de verificador de notas (conforme definido em golang.org/x/mod/sumdb/note) ou no formato PEM padrão:

  • Formato de verificador de observações (<name>+<key_hash>+<public_key_bytes>):
android.transparency.goog/google1p/apk/2026/1+fc654374+ATr9NQE0gvOtVfj5cCStUzdlflEp3oZoNHD8pImzPj5O
  • Formato PEM (SubjectPublicKeyInfo):
-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEAOv01ATSC861V+PlwJK1TN2V+USnehmg0cPykibM+Pk4=
-----END PUBLIC KEY-----

Registro arquivado (V1)

Antes da atualização do terceiro trimestre de 2026, o registro operava em uma implementação V1 anterior usando assinaturas ECDSA (NIST P-256 com SHA-256). O registro V1 é arquivado e somente leitura, mas permanece acessível publicamente para verificar entradas históricas:

-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEaP7xodTP5/teDOUYFAUHF0MqvOXt
+jamtcDYWxTjY99hyYczpB/cF2fxHhIqEznNpLcI2Vorl+iEchWhZ0y3Mg==
-----END PUBLIC KEY-----

Verificar reivindicações de registro

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