Trusty هو نظام تشغيل آمن يقدّم بيئة تنفيذ موثوقة لنظام التشغيل Android. يعمل نظام التشغيل Trusty على المعالج نفسه المستخدَم في نظام التشغيل Android، ولكن يتم عزل Trusty عن بقية النظام باستخدام الأجهزة والبرامج. يتم تشغيل Trusty وAndroid بالتوازي مع بعضهما. يمكن لـ "الجهاز الموثوق به" الوصول إلى الإمكانات الكاملة لمعالج الجهاز الرئيسي وذاكرته، ولكنه معزول تمامًا. تحمي ميزة العزل في Trusty الجهاز من التطبيقات الضارة التي ثبَّتها المستخدم والثغرات المحتملة التي قد يتم اكتشافها في Android.
يتوافق Trusty مع معالجات ARM وIntel. على أنظمة ARM، يستخدم Trusty Trustzone™ من ARM لعمل محاكاة للمعالج الرئيسي وإنشاء بيئة تنفيذ موثوقة وآمنة. يتوفّر أيضًا دعم مماثل على منصات Intel x86 باستخدام تقنية Intel Virtualization.

الشكل 1: مخطّط بياني إجمالي عن برنامج "موثوق"
يتألف Trusty من:
- نواة نظام تشغيل صغيرة مشتقة من Little Kernel
- برنامج تشغيل لنظام التشغيل Linux kernel لنقل البيانات بين البيئة الآمنة ونظام التشغيل Android
- مكتبة مساحة المستخدم في Android للتواصل مع التطبيقات الموثوق بها (أي المهام/الخدمات الآمنة) من خلال برنامج تشغيل kernel
ملاحظة: تخضع واجهة برمجة التطبيقات Trusty API وTrusty للتغيير. للحصول على معلومات عن Trusty API، يُرجى الاطّلاع على مرجع واجهة برمجة التطبيقات.
لماذا Trusty؟
يتم عادةً توفير أنظمة التشغيل الأخرى لبيئة التشغيل الآمنة كوحدات بيانات ثنائية من قِبل مورّدين خارجيين أو يتم تطويرها داخليًا. يمكن أن يكون تطوير أنظمة TEE الداخلية أو ترخيص TEE من جهة خارجية مكلفًا لمورّدي المنظومة على الرقاقة (SoC) والمصنّعين الأصليين للأجهزة. تؤدي التكلفة المالية إلى جانب الأنظمة التابعة لجهات خارجية غير الموثوق بها إلى إنشاء منظومة متكاملة غير مستقرة لنظام التشغيل Android. يتم توفير Trusty لشركائها كبديل موثوق ومفتوح المصدر ومجاني لـ "بيئة التنفيذ الموثوق به" . يوفّر Trusty مستوى من الشفافية لا يمكن تحقيقه باستخدام الأنظمة ذات المصدر المغلق.
يتوافق Android مع تطبيقات TEE المختلفة، لذا لا يقتصر استخدامك على Trusty. ولكل نظام تشغيل TEE طريقة فريدة في نشر التطبيقات الموثوق بها. يمكن أن يشكّل هذا التجزئة مشكلة لمطوّري التطبيقات الموثوق بهم الذين يحاولون ضمان عمل تطبيقاتهم على كل أجهزة Android. يساعد استخدام Trusty كمعيار مطوّري التطبيقات على إنشاء التطبيقات ونشرها بسهولة بدون مراعاة لتشتت أنظمة TEE المتعددة. يوفّر Trusty TEE للمطوّرين والشركاء الشفافية وإمكانية التعاون وفحص التعليمات البرمجية وسهولة تصحيح الأخطاء. يمكن لمطوّري التطبيقات الموثوق بهم الاستفادة من الأدوات وواجهات برمجة التطبيقات المشترَكة لخفض مخاطر ظهور ثغرات أمنية. سيتأكّد هؤلاء المطوّرون من أنّه بإمكانهم تطوير تطبيق وإعادة استخدامه على أجهزة متعددة بدون الحاجة إلى تطويره بشكل إضافي.
التطبيقات والخدمات
يتم تعريف التطبيق الموثوق به على أنّه مجموعة من الملفات الثنائية (الملفات القابلة للتنفيذ وملفات الموارد) وبيان ثنائي وعلامة cryptographic signature (توقيع تشفير). أثناء التشغيل، يتم تشغيل تطبيقات Trusty كعمليات معزولة في الوضع غير المفوَّض ضمن نواة Trusty. يتم تشغيل كل عملية في مساحة محايدة للذاكرة الافتراضية الخاصة بها باستخدام إمكانات وحدة إدارة الذاكرة في معالج TEE. يغيّر الإصدار من الجهاز العملية الدقيقة التي يتّبعها Trusty، ولكن على سبيل المثال، تحدّد النواة جدولة هذه العمليات باستخدام جدولة دوارة تستند إلى الأولوية ويتم تشغيلها بواسطة علامة توقيت آمنة. تشترك جميع التطبيقات الموثوق بها في الأولوية نفسها.

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