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 :
- Taille de l'arborescence : 1 797 152 entrées (au moment de l'archivage)
- Hachage racine :
IkmuYB2xKKEOLiaQkIho1o9/uGjrKDbk8xa3xXaFeHY= - Point de contrôle : https://gstatic.com/android/binary_transparency/google1p/apk/2026/01/checkpoint.txt
- Feuilles de données : en raison de la taille des fichiers individuels et des limites de stockage sur
gstatic.com(qui limite les fichiers statiques uniques à 200 Mio), les charges utiles des feuilles du journal archivé complet sont partitionnées sur deux fichiers séquentiels :- Partie 1 (entrées 0 à 1 714 860) : https://gstatic.com/android/binary_transparency/google1p/apk/2026/01/package_info.txt
- Partie 2 (entrées 1 714 861 à 1 797 151) : https://gstatic.com/android/binary_transparency/google1p/apk/2026/01/package_info2.txt
- Racine de la tuile :
https://gstatic.com/android/binary_transparency/google1p/apk/2026/01/tile/ - Clé publique (format PEM, ECDSA P-256) :
-----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.