شكرًا للجميع على حضوركم ، اليوم سنتحدث عن تشفير القرص الصلب الكامل (FDE) ، وهو أمر غير آمن كما تعتقد. ارفع يديك ، وبالتالي يقوم بتشفير محرك الأقراص الصلبة بجهاز الكمبيوتر الخاص بك. مدهش! حسنًا ، مرحبًا بك في DefCon!

يبدو أن 90٪ من المستخدمين يستخدمون برامج مفتوحة المصدر لتشفير محرك الأقراص الخاص بك حتى يتمكنوا من تدقيقها. الآن ، دع الذين يغلقون الكمبيوتر إذا تركوه دون مراقبة يرفعون أيديهم. أفكر في حوالي 20 ٪ من الحاضرين. أخبرني ، من الذي يترك جهاز الكمبيوتر الخاص بك دون مراقبة لعدة ساعات ، هل يهم إذا تم تشغيله أو إيقاف تشغيله؟ فكر في طرح هذه الأسئلة ، فقط تأكد من أنك لست زومبيًا ولا تنام. أعتقد أنه كان على الجميع تقريبًا ترك أجهزة الكمبيوتر الخاصة بهم لبضع دقائق على الأقل.
فلماذا تشفير أجهزة الكمبيوتر لدينا؟ من الصعب العثور على شخص يطرح هذا السؤال ، لذلك أعتقد أنه من المهم حقًا صياغة الدافع لاتخاذ إجراءات محددة في مجال الأمن. إذا لم نفعل ذلك ، فلن نتمكن من فهم كيفية تنظيم هذا العمل.
هناك الكثير من الوثائق الخاصة ببرامج تشفير الأقراص التي تصف ما يفعله البرنامج ، وما هي الخوارزميات التي يستخدمها ، وكلمات المرور ، وما إلى ذلك ، ولكن لا يوجد أي مكان تقريبًا لتقرير سبب القيام بذلك.
لذلك ، نقوم بتشفير جهاز الكمبيوتر الخاص بنا لأننا نريد التحكم في بياناتنا ، ونريد أن نضمن سريتها ولا يمكن لأحد سرقةها أو تغييرها دون علمنا. نريد أن نقرر بأنفسنا ما يجب القيام به مع بياناتنا والتحكم في ما يحدث له.
هناك حالات عندما يتعين عليك ببساطة ضمان سرية البيانات ، على سبيل المثال ، إذا كنت محامًا أو طبيبًا لديه معلومات عميل سري. الأمر نفسه ينطبق على الوثائق المالية والمحاسبية. يتعين على الشركات إبلاغ العملاء بتسريب هذه المعلومات ، على سبيل المثال ، إذا ترك شخص ما جهاز كمبيوتر محمول غير محمي في سيارة سُرقت ، وقد تكون هذه المعلومات السرية متاحة الآن مجانًا على الإنترنت.
بالإضافة إلى ذلك ، من الضروري التحكم في الوصول المادي إلى الكمبيوتر وضمان حمايته من التأثير المادي ، لأن FDE لن يساعد إذا كان شخص ما يتحكم فعليًا في جهاز الكمبيوتر الخاص بك.
إذا كنا نريد ضمان أمان الشبكة ، فنحن بحاجة إلى التحكم في الوصول إلى كمبيوتر المستخدم النهائي. لن نكون قادرين على بناء إنترنت آمن دون ضمان أمن كل مستخدم نهائي.

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

من حيث المبدأ ، يبدو نموذج الأمان بأكمله كما يلي: "إذا قام برنامجنا بتشفير القرص بشكل صحيح وفك تشفير القرص بشكل صحيح ، فقد قمنا بعملنا." أعتذر عن النص المعروض في الشريحة التالية ، إذا كان من الصعب عليك قراءته ، فسأفعل ذلك بنفسي. هذه مقتطفات من المراسلات بين مطوري TrueCrypt وباحث الأمن جوانا رتكوفسكايا حول هجمات "المنظف".
TrueCrypt: "نحن لا نفكر أبدًا في احتمال حدوث هجمات بالأجهزة ، نحن نفترض الأسوأ. بعد "عمل" المهاجم على جهاز الكمبيوتر الخاص بك ، عليك فقط التوقف عن استخدامه لتخزين المعلومات السرية. معالج تشفير TPM غير قادر على منع هجمات الأجهزة ، على سبيل المثال ، باستخدام keyloggers.
سألت جوانا راتكوفسكايا: "كيف يمكنني تحديد ما إذا كان المهاجم" يعمل "على جهاز الكمبيوتر الخاص بك أم لا ، لأنك لا تحمل كمبيوتر محمول معك طوال الوقت؟" ، والذي أجاب عليه المطورون: "نحن لا نهتم كيف يضمن المستخدم الأمان والأمان جهاز الكمبيوتر الخاص بك. على سبيل المثال ، يمكن للمستخدم استخدام قفل أو وضع جهاز كمبيوتر محمول أثناء وجوده في خزانة قابلة للقفل أو في مكان آمن. أجابتها جوانا بشكل صحيح: "إذا كنت سأستخدم قفلًا أو قفلًا آمنًا ، فلماذا أحتاج إلى تشفيرك على الإطلاق"؟

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

كما نعلم ، يتم تحميل أداة تحميل التشغيل من SSD / HDD باستخدام BIOS ويتم نسخها إلى الذاكرة الرئيسية على طول مسار نقل البيانات Storage Controller - PCI Bus - Platform Controller Hub. بعد ذلك ، يطلب أداة تحميل التشغيل من المستخدم الحصول على معلومات المصادقة ، مثل كلمة المرور أو مفتاح البطاقة الذكية. ثم تنتقل كلمة المرور من لوحة المفاتيح إلى المعالج ، وبعد ذلك يتحكم محمل الإقلاع ، بينما يظل كل من المكونات - نظام التشغيل والمفتاح - في الذاكرة لضمان شفافية عملية التشفير وفك التشفير للقرص. هذه رؤية مثالية للعملية ، مما يشير إلى أنه لن يحاول أحد التدخل بأي شكل من الأشكال. أعتقد أنك تدرك جيدًا العديد من الطرق لاختراق هذا ، لذلك دعونا نضع قائمة بالأشياء التي قد تسوء إذا حاول شخص ما مهاجمتك. أقسم الهجمات إلى 3 مستويات.
الأول غير اجتياحي ، لا يتطلب التقاط جهاز الكمبيوتر الخاص بك ، حيث يتم تنفيذه باستخدام محرك أقراص محمول به برامج ضارة. لا تحتاج إلى "تفكيك" النظام إذا كان من السهل توصيل أي مكون من مكونات الأجهزة مثل بطاقة PCI أو ExpressCard أو Thunderbolt به - وهو أحدث محول Apple يوفر وصولاً مفتوحًا إلى ناقل PCI.
سيتطلب الهجوم من المستوى الثاني استخدام مفك البراغي ، لأنك قد تحتاج إلى إزالة مكون مؤقت من النظام للتعامل معه في بيئتك الصغيرة. المستوى الثالث ، أو "هجوم لحام الحديد" ، هو الأكثر صعوبة ، فأنت هنا تضيف جسديًا أو تعدل مكونات النظام ، مثل الرقائق ، لمحاولة كسرها.
يتمثل أحد أنواع الهجمات من المستوى الأول في تحميل أداة تحميل معرضة للخطر ، تُعرف أيضًا باسم "خادمة الشر" ، حيث تحتاج إلى تنفيذ بعض التعليمات البرمجية غير المشفرة كجزء من عملية تشغيل النظام ، وهو شيء يمكنك تنزيله بنفسك باستخدام معلوماتك الشخصية بحيث الوصول إلى بقية البيانات المشفرة على القرص الصلب الخاص بك. هناك عدة طرق مختلفة للقيام بذلك. يمكنك تغيير محمل الإقلاع فعليًا في نظام التخزين. يمكنك تسوية BIOS أو تحميل BIOS ضار يتحكم في مهايئ لوحة المفاتيح أو إجراءات قراءة القرص ويقوم بتعديلها بحيث تكون مقاومة لإزالة القرص الصلب. ولكن في أي حال ، يمكنك تعديل النظام بحيث أنه عندما يقوم المستخدم بإدخال كلمة المرور الخاصة به ، سيكتب على القرص في شكل غير مشفر ، أو يفعل شيئًا مشابهًا ، لن يكون هذا صعبًا على المتسلل.
يمكنك القيام بشيء مماثل على مستوى نظام التشغيل. هذا صحيح بشكل خاص إذا كنت لا تستخدم تشفير القرص بالكامل ، ولكن تشفير الحاوية.

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

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

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

تم تطوير هذا حتى عندما كانت أجهزة الكمبيوتر أبطأ كثيرًا ولم نرغب في قيام المعالج المركزي "بابيسيت" بنقل كل بيانات إلى الجهاز من الذاكرة الرئيسية. وبالتالي ، تتمتع الأجهزة بوصول مباشر إلى الذاكرة ، ويمكن للمعالج أن يعطيها إرشادات يمكنهم ببساطة إكمالها ، لكن البيانات ستبقى في الذاكرة كلما احتجت إليها.
هذه هي المشكلة ، لأنه يمكن إعادة برمجة أجهزة PCI. تحتوي العديد من هذه الأشياء على برامج ثابتة قابلة للكتابة ، والتي يمكنك ببساطة الترقية إلى شيء معادٍ. وهذا يمكن أن يعرض أمن نظام التشغيل بأكمله للخطر ، لأنه سيتيح لأي شكل من أشكال الهجوم ، حتى تعديل نظام التشغيل نفسه أو استخراج المفتاح مباشرة. في الطب الشرعي للكمبيوتر ، هناك معدات مصممة لمثل هذه الأشياء في عملية التحقيق في الجرائم: فهي توصل شيء ما بجهاز الكمبيوتر الخاص بك وتسحب محتويات الذاكرة. يمكنك القيام بذلك باستخدام FireWire أو ExpressCard أو Thunderbolt ... في الواقع ، كل هذه منافذ خارجية توفر الوصول إلى ناقل النظام الداخلي.
لذا ، سيكون من الجيد لو كان من الممكن عدم تخزين المفتاح في ذاكرة الوصول العشوائي ، لأننا أظهرنا أن ذاكرة الوصول العشوائي ليست موثوقة للغاية من وجهة نظر الأمان. هل يوجد أي متجر مفاتيح مخصص أو معدات تشفير خاصة؟ نعم هناك. يمكنك استخدام مسرعات تشفير لخادم الويب لمعالجة المزيد من معاملات SSL في الثانية. أنها مقاومة للتدخل غير المصرح به. لدى سلطات إصدار الشهادات من CA أشياء تخزن مفاتيحها السرية العليا ، لكنها ليست مصممة حقًا للعمليات عالية الأداء مثل استخدام تشفير القرص. لذلك هل هناك أي خيارات أخرى؟
هل يمكننا استخدام المعالج كنوع من وحدة تشفير الأجهزة المزيفة؟ هل يمكننا حساب شيء مثل خوارزمية تشفير كتلة AES متماثلة في وحدة المعالجة المركزية ، باستخدام شيء فقط مثل سجلات وحدة المعالجة المركزية بدلاً من ذاكرة الوصول العشوائي؟

أضافت Intel و AMD إرشادات جديدة رائعة للمعالجات التي تولت مهمة تنفيذ AES ، بحيث يمكنك الآن إجراء عمليات تشفير الكتل البدائية من خلال تعليمة بناء واحدة فقط بسيطة. والسؤال هو ، هل يمكننا ترك مفتاحنا في الذاكرة ، أم يمكننا تنفيذ هذه العملية دون الاعتماد على الذاكرة الرئيسية؟ تحتوي معالجات x86 الحديثة على مجموعة كبيرة من السجلات ، وإذا حاول أي منكم بالفعل إضافة جميع البتات الموجودة فيها ، فستحصل على حوالي 4 كيلو بايت. وبالتالي ، يمكننا في الواقع استخدام بعض وحدات المعالجة المركزية (CPU) لتخزين المفاتيح وإنشاء مساحة لعمليات التشفير.
أحد الاحتمالات هو استخدام سجلات الأجهزة لتصحيح نقاط التوقف. يوجد في معالج Intel المعتاد 4 سجلات من هذا القبيل ، وفي نظام x64 سيحتوي كل منها على مؤشر 64 بت. هذا هو 256 بت من مساحة القرص المحتملة التي لن يستخدمها معظم الناس أبدًا. بطبيعة الحال ، فإن ميزة استخدام سجلات التصحيح هي امتيازها ، لأن نظام التشغيل هو الوحيد الذي يمكنه الوصول إليها. هناك مزايا لطيفة أخرى ، على سبيل المثال ، عندما تقوم بإيقاف تشغيل طاقة المعالج عند إيقاف تشغيل النظام أو الانتقال إلى وضع السكون ، تفقد حقًا كامل محتويات السجل ، بحيث لا تخاف من "إعادة التشغيل الباردة".
قام رجل من ألمانيا ، Tilo Muller ، بتنفيذ نفس الشيء الذي أطلق عليه TRESOR لنظام Linux في عام 2011. لقد اختبر أداء هذا النظام وخلص إلى أنه لا يعمل بشكل أبطأ من حساب AES المنتظم بواسطة البرامج.
ماذا عن تخزين مفتاحين 128 بت بدلاً من مفتاح واحد؟ هذا سوف يقودنا إلى مساحة أكبر cryptomodule. يمكننا تخزين مفتاح رئيسي واحد لا يترك المعالج أبدًا عند بدء تشغيله ، ثم نقوم بتحميل وإلغاء تحميل الإصدارات الرئيسية التي نحتاجها لإجراء عمليات إضافية وحل المهام الإضافية.
المشكلة هي أنه يمكننا تخزين الشفرة الخاصة بنا أو مفاتيحنا خارج الذاكرة الرئيسية ، لكن وحدة المعالجة المركزية ستظل تعالج محتويات الذاكرة على أي حال. لذلك ، يتيح لك استخدام DMA أو تقنية الوصول المباشر للذاكرة أو تجاوز المعالج المركزي أو أية معالجات أخرى ، تغيير نظام التشغيل وحفظ تفريغه خارج سجلات الذاكرة الرئيسية ، أو ، في حالة استخدام أساليب أكثر غرابة ، خارج سجلات التصحيح.
يمكننا أن نفعل أي شيء مع زاوية DMA للهجوم؟ كما اتضح ، نعم ، يمكننا ذلك. في الآونة الأخيرة ، كجزء من التقنيات الجديدة لزيادة المحاكاة الافتراضية للخوادم ، لأسباب تتعلق بالأداء ، يحب الناس أن يكونوا قادرين على الاتصال ، على سبيل المثال ، بمحول شبكة إلى خادم افتراضي ، لذلك يجب أن يكون متصلاً من خلال برنامج مراقبة الأجهزة الافتراضية.

لقد تم تصميم تقنية IOMMU بحيث يمكنك عزل جهاز PCI في قسم الذاكرة الصغيرة الخاص بك ، حيث لا يستطيع القراءة والكتابة بشكل تعسفي في أي مكان في النظام. هذا مثالي: يمكننا تكوين أذونات IOMMU لحماية نظام التشغيل الخاص بنا أو ما نستخدمه لمعالجة المفاتيح ، وحمايتها من الوصول العشوائي.
, , , TRESOR BitVisor, . , , - . , , IOMMU , - .

, , , , , . , – , .
, , . , RAM , , . , , , , SSH-, PGP-, « », .

: RAM? , , , , .

, , , – , ! 2010 RAM. — : “clear”, , , . 10-50 . , , , -, – 10% . , . , , ? , TPM , , , .
-, , . , , - CPU.
, . , , , . , , - . , ? , . ? , - , , , “ ” , .

, . , , . — Trusted Platform Module – , . , , , , TPM . , «» , . , , . , , .

? -. - , - «» , . , .
, – -, . , RSA/SHA1, , , - . - , . , .
23:10
DEFCON 21. , «» . الجزء 2شكرا لك على البقاء معنا. هل تحب مقالاتنا؟ تريد أن ترى المزيد من المواد المثيرة للاهتمام؟ ادعمنا عن طريق تقديم طلب أو التوصية به لأصدقائك ،
خصم 30٪ لمستخدمي Habr على تناظرية فريدة من خوادم الدخول التي اخترعناها لك: الحقيقة الكاملة حول VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1 جيجابت في الثانية من 20 $ أو كيفية تقسيم الخادم؟ (تتوفر خيارات مع RAID1 و RAID10 ، ما يصل إلى 24 مركزًا وما يصل إلى 40 جيجابايت من ذاكرة DDR4).
VPS (KVM) E5-2650 v4 (6 مراكز) 10GB DDR4 240GB SSD بسرعة 1 جيجابت في الثانية حتى الربيع مجانًا عند الدفع لمدة ستة أشهر ، يمكنك طلبها
هنا .
ديل R730xd 2 مرات أرخص؟ لدينا فقط
2 x Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD بسرعة 1 جيجابت في الثانية 100 TV من 249 دولارًا في هولندا والولايات المتحدة الأمريكية! اقرأ عن
كيفية بناء البنية التحتية فئة باستخدام خوادم V4 R730xd E5-2650d تكلف 9000 يورو عن بنس واحد؟