Kassem | قاسم باغر
Kassem | قاسم باغر

@Kassem_Bagher

29 تغريدة 44 قراءة Jun 24, 2020
الأغلب استخدم خدمات وتقنيات أبل مثل الـ Face ID أو الـ Apple Pay و سمع عن ادعاءات أبل بخصوص مستوى الأمان والخصوصية العالي بهذه الخدمات 🔒
كل هذه الخدمات وغيرها تعتمد على تقنية تسمى بالـ Secure Enclave واللي راح أتكلم عنها بإذن الله في هذا الثريد، وكيف ممكن تستفيد منها كمطور 👇🏼
قبل ما ابدأ، حاب انبه على نقطتين:
- قد تكون التفاصيل طويلة ومملة بعض الشيئ، روق وخذ نفس
- أتمنى بأني اتوفق في إيصال المعلومات بشكل صحيح، خصوصًا أن الموضوع كبير جدا في نظام أبل وبعض التفاصيل الدقيقة والمهمة في نظري غير موضحة حتى في الـ Documentation الخاصة بأبل.
ما هو الـ Secure Enclave Processor؟
الـ Secure Enclave Processor أو الـ SEP عبارة عن معالج مساعد (coprocessor) وظيفته هو توفير بيئة آمنة في الذاكرة العشوائية (RAM) للقيام بالعمليات التي تتطلب مستوى عالي من الأمان.
هذه العمليات تشمل: تشفير الملفات و تنفيذ عمليات الشراء عبر Apple Pay و فتح الهاتف عن طريق الـ Face ID أو الـ Touch ID وغيرها الكثير من الخدمات التي تتطلب مستوى عالي من الأمان، بالإضافة إلى خدمات قد يتم توفيرها لاحقا في أجهزة أبل.
هل الـ SEP متواجد كقطعة أو مجرد نظام (سوفتوير)؟
الـ SEP عبارة عن معالج مساعد مثل معالجات أبل الأخرى (معالج الـ AI على سبيل المثال)، وبالتأكيد الـ SEP راح يكون متواجد كجزء من الـ System on Chip (SoC) واللي هو عبارة عن مجموعة من المعالجات.
الرسمة التوضيحية التالية تبين هذه المعالجات ولو أنها خاصة بالـ Apple Silicon، لكن توضح أيضا فكرة الـ Secure Enclave (باللون الأحمر).
ما الفرق بين Secure Enclave Processor (SEP) و Secure Enclave؟
الأول هو المعالج والموضح بالصورة السابقة (من غير Processor للاختصار). هذا المعالج يحتوي على مفتاح تشفير يتم دمجه مع المعالج أثناء التصنيع. بالأصح، يوجد مفتاحي تشفير وهم Device’s Unique ID (UID) و Device Group ID (GID)
المفتاحان عبارة عن AES 256-bit و حسب جميع الادعاءات، لا يمكن لأي برنامج او قطعة هاردوير استخراجهما أو حتى معرفتهما. هذه المفاتيح مميزة لكل جهاز (Unique)، بمعنى أن كل جهاز لديه مفاتيح خاصة به و مميزة عن غيره (مثل البصمة).
أما الـ Secure Enclave فهي مساحة آمنه في الذاكرة العشوائية (RAM) يتم تشفيرها واستخدامها من قبل الـ SEP للقيام بالعمليات بشكل آمن.
هذه المساحة يتم تشفيرها من قبل الـ SEP بحيث لا يمكن لنظام التشغيل أو حتى الـ Kernal من الوصول إليها.
بإمكاننا اعتبار الـ Secure Enclave كصندوق أسود بداخل الذاكرة العشوائية (RAM)، لا يمكننا مشاهدة البيانات بداخله أو حتى معرفة العمليات التي تحصل بداخله. ملاحظة: بعض المواقع قد نقوم باستخدام مصطلح Secure Enclave بشكل خاطئ وتوحي لك بأن البيانات يتم تخزينها بداخل المعالج نفسه.
أي أن الغرض من الـ Secure Enclave هو منع النظام أو الـ CPU (بشكل أدق الـ Application Processor) من الوصول إلى هذه البيانات.
وبالتالي منع أي شخص من الوصل إلى البيانات الحساسة
يعني باختصار، الــ SEP هو المعالج و الـSecure Enclave هي المساحة المشفرة والآمنة بالذاكرة (RAM).
ملاحظة أخرى: راح استخدم مصطلح Enclave للدلالة على الـ Secure Enclave وهو مستخدم و دارج أيضًا للاختصار وتسهيل القراءة.
ما هي الأجهزة التي تحتوي على الـ SEP؟
جميع الأجهزة التي تدعم الـ Touch ID أو الـ Face ID أو أجهزة الماك التي تحتوي على Touch Bar.
كيف يتم إنشاء الـ Enclave؟
باختصار جدا، عند تشغيل الجهاز (ايفون او ايباد او ماك)، يتم إنشاء مفتاح تشفير مؤقت (بواسطة الـ Boot ROM والمتواجد بداخل الـ SEP) .هذا المفتاح راح يتم دمجه مع الـ UID وتشفير مساحة في الـ RAM، هذه المساحة هي الـ Enclave.
كيف تقوم أبل باستخدام الـEnclave في خدماتها؟
الإجابة على هذا السؤال بشكل دقيقة وصحيح صعبة، لأن الموضوع يتطلب معرفة كافة الخدمات و تدفق البيانات ومعالجتها داخل الـ Enclave وكيفية إرسال البيانات إلى الـ Enclave و غيرها الكثير من التفاصيل الدقيقة جداً.
ولكن بشكل عام، الكثير من الخدمات تستخدم الـ Enclave من غير علمنا بغرض توفير خدمات بمستوى أمان وخصوصية عالية.
راح اذكر طريقة عمل Face ID بالرغم من أن التفاصيل التقنية غير واضحة لدي (حتى بعد مراجعة الـ Documentaiton الخاصة بابل أكثر من مرة ومن أكثر من مصدر).
أول خطوة يقوم بها الجوال عند استخدامك للـ Face ID هو معرفة إذا كنت تنظر باتجاه الجوال أو لا، وإذا كانت عينك مفتوحة أو مغلقة. الغرض من هذه الخطوة هي معرفة إذا كنت منتبه إلى الجوال بغرض فتحه القفل أو الدفع، أو لا.
إذا كان انتباهك موجه للجوال، راح يتم قراءة بيانات وجهك عن طريق إسقاط ٣٠ نقطة بالأشعة تحت الحمراء (IR)، بغرض معرفة أبعاد الوجه بالإضافة إلى صورة ثنائية الأبعاد باستخدام الـ IR.
طريقة إسقاط نقاط الـ IR تتم بعملية عشوائية تختلف من جهاز لآخر، الغرض منها هو منع أي تتبع ممكن يصير، سواء عن طريق النظام (الـ Software) أو عن طريق كاميرات مخصصة لقراءة الـ IR
بعد جمع البيانات، يتم إرسالها للـ Enclave وبمساعدة معالج أبل الخاص بالذكاء الاصطناعي (Neural Engine)، يتم معالجة البيانات وتحويلها إلى تمثيل رياضي (mathematical representations) ومقارنتها مع التمثيل الرياضي للـ Face ID الخاص بك والمخزن بشكل مشفر بذاكرة الجهاز.
بعض الملاحظات على النقطة السابقة:
- بيانات الوجه لا يتم تخزينها ولكن يتم تخزين التمثيل الخاص بها ومقارنتها كل مرة.
- عملية المقارنة تتم داخل الـ Enclave لان العملية يتم فيها استخدام الـ Neural engine ويتم استخدام neural network مخصصة لهذه العملية.
- التمثيل الخاص ببيانات الوجه الأساسي يتم تشفيره وتخزينه على الجهاز (أثناء إعداد الـ Face ID للمرة الأولى)، ولا يتم فتح التشفير عنه سواء داخل الـ Enclave لغرض الأمان والخصوصية.
- المعلومات عن كيفية تشفير وتخزين التمثيل الرياضي لبيانات الـ Face ID (النقطة السابقة) غير مذكورة بالتفصيل، ولكن قمت بشرحها بحسب فهمي.
- العمليات الحسابية والـ neural network المستخدمة في المقارنة خاصة بأبل ولا يتم مشاركتها مع المطورين.
بالمناسبة، عمليات التشفير داخل الـ Enclave تتم باستخدام قطعة تسمى بالـ Crypto Engine وظيفتها تشفير البيانات باستخدام خوارزمية AES-256.
على سبيل المثال، إذا كان أحد التطبيقات يحتاج يوصل لبيانات المستخدم (ملفات مشفرة على ذاكرة الجهاز)، اللي راح يصير هو التالي:
- المعالج راح يطلب من الـ Enclave فتح التشفير عن الملف المطلوب
- الـ Enclave راح يتواصل يجلب مفتاح التشفير الخاص بالملف (تفاصيل تشفير الملفات وهيكلتها يحتاج لشرح مفصل)
- الـ Enclave راح يطلب من Crypto Engine فتح التشفير عن الملف
- الـ Crypto engine راح يتواصل مع الذاكر وياخذ الملف ويفك التشفير عنه ويرسله للمعالج
عملية التواصل بين قطعة الـ Crypto Engine وذاكرة الجهاز تتم عن طريق الـ DMA وهي طريقة للسماح من العتاد (hardware) بالوصول إلى ذاكرة الجهاز من غير المرور بالمعالج.
ملاحظة بخصوص تشفير الملفات على الجهاز، كلمة المرور الخاصة بالجهاز (Passcode) تستخدم لتشفير ملفاتك، أي أنه اختيارك لكلمة مرور قوية راح يصعب عملية فك التشفير عن ببياناتك، حتى لو استطاع أي شخص الوصول إلى جوالك والقيام بـ Brute force.
في الأيام المقبلة راح اشرح كيف يمكن للمطورين الاستفادة من الـ Secure Enclave وما هي الـ API التي توفرها أبل للمطورين لغرض توفير أعلى درجات الحماية والخصوصية في التطبيقات.
٣٠ ألف نقطة*

جاري تحميل الاقتراحات...