إشارات الثقة المعدومة

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

الميزة الوصف الأجهزة المُدارة بالكامل الملف الشخصي للعمل على الأجهزة التي تملكها الشركة الملف الشخصي للعمل على الأجهزة الشخصية (جلب الجهاز الشخصي) الأجهزة غير المُدارة
Play Integrity API يمكن للوسيط الموثوق استرداد الإشارات التالية:
  • سلامة الجهاز
  • سلامة التطبيق
  • تفاصيل ترخيص Play
  • تفاصيل البيئة، بما في ذلك بيان "Play للحماية" الجديد
  • نعم نعم نعم نعم
    مصادقة الأجهزة / المصادقة على المفتاح بشكل آمن يمكن للوسيط الموثوق به التحقق من إنشاء بيانات اعتماد PKI وتخزينها في أجهزة آمنة. نعم نعم نعم نعم
    مصادقة خصائص الجهاز كجزء من المصادقة الرئيسية، يمكن تضمين خصائص الجهاز كجزء من سجلّ المصادقة نعم نعم نعم نعم
    مستوى رمز تصحيح أمان الجهاز يمكن للوسيط الموثوق به التحقق من مستوى رمز تصحيح أمان نظام التشغيل. نعم نعم نعم نعم
    هل يحتوي الجهاز على بيانات عبر الهواء في انتظار المراجعة؟ يمكن للوسيط الموثوق به التحقُّق ممّا إذا كان هناك تحديث لنظام تشغيل الجهاز في انتظار المراجعة. نعم نعم نعم لا ينطبق
    مستوى رمز تصحيح الأمان الرئيسي يمكن للوسيط الموثوق به قراءة مستوى تصحيح الأمان لقطار الخط الرئيسي المثبت نعم نعم نعم نعم
    رقم التعريف المحدّد للتسجيل ويمكن للوسيط الموثوق به الوصول إلى معرّف جهاز فريد خاص بهذه المؤسسة. يبقى رقم التعريف هذا صالحًا عند إعادة إنشاء الملف الشخصي للعمل وإعادة ضبط الجهاز على الإعدادات الأصلية. نعم نعم نعم لا ينطبق
    حالة الإدارة (وإدارة التطبيق) يمكن للوسيط الموثوق به استخدام ذلك لتحديد ما إذا كان الجهاز مُدارًا. نعم نعم نعم لا ينطبق
    تشفير القرص يمكن للوسيط الموثوق به التحقق مما إذا كان الجهاز مشفرًا (إذا لزم الأمر دعم Android 8) نعم نعم نعم نعم
    إصدار نظام التشغيل يمكن للوسيط الموثوق به التحقق من إصدار نظام تشغيل الجهاز والتأكد من أنه يتجاوز إصدارًا معينًا نعم نعم نعم نعم
    الوصول إلى حالة الشبكة (حالة الشبكة وحالة شبكة Wi-Fi) يمكن للوسيط الموثوق به الحصول على معلومات حول حالة الشبكة النشطة (شبكة الجوّال وشبكة WiFi) نعم نعم نعم نعم
    الوصول إلى حالة شبكة Wi-Fi (يتوافق نظام التشغيل Android 11 والإصدارات الأقدم وAndroid 12 والإصدارات الأحدث مع أسلوب معاودة الاتصال أو عند الطلب) يمكن للوسيط الموثوق به الحصول على معلومات حول شبكة Wi-Fi النشطة. نعم نعم نعم نعم
    إعدادات الخادم الوكيل يمكن للوسيط الموثوق به الحصول على معلومات حول الإعدادات الافتراضية الحالية لخادم وكيل HTTP. نعم نعم نعم نعم
    التحقّق من جودة قفل الشاشة يمكن للوسيط الموثوق به ضمان تهيئة قفل شاشة بجودة معينة على الجهاز قبل منح إمكانية الوصول نعم نعم نعم نعم
    تفعيل خيارات المطوّرين يمكن للوسيط الموثوق به تحديد تعرّض الجهاز لهجوم أوسع عند تفعيل خيارات المطوّرين. نعم نعم نعم نعم
    هل تم تفعيل نظام أسماء النطاقات عبر بروتوكول أمان طبقة النقل (TLS) ويمكن لأي وسيط موثوق به الاستفادة من هذا الأمر لضمان تفعيل وضع "نظام أسماء النطاقات الخاص" نعم نعم نعم نعم
    SafeNet التصفّح الآمن يمكن للوسيط الموثوق به تحديد ما إذا كان Google قد صنّف عنوان URL معيّنًا على أنّه تهديد معروف. نعم نعم نعم نعم
    التثبيت على الوسائط الخارجية يمكن إبلاغ وسيط موثوق به عند تثبيت وحدة تخزين خارجية. نعم نعم نعم نعم
    UsageStatsManager يمكن للوسيط الموثوق به دراسة أنماط استخدام التطبيقات الفردية. نعم نعم نعم نعم1
    تسجيل الأمان ويمكن للوسيط الموثوق فيه الاستفادة من هذه البيانات كجزء من المحرك السياقي لضمان الامتثال وإنشاء بصمة رقمية تستند إلى السلوك نعم نعم2 نعم2 لا ينطبق
    تسجيل الشبكة ويمكن للوسيط الموثوق فيه الاستفادة من هذه البيانات كجزء من المحرك السياقي لضمان الامتثال وإنشاء بصمة رقمية تستند إلى السلوك نعم نعم2 نعم2 لا ينطبق
    NetworkStatsManager يمكن للوسيط الموثوق به الاستعلام عن استخدام الشبكة للتطبيق خلال فاصل زمني معين. نعم نعم نعم2 نعم1
    مستوى رؤية الحزمة (إدراج جميع التطبيقات على الجهاز) يمكن للوسيط الموثوق به الاستعلام عن التطبيقات التي تم تثبيتها على الجهاز. نعم نعم3 نعم3 نعم
    قراءة حالة الهاتف يمكن للوسيط الموثوق به الحصول على معلومات شبكة الجوّال وحالة أي مكالمات جارية وقائمة PhoneAccount تم تسجيلها على الجهاز. نعم نعم نعم نعم
    آخر مرة تمت فيها إعادة تشغيل الجهاز يمكن للوسيط الموثوق به الحصول على مدة تشغيل النظام. نعم نعم نعم نعم
    الحصول على حسابات يمكن للوسيط الموثوق به الاستفادة من هذا الأمر للوصول إلى قائمة الحسابات في "خدمة الحسابات". نعم نعم3 نعم3 نعم1
    مراقبة التغييرات الكبيرة في مستوى البطارية يمكن للوسيط الموثوق به مراقبة التغييرات المهمة في مستوى البطارية نعم نعم نعم نعم
    الموقع الجغرافي (جودة عالية أو تقريبية أو غير ذلك...) يمكن للوسيط الموثوق به الوصول إلى الموقع الجغرافي للجهاز. نعم نعم نعم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
    }
    

    تذكَّر أنّه يجب إضافة بيان طلب بحث في ملف AndroidManifest.xml لنظام التشغيل Android 11 والإصدارات الأحدث منه، وذلك لتلبية إذن الوصول إلى حزمة Android:

    <manifest package="com.example.game">
        <queries>
            <package android:name="com.google.android.modulemetadata" />
        </queries>
        ...
    </manifest>
    

    يمكن للوسيط الموثوق به استخدام هذه الطرق للتحقق مما إذا كان الجهاز في وضع الإدارة ومن وضع الإدارة النشط.

    التحقّق من إدارة الأجهزة

    استخدِم getActiveAdmins() للتحقق مما إذا كان الجهاز خاضعًا للإدارة. إذا كانت هذه الطريقة تعرض الخطأ null، يعني ذلك أنّ الجهاز غير مُدار.

    البحث عن جهاز مُدار بالكامل

    يمكنك استخدام isDeviceOwnerApp() لمعرفة ما إذا كان الجهاز مُدارًا بالكامل.

    التحقُّق من توفُّر ملف شخصي للعمل على جهاز تملكه الشركة

    استخدِم isOrganizationOwnedDeviceWithManagedProfile() للتحقّق مما إذا كان الجهاز يستخدم وضع إدارة الملف الشخصي للعمل للأجهزة التي تملكها الشركة.

    التحقُّق من توفُّر ملف شخصي للعمل على جهاز تملكه أنت

    استخدِم isProfileOwnerApp() للتحقق مما إذا كان الجهاز يتضمن ملفًا شخصيًا للعمل وتحقَّق من أن isOrganizationOwnedDeviceWithManagedProfile() يعرض false.