تم نشر مجموعة أدوات Shufflecake لإنشاء أقسام قرص مشفرة مخفية

نشرت شركة التدقيق الأمني ​​Kudelski Security أداة تسمى Shufflecake تسمح لك بإنشاء أنظمة ملفات مخفية منتشرة عبر المساحة الحرة المتوفرة على الأقسام الموجودة ولا يمكن تمييزها عن البيانات المتبقية العشوائية. يتم إنشاء الأقسام بطريقة تجعل من الصعب إثبات وجودها حتى عند إجراء تحليل الطب الشرعي دون معرفة مفتاح الوصول. كود الأدوات المساعدة (shufflecake-userland) ووحدة Linux kernel (dm-sflc) مكتوب بلغة C ويتم توزيعهما بموجب ترخيص GPLv3، مما يجعل من المستحيل تضمين وحدة kernel المنشورة في Linux kernel الرئيسية بسبب عدم التوافق مع ترخيص GPLv2 الذي يتم توفير النواة بموجبه.

تم وضع المشروع كحل أكثر تقدمًا من Truecrypt وVeracrypt لإخفاء البيانات التي تتطلب الحماية، والذي يتمتع بدعم أصلي لمنصة Linux ويسمح لك بوضع ما يصل إلى 15 قسمًا مخفيًا على الجهاز، متداخلة داخل بعضها البعض لإرباك التحليل وجودهم. إذا لم يكن استخدام Shufflecake نفسه سرًا، كما يمكن الحكم عليه، على سبيل المثال، من خلال وجود الأدوات المساعدة المقابلة في النظام، فلا يمكن تحديد العدد الإجمالي للأقسام المخفية التي تم إنشاؤها. يمكن تنسيق الأقسام المخفية التي تم إنشاؤها وفقًا لتقدير المستخدم لاستيعاب أي نظام ملفات، على سبيل المثال، ext4 أو xfs أو btrfs. يتم التعامل مع كل قسم كجهاز كتلة افتراضي منفصل مع مفتاح إلغاء القفل الخاص به.

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

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

يتم تقسيم الرأس إلى فتحات، تحدد كل منها القسم الخاص بها والشرائح المرتبطة بها. يتم تكديس الفتحات الموجودة في الرأس وربطها بشكل متكرر - تحتوي الفتحة الحالية على مفتاح فك تشفير معلمات القسم السابق في التسلسل الهرمي (القسم الأقل مخفيًا)، مما يسمح باستخدام كلمة مرور واحدة لفك تشفير جميع الأقسام الأقل مخفية المرتبطة بـ القسم المحدد. يعامل كل قسم أقل مخفية شرائح الأقسام المتداخلة على أنها مجانية.

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

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

في الواقع، يتم دائمًا إنشاء 15 قسمًا من Shufflecake - يتم إرفاق كلمة مرور المستخدم بالأقسام المستخدمة، ويتم تزويد الأقسام غير المستخدمة بكلمة مرور تم إنشاؤها عشوائيًا (من المستحيل فهم عدد الأقسام المستخدمة بالفعل). عند تهيئة أقسام Shufflecake، يتم ملء القرص أو القسم أو جهاز الكتلة الظاهري المخصص لوضعها ببيانات عشوائية، مما يجعل من المستحيل تحديد البيانات التعريفية والبيانات الخاصة بـ Shufflecake في الخلفية العامة.

يتمتع تطبيق Shufflecake بأداء عالٍ إلى حد ما، ولكن نظرًا لوجود الحمل، فهو أبطأ تقريبًا في الإنتاجية مقارنة بتشفير القرص استنادًا إلى نظام LUKS الفرعي. يؤدي استخدام Shufflecake أيضًا إلى تكاليف إضافية لذاكرة الوصول العشوائي (RAM) ومساحة القرص لتخزين بيانات الخدمة. يقدر استهلاك الذاكرة بـ 60 ميجابايت لكل قسم، ومساحة القرص 1% من الحجم الإجمالي. وعلى سبيل المقارنة، فإن تقنية WORAM، المتشابهة في الغرض، تؤدي إلى تباطؤ من 5 إلى 200 مرة مع فقدان 75% من مساحة القرص القابلة للاستخدام.

تم اختبار مجموعة الأدوات ووحدة النواة فقط على Debian وUbuntu مع النواة 5.13 و5.15 (المدعومة على Ubuntu 22.04). تجدر الإشارة إلى أنه لا يزال ينبغي اعتبار المشروع بمثابة نموذج أولي عملي، ولا ينبغي استخدامه لتخزين البيانات المهمة. في المستقبل، نخطط لإجراء تحسينات إضافية على الأداء والموثوقية والأمان، بالإضافة إلى توفير القدرة على التمهيد من أقسام Shufflecake.

المصدر: opennet.ru

إضافة تعليق