सुरक्षा संवर्द्धन

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

एंड्रॉइड 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

प्रत्येक 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 और सीरियल नंबर दोनों शामिल हैं।

यदि आपके ऐप के पास अनुमति नहीं है और आप वैसे भी गैर-रीसेट करने योग्य पहचानकर्ताओं के बारे में जानकारी मांगने का प्रयास करते हैं, तो प्लेटफ़ॉर्म की प्रतिक्रिया लक्ष्य एसडीके संस्करण के आधार पर भिन्न होती है:

  • यदि आपका ऐप एंड्रॉइड 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 सत्यापित बूट (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

प्रत्येक 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 में उपलब्ध कुछ सुरक्षा संवर्द्धन निम्नलिखित हैं:

  • एंड्रॉइड सैंडबॉक्स 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 के पुराने संस्करणों वाले कुछ उपकरणों में ये सुधार भी शामिल हो सकते हैं।

प्रत्येक एंड्रॉइड रिलीज़ में उपयोगकर्ताओं की सुरक्षा के लिए दर्जनों सुरक्षा संवर्द्धन शामिल होते हैं। 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 सक्षम (कर्नेल पतों को लीक करने से बचें)