Google プロダクト アプリケーションの透明性ログは、透明性ログ技術を活用しています。
透明性ログの有用性は、 Pixel Binary Transparency や Certificate Transparency などのプロジェクトで実証されています。
透明性ログは Merkle ツリーを使用して実装されています。 このページでは、Merkle ツリーとバイナリの透明性に関する一般的な知識があることを前提としています。 Merkle ツリーの概要については、検証可能なデータ構造をご覧ください。Android 内のバイナリの透明性に関する取り組みの概要については、 メインページをご覧ください。
ログの実装
Google プロダクト アプリケーションの透明性ログは Tesseraを使用して実装されており、タイル高さが 8 のtlog-tiles 仕様に準拠しています(各タイルまたはバンドルには最大 28 = 256 個のアイテムが含まれます)。
ログコンテンツのルートは、https://gstatic.com/android/binary_transparency/google1p/apk/2026/02/tile/entries/ で提供されます。
タイルコンテンツのルートは、https://gstatic.com/android/binary_transparency/google1p/apk/2026/02/tile/ で提供されます。
これらは通常のウェブページではありません。
サブディレクトリに含まれるログエントリは、ブラウザではなく、tlog-tilesクライアント
ライブラリ(Tesseraや Golang SumDBTlog ライブラリなど)を使用してプログラムで読み取る必要があります。明確にするために記すと、ここにリンクを記載します。
- ツリータイル: Merkle ツリーの内部ノードとリーフノードのハッシュは、
tile/<level>/<path>(tile/0/000、tile/1/000など)で提供されます。 - エントリ バンドル: ログのリーフ ペイロードは、
tile/entries/<path>(tile/entries/000、tile/entries/001など)のエントリ バンドルに整理されます。 各バンドルには、最大 256 個の連結されたエントリが格納されます。
各 エントリに含まれる内容については、ログの内容をご覧ください。
ログの Merkle ツリーのルートハッシュ(checkpoint に含まれる)は、チェックポイント形式で https://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(SHA-256 を使用した NIST P-256) 署名を使用する以前の V1 実装で動作していました。 V1 ログはアーカイブされ、読み取り専用ですが、過去のエントリを確認するために一般公開されています。
- ツリーサイズ: 1,797,152 エントリ(アーカイブ時)
- ルートハッシュ:
IkmuYB2xKKEOLiaQkIho1o9/uGjrKDbk8xa3xXaFeHY= - チェックポイント: https://gstatic.com/android/binary_transparency/google1p/apk/2026/01/checkpoint.txt
- データリーフ:
gstatic.comの個々のファイルサイズとストレージの制限(単一の静的ファイルの上限は 200 MiB)により、アーカイブされたログ全体のリーフ ペイロードは、次の 2 つの連続するファイルに分割されます:- パート 1(エントリ 0 ~ 1,714,860): https://gstatic.com/android/binary_transparency/google1p/apk/2026/01/package_info.txt
- パート 2(エントリ 1,714,861 ~ 1,797,151): https://gstatic.com/android/binary_transparency/google1p/apk/2026/01/package_info2.txt
- タイルルート:
https://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-----
ログのクレームを確認する
検証ページでは、ログの さまざまなコンポーネントを使用して、 クレーム元モデルで行われたクレームを検証する方法について詳しく説明します。