आवेदन सुरक्षा

अनुप्रयोगों के तत्व

एंड्रॉइड मोबाइल उपकरणों के लिए एक ओपन सोर्स प्लेटफॉर्म और एप्लिकेशन वातावरण प्रदान करता है। कोर ऑपरेटिंग सिस्टम लिनक्स कर्नेल पर आधारित है। Android एप्लिकेशन अक्सर जावा प्रोग्रामिंग भाषा में लिखे जाते हैं और Dalvik वर्चुअल मशीन में चलते हैं। हालाँकि, एप्लिकेशन को मूल कोड में भी लिखा जा सकता है। एप्लिकेशन .apk फ़ाइल एक्सटेंशन वाली एकल फ़ाइल से इंस्टॉल किए जाते हैं।

मुख्य Android एप्लिकेशन बिल्डिंग ब्लॉक हैं:

  • AndroidManifest.xml : AndroidManifest.xml फ़ाइल एक नियंत्रण फ़ाइल है जो सिस्टम को बताती है कि किसी एप्लिकेशन में सभी शीर्ष-स्तरीय घटकों (विशेष रूप से गतिविधियां, सेवाएं, प्रसारण रिसीवर और नीचे वर्णित सामग्री प्रदाता) के साथ क्या करना है। यह यह भी निर्दिष्ट करता है कि किन अनुमतियों की आवश्यकता है।

  • क्रियाएँ : एक गतिविधि , आम तौर पर, एकल, उपयोगकर्ता-केंद्रित कार्य के लिए कोड है। इसमें आमतौर पर उपयोगकर्ता के लिए UI प्रदर्शित करना शामिल होता है, लेकिन यह आवश्यक नहीं है - कुछ गतिविधियां कभी भी UI प्रदर्शित नहीं करती हैं। आमतौर पर, एप्लिकेशन की गतिविधियों में से एक एप्लिकेशन का प्रवेश बिंदु होता है।

  • सेवाएं : एक सेवा कोड का एक निकाय है जो पृष्ठभूमि में चलता है। यह अपनी प्रक्रिया में, या किसी अन्य एप्लिकेशन की प्रक्रिया के संदर्भ में चल सकता है। अन्य घटक एक सेवा के लिए "बाध्य" करते हैं और दूरस्थ प्रक्रिया कॉल के माध्यम से उस पर विधियों का आह्वान करते हैं। एक सेवा का एक उदाहरण एक मीडिया प्लेयर है: यहां तक ​​कि जब उपयोगकर्ता मीडिया-चयन UI छोड़ देता है, तब भी उपयोगकर्ता शायद संगीत को जारी रखने का इरादा रखता है। UI के पूर्ण होने पर भी एक सेवा संगीत को चालू रखती है।

  • ब्रॉडकास्ट रिसीवर : ब्रॉडकास्ट रिसीवर एक ऐसी वस्तु है जो तब चालू होती है जब एक आईपीसी तंत्र जिसे एक इंटेंट के रूप में जाना जाता है, ऑपरेटिंग सिस्टम या किसी अन्य एप्लिकेशन द्वारा जारी किया जाता है। एक एप्लिकेशन कम बैटरी संदेश के लिए एक रिसीवर पंजीकृत कर सकता है, उदाहरण के लिए, और उस जानकारी के आधार पर अपना व्यवहार बदल सकता है।

एंड्रॉइड अनुमति मॉडल: संरक्षित एपीआई तक पहुंचना

Android पर सभी एप्लिकेशन एप्लिकेशन सैंडबॉक्स में चलते हैं। डिफ़ॉल्ट रूप से, एक एंड्रॉइड एप्लिकेशन केवल सीमित सिस्टम संसाधनों तक पहुंच सकता है। सिस्टम उन संसाधनों तक एंड्रॉइड एप्लिकेशन एक्सेस का प्रबंधन करता है, जो गलत तरीके से या दुर्भावनापूर्ण रूप से उपयोग किए जाने पर, उपयोगकर्ता अनुभव, नेटवर्क या डिवाइस पर डेटा पर प्रतिकूल प्रभाव डाल सकते हैं।

इन प्रतिबंधों को विभिन्न रूपों में लागू किया जाता है। कुछ क्षमताएं संवेदनशील कार्यक्षमता के लिए एपीआई की जानबूझकर कमी से प्रतिबंधित हैं (उदाहरण के लिए सिम कार्ड में सीधे हेरफेर करने के लिए कोई एंड्रॉइड एपीआई नहीं है)। कुछ उदाहरणों में, भूमिकाओं का पृथक्करण एक सुरक्षा उपाय प्रदान करता है, जैसा कि भंडारण के प्रति-अनुप्रयोग अलगाव के साथ होता है। अन्य उदाहरणों में, संवेदनशील एपीआई विश्वसनीय अनुप्रयोगों द्वारा उपयोग के लिए अभिप्रेत हैं और अनुमतियों के रूप में ज्ञात सुरक्षा तंत्र के माध्यम से संरक्षित हैं।

इन संरक्षित एपीआई में शामिल हैं:

  • कैमरा कार्य
  • स्थान डेटा (जीपीएस)
  • ब्लूटूथ फ़ंक्शन
  • टेलीफोनी कार्य
  • एसएमएस/एमएमएस कार्य
  • नेटवर्क/डेटा कनेक्शन

ये संसाधन केवल ऑपरेटिंग सिस्टम के माध्यम से सुलभ हैं। डिवाइस पर संरक्षित एपीआई का उपयोग करने के लिए, एक एप्लिकेशन को उन क्षमताओं को परिभाषित करना चाहिए जिनकी उसे अपने मैनिफेस्ट में आवश्यकता होती है। सभी Android संस्करण 6.0 और उच्चतर एक रनटाइम अनुमति मॉडल का उपयोग करते हैं। यदि कोई उपयोगकर्ता किसी ऐप से एक सुविधा का अनुरोध करता है जिसके लिए एक संरक्षित एपीआई की आवश्यकता होती है तो सिस्टम एक संवाद प्रदर्शित करता है, जो उपयोगकर्ता को अनुमति देने या अनुमति देने के लिए प्रेरित करता है।

एक बार दिए जाने के बाद, एप्लिकेशन को तब तक लागू किया जाता है जब तक यह इंस्टॉल हो जाता है। उपयोगकर्ता भ्रम से बचने के लिए, सिस्टम एप्लिकेशन को दी गई अनुमतियों के बारे में उपयोगकर्ता को फिर से सूचित नहीं करता है, और कोर ऑपरेटिंग सिस्टम में शामिल या OEM द्वारा बंडल किए गए एप्लिकेशन उपयोगकर्ता से अनुमतियों का अनुरोध नहीं करते हैं। यदि किसी एप्लिकेशन की स्थापना रद्द की जाती है तो अनुमतियां हटा दी जाती हैं, इसलिए बाद में पुन: स्थापना के परिणामस्वरूप अनुमतियों का प्रदर्शन फिर से होगा।

डिवाइस सेटिंग्स के भीतर, उपयोगकर्ता पहले से इंस्टॉल किए गए एप्लिकेशन के लिए अनुमतियां देख सकते हैं। उपयोगकर्ता जब चाहें वैश्विक स्तर पर कुछ कार्यक्षमता को बंद भी कर सकते हैं, जैसे जीपीएस, रेडियो या वाई-फाई को अक्षम करना।

इस घटना में कि कोई एप्लिकेशन एक संरक्षित सुविधा का उपयोग करने का प्रयास करता है जिसे एप्लिकेशन के मैनिफेस्ट में घोषित नहीं किया गया है, अनुमति विफलता आमतौर पर एक सुरक्षा अपवाद को एप्लिकेशन में वापस फेंक दिया जाएगा। धोखाधड़ी को रोकने के लिए संरक्षित एपीआई अनुमति जांच को न्यूनतम संभव स्तर पर लागू किया जाता है। संरक्षित एपीआई तक पहुंच का अनुरोध करते समय एक एप्लिकेशन इंस्टॉल होने पर उपयोगकर्ता संदेश का एक उदाहरण चित्र 2 में दिखाया गया है।

सिस्टम डिफ़ॉल्ट अनुमतियां https://developer.android.com/reference/android/Manifest.permission.html पर वर्णित हैं। एप्लिकेशन अन्य एप्लिकेशन के उपयोग के लिए अपनी अनुमति की घोषणा कर सकते हैं। ऐसी अनुमतियां उपरोक्त स्थान में सूचीबद्ध नहीं हैं।

अनुमति को परिभाषित करते समय एक सुरक्षा स्तर विशेषता सिस्टम को बताती है कि उपयोगकर्ता को अनुमति की आवश्यकता वाले अनुप्रयोगों के बारे में कैसे सूचित किया जाना है, या जिसे अनुमति रखने की अनुमति है। एप्लिकेशन विशिष्ट अनुमतियां बनाने और उपयोग करने के विवरण https://developer.android.com/guide/topics/security/security.html पर वर्णित हैं।

कुछ डिवाइस क्षमताएं हैं, जैसे एसएमएस प्रसारण इरादे भेजने की क्षमता, जो तृतीय-पक्ष अनुप्रयोगों के लिए उपलब्ध नहीं हैं, लेकिन इसका उपयोग ओईएम द्वारा पूर्व-स्थापित अनुप्रयोगों द्वारा किया जा सकता है। ये अनुमतियाँ सिग्नेचरऑरसिस्टम अनुमति का उपयोग करती हैं।

उपयोगकर्ता तृतीय-पक्ष एप्लिकेशन को कैसे समझते हैं

एंड्रॉइड उपयोगकर्ताओं को यह स्पष्ट करने का प्रयास करता है कि वे तृतीय-पक्ष एप्लिकेशन के साथ इंटरैक्ट कर रहे हैं और उपयोगकर्ता को उन एप्लिकेशन की क्षमताओं के बारे में सूचित करते हैं। किसी भी एप्लिकेशन की स्थापना से पहले, उपयोगकर्ता को उन विभिन्न अनुमतियों के बारे में एक स्पष्ट संदेश दिखाया जाता है जिनका एप्लिकेशन अनुरोध कर रहा है। स्थापित करने के बाद, उपयोगकर्ता को किसी भी अनुमति की पुष्टि करने के लिए फिर से संकेत नहीं दिया जाता है।

स्थापना समय से ठीक पहले अनुमतियाँ दिखाने के कई कारण हैं। यह तब होता है जब उपयोगकर्ता सक्रिय रूप से एप्लिकेशन, डेवलपर और कार्यक्षमता के बारे में जानकारी की समीक्षा कर रहा है ताकि यह निर्धारित किया जा सके कि यह उनकी आवश्यकताओं और अपेक्षाओं से मेल खाता है या नहीं। यह भी महत्वपूर्ण है कि उन्होंने अभी तक ऐप के लिए मानसिक या वित्तीय प्रतिबद्धता स्थापित नहीं की है, और आसानी से अन्य वैकल्पिक अनुप्रयोगों के लिए एप्लिकेशन की तुलना कर सकते हैं।

कुछ अन्य प्लेटफ़ॉर्म उपयोगकर्ता अधिसूचना के लिए एक अलग दृष्टिकोण का उपयोग करते हैं, प्रत्येक सत्र की शुरुआत में या एप्लिकेशन उपयोग में होने पर अनुमति का अनुरोध करते हैं। एंड्रॉइड की दृष्टि उपयोगकर्ताओं को इच्छानुसार अनुप्रयोगों के बीच निर्बाध रूप से स्विच करना है। हर बार पुष्टि प्रदान करने से उपयोगकर्ता धीमा हो जाएगा और Android को एक शानदार उपयोगकर्ता अनुभव प्रदान करने से रोकेगा। इंस्टॉल समय पर उपयोगकर्ता समीक्षा अनुमतियां होने से उपयोगकर्ता को असहज महसूस होने पर एप्लिकेशन इंस्टॉल नहीं करने का विकल्प मिलता है।

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

कुछ प्लेटफ़ॉर्म एप्लिकेशन की कार्यक्षमता के बारे में कोई भी जानकारी नहीं दिखाने का विकल्प चुनते हैं। यह दृष्टिकोण उपयोगकर्ताओं को एप्लिकेशन क्षमताओं को आसानी से समझने और चर्चा करने से रोकता है। हालांकि सभी उपयोगकर्ताओं के लिए हमेशा पूरी तरह से सूचित निर्णय लेना संभव नहीं है, एंड्रॉइड अनुमति मॉडल एप्लिकेशन के बारे में जानकारी को उपयोगकर्ताओं की एक विस्तृत श्रृंखला के लिए आसानी से सुलभ बनाता है। उदाहरण के लिए, अनपेक्षित अनुमति अनुरोध अधिक परिष्कृत उपयोगकर्ताओं को एप्लिकेशन कार्यक्षमता के बारे में महत्वपूर्ण प्रश्न पूछने के लिए प्रेरित कर सकते हैं और अपनी चिंताओं को Google Play जैसे स्थानों पर साझा कर सकते हैं जहां वे सभी उपयोगकर्ताओं के लिए दृश्यमान हैं।

एप्लिकेशन इंस्टॉल पर अनुमतियां -- Google मानचित्र इंस्टॉल किए गए एप्लिकेशन की अनुमतियां -- Gmail
एप्लिकेशन इंस्टॉल पर अनुमतियां -- Google मानचित्रइंस्टॉल किए गए एप्लिकेशन की अनुमतियां -- Gmail

चित्र 1. अनुप्रयोगों के लिए अनुमतियों का प्रदर्शन

अंतःप्रक्रम संचार

प्रक्रियाएं किसी भी पारंपरिक यूनिक्स-प्रकार के तंत्र का उपयोग करके संचार कर सकती हैं। उदाहरणों में फाइल सिस्टम, स्थानीय सॉकेट या सिग्नल शामिल हैं। हालाँकि, Linux अनुमतियाँ अभी भी लागू होती हैं।

Android भी नए IPC तंत्र प्रदान करता है:

  • बाइंडर : इन-प्रोसेस और क्रॉस-प्रोसेस कॉल करते समय उच्च प्रदर्शन के लिए डिज़ाइन किया गया एक हल्का क्षमता-आधारित रिमोट प्रोसेस कॉल मैकेनिज्म। बाइंडर को एक कस्टम लिनक्स ड्राइवर का उपयोग करके कार्यान्वित किया जाता है। https://developer.android.com/reference/android/os/Binder.html देखें।

  • सेवाएं : सेवाएं (ऊपर चर्चा की गई) बाइंडर का उपयोग करके सीधे पहुंच योग्य इंटरफेस प्रदान कर सकती हैं।

  • आशय : एक आशय एक साधारण संदेश वस्तु है जो कुछ करने के "इरादे" का प्रतिनिधित्व करता है। उदाहरण के लिए, यदि आपका एप्लिकेशन एक वेब पेज प्रदर्शित करना चाहता है, तो यह एक इंटेंट इंस्टेंस बनाकर और इसे सिस्टम को सौंपकर यूआरएल देखने का अपना "इरादा" व्यक्त करता है। सिस्टम किसी अन्य कोड का पता लगाता है (इस मामले में, ब्राउज़र) जो जानता है कि उस इरादे को कैसे संभालना है, और इसे चलाता है। इंटेंट का उपयोग दिलचस्प घटनाओं (जैसे अधिसूचना) को सिस्टम-व्यापी प्रसारित करने के लिए भी किया जा सकता है। https://developer.android.com/reference/android/content/Intent.html देखें।

  • ContentProviders : एक ContentProvider एक डेटा स्टोरहाउस है जो डिवाइस पर डेटा तक पहुंच प्रदान करता है; क्लासिक उदाहरण ContentProvider है जिसका उपयोग उपयोगकर्ता की संपर्कों की सूची तक पहुंचने के लिए किया जाता है। एक एप्लिकेशन उस डेटा तक पहुंच सकता है जिसे अन्य एप्लिकेशन ने एक कंटेंटप्रोवाइडर के माध्यम से उजागर किया है, और एक एप्लिकेशन अपने स्वयं के डेटा को उजागर करने के लिए अपने स्वयं के कंटेंटप्रोवाइडर को भी परिभाषित कर सकता है। https://developer.android.com/reference/android/content/ContentProvider.html देखें।

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

लागत-संवेदनशील एपीआई

एक लागत संवेदनशील एपीआई कोई भी कार्य है जो उपयोगकर्ता या नेटवर्क के लिए लागत उत्पन्न कर सकता है। एंड्रॉइड प्लेटफॉर्म ने लागत संवेदनशील एपीआई को ओएस द्वारा नियंत्रित संरक्षित एपीआई की सूची में रखा है। उपयोगकर्ता को लागत संवेदनशील एपीआई के उपयोग का अनुरोध करने वाले तीसरे पक्ष के अनुप्रयोगों को स्पष्ट अनुमति देनी होगी। इन एपीआई में शामिल हैं:

  • टेलीफ़ोनी
  • एसएमएस/एमएमएस
  • नेटवर्क/डेटा
  • इन-ऐप बिलिंग
  • एनएफसी एक्सेस

एंड्रॉइड 4.2 एसएमएस के उपयोग पर और नियंत्रण जोड़ता है। यदि कोई एप्लिकेशन प्रीमियम सेवाओं का उपयोग करने वाले शॉर्ट कोड पर एसएमएस भेजने का प्रयास करता है तो एंड्रॉइड एक अधिसूचना प्रदान करेगा जिससे अतिरिक्त शुल्क लग सकता है। उपयोगकर्ता यह चुन सकता है कि एप्लिकेशन को संदेश भेजने की अनुमति दी जाए या उसे ब्लॉक किया जाए।

सिम कार्ड एक्सेस

तीसरे पक्ष के ऐप्स के लिए सिम कार्ड की निम्न स्तर की पहुंच उपलब्ध नहीं है। ओएस सिम कार्ड के साथ सभी संचारों को संभालता है जिसमें सिम कार्ड मेमोरी पर व्यक्तिगत जानकारी (संपर्क) तक पहुंच शामिल है। एप्लिकेशन भी एटी कमांड तक नहीं पहुंच सकते, क्योंकि इन्हें विशेष रूप से रेडियो इंटरफेस लेयर (आरआईएल) द्वारा प्रबंधित किया जाता है। आरआईएल इन आदेशों के लिए कोई उच्च स्तरीय एपीआई प्रदान नहीं करता है।

व्यक्तिगत जानकारी

एंड्रॉइड ने एपीआई को संरक्षित एपीआई के सेट में उपयोगकर्ता डेटा तक पहुंच प्रदान करने के लिए रखा है। सामान्य उपयोग के साथ, एंड्रॉइड डिवाइस उपयोगकर्ताओं द्वारा इंस्टॉल किए गए तृतीय-पक्ष एप्लिकेशन के भीतर उपयोगकर्ता डेटा भी जमा करेंगे। एप्लिकेशन जो इस जानकारी को साझा करना चुनते हैं, वे डेटा को तृतीय-पक्ष एप्लिकेशन से बचाने के लिए Android OS अनुमति जांच का उपयोग कर सकते हैं।

केवल संरक्षित एपीआई के माध्यम से उपलब्ध संवेदनशील उपयोगकर्ता डेटा तक पहुंच

चित्रा 2. संवेदनशील उपयोगकर्ता डेटा तक पहुंच केवल संरक्षित एपीआई के माध्यम से उपलब्ध है

सिस्टम सामग्री प्रदाता जिनमें व्यक्तिगत या व्यक्तिगत रूप से पहचान योग्य जानकारी जैसे संपर्क और कैलेंडर होने की संभावना है, स्पष्ट रूप से पहचानी गई अनुमतियों के साथ बनाए गए हैं। यह ग्रैन्युलैरिटी उपयोगकर्ता को एप्लिकेशन को प्रदान की जा सकने वाली जानकारी के स्पष्ट संकेत प्रदान करती है। स्थापना के दौरान, कोई तृतीय-पक्ष एप्लिकेशन इन संसाधनों तक पहुंचने की अनुमति का अनुरोध कर सकता है। यदि अनुमति दी जाती है, तो एप्लिकेशन को इंस्टॉल किया जा सकता है और इसे इंस्टॉल होने पर किसी भी समय अनुरोधित डेटा तक पहुंच प्राप्त होगी।

कोई भी एप्लिकेशन जो व्यक्तिगत जानकारी एकत्र करता है, डिफ़ॉल्ट रूप से, वह डेटा केवल विशिष्ट एप्लिकेशन तक ही सीमित रहेगा। यदि कोई एप्लिकेशन आईपीसी के माध्यम से अन्य एप्लिकेशन को डेटा उपलब्ध कराने का विकल्प चुनता है, तो एक्सेस प्रदान करने वाला एप्लिकेशन ऑपरेटिंग सिस्टम द्वारा लागू किए गए आईपीसी तंत्र के लिए अनुमतियां लागू कर सकता है।

संवेदनशील डेटा इनपुट डिवाइस

एंड्रॉइड डिवाइस अक्सर संवेदनशील डेटा इनपुट डिवाइस प्रदान करते हैं जो एप्लिकेशन को आसपास के वातावरण, जैसे कैमरा, माइक्रोफ़ोन या जीपीएस के साथ इंटरैक्ट करने की अनुमति देते हैं। इन उपकरणों तक पहुँचने के लिए किसी तृतीय-पक्ष एप्लिकेशन के लिए, इसे पहले उपयोगकर्ता द्वारा Android OS अनुमतियों के उपयोग के माध्यम से स्पष्ट रूप से पहुँच प्रदान की जानी चाहिए। स्थापना के बाद, इंस्टॉलर उपयोगकर्ता को नाम से सेंसर को अनुमति का अनुरोध करने के लिए संकेत देगा।

यदि कोई एप्लिकेशन उपयोगकर्ता के स्थान को जानना चाहता है, तो एप्लिकेशन को उपयोगकर्ता के स्थान तक पहुंचने के लिए अनुमति की आवश्यकता होती है। इंस्टालेशन के बाद, इंस्टॉलर उपयोगकर्ता से पूछेगा कि क्या एप्लिकेशन उपयोगकर्ता के स्थान तक पहुंच सकता है। किसी भी समय, यदि उपयोगकर्ता नहीं चाहता कि कोई एप्लिकेशन उनके स्थान तक पहुंचे, तो उपयोगकर्ता "सेटिंग" एप्लिकेशन चला सकता है, "स्थान और सुरक्षा" पर जा सकता है, और "वायरलेस नेटवर्क का उपयोग करें" और "जीपीएस उपग्रह सक्षम करें" को अनचेक कर सकता है। . यह उपयोगकर्ता के डिवाइस पर सभी एप्लिकेशन के लिए स्थान आधारित सेवाओं को अक्षम कर देगा।

डिवाइस मेटाडेटा

एंड्रॉइड डेटा तक पहुंच को प्रतिबंधित करने का भी प्रयास करता है जो आंतरिक रूप से संवेदनशील नहीं है, लेकिन परोक्ष रूप से उपयोगकर्ता, उपयोगकर्ता वरीयताओं और उनके द्वारा डिवाइस का उपयोग करने के तरीके के बारे में विशेषताओं को प्रकट कर सकता है।

डिफ़ॉल्ट रूप से एप्लिकेशन के पास ऑपरेटिंग सिस्टम लॉग, ब्राउज़र इतिहास, फ़ोन नंबर, या हार्डवेयर / नेटवर्क पहचान जानकारी तक पहुंच नहीं होती है। यदि कोई एप्लिकेशन इंस्टॉल समय पर इस जानकारी तक पहुंच का अनुरोध करता है, तो इंस्टॉलर उपयोगकर्ता से पूछेगा कि क्या एप्लिकेशन जानकारी तक पहुंच सकता है। यदि उपयोगकर्ता पहुंच प्रदान नहीं करता है, तो एप्लिकेशन इंस्टॉल नहीं किया जाएगा।

प्रमाणपत्र प्राधिकारी

एंड्रॉइड में इंस्टॉल किए गए सिस्टम सर्टिफिकेट अथॉरिटीज का एक सेट शामिल है, जो सिस्टम-वाइड विश्वसनीय हैं। Android 7.0 से पहले, डिवाइस निर्माता अपने डिवाइस पर शिप किए गए CA के सेट को संशोधित कर सकते थे। हालांकि, 7.0 और इसके बाद के संस्करण चलाने वाले उपकरणों में सिस्टम CA का एक समान सेट होगा क्योंकि डिवाइस निर्माताओं द्वारा संशोधन की अब अनुमति नहीं है।

एंड्रॉइड स्टॉक सेट में एक नए सार्वजनिक सीए के रूप में जोड़े जाने के लिए, सीए को मोज़िला सीए समावेशन प्रक्रिया को पूरा करना होगा और फिर एंड्रॉइड के खिलाफ एक फीचर अनुरोध दर्ज करना होगा ( https://code.google.com/p/android/issues/entry ) एंड्रॉइड ओपन सोर्स प्रोजेक्ट (एओएसपी) में स्टॉक एंड्रॉइड सीए सेट में सीए को जोड़ने के लिए।

अभी भी ऐसे CA हैं जो डिवाइस-विशिष्ट हैं और उन्हें AOSP CA के मुख्य सेट में शामिल नहीं किया जाना चाहिए, जैसे वाहक के निजी CA जिनकी आवश्यकता वाहक के बुनियादी ढांचे के घटकों, जैसे SMS/MMS गेटवे को सुरक्षित रूप से एक्सेस करने के लिए हो सकती है। डिवाइस निर्माताओं को निजी सीए को केवल उन घटकों/ऐप्स में शामिल करने के लिए प्रोत्साहित किया जाता है, जिन्हें इन सीए पर भरोसा करने की आवश्यकता होती है। अधिक जानकारी के लिए, नेटवर्क सुरक्षा कॉन्फ़िगरेशन देखें।

आवेदन पर हस्ताक्षर

कोड साइनिंग डेवलपर्स को एप्लिकेशन के लेखक की पहचान करने और जटिल इंटरफेस और अनुमतियां बनाए बिना अपने एप्लिकेशन को अपडेट करने की अनुमति देता है। एंड्रॉइड प्लेटफॉर्म पर चलने वाले प्रत्येक एप्लिकेशन को डेवलपर द्वारा हस्ताक्षरित होना चाहिए। बिना हस्ताक्षर किए इंस्टॉल करने का प्रयास करने वाले एप्लिकेशन को Google Play या Android डिवाइस पर पैकेज इंस्टॉलर द्वारा अस्वीकार कर दिया जाता है।

Google Play पर, एप्लिकेशन साइनिंग उस विश्वास को पाटता है जो Google का डेवलपर के साथ है और डेवलपर का अपने एप्लिकेशन के साथ है। डेवलपर्स जानते हैं कि उनका एप्लिकेशन प्रदान किया गया है, Android डिवाइस के लिए असंशोधित; और डेवलपर्स को उनके आवेदन के व्यवहार के लिए जवाबदेह ठहराया जा सकता है।

Android पर, एप्लिकेशन साइनिंग किसी एप्लिकेशन को उसके एप्लिकेशन सैंडबॉक्स में रखने का पहला चरण है। हस्ताक्षरित आवेदन प्रमाणपत्र परिभाषित करता है कि कौन सी उपयोगकर्ता आईडी किस एप्लिकेशन से संबद्ध है; अलग-अलग यूजर आईडी के तहत अलग-अलग एप्लिकेशन चलते हैं। आवेदन पर हस्ताक्षर यह सुनिश्चित करता है कि एक आवेदन अच्छी तरह से परिभाषित आईपीसी के अलावा किसी अन्य आवेदन तक नहीं पहुंच सकता है।

जब कोई एप्लिकेशन (APK फ़ाइल) किसी Android डिवाइस पर इंस्टॉल किया जाता है, तो पैकेज प्रबंधक पुष्टि करता है कि एपीके को उस एपीके में शामिल प्रमाणपत्र के साथ ठीक से हस्ताक्षरित किया गया है। यदि प्रमाणपत्र (या, अधिक सटीक रूप से, प्रमाण पत्र में सार्वजनिक कुंजी) डिवाइस पर किसी अन्य एपीके पर हस्ताक्षर करने के लिए उपयोग की जाने वाली कुंजी से मेल खाता है, तो नए एपीके में मैनिफेस्ट में निर्दिष्ट करने का विकल्प होता है कि यह एक यूआईडी को अन्य समान रूप से साझा करेगा -हस्ताक्षरित APK।

आवेदनों पर किसी तीसरे पक्ष (OEM, ऑपरेटर, वैकल्पिक बाजार) या स्व-हस्ताक्षरित द्वारा हस्ताक्षर किए जा सकते हैं। एंड्रॉइड स्व-हस्ताक्षरित प्रमाणपत्रों का उपयोग करके कोड हस्ताक्षर प्रदान करता है जो डेवलपर्स बाहरी सहायता या अनुमति के बिना उत्पन्न कर सकते हैं। आवेदनों को केंद्रीय प्राधिकरण द्वारा हस्ताक्षरित करने की आवश्यकता नहीं है। Android वर्तमान में एप्लिकेशन प्रमाणपत्रों के लिए CA सत्यापन नहीं करता है।

एप्लिकेशन सिग्नेचर सुरक्षा स्तर पर सुरक्षा अनुमतियों की घोषणा करने में भी सक्षम हैं, अलग-अलग यूआईडी और एप्लिकेशन सैंडबॉक्स को बनाए रखते हुए केवल उसी कुंजी से हस्ताक्षरित एप्लिकेशन तक पहुंच को प्रतिबंधित करते हैं। साझा यूआईडी सुविधा के माध्यम से साझा एप्लिकेशन सैंडबॉक्स के साथ घनिष्ठ संबंध की अनुमति है जहां एक ही डेवलपर कुंजी के साथ हस्ताक्षरित दो या दो से अधिक एप्लिकेशन अपने मेनिफेस्ट में एक साझा यूआईडी घोषित कर सकते हैं।

आवेदन सत्यापन

Android 4.2 और बाद के संस्करण एप्लिकेशन सत्यापन का समर्थन करते हैं। उपयोगकर्ता "एप्लिकेशन सत्यापित करें" को सक्षम करना चुन सकते हैं और इंस्टॉलेशन से पहले एप्लिकेशन सत्यापनकर्ता द्वारा मूल्यांकन किया जा सकता है। ऐप सत्यापन उपयोगकर्ता को सचेत कर सकता है यदि वे एक ऐप इंस्टॉल करने का प्रयास करते हैं जो हानिकारक हो सकता है; यदि कोई एप्लिकेशन विशेष रूप से खराब है, तो यह इंस्टॉलेशन को ब्लॉक कर सकता है .

डिजिटल अधिकार प्रबंधन

एंड्रॉइड प्लेटफॉर्म एक एक्स्टेंसिबल डीआरएम फ्रेमवर्क प्रदान करता है जो एप्लिकेशन को सामग्री से जुड़े लाइसेंस बाधाओं के अनुसार अधिकार-संरक्षित सामग्री का प्रबंधन करने देता है। डीआरएम ढांचा कई डीआरएम योजनाओं का समर्थन करता है; डिवाइस द्वारा समर्थित कौन सी DRM योजनाएँ डिवाइस निर्माता पर छोड़ दी जाती हैं।

Android DRM ढांचा दो वास्तुशिल्प परतों में कार्यान्वित किया गया है (नीचे चित्र देखें):

  • एक डीआरएम फ्रेमवर्क एपीआई, जो एंड्रॉइड एप्लिकेशन फ्रेमवर्क के माध्यम से अनुप्रयोगों के संपर्क में है और मानक अनुप्रयोगों के लिए दल्विक वीएम के माध्यम से चलता है।

  • एक मूल कोड डीआरएम प्रबंधक, जो डीआरएम ढांचे को लागू करता है और विभिन्न डीआरएम योजनाओं के अधिकार प्रबंधन और डिक्रिप्शन को संभालने के लिए डीआरएम प्लग-इन (एजेंट) के लिए एक इंटरफेस को उजागर करता है।

Android प्लेटफॉर्म पर डिजिटल राइट्स मैनेजमेंट का आर्किटेक्चर

चित्र 3. एंड्रॉइड प्लेटफॉर्म पर डिजिटल राइट्स मैनेजमेंट का आर्किटेक्चर