بيئة تنفيذ موثوقة (TEE) من Trusty

‫Trusty هو نظام تشغيل آمن يوفّر بيئة تنفيذ موثوقة (TEE) لنظام Android. يعمل نظام التشغيل Trusty على المعالج نفسه الذي يعمل عليه نظام التشغيل Android، ولكن يتم عزل Trusty عن بقية النظام من خلال كل من الأجهزة والبرامج. يعمل Trusty وAndroid بشكل متوازٍ. يمكن لـ Trusty الاستفادة من كامل طاقة المعالج الرئيسي وذاكرة الجهاز، ولكنّه معزول تمامًا. وتحمي ميزة العزل في Trusty النظام من التطبيقات الضارة التي يثبّتها المستخدم ومن الثغرات الأمنية المحتملة في Android.

يتوافق Trusty مع معالجات ARM وIntel. على أنظمة ARM، يستخدم Trusty تقنية TrustZone من ARM لمحاكاة المعالج الرئيسي وإنشاء بيئة تنفيذ موثوقة وآمنة. تتوفّر إمكانية مماثلة أيضًا على منصات Intel x86 باستخدام تكنولوجيا المحاكاة الافتراضية من Intel.

مخطّط نظرة عامة على Trusty

الشكل 1: مخطّط نظرة عامة على Trusty

يتألف Trusty ممّا يلي:

  • نواة نظام تشغيل صغيرة مشتقة من Little Kernel
  • برنامج تشغيل لنواة Linux لنقل البيانات بين البيئة الآمنة ونظام Android
  • هي مكتبة مساحة مستخدمي Android للتواصل مع التطبيقات الموثوق بها (أي المهام والخدمات الآمنة) من خلال برنامج تشغيل النواة

ملاحظة: قد تتغيّر Trusty وواجهة برمجة التطبيقات Trusty API. للحصول على معلومات حول Trusty API، يُرجى الاطّلاع على مرجع Trusty API.

مزايا Trusty

يتم عادةً توفير أنظمة تشغيل بيئات التنفيذ الموثوقة الأخرى على شكل حزم ثنائية كبيرة من قِبل مورّدين خارجيين أو يتم تطويرها داخليًا. قد يكون تطوير أنظمة TEE داخلية أو ترخيص TEE من جهة خارجية مكلفًا لمورّدي المنظومة على الرقاقة (SoC) ومصنّعي المعدات الأصلية (OEM). ويؤدي الجمع بين التكلفة النقدية والأنظمة الخارجية غير الموثوق بها إلى إنشاء منظومة غير مستقرة لنظام التشغيل Android. يتم توفير Trusty للشركاء كبديل موثوق ومجاني ومفتوح المصدر لبيئة التنفيذ الموثوقة (TEE). يوفّر Trusty مستوى من الشفافية لا يمكن تحقيقه باستخدام الأنظمة المغلقة المصدر.

يتيح نظام التشغيل Android استخدام طرق مختلفة لتنفيذ بيئة التنفيذ الموثوقة (TEE)، لذا لا يقتصر الأمر على استخدام Trusty. يوفّر كل نظام تشغيل TEE طريقة فريدة لنشر التطبيقات الموثوق بها. ويمكن أن يشكّل هذا التجزؤ مشكلة لمطوّري التطبيقات الموثوق بها الذين يسعون إلى ضمان عمل تطبيقاتهم على كل أجهزة Android. يساعد استخدام Trusty كمعيار مطوّري التطبيقات في إنشاء التطبيقات ونشرها بدون الحاجة إلى مراعاة تجزئة أنظمة TEE المتعددة. توفّر بيئة التنفيذ الموثوقة Trusty TEE للمطوّرين والشركاء الشفافية والتعاون وإمكانية فحص الرموز البرمجية وتصحيح الأخطاء بسهولة. يمكن لمطوّري التطبيقات الموثوق بها استخدام أدوات وواجهات برمجة تطبيقات مشتركة للحدّ من مخاطر إدخال ثغرات أمنية. ويثق هؤلاء المطوّرون في قدرتهم على تطوير تطبيق وإعادة استخدامه على أجهزة متعددة بدون الحاجة إلى تطويره بشكل إضافي.

التطبيقات والخدمات

تطبيق Trusty هو مجموعة من الملفات الثنائية (ملفات قابلة للتنفيذ وملفات موارد) وبيان ثنائي وتوقيع تشفير. أثناء التشغيل، تعمل تطبيقات Trusty كعمليات معزولة في وضع غير مميّز ضمن نواة Trusty. يتم تشغيل كل عملية في مساحة معزولة خاصة بها في الذاكرة الافتراضية باستخدام إمكانات وحدة إدارة الذاكرة في معالج TEE. يؤدي إصدار الجهاز إلى تغيير العملية الدقيقة التي يتّبعها Trusty، ولكن على سبيل المثال، يجدول النواة هذه العمليات باستخدام أداة جدولة مستندة إلى الأولوية بالتناوب، ويتم تشغيلها من خلال مؤقت آمن. تتشارك جميع تطبيقات Trusty درجة الأولوية نفسها.

نظرة عامة على تطبيق Trusty

الشكل 2: نظرة عامة على تطبيق Trusty

تطبيقات Trusty التابعة لجهات خارجية

يتم تطوير جميع تطبيقات Trusty من قِبل جهة واحدة وتعبئتها مع صورة نواة Trusty. يتم توقيع الصورة بأكملها والتحقّق منها بواسطة برنامج الإقلاع أثناء عملية التشغيل. لا يتيح Trusty تطوير تطبيقات تابعة لجهات خارجية. على الرغم من أنّ Trusty يتيح تطوير تطبيقات جديدة، يجب توخّي الحذر الشديد عند إجراء ذلك، لأنّ كل تطبيق جديد يزيد من مساحة قاعدة الحوسبة الموثوقة (TCB) للنظام. يمكن للتطبيقات الموثوق بها الوصول إلى أسرار الجهاز وإجراء عمليات حسابية أو تحويلات بيانات باستخدامها. تتيح إمكانية تطوير تطبيقات جديدة تعمل في بيئة التنفيذ الموثوقة العديد من فرص الابتكار. ومع ذلك، وبسبب التعريف الدقيق لبيئة التنفيذ الموثوقة، لا يمكن توزيع هذه التطبيقات بدون توفّر شكل من أشكال الثقة. ويكون ذلك في شكل توقيع رقمي صادر عن جهة يثق بها مستخدم المنتج الذي يتم تشغيل التطبيق عليه.

الاستخدامات والأمثلة

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

في الأجهزة التي تتضمّن تنفيذًا لبيئة التنفيذ الموثوقة (TEE)، يُشار غالبًا إلى المعالج الرئيسي على أنّه *غير موثوق به*، ما يعني أنّه لا يمكنه الوصول إلى مناطق معيّنة من ذاكرة الوصول العشوائي (RAM) ومسجّلات الأجهزة والصمامات التي يمكن الكتابة إليها مرة واحدة والتي تخزّن الشركة المصنّعة فيها بيانات سرية (مثل مفاتيح التشفير الخاصة بالجهاز). يُفوِّض البرنامج الذي يتم تشغيله على المعالج الرئيسي أي عمليات تتطلّب استخدام بيانات سرية إلى معالج بيئة التنفيذ الموثوقة.

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

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