Journal de transparence des applications de produits Google

Le journal de transparence des applications Google utilise la technologie des journaux de transparence.

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

Les journaux de transparence sont implémentés avec des arbres de Merkle. Cette page suppose que vous possédez des connaissances générales sur les arbres de Merkle et 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 de l'effort de transparence binaire dans Android.

Implémentation des journaux

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 diffusée à l'adresse suivante : https://www.gstatic.com/android/binary_transparency/google1p/apk/2026/02/tile/entries/

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

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

  • Tuiles d'arborescence : les hachages de l'intérieur et des nœuds feuilles de l'arbre de Merkle sont diffusés sous tile/<level>/<path> (par exemple, tile/0/000, tile/1/000).
  • Groupes d'entrées : les charges utiles des feuilles de journaux sont organisées en groupes d'entrées sous tile/entries/<path> (par exemple, tile/entries/000, tile/entries/001), chaque groupe contenant jusqu'à 256 entrées concaténées.

Pour obtenir une description du contenu de chaque entrée, consultez la section Contenu du journal.

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

Les signatures de point 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 validée avec la clé publique suivante au format de vérificateur de note (tel que défini dans golang.org/x/mod/sumdb/note) ou au format PEM standard :

  • Format du 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 il 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 de 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 effectuées dans le modèle de demandeur.