सिस्टम और कर्नेल सुरक्षा

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

लिनक्स सुरक्षा

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

मोबाइल कंप्यूटिंग वातावरण के आधार के रूप में, लिनक्स कर्नेल एंड्रॉइड को कई प्रमुख सुरक्षा सुविधाएँ प्रदान करता है, जिनमें शामिल हैं:

  • एक उपयोगकर्ता-आधारित अनुमति मॉडल
  • प्रक्रिया अलगाव
  • सुरक्षित आईपीसी के लिए एक्स्टेंसिबल मैकेनिज्म
  • कर्नेल के अनावश्यक और संभावित रूप से असुरक्षित भागों को हटाने की क्षमता

एक बहुउपयोगकर्ता ऑपरेटिंग सिस्टम के रूप में, लिनक्स कर्नेल का एक मौलिक सुरक्षा उद्देश्य उपयोगकर्ता संसाधनों को एक दूसरे से अलग करना है। लिनक्स सुरक्षा दर्शन उपयोगकर्ता संसाधनों को एक दूसरे से बचाने के लिए है। इस प्रकार, लिनक्स:

  • उपयोगकर्ता A को उपयोगकर्ता B की फ़ाइलों को पढ़ने से रोकता है
  • सुनिश्चित करता है कि उपयोगकर्ता A उपयोगकर्ता B की मेमोरी को समाप्त नहीं करता है
  • सुनिश्चित करता है कि उपयोगकर्ता A उपयोगकर्ता B के CPU संसाधनों को समाप्त नहीं करता है
  • यह सुनिश्चित करता है कि उपयोगकर्ता A, उपयोगकर्ता B के उपकरणों (उदाहरण के लिए, टेलीफ़ोनी, GPS और ब्लूटूथ) को समाप्त नहीं करता है।

एप्लिकेशन सैंडबॉक्स

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

सिस्टम विभाजन और सुरक्षित मोड

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

फाइलसिस्टम अनुमतियां

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

सुरक्षा-उन्नत लिनक्स

एंड्रॉइड एक्सेस कंट्रोल नीतियों को लागू करने और प्रक्रियाओं पर अनिवार्य एक्सेस कंट्रोल (मैक) स्थापित करने के लिए सुरक्षा-एन्हांस्ड लिनक्स (SELinux) का उपयोग करता है। विवरण के लिए Android में सुरक्षा-उन्नत Linux देखें।

सत्यापित बूट

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

एंड्रॉइड 7.0 और बाद में सख्ती से लागू सत्यापित बूट का समर्थन करता है, जिसका अर्थ है कि समझौता किए गए डिवाइस बूट नहीं हो सकते हैं।

अधिक विवरण के लिए सत्यापित बूट देखें।

क्रिप्टोग्राफी

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

एंड्रॉइड 4.0 ने कीचेन क्लास की शुरुआत की ताकि एप्लिकेशन को निजी कुंजी और सर्टिफिकेट चेन के लिए सिस्टम क्रेडेंशियल स्टोरेज का उपयोग करने की अनुमति मिल सके।

उपकरणों की रूटिंग

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

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

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

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

हार्डवेयर समाधानों के उपयोग के माध्यम से रूट उपयोगकर्ताओं से डेटा की सुरक्षा के लिए एक अधिक मजबूत दृष्टिकोण है। OEM ऐसे हार्डवेयर समाधान लागू करना चुन सकते हैं जो वीडियो प्लेबैक के लिए DRM, या Google वॉलेट के लिए NFC-संबंधित विश्वसनीय संग्रहण जैसी विशिष्ट प्रकार की सामग्री तक पहुंच को सीमित करते हैं।

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

उपयोगकर्ता सुरक्षा सुविधाएँ

फाइलसिस्टम एन्क्रिप्शन

एंड्रॉइड 3.0 और बाद में पूर्ण फाइल सिस्टम एन्क्रिप्शन प्रदान करता है, इसलिए सभी उपयोगकर्ता डेटा को कर्नेल में एन्क्रिप्ट किया जा सकता है।

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

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

फाइल सिस्टम एन्क्रिप्शन के कार्यान्वयन पर अधिक विवरण एन्क्रिप्शन अनुभाग में उपलब्ध हैं।

पासवर्ड सुरक्षा

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

किसी डिवाइस व्यवस्थापक द्वारा पासवर्ड और/या पासवर्ड जटिलता नियमों के उपयोग की आवश्यकता हो सकती है।

डिवाइस प्रशासन

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

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