
أداة تخزين إخفائي وتشفير الملفات

tird & tirdFStird /tɪrd/ (اختصار لعبارة "this is random data") هو أداة تشفير ملفات تقلل من البيانات الوصفية وتُخفي البيانات المشفرة.
باستخدام tird، يمكنك:
tirdFS) داخل ملفات الحاويات وأجهزة الكتل. بخلاف VeraCrypt وShufflecake، لا تحتوي حاويات tirdFS على ترويسات؛ يحدد المستخدم مواقع البيانات داخل الحاوية ويكون مسؤولاً عن إبقاء تلك المواقع منفصلة. يمكن استخدام أي منطقة ذات مظهر عشوائي من ملف أو جهاز كتلة كحاوية.يوفر tird إنكاراً معقولاً مدمجاً، حتى عند تخزين الملفات المشفرة خارج الحاويات. كما يساعد على مقاومة هجمات الإفصاح القسري عن المفاتيح (تحليل الشفرات بخرطوم المطاط، xkcd 538).
[!WARNING] قبل استخدام
tird، يرجى قراءة قسم "تحذيرات". لا يعتمد الأمان على الأداة فحسب، بل على أفعالك أيضاً: تخزين المفاتيح بشكل آمن، والعمل في بيئة آمنة، وتجنب وضع التصحيح مع البيانات الحقيقية.
من المخطط تثبيت التنسيق ووضع مواصفة رسمية في v1.0.0.
لست بحاجة إلى حفظ خيارات سطر الأوامر لاستخدام tird. تتميز هذه الأداة بواجهة أوامر قائمة على المطالبات: فقط شغّلها، واختر خياراً من القائمة، وأجب عن الأسئلة التي ستتبع.```
$ tird
MENU
———————————————————————————————————————————
0. Exit 1. Info & Warnings
2. Encrypt 3. Decrypt
4. Embed 5. Extract
6. Encrypt & Embed 7. Extract & Decrypt
8. Create w/ Random 9. Overwrite w/ Random
———————————————————————————————————————————
A0. SELECT AN OPTION [0-9]:
## خيارات الإدخال
يوجد 4 مجموعات من خيارات الإدخال: A (Action), D (Data), K (Keys), P (Proceed). وهي مرقمة لسهولة الوصف.```
+——————————————————————+————————————————————————+
| A0. SELECT AN OPTION | A. Select an action |
+——————————————————————+————————————————————————+
| D1. INPUT FILE PATH | |
| D2. COMMENTS | D. Enter data, |
| D3. OUTPUT FILE PATH | data location, |
| D4. OUTPUT FILE SIZE | data size |
| D5. START POSITION | |
| D6. END POSITION | |
+——————————————————————+————————————————————————+
| K1. KEYFILE PATH | K. Enter values |
| K2. PASSPHRASE | related to |
| K3. TIME COST | key derivation |
+——————————————————————+————————————————————————+
| P0. PROCEED? | P. Confirm to continue |
+——————————————————————+————————————————————————+
يمكن العثور على وصف تفصيلي لهذه الخيارات مع أمثلة هنا.
تتكون الحمولة التي سيتم تشفيرها أثناء إنشاء cryptoblob من:
يبدو تحديد الحمولة في واجهة المستخدم كما يلي:``` D1. FILE TO ENCRYPT (OPT): files.zip I: path: 'files.zip'; size: 2,824,230,648 B (2.6 GiB) D2. COMMENTS (DEFAULT='files.zip'): The X-Files, zip (секретные материалы) I: comments will be shown as ['The X-Files, zip (секретные материалы)']
## مادة المفاتيح المدخلة
`tird` يوفر خيار استخدام محتويات ملفات المفاتيح وعبارة مرور لاشتقاق مفاتيح لمرة واحدة.
- **ملفات المفاتيح (اختياري):** صفر أو ملف واحد أو عدة مسارات لملفات المفاتيح؛ لا يهم ترتيب الإدخالات. قد يكون مسار ملف المفتاح:
- ملفًا <ins>عاديًا</ins>. سيتم تجزئة محتويات ملف المفتاح، وسيُستخدم ملخصه لمزيد من تمديد المفاتيح واشتقاقها.
- جهاز <ins>كتلة</ins>. يتم التعامل معه مثل ملف مفتاح عادي: سيتم تجزئة المحتويات.
- <ins>دليلًا</ins>. سيتم تجزئة جميع الملفات داخل الدليل واستخدامها كملفات مفاتيح.
- **عبارة المرور (اختياري):** حتى 2048 بايتًا بعد [التطبيع](https://www.unicode.org/reports/tr15/) وفق معيار يونيكود (النموذج C)؛ يمكن حذفها.
يبدو تحديد IKM في الواجهة كما يلي:```
K1. KEYFILE PATH (OPT): key
I: path: 'key'; size: 32 B
I: reading and hashing contents of 'key'
I: keyfile accepted
K1. KEYFILE PATH (OPT):
K2. PASSPHRASE (OPT):
K2. CONFIRM PASSPHRASE:
I: passphrase accepted
لمزيد من التفاصيل، راجع المواصفات.
بينما تكون محتويات الرسالة المشفّرة محمية، فإن حجمها ومصدرها ووجهتها... ليست كذلك. البيانات مخفية، والبيانات الوصفية مكشوفة. أحيانًا، كل ما يحتاجه عدوك لكشف أسرارك هو ذلك.
نحن نقتل الناس بناءً على البيانات الوصفية.
![]() مقابل ![]() |
|---|
tirdFS — نظام ملفات إخفائي يحركه المستخدميستخدم tird تقنية موصوفة على النحو التالي:
إخفاء البيانات داخل بيانات مشفّرة أو داخل بيانات عشوائية. يتم تشفير الرسالة المراد إخفاؤها، ثم استخدامها لاستبدال جزء من كتلة أكبر بكثير من البيانات المشفّرة أو كتلة من البيانات العشوائية (الشيفرة غير القابلة للكسر مثل one-time pad تُنتج نصوصًا مشفّرة تبدو عشوائية تمامًا بدون المفتاح الخاص).
يمكنك تشفير ملفات ودمج كتل مشفّرة في حاويات بدءًا من مواضع اعتباطية. بعد كتابة الكتلة المشفّرة، ستحتاج إلى تذكّر موقعها في الحاوية (موضع البداية والنهاية)، والذي سيُستخدم لاحقًا لاستخراج الكتل المشفّرة. وبهذه الطريقة، يمكنك إنشاء tirdFS — نظام ملفات مخفي، بدون رأس، يحركه المستخدم داخل حاوية:
tirdFS ليس نظام ملفات مُثبّتًا بهياكل بيانات وصفية داخلية. إنه نموذج تخزين مخفي يُدار من المستخدم مبني من كتل مشفّرة موضوعة بشكل مستقل.
يمكن لأي ملف أو قرص أو قسم أكبر من الحد الأدنى لحجم الكتلة المشفّرة (1160 بايت) أن يكون حاوية صالحة. يمكن دمج الكتل المشفّرة في أي منطقة.
تتضمن أمثلة الحاويات الصالحة ما يلي:
مثال على بنية الحاوية:``` +—————————+—————————————+ <— Position 0 of the container | | | | | Random data | | | | | +—————————————+ <— Cryptoblob1 start position | Header- | | | less | Cryptoblob1 | | | | | Layer +—————————————+ <— Cryptoblob1 end position | | Random data | | Cake +—————————————+ <— Cryptoblob2 start position | | | | | Cryptoblob2 | | | | | +—————————————+ <— Cryptoblob2 end position | | Random data | +—————————+—————————————+
**ترويسة مُدارة من قبل المستخدم**
قد تبدو الترويسة النصية المنفصلة `tirdFS` المُدارة من قبل المستخدم كما يلي:```
[100000000:100345765] secret_video.mp4
[100345765:234765345] various_secrets.zip
[12654876456:14765345098] Epstein_files_part1.zip
أي أنه يجب أن يحتوي عادةً على موقع كل كتلة تشفير داخل الحاوية بالإضافة إلى تعليق مختصر. ومع ذلك، يبقى المستخدم حرًا في تحديد كيفية تخزين المواضع وما الذي يجب تضمينه في مثل هذا الترويسة.
الصورة التالية توضح مدى صعوبة التمييز بين إدخال بيانات عشوائي وآخر، وعملية تضمين كتل التشفير في حاوية.
حاوية فارغة تحتوي على بيانات عشوائية:

كتلة تشفير واحدة مضمّنة في الحاوية:

كتلتا تشفير مضمّنتان في الحاوية:

ثلاث كتل تشفير مضمّنة في الحاوية:

رسوم متحركة: تصور التضمين:

احملها في كل مكان. إنه حقك.
يرجى إلقاء نظرة على لقطة الشاشة التالية.
يبدو أن هذا الحجم البالغ 16 جيجابايت يحتوي على ملف واحد فقط بحجم 8.7 ميب. هل هذا صحيح بالفعل؟ ربما نعم، ربما لا.
يخبرنا نظام الملفات بوجود ملف واحد فقط هنا. لكن هل يوجد حقًا ملف واحد فقط على الحجم؟ لا يمكننا تحديد ذلك باستخدام نظام الملفات. في الواقع، قد توجد البيانات خارج نظام الملفات ولا يمكن اكتشافها بواسطة أدوات نظام الملفات. مساحة الـ 15.2 جيبيبايت المميزة كخالية قد تكون مشغولة بنظام ملفات مخفي. قد تكون هذه المساحة "الخالية" مستغلة بواسطة بيانات مشفرة مخفية.
هل يمكننا دحض وجود هذه البيانات؟ نعم، على سبيل المثال، من خلال فحص مستوى الإنتروبيا لهذه المساحة الخالية باستخدام binwalk. الإنتروبيا المنخفضة تشير إلى غياب محتمل للبيانات المخفية. الإنتروبيا المرتفعة لا تثبت بحد ذاتها وجود بيانات مشفرة مخفية. المناطق ذات الإنتروبيا المرتفعة يمكن أن تكون مجرد بيانات متبقية أو بيانات مشفرة مخفية.
إذا كنت مهتمًا بإخفاء البيانات خارج نظام الملفات الظاهر، فإن tird في خدمتك لتوفير عباءة إخفاء لملفاتك.
يمكن استخدام تشفير القفل الزمني (TLE) لمنع الخصم من الوصول السريع إلى النصوص الصريحة في حال اختراق مفتاح IKM (في حالة إكراه المستخدم، على سبيل المثال). في تنفيذنا، هو في الواقع اشتقاق مفتاح بقفل زمني قائم على إثبات العمل (PoW). يحدد خيار الإدخال "Time cost" عدد مرات تمريرات Argon2. إذا حددت عددًا كبيرًا بدرجة كافية من التمريرات، فسيستغرق تنفيذها وقتًا طويلاً. ومع ذلك، سيحتاج المهاجم إلى نفس القدر من الوقت عند استخدام أجهزة مماثلة. لا يمكن تسريع تنفيذ Argon2 من خلال التوازي، لذلك من المتوقع أن يكون الوقت الذي يقضيه المهاجم مماثلاً تقريبًا للوقت الذي يقضيه المدافع.
تنفيذ TLE هذا يعمل دون اتصال بالإنترنت، على عكس tlock.
عيّن قيمة TIME COST المطلوبة:```
K3. TIME COST (DEFAULT=4): 1000000
I: time cost: 1,000,000
W: decryption will require the same "TIME COST" value!
**TLE معقول:** لا يعلم الخصم القيمة الفعلية للتكلفة الزمنية، لذا يمكنك بشكل معقول تحريف عدد المرات. لا يمكن للخصم دحض ادعائك حتى يحاول فك تشفير cryptoblob باستخدام قيمة التكلفة الزمنية المحددة.
## خيارات سطر الأوامر
`tird` لا يتطلب أي خيارات لسطر الأوامر للاستخدام العادي.```
$ tird --help
tird v0.30.0
A tool for encrypting files and hiding encrypted data.
Homepage: https://github.com/hakavlad/tird
Usage:
tird [--unsafe-debug] [--unsafe-decrypt]
Start without options for normal usage.
Options:
--help print this help message and exit
--unsafe-debug enable unsafe debug mode
--unsafe-decrypt release plaintext even if MAC verification
failed (dangerous)
Examples:
$ tird
$ tird --unsafe-debug
[!WARNING] وضع التصحيح غير مخصص للاستخدام في بيئة الإنتاج!
شغّل tird باستخدام الخيار --unsafe-debug للاطلاع على ما يحدث داخل البرنامج أثناء تشغيله.
يعرض تفعيل وضع التصحيح أيضًا ما يلي:
[!WARNING] في هذا الوضع، قد يكون النص الصريح المُعاد معدّلًا أو مستبدلًا من قِبل مهاجم!
في وضع فك التشفير غير الآمن، سيُخرج tird النص الصريح حتى لو فشل التحقق من المصادقة. استخدم هذا الوضع فقط إذا كنت تفضّل التوافر على التكامل، عندما لا تتمكن من فك تشفير كتلة تشفيرية (cryptoblob) بنجاح في الوضع العادي.
tird:
tird:
tird التعامل مع (تشفير/تضمين) أكثر من ملف واحد في تمريرة واحدة. تشفير المجلدات والملفات المتعددة غير مدعوم.tird بتنظيف البيانات الوصفية لنظام الملفات (atime, mtime, ctime).tird ليست عالية جدًا (تصل إلى 730 MiB/s في اختباراتي على أجهزة حديثة).يمكن أن يساعد التشفير، لكنه لن ينقذك من سوء الاستخدام أو الثغرات الأمنية أو الهندسة الاجتماعية أو التهديدات المادية.
tird لمراجعة أمنية مستقلة من قِبل بشر.tird غير فعّال في بيئة مخترقة؛ وقد يؤدي تنفيذه في مثل هذه الحالات إلى تسريبات كارثية للبيانات.tird فعّالًا عند استخدامه مع مفاتيح قصيرة ويسهل تخمينها.tird بياناته الحساسة من الذاكرة بعد الاستخدام؛ فقد تبقى المفاتيح في الذاكرة بعد خروج البرنامج.tird بفرز ملخصات ملفات المفاتيح وعبارات المرور في زمن ثابت (constant-time).tird البيانات وليس المستخدم؛ فلا يمكنه منع التعذيب إذا كنت محل شك.HKDF وتنفيذًا سريعًا لـ ChaCha20)Argon2 و BLAKE2)tird(1)تحسين التوثيق.
لا تتردد في طرح الأسئلة أو ترك ملاحظات أو تقديم انتقادات في قسم المناقشات.