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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

सत्यापित बूट

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

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

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

Android 4.0 ने KeyChain क्लास की शुरुआत की ताकि एप्लिकेशन को निजी कुंजियों और प्रमाणपत्र श्रृंखलाओं के लिए सिस्टम क्रेडेंशियल स्टोरेज का उपयोग करने की अनुमति मिल सके।

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

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

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

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

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

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

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

भंडारण एन्क्रिप्शन

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

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

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

लॉकस्क्रीन क्रेडेंशियल सुरक्षा

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

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

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

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