एंड्रॉइड अपनी सुरक्षा क्षमताओं और पेशकशों में लगातार सुधार करता रहता है। बाएँ नेविगेशन में रिलीज़ के अनुसार संवर्द्धन की सूचियाँ देखें।
एंड्रॉइड 14
प्रत्येक एंड्रॉइड रिलीज़ में उपयोगकर्ताओं की सुरक्षा के लिए दर्जनों सुरक्षा संवर्द्धन शामिल होते हैं। यहां Android 14 में उपलब्ध कुछ प्रमुख सुरक्षा संवर्द्धन दिए गए हैं:
- एंड्रॉइड 10 में पेश किया गया हार्डवेयर-असिस्टेड एड्रेस सेनिटाइज़र (HWASan), एड्रेस सेनिटाइज़र के समान एक मेमोरी एरर डिटेक्शन टूल है। Android 14 HWASan में महत्वपूर्ण सुधार लाता है। जानें कि यह एंड्रॉइड रिलीज़, HWAddressSanitizer में बग्स को आने से रोकने में कैसे मदद करता है
- एंड्रॉइड 14 में, तीसरे पक्ष के साथ स्थान डेटा साझा करने वाले ऐप्स से शुरू होकर, सिस्टम रनटाइम अनुमति संवाद में अब एक क्लिक करने योग्य अनुभाग शामिल है जो ऐप के डेटा-साझाकरण प्रथाओं पर प्रकाश डालता है, जिसमें जानकारी भी शामिल है कि कोई ऐप तीसरे पक्ष के साथ डेटा साझा करने का निर्णय क्यों ले सकता है .
- एंड्रॉइड 12 ने मॉडेम स्तर पर 2जी समर्थन को अक्षम करने का विकल्प पेश किया, जो उपयोगकर्ताओं को 2जी के अप्रचलित सुरक्षा मॉडल से अंतर्निहित सुरक्षा जोखिम से बचाता है। एंटरप्राइज़ ग्राहकों के लिए 2जी को अक्षम करना कितना महत्वपूर्ण हो सकता है, इसे पहचानते हुए, एंड्रॉइड 14 एंड्रॉइड एंटरप्राइज़ में इस सुरक्षा सुविधा को सक्षम करता है, एक प्रबंधित डिवाइस की 2जी कनेक्टिविटी को डाउनग्रेड करने की क्षमता को प्रतिबंधित करने के लिए आईटी व्यवस्थापकों के लिए समर्थन पेश करता है।
- अशक्त-सिफर किए गए सेल्युलर कनेक्शन को अस्वीकार करने के लिए समर्थन जोड़ा गया, यह सुनिश्चित करते हुए कि सर्किट-स्विच्ड वॉयस और एसएमएस ट्रैफ़िक हमेशा एन्क्रिप्टेड है और निष्क्रिय ओवर-द-एयर अवरोधन से सुरक्षित है। सेल्यूलर कनेक्टिविटी को मजबूत करने के लिए एंड्रॉइड के प्रोग्राम के बारे में और जानें ।
- एकाधिक IMEI के लिए समर्थन जोड़ा गया
- एंड्रॉइड 14 के बाद से, एईएस-एचसीटीआर2 त्वरित क्रिप्टोग्राफी निर्देशों वाले उपकरणों के लिए फ़ाइल नाम एन्क्रिप्शन का पसंदीदा तरीका है।
- सेलुलर कनेक्टिविटी
- Android सुरक्षा केंद्र के लिए दस्तावेज़ जोड़ा गया
- यदि आपका ऐप एंड्रॉइड 14 को लक्षित करता है और डायनेमिक कोड लोडिंग (डीसीएल) का उपयोग करता है, तो सभी डायनेमिक रूप से लोड की गई फ़ाइलों को केवल पढ़ने के लिए चिह्नित किया जाना चाहिए। अन्यथा, सिस्टम एक अपवाद फेंकता है। हम अनुशंसा करते हैं कि जब भी संभव हो ऐप्स गतिशील रूप से कोड लोड करने से बचें, क्योंकि ऐसा करने से यह जोखिम बहुत बढ़ जाता है कि किसी ऐप को कोड इंजेक्शन या कोड छेड़छाड़ द्वारा समझौता किया जा सकता है।
हमारे संपूर्ण एओएसपी रिलीज़ नोट्स और एंड्रॉइड डेवलपर सुविधाओं और परिवर्तनों की सूची देखें।
एंड्रॉइड 13
प्रत्येक एंड्रॉइड रिलीज़ में उपयोगकर्ताओं की सुरक्षा के लिए दर्जनों सुरक्षा संवर्द्धन शामिल होते हैं। यहां Android 13 में उपलब्ध कुछ प्रमुख सुरक्षा संवर्द्धन दिए गए हैं:
- एंड्रॉइड 13 मल्टी-डॉक्यूमेंट प्रेजेंटेशन सपोर्ट जोड़ता है। यह नया प्रेजेंटेशन सेशन इंटरफ़ेस एक एप्लिकेशन को मल्टी-डॉक्यूमेंट प्रेजेंटेशन करने में सक्षम बनाता है, जो मौजूदा एपीआई के साथ संभव नहीं है। अधिक जानकारी के लिए, पहचान क्रेडेंशियल देखें
- एंड्रॉइड 13 में, बाहरी ऐप्स से उत्पन्न होने वाले इरादे एक निर्यातित घटक को वितरित किए जाते हैं यदि और केवल तभी जब इरादे उनके घोषित इरादे-फ़िल्टर तत्वों से मेल खाते हों।
- ओपन मोबाइल एपीआई (ओएमएपीआई) एक मानक एपीआई है जिसका उपयोग डिवाइस के सुरक्षित तत्व के साथ संचार करने के लिए किया जाता है। एंड्रॉइड 13 से पहले, केवल एप्लिकेशन और फ्रेमवर्क मॉड्यूल के पास ही इस इंटरफ़ेस तक पहुंच थी। इसे विक्रेता स्थिर इंटरफ़ेस में परिवर्तित करके, एचएएल मॉड्यूल ओएमएपीआई सेवा के माध्यम से सुरक्षित तत्वों के साथ संचार करने में भी सक्षम हैं। अधिक जानकारी के लिए, OMAPI विक्रेता स्थिर इंटरफ़ेस देखें।
- Android 13-QPR के अनुसार, साझा UID अप्रचलित हैं। Android 13 या उच्चतर के उपयोगकर्ताओं को अपने मेनिफेस्ट में `android:sharedUserMaxSdkVersion='32'` लाइन डालनी चाहिए। यह प्रविष्टि नए उपयोगकर्ताओं को साझा यूआईडी प्राप्त करने से रोकती है। यूआईडी पर अधिक जानकारी के लिए, आवेदन पर हस्ताक्षर करना देखें।
- एंड्रॉइड 13 ने एईएस (एडवांस्ड एन्क्रिप्शन स्टैंडर्ड), एचएमएसी (कीड-हैश मैसेज ऑथेंटिकेशन कोड), और असममित क्रिप्टोग्राफ़िक एल्गोरिदम (एलिप्टिक कर्व, आरएसए2048, आरएसए4096 और कर्व 25519 सहित) जैसे कीस्टोर सममित क्रिप्टोग्राफ़िक प्राइमेटिव्स का समर्थन जोड़ा।
- एंड्रॉइड 13 (एपीआई स्तर 33) और उच्चतर किसी ऐप से गैर-छूट वाली सूचनाएं भेजने के लिए रनटाइम अनुमति का समर्थन करता है। इससे उपयोगकर्ताओं को यह नियंत्रण मिलता है कि वे कौन सी अनुमति सूचनाएं देखते हैं।
- सभी डिवाइस लॉग तक पहुंच का अनुरोध करने वाले ऐप्स के लिए प्रति-उपयोग संकेत जोड़ा गया, जिससे उपयोगकर्ताओं को पहुंच की अनुमति देने या अस्वीकार करने की क्षमता मिलती है।
- एंड्रॉइड वर्चुअलाइजेशन फ्रेमवर्क (एवीएफ) पेश किया, जो मानकीकृत एपीआई के साथ एक ढांचे के तहत विभिन्न हाइपरवाइजर्स को एक साथ लाता है। यह हाइपरविजर द्वारा पृथक कार्यभार को निष्पादित करने के लिए सुरक्षित और निजी निष्पादन वातावरण प्रदान करता है।
- पेश की गई एपीके सिग्नेचर स्कीम v3.1 एपीकेसिग्नर का उपयोग करने वाले सभी नए कुंजी रोटेशन एंड्रॉइड 13 और उच्चतर के लिए रोटेशन को लक्षित करने के लिए डिफ़ॉल्ट रूप से v3.1 सिग्नेचर स्कीम का उपयोग करेंगे।
हमारे संपूर्ण एओएसपी रिलीज़ नोट्स और एंड्रॉइड डेवलपर सुविधाओं और परिवर्तनों की सूची देखें।
एंड्रॉइड 12
प्रत्येक एंड्रॉइड रिलीज़ में उपयोगकर्ताओं की सुरक्षा के लिए दर्जनों सुरक्षा संवर्द्धन शामिल होते हैं। यहां Android 12 में उपलब्ध कुछ प्रमुख सुरक्षा संवर्द्धन दिए गए हैं:
- Android 12 BiometricManager.Strings API पेश करता है, जो प्रमाणीकरण के लिए BiometricPrompt का उपयोग करने वाले ऐप्स के लिए स्थानीयकृत स्ट्रिंग प्रदान करता है। इन स्ट्रिंग्स का उद्देश्य डिवाइस-जागरूक होना और अधिक विशिष्टता प्रदान करना है कि किस प्रमाणीकरण प्रकार का उपयोग किया जा सकता है। एंड्रॉइड 12 में अंडर-डिस्प्ले फिंगरप्रिंट सेंसर के लिए समर्थन भी शामिल है
- अंडर-डिस्प्ले फिंगरप्रिंट सेंसर के लिए समर्थन जोड़ा गया
- फ़िंगरप्रिंट एंड्रॉइड इंटरफ़ेस डेफिनिशन लैंग्वेज (एआईडीएल) का परिचय
- नए फेस एआईडीएल के लिए समर्थन
- प्लेटफ़ॉर्म विकास के लिए एक भाषा के रूप में रस्ट का परिचय
- उपयोगकर्ताओं के लिए केवल उनके अनुमानित स्थान तक पहुंच प्रदान करने का विकल्प जोड़ा गया
- जब कोई ऐप कैमरा या माइक्रोफ़ोन का उपयोग कर रहा हो तो स्टेटस बार पर गोपनीयता संकेतक जोड़े गए
- Android का निजी कंप्यूट कोर (PCC)
- 2जी समर्थन को अक्षम करने का विकल्प जोड़ा गया
एंड्रॉइड 11
Every Android release includes dozens of security enhancements to protect users. For a list of some of the major security enhancements available in Android 11, see the Android Release Notes.
एंड्रॉइड 10
प्रत्येक Android रिलीज़ में उपयोगकर्ताओं की सुरक्षा के लिए दर्जनों सुरक्षा संवर्द्धन शामिल होते हैं। Android 10 में कई सुरक्षा और गोपनीयता संवर्द्धन शामिल हैं। Android 10 में बदलावों की पूरी सूची के लिए Android 10 रिलीज़ नोट देखें।
सुरक्षा
बाउंड्स सैनिटाइज़र
Android 10 ब्लूटूथ और कोडेक्स में BoundsSanitizer (BoundSan) को तैनात करता है। बाउंडसैन यूबीएसन के बाउंड सैनिटाइजर का उपयोग करता है। यह शमन प्रति-मॉड्यूल स्तर पर सक्षम है। यह Android के महत्वपूर्ण घटकों को सुरक्षित रखने में मदद करता है और इसे अक्षम नहीं किया जाना चाहिए। बाउंडसैन निम्नलिखित कोडेक्स में सक्षम है:
-
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 कुछ एंड्रॉइड सिस्टम घटकों को मॉड्यूलर करता है और उन्हें सामान्य एंड्रॉइड रिलीज चक्र के बाहर अपडेट करने में सक्षम बनाता है। कुछ मॉड्यूल में शामिल हैं:
- एंड्रॉइड रनटाइम
- एन्क्रिप्ट करें
- डीएनएस रिज़ॉल्वर
- दस्तावेज़यूआई
- अतिरिक्त सेवाएं
- मीडिया
- मॉड्यूल मेटाडेटा
- नेटवर्किंग
- अनुमति नियंत्रक
- समय क्षेत्र डेटा
ओईएम क्रिप्टो
Android 10 OEMCrypto API संस्करण 15 का उपयोग करता है।
स्कूडो
स्कूडो एक गतिशील उपयोगकर्ता-मोड मेमोरी एलोकेटर है जिसे ढेर से संबंधित कमजोरियों के खिलाफ अधिक लचीला होने के लिए डिज़ाइन किया गया है। यह मानक सी आवंटन और डीलोकेशन प्राइमेटिव, साथ ही साथ सी ++ प्राइमेटिव प्रदान करता है।
शैडोकॉलस्टैक
ShadowCallStack (SCS)
एक एलएलवीएम इंस्ट्रुमेंटेशन मोड है जो नॉनलीफ फंक्शन के फंक्शन प्रोलॉग में फंक्शन के रिटर्न एड्रेस को अलग से आवंटित ShadowCallStack
इंस्टेंस में सेव करके रिटर्न एड्रेस ओवरराइट (जैसे स्टैक बफर ओवरफ्लो) से बचाता है और ShadowCallStack
इंस्टेंस से रिटर्न एड्रेस लोड करता है। समारोह एपिलॉग।
WPA3 और वाई-फाई एन्हांस्ड ओपन
ज्ञात हमलों के खिलाफ बेहतर गोपनीयता और मजबूती प्रदान करने के लिए एंड्रॉइड 10 वाई-फाई संरक्षित एक्सेस 3 (डब्ल्यूपीए 3) और वाई-फाई एन्हांस्ड ओपन सुरक्षा मानकों के लिए समर्थन जोड़ता है।
गोपनीयता
Android 9 या उसके बाद के संस्करण को लक्षित करते समय ऐप एक्सेस
यदि आपका ऐप Android 10 या उच्चतर पर चलता है, लेकिन Android 9 (API स्तर 28) या उससे कम को लक्षित करता है, तो प्लेटफ़ॉर्म निम्न व्यवहार लागू करता है:
- यदि आपका ऐप
ACCESS_FINE_LOCATION
याACCESS_COARSE_LOCATION
के लिए<uses-permission>
तत्व घोषित करता है, तो सिस्टम स्वचालित रूप से स्थापना के दौरानACCESS_BACKGROUND_LOCATION
के लिए<uses-permission>
तत्व जोड़ता है। - यदि आपका ऐप या तो
ACCESS_FINE_LOCATION
याACCESS_COARSE_LOCATION
का अनुरोध करता है, तो सिस्टम स्वचालित रूप से अनुरोध मेंACCESS_BACKGROUND_LOCATION
जोड़ देता है।
पृष्ठभूमि गतिविधि प्रतिबंध
एंड्रॉइड 10 से शुरू होकर, सिस्टम पृष्ठभूमि से गतिविधियों को शुरू करने पर प्रतिबंध लगाता है । यह व्यवहार परिवर्तन उपयोगकर्ता के लिए बाधाओं को कम करने में मदद करता है और उपयोगकर्ता को उनकी स्क्रीन पर दिखाई देने वाली चीज़ों के नियंत्रण में अधिक रखता है। जब तक आपका ऐप उपयोगकर्ता इंटरैक्शन के प्रत्यक्ष परिणाम के रूप में गतिविधियां शुरू करता है, तब तक आपका ऐप इन प्रतिबंधों से प्रभावित नहीं होता है।
पृष्ठभूमि से गतिविधियां शुरू करने के लिए सुझाए गए विकल्प के बारे में अधिक जानने के लिए, अपने ऐप में उपयोगकर्ताओं को समय-संवेदी घटनाओं के प्रति सचेत करने के तरीके के बारे में मार्गदर्शिका देखें।
कैमरा मेटाडेटा
Android 10 उस जानकारी की चौड़ाई को बदल देता है जो getCameraCharacteristics()
विधि डिफ़ॉल्ट रूप से वापस आती है। विशेष रूप से, इस विधि के वापसी मूल्य में शामिल संभावित डिवाइस-विशिष्ट मेटाडेटा तक पहुंचने के लिए आपके ऐप के पास CAMERA
अनुमति होनी चाहिए।
इन परिवर्तनों के बारे में अधिक जानने के लिए, अनुमति की आवश्यकता वाले कैमरा फ़ील्ड के बारे में अनुभाग देखें।
क्लिपबोर्ड डेटा
जब तक आपका ऐप डिफ़ॉल्ट इनपुट मेथड एडिटर (IME) नहीं है या वह ऐप है जिस पर वर्तमान में फ़ोकस है, आपका ऐप Android 10 या उच्चतर पर क्लिपबोर्ड डेटा तक नहीं पहुंच सकता है।
डिवाइस स्थान
अतिरिक्त नियंत्रण का समर्थन करने के लिए कि उपयोगकर्ताओं के पास स्थान की जानकारी तक ऐप की पहुंच है, Android 10 ACCESS_BACKGROUND_LOCATION
अनुमति का परिचय देता है।
ACCESS_FINE_LOCATION
और ACCESS_COARSE_LOCATION
अनुमतियों के विपरीत, ACCESS_BACKGROUND_LOCATION
अनुमति केवल पृष्ठभूमि में चलने पर ऐप के स्थान तक पहुंच को प्रभावित करती है। किसी ऐप को बैकग्राउंड में लोकेशन एक्सेस करने वाला माना जाता है, जब तक कि निम्न में से कोई एक शर्त पूरी न हो:
- ऐप से संबंधित एक गतिविधि दिखाई दे रही है।
- ऐप एक अग्रभूमि सेवा चला रहा है जिसनेअग्रभूमि सेवा प्रकार का
location
घोषित किया है।
अपने ऐप में किसी सेवा के लिए अग्रभूमि सेवा प्रकार घोषित करने के लिए, अपने ऐप का लक्ष्यtargetSdkVersion
याcompileSdkVersion
को29
या उच्चतर पर सेट करें। इस बारे में अधिक जानें कि कैसे अग्रभूमि सेवाएं उपयोगकर्ता द्वारा शुरू की गई कार्रवाइयों को जारी रख सकती हैं जिनके लिए स्थान तक पहुंच की आवश्यकता होती है।
बाह्य भंडारण
डिफ़ॉल्ट रूप से, Android 10 और उसके बाद वाले वर्शन को लक्षित करने वाले ऐप्स को बाहरी संग्रहण , या स्कोप्ड स्टोरेज में स्कोप्ड एक्सेस दिया जाता है। ऐसे ऐप्स किसी भी स्टोरेज-संबंधित उपयोगकर्ता अनुमतियों का अनुरोध किए बिना बाहरी स्टोरेज डिवाइस के भीतर निम्न प्रकार की फाइलों को देख सकते हैं:
- ऐप-विशिष्ट निर्देशिका में फ़ाइलें,
getExternalFilesDir()
का उपयोग करके एक्सेस की जाती हैं। - फ़ोटो, वीडियो और ऑडियो क्लिप जिन्हें ऐप ने मीडिया स्टोर से बनाया है।
स्कोप्ड स्टोरेज के बारे में अधिक जानने के लिए, साथ ही बाहरी स्टोरेज डिवाइस पर सहेजी गई फ़ाइलों को साझा करने, एक्सेस करने और संशोधित करने के तरीके के बारे में जानने के लिए, बाहरी स्टोरेज में फ़ाइलों को प्रबंधित करने और मीडिया फ़ाइलों को एक्सेस और संशोधित करने के तरीके पर मार्गदर्शिका देखें।
मैक एड्रेस रैंडमाइजेशन
एंड्रॉइड 10 या उच्चतर चलाने वाले उपकरणों पर, सिस्टम डिफ़ॉल्ट रूप से यादृच्छिक मैक पते प्रसारित करता है।
यदि आपका ऐप एंटरप्राइज़ उपयोग के मामले को संभालता है, तो प्लेटफ़ॉर्म MAC पतों से संबंधित कई कार्यों के लिए API प्रदान करता है:
- यादृच्छिक मैक पता प्राप्त करें : डिवाइस स्वामी ऐप्स और प्रोफ़ाइल स्वामी ऐप्स
getRandomizedMacAddress()
पर कॉल करके एक विशिष्ट नेटवर्क को असाइन किए गए यादृच्छिक मैक पते को पुनः प्राप्त कर सकते हैं। - वास्तविक, फ़ैक्टरी मैक पता प्राप्त करें: डिवाइस स्वामी ऐप्स
getWifiMacAddress()
पर कॉल करके डिवाइस के वास्तविक हार्डवेयर मैक पते को पुनः प्राप्त कर सकते हैं। यह विधि उपकरणों के बेड़े को ट्रैक करने के लिए उपयोगी है।
गैर-रीसेट करने योग्य डिवाइस पहचानकर्ता
Android 10 से शुरू होकर, डिवाइस के गैर-रीसेट करने योग्य पहचानकर्ताओं तक पहुंचने के लिए ऐप्स के पास READ_PRIVILEGED_PHONE_STATE
विशेषाधिकार प्राप्त अनुमति होनी चाहिए, जिसमें IMEI और सीरियल नंबर दोनों शामिल हैं।
-
Build
-
TelephonyManager
यदि आपके ऐप के पास अनुमति नहीं है और आप वैसे भी गैर-रीसेट करने योग्य पहचानकर्ताओं के बारे में जानकारी मांगने का प्रयास करते हैं, तो प्लेटफ़ॉर्म की प्रतिक्रिया लक्ष्य SDK संस्करण के आधार पर भिन्न होती है:
- यदि आपका ऐप Android 10 या उच्चतर को लक्षित करता है, तो एक
SecurityException
अपवाद होता है। - यदि आपका ऐप एंड्रॉइड 9 (एपीआई स्तर 28) या उससे कम को लक्षित करता है, तो ऐप में
READ_PHONE_STATE
अनुमति होने पर विधिnull
या प्लेसहोल्डर डेटा लौटाती है। अन्यथा, एकSecurityException
अपवाद होता है।
शारीरिक गतिविधि मान्यता
Android 10 उन ऐप्स के लिए android.permission.ACTIVITY_RECOGNITION
रनटाइम अनुमति पेश करता है, जिन्हें उपयोगकर्ता की स्टेप काउंट का पता लगाने या उपयोगकर्ता की शारीरिक गतिविधि को वर्गीकृत करने की आवश्यकता होती है, जैसे चलना, बाइक चलाना या वाहन में चलना। यह उपयोगकर्ताओं को यह देखने के लिए डिज़ाइन किया गया है कि सेटिंग में डिवाइस सेंसर डेटा का उपयोग कैसे किया जाता है।
Google Play सेवाओं के भीतर कुछ लाइब्रेरी, जैसे कि गतिविधि पहचान API और Google फ़िट API , तब तक परिणाम प्रदान नहीं करते जब तक कि उपयोगकर्ता ने आपके ऐप को यह अनुमति नहीं दी हो।
डिवाइस पर एकमात्र अंतर्निहित सेंसर जिसके लिए आपको इस अनुमति की घोषणा करने की आवश्यकता होती है, वे स्टेप काउंटर और स्टेप डिटेक्टर सेंसर हैं।
यदि आपका ऐप Android 9 (API स्तर 28) या उससे कम को लक्षित करता है, तो सिस्टम आवश्यकतानुसार आपके ऐप को android.permission.ACTIVITY_RECOGNITION
अनुमति देता है, यदि आपका ऐप निम्न में से प्रत्येक शर्त को पूरा करता है:
- मेनिफेस्ट फ़ाइल में
com.google.android.gms.permission.ACTIVITY_RECOGNITION
अनुमति शामिल है। - मेनिफेस्ट फ़ाइल में
android.permission.ACTIVITY_RECOGNITION
अनुमति शामिल नहीं है ।
यदि सिस्टम-ऑटो android.permission.ACTIVITY_RECOGNITION
अनुमति देता है, तो आपका ऐप Android 10 को लक्षित करने के लिए आपके ऐप को अपडेट करने के बाद अनुमति को बरकरार रखता है। हालांकि, उपयोगकर्ता सिस्टम सेटिंग्स में किसी भी समय इस अनुमति को रद्द कर सकता है।
/proc/net फाइल सिस्टम प्रतिबंध
Android 10 या उच्चतर चलाने वाले उपकरणों पर, ऐप्स /proc/net
तक नहीं पहुंच सकते, जिसमें डिवाइस की नेटवर्क स्थिति के बारे में जानकारी शामिल होती है। जिन ऐप्स को इस जानकारी तक पहुंच की आवश्यकता होती है, जैसे कि VPN, उन्हें NetworkStatsManager
या ConnectivityManager
वर्ग का उपयोग करना चाहिए।
UI से अनुमति समूह हटा दिए गए
Android 10 के अनुसार, ऐप्स यह नहीं देख सकते हैं कि UI में अनुमतियों को कैसे समूहीकृत किया जाता है।
संपर्क आत्मीयता को हटाना
एंड्रॉइड 10 से शुरू होकर, प्लेटफॉर्म कॉन्टैक्ट्स एफिनिटी इंफॉर्मेशन का ट्रैक नहीं रखता है। परिणामस्वरूप, यदि आपका ऐप उपयोगकर्ता के संपर्कों पर खोज करता है, तो परिणाम बातचीत की आवृत्ति के अनुसार क्रमित नहीं होते हैं।
ContactsProvider
के बारे में मार्गदर्शिका में विशिष्ट फ़ील्ड और विधियों का वर्णन करने वाला एक नोटिस शामिल है जो Android 10 से शुरू होने वाले सभी उपकरणों पर अप्रचलित हैं ।
स्क्रीन सामग्री तक सीमित पहुंच
उपयोगकर्ताओं की स्क्रीन सामग्री की सुरक्षा के लिए, Android 10 READ_FRAME_BUFFER
, CAPTURE_VIDEO_OUTPUT
, और CAPTURE_SECURE_VIDEO_OUTPUT
अनुमतियों के दायरे को बदलकर डिवाइस की स्क्रीन सामग्री तक मौन पहुंच को रोकता है। Android 10 के अनुसार, ये अनुमतियाँ केवल हस्ताक्षर-पहुँच हैं।
जिन ऐप्स को डिवाइस की स्क्रीन सामग्री तक पहुंचने की आवश्यकता होती है, उन्हें MediaProjection
API का उपयोग करना चाहिए, जो उपयोगकर्ता को सहमति प्रदान करने के लिए कहते हुए एक संकेत प्रदर्शित करता है।
यूएसबी डिवाइस सीरियल नंबर
यदि आपका ऐप Android 10 या उच्चतर को लक्षित करता है, तो आपका ऐप सीरियल नंबर तब तक नहीं पढ़ सकता जब तक कि उपयोगकर्ता ने आपके ऐप को USB डिवाइस या एक्सेसरी तक पहुंचने की अनुमति नहीं दी हो।
USB उपकरणों के साथ कार्य करने के बारे में अधिक जानने के लिए, USB होस्ट को कॉन्फ़िगर करने के तरीके के बारे में मार्गदर्शिका देखें।
वाई - फाई
Android 10 या उच्चतर को लक्षित करने वाले ऐप्स वाई-फ़ाई को सक्षम या अक्षम नहीं कर सकते हैं। WifiManager.setWifiEnabled()
विधि हमेशा false
लौटाती है।
यदि आपको वाई-फाई को सक्षम और अक्षम करने के लिए उपयोगकर्ताओं को संकेत देने की आवश्यकता है, तो सेटिंग पैनल का उपयोग करें।
कॉन्फ़िगर किए गए वाई-फ़ाई नेटवर्क तक सीधी पहुंच पर प्रतिबंध
उपयोगकर्ता की गोपनीयता की रक्षा के लिए, वाई-फाई नेटवर्क की सूची का मैन्युअल कॉन्फ़िगरेशन सिस्टम ऐप और डिवाइस पॉलिसी कंट्रोलर (डीपीसी) तक सीमित है। एक दिया गया DPC या तो डिवाइस का स्वामी या प्रोफ़ाइल स्वामी हो सकता है।
यदि आपका ऐप Android 10 या उच्चतर को लक्षित करता है, और यह कोई सिस्टम ऐप या DPC नहीं है, तो निम्न विधियाँ उपयोगी डेटा नहीं लौटाती हैं:
-
getConfiguredNetworks()
विधि हमेशा एक खाली सूची देता है। - प्रत्येक नेटवर्क ऑपरेशन विधि जो एक पूर्णांक
addNetwork()
औरupdateNetwork()
- हमेशा -1 देता है। - प्रत्येक नेटवर्क ऑपरेशन जो एक बूलियन मान देता
removeNetwork()
,reassociate()
,enableNetwork()
,disableNetwork()
,reconnect()
, औरdisconnect()
-हमेशाfalse
रिटर्न देता है।
एंड्रॉइड 9
Every Android release includes dozens of security enhancements to protect users. For a list of some of the major security enhancements available in Android 9, see the Android Release Notes.
एंड्रॉइड 8
प्रत्येक Android रिलीज़ में उपयोगकर्ताओं की सुरक्षा के लिए दर्जनों सुरक्षा संवर्द्धन शामिल होते हैं। यहाँ Android 8.0 में उपलब्ध कुछ प्रमुख सुरक्षा संवर्द्धन दिए गए हैं:
- एन्क्रिप्शन । कार्य प्रोफ़ाइल में कुंजी को बेदखल करने के लिए जोड़ा गया समर्थन।
- सत्यापित बूट । जोड़ा गया Android सत्यापित बूट (AVB)। AOSP में जोड़े गए बूट लोडर में उपयोग के लिए रोलबैक सुरक्षा का समर्थन करने वाला सत्यापित बूट कोडबेस। HLOS के लिए रोलबैक सुरक्षा के लिए बूटलोडर समर्थन की अनुशंसा करें। अनुशंसा करें कि बूट लोडर को केवल डिवाइस के साथ भौतिक रूप से इंटरैक्ट करने वाले उपयोगकर्ता द्वारा ही अनलॉक किया जा सकता है।
- लॉक स्क्रीन । लॉक स्क्रीन क्रेडेंशियल को सत्यापित करने के लिए छेड़छाड़ प्रतिरोधी हार्डवेयर का उपयोग करने के लिए जोड़ा गया समर्थन।
- कीस्टोर । Android 8.0+ के साथ शिप करने वाले सभी उपकरणों के लिए आवश्यक कुंजी सत्यापन । जीरो टच नामांकन में सुधार के लिए आईडी सत्यापन समर्थन जोड़ा गया।
- सैंडबॉक्सिंग । फ्रेमवर्क और डिवाइस-विशिष्ट घटकों के बीच प्रोजेक्ट ट्रेबल के मानक इंटरफ़ेस का उपयोग करके कई घटकों को अधिक मजबूती से सैंडबॉक्स किया गया। कर्नेल के हमले की सतह को कम करने के लिए सभी अविश्वसनीय ऐप्स पर लागू seccomp फ़िल्टरिंग । WebView अब एक अलग प्रक्रिया में चलाया जाता है जिसमें शेष सिस्टम तक बहुत सीमित पहुंच होती है।
- कर्नेल सख्त । लागू की गई हार्ड यूजरकॉपी , पैन इम्यूलेशन, रीड ओनली आफ्टर इनिट, और केएएसएलआर।
- उपयोगकर्ता स्थान सख्त । मीडिया स्टैक के लिए लागू सीएफआई। ऐप ओवरले अब सिस्टम-महत्वपूर्ण विंडो को कवर नहीं कर सकते हैं और उपयोगकर्ताओं के पास उन्हें खारिज करने का एक तरीका है।
- स्ट्रीमिंग ओएस अपडेट । उन उपकरणों पर सक्षम अद्यतन जो डिस्क स्थान पर कम हैं।
- अज्ञात ऐप्स इंस्टॉल करें । उपयोगकर्ताओं को ऐसे स्रोत से ऐप्स इंस्टॉल करने की अनुमति देनी होगी जो प्रथम-पक्ष ऐप स्टोर नहीं है।
- गोपनीयता । डिवाइस पर प्रत्येक ऐप और प्रत्येक उपयोगकर्ता के लिए Android ID (SSAID) का एक अलग मान होता है। वेब ब्राउज़र ऐप्स के लिए, वाइडवाइन क्लाइंट आईडी प्रत्येक ऐप पैकेज नाम और वेब मूल के लिए एक अलग मान देता है।
net.hostname
अब खाली है और dhcp क्लाइंट अब होस्टनाम नहीं भेजता है।android.os.Build.SERIAL
कोBuild.SERIAL
API से बदल दिया गया है जो उपयोगकर्ता द्वारा नियंत्रित अनुमति के पीछे सुरक्षित है। कुछ चिपसेट में बेहतर मैक एड्रेस रैंडमाइजेशन।
एंड्रॉइड 7
प्रत्येक Android रिलीज़ में उपयोगकर्ताओं की सुरक्षा के लिए दर्जनों सुरक्षा संवर्द्धन शामिल होते हैं। यहाँ Android 7.0 में उपलब्ध कुछ प्रमुख सुरक्षा संवर्द्धन दिए गए हैं:
- फ़ाइल-आधारित एन्क्रिप्शन । फ़ाइल स्तर पर एन्क्रिप्ट करना, संपूर्ण संग्रहण क्षेत्र को एक इकाई के रूप में एन्क्रिप्ट करने के बजाय, डिवाइस पर अलग-अलग उपयोगकर्ताओं और प्रोफाइल (जैसे व्यक्तिगत और काम) को बेहतर ढंग से अलग और सुरक्षित करता है।
- डायरेक्ट बूट । फ़ाइल-आधारित एन्क्रिप्शन द्वारा सक्षम, डायरेक्ट बूट कुछ ऐप्स जैसे अलार्म घड़ी और एक्सेसिबिलिटी सुविधाओं को चलाने की अनुमति देता है जब डिवाइस चालू होता है लेकिन अनलॉक नहीं होता है।
- सत्यापित बूट । सत्यापित बूट अब सख्ती से लागू किया गया है ताकि छेड़छाड़ किए गए उपकरणों को बूट होने से रोका जा सके; यह गैर-दुर्भावनापूर्ण डेटा भ्रष्टाचार के खिलाफ विश्वसनीयता में सुधार के लिए त्रुटि सुधार का समर्थन करता है।
- सेलिनक्स । अद्यतन किया गया SELinux कॉन्फ़िगरेशन और बढ़ा हुआ seccomp कवरेज आगे एप्लिकेशन सैंडबॉक्स को लॉक कर देता है और हमले की सतह को कम कर देता है।
- लाइब्रेरी लोड-ऑर्डर रैंडमाइजेशन और बेहतर ASLR । बढ़ी हुई यादृच्छिकता कुछ कोड-पुन: उपयोग के हमलों को कम विश्वसनीय बनाती है।
- कर्नेल सख्त । कर्नेल मेमोरी के कुछ हिस्सों को रीड-ओनली के रूप में चिह्नित करके, यूजरस्पेस एड्रेस तक कर्नेल एक्सेस को प्रतिबंधित करके और मौजूदा हमले की सतह को और कम करके नए कर्नेल के लिए अतिरिक्त मेमोरी सुरक्षा जोड़ा गया।
- एपीके सिग्नेचर स्कीम v2 . एक संपूर्ण फ़ाइल हस्ताक्षर योजना की शुरुआत की जो सत्यापन गति में सुधार करती है और अखंडता गारंटी को मजबूत करती है।
- विश्वसनीय सीए स्टोर । ऐप्स के लिए अपने सुरक्षित नेटवर्क ट्रैफ़िक तक पहुंच को नियंत्रित करना आसान बनाने के लिए, उपयोगकर्ता द्वारा स्थापित प्रमाणपत्र प्राधिकरण और डिवाइस व्यवस्थापक API के माध्यम से इंस्टॉल किए गए अब API स्तर 24+ को लक्षित करने वाले ऐप्स के लिए डिफ़ॉल्ट रूप से विश्वसनीय नहीं हैं। इसके अतिरिक्त, सभी नए Android उपकरणों को समान विश्वसनीय CA स्टोर के साथ शिप करना चाहिए।
- नेटवर्क सुरक्षा कॉन्फ़िगरेशन । एक घोषणात्मक कॉन्फ़िगरेशन फ़ाइल के माध्यम से नेटवर्क सुरक्षा और TLS को कॉन्फ़िगर करें।
एंड्रॉइड 6
प्रत्येक Android रिलीज़ में उपयोगकर्ताओं की सुरक्षा के लिए दर्जनों सुरक्षा संवर्द्धन शामिल होते हैं। यहाँ Android 6.0 में उपलब्ध कुछ प्रमुख सुरक्षा संवर्द्धन दिए गए हैं:
- रनटाइम अनुमतियाँ । एप्लिकेशन इंस्टॉल समय पर दिए जाने के बजाय एप्लिकेशन रनटाइम पर अनुमतियों का अनुरोध करते हैं। उपयोगकर्ता एम और प्री-एम दोनों अनुप्रयोगों के लिए अनुमतियों को चालू और बंद कर सकते हैं।
- सत्यापित बूट । सिस्टम सॉफ़्टवेयर के क्रिप्टोग्राफ़िक जाँच का एक सेट निष्पादन से पहले आयोजित किया जाता है ताकि यह सुनिश्चित किया जा सके कि फ़ोन बूटलोडर से लेकर ऑपरेटिंग सिस्टम तक सभी तरह से स्वस्थ है।
- हार्डवेयर-पृथक सुरक्षा । फ़िंगरप्रिंट एपीआई, लॉकस्क्रीन, डिवाइस एन्क्रिप्शन, और क्लाइंट सर्टिफिकेट द्वारा उपयोग की जाने वाली नई हार्डवेयर एब्स्ट्रक्शन लेयर (एचएएल) कर्नेल समझौता और/या स्थानीय भौतिक हमलों के खिलाफ कुंजी की रक्षा के लिए
- उंगलियों के निशान। उपकरणों को अब केवल एक स्पर्श से अनलॉक किया जा सकता है। एन्क्रिप्शन कुंजियों को लॉक और अनलॉक करने के लिए फ़िंगरप्रिंट का उपयोग करने के लिए डेवलपर्स नए एपीआई का भी लाभ उठा सकते हैं।
- एसडी कार्ड दत्तक ग्रहण । हटाने योग्य मीडिया को डिवाइस में अपनाया जा सकता है और ऐप स्थानीय डेटा, फोटो, वीडियो इत्यादि के लिए उपलब्ध स्टोरेज का विस्तार किया जा सकता है, लेकिन फिर भी ब्लॉक-स्तरीय एन्क्रिप्शन द्वारा संरक्षित किया जा सकता है।
- टेक्स्ट ट्रैफ़िक साफ़ करें । डेवलपर्स यह सुनिश्चित करने के लिए एक नए स्ट्रिक्टमोड का उपयोग कर सकते हैं कि उनका एप्लिकेशन क्लियरटेक्स्ट का उपयोग नहीं करता है।
- सिस्टम हार्डनिंग । SELinux द्वारा लागू नीतियों के माध्यम से सिस्टम को सख्त बनाना। यह उपयोगकर्ताओं के बीच बेहतर अलगाव प्रदान करता है, IOCTL फ़िल्टरिंग, उजागर सेवाओं के खतरे को कम करता है, SELinux डोमेन को और सख्त करता है, और अत्यंत सीमित / खरीद पहुंच प्रदान करता है।
- यूएसबी एक्सेस कंट्रोल: उपयोगकर्ताओं को फोन पर फाइलों, स्टोरेज या अन्य कार्यक्षमता के लिए यूएसबी एक्सेस की अनुमति देने की पुष्टि करनी चाहिए। डिफ़ॉल्ट अब केवल उपयोगकर्ता से स्पष्ट अनुमोदन की आवश्यकता वाले संग्रहण तक पहुंच के साथ शुल्क लिया जाता है।
एंड्रॉइड 5
5.0
Every Android release includes dozens of security enhancements to protect users. Here are some of the major security enhancements available in Android 5.0:
- Encrypted by default. On devices that ship with L out-of-the-box, full disk encryption is enabled by default to improve protection of data on lost or stolen devices. Devices that update to L can be encrypted in Settings > Security.
- Improved full disk encryption. The user password is
protected against brute-force attacks using
scrypt
and, where available, the key is bound to the hardware keystore to prevent off-device attacks. As always, the Android screen lock secret and the device encryption key are not sent off the device or exposed to any application. - Android sandbox reinforced with SELinux. Android now requires SELinux in enforcing mode for all domains. SELinux is a mandatory access control (MAC) system in the Linux kernel used to augment the existing discretionary access control (DAC) security model. This new layer provides additional protection against potential security vulnerabilities.
- Smart Lock. Android now includes trustlets that provide more flexibility for unlocking devices. For example, trustlets can allow devices to be unlocked automatically when close to another trusted device (via NFC, Bluetooth) or being used by someone with a trusted face.
- Multi user, restricted profile, and guest modes for phones & tablets. Android now provides for multiple users on phones and includes a guest mode that can be used to provide easy temporary access to your device without granting access to your data and apps.
- Updates to WebView without OTA. WebView can now be updated independent of the framework and without a system OTA. This will allow for faster response to potential security issues in WebView.
- Updated cryptography for HTTPS and TLS/SSL. TLSv1.2 and TLSv1.1 is now enabled, Forward Secrecy is now preferred, AES-GCM is now enabled, and weak cipher suites (MD5, 3DES, and export cipher suites) are now disabled. See https://developer.android.com/reference/javax/net/ssl/SSLSocket.html for more details.
- non-PIE linker support removed. Android now requires all dynamically linked executables to support PIE (position-independent executables). This enhances Android’s address space layout randomization (ASLR) implementation.
- FORTIFY_SOURCE improvements. The following libc
functions now implement FORTIFY_SOURCE protections:
stpcpy()
,stpncpy()
,read()
,recvfrom()
,FD_CLR()
,FD_SET()
, andFD_ISSET()
. This provides protection against memory-corruption vulnerabilities involving those functions. - Security Fixes. Android 5.0 also includes fixes for Android-specific vulnerabilities. Information about these vulnerabilities has been provided to Open Handset Alliance members, and fixes are available in Android Open Source Project. To improve security, some devices with earlier versions of Android may also include these fixes.
एंड्रॉइड 4 और उससे नीचे का संस्करण
प्रत्येक Android रिलीज़ में उपयोगकर्ताओं की सुरक्षा के लिए दर्जनों सुरक्षा संवर्द्धन शामिल होते हैं। Android 4.4 में उपलब्ध कुछ सुरक्षा संवर्द्धन निम्नलिखित हैं:
- एंड्रॉइड सैंडबॉक्स SELinux के साथ प्रबलित। Android अब प्रवर्तन मोड में SELinux का उपयोग करता है। SELinux, Linux कर्नेल में एक अनिवार्य अभिगम नियंत्रण (MAC) प्रणाली है जिसका उपयोग मौजूदा विवेकाधीन अभिगम नियंत्रण (DAC) आधारित सुरक्षा मॉडल को बढ़ाने के लिए किया जाता है। यह संभावित सुरक्षा कमजोरियों के खिलाफ अतिरिक्त सुरक्षा प्रदान करता है।
- प्रति उपयोगकर्ता वीपीएन। बहु-उपयोगकर्ता उपकरणों पर, वीपीएन अब प्रति उपयोगकर्ता लागू होते हैं। यह उपयोगकर्ता को डिवाइस पर अन्य उपयोगकर्ताओं को प्रभावित किए बिना वीपीएन के माध्यम से सभी नेटवर्क ट्रैफ़िक को रूट करने की अनुमति दे सकता है।
- AndroidKeyStore में ECDSA प्रदाता समर्थन। एंड्रॉइड में अब एक कीस्टोर प्रदाता है जो ईसीडीएसए और डीएसए एल्गोरिदम के उपयोग की अनुमति देता है।
- डिवाइस निगरानी चेतावनी। एंड्रॉइड उपयोगकर्ताओं को एक चेतावनी प्रदान करता है यदि डिवाइस प्रमाणपत्र स्टोर में कोई प्रमाणपत्र जोड़ा गया है जो एन्क्रिप्टेड नेटवर्क ट्रैफ़िक की निगरानी की अनुमति दे सकता है।
- FORTIFY_SOURCE. Android अब FORTIFY_SOURCE स्तर 2 का समर्थन करता है, और सभी कोड इन सुरक्षा के साथ संकलित किए गए हैं। FORTIFY_SOURCE को क्लैंग के साथ काम करने के लिए बढ़ाया गया है।
- सर्टिफिकेट पिनिंग। Android 4.4 सुरक्षित SSL/TLS संचारों में उपयोग किए गए कपटपूर्ण Google प्रमाणपत्रों का पता लगाता है और उनके उपयोग को रोकता है।
- सुरक्षा सुधार। एंड्रॉइड 4.4 में एंड्रॉइड-विशिष्ट कमजोरियों के लिए सुधार भी शामिल हैं। ओपन हैंडसेट एलायंस के सदस्यों को इन कमजोरियों के बारे में जानकारी प्रदान की गई है और एंड्रॉइड ओपन सोर्स प्रोजेक्ट में सुधार उपलब्ध हैं। सुरक्षा को बेहतर बनाने के लिए, Android के पुराने संस्करणों वाले कुछ उपकरणों में ये सुधार भी शामिल हो सकते हैं।
Every Android release includes dozens of security enhancements to protect users. The following are some of the security enhancements available in Android 4.3:
- Android sandbox reinforced with SELinux. This release strengthens the Android sandbox using the SELinux mandatory access control system (MAC) in the Linux kernel. SELinux reinforcement is invisible to users and developers, and adds robustness to the existing Android security model while maintaining compatibility with existing applications. To ensure continued compatibility this release allows the use of SELinux in a permissive mode. This mode logs any policy violations, but will not break applications or affect system behavior.
- No setuid/setgid programs. Added support for filesystem capabilities to Android system files and removed all setuid/setguid programs. This reduces root attack surface and the likelihood of potential security vulnerabilities.
- ADB Authentication. Since Android 4.2.2, connections to ADB are authenticated with an RSA keypair. This prevents unauthorized use of ADB where the attacker has physical access to a device.
- Restrict Setuid from Android Apps. The /system partition is now mounted nosuid for zygote-spawned processes, preventing Android applications from executing setuid programs. This reduces root attack surface and the likelihood of potential security vulnerabilities.
- Capability bounding. Android zygote and ADB now use prctl(PR_CAPBSET_DROP) to drop unnecessary capabilities prior to executing applications. This prevents Android applications and applications launched from the shell from acquiring privileged capabilities.
- AndroidKeyStore Provider. Android now has a keystore provider that allows applications to create exclusive use keys. This provides applications with an API to create or store private keys that cannot be used by other applications.
- KeyChain isBoundKeyAlgorithm. Keychain API now provides a method (isBoundKeyType) that allows applications to confirm that system-wide keys are bound to a hardware root of trust for the device. This provides a place to create or store private keys that cannot be exported off the device, even in the event of a root compromise.
- NO_NEW_PRIVS. Android zygote now uses prctl(PR_SET_NO_NEW_PRIVS) to block addition of new privileges prior to execution application code. This prevents Android applications from performing operations which can elevate privileges via execve. (This requires Linux kernel version 3.5 or greater).
- FORTIFY_SOURCE enhancements. Enabled FORTIFY_SOURCE on Android x86 and MIPS and fortified strchr(), strrchr(), strlen(), and umask() calls. This can detect potential memory corruption vulnerabilities or unterminated string constants.
- Relocation protections. Enabled read only relocations (relro) for statically linked executables and removed all text relocations in Android code. This provides defense in depth against potential memory corruption vulnerabilities.
- Improved EntropyMixer. EntropyMixer now writes entropy at shutdown / reboot, in addition to periodic mixing. This allows retention of all entropy generated while devices are powered on, and is especially useful for devices that are rebooted immediately after provisioning.
- Security Fixes. Android 4.3 also includes fixes for Android-specific vulnerabilities. Information about these vulnerabilities has been provided to Open Handset Alliance members and fixes are available in Android Open Source Project. To improve security, some devices with earlier versions of Android may also include these fixes.
Android provides a multi-layered security model described in the Android Security Overview. Each update to Android includes dozens of security enhancements to protect users. The following are some of the security enhancements introduced in Android 4.2:
- Application verification - Users can choose to enable “Verify Apps" and have applications screened by an application verifier, prior to installation. App verification can alert the user if they try to install an app that might be harmful; if an application is especially bad, it can block installation.
- More control of premium SMS - Android will provide a notification if an application attempts to send SMS to a short code that uses premium services which might cause additional charges. The user can choose whether to allow the application to send the message or block it.
- Always-on VPN - VPN can be configured so that applications will not have access to the network until a VPN connection is established. This prevents applications from sending data across other networks.
- Certificate Pinning - The Android core libraries now support certificate pinning. Pinned domains will receive a certificate validation failure if the certificate does not chain to a set of expected certificates. This protects against possible compromise of Certificate Authorities.
- Improved display of Android permissions - Permissions have been organized into groups that are more easily understood by users. During review of the permissions, the user can click on the permission to see more detailed information about the permission.
- installd hardening - The
installd
daemon does not run as the root user, reducing potential attack surface for root privilege escalation. - init script hardening - init scripts now apply
O_NOFOLLOW
semantics to prevent symlink related attacks. - FORTIFY_SOURCE - Android now implements
FORTIFY_SOURCE
. This is used by system libraries and applications to prevent memory corruption. - ContentProvider default configuration - Applications which target API level 17 will have "export" set to "false" by default for each Content Provider, reducing default attack surface for applications.
- Cryptography - Modified the default implementations of SecureRandom and Cipher.RSA to use OpenSSL. Added SSL Socket support for TLSv1.1 and TLSv1.2 using OpenSSL 1.0.1
- Security Fixes - Upgraded open source libraries with security fixes include WebKit, libpng, OpenSSL, and LibXML. Android 4.2 also includes fixes for Android-specific vulnerabilities. Information about these vulnerabilities has been provided to Open Handset Alliance members and fixes are available in Android Open Source Project. To improve security, some devices with earlier versions of Android may also include these fixes.
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 सक्षम (कर्नेल पतों को लीक करने से बचें)