Recovering a Full AES-128 Key Across Tenant Boundaries via DDR4 Row-Buffer Timing on Cloud FPGAs
تثبت هذه الورقة أن مستأجراً مشاركاً غير متميز بالكامل على لوحة FPGA سحابية مشتركة يمكنه استعادة مفتاح رئيسي كامل لـ AES-128 من ضحية عبر استغلال القنوات الجانبية لتوقيت ذاكرة الصف (row-buffer) في DDR4، متجاوزاً قيد "فتحة واحدة لكل بنك" من خلال الهندسة العكسية لخرائط البنوك والتجميع الإحصائي عبر عمليات تشفير متعددة.
البحث الأصلي مرخَّص بموجب CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل
في العالم الرقمي الحديث، غالباً ما نتخيل أن بياناتنا الخاصة محبوسة في خزنة آمنة، مفصولة عن الأعين المتطفلة بطبقات من البرمجيات والجدران الرقمية. هذا هو وعد الحوسبة السحابية: أن يتمكن مستخدمون مختلفون من مشاركة نفس الأجهزة القوية دون أن يرى أي منهم عمل الآخر. ومع ذلك، فإن الواقع المادي لكيفية تخزين الحواسيب للمعلومات يروي قصة مختلفة. فعندما يقوم الحاسوب بإجراء عملية حسابية، فإنه يحتاج غالباً إلى البحث عن قيم في قائمة كبيرة، تماماً مثل التحقق من قاموس بحثاً عن تعريف. وللقيام بذلك بسرعة، يفتح الحاسوب قسماً محدداً من ذاكرته، يُعرف باسم "مخزن الصف" (row buffer)، لإبقاء تلك القائمة جاهزة. وإذا احتاج الحاسوب للبحث عن عنصر مختلف في نفس القسم، فيجب عليه إغلاق القائمة الحالية وفتح قائمة جديدة، وهي عملية تستغرق جزءاً ضئيلاً جداً من الثانية أطول. هذا الفرق في الوقت، رغم ضآلته، يترك أثراً. فتماماً كما تكشف خطوة القدم في الرمل المبلل عن مكان سار فيه شخص ما، يمكن للوقت الذي يستغرقه الوصول إلى الذاكرة أن يكشف عن البيانات التي كانت قيد الاستخدام. لعقود من الزمن، عرف خبراء الأمن أن هذه الإشارات الزمنية الضئية يمكن استخدامها لسرقة الأسرار من حاسوب واحد، ولكن ظل السؤال قائماً عما إذا كان يمكن لهذه الحيلة أن تنجح عبر الحدود غير المرئية التي تفصل بين المستخدمين المختلفين على خادم سحابي مشترك.
لقد أثبت باحثون في جامعة نورث كارولاينا في شارلوت الآن أنه من الممكن بالفعل سرقة مفتاح سري كامل من جار على خادم سحابي مشترك، باستخدام لا شيء سوى توقيت الوصول إلى الذاكرة. لقد ركزوا على نوع معين من الأجهزة السحابية يسمى "مصفوفة البوابات المنطقية القابلة للبرمجة" (FPGA)، وهي شريحة قابلة لإعادة التشكيل تُستخدم لتسريع المهام المعقدة. في الإعداد السحابي النموذجي، يتم وضع مستخدمين متعددين على نفس البطاقة الفيزيائية لتوفير التكاليف. وبينما تضمن البرمجيات أن المستخدم (أ) لا يمكنه قراءة ملفات المستخدم (ب) مباشرة، إلا أن كلا المستخدمين يتشاركان في نفس شرائح الذاكرة الفيزيائية خارج المعالج الرئيسي. وقد أظهر الباحثون أن مستخدماً لا يملك أي امتيازات خاصة، ولا وصولاً إلى بيانات الضحية، ولا معرفة بالمفتاح السري، يمكنه مع ذلك استعادة مفتاح التشفير الكامل المستخدم من قبل جاره. لقد حققوا ذلك من خلال قياس كيفية استغراق حاسوبهم وقتاً في القراءة من الذاكرة بينما كان الجار يقوم بعملية التشفير في نفس الوقت.
كان التحدي أصعب بكثير من مجرد الاستماع إلى نشاط الجار. في ذاكرة التخزين المؤقت القياسية للحاسوب، يترك كل جزء من البيانات أثراً فريداً خاصاً به، مما يسمح للمهاجم برؤية جميع الأجزلة الستة عشر لمفتاح سري في آن واحد. ومع ذلك، تتصرف شرائح الذاكرة المستخدمة في هذه الخوادم السحابية بشكل مختلف؛ فهي تمتلك قصوراً هيكلياً حيث يمكن لكل قسم من أقسام الذاكرة أن يتذكر فقط آخر عنصر فتحه. عندما يقوم الضحية بتشفير رسالة، فإنه يبحث عن ستة عشر قيمة في صف واحد. ولأن قسم الذاكرة لا يمكنه احتواء سوى عنصر واحد مفتوح في المرة الواحدة، فإن عمليات البحث الـخمس عشرة الأولى يتم مسحها فوراً بواسطة عملية البحث السادسة عشرة. وبحلول الوقت الذي يحاول فيه المهاجم الاستماع، يكون أثر الخمسة عشر جزءاً الأولى من السر قد تلاشى، تاركاً الجزء الأخير فقط مرئياً. خلق هذا حاجزاً جعل تقنيات الاختراق القياسية عديمة الفائدة، حيث لم يكن بإمكان المهاجم سوى رؤية بايت واحد من أصل ستة عشر بايتاً للمفتاح، وهو ما لا يكفي لكسر التشفير.
ولتجاوز ذلك، ابتكر الباحثون استراتيجية ذكية استغلت حقيقة أن شريحة الذاكرة تحتوي على ستة عشر قسماً مستقلاً، لكل منها مخزن مؤقت خاص به. فبدلاً من محاولة الاستماع إلى جميع الأجزاء الستة عشر في قسم واحد، قاموا بإعادة ترتيب البيانات السرية بحيث يعيش كل جزء من أجزاء المفتاح الستة عشر في قسم ذاكرة مختلف. بهذه الطريقة، عندما يبحث الضحية عن القيم الست عشر، فإنه يفتح جميع الأقسام الستة عشر في وقت واحد، ولا يقوم أي منها بمسح الآخر. ثم بنى المهاجم أداة مخصصة يمكنها التحقق بسرعة من كل قسم من الأقسام الستة عشر لمعرفة أي منها لا يزال مفتوحاً. ومن خلال تكرار هذه العملية مع العديد من رسائل الاختبار المختلفة، تمكن المهاجم من جمع ما يكفي من الأدلة لإعادة بناء المفتاح السري الكامل. اختبر الباحثون هذه الطريقة على بطاقة Xilinx Alveo U250، وهي قطعة من الأجهزة الشائعة المستخدمة في مراكز البيانات. ووجدوا أنه من خلال تشغيل برنامجهم الخاص جنباً إلى جنب مع برنامج التشفير الخاص بالضحية، تمكنوا من استعادة المفتاح الرئيسي بالكامل في جميع المفاتيح التسعة عشر التي تم اختبارها، حتى عندما كان الضحية يشغل عملية تشفير كاملة مكونة من عشر جولات.
اعتمد نجاح هذا الهجوم على اكتشافين رئيسيين. أولاً، كان على الباحثين معرفة كيفية تحديد وحدة التحكم في الذاكرة للقسم الذي ستستخدمه لبيانات معينة. هذا التخطيط ليس واضحاً ويختلف لكل نوع من الأجهزة. قام الفريق بهندسة عكسية لهذا المخطط من خلال توقيت الوقت الذي استغرقه الوصول إلى عناوين مختلفة، مما أدى فعلياً إلى رسم خريطة لتخطيط الذاكرة من الخارج إلى الداخل. ثانياً، كان عليهم إثبات أن الإشارة التي اكتشفوها كانت حقيقية وليست مجرد ضوضاء عشوائية. كان الفرق في الوقت بين الوصول الناجح للفشل ضئيلاً للغاية، حيث استغرق حوالي أربع دورات ساعة فقط، أو حوالي اثنين وثلاثين نانو ثانية. ورغم هذه الإشارة الضئيلة، أظهر الباحثون أنه من خلال حساب النتائج عبر محاولات عديدة، يصبح النمط واضحاً. وفي أكثر اختباراتهم واقعية، حيث كان المهاجم والضحية يشغلان برامج منفصلة تماماً دون أي تنسيق، نجح المهاجم في استعادة المفتاح الكامل من ضحية كانت تشفر البيانات باستخدام خوارزمية تشفير قياسية وموثقة.
لا يعني هذا العمل أن جميع الحوسبة السحابية غير آمنة حالياً، ولكنه يكشف عن ثغرة محددة في كيفية إدارة الأجهزة المشتركة. أشار الباحثون إلى أن معظم الحالات السحابية التجارية اليوم مخصصة لمستخدم واحد، مما يمنع هذا النوع من الهجمات. ومع ذلك، مع توجه الصناعة نحو أجهزة أكثر كفاءة ومشتركة لخفض التكاليف، تزداد المخاطر. تسلط الدراسة الضوء على أن العزل المنطقي، الذي يبقي البرمجيات منفصلة، ليس كافياً لحماية الموارد الفيزيائية. فشرائح الذاكرة نفسها تحتفظ بسجل لما تم الوصول إليه، ويمكن للجار قراءة هذا السجل. يقترح الباحثون عدة طرق للإصلاح، مثل الاحتفاظ بالبيانات السرية في الذاكرة السريعة والخاصة داخل الشريحة بدلاً من الذاكرة الخارجية المشتركة، أو جعل مكان تخزين البيانات عشوائياً بحيث تصبح تلميحات التوقيت بلا معنى. كما يقترحون أنه يمكن لمزودي الخدمات السحابية مراقبة أنماط الوصول إلى الذاكرة للكشف عما إذا كان مستخدم يحاول التجسس على مستخدم آخر.
تمتد آثار هذا البحث إلى ما هو أبعد من مجرد نوع واحد من التشفير. فالطريقة المستخدمة لسرقة المفتاح تعتمد على الطريقة الأساسية لعمل الذاكرة، مما يعني إمكانية تطبيقها على خوارزميات أخرى لحفظ الأسرار تستخدم جداول بحث مماثلة. وأكد الباحثون أن نتائجهم تستند إلى تجارب أجهزة فعلية، وليس محاكاة حاسوبية، مما يعطي النتائج درجة عالية من الموثوقية. لقد اختبروا الهجوم ضد خمسين مفتاحاً عشوائياً وتسعة عشر سيناريو تشفير مختلفاً، ونجح الأمر في كل مرة. لم تستغرق عملية استعادة المفتاح بالكامل سوى ثوانٍ بمجرد اكتمال الإعداد الأولي، مما يجعلها تهديداً عملياً لأي بيئة سحابية مستقبلية تسمح لمستخدمين متعددين بمشاركة نفس الذاكرة الفيزيائية.
في النهاية، تعمل هذه الدراسة كتحذير من أن العالم المادي لأجهزة الحاسوب له قواعده الخاصة التي لا تستطيع البرمجيات دائماً تجاوزها. تماماً كما يمكن لشخصين يتشاركان غرفة أن يسمعا خطوات بعضهما البعض حتى لو لم يتمكنا من رؤية بعضهما، يمكن لمستخدمين يتشاركان خادماً سحابياً أن يتمكنا من سماع توقيت عمليات الوصول إلى الذاكرة الخاصة ببعضهما البعض. لقد أظهر الباحثون أنه مع القدر الكافي من الصبر والأدوات المناسبة، يمكن تضخيم هذه الأصداء الخافتة لتصبح صورة واضحة لسر ما. وبينما يستمر مزودو الخدمات السحابية في حشد المزيد من المستخدمين في شرائح أقل لتحسين الكفاءة، سيكون فهم هذه القنوات الجانبية الفيزيائية أمراً ضرورياً لتصميم أنظمة آمنة حقاً. الحل لا يكمن في بناء جدران رقمية أعلى، بل في فهم السلوك الفيزيائي للذاكرة الموجودة تحتها وضمان عدم إمكانية قراءة تاريخ أفعال مستخدم واحد من قبل مستخدم آخر.
غارق في أبحاث مجالك؟
تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.