موثوق TEE

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

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

الشكل 1 . مخطط نظرة عامة موثوق.

يتكون Trusty من:

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

ملاحظة: Trusty and Trusty API عرضة للتغيير. للحصول على معلومات حول Trusty API ، راجع مرجع API .

لماذا Trusty؟

يتم توفير أنظمة تشغيل TEE الأخرى بشكل تقليدي كنقاط ثنائية بواسطة موردي الجهات الخارجية أو يتم تطويرها داخليًا. قد يكون تطوير أنظمة TEE الداخلية أو ترخيص TEE من جهة خارجية مكلفًا لبائعي System-on-Chip (SoC) ومصنعي المعدات الأصلية. تخلق التكلفة المالية جنبًا إلى جنب مع أنظمة الجهات الخارجية غير الموثوق بها نظامًا بيئيًا غير مستقر لنظام Android. يتم توفير Trusty لشركائها كبديل موثوق ومجاني ومفتوح المصدر لبيئة التنفيذ الموثوقة الخاصة بهم. تقدم Trusty مستوى من الشفافية غير ممكن مع أنظمة المصدر المغلق.

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

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

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

الشكل 2 . نظرة عامة على التطبيق الموثوق به.

تطبيقات الطرف الثالث الموثوقة

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

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

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

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

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

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