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

يحتوي هذا المستند على حالات الاستخدام الشائعة لـ AVF.

تجميع معزول

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

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

تجميع معزول

الشكل 1. تجميع ملفات JAR على تحديثات الخط الرئيسي

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

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

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

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

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

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

يتم التحقق من سلامة ملف الإدخال/الإخراج بواسطة VM، مع الملفات المخزنة على Android كخادم ملفات غير موثوق به، على النحو التالي:

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