Google Product Application Transparency Log は、透明性ログ技術を活用しています。
透明性ログの有用性は、Pixel Binary Transparency やCertificate Transparency などのプロジェクトで実証されています。
透明性ログは、マークルツリーを使用して実装されます。このページは、マークルツリーとバイナリの透明性に関する一般的な知識があることを前提としています。Merkle ツリーの概要については、検証可能なデータ構造をご覧ください。Android 内のバイナリの透明性への取り組みの概要については、メインページをご覧ください。
ログの実装
Google プロダクト アプリケーション透明性ログは Tessera を使用して実装され、tlog-tiles 仕様に準拠しています。タイルの高さは 8 です(各タイルまたはバンドルには最大 28 = 256 個のアイテムが含まれます)。
ログの内容のルートは https://www.gstatic.com/android/binary_transparency/google1p/apk/2026/02/tile/entries/ にあります。
タイル コンテンツのルートは https://www.gstatic.com/android/binary_transparency/google1p/apk/2026/02/tile/ で提供されます。
これらは通常のウェブページではありません。サブディレクトリに含まれるログエントリは、ブラウザではなく、tlog-tiles クライアント ライブラリ(Tessera や Golang SumDB Tlog ライブラリなど)を使用してプログラムで読み取る必要があります。明確にするために記すと、ここにリンクを記載しています。
- ツリータイル: Merkle ツリーの内部ノードとリーフノードのハッシュは、
tile/<level>/<path>(例:tile/0/000、tile/1/000)で提供されます。 - エントリ バンドル: ログリーフ ペイロードは、
tile/entries/<path>(tile/entries/000、tile/entries/001など)の下のエントリ バンドルに整理されます。各バンドルには、最大 256 個の連結されたエントリが保持されます。
各エントリの内容については、ログの内容をご覧ください。
チェックポイントに含まれるログのマークルツリー ルートハッシュは、https://www.gstatic.com/android/binary_transparency/google1p/apk/2026/02/checkpoint でチェックポイント形式で提供されます。チェックポイントの送信元は android.transparency.goog/google1p/apk/2026/1 です。
チェックポイント署名は、Ed25519 署名アルゴリズムを使用して生成されます。チェックポイントの署名は、次の公開鍵を使用して、メモ検証ツール形式(golang.org/x/mod/sumdb/note で定義)または標準の PEM 形式で検証できます。
- メモ検証ツールの形式(
<name>+<key_hash>+<public_key_bytes>):
android.transparency.goog/google1p/apk/2026/1+fc654374+ATr9NQE0gvOtVfj5cCStUzdlflEp3oZoNHD8pImzPj5O
- PEM 形式(SubjectPublicKeyInfo):
-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEAOv01ATSC861V+PlwJK1TN2V+USnehmg0cPykibM+Pk4=
-----END PUBLIC KEY-----
アーカイブ済みログ(V1)
2026 年第 3 四半期のアップデートより前は、ログは ECDSA(NIST P-256 と SHA-256)署名を使用する以前の V1 実装で運用されていました。V1 ログはアーカイブされ、読み取り専用になりますが、過去のエントリを検証するために引き続き一般公開されます。
- ツリーサイズ: 1,797,152 エントリ(アーカイブ時)
- ルートハッシュ:
IkmuYB2xKKEOLiaQkIho1o9/uGjrKDbk8xa3xXaFeHY= - チェックポイント: https://www.gstatic.com/android/binary_transparency/google1p/apk/2026/01/checkpoint.txt
- データリーフ:
gstatic.comの個々のファイルサイズとストレージの制限(単一の静的ファイルの上限は 200 MiB)により、完全なアーカイブ ログのリーフ ペイロードは 2 つのシーケンシャル ファイルに分割されます。- パート 1(エントリ 0 ~ 1,714,860): https://www.gstatic.com/android/binary_transparency/google1p/apk/2026/01/package_info.txt
- パート 2(エントリ 1,714,861 ~ 1,797,151): https://www.gstatic.com/android/binary_transparency/google1p/apk/2026/01/package_info2.txt
- タイルルート:
https://www.gstatic.com/android/binary_transparency/google1p/apk/2026/01/tile/ - 公開鍵(PEM 形式、ECDSA P-256):
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEaP7xodTP5/teDOUYFAUHF0MqvOXt
+jamtcDYWxTjY99hyYczpB/cF2fxHhIqEznNpLcI2Vorl+iEchWhZ0y3Mg==
-----END PUBLIC KEY-----
ログの申し立てを確認する
検証ページでは、ログのさまざまなコンポーネントを使用して、Claimant Model で行われたクレームを検証する方法について詳しく説明しています。