В журнале прозрачности приложений Google используется технология журнала прозрачности.
Полезность журналов прозрачности доказана такими проектами, как прозрачность двоичного кода Pixel и проверка сертификата.
Журналы прозрачности реализованы с помощью деревьев Меркла. Для понимания информации на этой странице требуются общие знания о деревьях Меркла и прозрачности двоичных файлов. Обзор деревьев Меркла можно найти в статье Проверяемые структуры данных, а обзор инициативы по обеспечению прозрачности двоичного кода в 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 или Tlog для Golang SumDB), а не через браузер. Для ясности мы приводим ссылку здесь.
- Фрагменты дерева. Хеши внутренних и листовых узлов дерева Меркла передаются по адресу
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.
Подпись контрольной точки можно проверить с помощью следующего открытого ключа в формате note verifier (как определено в 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-----
Архивный журнал (версия 1)
До обновления в третьем квартале 2026 года журнал работал на основе более ранней реализации V1 с использованием подписей ECDSA (NIST P-256 с SHA-256). Журнал V1 заархивирован и доступен только для чтения, но по-прежнему открыт для всех, чтобы можно было проверять старые записи.
- Размер дерева: 1 797 152 записи (на момент архивации).
- Корневой хеш:
IkmuYB2xKKEOLiaQkIho1o9/uGjrKDbk8xa3xXaFeHY= - Контрольная точка: https://www.gstatic.com/android/binary_transparency/google1p/apk/2026/01/checkpoint.txt
- Листья данных. Из-за ограничений на размер отдельных файлов и хранилище в
gstatic.com(максимальный размер одного статического файла составляет 200 МиБ) полезная нагрузка листьев для полного архивированного журнала разделена на два последовательных файла:- Часть 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-----
Проверка утверждений в журналах
На странице проверки подробно описано, как различные компоненты журнала используются для проверки утверждений, сделанных в модели заявителя.