Google-Produktantrag – Transparenzlog

Das Google Product Application Transparency Log nutzt die Transparency Log-Technologie.

Der Nutzen von Transparenzprotokollen wurde durch Projekte wie Pixel Binary Transparency und Certificate Transparency nachgewiesen.

Transparenzlogs werden mit Merkle-Bäumen implementiert. Auf dieser Seite werden allgemeine Kenntnisse über Merkle-Bäume und binäre Transparenz vorausgesetzt. Eine Übersicht über Merkle-Bäume finden Sie unter Verifizierbare Datenstrukturen. Eine Übersicht über die Bemühungen zur binären Transparenz in Android finden Sie auf der Hauptseite.

Log-Implementierung

Das Transparenzprotokoll für Google-Produktanwendungen wird mit Tessera implementiert und entspricht der tlog-tiles-Spezifikation mit einer Kachelhöhe von 8 (jede Kachel oder jedes Bundle enthält maximal 28 = 256 Elemente).

Das Stammverzeichnis des Loginhalts wird unter https://www.gstatic.com/android/binary_transparency/google1p/apk/2026/02/tile/entries/ bereitgestellt.

Der Stamm des Kachelinhalts wird unter folgender Adresse bereitgestellt: https://www.gstatic.com/android/binary_transparency/google1p/apk/2026/02/tile/

Beachten Sie, dass es sich hierbei nicht um reguläre Webseiten handelt: Die in den Unterverzeichnissen enthaltenen Logeinträge sollten programmatisch mit einer tlog-tiles-Clientbibliothek (z. B. Tessera oder Golang SumDB Tlog-Bibliothek) und nicht über einen Browser gelesen werden. Der Link wird hier zur Klarstellung angegeben.

  • Baumkacheln: Die Hashes der internen und Blattknoten des Merkle-Baums werden unter tile/<level>/<path> bereitgestellt (z.B. tile/0/000, tile/1/000).
  • Eintrags-Bundles: Log-Leaf-Nutzlasten werden in Eintrags-Bundles unter tile/entries/<path> (z.B. tile/entries/000, tile/entries/001) organisiert, wobei jedes Bundle bis zu 256 verkettete Einträge enthält.

Eine Beschreibung der einzelnen Einträge finden Sie unter Protokollinhalt.

Der Merkle-Baum-Root-Hash des Logs, der in einem Prüfpunkt enthalten ist, wird unter https://www.gstatic.com/android/binary_transparency/google1p/apk/2026/02/checkpoint im Prüfpunktformat bereitgestellt. Der Ursprung des Prüfpunkts ist android.transparency.goog/google1p/apk/2026/1.

Prüfpunktsignaturen werden mit dem Signaturalgorithmus Ed25519 generiert. Die Signatur des Prüfpunkts kann mit dem folgenden öffentlichen Schlüssel entweder im Note-Verifier-Format (wie in golang.org/x/mod/sumdb/note definiert) oder im Standard-PEM-Format verifiziert werden:

  • Format des Prüfers für Notizen (<name>+<key_hash>+<public_key_bytes>):
android.transparency.goog/google1p/apk/2026/1+fc654374+ATr9NQE0gvOtVfj5cCStUzdlflEp3oZoNHD8pImzPj5O
  • PEM-Format (SubjectPublicKeyInfo):
-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEAOv01ATSC861V+PlwJK1TN2V+USnehmg0cPykibM+Pk4=
-----END PUBLIC KEY-----

Archiviertes Log (V1)

Vor dem Update im 3. Quartal 2026 wurde das Log mit einer früheren V1-Implementierung mit ECDSA-Signaturen (NIST P-256 mit SHA-256) betrieben. Das V1-Log ist archiviert und hat Lesezugriff, bleibt aber öffentlich zugänglich, um historische Einträge zu überprüfen:

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

Log-Ansprüche prüfen

Auf der Bestätigungsseite wird ausführlicher beschrieben, wie die verschiedenen Komponenten des Logs verwendet werden, um die im Antragstellermodell gemachten Angaben zu bestätigen.