Google प्रॉडक्ट के लिए ऐप्लिकेशन की पारदर्शिता

Google के ऐप्लिकेशन पर लोगों का भरोसा बढ़ाने के लिए, अब हम अपने पारदर्शिता लॉग में Google के हर प्रॉडक्ट के ऐप्लिकेशन की जानकारी शामिल करेंगे. हमने पारदर्शिता लॉग को सार्वजनिक किया है, ताकि इन APK के बारे में हमारे दावों की पुष्टि की जा सके.

खतरे का मॉडल

पारदर्शिता सिस्टम का इस्तेमाल करके, सप्लाई चेन पर होने वाले हमलों का पता लगाया जा सकता है. साथ ही, इन हमलों को रोका जा सकता है. हम कुछ उदाहरणों की मदद से इसे समझाते हैं.

मान लें कि कोई हमलावर, Google के किसी ऐप्लिकेशन में नुकसान पहुंचाने के इरादे से बदलाव करता है. साथ ही, वह Google Play के ज़रिए डिस्ट्रिब्यूट करने के लिए इस्तेमाल की जाने वाली साइनिंग की से, उस ऐप्लिकेशन पर साइन भी कर लेता है. बाइनरी पारदर्शिता लॉग की मदद से, किसी भी व्यक्ति को अगर कोई ऐसा APK मिलता है जिस पर उसे शक हो, तो वह उस APK की असलियत की पुष्टि करने के लिए, उसे भरोसेमंद सोर्स के तौर पर इस्तेमाल कर सकता है. उन्हें पता चलेगा कि Google ने लॉग में, उससे जुड़ा APK मेटाडेटा शामिल नहीं किया है. साथ ही, उन्हें यह भी पता चलेगा कि उन्हें उस APK पर भरोसा नहीं करना चाहिए.

लॉग में पब्लिश करना, साइनिंग के साथ रिलीज़ करने की प्रोसेस से अलग है. जैसा कि ईकोसिस्टम के डायग्राम में दिखाया गया है. इससे हमलावर के लिए, सिर्फ़ की से समझौता करने के अलावा, और भी चुनौतियां बढ़ जाती हैं.

हमारी योजना है कि हम इस लॉग को, गवाहों के सार्वजनिक नेटवर्क में भी इंटिग्रेट करें इसके लिए, हम गवाहों के स्टैंडर्ड प्रोटोकॉल का इस्तेमाल करेंगे साथ ही, हम बाहरी और स्वतंत्र पक्षों को इस सार्वजनिक तौर पर उपलब्ध लॉग की इंटिग्रिटी की निगरानी करने के लिए बढ़ावा देते हैं. ये पक्ष, लॉग की सिर्फ़ जोड़ने की प्रॉपर्टी की पुष्टि कर सकते हैं. साथ ही, किसी भी तरह की छेड़छाड़ की शिकायत कर सकते हैं.

पारदर्शिता सिस्टम के होने और हमलों की ज़्यादा जानकारी उपलब्ध होने से, नुकसान पहुंचाने वाली गतिविधियों को बढ़ावा नहीं मिलता. अगर कोई APK हैक हो जाता है, लेकिन लोग सिर्फ़ उन APK पर भरोसा करते हैं जो लॉग में शामिल हैं, तो हैक हुए APK को सार्वजनिक तौर पर दिखाना होगा. इससे यह पता चलने की संभावना बढ़ जाती है कि हैक हुआ APK मौजूद है. साथ ही, उसके डिस्ट्रिब्यूशन को रोकने के लिए कार्रवाई की जा सकती है.

दावेदार मॉडल

दावेदार मॉडल, पुष्टि किए जा सकने वाले सिस्टम में भूमिकाओं और आर्टफ़ैक्ट को तय करने के लिए इस्तेमाल किया जाने वाला फ़्रेमवर्क है. Google के पहले पक्ष के ऐप्लिकेशन की पारदर्शिता के मामले में, हमारा दावा है कि इस लॉग में रिकॉर्ड की गई किसी APK फ़ाइल का हैश, Google के आधिकारिक ऐप्लिकेशन के किसी खास वर्शन को दिखाता है. यह वर्शन, सार्वजनिक तौर पर इस्तेमाल के लिए होता है.

  • ClaimGoogleApp: (मैं, Google, दावा करता हूं कि $hashApp $googleApp के लिए है). इसमें:
    • $hashApp किसी खास वर्शन की APK फ़ाइल (स्प्लिट APK शामिल हैं) का क्रिप्टोग्राफ़िक हैश (जैसे, SHA256) है.$googleApp
    • $googleApp एक Android पैकेज (APK) है, जो Google के बनाए और डिस्ट्रिब्यूट किए जाने वाले ऐप्लिकेशन का हिस्सा है.

$googleApp की कॉपी रखने वाला कोई भी व्यक्ति इस दावे की पुष्टि कर सकता है, हम पुष्टि करने वाले पेज पर, इस प्रोसेस के बारे में पूरी जानकारी देते हैं.

लॉग का कॉन्टेंट

जब Google, किसी APK का नया वर्शन रिलीज़ करता है, तो वह Google के पहले पक्ष के APK की पारदर्शिता वाले लॉगमें उससे जुड़ी एंट्री जोड़ता है.

इस लॉग की हर एंट्री में, चार तरह का मेटाडेटा शामिल होता है:

  1. Google के साइन किए गए ऐप्लिकेशन की APK फ़ाइल का हैश. यह पूरी फ़ाइल के SHA256 डाइजेस्ट की हेक्स स्ट्रिंग होती है.
  2. पहले वाले हैश के टाइप की जानकारी. यह एक स्ट्रिंग होती है.
  3. APK का पैकेज नेम. यह एक स्ट्रिंग होती है.
  4. APK का वर्शन नंबर (versionCode). यह शून्य से बड़ा पूर्णांक होता है.

लॉग एंट्री का फ़ॉर्मैट, नई लाइन (\n) वाले वर्ण के साथ, जानकारी के चार हिस्सों को जोड़कर बनाया जाता है. इसे यहां दिखाया गया है:

hash\nSHA256(APK)\npackage_name\npackage_version\n

हम पूरी APK फ़ाइल को माप रहे हैं. इसलिए, हैश की जानकारी को SHA256(APK) पर सेट किया गया है. इससे हर फ़ाइल के कॉन्टेंट की पूरी जानकारी मिलती है. साथ ही, उपयोगकर्ताओं के लिए इस मेज़रमेंट को पाना आसान हो जाता है.

ईकोसिस्टम का डायग्राम

पुष्टि किए जा सकने वाले लॉग का इकोसिस्टम डायग्राम