एंड्रॉइड अपनी सुरक्षा क्षमताओं और पेशकशों में लगातार सुधार करता रहता है। बाएँ नेविगेशन में रिलीज़ के अनुसार संवर्द्धन की सूचियाँ देखें।
एंड्रॉइड 14
Android के हर वर्शन में, सुरक्षा से जुड़े कई सुधारों को शामिल किया गया है, ताकि उपयोगकर्ता. Android 14 में सुरक्षा से जुड़े कुछ अहम बदलावों के बारे में यहां बताया गया है:
- Android 10 में लॉन्च किया गया, हार्डवेयर-असिस्टेड AddressSanitizer (HWASan), मेमोरी की गड़बड़ी का पता लगाने वाला टूल है. यह इससे मिलता-जुलता है AddressSanitizer. Android 14 की मदद से, HWASan में काफ़ी सुधार किए गए हैं. जानें कि यह Android रिलीज़ में बग को शामिल होने से कैसे रोकता है, HWAddressSanitizer
- Android 14 में, तीसरे पक्ष के साथ जगह की जानकारी का डेटा शेयर करने वाले ऐप्लिकेशन पर सबसे पहले, सिस्टम के रनटाइम की अनुमति वाले डायलॉग में अब क्लिक किया जा सकने वाला एक सेक्शन शामिल है, जो डेटा शेयर करने के तरीके, जैसे कि कोई ऐप्लिकेशन इस डेटा को क्यों शेयर करता है तीसरे पक्षों का डेटा शामिल होता है.
- Android 12 में, मॉडेम लेवल पर 2G की सुविधा बंद करने का विकल्प जोड़ा गया है. इससे उपयोगकर्ताओं को 2G के पुराने सुरक्षा मॉडल से जुड़े सुरक्षा जोखिम से बचाने में मदद मिलती है. यह जानना कि कैसे 2G नेटवर्क को बंद करने की गंभीर समस्या, एंटरप्राइज़ ग्राहकों के लिए हो सकती है. Android 14, सुरक्षा की इस सुविधा को चालू करता है पेश है Android Enterprise में, आईटी एडमिन के लिए, मैनेज की जा रही किसी सेवा या सुविधाओं को सीमित करने की सुविधा उपलब्ध है डिवाइस को 2G कनेक्टिविटी में डाउनग्रेड करें.
- बिना एन्क्रिप्ट किए गए मोबाइल कनेक्शन को अस्वीकार करने की सुविधा जोड़ी गई है. इससे यह पक्का होता है कि सर्किट स्विच की गई आवाज़ और एसएमएस ट्रैफ़िक हमेशा एन्क्रिप्ट (सुरक्षित) रहता है और उसे हवा में होने वाली इंटरसेप्शन से सुरक्षित रखा जाता है. मोबाइल इंटरनेट कनेक्शन को बेहतर बनाने के लिए, Android के प्रोग्राम के बारे में ज़्यादा जानें.
- एक से ज़्यादा IMEI नंबर के लिए सहायता जोड़ी गई
- Android 14 के बाद, एएसई-एचसीटीआर2, फ़ाइल के नाम को एन्क्रिप्ट करने का पसंदीदा तरीका है. ऐसा उन डिवाइसों के लिए किया जाता है जिनमें एन्क्रिप्शन के लिए तेज़ निर्देश मौजूद होते हैं.
- मोबाइल कनेक्टिविटी
- Android सुरक्षा केंद्र के लिए दस्तावेज़ जोड़ा गया
- अगर आपका ऐप्लिकेशन, Android 14 को टारगेट करता है और डाइनैमिक कोड लोडिंग (डीसीएल) का इस्तेमाल करता है, तो डाइनैमिक रूप से लोड होने वाली सभी फ़ाइलों को 'रीड-ओनली' के तौर पर मार्क किया जाना चाहिए. ऐसा न करने पर, सिस्टम कोई अपवाद दिखाता है. हमारा सुझाव है कि ऐप्लिकेशन, डाइनैमिक तौर पर कोड लोड करने से बचें. ऐसा करने से, कोड इंजेक्शन या कोड में छेड़छाड़ की वजह से, ऐप्लिकेशन के हैक होने का खतरा बहुत बढ़ जाता है.
हमारे सभी एओएसपी रिलीज़ नोट देखें और Android डेवलपर सुविधाएँ और बदलावों की सूची देखें.
एंड्रॉइड 13
Android के हर वर्शन में, सुरक्षा से जुड़े कई सुधारों को शामिल किया गया है, ताकि उपयोगकर्ता. Android 13 में सुरक्षा से जुड़े कुछ मुख्य सुधार यहां दिए गए हैं:
- Android 13 में, कई दस्तावेज़ों को प्रज़ेंटेशन देने की सुविधा जोड़ी गई है. प्रज़ेंटेशन सेशन के इस नए इंटरफ़ेस की मदद से, ऐप्लिकेशन में एक से ज़्यादा दस्तावेज़ों का प्रज़ेंटेशन किया जा सकता है. ऐसा मौजूदा एपीआई की मदद से नहीं किया जा सकता. ज़्यादा जानकारी के लिए, पहचान की पुष्टि करने वाला क्रेडेंशियल देखें
- Android 13 में, इंटेंट बाहरी ऐप्लिकेशन से शुरू होने वाले ऐसे ऐप्लिकेशन जो एक्सपोर्ट किया गया कॉम्पोनेंट (अगर इंटेंट मैच होता हो) सिर्फ़ तब इंटेंट फ़िल्टर एलिमेंट का एलान किया गया हो.
- Open Mobile API (OMAPI) एक स्टैंडर्ड एपीआई है. इसका इस्तेमाल, डिवाइस के सुरक्षित एलिमेंट के साथ कम्यूनिकेट करने के लिए किया जाता है. Android 13 से पहले, सिर्फ़ ऐप्लिकेशन और फ़्रेमवर्क वाले मॉड्यूल में इस इंटरफ़ेस पर पहुंच सकते हैं. इसे वेंडर के स्टैबल इंटरफ़ेस में बदलकर, HAL मॉड्यूल, OMAPI सेवा की मदद से सुरक्षित एलिमेंट के साथ भी कम्यूनिकेट कर सकते हैं. ज़्यादा जानकारी के लिए, यह देखें OMAPI वेंडर स्टेबल इंटरफ़ेस.
- Android 13-QPR के बाद, शेयर किए गए यूआईडी का इस्तेमाल नहीं किया जा सकता. Android 13 या उसके बाद का वर्शन इस्तेमाल करने वालों को आपसे संपर्क करना चाहिए `android:sharedUserMaxSdkVersion="32"` को उनके मेनिफ़ेस्ट में शामिल करें. इस एंट्री की वजह से, नए उपयोगकर्ताओं को शेयर किया गया यूआईडी नहीं मिलता. यूआईडी के बारे में ज़्यादा जानकारी के लिए, यहां देखें ऐप्लिकेशन साइनिंग.
- Android 13 में, एईएस (ऐडवांस एन्क्रिप्शन स्टैंडर्ड), एचएमएसी (कीड-हैश मैसेज ऑथेंटिकेशन कोड), और असिमेट्रिक क्रिप्टोग्राफ़िक एल्गोरिदम (इनमें एलिप्टिक कर्व, आरएसए2048, आरएसए4096, और कर्व 25519 शामिल हैं) जैसे सिमेट्रिक क्रिप्टोग्राफ़िक प्राइमिटिव के लिए, Keystore की सुविधा जोड़ी गई है
- Android 13 (एपीआई लेवल 33) और उसके बाद के वर्शन में, ऐप्लिकेशन से सूचनाएं भेजने के लिए, रनटाइम की अनुमति का इस्तेमाल किया जा सकता है. इससे, उपयोगकर्ताओं को यह कंट्रोल करने की सुविधा मिलती है कि उन्हें अनुमति से जुड़ी कौनसी सूचनाएं देखनी हैं.
- हर बार इस्तेमाल के लिए जोड़ा गया सभी डिवाइस लॉग का ऐक्सेस मांगने वाले ऐप्लिकेशन के लिए सूचना, उपयोगकर्ताओं को ऐक्सेस देने या न देने का विकल्प देना.
- हमने Android वर्चुअलाइज़ेशन फ़्रेमवर्क (AVF) लॉन्च किया, यह स्टैंडर्ड एपीआई के साथ, अलग-अलग हाइपरवाइज़र को एक फ़्रेमवर्क के तहत एक साथ लाता है. यह, हाइपरवाइजर से अलग किए गए वर्कलोड को चलाने के लिए, सुरक्षित और निजी रनिंग एनवायरमेंट उपलब्ध कराता है.
- APK सिग्नेचर स्कीम v3.1 को लॉन्च किया गया apksigner का इस्तेमाल करने वाले सभी नए कुंजी रोटेशन, डिफ़ॉल्ट रूप से v3.1 सिग्नेचर स्कीम का इस्तेमाल करते हैं ताकि Android 13 और उसके बाद के वर्शन के लिए रोटेशन को टारगेट किया जा सके.
हमारे सभी एओएसपी रिलीज़ नोट देखें और Android डेवलपर सुविधाएँ और बदलावों की सूची देखें.
एंड्रॉइड 12
प्रत्येक एंड्रॉइड रिलीज़ में उपयोगकर्ताओं की सुरक्षा के लिए दर्जनों सुरक्षा संवर्द्धन शामिल होते हैं। यहां Android 12 में उपलब्ध कुछ प्रमुख सुरक्षा संवर्द्धन दिए गए हैं:
- Android 12 BiometricManager.Strings API पेश करता है, जो प्रमाणीकरण के लिए BiometricPrompt का उपयोग करने वाले ऐप्स के लिए स्थानीयकृत स्ट्रिंग प्रदान करता है। इन स्ट्रिंग्स का उद्देश्य डिवाइस-जागरूक होना और अधिक विशिष्टता प्रदान करना है कि किस प्रमाणीकरण प्रकार का उपयोग किया जा सकता है। एंड्रॉइड 12 में अंडर-डिस्प्ले फिंगरप्रिंट सेंसर के लिए समर्थन भी शामिल है
- अंडर-डिस्प्ले फिंगरप्रिंट सेंसर के लिए समर्थन जोड़ा गया
- फ़िंगरप्रिंट एंड्रॉइड इंटरफ़ेस डेफिनिशन लैंग्वेज (एआईडीएल) का परिचय
- नए फेस एआईडीएल के लिए समर्थन
- प्लेटफ़ॉर्म विकास के लिए एक भाषा के रूप में रस्ट का परिचय
- उपयोगकर्ताओं के लिए केवल उनके अनुमानित स्थान तक पहुंच प्रदान करने का विकल्प जोड़ा गया
- जब कोई ऐप कैमरा या माइक्रोफ़ोन का उपयोग कर रहा हो तो स्टेटस बार पर गोपनीयता संकेतक जोड़े गए
- Android का निजी कंप्यूट कोर (PCC)
- 2जी समर्थन को अक्षम करने का विकल्प जोड़ा गया
एंड्रॉइड 11
Android के हर वर्शन में, सुरक्षा से जुड़े कई सुधारों को शामिल किया गया है, ताकि उपयोगकर्ता. यहां उपलब्ध, सुरक्षा से जुड़े अहम सुधारों की सूची देखने के लिए Android 11 के लिए, देखें Android रिलीज़ नोट.
एंड्रॉइड 10
प्रत्येक एंड्रॉइड रिलीज़ में उपयोगकर्ताओं की सुरक्षा के लिए दर्जनों सुरक्षा संवर्द्धन शामिल होते हैं। एंड्रॉइड 10 में कई सुरक्षा और गोपनीयता संवर्द्धन शामिल हैं। Android 10 में परिवर्तनों की पूरी सूची के लिए Android 10 रिलीज़ नोट देखें।
सुरक्षा
बाउंडसैनिटाइज़र
एंड्रॉइड 10 ब्लूटूथ और कोडेक्स में बाउंडसैनिटाइज़र (बाउंडसैन) को तैनात करता है। बाउंडसैन यूबीसैन के बाउंड्स सैनिटाइज़र का उपयोग करता है। यह शमन प्रति-मॉड्यूल स्तर पर सक्षम है। यह एंड्रॉइड के महत्वपूर्ण घटकों को सुरक्षित रखने में मदद करता है और इसे अक्षम नहीं किया जाना चाहिए। बाउंडसन निम्नलिखित कोडेक्स में सक्षम है:
-
libFLAC
-
libavcdec
-
libavcenc
-
libhevcdec
-
libmpeg2
-
libopus
-
libvpx
-
libspeexresampler
-
libvorbisidec
-
libaac
-
libxaac
केवल-स्मृति निष्पादित करें
डिफ़ॉल्ट रूप से, AArch64 सिस्टम बायनेरिज़ के लिए निष्पादन योग्य कोड अनुभागों को समय-समय पर कोड पुन: उपयोग हमलों के खिलाफ सख्त शमन के रूप में केवल-निष्पादित (नॉन-रीडेबल) के रूप में चिह्नित किया जाता है। वह कोड जो डेटा और कोड को एक साथ मिलाता है और वह कोड जो जानबूझकर इन अनुभागों का निरीक्षण करता है (पहले मेमोरी सेगमेंट को पढ़ने योग्य के रूप में रीमैप किए बिना) अब काम नहीं करता है। एंड्रॉइड 10 (एपीआई स्तर 29 या उच्चतर) के लक्ष्य एसडीके वाले ऐप्स प्रभावित होते हैं यदि ऐप पहले अनुभाग को पढ़ने योग्य के रूप में चिह्नित किए बिना मेमोरी में एक्ज़ीक्यूट-ओनली मेमोरी (एक्सओएम) सक्षम सिस्टम लाइब्रेरी के कोड अनुभागों को पढ़ने का प्रयास करता है।
विस्तारित पहुंच
ट्रस्ट एजेंट, स्मार्ट लॉक जैसे तृतीयक प्रमाणीकरण तंत्र द्वारा उपयोग किया जाने वाला अंतर्निहित तंत्र, केवल एंड्रॉइड 10 में अनलॉक का विस्तार कर सकता है। ट्रस्ट एजेंट अब लॉक किए गए डिवाइस को अनलॉक नहीं कर सकते हैं और केवल अधिकतम चार घंटे के लिए डिवाइस को अनलॉक रख सकते हैं।
चेहरा प्रमाणीकरण
फेस प्रमाणीकरण उपयोगकर्ताओं को केवल अपने डिवाइस के सामने देखकर अपने डिवाइस को अनलॉक करने की अनुमति देता है। एंड्रॉइड 10 एक नए फेस ऑथेंटिकेशन स्टैक के लिए समर्थन जोड़ता है जो समर्थित हार्डवेयर पर फेस ऑथेंटिकेशन के दौरान सुरक्षा और गोपनीयता को संरक्षित करते हुए कैमरा फ्रेम को सुरक्षित रूप से संसाधित कर सकता है। एंड्रॉइड 10 ऑनलाइन बैंकिंग या अन्य सेवाओं जैसे लेनदेन के लिए ऐप एकीकरण को सक्षम करने के लिए सुरक्षा-अनुरूप कार्यान्वयन का एक आसान तरीका भी प्रदान करता है।
पूर्णांक अतिप्रवाह स्वच्छता
एंड्रॉइड 10 सॉफ्टवेयर कोडेक्स में इंटीजर ओवरफ्लो सैनिटाइजेशन (इंटसैन) को सक्षम करता है। सुनिश्चित करें कि प्लेबैक प्रदर्शन किसी भी कोडेक्स के लिए स्वीकार्य है जो डिवाइस के हार्डवेयर में समर्थित नहीं है। IntSan निम्नलिखित कोडेक्स में सक्षम है:
-
libFLAC
-
libavcdec
-
libavcenc
-
libhevcdec
-
libmpeg2
-
libopus
-
libvpx
-
libspeexresampler
-
libvorbisidec
मॉड्यूलर सिस्टम घटक
एंड्रॉइड 10 कुछ एंड्रॉइड सिस्टम घटकों को मॉड्यूलराइज़ करता है और उन्हें सामान्य एंड्रॉइड रिलीज़ चक्र के बाहर अपडेट करने में सक्षम बनाता है। कुछ मॉड्यूल में शामिल हैं:
- एंड्रॉइड रनटाइम
- कॉन्स्क्रिप्ट
- डीएनएस रिज़ॉल्वर
- दस्तावेज़यूआई
- एक्स्टसर्विसेज
- मिडिया
- मॉड्यूलमेटाडेटा
- नेटवर्किंग
- अनुमति नियंत्रक
- समय क्षेत्र डेटा
ओईएमक्रिप्टो
एंड्रॉइड 10 OEMCrypto API संस्करण 15 का उपयोग करता है।
स्कूडो
स्कूडो एक गतिशील उपयोगकर्ता-मोड मेमोरी एलोकेटर है जिसे ढेर-संबंधित कमजोरियों के खिलाफ अधिक लचीला बनाया गया है। यह मानक C आवंटन और डीलोकेशन प्रिमिटिव, साथ ही C++ प्रिमिटिव प्रदान करता है।
शैडोकॉलस्टैक
ShadowCallStack (SCS)
एक एलएलवीएम इंस्ट्रुमेंटेशन मोड है जो नॉनलीफ़ फ़ंक्शंस के फ़ंक्शन प्रोलॉग में फ़ंक्शन के रिटर्न एड्रेस को एक अलग आवंटित ShadowCallStack
इंस्टेंस में सहेजकर और ShadowCallStack
इंस्टेंस से रिटर्न एड्रेस को लोड करके रिटर्न एड्रेस ओवरराइट (जैसे स्टैक बफर ओवरफ्लो) से बचाता है। फ़ंक्शन एपिलॉग.
WPA3 और वाई-फाई एन्हांस्ड ओपन
एंड्रॉइड 10 ज्ञात हमलों के खिलाफ बेहतर गोपनीयता और मजबूती प्रदान करने के लिए वाई-फाई संरक्षित एक्सेस 3 (डब्ल्यूपीए 3) और वाई-फाई एन्हांस्ड ओपन सुरक्षा मानकों के लिए समर्थन जोड़ता है।
गोपनीयता
एंड्रॉइड 9 या उससे पहले के संस्करण को लक्षित करते समय ऐप एक्सेस
यदि आपका ऐप एंड्रॉइड 10 या उच्चतर पर चलता है लेकिन एंड्रॉइड 9 (एपीआई स्तर 28) या उससे कम को लक्षित करता है, तो प्लेटफ़ॉर्म निम्नलिखित व्यवहार लागू करता है:
- यदि आपका ऐप
ACCESS_FINE_LOCATION
याACCESS_COARSE_LOCATION
के लिए<uses-permission>
तत्व घोषित करता है, तो सिस्टम इंस्टॉलेशन के दौरान स्वचालित रूप सेACCESS_BACKGROUND_LOCATION
के लिए<uses-permission>
तत्व जोड़ता है। - यदि आपका ऐप
ACCESS_FINE_LOCATION
याACCESS_COARSE_LOCATION
का अनुरोध करता है, तो सिस्टम स्वचालित रूप से अनुरोध मेंACCESS_BACKGROUND_LOCATION
जोड़ देता है।
पृष्ठभूमि गतिविधि प्रतिबंध
एंड्रॉइड 10 से शुरू होकर, सिस्टम पृष्ठभूमि से गतिविधियों को शुरू करने पर प्रतिबंध लगाता है। यह व्यवहार परिवर्तन उपयोगकर्ता के लिए रुकावटों को कम करने में मदद करता है और उपयोगकर्ता को उनकी स्क्रीन पर जो दिखाया जाता है उस पर अधिक नियंत्रण रखता है। जब तक आपका ऐप उपयोगकर्ता इंटरैक्शन के प्रत्यक्ष परिणाम के रूप में गतिविधियां शुरू करता है, तब तक आपका ऐप इन प्रतिबंधों से प्रभावित नहीं होता है।
पृष्ठभूमि से गतिविधियाँ शुरू करने के अनुशंसित विकल्प के बारे में अधिक जानने के लिए, अपने ऐप में समय-संवेदनशील घटनाओं के बारे में उपयोगकर्ताओं को सचेत करने के तरीके पर मार्गदर्शिका देखें।
कैमरा मेटाडेटा
एंड्रॉइड 10 उस जानकारी की चौड़ाई को बदल देता है जो getCameraCharacteristics()
विधि डिफ़ॉल्ट रूप से लौटाती है। विशेष रूप से, इस पद्धति के रिटर्न वैल्यू में शामिल संभावित डिवाइस-विशिष्ट मेटाडेटा तक पहुंचने के लिए आपके ऐप के पास CAMERA
अनुमति होनी चाहिए।
इन परिवर्तनों के बारे में अधिक जानने के लिए, अनुमति की आवश्यकता वाले कैमरा फ़ील्ड के बारे में अनुभाग देखें।
क्लिपबोर्ड डेटा
जब तक आपका ऐप डिफ़ॉल्ट इनपुट मेथड एडिटर (IME) नहीं है या वह ऐप नहीं है जिस पर वर्तमान में फोकस है, आपका ऐप एंड्रॉइड 10 या उच्चतर पर क्लिपबोर्ड डेटा तक नहीं पहुंच सकता है।
डिवाइस का स्थान
किसी ऐप की स्थान जानकारी तक पहुंच पर उपयोगकर्ताओं के अतिरिक्त नियंत्रण का समर्थन करने के लिए, एंड्रॉइड 10 ने ACCESS_BACKGROUND_LOCATION
अनुमति पेश की है।
ACCESS_FINE_LOCATION
और ACCESS_COARSE_LOCATION
अनुमतियों के विपरीत, ACCESS_BACKGROUND_LOCATION
अनुमति किसी ऐप की स्थान तक पहुंच को केवल तभी प्रभावित करती है जब वह पृष्ठभूमि में चलता है। किसी ऐप को पृष्ठभूमि में स्थान तक पहुंचने वाला माना जाता है जब तक कि निम्नलिखित में से कोई एक शर्त पूरी न हो:
- ऐप से संबंधित एक गतिविधि दिखाई देती है.
- ऐप एक अग्रभूमि सेवा चला रहा है जिसने एकअग्रभूमि सेवा प्रकार का
location
घोषित किया है।
अपने ऐप में किसी सेवा के लिए अग्रभूमि सेवा प्रकार घोषित करने के लिए, अपने ऐप काtargetSdkVersion
याcompileSdkVersion
29
या उच्चतर पर सेट करें। इस बारे में और जानें कि फ़ोरग्राउंड सेवाएँ उपयोगकर्ता द्वारा शुरू की गई कार्रवाइयों को कैसे जारी रख सकती हैं जिनके लिए स्थान तक पहुंच की आवश्यकता होती है।
बाह्य भंडारण
डिफ़ॉल्ट रूप से, एंड्रॉइड 10 और उच्चतर को लक्षित करने वाले ऐप्स को बाहरी स्टोरेज, या स्कोप्ड स्टोरेज में स्कोप्ड एक्सेस दिया जाता है। ऐसे ऐप्स किसी भी स्टोरेज-संबंधी उपयोगकर्ता अनुमति के अनुरोध के बिना बाहरी स्टोरेज डिवाइस के भीतर निम्नलिखित प्रकार की फाइलें देख सकते हैं:
- ऐप-विशिष्ट निर्देशिका में फ़ाइलें,
getExternalFilesDir()
का उपयोग करके एक्सेस की जाती हैं। - फ़ोटो, वीडियो और ऑडियो क्लिप जो ऐप ने मीडिया स्टोर से बनाए हैं।
स्कोप्ड स्टोरेज के बारे में अधिक जानने के लिए, साथ ही बाहरी स्टोरेज डिवाइस पर सहेजी गई फ़ाइलों को साझा करने, एक्सेस करने और संशोधित करने के तरीके के बारे में अधिक जानने के लिए, बाहरी स्टोरेज में फ़ाइलों को प्रबंधित करने और मीडिया फ़ाइलों तक पहुंचने और संशोधित करने के बारे में मार्गदर्शिकाएँ देखें।
मैक एड्रेस रैंडमाइजेशन
एंड्रॉइड 10 या उच्चतर चलाने वाले उपकरणों पर, सिस्टम डिफ़ॉल्ट रूप से यादृच्छिक मैक पते प्रसारित करता है।
यदि आपका ऐप किसी एंटरप्राइज़ उपयोग के मामले को संभालता है, तो प्लेटफ़ॉर्म मैक पते से संबंधित कई परिचालनों के लिए एपीआई प्रदान करता है:
- यादृच्छिक MAC पता प्राप्त करें : डिवाइस स्वामी ऐप्स और प्रोफ़ाइल स्वामी ऐप्स
getRandomizedMacAddress()
पर कॉल करके किसी विशिष्ट नेटवर्क को निर्दिष्ट यादृच्छिक MAC पता पुनर्प्राप्त कर सकते हैं। - वास्तविक, फ़ैक्टरी MAC पता प्राप्त करें: डिवाइस स्वामी ऐप्स
getWifiMacAddress()
पर कॉल करके डिवाइस का वास्तविक हार्डवेयर MAC पता प्राप्त कर सकते हैं। यह विधि उपकरणों के बेड़े को ट्रैक करने के लिए उपयोगी है।
गैर-रीसेट करने योग्य डिवाइस पहचानकर्ता
एंड्रॉइड 10 से शुरू होकर, डिवाइस के गैर-रीसेट करने योग्य पहचानकर्ताओं तक पहुंचने के लिए ऐप्स के पास READ_PRIVILEGED_PHONE_STATE
विशेषाधिकार प्राप्त अनुमति होनी चाहिए, जिसमें IMEI और सीरियल नंबर दोनों शामिल हैं।
-
Build
-
TelephonyManager
यदि आपके ऐप के पास अनुमति नहीं है और आप वैसे भी गैर-रीसेट करने योग्य पहचानकर्ताओं के बारे में जानकारी मांगने का प्रयास करते हैं, तो प्लेटफ़ॉर्म की प्रतिक्रिया लक्ष्य एसडीके संस्करण के आधार पर भिन्न होती है:
- यदि आपका ऐप एंड्रॉइड 10 या उच्चतर को लक्षित करता है, तो एक
SecurityException
होता है। - यदि आपका ऐप एंड्रॉइड 9 (एपीआई स्तर 28) या उससे कम को लक्षित करता है, तो ऐप के पास
READ_PHONE_STATE
अनुमति होने पर विधिnull
या प्लेसहोल्डर डेटा लौटाती है। अन्यथा, एकSecurityException
उत्पन्न होती है।
शारीरिक गतिविधि पहचान
एंड्रॉइड 10 उन ऐप्स के लिए android.permission.ACTIVITY_RECOGNITION
रनटाइम अनुमति पेश करता है, जिन्हें उपयोगकर्ता के कदमों की संख्या का पता लगाने या उपयोगकर्ता की शारीरिक गतिविधि, जैसे चलना, बाइक चलाना या वाहन में चलना वर्गीकृत करने की आवश्यकता होती है। इसे उपयोगकर्ताओं को यह दृश्यता देने के लिए डिज़ाइन किया गया है कि सेटिंग्स में डिवाइस सेंसर डेटा का उपयोग कैसे किया जाता है।
Google Play सेवाओं के भीतर कुछ लाइब्रेरी, जैसे गतिविधि पहचान एपीआई और Google फ़िट एपीआई , तब तक परिणाम प्रदान नहीं करते हैं जब तक कि उपयोगकर्ता ने आपके ऐप को यह अनुमति नहीं दी हो।
डिवाइस पर एकमात्र अंतर्निहित सेंसर जिनके लिए आपको यह अनुमति घोषित करने की आवश्यकता होती है, वे स्टेप काउंटर और स्टेप डिटेक्टर सेंसर हैं।
यदि आपका ऐप एंड्रॉइड 9 (एपीआई स्तर 28) या उससे कम को लक्षित करता है, तो सिस्टम आवश्यकतानुसार आपके ऐप को android.permission.ACTIVITY_RECOGNITION
अनुमति स्वतः प्रदान करता है, यदि आपका ऐप निम्नलिखित में से प्रत्येक शर्त को पूरा करता है:
- मेनिफेस्ट फ़ाइल में
com.google.android.gms.permission.ACTIVITY_RECOGNITION
अनुमति शामिल है। - मेनिफेस्ट फ़ाइल में
android.permission.ACTIVITY_RECOGNITION
अनुमति शामिल नहीं है ।
यदि सिस्टम-ऑटो android.permission.ACTIVITY_RECOGNITION
अनुमति देता है, तो आपका ऐप एंड्रॉइड 10 को लक्षित करने के लिए अपने ऐप को अपडेट करने के बाद भी अनुमति बरकरार रखता है। हालांकि, उपयोगकर्ता सिस्टम सेटिंग्स में किसी भी समय इस अनुमति को रद्द कर सकता है।
/proc/net फ़ाइल सिस्टम प्रतिबंध
एंड्रॉइड 10 या उच्चतर चलाने वाले उपकरणों पर, ऐप्स /proc/net
तक नहीं पहुंच सकते हैं, जिसमें डिवाइस की नेटवर्क स्थिति के बारे में जानकारी शामिल होती है। जिन ऐप्स को इस जानकारी तक पहुंच की आवश्यकता है, जैसे वीपीएन, उन्हें NetworkStatsManager
या ConnectivityManager
क्लास का उपयोग करना चाहिए।
यूआई से अनुमति समूह हटा दिए गए
एंड्रॉइड 10 के अनुसार, ऐप्स यह नहीं देख सकते हैं कि यूआई में अनुमतियों को कैसे समूहीकृत किया गया है ।
संपर्क एफ़िनिटी को हटाना
एंड्रॉइड 10 से शुरू होकर, प्लेटफ़ॉर्म संपर्क एफ़िनिटी जानकारी का ट्रैक नहीं रखता है। परिणामस्वरूप, यदि आपका ऐप उपयोगकर्ता के संपर्कों पर खोज करता है, तो परिणाम इंटरैक्शन की आवृत्ति के आधार पर क्रमबद्ध नहीं होते हैं।
ContactsProvider
के बारे में मार्गदर्शिका में उन विशिष्ट फ़ील्ड और विधियों का वर्णन करने वाला एक नोटिस शामिल है जो एंड्रॉइड 10 में शुरू होने वाले सभी उपकरणों पर अप्रचलित हैं ।
स्क्रीन सामग्री तक प्रतिबंधित पहुंच
उपयोगकर्ताओं की स्क्रीन सामग्री की सुरक्षा के लिए, एंड्रॉइड 10 READ_FRAME_BUFFER
, CAPTURE_VIDEO_OUTPUT
और CAPTURE_SECURE_VIDEO_OUTPUT
अनुमतियों के दायरे को बदलकर डिवाइस की स्क्रीन सामग्री तक मौन पहुंच को रोकता है। एंड्रॉइड 10 के अनुसार, ये अनुमतियाँ केवल हस्ताक्षर-पहुंच हैं।
जिन ऐप्स को डिवाइस की स्क्रीन सामग्री तक पहुंचने की आवश्यकता है, उन्हें MediaProjection
एपीआई का उपयोग करना चाहिए, जो उपयोगकर्ता से सहमति प्रदान करने के लिए एक संकेत प्रदर्शित करता है।
USB डिवाइस क्रमांक
यदि आपका ऐप एंड्रॉइड 10 या उच्चतर को लक्षित करता है, तो आपका ऐप तब तक सीरियल नंबर नहीं पढ़ सकता जब तक उपयोगकर्ता आपके ऐप को यूएसबी डिवाइस या एक्सेसरी तक पहुंचने की अनुमति नहीं देता।
USB उपकरणों के साथ काम करने के बारे में अधिक जानने के लिए, USB होस्ट को कॉन्फ़िगर करने के तरीके पर मार्गदर्शिका देखें।
वाईफ़ाई
एंड्रॉइड 10 या उच्चतर को लक्षित करने वाले ऐप्स वाई-फाई को सक्षम या अक्षम नहीं कर सकते हैं। WifiManager.setWifiEnabled()
विधि हमेशा false
लौटाती है।
यदि आपको उपयोगकर्ताओं को वाई-फ़ाई सक्षम और अक्षम करने के लिए संकेत देने की आवश्यकता है, तो सेटिंग पैनल का उपयोग करें।
कॉन्फ़िगर किए गए वाई-फाई नेटवर्क तक सीधी पहुंच पर प्रतिबंध
उपयोगकर्ता की गोपनीयता की सुरक्षा के लिए, वाई-फाई नेटवर्क की सूची का मैन्युअल कॉन्फ़िगरेशन सिस्टम ऐप्स और डिवाइस नीति नियंत्रकों (डीपीसी) तक ही सीमित है। दी गई DPC या तो डिवाइस स्वामी या प्रोफ़ाइल स्वामी हो सकती है।
यदि आपका ऐप एंड्रॉइड 10 या उच्चतर को लक्षित करता है, और यह सिस्टम ऐप या डीपीसी नहीं है, तो निम्न विधियां उपयोगी डेटा नहीं लौटाती हैं:
-
getConfiguredNetworks()
विधि हमेशा एक खाली सूची लौटाती है। - प्रत्येक नेटवर्क ऑपरेशन विधि जो एक पूर्णांक मान लौटाती है
addNetwork()
औरupdateNetwork()
- हमेशा -1 लौटाती है। - प्रत्येक नेटवर्क ऑपरेशन जो एक बूलियन मान लौटाता है -
removeNetwork()
,reassociate()
,enableNetwork()
,disableNetwork()
,reconnect()
, औरdisconnect()
-हमेशाfalse
रिटर्न देता है।
एंड्रॉइड 9
प्रत्येक Android रिलीज़ में उपयोगकर्ताओं की सुरक्षा के लिए दर्जनों सुरक्षा संवर्द्धन शामिल होते हैं। Android 9 में उपलब्ध कुछ प्रमुख सुरक्षा संवर्द्धन की सूची के लिए, Android रिलीज़ नोट्स देखें।
एंड्रॉइड 8
Android के हर वर्शन में, सुरक्षा से जुड़े कई सुधारों को शामिल किया गया है, ताकि उपयोगकर्ता. Android 8.0 में सुरक्षा से जुड़े कुछ मुख्य सुधार किए गए हैं. इनके बारे में यहां बताया गया है:
- एन्क्रिप्ट (सुरक्षित) करने का तरीका. वर्क प्रोफ़ाइल में पासकोड हटाने की सुविधा जोड़ी गई.
- वेरिफ़ाइड बूट. Android वेरिफ़ाइड बूट (एवीबी) जोड़ा गया. पुष्टि हो गई है बूट लोडर में इस्तेमाल के लिए रोलबैक सुरक्षा के साथ काम करने वाला बूट कोड बेस एओएसपी. HLOS के लिए, रोलबैक की सुरक्षा के लिए बूटलोडर की सहायता का सुझाव दें. हमारा सुझाव है कि बूट लोडर को सिर्फ़ डिवाइस के साथ फ़िज़िकली इंटरैक्ट करके अनलॉक किया जा सकता है.
- लॉक स्क्रीन. छेड़छाड़ से बचने के लिए जोड़ी गई सुविधा लॉक स्क्रीन क्रेडेंशियल की पुष्टि करने वाला हार्डवेयर.
- KeyStore. कुंजी ज़रूरी है प्रमाणित करना होगा. ID जोड़ा गया प्रमाणित करने की सुविधा से, 'पहले से तैयार डिवाइस' सुविधा को बेहतर बनाने में मदद मिलती है.
- सैंडबॉक्सिंग. ज़्यादा मज़बूत प्रोजेक्ट ट्रेबल के मानक इंटरफ़ेस का इस्तेमाल करके, कई कॉम्पोनेंट को सैंडबॉक्स किया गया और डिवाइस के हिसाब से अलग-अलग कॉम्पोनेंट के लिए उपलब्ध है. हमने उन सभी ऐप्लिकेशन पर seccomp फ़िल्टरिंग लागू की है जिन पर भरोसा नहीं किया जा सकता. इससे, कर्नेल पर होने वाले हमले की संभावना कम हो जाती है. वेबव्यू अब एक अलग प्रोसेस में चलाया जाता है. इसके लिए, बाकी सेवाओं का ऐक्सेस बहुत ही सीमित होता है सिस्टम.
- केर्नेल हार्डनिंग. कठिन नियम लागू किया गया usercopy, पैन एम्युलेशन, init के बाद रीड-ओनली, और केएएसएलआर.
- यूज़र स्पेस को सुरक्षित रखना. मीडिया स्टैक के लिए सीएफ़आई लागू किया गया. ऐप्लिकेशन ओवरले अब सिस्टम के लिए ज़रूरी विंडो को कवर नहीं कर सकते. साथ ही, उपयोगकर्ताओं के पास उसे खारिज कर दें.
- स्ट्रीमिंग ओएस का अपडेट. जिन डिवाइसों में डिस्क स्टोरेज कम है उन पर अपडेट चालू किए गए हैं.
- अनजान ऐप्लिकेशन इंस्टॉल करने की अनुमति. उपयोगकर्ताओं को किसी ऐसे सोर्स से ऐप्लिकेशन इंस्टॉल करने के लिए, अनुमति देनी होगी जो पहले पक्ष का ऐप्लिकेशन स्टोर न हो.
- निजता. डिवाइस पर मौजूद हर ऐप्लिकेशन और हर उपयोगकर्ता के लिए, Android आईडी (एसएसएआईडी) की वैल्यू अलग-अलग होती है. वेब ब्राउज़र ऐप्लिकेशन के लिए, Widevine क्लाइंट आईडी
हर ऐप्लिकेशन पैकेज के नाम और वेब ऑरिजिन के लिए, अलग वैल्यू दिखाता है.
net.hostname
अब खाली है और डीएचसीपी क्लाइंट अब कोई होस्टनेम नहीं भेजता.android.os.Build.SERIAL
कोBuild.SERIAL
एपीआई से बदल दिया गया है. इसे उपयोगकर्ता की अनुमति से सुरक्षित किया जाता है. कुछ चिपसेट में, मैक पते को अपने-आप बदलने की सुविधा को बेहतर बनाया गया है.
एंड्रॉइड 7
Android के हर वर्शन में, सुरक्षा से जुड़े कई सुधारों को शामिल किया गया है, ताकि उपयोगकर्ता. Android में उपलब्ध, सुरक्षा से जुड़े कुछ अहम सुधारों के बारे में यहां बताया गया है 7.0:
- फ़ाइल के आधार पर एन्क्रिप्ट (सुरक्षित) करने का तरीका. फ़ाइल लेवल पर एन्क्रिप्ट (सुरक्षित) करना, पूरे स्टोरेज एरिया को एक ही यूनिट में एन्क्रिप्ट (सुरक्षित) करने के बजाय, बेहतर तरीका है यह अलग-अलग उपयोगकर्ताओं और प्रोफ़ाइलों (जैसे कि निजी और काम करते हैं).
- डायरेक्ट बूट. फ़ाइल-आधारित एन्क्रिप्शन, डायरेक्ट से चालू किया गया बूट करने से अलार्म घड़ी और सुलभता सुविधाओं जैसे कुछ ऐप्लिकेशन डिवाइस के चालू होने, लेकिन अनलॉक न होने पर चलाया जाता है.
- वेरिफ़ाइड बूट. वेरिफ़ाइड बूट की सुविधा, अब इन सेवाओं पर सख्ती से लागू की गई है हैक किए गए डिवाइसों को चालू होने से रोकें; यह गड़बड़ी को ठीक करने की सुविधा देता है, गैर-नुकसान पहुंचाने वाले डेटा करप्ट के ख़िलाफ़ विश्वसनीयता बेहतर बनाने में मदद मिलती है.
- SELinux. SELinux कॉन्फ़िगरेशन को अपडेट किया गया और बढ़ाया गया seccomp कवरेज ऐप्लिकेशन सैंडबॉक्स को और लॉक कर देता है और हमले को कम करता है की जगह है.
- लाइब्रेरी के लोड-ऑर्डर को किसी भी क्रम में लगाने की सुविधा और बेहतर एएसएलआर. किसी कोड का ज़्यादा से ज़्यादा इस्तेमाल करने से, कुछ कोड का दोबारा इस्तेमाल करने से होने वाले हमलों पर भरोसा कम हो जाता है.
- केर्नेल हार्डनिंग. इसके लिए अतिरिक्त मेमोरी सुरक्षा जोड़ी गई कर्नेल की मेमोरी के कुछ हिस्सों को सिर्फ़ पढ़ने के लिए के तौर पर मार्क करके, नए कर्नेल यूज़रस्पेस पतों तक कर्नेल ऐक्सेस दें और मौजूदा हमले को कम करें की जगह है.
- APK सिग्नेचर स्कीम v2. पूरी फ़ाइल पर हस्ताक्षर पेश किया गया स्कीम की मदद से, वेबसाइट की पुष्टि की रफ़्तार को बेहतर बनाया जाता है और इंटिग्रिटी गारंटी को मज़बूत बनाया जाता है.
- भरोसेमंद सीए स्टोर. ऐप्लिकेशन को कंट्रोल करना आसान बनाने के लिए उनके सुरक्षित नेटवर्क ट्रैफ़िक का ऐक्सेस, उपयोगकर्ता की ओर से इंस्टॉल किए गए सर्टिफ़िकेट देने वाली संस्थाओं को साथ ही, डिवाइस एडमिन एपीआई की मदद से इंस्टॉल किए गए ऐप्लिकेशन, अब डिफ़ॉल्ट रूप से भरोसेमंद नहीं रहेंगे एपीआई लेवल 24 या इसके बाद के लेवल को टारगेट करने वाले ऐप्लिकेशन के लिए. इसके अलावा, सभी नए Android डिवाइसों को एक ही भरोसेमंद CA स्टोर से शिप किया जा सके.
- नेटवर्क सिक्योरिटी कॉन्फ़िगरेशन. नेटवर्क सुरक्षा और TLS को कॉन्फ़िगर करें को डिक्लेरेटिव कॉन्फ़िगरेशन वाली फ़ाइल के ज़रिए इस्तेमाल किया जा सकता है.
एंड्रॉइड 6
प्रत्येक Android रिलीज़ में उपयोगकर्ताओं की सुरक्षा के लिए दर्जनों सुरक्षा संवर्द्धन शामिल होते हैं। यहाँ Android 6.0 में उपलब्ध कुछ प्रमुख सुरक्षा संवर्द्धन दिए गए हैं:
- रनटाइम अनुमतियाँ । एप्लिकेशन इंस्टॉल समय पर दिए जाने के बजाय एप्लिकेशन रनटाइम पर अनुमतियों का अनुरोध करते हैं। उपयोगकर्ता एम और प्री-एम दोनों अनुप्रयोगों के लिए अनुमतियों को चालू और बंद कर सकते हैं।
- सत्यापित बूट । सिस्टम सॉफ़्टवेयर के क्रिप्टोग्राफ़िक जाँच का एक सेट निष्पादन से पहले आयोजित किया जाता है ताकि यह सुनिश्चित किया जा सके कि फ़ोन बूटलोडर से लेकर ऑपरेटिंग सिस्टम तक सभी तरह से स्वस्थ है।
- हार्डवेयर-पृथक सुरक्षा । फ़िंगरप्रिंट एपीआई, लॉकस्क्रीन, डिवाइस एन्क्रिप्शन, और क्लाइंट सर्टिफिकेट द्वारा उपयोग की जाने वाली नई हार्डवेयर एब्स्ट्रक्शन लेयर (एचएएल) कर्नेल समझौता और/या स्थानीय भौतिक हमलों के खिलाफ कुंजी की रक्षा के लिए
- उंगलियों के निशान। उपकरणों को अब केवल एक स्पर्श से अनलॉक किया जा सकता है। एन्क्रिप्शन कुंजियों को लॉक और अनलॉक करने के लिए फ़िंगरप्रिंट का उपयोग करने के लिए डेवलपर्स नए एपीआई का भी लाभ उठा सकते हैं।
- एसडी कार्ड दत्तक ग्रहण । हटाने योग्य मीडिया को डिवाइस में अपनाया जा सकता है और ऐप स्थानीय डेटा, फोटो, वीडियो इत्यादि के लिए उपलब्ध स्टोरेज का विस्तार किया जा सकता है, लेकिन फिर भी ब्लॉक-स्तरीय एन्क्रिप्शन द्वारा संरक्षित किया जा सकता है।
- टेक्स्ट ट्रैफ़िक साफ़ करें । डेवलपर्स यह सुनिश्चित करने के लिए एक नए स्ट्रिक्टमोड का उपयोग कर सकते हैं कि उनका एप्लिकेशन क्लियरटेक्स्ट का उपयोग नहीं करता है।
- सिस्टम हार्डनिंग । SELinux द्वारा लागू नीतियों के माध्यम से सिस्टम को सख्त बनाना। यह उपयोगकर्ताओं के बीच बेहतर अलगाव प्रदान करता है, IOCTL फ़िल्टरिंग, उजागर सेवाओं के खतरे को कम करता है, SELinux डोमेन को और सख्त करता है, और अत्यंत सीमित / खरीद पहुंच प्रदान करता है।
- यूएसबी एक्सेस कंट्रोल: उपयोगकर्ताओं को फोन पर फाइलों, स्टोरेज या अन्य कार्यक्षमता के लिए यूएसबी एक्सेस की अनुमति देने की पुष्टि करनी चाहिए। डिफ़ॉल्ट अब केवल उपयोगकर्ता से स्पष्ट अनुमोदन की आवश्यकता वाले संग्रहण तक पहुंच के साथ शुल्क लिया जाता है।
एंड्रॉइड 5
5.0
प्रत्येक Android रिलीज़ में उपयोगकर्ताओं की सुरक्षा के लिए दर्जनों सुरक्षा संवर्द्धन शामिल होते हैं। यहाँ Android 5.0 में उपलब्ध कुछ प्रमुख सुरक्षा संवर्द्धन दिए गए हैं:
- डिफ़ॉल्ट रूप से एन्क्रिप्ट किया गया। एल आउट-ऑफ-द-बॉक्स के साथ शिप करने वाले डिवाइस पर, खोए या चोरी हुए डिवाइस पर डेटा की सुरक्षा में सुधार करने के लिए डिफ़ॉल्ट रूप से पूर्ण डिस्क एन्क्रिप्शन सक्षम किया जाता है। एल में अपडेट होने वाले उपकरणों को सेटिंग > सुरक्षा में एन्क्रिप्ट किया जा सकता है।
- बेहतर पूर्ण डिस्क एन्क्रिप्शन। उपयोगकर्ता पासवर्ड को
scrypt
का उपयोग करके क्रूर-बल के हमलों से सुरक्षित किया जाता है और, जहां उपलब्ध हो, कुंजी डिवाइस के बाहर के हमलों को रोकने के लिए हार्डवेयर कीस्टोर से जुड़ी होती है। हमेशा की तरह, एंड्रॉइड स्क्रीन लॉक सीक्रेट और डिवाइस एन्क्रिप्शन कुंजी को डिवाइस से बाहर नहीं भेजा जाता है या किसी एप्लिकेशन के संपर्क में नहीं आता है। - एंड्रॉइड सैंडबॉक्स SELinux के साथ प्रबलित । Android को अब सभी डोमेन के लिए प्रवर्तन मोड में SELinux की आवश्यकता है। SELinux, Linux कर्नेल में एक अनिवार्य अभिगम नियंत्रण (MAC) प्रणाली है जिसका उपयोग मौजूदा विवेकाधीन अभिगम नियंत्रण (DAC) सुरक्षा मॉडल को बढ़ाने के लिए किया जाता है। यह नई परत संभावित सुरक्षा कमजोरियों के खिलाफ अतिरिक्त सुरक्षा प्रदान करती है।
- स्मार्ट लॉक। एंड्रॉइड में अब ट्रस्टलेट शामिल हैं जो डिवाइस को अनलॉक करने के लिए अधिक लचीलापन प्रदान करते हैं। उदाहरण के लिए, ट्रस्टलेट किसी अन्य विश्वसनीय डिवाइस (एनएफसी, ब्लूटूथ के माध्यम से) के करीब होने या किसी विश्वसनीय चेहरे वाले किसी व्यक्ति द्वारा उपयोग किए जाने पर डिवाइस को स्वचालित रूप से अनलॉक करने की अनुमति दे सकता है।
- फोन और टैबलेट के लिए बहु उपयोगकर्ता, प्रतिबंधित प्रोफ़ाइल और अतिथि मोड। एंड्रॉइड अब फोन पर कई उपयोगकर्ताओं के लिए प्रदान करता है और इसमें एक अतिथि मोड शामिल है जिसका उपयोग आपके डेटा और ऐप्स तक पहुंच प्रदान किए बिना आपके डिवाइस पर आसान अस्थायी पहुंच प्रदान करने के लिए किया जा सकता है।
- ओटीए के बिना वेबव्यू में अपडेट। WebView को अब फ्रेमवर्क से स्वतंत्र और बिना सिस्टम OTA के अपडेट किया जा सकता है। यह WebView में संभावित सुरक्षा मुद्दों पर तेजी से प्रतिक्रिया करने की अनुमति देगा।
- HTTPS और TLS/SSL के लिए अद्यतन क्रिप्टोग्राफी। TLSv1.2 और TLSv1.1 अब सक्षम हैं, फॉरवर्ड सेक्रेसी को अब प्राथमिकता दी गई है, AES-GCM अब सक्षम है, और कमजोर सिफर सूट (MD5, 3DES, और एक्सपोर्ट सिफर सूट) अब अक्षम हैं। अधिक जानकारी के लिए https://developer.android.com/reference/javax/net/ssl/SSLSocket.html देखें।
- गैर-पीआईई लिंकर समर्थन हटा दिया गया। एंड्रॉइड को अब पीआईई (स्थिति-स्वतंत्र निष्पादन योग्य) का समर्थन करने के लिए सभी गतिशील रूप से जुड़े निष्पादन योग्य की आवश्यकता है। यह एंड्रॉइड के एड्रेस स्पेस लेआउट रैंडमाइजेशन (एएसएलआर) कार्यान्वयन को बढ़ाता है।
- FORTIFY_SOURCE सुधार। निम्नलिखित libc फ़ंक्शंस अब FORTIFY_SOURCE सुरक्षा लागू करते हैं:
stpcpy()
,stpncpy()
,read()
,recvfrom()
,FD_CLR()
,FD_SET()
, औरFD_ISSET()
। यह उन कार्यों में शामिल स्मृति-भ्रष्टाचार कमजोरियों से सुरक्षा प्रदान करता है। - सुरक्षा सुधार। एंड्रॉइड 5.0 में एंड्रॉइड-विशिष्ट कमजोरियों के लिए सुधार भी शामिल हैं। ओपन हैंडसेट एलायंस के सदस्यों को इन कमजोरियों के बारे में जानकारी प्रदान की गई है, और एंड्रॉइड ओपन सोर्स प्रोजेक्ट में सुधार उपलब्ध हैं। सुरक्षा को बेहतर बनाने के लिए, Android के पुराने संस्करणों वाले कुछ उपकरणों में ये सुधार भी शामिल हो सकते हैं।
एंड्रॉइड 4 और उससे नीचे का संस्करण
Android के हर रिलीज़ में, उपयोगकर्ताओं को सुरक्षित रखने के लिए सुरक्षा से जुड़ी कई सुविधाएं शामिल की जाती हैं. नीचे कुछ बेहतर सुरक्षा सुविधाएं दी गई हैं Android 4.4 में:
- Android सैंडबॉक्स, SELinux के साथ काम करता है. Android अब लागू करने वाले मोड में SELinux का इस्तेमाल करता है. SELinux को सेटअप करना ज़रूरी है Linux कर्नेल में ऐक्सेस कंट्रोल (MAC) सिस्टम का इस्तेमाल करता है, के हिसाब से किया जा सकता है. इससे, सुरक्षा से जुड़ी संभावित कमज़ोरियों से ज़्यादा सुरक्षा मिलती है.
- हर उपयोगकर्ता के लिए वीपीएन. एक से ज़्यादा उपयोगकर्ताओं वाले डिवाइसों पर, अब वीपीएन हर उपयोगकर्ता के हिसाब से लागू होते हैं. इससे उपयोगकर्ता को वीपीएन का इस्तेमाल करके, पूरे नेटवर्क ट्रैफ़िक को रूट करने की अनुमति मिल सकती है और अन्य उपयोगकर्ताओं को प्रभावित किए बिना.
- AndroidKeyStore में ECDSA प्रोवाइडर की सहायता. Android में अब एक कीस्टोर प्रोवाइडर है, जो ECDSA और डीएसए एल्गोरिदम का इस्तेमाल करने की अनुमति देता है.
- डिवाइस को मॉनिटर करने से जुड़ी चेतावनियां. अगर डिवाइस के सर्टिफ़िकेट स्टोर में कोई ऐसा सर्टिफ़िकेट जोड़ा गया है जिससे एन्क्रिप्ट (सुरक्षित) किए गए नेटवर्क ट्रैफ़िक की निगरानी की जा सकती है, तो Android उपयोगकर्ताओं को चेतावनी देता है.
- FORTIFY_SOURCE. Android अब FORTIFY_SOURCE लेवल 2 के साथ काम करता है. साथ ही, सभी कोड को इन सुरक्षा उपायों के साथ संकलित किया जाता है. FORTIFY_SOURCE को clang के साथ काम करने के लिए बेहतर बनाया गया है.
- सर्टिफ़िकेट पिन करना. Android 4.4, एसएसएल/टीएलएस से सुरक्षित कम्यूनिकेशन में इस्तेमाल किए जाने वाले, धोखाधड़ी वाले Google सर्टिफ़िकेट का पता लगाता है और उन्हें इस्तेमाल होने से रोकता है.
- सुरक्षा से जुड़ी समस्याएं ठीक करना. Android 4.4 में Android-विशिष्ट जोखिमों के समाधान भी शामिल हैं. इन जोखिम की आशंकाओं के बारे में जानकारी 'ओपन' को दी गई है Android ओपन सोर्स में Handset Alliance के सदस्य और सुधार उपलब्ध हैं प्रोजेक्ट. सुरक्षा को बेहतर बनाने के लिए, कुछ डिवाइसों पर, Android में ये सुधार भी शामिल हो सकते हैं.
प्रत्येक एंड्रॉइड रिलीज़ में उपयोगकर्ताओं की सुरक्षा के लिए दर्जनों सुरक्षा संवर्द्धन शामिल होते हैं। Android 4.3 में उपलब्ध कुछ सुरक्षा संवर्द्धन निम्नलिखित हैं:
- एंड्रॉइड सैंडबॉक्स को SELinux के साथ सुदृढ़ किया गया। यह रिलीज़ लिनक्स कर्नेल में SELinux अनिवार्य एक्सेस कंट्रोल सिस्टम (MAC) का उपयोग करके एंड्रॉइड सैंडबॉक्स को मजबूत करता है। SELinux सुदृढीकरण उपयोगकर्ताओं और डेवलपर्स के लिए अदृश्य है, और मौजूदा अनुप्रयोगों के साथ संगतता बनाए रखते हुए मौजूदा एंड्रॉइड सुरक्षा मॉडल में मजबूती जोड़ता है। निरंतर अनुकूलता सुनिश्चित करने के लिए यह रिलीज़ अनुमेय मोड में SELinux के उपयोग की अनुमति देता है। यह मोड किसी भी नीति उल्लंघन को लॉग करता है, लेकिन एप्लिकेशन को नहीं तोड़ेगा या सिस्टम व्यवहार को प्रभावित नहीं करेगा।
- कोई सेतुइड/सेटगिड प्रोग्राम नहीं। एंड्रॉइड सिस्टम फ़ाइलों में फ़ाइल सिस्टम क्षमताओं के लिए समर्थन जोड़ा गया और सभी सेटुइड/सेटगुइड प्रोग्राम हटा दिए गए। इससे रूट अटैक सतह और संभावित सुरक्षा कमजोरियों की संभावना कम हो जाती है।
- एडीबी प्रमाणीकरण. Android 4.2.2 के बाद से, ADB से कनेक्शन RSA कीपेयर से प्रमाणित किए जाते हैं। यह एडीबी के अनधिकृत उपयोग को रोकता है जहां हमलावर के पास किसी डिवाइस तक भौतिक पहुंच होती है।
- एंड्रॉइड ऐप्स से Setuid को प्रतिबंधित करें। /सिस्टम विभाजन अब जाइगोट-स्पॉन्ड प्रक्रियाओं के लिए नोसुइड माउंट किया गया है, जो एंड्रॉइड एप्लिकेशन को सेटुइड प्रोग्राम निष्पादित करने से रोकता है। इससे रूट अटैक सतह और संभावित सुरक्षा कमजोरियों की संभावना कम हो जाती है।
- क्षमता सीमा. एंड्रॉइड ज़ीगोट और एडीबी अब एप्लिकेशन निष्पादित करने से पहले अनावश्यक क्षमताओं को हटाने के लिए prctl(PR_CAPBSET_DROP) का उपयोग करते हैं। यह एंड्रॉइड एप्लिकेशन और शेल से लॉन्च किए गए एप्लिकेशन को विशेषाधिकार प्राप्त क्षमताएं प्राप्त करने से रोकता है।
- AndroidKeyStore प्रदाता। एंड्रॉइड के पास अब एक कीस्टोर प्रदाता है जो एप्लिकेशन को विशिष्ट उपयोग कुंजी बनाने की अनुमति देता है। यह निजी कुंजी बनाने या संग्रहीत करने के लिए एपीआई के साथ एप्लिकेशन प्रदान करता है जिसका उपयोग अन्य एप्लिकेशन द्वारा नहीं किया जा सकता है।
- कीचेन बाउंडकीएल्गोरिदम है। किचेन एपीआई अब एक विधि (isBoundKeyType) प्रदान करता है जो अनुप्रयोगों को यह पुष्टि करने की अनुमति देता है कि सिस्टम-वाइड कुंजी डिवाइस के लिए ट्रस्ट के हार्डवेयर रूट से जुड़ी हुई हैं। यह निजी कुंजी बनाने या संग्रहीत करने के लिए एक स्थान प्रदान करता है जिसे रूट समझौता होने की स्थिति में भी डिवाइस से निर्यात नहीं किया जा सकता है।
- NO_NEW_PRIVS. एंड्रॉइड ज़ीगोट अब एप्लिकेशन कोड निष्पादन से पहले नए विशेषाधिकारों को जोड़ने से रोकने के लिए prctl(PR_SET_NO_NEW_PRIVS) का उपयोग करता है। यह एंड्रॉइड एप्लिकेशन को ऐसे संचालन करने से रोकता है जो निष्पादन के माध्यम से विशेषाधिकार बढ़ा सकते हैं। (इसके लिए लिनक्स कर्नेल संस्करण 3.5 या इससे अधिक की आवश्यकता है)।
- FORTIFY_SOURCE संवर्द्धन। Android x86 और MIPS पर FORTIFY_SOURCE सक्षम किया गया और strchr(), strrchr(), strlen() और umask() कॉल को मजबूत किया गया। यह संभावित मेमोरी भ्रष्टाचार कमजोरियों या अनटर्मिनेटेड स्ट्रिंग स्थिरांक का पता लगा सकता है।
- स्थानांतरण सुरक्षा. स्थिर रूप से जुड़े निष्पादनयोग्यों के लिए रीड ओनली रिलोकेशन (रेलरो) को सक्षम किया गया और एंड्रॉइड कोड में सभी टेक्स्ट रिलोकेशन को हटा दिया गया। यह संभावित स्मृति भ्रष्टाचार कमजोरियों के खिलाफ गहराई से सुरक्षा प्रदान करता है।
- बेहतर एन्ट्रॉपीमिक्सर। एन्ट्रॉपीमिक्सर अब आवधिक मिश्रण के अलावा, शटडाउन/रीबूट पर एन्ट्रॉपी लिखता है। यह उपकरणों के चालू होने के दौरान उत्पन्न सभी एन्ट्रापी को बनाए रखने की अनुमति देता है, और उन उपकरणों के लिए विशेष रूप से उपयोगी है जो प्रावधान के तुरंत बाद रीबूट हो जाते हैं।
- सुरक्षा सुधार. एंड्रॉइड 4.3 में एंड्रॉइड-विशिष्ट कमजोरियों के लिए समाधान भी शामिल हैं। इन कमजोरियों के बारे में जानकारी ओपन हैंडसेट एलायंस सदस्यों को प्रदान की गई है और एंड्रॉइड ओपन सोर्स प्रोजेक्ट में फिक्स उपलब्ध हैं। सुरक्षा में सुधार के लिए, Android के पुराने संस्करणों वाले कुछ उपकरणों में भी ये सुधार शामिल हो सकते हैं।
Android, Android सुरक्षा अवलोकन में वर्णित एक बहुस्तरीय सुरक्षा मॉडल प्रदान करता है। Android के प्रत्येक अपडेट में उपयोगकर्ताओं की सुरक्षा के लिए दर्जनों सुरक्षा संवर्द्धन शामिल हैं। Android 4.2 में पेश किए गए कुछ सुरक्षा संवर्द्धन निम्नलिखित हैं:
- एप्लिकेशन सत्यापन - उपयोगकर्ता "एप्लिकेशन सत्यापित करें" को सक्षम करना चुन सकते हैं और इंस्टॉलेशन से पहले एप्लिकेशन सत्यापनकर्ता द्वारा एप्लिकेशन की जांच कर सकते हैं। ऐप सत्यापन उपयोगकर्ता को सचेत कर सकता है यदि वे एक ऐप इंस्टॉल करने का प्रयास करते हैं जो हानिकारक हो सकता है; यदि कोई एप्लिकेशन विशेष रूप से खराब है, यह स्थापना को अवरुद्ध कर सकता है।
- प्रीमियम एसएमएस पर अधिक नियंत्रण - यदि कोई एप्लिकेशन प्रीमियम सेवाओं का उपयोग करने वाले शॉर्ट कोड पर एसएमएस भेजने का प्रयास करता है तो एंड्रॉइड एक अधिसूचना प्रदान करेगा जिससे अतिरिक्त शुल्क लग सकता है। उपयोगकर्ता यह चुन सकता है कि एप्लिकेशन को संदेश भेजने की अनुमति दी जाए या उसे ब्लॉक किया जाए।
- ऑलवेज-ऑन वीपीएन - वीपीएन को कॉन्फ़िगर किया जा सकता है ताकि वीपीएन कनेक्शन स्थापित होने तक एप्लिकेशन को नेटवर्क तक पहुंच न हो। यह एप्लिकेशन को अन्य नेटवर्क पर डेटा भेजने से रोकता है।
- सर्टिफिकेट पिनिंग - एंड्रॉइड कोर लाइब्रेरी अब सर्टिफिकेट पिनिंग का समर्थन करती है। पिन किए गए डोमेन को प्रमाणपत्र सत्यापन विफलता प्राप्त होगी यदि प्रमाणपत्र अपेक्षित प्रमाणपत्रों के समूह से श्रृंखलाबद्ध नहीं है। यह प्रमाणपत्र प्राधिकारियों के संभावित समझौता से बचाता है।
- Android अनुमतियों का बेहतर प्रदर्शन - अनुमतियों को उन समूहों में व्यवस्थित किया गया है जो उपयोगकर्ताओं द्वारा अधिक आसानी से समझ में आते हैं। अनुमतियों की समीक्षा के दौरान, उपयोगकर्ता अनुमति के बारे में अधिक विस्तृत जानकारी देखने के लिए अनुमति पर क्लिक कर सकता है।
- इंस्टालड हार्डनिंग -
installd
डेमॉन रूट उपयोगकर्ता के रूप में नहीं चलता है, रूट विशेषाधिकार वृद्धि के लिए संभावित हमले की सतह को कम करता है। - init स्क्रिप्ट को सख्त करना - init स्क्रिप्ट अब सिम्लिंक से संबंधित हमलों को रोकने के लिए
O_NOFOLLOW
शब्दार्थ लागू करती है। - FORTIFY_SOURCE - Android अब
FORTIFY_SOURCE
लागू करता है। इसका उपयोग सिस्टम पुस्तकालयों और अनुप्रयोगों द्वारा स्मृति भ्रष्टाचार को रोकने के लिए किया जाता है। - ContentProvider डिफ़ॉल्ट कॉन्फ़िगरेशन - API स्तर 17 को लक्षित करने वाले एप्लिकेशन में प्रत्येक सामग्री प्रदाता के लिए डिफ़ॉल्ट रूप से "निर्यात" को "गलत" पर सेट किया जाएगा, जिससे अनुप्रयोगों के लिए डिफ़ॉल्ट हमले की सतह कम हो जाएगी।
- क्रिप्टोग्राफी - OpenSSL का उपयोग करने के लिए SecureRandom और Cipher.RSA के डिफ़ॉल्ट कार्यान्वयन को संशोधित किया। OpenSSL 1.0.1 का उपयोग करके TLSv1.1 और TLSv1.2 के लिए SSL सॉकेट समर्थन जोड़ा गया
- सुरक्षा सुधार - सुरक्षा सुधारों के साथ उन्नत ओपन सोर्स लाइब्रेरी में WebKit, libpng, OpenSSL और LibXML शामिल हैं। एंड्रॉइड 4.2 में एंड्रॉइड-विशिष्ट कमजोरियों के लिए सुधार भी शामिल हैं। ओपन हैंडसेट एलायंस के सदस्यों को इन कमजोरियों के बारे में जानकारी प्रदान की गई है और एंड्रॉइड ओपन सोर्स प्रोजेक्ट में सुधार उपलब्ध हैं। सुरक्षा को बेहतर बनाने के लिए, Android के पुराने संस्करणों वाले कुछ उपकरणों में ये सुधार भी शामिल हो सकते हैं।
Android, Android सुरक्षा अवलोकन में वर्णित एक बहुस्तरीय सुरक्षा मॉडल प्रदान करता है। Android के प्रत्येक अपडेट में उपयोगकर्ताओं की सुरक्षा के लिए दर्जनों सुरक्षा संवर्द्धन शामिल हैं। Android संस्करण 1.5 से 4.1 में पेश किए गए कुछ सुरक्षा संवर्द्धन निम्नलिखित हैं:
- एंड्रॉइड 1.5
- प्रोपोलिस स्टैक बफर ओवररन को रोकने के लिए (-फस्टैक-रक्षक)
- Safe_iop पूर्णांक अतिप्रवाह को कम करने के लिए
- डबल फ्री () कमजोरियों को रोकने और चंक समेकन हमलों को रोकने के लिए OpenBSD dlmalloc में एक्सटेंशन। ढेर भ्रष्टाचार का फायदा उठाने के लिए चंक समेकन हमले एक आम तरीका है।
- मेमोरी आवंटन के दौरान पूर्णांक अतिप्रवाह को रोकने के लिए OpenBSD कॉलोक
- एंड्रॉइड 2.3
- प्रारूप स्ट्रिंग भेद्यता सुरक्षा (-Wformat-सुरक्षा -Werror=format-सुरक्षा)
- स्टैक और हीप पर कोड निष्पादन को रोकने के लिए हार्डवेयर-आधारित No eXecute (NX)
- Linux mmap_min_addr नल पॉइंटर डीरेफेरेंस विशेषाधिकार वृद्धि को कम करने के लिए (एंड्रॉइड 4.1 में आगे बढ़ाया गया)
- एंड्रॉइड 4.0
- मेमोरी में प्रमुख स्थानों को यादृच्छिक बनाने के लिए एड्रेस स्पेस लेआउट रैंडमाइजेशन (एएसएलआर)
- एंड्रॉइड 4.1
- पीआईई (स्थिति स्वतंत्र निष्पादन योग्य) समर्थन
- केवल-पढ़ने के लिए स्थानांतरण / तत्काल बाध्यकारी (-Wl, -z, relro -Wl, -z, now)
- dmesg_restrict सक्षम (कर्नेल पतों को लीक करने से बचें)
- kptr_restrict सक्षम (कर्नेल पतों को लीक करने से बचें)