В журнале прозрачности основных модулей Android используются проверяемые структуры данных, которые обеспечивают целостность основных модулей.
Полезность журналов прозрачности доказана такими проектами, как прозрачность исполняемых файлов Pixel и проверка сертификата.
Журналы прозрачности основаны на деревьях Меркла. Для понимания информации на этой странице требуются общие знания о деревьях Меркла и прозрачности двоичных файлов. Общие сведения о деревьях Меркла можно найти в статье Проверяемые структуры данных, а о прозрачности двоичного кода в Android – на главной странице.
Реализация журнала
Журнал прозрачности основных модулей Android реализован с помощью Tessera и соответствует спецификации tlog-tiles с высотой тайла 8 (каждый тайл или пакет содержит не более 28 = 256 элементов).
Корневой каталог журнала находится по адресу:
https://www.gstatic.com/android/binary_transparency/mainline/2026/02/tile/entries/
Корневой каталог содержимого тайла находится по адресу:
https://www.gstatic.com/android/binary_transparency/mainline/2026/02/tile/
Обратите внимание, что эти URL не являются стандартными веб-страницами. Вместо этого доступ к записям в журнале в его подкаталогах должен осуществляться программно с помощью таких инструментов, как 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/mainline/2026/02/checkpoint в формате контрольной точки.
Источник контрольной точки – android.transparency.goog/mainline/modules/2026/1.
Подписи контрольных точек генерируются с помощью алгоритма Ed25519.
Подпись контрольной точки можно проверить с помощью следующего открытого ключа в формате note verifier (как определено в 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-----
Архивный журнал (версия 1)
До обновления в третьем квартале 2026 года журнал работал на основе более ранней реализации V1 с использованием подписей ECDSA (NIST P-256 с SHA-256). Журнал V1 заархивирован и доступен только для чтения, но по-прежнему открыт для всех, чтобы можно было проверять старые записи.
- Контрольная точка: https://www.gstatic.com/android/binary_transparency/mainline/2026/01/checkpoint.txt.
- Листья данных: https://www.gstatic.com/android/binary_transparency/mainline/2026/01/module_info.txt
- Корневой элемент тайла:
https://www.gstatic.com/android/binary_transparency/mainline/2026/01/tile/ - Открытый ключ (формат PEM, ECDSA P-256):
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEr6nPds8eKCYU42avidXNM1GDCtQ/
66GjGuIpUcZjqQNngwRFVCFZDpWuvDnqXzhJRxqccL9lbeEVVZGpa4x6pg==
-----END PUBLIC KEY-----
Поскольку модули Mainline похожи на APK-файлы, к ним также применимы способы проверки, описанные на странице проверки APK-файлов Google. Вы можете использовать эти методы, чтобы проверить утверждения, сделанные в модели заявителя.