Journal de transparence des applications de produits Google

Le journal de transparence des applications de produits Google exploite la technologie de journal de transparence.

L'utilité des journaux de transparence a été prouvée par des projets tels que Pixel Binary Transparency et aussi transparence des certificats.

Les journaux de transparence sont implémentés avec des arbres de Merkle. Cette page part du principe que vous avez une connaissance générale des arbres de Merkle et de la transparence binaire. Consultez Structures de données vérifiables pour obtenir une présentation des arbres de Merkle et la page principale pour obtenir une présentation des efforts de transparence binaire dans Android.

Implémentation du journal

Le journal de transparence des applications de produits Google est implémenté à l'aide de Tessera et respecte la spécification tlog-tiles avec une hauteur de tuile de 8 (chaque tuile ou bundle contient au maximum 28 = 256 éléments).

La racine du contenu du journal est disponible à l'adresse suivante : https://gstatic.com/android/binary_transparency/google1p/apk/2026/02/tile/entries/

La racine du contenu de la tuile est disponible à l'adresse suivante : https://gstatic.com/android/binary_transparency/google1p/apk/2026/02/tile/

Notez qu'il ne s'agit pas de pages Web classiques : les entrées de journal contenues dans les sous-répertoires doivent être lues par programmation avec une bibliothèque cliente tlog-tiles (telle que Tessera ou la bibliothèque Golang SumDB Tlog) et non via un navigateur. Nous indiquons le lien ici par souci de clarté.

  • Tuiles d'arborescence : les hachages intérieurs et de nœuds feuilles de l'arbre de Merkle sont disponibles sous tile/<level>/<path> (par exemple, tile/0/000, tile/1/000).
  • Bundles d'entrées : les charges utiles des feuilles de journal sont organisées en bundles d'entrées sous tile/entries/<path> (par exemple, tile/entries/000, tile/entries/001), avec chaque bundle contenant jusqu'à 256 entrées concaténées.

Consultez Contenu du journal pour obtenir une description du contenu de chaque entrée.

Le hachage racine de l'arbre de Merkle du journal, contenu dans un point de contrôle, est disponible à l'adresse https://gstatic.com/android/binary_transparency/google1p/apk/2026/02/checkpoint au format point de contrôle. L'origine du point de contrôle est android.transparency.goog/google1p/apk/2026/1.

Les signatures de points de contrôle sont générées à l'aide de l'algorithme de signature Ed25519. La signature du point de contrôle peut être vérifiée avec la clé publique suivante au format de vérificateur de notes (tel que défini dans golang.org/x/mod/sumdb/note) ou au format PEM standard :

  • Format de vérificateur de notes (<name>+<key_hash>+<public_key_bytes>) :
android.transparency.goog/google1p/apk/2026/1+fc654374+ATr9NQE0gvOtVfj5cCStUzdlflEp3oZoNHD8pImzPj5O
  • Format PEM (SubjectPublicKeyInfo):
-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEAOv01ATSC861V+PlwJK1TN2V+USnehmg0cPykibM+Pk4=
-----END PUBLIC KEY-----

Journal archivé (V1)

Avant la mise à jour du troisième trimestre 2026, le journal fonctionnait selon une implémentation V1 antérieure utilisant des signatures ECDSA (NIST P-256 avec SHA-256). Le journal V1 est archivé et en lecture seule, mais reste accessible au public pour vérifier les entrées historiques :

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

Vérifier les revendications du journal

La page de validation décrit plus en détail comment les différents composants du journal sont utilisés pour valider les revendications faites dans le modèle de demandeur.