إشارات الوضع الأمني

يقدّم Android مجموعة متنوعة من إشارات الجهاز التي يمكن للمشرفين استخدامها لتحديد حالة الأمان للجهاز. في نموذج أمان "الثقة الكاملة"، يتم استخدام هذه الإشارات لتقييم ما إذا كان يجب السماح للجهاز بالوصول إلى معلومات الشركة.

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

    1 بعد الحصول على موافقة المستخدم

    2 الملف الشخصي للعمل فقط

    3 الوصول المحدود إلى معلومات الملف الشخصي للعمل

    يمكن لوسيط الثقة الوصول إلى 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.