گزارش شفافیت برنامههای کاربردی محصولات گوگل از فناوری گزارش شفافیت بهره میبرد.
کاربردهای گزارشهای شفافیت توسط پروژههایی مانند Pixel Binary Transparency و Certificate Transparency اثبات شده است.
گزارشهای شفافیت با درختهای مرکل پیادهسازی میشوند. این صفحه دانش عمومی در مورد درختهای مرکل و شفافیت دودویی را فرض میکند. برای مرور کلی درختهای مرکل به ساختارهای دادهی قابل تأیید و برای مرور کلی تلاشهای شفافیت دودویی در اندروید به صفحهی اصلی مراجعه کنید.
پیادهسازی لاگ
گزارش شفافیت برنامه کاربردی محصولات گوگل با استفاده از Tessera پیادهسازی شده است و از مشخصات tlog-tiles با ارتفاع کاشی ۸ پیروی میکند (هر کاشی یا بسته حداکثر شامل ۲.۸ = ۲۵۶ آیتم است).
ریشه محتوای لاگ در آدرس زیر ارائه میشود: 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 SumDB Tlog) خوانده شوند و نه از طریق مرورگر. برای روشن شدن موضوع، لینک را اینجا قرار میدهیم.
- کاشیهای درخت : هشهای گره داخلی و برگ درخت مرکل در آدرس
tile/<level>/<path>قرار میگیرند (مثلاًtile/0/000،tile/1/000). - بستههای ورودی : دادههای برگ لاگ در بستههای ورودی تحت
tile/entries/<path>(مثلاًtile/entries/000،tile/entries/001) سازماندهی میشوند که هر بسته میتواند تا ۲۵۶ ورودی به هم پیوسته را در خود جای دهد.
برای شرح محتویات هر ورودی، به «محتوای گزارش» مراجعه کنید.
هش ریشه درخت مرکل مربوط به گزارش، که در یک Checkpoint قرار دارد، در آدرس https://gstatic.com/android/binary_transparency/google1p/apk/2026/02/checkpoint با فرمت Checkpoint ارائه میشود. مبدا 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 قبلی با استفاده از امضاهای ECDSA (NIST P-256 با SHA-256) عمل میکرد. گزارش V1 بایگانی شده و فقط خواندنی است، اما برای تأیید ورودیهای تاریخی، به صورت عمومی در دسترس است:
- اندازه درخت : ۱,۷۹۷,۱۵۲ مدخل (در زمان بایگانی)
- هش ریشه :
IkmuYB2xKKEOLiaQkIho1o9/uGjrKDbk8xa3xXaFeHY= - ایست بازرسی : https://gstatic.com/android/binary_transparency/google1p/apk/2026/01/checkpoint.txt
- برگهای داده : با توجه به اندازه فایلها و محدودیتهای ذخیرهسازی در
gstatic.com(که حداکثر ظرفیت فایلهای استاتیک را ۲۰۰ مگابایت تعیین میکند)، دادههای برگ برای کل گزارش بایگانیشده در دو فایل متوالی تقسیم میشوند:- بخش ۱ (تعداد ورودیها: ۰ - ۱,۷۱۴,۸۶۰) : https://gstatic.com/android/binary_transparency/google1p/apk/2026/01/package_info.txt
- بخش ۲ (تعداد ورودیها ۱,۷۱۴,۸۶۱ تا ۱,۷۹۷,۱۵۱) : 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-----
ادعاهای گزارش را تأیید کنید
صفحه تأیید با جزئیات بیشتری توضیح میدهد که چگونه اجزای مختلف گزارش برای تأیید ادعاهای مطرحشده در مدل مدعی استفاده میشوند.