Журнал прозрачности приложений Google

Журнал прозрачности приложений Google использует технологию ведения журналов прозрачности.

Полезность журналов прозрачности была доказана такими проектами, как Pixel Binary Transparency и Certificate Transparency .

Журналы прозрачности реализованы с помощью деревьев Меркла. На этой странице предполагается общее знание деревьев Меркла и бинарной прозрачности. Обзор деревьев Меркла см. в разделе «Проверяемые структуры данных», а обзор работы над бинарной прозрачностью в Android — на главной странице .

Реализация логирования

Журнал прозрачности приложений Google реализован с использованием Tessera и соответствует спецификации tlog-tiles с высотой плитки 8 (каждая плитка или группа содержит не более 2 8 = 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 или библиотеки SumDB Tlog на Golang), а не через браузер. Ссылка приведена здесь для ясности.

  • Tree Tiles : Хэши внутреннего содержимого дерева Меркла и листовых узлов передаются по адресу tile/<level>/<path> (например, tile/0/000 , tile/1/000 ).
  • Пакеты записей : Полезные нагрузки файлов Log организованы в пакеты записей в папке tile/entries/<path> (например, tile/entries/000 , tile/entries/001 ), при этом каждый пакет содержит до 256 объединенных записей.

Для получения описания содержимого каждой записи обратитесь к разделу «Содержание журнала» .

Хэш корня дерева Меркла лога, содержащийся в контрольной точке , предоставляется по адресу 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 года журнал работал в рамках более ранней версии V1 с использованием подписей ECDSA (NIST P-256 с SHA-256) . Журнал V1 архивирован и доступен только для чтения, но остается общедоступным для проверки исторических записей:

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

Проверка заявок на регистрацию

На странице проверки более подробно описано, как различные компоненты журнала используются для проверки утверждений, сделанных в модели заявителя .