अनुप्रयोग सुरक्षा

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

एंड्रॉइड नए आईपीसी तंत्र भी प्रदान करता है:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

एंड्रॉइड प्लेटफॉर्म पर डिजिटल अधिकार प्रबंधन की वास्तुकला

चित्र 3. एंड्रॉइड प्लेटफ़ॉर्म पर डिजिटल अधिकार प्रबंधन की वास्तुकला