Trusty هو نظام تشغيل آمن (OS) يوفر بيئة تنفيذ موثوقة (TEE) لنظام Android. يعمل نظام التشغيل Trusty على نفس المعالج الذي يستخدمه نظام التشغيل Android، ولكن يتم عزل Trusty عن بقية النظام بواسطة كل من الأجهزة والبرامج. يعمل Trusty وAndroid بالتوازي مع بعضهما البعض. يتمتع Trusty بإمكانية الوصول إلى الطاقة الكاملة للمعالج والذاكرة الرئيسيين للجهاز ولكنه معزول تمامًا. تعمل عزلة Trusty على حمايتها من التطبيقات الضارة التي قام المستخدم بتثبيتها ونقاط الضعف المحتملة التي قد يتم اكتشافها في Android.
Trusty متوافق مع معالجات ARM وIntel. في أنظمة ARM، تستخدم Trusty تقنية Trustzone™ من ARM لمحاكاة المعالج الرئيسي وإنشاء بيئة تنفيذ آمنة وموثوقة. يتوفر دعم مماثل أيضًا على منصات Intel x86 باستخدام تقنية المحاكاة الافتراضية من Intel.
الثقة تتكون من:
- نواة نظام تشغيل صغيرة مشتقة من Little Kernel
- برنامج تشغيل Linux kernel لنقل البيانات بين البيئة الآمنة وAndroid
- مكتبة مساحة مستخدم Android للتواصل مع التطبيقات الموثوقة (أي المهام/الخدمات الآمنة) عبر برنامج تشغيل kernel
ملحوظة: Trusty وTrusty API عرضة للتغيير. للحصول على معلومات حول Trusty API، راجع مرجع API .
لماذا موثوق؟
يتم توفير أنظمة تشغيل TEE الأخرى بشكل تقليدي على شكل نقاط ثنائية بواسطة بائعين خارجيين أو يتم تطويرها داخليًا. قد يكون تطوير أنظمة TEE الداخلية أو ترخيص TEE من جهة خارجية مكلفًا لموردي النظام على الرقاقة (SoC) ومصنعي المعدات الأصلية. التكلفة المالية جنبًا إلى جنب مع أنظمة الطرف الثالث غير الموثوقة تخلق نظامًا بيئيًا غير مستقر لنظام Android. يتم توفير Trusty لشركائها كبديل مفتوح المصدر وموثوق به ومجاني لبيئة التنفيذ الموثوقة الخاصة بهم. تقدم Trusty مستوى من الشفافية غير ممكن مع الأنظمة مغلقة المصدر.
يدعم Android العديد من تطبيقات TEE، لذلك لا تقتصر على استخدام Trusty. يتمتع كل نظام تشغيل TEE OS بطريقته الفريدة لنشر التطبيقات الموثوقة. يمكن أن يمثل هذا التجزئة مشكلة لمطوري التطبيقات الموثوقين الذين يحاولون التأكد من عمل تطبيقاتهم على كل جهاز يعمل بنظام Android. يساعد استخدام Trusty كمعيار مطوري التطبيقات على إنشاء التطبيقات ونشرها بسهولة دون مراعاة تجزئة أنظمة TEE المتعددة. يوفر Trusty TEE للمطورين والشركاء الشفافية والتعاون وإمكانية فحص التعليمات البرمجية وسهولة تصحيح الأخطاء. يمكن لمطوري التطبيقات الموثوقين الالتقاء حول الأدوات وواجهات برمجة التطبيقات الشائعة لتقليل مخاطر إدخال ثغرات أمنية. سيكون لدى هؤلاء المطورين الثقة في قدرتهم على تطوير تطبيق وإعادة استخدامه عبر أجهزة متعددة دون مزيد من التطوير.
التطبيقات والخدمات
يتم تعريف التطبيق الموثوق على أنه مجموعة من الملفات الثنائية (الملفات التنفيذية وملفات الموارد)، والبيان الثنائي، وتوقيع التشفير. في وقت التشغيل، تعمل التطبيقات الموثوقة كعمليات معزولة في وضع غير مميز ضمن Trusty kernel. يتم تشغيل كل عملية في صندوق الحماية للذاكرة الافتراضية الخاص بها باستخدام إمكانات وحدة إدارة الذاكرة الخاصة بمعالج TEE. يغير بناء الجهاز العملية الدقيقة التي تتبعها Trusty، ولكن على سبيل المثال، تقوم النواة بجدولة هذه العمليات باستخدام برنامج جدولة دائري قائم على الأولويات مدفوع بعلامة مؤقت آمنة. تشترك جميع التطبيقات الموثوقة في نفس الأولوية.
تطبيقات الطرف الثالث الموثوقة
حاليًا، يتم تطوير كافة تطبيقات Trusty بواسطة طرف واحد ويتم تعبئتها بصورة Trusty kernel. يتم توقيع الصورة بأكملها والتحقق منها بواسطة أداة تحميل التشغيل أثناء التمهيد. تطوير تطبيقات الطرف الثالث غير مدعوم في Trusty في الوقت الحالي. على الرغم من أن Trusty يتيح تطوير تطبيقات جديدة، إلا أنه يجب ممارسة ذلك بحذر شديد؛ يؤدي كل تطبيق جديد إلى زيادة مساحة قاعدة الحوسبة الموثوقة (TCB) للنظام. يمكن للتطبيقات الموثوقة الوصول إلى أسرار الجهاز ويمكنها إجراء عمليات حسابية أو تحويلات للبيانات باستخدامها. إن القدرة على تطوير تطبيقات جديدة تعمل في TEE تفتح العديد من الإمكانيات للابتكار. ومع ذلك، نظرًا لتعريف TEE ذاته، لا يمكن توزيع هذه التطبيقات دون إرفاق شكل من أشكال الثقة. عادةً ما يأتي ذلك في شكل توقيع رقمي من قبل كيان موثوق به من قبل مستخدم المنتج الذي يعمل عليه التطبيق.
الاستخدامات والأمثلة
أصبحت بيئات التنفيذ الموثوقة بسرعة معيارًا في الأجهزة المحمولة. يعتمد المستخدمون أكثر فأكثر على أجهزتهم المحمولة في حياتهم اليومية وتتزايد الحاجة إلى الأمان دائمًا. تعد الأجهزة المحمولة المزودة بـ TEE أكثر أمانًا من الأجهزة التي لا تحتوي على TEE.
في الأجهزة التي تحتوي على تطبيق TEE، غالبًا ما يُشار إلى المعالج الرئيسي على أنه "غير موثوق به"، مما يعني أنه لا يمكنه الوصول إلى مناطق معينة من ذاكرة الوصول العشوائي وسجلات الأجهزة وصمامات الكتابة مرة واحدة حيث تكون البيانات السرية (مثل مفاتيح التشفير الخاصة بالجهاز) المخزنة من قبل الشركة المصنعة. يقوم البرنامج الذي يعمل على المعالج الرئيسي بتفويض أي عمليات تتطلب استخدام البيانات السرية إلى معالج TEE.
المثال الأكثر شهرة على نطاق واسع في نظام Android البيئي هو إطار عمل إدارة الحقوق الرقمية (DRM) للمحتوى المحمي. يمكن للبرامج التي تعمل على معالج TEE الوصول إلى المفاتيح الخاصة بالجهاز المطلوبة لفك تشفير المحتوى المحمي. يرى المعالج الرئيسي المحتوى المشفر فقط، مما يوفر مستوى عالٍ من الأمان والحماية ضد الهجمات المستندة إلى البرامج.
هناك العديد من الاستخدامات الأخرى لـ TEE مثل الدفع عبر الهاتف المحمول، والخدمات المصرفية الآمنة، والمصادقة متعددة العوامل، وحماية إعادة ضبط الجهاز، والتخزين المستمر المحمي بإعادة التشغيل، ومعالجة رقم التعريف الشخصي وبصمات الأصابع الآمنة، وحتى اكتشاف البرامج الضارة.