Google प्रॉडक्ट ऐप्लिकेशन के ऐक्सेस ट्रांसपेरंसी (पारदर्शिता) लॉग

Google प्रॉडक्ट ऐप्लिकेशन ट्रांसपेरंसी लॉग, ट्रांसपेरंसी लॉग टेक्नोलॉजी का इस्तेमाल करता है.

पारदर्शिता लॉग की उपयोगिता, Pixel बाइनरी ट्रांसपेरंसी और प्रमाणपत्र पारदर्शिता जैसे प्रोजेक्ट से साबित हो चुकी है.

पारदर्शिता लॉग, मर्कल ट्री की मदद से लागू किए जाते हैं. इस पेज पर यह मानकर जानकारी दी गई है कि आपको मर्कल ट्री और बाइनरी ट्रांसपेरेंसी के बारे में सामान्य जानकारी है. मर्कल ट्री के बारे में खास जानकारी पाने के लिए, पुष्टि किए जा सकने वाले डेटा स्ट्रक्चर देखें. साथ ही, Android में बाइनरी ट्रांसपेरेंसी की कोशिश के बारे में खास जानकारी पाने के लिए, मुख्य पेज देखें.

लॉग लागू करना

Google प्रॉडक्ट ऐप्लिकेशन ट्रांसपेरंसी लॉग को Tessera का इस्तेमाल करके लागू किया जाता है. साथ ही, यह tlog-tiles की खास जानकारी का पालन करता है. इसमें टाइल की ऊंचाई आठ होती है. हर टाइल या बंडल में ज़्यादा से ज़्यादा 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 या Golang SumDB Tlog लाइब्रेरी) की मदद से पढ़ा जाना चाहिए, न कि ब्राउज़र की मदद से. हमने यहां लिंक दिया है, ताकि आपको साफ़ तौर पर जानकारी मिल सके.

  • ट्री टाइल: मर्कल ट्री के अंदरूनी और लीफ़ नोड हैश, 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 सिग्नेचर एल्गोरिदम का इस्तेमाल करके जनरेट किए जाते हैं. चेकपॉइंट के हस्ताक्षर की पुष्टि, इस सार्वजनिक पासकोड से की जा सकती है. यह पुष्टि, नोट की पुष्टि करने वाले फ़ॉर्मैट (जैसा कि golang.org/x/mod/sumdb/note में बताया गया है) या स्टैंडर्ड पीईएम फ़ॉर्मैट में की जा सकती है:

  • Note verifier format (<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 की तीसरी तिमाही में हुए अपडेट से पहले, लॉग को ECDSA (SHA-256 के साथ NIST P-256) सिग्नेचर का इस्तेमाल करके, पुराने V1 वर्शन के तहत लागू किया गया था. V1 लॉग को संग्रहित कर दिया गया है और इसे सिर्फ़ पढ़ा जा सकता है. हालांकि, पुरानी एंट्री की पुष्टि करने के लिए, इसे सार्वजनिक तौर पर ऐक्सेस किया जा सकता है:

  • ट्री का साइज़: 17,97,152 एंट्री (संग्रहित किए जाने के समय)
  • रूट हैश: IkmuYB2xKKEOLiaQkIho1o9/uGjrKDbk8xa3xXaFeHY=
  • चेकपॉइंट: https://www.gstatic.com/android/binary_transparency/google1p/apk/2026/01/checkpoint.txt
  • डेटा लीफ़: gstatic.com पर फ़ाइल के साइज़ और स्टोरेज की सीमाओं की वजह से, संग्रहित किए गए पूरे लॉग के लीफ़ पेलोड को क्रम से दो फ़ाइलों में बांटा जाता है. पर, एक स्टैटिक फ़ाइल का साइज़ 200 MiB से ज़्यादा नहीं हो सकता:
  • टाइल रूट: 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-----

लॉग के दावों की पुष्टि करना

पुष्टि करने वाले पेज पर ज़्यादा जानकारी दी गई है कि लॉग के अलग-अलग कॉम्पोनेंट का इस्तेमाल, दावेदार मॉडल में किए गए दावों की पुष्टि करने के लिए कैसे किया जाता है.