Android, डिवाइस के कई तरह के सिग्नल उपलब्ध कराता है. एडमिन इनका इस्तेमाल करके, किसी डिवाइस की सुरक्षा स्थिति का पता लगा सकते हैं. ज़ीरो ट्रस्ट सुरक्षा मॉडल में, इन सिग्नल का इस्तेमाल यह आकलन करने के लिए किया जाता है कि किसी डिवाइस को, कॉरपोरेट की जानकारी ऐक्सेस करने की अनुमति दी जानी चाहिए या नहीं.
सुविधा | ब्यौरा | पूरी तरह से मैनेज किए जा रहे डिवाइस | कंपनी के मालिकाना हक वाले डिवाइसों पर वर्क प्रोफ़ाइल | निजी मालिकाना हक वाले डिवाइसों पर वर्क प्रोफ़ाइल (BYOD) | ऐसे डिवाइस जिन्हें मैनेज नहीं किया जा रहा है |
---|---|---|---|---|---|
Play Integrity API | भरोसेमंद ब्रोकर, ये सिग्नल हासिल कर सकता है:
|
हां | हां | हां | हां |
सुरक्षित हार्डवेयर मौजूद है / कुंजी को प्रमाणित करना | ट्रस्ट ब्रोकर यह पुष्टि कर सकते हैं कि उनके पीकेआई क्रेडेंशियल जनरेट किए गए हैं और सुरक्षित हार्डवेयर में सेव करके रखा जाता है. | हां | हां | हां | हां |
डिवाइस प्रॉपर्टी को प्रमाणित करना | पासकोड की पुष्टि करने के लिए, डिवाइस प्रॉपर्टी को पुष्टि करने के रिकॉर्ड के हिस्से के तौर पर शामिल किया जा सकता है | हां | हां | हां | हां |
डिवाइस के लिए, सुरक्षा पैच का लेवल | ट्रस्ट ब्रोकर, ओएस के सिक्योरिटी पैच लेवल की पुष्टि कर सकता है | हां | हां | हां | हां |
क्या डिवाइस पर OTA अपडेट होना बाकी है | ट्रस्ट ब्रोकर यह जांच कर सकता है कि डिवाइस के ओएस का अपडेट इंस्टॉल होना बाकी है या नहीं उपलब्ध है | हां | हां | हां | लागू नहीं |
मेनलाइन सिक्योरिटी पैच लेवल | ट्रस्ट ब्रोकर, इंस्टॉल किए गए ऐप्लिकेशन के सुरक्षा पैच लेवल को पढ़ सकता है मेनलाइन ट्रेन | हां | हां | हां | हां |
नाम रजिस्टर कराना खास आईडी | ट्रस्ट ब्रोकर, उस एंटरप्राइज़ के लिए खास तौर पर उपलब्ध यूनीक डिवाइस आईडी को ऐक्सेस कर सकता है. यह आईडी, वर्क प्रोफ़ाइल फिर से बनाने और डिवाइस की फ़ैक्ट्री में सुरक्षित रहता है रीसेट कराे | हां | हां | हां | लागू नहीं |
मैनेजमेंट की स्थिति (और ऐप्लिकेशन मैनेज करना) | ट्रस्ट ब्रोकर इसका इस्तेमाल यह तय करने के लिए कर सकता है कि डिवाइस को मैनेज किया जा रहा है या नहीं | हां | हां | हां | लागू नहीं |
डिस्क एन्क्रिप्ट (सुरक्षित) करने का तरीका | ट्रस्ट ब्रोकर यह देख सकता है कि डिवाइस को एन्क्रिप्ट किया गया है या नहीं (अगर Android 8 की ज़रूरत है) | हां | हां | हां | हां |
ओएस वर्शन | ट्रस्ट ब्रोकर, डिवाइस के ओएस वर्शन की जांच कर सकता है और इस बात की पुष्टि कर सकता है कि डिवाइस के ओएस वर्शन को पार करने की वजह से कार्रवाई हुई है किसी खास वर्शन में | हां | हां | हां | हां |
ऐक्सेस नेटवर्क की स्थिति (नेटवर्क और वाई-फ़ाई की स्थिति) | ट्रस्ट ब्रोकर को ऐक्टिव नेटवर्क की स्थिति के बारे में जानकारी मिल सकती है (सेल्युलर और वाई-फ़ाई) | हां | हां | हां | हां |
वाई-फ़ाई की स्थिति ऐक्सेस करना (Android 11 और उससे पहले के वर्शन, Android 12 और उसके बाद के वर्शन में कॉलबैक या ऑन-डिमांड, दोनों तरीके काम करते हैं) | ट्रस्ट ब्रोकर को चालू वाई-फ़ाई नेटवर्क के बारे में जानकारी मिल सकती है | हां | हां | हां | हां |
प्रॉक्सी सेटिंग | ट्रस्ट ब्रोकर को मौजूदा डिफ़ॉल्ट एचटीटीपी के बारे में जानकारी मिल सकती है प्रॉक्सी सेटिंग. | हां | हां | हां | हां |
स्क्रीन लॉक की क्वालिटी की जांच करना | ट्रस्ट ब्रोकर यह पक्का कर सकता है कि किसी डिवाइस पर, एक तय क्वालिटी का स्क्रीन लॉक सेट हो ऐक्सेस देने से पहले कॉन्फ़िगर किया गया | हां | हां | हां | हां |
डेवलपर के लिए उपलब्ध विकल्प चालू हों | ट्रस्ट ब्रोकर, किसी डिवाइस की पहचान ऐसे डिवाइस के तौर पर कर सकता है जिस पर बड़ा हमला हुआ है डेवलपर के लिए सेटिंग और टूल चालू होने पर दिखता है | हां | हां | हां | हां |
क्या डीएनएस ओवर टीएलएस चालू है | ट्रस्ट ब्रोकर इसका इस्तेमाल यह पक्का करने के लिए कर सकता है कि निजी डीएनएस मोड चालू है | हां | हां | हां | हां |
SafetyNet सुरक्षित ब्राउज़िंग | ट्रस्ट ब्रोकर यह तय कर सकता है कि Google ने किसी यूआरएल को, खतरे के तौर पर मार्क किया है या नहीं. | हां | हां | हां | हां |
बाहरी मीडिया माउंट किया गया | बाहरी स्टोरेज माउंट किए जाने पर, ट्रस्ट ब्रोकर को इसकी सूचना दी जा सकती है | हां | हां | हां | हां |
UsageStatsManager | ट्रस्ट ब्रोकर, अलग-अलग ऐप्लिकेशन के इस्तेमाल के पैटर्न को समझ सकता है | हां | हां | हां | हां1 |
सुरक्षा लॉगिंग | ट्रस्ट ब्रोकर, अपने कॉन्टेक्स्टुअल इंजन के हिस्से के तौर पर इस डेटा का फ़ायदा उठा सकता है, ताकि वह नीति का पालन करने की पुष्टि कर सके और उपयोगकर्ता के व्यवहार के आधार पर फ़िंगरप्रिंट बना सके | हां | हां2 | हां2 | लागू नहीं |
नेटवर्क लॉगिंग | ट्रस्ट ब्रोकर, अपने कॉन्टेक्स्टुअल इंजन के हिस्से के तौर पर इस डेटा का फ़ायदा उठा सकता है, ताकि वह नीति का पालन करने की पुष्टि कर सके और उपयोगकर्ता के व्यवहार के आधार पर फ़िंगरप्रिंट बना सके | हां | हां2 | हां2 | लागू नहीं |
NetworkStatsManager | ट्रस्ट ब्रोकर, किसी तय समयावधि के अंदर ऐप्लिकेशन के नेटवर्क इस्तेमाल के बारे में क्वेरी कर सकता है | हां | हां | हां2 | हां1 |
पैकेज किसको दिखे (डिवाइस पर मौजूद सभी ऐप्लिकेशन की सूची बनाएं) | ट्रस्ट ब्रोकर क्वेरी कर सकता है कि डिवाइस पर कौनसे ऐप्लिकेशन इंस्टॉल हैं | हां | हां3 | हां3 | हां |
फ़ोन की स्थिति पढ़ें | ट्रस्ट ब्रोकर को मोबाइल नेटवर्क की जानकारी मिल सकती है. साथ ही, उसे मौजूदा स्थिति की जानकारी भी मिल सकती है कॉल और PhoneAccount की सूची डिवाइस पर रजिस्टर है | हां | हां | हां | हां |
डिवाइस को पिछली बार कब फिर से चालू किया गया था | ट्रस्ट ब्रोकर को सिस्टम के अपटाइम की जानकारी मिल सकती है | हां | हां | हां | हां |
खाते पाना | ट्रस्ट ब्रोकर इसका इस्तेमाल करके, खाता सेवा | हां | हां3 | हां3 | हां1 |
बैटरी लेवल में होने वाले अहम बदलावों पर नज़र रखना | ट्रस्ट ब्रोकर, बैटरी लेवल में होने वाले ज़रूरी बदलावों पर नज़र रख सकता है | हां | हां | हां | हां |
जगह की जानकारी (फ़ाइन, अनुमानित वगैरह...) | ट्रस्ट ब्रोकर, डिवाइस की जगह की जानकारी ऐक्सेस कर सकता है | हां | हां | हां1 | हां1 |
1 उपयोगकर्ता की सहमति लेकर
2 सिर्फ़ वर्क प्रोफ़ाइल
3 वर्क प्रोफ़ाइल की जानकारी तक सीमित ऐक्सेस
मेनलाइन वर्शन वापस पाना
ट्रस्ट ब्रोकर, com.google.android.modulemetadata
मॉड्यूल के लिए PackageInfo को ऐक्सेस कर सकता है और वहां से versionName
को वापस पा सकता है:
private fun mainlineVersion(context: Context): String? {
val moduleProvider = "com.google.android.modulemetadata"
return try {
val pm = context.packageManager
val packageInfo = pm.getPackageInfo(moduleProvider, 0)
packageInfo.versionName
} catch (e: PackageManager.NameNotFoundException) {
null
}
}
दिखाई गई स्ट्रिंग को Date
ऑब्जेक्ट में पार्स करने के लिए, इनका इस्तेमाल करें:
SimpleDateFormat
क्लास:
private val VERSION_NAME_DATE_PATTERNS = Arrays.asList(
"yyyy-MM-dd",
"yyyy-MM"
)
private fun parseDateFromVersionName(text: String): Date? {
for (pattern in VERSION_NAME_DATE_PATTERNS) {
try {
val simpleDateFormat = SimpleDateFormat(
pattern,
Locale.getDefault()
)
simpleDateFormat.timeZone = TimeZone.getDefault()
return simpleDateFormat.parse(text)
} catch (e: ParseException) {
// ignore and try next pattern
}
}
return null
}
याद रखें कि Android 11 और इसके बाद के वर्शन के लिए, आपको क्वेरी का एलान वाला फ़ॉर्म जोड़ना होगा
आपको AndroidManifest.xml
फ़ाइल, Android के पैकेज की जानकारी के मुताबिक होनी चाहिए:
<manifest package="com.example.game"> <queries> <package android:name="com.google.android.modulemetadata" /> </queries> ... </manifest>
प्रबंधन स्थिति फिर से पाएं
ट्रस्ट ब्रोकर इन तरीकों का इस्तेमाल करके पुष्टि कर सकता है कि कोई डिवाइस मैनेजमेंट मोड में है या नहीं. साथ ही, यह भी पुष्टि की जा सकती है कि कौनसा मैनेजमेंट मोड चालू है.
डिवाइस मैनेजमेंट की सुविधा देखना
getActiveAdmins() का इस्तेमाल करके देखें कि डिवाइस प्रबंधन में है या नहीं. अगर यह
तरीका, null
दिखाता है कि डिवाइस मैनेज नहीं किया जा रहा है.
पूरी तरह से मैनेज किए जा रहे डिवाइस देखें
isDeviceOwnerApp()
का इस्तेमाल करके देखें कि डिवाइस को पूरी तरह से मैनेज किया गया है या नहीं.
कंपनी के मालिकाना हक वाले डिवाइस पर वर्क प्रोफ़ाइल की जांच करना
isOrganizationOwnedDeviceWithManagedProfile()
का इस्तेमाल करके देखें कि कोई डिवाइस है या नहीं
कॉर्पोरेट मालिकाना हक वाले डिवाइसों के लिए, वर्क प्रोफ़ाइल मैनेजमेंट मोड का इस्तेमाल किया जा रहा हो
निजी तौर पर इस्तेमाल किए जाने वाले डिवाइस पर वर्क प्रोफ़ाइल की जांच करना
isProfileOwnerApp()
का इस्तेमाल करके देखें कि कोई ऐप्लिकेशन, वर्क प्रोफ़ाइल में चल रहा है या नहीं. साथ ही, पुष्टि करें कि isOrganizationOwnedDeviceWithManagedProfile()
से false
दिखे.