ملفات إخفاء المعلومات السابقة: نقوم بإخفاء البيانات مباشرةً في القطاعات

مقدمة قصيرة


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

هل من الممكن الاستغناء بطريقة أو بأخرى عن الخوارزميات الماكرة والتلاعب الدقيق بالبيانات ، مع ضمان أداء الحاوية ومستوى مقبول من الأمان للبيانات المخفية؟ في المستقبل ، سأقول - نعم ، يمكنك ذلك! وحتى سأقدم فائدة.

تفاصيل الطريقة الدموية


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

ميزة هذه الطريقة واضحة: نحن لا نعتمد على تنسيق الملف ، أو حتى على نوع نظام الملفات المستخدم.

العيوب هي ، كما أعتقد ، واضحة:

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

الآن دعنا ننتقل إلى التفاصيل.

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

السؤال التالي هو كيف يمكننا تمييز البيانات "الصحيحة" عن البيانات الفاسدة. هنا يساعدنا المجموع الاختباري ، ولكن ليس بسيطًا ، ولكن SHA1. ماذا؟ بالنسبة إلى git ، إنه جيد بما يكفي ، مما يعني أنه سوف يناسبنا. تقرر: نحن نقوم بتزويد كل جزء من المعلومات المحفوظة بمجمل اختباري ، وإذا تزامن ذلك بعد فك التشفير ، كان فك التشفير ناجحًا.

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

تحقق الطريقة في الممارسة العملية


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

كآلة Linux ، لسوء الحظ ، كان علي استخدام محطة الطقس على Raspberry Pi 3. ملقاة على الشرفة ، لا توجد ذاكرة كبيرة ، لذلك لن نخفي الملفات الكبيرة. نحن نقتصر على الحد الأقصى لحجم 10 ميغابايت. لا يوجد أي معنى في إخفاء الملفات الصغيرة جدًا أيضًا: تقوم الأداة المساعدة بكتابة البيانات إلى القرص في مجموعات 4 كيلوبايت. لذلك ، من الأسفل ، نحن نحصر أنفسنا في ملف 3 كيلوبايت - إنه يناسب مجموعة واحدة من هذا القبيل.

سوف نسخر من محرك الأقراص المحمول على مراحل ، ونتحقق بعد كل مرحلة من قراءة المعلومات المخفية:

  1. تنسيق سريع بتنسيق FAT16 بحجم كتلة يبلغ 16 كيلو بايت. هذا هو ما يقترحه نظام التشغيل Windows 7 باستخدام محرك أقراص فلاش لا يحتوي على نظام ملفات.
  2. تعبئة محرك أقراص محمول بكافة أنواع النفايات بنسبة 50٪.
  3. ملء محرك أقراص فلاش مع جميع أنواع القمامة هو 100 ٪.
  4. تنسيق "طويل" بتنسيق FAT16 (مع الكتابة فوق كل شيء).

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

Total clusters read: 250752, decrypted: 158
ERROR: cannot write incomplete secretFile


كما ترون ، تم فك تشفير 158 مجموعة فقط بنجاح (632 كيلو بايت من البيانات الخام ، والتي تنتج 636424 بايت من الحمولة). من الواضح أنه لا توجد طريقة للحصول على 10 ميغابايت ، ومن الواضح أن هناك تكرارات بين هذه المجموعات. حتى 1 ميغا بايت لا يمكن استعادتها بهذه الطريقة. لكن يمكن ضمان أننا سنقوم باستعادة 3 كيلو بايت من البيانات الحساسة من محرك أقراص فلاش حتى بعد تنسيقها وكتابتها على مقل العيون. ومع ذلك ، تُظهر التجارب أنه من الممكن تمامًا استخراج ملف 120 كيلوبايت من محرك أقراص فلاش.

لقد أظهر الاختبار الأخير ، لسوء الحظ ، أن محرك الأقراص المحمول تم الكتابة عليه جميعًا:

$ sudo ./steganodisk -p password /dev/sda
Device size: 250752 clusters
250700 99%
Total clusters read: 250752, decrypted: 0
ERROR: cannot write incomplete secretFile


لم تنجو مجموعة واحدة ... للأسف ، لكن ليس بشكل مأساوي! دعونا نحاول إنشاء قسم على محرك الأقراص المحمول قبل التنسيق ، وهو موجود بالفعل - نظام الملفات. بالمناسبة ، لقد جاءت من المصنع مع هذا التنسيق ، لذلك نحن لا نفعل أي شيء مشبوه.
من المتوقع أن تقل المساحة المتوفرة على محرك الأقراص المحمول قليلاً.

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

Total clusters read: 250752, decrypted: 405

لسوء الحظ ، لا يمكن تجميع ميغابايت من القطع ، ولكن مائتي كيلو بايت سهلة.

حسنًا ، آخر أخبار الاختيار الرابع ، هذه المرة بهيجة: التنسيق الكامل لمحرك الأقراص المحمول هذا لم يؤد إلى تدمير جميع المعلومات! 120 كيلو بايت من البيانات السرية تنسجم تماما مع المساحة غير المستخدمة.

جدول ملخص للاختبار:



القليل من النظريات: حول المساحة الحرة والقطاعات غير المستخدمة


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

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

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

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

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

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

فائدة للتجارب


يمكن العثور على مصادر المنفعة هنا.

للبناء ، ستحتاج إلى الإصدار 5.0 من Qt والإصدارات الأحدث و OpenSSL. إذا لم يحدث شيء ما ، فقد تضطر إلى إصلاح ملف steganodisk.pro.

يمكنك تغيير حجم الكتلة من 4 كيلو بايت إلى 512 بايت (في secretfile.h). في الوقت نفسه ، ستزيد نفقات المعلومات الرسمية: يشغل الرأس والاختباري 68 بايت ثابت.

يجب تشغيل الأداة المساعدة ، بطبيعة الحال ، مع حقوق المستخدم الجذر ، وبحذر. لن تكون هناك أسئلة قبل الكتابة فوق الملف أو الجهاز المحدد!

استمتع بها.

Source: https://habr.com/ru/post/ar447028/


All Articles