حالات الاستخدام

يتضمّن هذا المستند حالات استخدام شائعة لملفات AVF.

فيديو مجمّع معزول

يوفر الجهاز الافتراضي المحمي بيئة آمنة كمكان آمن للبرامج تجميع التعليمات البرمجية الحساسة للأمان. تتيح هذه البيئة نقل التجميع من bootclasspath وملفات JAR لخادم النظام (يتم تشغيلها من خلال تحديث APEX) من التشغيل المبكر قبل إعادة التشغيل، ويقلل بشكل كبير من بعد APEX وتحديث وقت التشغيل.

يتم التنفيذ في com.android.compos APEX. هذا المكون اختياري ويمكن تضمينه باستخدام makefile.

فيديو مجمّع معزول

الشكل 1. تجميع ملفات JAR على تحديثات Mainline

والهدف الأمني هو تجميع المدخلات التي تم التحقق منها وتقديم المخرجات بمعزل عن غيرها لا يمكن لنظام Android كبرنامج غير موثوق به تغيير طريقة التجميع. بأي طريقة بخلاف التسبب في إخفاقه (عند إعادة تشغيل Android إلى تجميع الوقت).

تنشئ خدمة التجميع في الجهاز الافتراضي توقيعًا فقط في حال عدم توفّر أثناء التحويل البرمجي بأكمله. يمكن لنظام Android استرداد المفتاح العام من على جهاز افتراضي (VM) للتحقّق من التوقيع.

يتم إنشاء مفتاح الجهاز الافتراضي من ملف DICE الخاص بالجهاز الافتراضي، والذي تحدّده ملفات APEX. وحِزم APK المثبَّتة على الجهاز الافتراضي، بالإضافة إلى مَعلمات الجهاز الافتراضي الأخرى، مثل وقابلية تصحيح الأخطاء.

لتحديد ما إذا كان المفتاح العام ليس من جهاز افتراضي (VM) غير متوقّع، يتم تشغيل Android الجهاز الافتراضي (VM) لتحديد ما إذا كان المفتاح صحيحًا. يتم تشغيل الجهاز الافتراضي (VM) في وقت مبكر. بعد كل تحديث لحزمة APEX.

من خلال ميزة "التشغيل المتحقّق منه" في Protected VM، لا يتم تشغيل خدمة التجميع إلا إذا تم التحقّق منها الرمز. وبالتالي، يمكن أن يقرّر الرمز عدم قبول سوى الإدخالات التي تفي بشروط معينة، على سبيل المثال، قبول ملف إدخال فقط بحيث يكون اسمه تم تحديد ملخّص fs-verity في القائمة المسموح بها.

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

يتحقّق الجهاز الافتراضي من سلامة ملفات الإدخال/الإخراج، ويشتمِل على الملفات المُخزَّنة على Android كخادم ملفات غير موثوق به، على النحو التالي:

  • يجب التحقق من محتوى ملف الإدخال قبل الاستخدام باستخدام خوارزمية fs-verity. ليصبح ملف الإدخال متاحًا في الجهاز الافتراضي، يجب توفير تجزئة الجذر في حاوية (APK) تساهم في ملف DICE الخاص بالجهاز الافتراضي باستخدام تجزئة الجذر الموثوق بها، لا يمكن للمهاجم التلاعب مع المُدخل بدون أن يتم رصدها.
  • يجب الحفاظ على سلامة ملف الإخراج في الجهاز الافتراضي. حتى إذا يتم تخزين ملف المخرجات على Android، أثناء عملية الإنشاء، يعرض سلامة يتم الحفاظ على تنسيق شجرة fs-verity نفسه، ولكن يمكن ضبطه ديناميكيًا تحديث. يمكن تحديد ملف الإخراج النهائي بتجزئة الجذر، المعزولة في الجهاز الافتراضي (VM). تحمي الخدمة في الجهاز الافتراضي المخرجات الملفات عن طريق التوقيع.