एड्रॉइड डिवाइस पेनेट्रेशन टेस्टिंग मास्टरक्लास
एंड्रॉइड सुरक्षा आर्किटेक्चर
एंड्रॉइड सुरक्षा आर्किटेक्चर
एंड्रॉइड की सुरक्षा कोई एक अकेली सुविधा नहीं है, बल्कि यह परतों का एक जटिल ढाँचा है। यह सब कुछ लिनक्स कर्नेल से शुरू होता है, जो पूरे ऑपरेटिंग सिस्टम की नींव है। प्रत्येक परत पिछली परत पर बनती है, जो ऐप्स और उपयोगकर्ता डेटा के लिए एक मज़बूत सुरक्षा कवच बनाती है।
लिनक्स कर्नेल: सुरक्षा की नींव
एंड्रॉइड के दिल में लिनक्स कर्नेल है। यह सीधे हार्डवेयर के साथ इंटरैक्ट करता है और बुनियादी सिस्टम सेवाएँ प्रदान करता है, जैसे मेमोरी प्रबंधन, प्रक्रिया प्रबंधन और डिवाइस ड्राइवर। सुरक्षा के लिहाज़ से, इसकी सबसे महत्वपूर्ण विशेषताओं में से एक प्रक्रिया पृथक्करण (process isolation) है।
एंड्रॉइड इस क्षमता का उपयोग एप्लिकेशन सैंडबॉक्सिंग के लिए करता है। जब आप कोई ऐप इंस्टॉल करते हैं, तो सिस्टम उसे एक अद्वितीय उपयोगकर्ता आईडी (UID) और समूह आईडी (GID) प्रदान करता है। यह ऐप अनिवार्य रूप से अपने स्वयं के छोटे से द्वीप पर रहता है। कर्नेल यह सुनिश्चित करता है कि एक ऐप (एक UID के साथ) दूसरे ऐप (एक अलग UID के साथ) के डेटा तक सीधे नहीं पहुँच सकता है। यह सिद्धांत सुनिश्चित करता है कि भले ही कोई ऐप दुर्भावनापूर्ण हो, वह अन्य ऐप्स या सिस्टम के मुख्य भागों को नुकसान पहुँचाने से सीमित है।
एप्लिकेशन साइनिंग और अनुमतियाँ
किसी भी ऐप को एंड्रॉइड डिवाइस पर इंस्टॉल करने से पहले, उसे एक निजी कुंजी के साथ डिजिटल रूप से हस्ताक्षरित होना चाहिए। यह डिजिटल हस्ताक्षर ऐप की प्रामाणिकता और अखंडता की गारंटी देता है। यह साबित करता है कि ऐप उस डेवलपर से आया है जिसका वह दावा करता है और इंस्टॉलेशन के बाद इसके साथ छेड़छाड़ नहीं की गई है। यदि आप किसी ऐप को अपडेट करने का प्रयास करते हैं, तो अपडेट को उसी डेवलपर की कुंजी से हस्ताक्षरित होना चाहिए, जिस कुंजी से मूल ऐप को हस्ताक्षरित किया गया था, अन्यथा सिस्टम अपडेट को अस्वीकार कर देगा।
ये हस्ताक्षरित ऐप्स एपीके (APK - Android Package Kit) फ़ाइलों के रूप में वितरित किए जाते हैं। एपीके एक ज़िप फ़ाइल की तरह है जिसमें ऐप को चलाने के लिए आवश्यक सभी चीजें होती हैं।
| फ़ाइल/फ़ोल्डर | उद्देश्य |
|---|---|
AndroidManifest.xml | ऐप की आवश्यक जानकारी, जैसे अनुमतियाँ और घटक घोषित करता है। |
classes.dex | संकलित एप्लिकेशन कोड जिसे एंड्रॉइड रनटाइम निष्पादित करता है। |
res/ | संसाधन, जैसे चित्र, लेआउट और स्ट्रिंग्स। |
lib/ | प्रोसेसर आर्किटेक्चर के लिए विशिष्ट संकलित कोड। |
META-INF/ | हस्ताक्षर और अखंडता डेटा युक्त। |
अनुमतियाँ यह नियंत्रित करती हैं कि कोई ऐप क्या कर सकता है। पुराने एंड्रॉइड संस्करणों में, उपयोगकर्ता को इंस्टॉलेशन के समय सभी अनुमतियों को स्वीकार करना पड़ता था। यदि आप सहमत नहीं थे, तो आप ऐप इंस्टॉल नहीं कर सकते थे।
एंड्रॉइड 6.0 (मार्शमैलो) के बाद से, सिस्टम ने रनटाइम अनुमतियों को लागू किया है। अब, ऐप्स को संवेदनशील डेटा (जैसे संपर्क, कैमरा या स्थान) तक पहुँचने की आवश्यकता होने पर ही अनुमति माँगनी पड़ती है। इससे उपयोगकर्ताओं को इस पर अधिक नियंत्रण मिलता है कि वे क्या साझा करते हैं और कब साझा करते हैं।
हार्डवेयर-समर्थित सुरक्षा
आधुनिक एंड्रॉइड डिवाइस केवल सॉफ्टवेयर पर निर्भर नहीं रहते हैं। वे सुरक्षा के लिए विशेष हार्डवेयर का भी उपयोग करते हैं। एक महत्वपूर्ण घटक विश्वसनीय निष्पादन वातावरण (Trusted Execution Environment - TEE) है। यह डिवाइस के मुख्य प्रोसेसर के भीतर एक सुरक्षित, पृथक क्षेत्र है। TEE मुख्य ऑपरेटिंग सिस्टम से अलग कोड चलाता है, जो इसे मुख्य OS में किसी भी भेद्यता से बचाता है। इसका उपयोग बायोमेट्रिक डेटा (जैसे फिंगरप्रिंट) या डिजिटल अधिकार प्रबंधन (DRM) जैसी संवेदनशील जानकारी को संसाधित करने के लिए किया जाता है।
और भी अधिक सुरक्षा के लिए, कई उपकरणों में StrongBox Keymaster शामिल है। यह एक अलग, समर्पित सुरक्षा चिप है जो क्रिप्टोग्राफ़िक कुंजियों को संग्रहीत करने और संचालित करने के लिए डिज़ाइन की गई है। चूंकि यह मुख्य CPU से भौतिक रूप से अलग है, इसलिए यह हार्डवेयर हमलों और सॉफ्टवेयर शोषण के खिलाफ़ और भी मज़बूत सुरक्षा प्रदान करता है। StrongBox का उपयोग पिन, पासवर्ड और क्रिप्टोग्राफ़िक कुंजियों जैसी सबसे संवेदनशील जानकारी को सुरक्षित करने के लिए किया जाता है।
आइए देखें कि आपने कितना सीखा है।
एंड्रॉइड की सुरक्षा संरचना की नींव क्या है?
एंड्रॉइड में, एक ऐप को दूसरे ऐप के डेटा तक सीधे पहुंचने से रोकने के लिए कौन सी सुरक्षा सुविधा का उपयोग किया जाता है?
संक्षेप में, एंड्रॉइड की सुरक्षा लिनक्स कर्नेल की नींव से लेकर विशेष सुरक्षा हार्डवेयर तक, कई परतों पर बनी है। इन परतों को समझना किसी भी व्यक्ति के लिए आवश्यक है जो एंड्रॉइड एप्लिकेशन की सुरक्षा का आकलन या सुधार करना चाहता है।
