ثغرة أمنية في رقائق Qualcomm تسمح باستخراج المفاتيح الخاصة من تخزين TrustZone

باحثون من مجموعة NCC مكشوفة التفاصيل نقاط الضعف (CVE-2018-11976) في شرائح Qualcomm، والتي تتيح لك تحديد محتويات مفاتيح التشفير الخاصة الموجودة في منطقة Qualcomm QSEE المعزولة (بيئة التنفيذ الآمنة لشركة Qualcomm)، استنادًا إلى تقنية ARM TrustZone. المشكلة تتجلى في معظم Snapdragon SoC، الذي أصبح منتشرًا على نطاق واسع في الهواتف الذكية المستندة إلى نظام Android الأساسي. الإصلاحات التي تحل المشكلة موجودة بالفعل متضمن في تحديث Android لشهر أبريل وإصدارات البرامج الثابتة الجديدة لشرائح Qualcomm. استغرق الأمر من شركة كوالكوم أكثر من عام لإعداد الإصلاح، وتم إرسال المعلومات حول الثغرة الأمنية في البداية إلى شركة كوالكوم في 19 مارس 2018.

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

وتعود الثغرة الأمنية إلى وجود خلل في تنفيذ خوارزمية معالجة المنحنى الناقص، مما أدى إلى تسرب المعلومات حول التقدم المحرز في معالجة البيانات. قام الباحثون بتطوير تقنية هجوم القناة الجانبية التي تسمح باستخدام التسريبات غير المباشرة الموجودة لاستعادة محتويات المفاتيح الخاصة الموجودة في منطقة معزولة عن الأجهزة مخزن مفاتيح أندرويد. يتم تحديد التسريبات بناءً على تحليل نشاط كتلة التنبؤ الفرعية والتغيرات في وقت الوصول إلى البيانات الموجودة في الذاكرة. في التجربة، أثبت الباحثون بنجاح استعادة مفاتيح ECDSA 224 و256 بت من مخزن المفاتيح المعزول عن الأجهزة المستخدم في هاتف Nexus 5X الذكي. وتطلبت استعادة المفتاح إنشاء حوالي 12 ألف توقيع رقمي، وهو ما استغرق أكثر من 14 ساعة. الأدوات المستخدمة في تنفيذ الهجوم الاستيلاء على ذاكرة التخزين المؤقت.

السبب الرئيسي للمشكلة هو مشاركة مكونات الأجهزة المشتركة وذاكرة التخزين المؤقت لإجراء العمليات الحسابية في TrustZone وفي النظام الرئيسي - يتم إجراء العزل على مستوى الفصل المنطقي، ولكن باستخدام وحدات حوسبة مشتركة ومع آثار الحسابات والمعلومات حول الفرع العناوين التي يتم إيداعها في ذاكرة التخزين المؤقت للمعالج المشترك. باستخدام طريقة Prime+Probe، استنادًا إلى تقييم التغييرات في وقت الوصول إلى المعلومات المخزنة مؤقتًا، من الممكن، عن طريق التحقق من وجود أنماط معينة في ذاكرة التخزين المؤقت، مراقبة تدفقات البيانات وعلامات تنفيذ التعليمات البرمجية المرتبطة بحسابات التوقيعات الرقمية في TrustZone بدقة عالية إلى حد ما.

يتم إنفاق معظم الوقت لإنشاء توقيع رقمي باستخدام مفاتيح ECDSA في شرائح Qualcomm في إجراء عمليات الضرب في حلقة باستخدام متجه تهيئة لا يتغير لكل توقيع (السفير البابوي). إذا تمكن المهاجم من استعادة عدد قليل من البتات على الأقل باستخدام معلومات حول هذا المتجه، يصبح من الممكن تنفيذ هجوم لاستعادة المفتاح الخاص بالكامل بشكل تسلسلي.

في حالة كوالكوم، تم تحديد مكانين تم فيه تسريب هذه المعلومات في خوارزمية الضرب: عند إجراء عمليات البحث في الجداول وفي كود استرجاع البيانات الشرطية استنادًا إلى قيمة البت الأخير في المتجه "nonce". على الرغم من أن كود كوالكوم يحتوي على تدابير لمواجهة تسرب المعلومات من خلال قنوات الطرف الثالث، فإن طريقة الهجوم المطورة تسمح لك بتجاوز هذه التدابير وتحديد عدة بتات من قيمة "nonce"، وهي كافية لاستعادة مفاتيح ECDSA ذات 256 بت.

المصدر: opennet.ru

إضافة تعليق