يوفّر Android مجموعة متنوعة من إشارات الجهاز التي يمكن للمشرفين استخدامها لتحديد حالة الأمان للجهاز. في نموذج أمان انعدام الثقة، تُستخدَم هذه الإشارات لتقييم ما إذا كان يجب السماح للأجهزة بالوصول إلى ومعلومات الشركة.
الميزة | الوصف | الأجهزة المُدارة بالكامل | ملف العمل على الأجهزة المملوكة للشركة | ملف العمل على الأجهزة الشخصية (جلب الجهاز الشخصي) | الأجهزة غير المُدارة |
---|---|---|---|---|---|
Play Integrity API | يمكن لوسيط
الثقة استرداد الإشارات التالية:
|
نعم | نعم | نعم | نعم |
مصادقة توفُّر الجهاز / مفتاح التشفير | يمكن لوسيط الثقة التحقّق من أنّه تم إنشاء بيانات اعتماد البنية الأساسية للمفاتيح العامة (PKI) وتخزينها في جهاز آمن. | نعم | نعم | نعم | نعم |
Device Properties Attestation | كجزء من عملية إثبات ملكية المفتاح، يمكن تضمين سمات الجهاز كجزء من سجلّ إثبات الملكية. | نعم | نعم | نعم | نعم |
الجهاز مستوى رمز تصحيح الأمان | يمكن لوسيط الثقة التحقّق من مستوى رمز تصحيح أمان نظام التشغيل. | نعم | نعم | نعم | نعم |
هل الجهاز في انتظار التحديث عبر الهواء | يمكن للوسيط الثقة التحقّق ممّا إذا كان هناك تحديث لنظام تشغيل الجهاز في انتظار المراجعة. متوفرة | نعم | نعم | نعم | لا ينطبق |
مستوى رمز تصحيح الأمان في الإصدار الرئيسي | يمكن لوسيط الثقة قراءة مستوى تصحيح الأمان لسلسلة الإصدارات الأساسية المثبَّتة. | نعم | نعم | نعم | نعم |
التسجيل رقم تعريف محدّد | يمكن للوسيط الموثوق به الوصول إلى رقم تعريف جهاز فريد خاص بذلك. للمؤسسات. يبقى هذا المعرّف صالحًا عند إعادة إنشاء ملف العمل ومصنع الأجهزة. إعادة الضبط | نعم | نعم | نعم | لا ينطبق |
حالة الإدارة (وإدارة التطبيق) | يمكن لوسيط الثقة استخدام هذا الإجراء لتحديد ما إذا كان الجهاز مُدارًا. | نعم | نعم | نعم | لا ينطبق |
تشفير القرص | يمكن لوكيل Trust التحقّق مما إذا كان الجهاز مشفَّرًا (إذا كان مطلوبًا توفُّر Android 8) | نعم | نعم | نعم | نعم |
إصدار نظام التشغيل | يمكن لوسيط الثقة التحقّق من إصدار نظام التشغيل على الجهاز والتأكّد من أنّه أعلى مما هو مطلوب لإصدار معيّن. | نعم | نعم | نعم | نعم |
الوصول حالة الشبكة (حالة الشبكة وحالة شبكة Wi-Fi) | يمكن للوسيط الموثوق به الحصول على معلومات حول حالة الشبكة النشطة. (شبكة الجوّال وWi-Fi) | نعم | نعم | نعم | نعم |
الوصول إلى حالة شبكة Wi-Fi (Android 11 والإصدارات الأقدم، يتيح Android 12 والإصدارات الأحدث كلاً من الاستدعاء أو الطلب عند الحاجة) | يمكن لوسيط الثقة الحصول على معلومات عن شبكة Wi-Fi النشطة. | نعم | نعم | نعم | نعم |
إعدادات الخادم الوكيل | يمكن لوسيط Trust الحصول على معلومات عن إعدادات الخادم الوكيل التلقائية الحالية لبروتوكول HTTP . | نعم | نعم | نعم | نعم |
الشاشة التحقّق من جودة القفل | يمكن للوسيط المعتمد التأكد من ضبط قفل شاشة عالي الجودة للجهاز. تم إعداده قبل منح إذن الوصول | نعم | نعم | نعم | نعم |
خيارات المطوّرين مفعّلة | يمكن لوسيط الثقة تحديد جهاز على أنّه يمتلك سطح هجوم أوسع عند تفعيل خيارات المطوّر. | نعم | نعم | نعم | نعم |
هل تم تفعيل بروتوكول DNS عبر بروتوكول أمان طبقة النقل (TLS) | ويمكن للوسيط الائتماني الاستفادة من ذلك لضمان أن نظام أسماء النطاقات الخاص الوضع مفعّل | نعم | نعم | نعم | نعم |
SafetyNet التصفّح الآمن | يمكن للوسيط الثقة تحديد ما إذا كان قد تم اختراق عنوان URL صنفته Google كتهديد معروف. | نعم | نعم | نعم | نعم |
المصادر الخارجية تثبيت على الوسائط | يمكن إرسال إشعار إلى وسيط الثقة عند تثبيت وحدة تخزين خارجية | نعم | نعم | نعم | نعم |
UsageStatsManager | يمكن لوسيط الثقة دراسة أنماط استخدام تطبيقات معيّنة. | نعم | نعم | نعم | نعم1 |
تسجيل الأمان | ويمكن للوسيط الائتماني الاستفادة من هذه البيانات كجزء من سياقه لضمان الامتثال وإنشاء ملف مرجعي يستند إلى السلوك | نعم | نعم2 | نعم2 | لا ينطبق |
الشبكة التسجيل | يمكن لوسيط الثقة الاستفادة من هذه البيانات كجزء من المحرك السياقي لضمان الامتثال وإنشاء بصمة إصبع مستندة إلى السلوك. | نعم | نعم2 | نعم2 | لا ينطبق |
NetworkStatsManager | يمكن للوسطاء الموثوق بهم الاستعلام عن استخدام الشبكة للتطبيق خلال فترة زمنية معينة فترة | نعم | نعم | نعم2 | نعم1 |
إذن الوصول إلى الحزمة (عرض جميع التطبيقات على الجهاز) | يمكن للوسيط الموثوق به الاستعلام عن التطبيقات المثبّتة على الجهاز. | نعم | نعم3 | نعم3 | نعم |
قراءة حالة الهاتف | يمكن للوسيط الائتماني الحصول على معلومات عن شبكة الجوّال ومعرفة حالة أي انقطاع في الاتصال. والمكالمات، وقائمة PhoneAccount تم التسجيل على الجهاز | نعم | نعم | نعم | نعم |
تاريخ آخر إعادة تشغيل للجهاز | يمكن لوسيط Trust الحصول على وقت عمل النظام. | نعم | نعم | نعم | نعم |
الحصول على الحسابات | يمكن لوسيط الثقة الاستفادة من هذا الإذن للوصول إلى قائمة الحسابات في خدمة الحسابات. | نعم | نعم3 | نعم3 | نعم1 |
مراقبة التغيرات الكبيرة في مستوى البطارية | يمكن لوكيل الثقة رصد التغييرات الكبيرة في مستوى البطارية. | نعم | نعم | نعم | نعم |
الموقع الجغرافي (دقيق، تقريبي، وما إلى ذلك) | يمكن للوسيط المعتمد الوصول إلى الموقع الجغرافي للجهاز. | نعم | نعم | نعم1 | نعم1 |
1 بعد الحصول على موافقة المستخدم
2 الملف الشخصي للعمل فقط
3 حصر الوصول إلى معلومات ملف العمل
استرداد إصدار Mainline
يمكن للوسيط الائتماني الوصول إلى PackageInfo
com.google.android.modulemetadata
والاستفادة منها
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
.