Журнал прозрачности основных модулей Android

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

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

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

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

Журнал прозрачности основных модулей Android реализован с использованием Tessera и соответствует спецификации tlog-tiles с высотой плитки 8 (каждая плитка или группа содержит не более 2 8 = 256 элементов).

Корневая директория с содержимым логов находится по адресу: https://gstatic.com/android/binary_transparency/mainline/2026/02/tile/entries/

Корневой каталог содержимого плиток находится по адресу: https://gstatic.com/android/binary_transparency/mainline/2026/02/tile/

Обратите внимание, что эти URL-адреса не являются стандартными веб-страницами. Вместо этого доступ к записям журналов в их подкаталогах следует осуществлять программно с помощью таких инструментов, как Tessera или библиотека Golang SumDB Tlog .

  • 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/mainline/2026/02/checkpoint в формате контрольной точки . Источник контрольной точки — android.transparency.goog/mainline/modules/2026/1 .

Подписи контрольных точек генерируются с использованием алгоритма подписи Ed25519 . Подпись контрольной точки может быть проверена с помощью следующего открытого ключа либо в формате верификатора заметок (как определено в golang.org/x/mod/sumdb/note ), либо в стандартном формате PEM:

  • Примечание: формат верификатора ( <name>+<key_hash>+<public_key_bytes> > ):
android.transparency.goog/mainline/modules/2026/1+1a8e4064+AfwnHm59rNQTJICchMd7a2W5PQa7nC5h2gTEfq3fhCEI
  • Формат PEM (SubjectPublicKeyInfo) :
-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEA/Ccebn2s1BMkgJyEx3trZbk9BrucLmHaBMR+rd+EIQg=
-----END PUBLIC KEY-----

Архивный журнал (V1)

До обновления в третьем квартале 2026 года журнал работал в рамках более ранней версии V1 с использованием подписей ECDSA (NIST P-256 с SHA-256) . Журнал V1 архивирован и доступен только для чтения, но остается общедоступным для проверки исторических записей:

-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEr6nPds8eKCYU42avidXNM1GDCtQ/
66GjGuIpUcZjqQNngwRFVCFZDpWuvDnqXzhJRxqccL9lbeEVVZGpa4x6pg==
-----END PUBLIC KEY-----

Поскольку модули Mainline похожи на APK-файлы, методы проверки, описанные на странице проверки APK-файлов Google, применимы и здесь. Вы можете использовать эти методы для проверки утверждений, сделанных в модели заявителя .