الإنكار المعقول في التطبيقات: ما هو ولماذا يهم
الإنكار المعقول يعني أن وجود البيانات المخفية لا يمكن إثباته.
الإنكار المعقول في التشفير خاصية تخزين تتيح للمستخدم كشف مجموعة بيانات واحدة دون ترك أثر بنيوي يثبت وجود مجموعة أخرى. يجب أن يحدد الادعاء نموذج التهديد الخاص به: فاللقطة الثابتة لخزنة مشفرة مبطّن تبطينًا صحيحًا تختلف عن جهاز حي مخترق أو بيانات الخدمة السحابية الوصفية أو نسخ موجودة في مكان آخر. هذا أكثر من ميزة إخفاء؛ فهو يعتمد على عمل التشفير والتخطيط والتبطين والتصميم التشغيلي معًا.
يشرح هذا الدليل كيف يعمل الإنكار المعقول في التطبيقات، والفرق بين الإنكار التشفيري الحقيقي وأوضاع الإخفاء الشكلية، والسيناريوهات الواقعية التي يهم فيها، وكيفية تقييم ادعاءات الإنكار.
ما يعنيه الإنكار المعقول في التشفير
في اللغة اليومية، يعني الإنكار المعقول أنك تستطيع إنكار شيء بمصداقية. في تشفير التخزين، يكون الهدف المفيد أضيق: يجب ألا يستطيع فاحص الخزنة المشفرة التمييز بين المحتوى المخفي والمساحة المبطّنة غير المستخدمة ضمن نموذج التهديد المعلن. لا يستطيع أي تطبيق مدّ هذا الوعد ليشمل خزنة مفتوحة أصلًا، أو مدخلات مسجّلة، أو نسخًا خارجية، أو أي شكل من اختراق الجهاز.
نشأ المفهوم في تشفير القرص. ريادة TrueCrypt (وخلفه VeraCrypt) في الحجم المخفي: حجم مشفّر داخل حجم مشفّر آخر. كلمة مرور تكشف عن الحجم الخارجي بملفات غير حساسة. كلمة مرور مختلفة تكشف عن الحجم الداخلي المخفي بملفات حساسة. لا يستطيع المحقق الجنائي تحديد ما إذا كان حجم مخفي موجوداً لأن المساحة غير المستخدمة في الحجم الخارجي مملوءة ببيانات عشوائية غير قابلة للتمييز من البيانات المشفّرة.
بالنسبة للتطبيقات، الإنكار المعقول يعني أن بيانات اعتماد مختلفة (كلمات مرور أو أرقام PIN أو أنماط) تفتح مجموعات بيانات مختلفة، وأنه لا توجد بيانات وصفية أو سجل أو علامة تهيئة أو أثر هيكلي يكشف عن وجود مجموعات بيانات إضافية.
الإنكار الحقيقي مقابل أوضاع الإخفاء الشكلية
هذا هو التمييز الحاسم الذي تُخطئه معظم التطبيقات.
وضع الإخفاء الشكلي (ليس إنكاراً حقيقياً)
كثير من تطبيقات الخزنة تُقدّم ميزة "إخفاء" أو "PIN مزيّف". تُعيّن رقم PIN ثانوياً يفتح مساحة منفصلة بصور مختلفة. المشكلة: عادةً ما تُخزّن هذه التطبيقات علامة منطقية أو إدخال في قاعدة بيانات أو ملف تهيئة يُشير إلى أن وضع الإخفاء موجود ومُهيَّأ.
محقق جنائي يفهم التطبيق يستطيع إيجاد هذه العلامة. إيجاد وضع إخفاء مُهيَّأ يُثبت وجود بيانات مخفية. الإنكار شكلي — يعمل ضد المتلصص العرضي لكن يفشل تحت الفحص الجنائي.
علامات الإنكار الشكلي:
- التطبيق له مفتاح تبديل "وضع الإخفاء" في الإعدادات
- ملف تهيئة يُخزّن ما إذا كان وضع الإخفاء مُفعَّلاً
- جدول في قاعدة البيانات يُدرج معرّفات الخزنة مع مؤشرات النوع (رئيسي/إخفاء)
- بنية تخزين التطبيق تتغير عند تشغيل وضع الإخفاء
- إلغاء التثبيت وإعادة التثبيت يكشف سلوكاً مختلفاً عند تهيئة وضع الإخفاء
الإنكار التشفيري الحقيقي
الإنكار الحقيقي هو خاصية معمارية، وليس مفتاح ميزة. يجب أن يُصمَّم التخزين المشفّر بحيث:
تكشف بيانات الاعتماد البديلة فقط عن مجموعة البيانات الخاصة بها. لا يحتفظ النظام بعلامة خادعة منفصلة تحدد بيانات اعتماد واحدة على أنها تمويه. من الممكن أن تفشل بيانات الاعتماد غير الصالحة، ولكن هذا الفشل يجب ألا يكشف عن وجود مجموعة بيانات غير معلنة.
لا يوجد سجل للخزائن. التطبيق لا يستطيع تعداد عدد الخزائن الموجودة. لا يوجد عدد، ولا فهرس، ولا قائمة بمعرّفات الخزائن. محقق جنائي يفحص تخزين التطبيق يجد مجموعة غير منقّحة من البيانات المشفّرة.
لا توجد علامات تهيئة تكشف عن الخزائن المخفية. لا يوجد قيمة منطقية، ولا إدخال في قاعدة البيانات، ولا ملف تفضيلات يُشير إلى عدد الخزائن الموجودة أو ما إذا كان قد تمّ استخدام نمط معين.
التخزين مُحشو. الحجم الإجمالي للتخزين المستهلَك لا يتغيّر بناءً على عدد الخزائن أو الملفات. بدون الحشو، يمكن للمحقق تقدير عدد الخزائن من حجم البيانات المشفّرة الإجمالي مقارنةً بالمحتوى المرئي.
البيانات المشفّرة غير قابلة للتمييز من الضوضاء العشوائية. لا توجد حدود للملفات، ولا رؤوس، ولا علامات هيكلية تكشف عن انتهاء بيانات خزنة وبداية أخرى.
| الخاصية | إخفاء شكلي | إنكار حقيقي |
|---|---|---|
| بيانات منفصلة لكل بيانات اعتماد | نعم | نعم |
| لا سجل للخزائن | لا (قاعدة البيانات تتتبع الخزائن) | نعم |
| لا علامات تهيئة | لا (مفتاح الإخفاء مخزّن) | نعم |
| حشو التخزين | نادراً | نعم |
| يخفي التخزين البديل في صورة ثابتة | لا | نعم، ضمن نموذج تهديد التخزين المعلن |
| معماري مقابل كميزة | مفتاح ميزة | خاصية معمارية |
السيناريوهات الواقعية التي يهم فيها هذا
الإنكار المعقول ليس مصدر قلق نظري. يتناول مواقف واقعية موثّقة ومتكررة.
عبور الحدود
عند المعبر الحدودي، قد يفحص الفاحص الجهاز ويطلب بيانات الاعتماد. لو وفّر التصميم إنكارًا حقيقيًا على مستوى التخزين، لاستطاعت بيانات اعتماد واحدة كشف مجموعة بيانات بريئة بينما تخلو اللقطة الثابتة من أي علامة بنيوية تميّز المحتوى المخفي عن التبطين. يتيح تخطيط Vaultaire الحالي لفاحص يصل إلى حاوية التطبيق تقدير عدد الخزائن، لذلك لا يوفر هذا الضمان.
العنف المنزلي والعلاقات القسرية
شخص في علاقة مسيئة قد يحتاج إلى تخزين أدلة (صور إصابات، رسائل تهديد، وثائق قانونية) على جهاز يراقبه المسيء. إذا طلب المسيء رؤية الخزنة، يستطيع المستخدم فتح خزنة تحتوي على محتوى غير حساس. بدون إنكار حقيقي، ستكشف علامة "وضع الإخفاء" في تهيئة التطبيق عن وجود محتوى مخفي.
سرقة الجهاز
قد يحاول لص ماهر تقنيًا استخراج البيانات من هاتف مسروق. يهدف المخزن القابل للإنكار المبطّن تبطينًا صحيحًا إلى إخفاء عدد مجموعات البيانات التي تشغل المساحة المشتركة، مع أن التخصيص الإجمالي وحالة الجهاز والنسخ الاحتياطية والآثار التشغيلية تبقى ضمن نموذج التهديد. يشفّر Vaultaire حاليًا المحتويات، لكن عدد ملفات arena ما زال يحدّ عدد الخزائن التي تحتوي ملفات.
الحماية القانونية والصحفية
الصحفيون الذين يحمون مصادرهم، والمحامون الذين يحمون ملفات موكليهم، والناشطون في الأنظمة الاستبدادية يواجهون سيناريوهات حيث يمكن إكراههم على الكشف عن محتويات الجهاز. يُوفّر الإنكار الحقيقي دفاعاً موثوقاً ضد مصادرة البيانات.
ما ينفّذه Vaultaire اليوم
ينفّذ Vaultaire وصولًا مفصولًا بالأنماط وواجهة عادية دون قائمة خزائن مرئية. تساعد هذه الخصائص أثناء الاستخدام العادي للتطبيق، لكنها لا تلبي كل متطلبات قائمة التحقق من الإنكار الحقيقي أعلاه.
تفتح الأنماط المُعَدّة خزائن مشفرة منفصلة. تشتق PBKDF2 مفتاح خزنة من النمط وقيمة salt على مستوى الجهاز. يوثّق المفتاح المُعَدّ فهرسه المشفر ويفك تغليف مفتاح رئيسي عشوائي. ويعرض النمط غير المُعَدّ حالة فارغة بدل رسالة "نمط غير صحيح".
التنسيق المحلي ما زال يسمح بتقدير عدد الخزائن. يخزّن Vaultaire ملف جذر vault_index_<locator>.bin واحدًا لكل خزنة، ضمن مجموعة من 64 ملفًا أو أكثر مع ملفات تمويه. وتتشارك صفحات كل الخزائن وملفات arena الخاصة بها مجلدًا واحدًا بأسماء عشوائية. لا تكشف الأسماء النمط ولا اسم الخزنة ولا الخزنة التي ينتمي إليها الملف، لكن من يصل إلى حاوية التطبيق يستطيع تقدير عدد الخزائن التي تحتوي ملفات، لأن عدد ملفات arena يحدّه. وتوفر مصادقة AES-GCM أيضًا اختبارًا دون اتصال لمفاتيح الخزنة المرشحة.
التخزين المحلي ليس ثابت الحجم. يُشفَّر محتوى الملفات والبيانات الوصفية، وتستخدم أجزاء النسخ الاحتياطي السحابي تبطين الحجم وسجلات تمويه. تقع ملفات الجذر ضمن مجموعة مع ملفات تمويه، وتُبقي ملفات arena التمويهية عدد ملفات arena ضمن نطاق، لكن عدد ملفات arena وعدد صفحات الكتالوج وأوقات الملفات وإجمالي التخزين ما زالت تكشف البنية.
حالة الاسترداد والإكراه موجودة. يحتفظ Vaultaire بمعلومات الاسترداد في قاعدة بيانات Keychain مشفرة بـ AES-GCM. يحذف وضع الإكراه (Pro) الفهارس والصفحات وملفات arena للخزائن الأخرى على هذا الجهاز (بحذف عادي للملفات دون الكتابة فوقها)، ويمسح بيانات الاسترداد، ويعزل هذا الجهاز عن المزامنة. ولا يمسح النسخ الاحتياطية السحابية أو النسخ على الأجهزة النظيرة، ويعتمد وقت الإكمال على العمل المحلي المطلوب.
لذلك يوفر Vaultaire تقسيمًا للواجهة وتخزينًا مشفرًا، لا دليلًا نظريًا معلوماتيًا على غياب خزنة إضافية. يخفي تنسيق التخزين الذي صدر في الإصدار 1.0.17 الملفات التي تنتمي إلى كل خزنة، لكن عدد ملفات arena فيه ما زال يعطي لقطة غير متصلة لحاوية التطبيق حدًّا لعدد الخزائن.
كيفية تقييم ادعاءات الإنكار
عندما يدّعي تطبيق الإنكار المعقول، اسأل:
- هل يوجد مفتاح تبديل "وضع الإخفاء"؟ إذا نعم، فهو شكلي. محقق جنائي يمكنه إيجاد مفتاح التبديل.
- هل التطبيق يمتلك قائمة خزائنات أو قاعدة بيانات؟ إذا نعم، وجود الخزائن قابل للإثبات.
- هل يمكن التحقق من التخمينات دون الاتصال بالإنترنت؟ يمكن للنص المشفر الذي تمت مصادقته التحقق من صحة المفتاح المرشح دون تجزئة كلمة المرور المنفصلة. اسأل ما الذي يحد من تكلفة التخمين وما إذا كان تخطيط التخزين يوفر أي بصمة مفاتيح أرخص.
- هل يتغيّر استهلاك التخزين مع عدد الخزائن؟ إذا نعم، يمكن لتحليل القرص تقدير عدد الخزائن.
- هل يستطيع التطبيق تعداد الخزائن؟ إذا كان التطبيق يستطيع إظهار قائمة بخزائنك، فتلك القائمة موجودة على الجهاز وقابلة للاكتشاف.
الأسئلة الشائعة
هل الإنكار المعقول قانوني؟
استخدام التشفير مع الإنكار المعقول قانوني في معظم الديمقراطيات. لا يوجد قانون ضد امتلاك بيانات مشفّرة على جهازك لا يمكن إثبات وجودها. في بعض الولايات القضائية (المملكة المتحدة بموجب RIPA، وأستراليا بموجب قانون المساعدة والوصول)، يمكن للسلطات إكراه الكشف عن مفاتيح التشفير. السؤال القانوني هو ما إذا كان إكراه الكشف عن مفتاح لبيانات لا يمكن إثبات وجودها قابلاً للتطبيق. هذا لا يزال مجالاً قانونياً متطوّراً.
هل يمكن للأدوات الجنائية اكتشاف الإنكار المعقول؟
يستطيع فاحص يحصل على حاوية تطبيق Vaultaire اكتشاف التخزين المشفر. تقع ملفات vault_index_*.bin في الجذر ضمن مجموعة من 64 ملفًا أو أكثر مع ملفات تمويه، وتتشارك صفحات كل الخزائن وملفات arena الخاصة بها مجلدًا واحدًا بأسماء عشوائية. لا تبيّن أسماء الملفات الخزنة التي ينتمي إليها كل ملف، لكن عدد ملفات arena يحدّ عدد الخزائن التي تحتوي ملفات، لذلك يستطيع الفاحص تقدير عدد خزائنك. ولا تكشف الملفات أسماء الخزائن ولا المحتويات الصريحة. لذلك يخفي التصميم الحالي الخزائن عن التصفح العادي، لا عن كل فحص جنائي للتخزين.
هل يعمل الإنكار المعقول ضد دولة قومية متعزّمة؟
يوفر AES-256-GCM حدًّا قويًا لسرّية المحتوى عندما تكون المفاتيح وقيم nonce والتنفيذ سليمة. لكن ذلك لا يجعل تخطيط تخزين Vaultaire الحالي قابلًا للإنكار أمام فاحص تابع لدولة: يستطيع الفاحص تقدير عدد الخزائن المحلية، ويستطيع الاختراق الحي استهداف الأنماط أو المفاتيح أو المعاينات أو الملفات المصدَّرة أثناء فتح الخزنة. تفصل الميزة الحالية بين الأنماط المختلفة في الواجهة؛ ولا تعد بأن الفاحص المصمم لن يستطيع إثبات وجود فهارس محلية إضافية.
ما الفرق بين الإنكار المعقول والخزائن المخفية؟
الخزائن المخفية خزائن لا تظهر في الواجهة العادية للتطبيق. أما الإنكار التشفيري القوي فخاصية منفصلة تعني أن البيانات المخفية لا يمكن تمييزها عن التخزين المبطّن غير المستخدم. يوفر Vaultaire حاليًا الخاصية الأولى. وما زال تنسيق التخزين الحالي يتيح لفاحص يصل إلى حاوية التطبيق تقدير عدد الخزائن، لذلك لا يوفر الخاصية الثانية.
هل يمكنني استخدام الإنكار المعقول مع النسخ الاحتياطية السحابية؟
يكتب Vaultaire بيانات النسخ الاحتياطي المشفرة وأجزاء الملفات المشفرة المبطّنة إلى قاعدة بيانات CloudKit الخاصة بالمستخدم. تقلّل الأسماء العشوائية لسجلات البيانات وتبطين الأجزاء إلى 10 ميجابايت وسجلات التمويه الكشف المباشر عن المحتوى. ويبقى عدد السجلات والحجم الإجمالي والتوقيت وأنماط التحديث بيانات وصفية مرئية للخدمة، لذلك لا ينشئ النسخ الاحتياطي السحابي مخزنًا ثابت الحجم قابلًا للإنكار نظريًا.
الخلاصة
يهدف إنكار التخزين القوي إلى منع الفاحص من التمييز بين البيانات المخفية والمساحة الحرة المبطّنة في خزنة مشفرة ثابت. تقدّم معظم التطبيقات التي تدّعي هذه الميزة أوضاع تمويه شكلية مع علامات إعداد قابلة للاكتشاف. يتطلب التعريف الأقوى نموذج تهديد دقيقًا، وغياب سجل خزائن قابل للعدّ، وغياب علامات إعداد كاشفة، وتبطينًا ثابتًا، وسجلات مشفرة لا تكشف الخانات الحقيقية.
يستخدم Vaultaire الأنماط المُعَدّة لفصل الخزائن المشفرة، ويُبقي أسماء الخزائن ومحتوياتها خارج الواجهة المقفلة. لكن تخطيط التخزين الحالي ما زال يتيح لفحص حاوية التطبيق تقدير عدد الخزائن. تعامل معه بوصفه إخفاءً على مستوى الواجهة يدعمه تشفير موثّق، لا دليلًا على غياب خزنة إضافية.