ما هو الـ Secure Enclave المستخدم في أجهزة أبل؟

الـ Secure Enclave Processor (أو الـ SEP للاختصار) عبارة عن معالج مساعد (coprocessor) وظيفته هو توفير بيئة آمنة في الذاكرة العشوائية (RAM) للقيام بالعمليات التي تتطلب مستوى عالي من الأمان والخصوصية. هذه المساحة الآمنة تسمى بالـ Secure Enclave، وبإمكاننا اعتبارها كالصندوق الأسود داخل الذاكرة العشوائية (RAM)، لا يمكننا مشاهدة البيانات أو معرفة العمليات التي تحدث بداخله.

الكثير من خدمات أبل تستخدم الـ Secure Enclave للقيام بالعمليات الحساسة، مثل: تشفير الملفات و تنفيذ عمليات الشراء عبر Apple Pay و فتح الهاتف عن طريق الـ Face ID أو الـ Touch ID وغيرها الكثير من الخدمات التي تتطلب مستوى عالي من الأمان والتي قد يتم توفيرها لاحقا في أجهزة أبل.

ما الفرق بين Secure Enclave Processor و Secure Enclave؟

الـ Secure Enclave Processor عبارة عن معالج مساعد مثل معالجات أبل الأخرى (معالج الـ Neural Engine على سبيل المثال والخاص بعمليات الذكاء الصطناعي)، مما يعني بأن الـ SEP متواجد كجزء من الـ System on Chip (أو SoC) و هي عبارة عن مجموعة من المعالجات متواجدة داخل قطعة واحدة. يحتوي الـ SEP على مفتاحي تشفير يتم دمجهما مع المعالج أثناء عملية التصنيع، و هم Device’s Unique ID (أو UID) و Device Group ID (أو GID).

صورة من الـ Apple Silicon توضح وجود الـ Secure Enclave Processor. ملاحظة تم ازالة كلمة Processor في الصورة للاختصار وتسهيل القراءة. الصورة من أحد الفيديوهات المنشورة لأبل في مؤتمر المطورين WWDC20.
صورة من الـ Apple Silicon توضح وجود الـ Secure Enclave Processor. ملاحظة تم ازالة كلمة Processor في الصورة للاختصار وتسهيل القراءة. الصورة من أحد الفيديوهات المنشورة لأبل في مؤتمر المطورين WWDC20.

المفتاحان عبارة عن AES 256-bit و حسب جميع الادعاءات، لا يمكن لأي برنامج أو قطعة عتاد (hardware) استخراجهما أو حتى قراءتهما، وهذا الأمر يتضمن شركة أبل أيضًا. هذان المفتاحان مميزان لكل معالج (وبالتالي لكل جهاز)، بمعنى أن كل جهاز لديه مفتاحان خاصة به و مميزة عن غيره (مثل البصمة).

أما الـ Secure Enclave فهو عبارة عن مساحة آمنه في الذاكرة العشوائية (RAM) يتم تشفيرها واستخدامها من قبل الـ SEP للقيام بالعمليات بشكل آمن. هذه المساحة يتم تشفيرها من قبل الـ SEP بحيث لا يمكن لأي شخص أو برنامج مهما كانت صلاحياته، من الوصول إلى هذه المساحة وقراءة محتواها. بشكل أدق، لا يمكن لنظام التشغيل أو الـ Kernal أو الـ CPU (أو الـ Application Processor) من الوصول إلى البيانات المتواجدة بداخل الـ Secure Enclave أو قراءتها أو التعديل عليها، فجميع هذه العمليات تتم عن طريق الـ SEP.

رسم يوضح المساحة الآمنة (Secure Enclave) والتي لا يمكن لنظام التشغيل أو أي تطبيق من الوصول إليها.
ملاحظة: الرسم تقريبي للـ Secure Enclave ويفتقر للكثير من التفاصيل. الصورة من أحد الفيديوهات المنشورة لأبل في مؤتمر المطورين.
رسم يوضح المساحة الآمنة (Secure Enclave) والتي لا يمكن لنظام التشغيل أو أي تطبيق من الوصول إليها.
ملاحظة: الرسم تقريبي للـ Secure Enclave ويفتقر للكثير من التفاصيل. الصورة من أحد الفيديوهات المنشورة لأبل في مؤتمر المطورين.

باختصار الــ SEP هو المعالج المسؤول عن تشفير وإدارة مساحة أمنة في الذاكرة العشوائية، هذه المساحة الآمنة تسمى بالـ Secure Enclave. بعض المقالات المنتشرة على الإنترنت قد تخلط بين مسمى المعالج ومسمى المساحة الآمنة، والبعض يوحي لك بأن البيانات يتم تخزينها داخل المعالج نفسه، وهذا المفهوم خاطئ. سأقوم باستخدام مصطلح Enclave للدلالة على الـ Secure Enclave وهو مصطلح دارج أيضًا للاختصار وتسهيل القراءة.

كيف يتم إنشاء الـ Enclave في الذاكرة؟

عند تشغيل جهازك الذي يحتوي على الـ SEP، يتم إنشاء مفتاح مؤقت (بواسطة الـ Boot ROM المتواجد بداخل الـ SEP). هذا المفتاح يتم إنشاءه بشكل عشوائي باستخدام قطعة عتاد (Hardware) عبارة عن مولد أرقام عشوائية (Random Number Generator) متواجدة بداخل الـ SEP. المفتاح العشوائي يتم دمجه مع الـ UID واستخدام المفتاح الناتج لتشفير مساحة في الذاكرة العشوائية (RAM)، هذه المساحة المشفرة هي الـ Enclave.

ما هي الأجهزة التي تحتوي على الـ Secure Enclave Processor؟

باختصار، جميع الأجهزة التي تدعم الـ Touch ID أو الـ Face ID أو أجهزة الماك التي تحتوي على Touch Bar.

كيف تقوم أبل باستخدام الـ Enclave في خدماتها؟

الإجابة على هذا السؤال بشكل دقيقة وصحيح صعبة، لأن الموضوع يتطلب معرفة كافة الخدمات المقدمة من أبل وتفاصيلها التقنية الدقيقة جداً و تدفق البيانات ومعالجتها داخل الـ Enclave. بالإضافة لذلك، هنالك بعض المزايا التي تقدمها أبل للمستخدمين وتستخدم بها الـ Enclave ولكن دون علمهم. على سبيل المثال، جميع الملفات الحساسة والخاصة بالمستخدم يتم تشفيرها على جهاز المستخدم باستخدام الـ Enclave. عملية تشفير الملفات وتقسيم الملفات وإدارة مفاتيح التشفير وغيرها من التفاصيل الدقيقة تحتاج لقراءة مطولة. يمكنك الرجوع إلى قسم Encryption and Data Protection في مستند أبل Apple Platform Security لمعرفة التفاصيل. ستجد رابط بأسفل الصفحة لتحميل أحدث نسخة من مستند الـ PDF.

رسم مبسط لكيفية تشفير وفك تشفير الملفات بداخل الـ  Enclave. الصورة من أحد مستندات أبل الخاصة بالـ iOS Security.
رسم مبسط لكيفية تشفير وفك تشفير الملفات بداخل الـ Enclave. الصورة من أحد مستندات أبل الخاصة بالـ iOS Security.

بعض الخدمات التي تقوم أبل باستخدام الـ Enclave بها هي:

  • Face ID
  • Touch ID
  • Apple Pay
  • Keychain
  • تشفير البيانات والملفات
  • إدارة مفاتيح التشفير
  • وغيرها من الخدمات التي لا أعلم عنها والتي قد يتم أضافتها مستقبلاً

سأذكر بإيجاز طريقة عمل الـ Face ID لغرض فتح القفل عن الهاتف، بالرغم من أن التفاصيل التقنية غير واضحة لدي (حتى بعد مراجعة مستندات أبل أكثر من مرة وقراءة أكثر من مصدر).

شعار الـ Face ID الخاص بأبل

أول خطوة يقوم بها الجوال عند رغبتك في فتح القفل عن طريق الـ Face ID هو معرفة إذا كنت تنظر باتجاه الجوال أو لا، وإذا كانت عيناك مفتوحتين أم مغلقتان. الغرض من هذه الخطوة هي معرفة إذا ما كنت تنظر إلى الجوال بانتباه بغرض فتحه القفل (أو الدفع، أو أي خدمة تتطلب الـ Face ID)، أو لا.

إذا كان انتباهك موجها للجوال، ستتم قراءة بيانات وجهك عن طريق إسقاط ٣٠ ألف نقطة بالأشعة تحت الحمراء (IR)، بغرض معرفة أبعاد الوجه بالإضافة إلى جمع بيانات ثنائية الأبعاد باستخدام الـ IR. طريقة إسقاط نقاط الـ IR تتم بعملية عشوائية تختلف من جهاز لآخر، الغرض منها هو منع أي تتبع ممكن أن يتم، سواء عن طريق النظام (الـ Software بشكل عام) أو عن طريق كاميرات مخصصة لقراءة الـ IR.

النقاط التي يتم اسقاطها عن طريق الـIR لقراءة تفاصيل الوجه. النقاط تم تصويرها عن طريق كاميرا تظهر الأشعة تحت الحمراء. مصدر الصورة على اليوتيوب
النقاط التي يتم اسقاطها عن طريق الـIR لقراءة تفاصيل الوجه. النقاط تم تصويرها عن طريق كاميرا تظهر الأشعة تحت الحمراء. مصدر الصورة على اليوتيوب

بعد جمع البيانات، يتم إرسالها للـ Enclave وبمساعدة معالج أبل الخاص بالذكاء الاصطناعي (Neural Engine) يتم معالجة البيانات وتحويلها إلى تمثيل رياضي (mathematical representations) ومقارنتها مع التمثيل الرياضي للـ Face ID الخاص بك (الذي تم انشاءه و حفظه بشكل مشفر عند تفعيلك للـ Face ID للمرة الأولى).

بعض الملاحظات:

  • بيانات الوجه الأساسية والتي جمعها عن طريق كاميرا الـ TrueDepth لا يتم تخزينها ولكن يتم تخزين التمثيل الخاص بها (التمثيل الرياضي).
  • عملية المقارنة للتمثيل الرياضي الخاص بالـ Face ID الخاص بك مع التمثيل الذي تم جمعه أثناء عملية محاولة فتح الجهاز، تتم داخل الـ Enclave لأن هذه العملية تتم باستخدام الـ Neural engine الخاص بأبل ويتم استخدام neural network مخصصة لهذه العملية.
  • التمثيل الخاص ببيانات الـ Face ID الأساسي يتم تشفيره وتخزينه على الجهاز (أثناء إعداد الـ Face ID للمرة الأولى)، ولا يتم فتح التشفير عنه سواء داخل الـ Enclave لغرض المقارنة. أي أنه لا يمكن الوصول لهذه البيانات وهي غير مشفرة.
  • العمليات الحسابية والـ neural network المستخدمة في المقارنة داخل الـ Enclave، خاصة بأبل ولا يتم مشاركتها مع المطورين.

بالمناسبة، عمليات التشفير للملفات والبيانات داخل الـ Enclave تتم باستخدام قطعة عتاد تسمى بالـ Crypto Engine. هذه القطعة وظيفتها تشفير البيانات باستخدام خوارزمية AES-256 دون الحاجة لمرور البيانات على الـ CPU. على سبيل المثال، إذا كان الـ CPU يحتاج للوصول إلى بيانات المستخدم (ملف مشفرة على ذاكرة الجهاز ولكن يجب استخدامه من قبل نظام التشغيل)، سيتم اتباع الخطوات التالية:

  • سيتم أولاً جلب الملف المشفر من ذاكر الجهاز
  • يطلب المعالج من الـ Enclave فتح التشفير عن الملف المطلوب
  • سيقوم الـ Enclave بجلب مفتاح التشفير الخاص بالملف. مفتاح التشفير الخاص بالملف يتم تشفيره بمفتاح أخر وحفظه في الذاكرة. عملية تشفير مفتاح التشفير بمفتاح أخر تسمى بـ Key Wrapping.
  • بعد جلب مفتاح التشفير الخاص بالملف سيقوم الـ Enclave بفك تشفير الملف باستخدام ملف متواجد بداخل الـEnclave (تفاصيل تشفير الملفات وهيكلتها تحتاج لشرح مفصل. يمكنك الرجوع إلى قسم Encryption and Data Protection في Apple Platform Security لمعرفة التفاصيل. ستجد رابط بأسفل الصفحة لتحميل أحدث نسخة من مستند الـ PDF.)
  • عملية فك التشفير يقوم بها الـ Enclave باستخدام الـ Crypto Engine، حيث يقوم الـ Crypto Engine بالتواصل مع الذاكرة عن طريق الـ DMA وهي طريقة تسمح للعتاد (hardware وبشكل أدق، في هذه العملية هو الـ Crypto Engine) بالوصول إلى ذاكرة الجهاز من غير المرور بالمعالج.
  • بعد ذلك سيتم إرجاع الملف (بعد فك التشفير) إلى المعالج.
طريقة التواصل بين الـ Crypto Engine وذاكرة الجهاز بغرض جلب ملف وفك التشفير عنه (NAND هي ذاكرة دائمة لا يتم مسحها عند انقطاع الطاقة non-volatile). مصدر الصورة Apple Platform Security
طريقة التواصل بين الـ Crypto Engine وذاكرة الجهاز بغرض جلب ملف وفك التشفير عنه (NAND هي ذاكرة دائمة لا يتم مسحها عند انقطاع الطاقة non-volatile). مصدر الصورة Apple Platform Security

ملاحظة بخصوص تشفير الملفات على الجهاز، كلمة المرور الخاصة بالجهاز (Passcode) يتم استخدامها لتشفير ملفاتك عند إغلاق الجهاز (إغلاق الجهاز وليس فقط إيقاف التشغيل). أي أن اختيارك لكلمة مرور قوية سيزيد محاولات فك التشفير عن بياناتك في حال استطاع أي شخص الوصول إلى جوالك والقيام بعملية Brute force.

كان هذا شرحاً مبسط لمبدأ الـ Secure Enclave والذي تستخدمه أبل في جميع منتجاتها الحالية بغرض زيادة مستوى الأمان والحفاظ على خصوصية المستخدم. في حال كانت لديك أي أسئلة أو ملاحظات، لا تتردد في التواصل معي على حسابي في تويتر https://twitter.com/Kassem_Bagher

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