Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/torm0r/git-remote-pqcrypt
أدوات التشفير/فك التشفيرالتشفيرأمن السحابةالأدوات والمكونات
GitHubtorm0r/git-remote-pqcrypt

git-remote-pqcrypt

أداة مساعدة عن بعد مشفرة لـ Git مطبقة بلغة Rust

عرض المستودع
3منذ شهر واحدلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

git-remote-pqcrypt


root@kitploit:~
THIS IS AN EXPERIMENTAL PROJECT, there hasnt been a formal security audit. DO NOT rely on this for any critical repositories.

git-remote-pqcrypt هو مساعد عن بعد مشفر لـ Git مماثل لـ gcrypt. يقوم بتخزين حزم Git وبيانات تعريف المستودع مشفرة عند السكون. الوصول يتم باستخدام تغليف XWing ما بعد الكمومي.

إصدار الحزمة الحالي: 0.2.0.

كيف يعمل

  1. يقوم git-remote-pqcrypt init بإنشاء مفتاح رئيسي للمستودع.
  2. يتم تغليف المفتاح الرئيسي لكل مستخدم باستخدام مفتاحه العام.
  3. يتم تشفير حزم Git وقائمة المحتويات باستخدام المفتاح الرئيسي.
  4. يستخدم Git pqcrypt من خلال المساعد عن بعد git-remote-pqcrypt.
  5. يتم فك تشفير المفتاح الرئيسي محليًا بواسطة المساعد ثم يتم فك تشفير حزم Git إلى المستودع المحلي.

أمثلة على ملفات التخزين عن بعد:

root@kitploit:~
keys.json
manifest.enc
objects/
    pack-.....pack.enc

يحتوي keys.json على بيانات تعريفية وأغلفة المفتاح الرئيسي المشفرة.

التثبيت

التثبيت السريع باستخدام Cargo

قم بتثبيت البناء الافتراضي من Git:

root@kitploit:~
cargo install --git https://github.com/Torm0r/git-remote-pqcrypt --locked

يقوم هذا بتثبيت git-remote-pqcrypt إلى دليل ثنائيات Cargo، عادةً ~/.cargo/bin.

تأكد من أن دليل ثنائيات Cargo موجود في متغير PATH، ثم تحقق من أنه يعمل:

root@kitploit:~
git-remote-pqcrypt --help

يتضمن البناء الافتراضي دعمًا لنظام الملفات المحلي والتخزين المدعوم بـ Git.

لتثبيت مع دعم SFTP على أنظمة شبيهة بـ Unix:

root@kitploit:~
cargo install --git https://github.com/Torm0r/git-remote-pqcrypt --locked --features sftp

ميزة sftp غير مدعومة حاليًا على Windows.

البناء من المصدر

بناء مع دعم الخلفية الافتراضية:

root@kitploit:~
cargo build --release

يتضمن هذا دعمًا لنظام الملفات المحلي والتخزين المدعوم بـ Git.

لبناء مع دعم SFTP على أنظمة شبيهة بـ Unix:

root@kitploit:~
cargo build --release --features sftp

قم بتثبيت الثنائي إلى مسار PATH:

root@kitploit:~
sudo cp target/release/git-remote-pqcrypt /usr/local/bin/

يجب أن يظل اسم الثنائي git-remote-pqcrypt، لأن Git يجد المساعدين عن بعد من خلال البحث عن git-remote-[name].

تحقق من أنه يعمل:

root@kitploit:~
git-remote-pqcrypt --help

المتطلبات

  • مجموعة أدوات Rust للبناء من المصدر
  • يجب تثبيت git
  • للتخزين المدعوم بـ Git، يلزم وجود بيانات اعتماد Git عاملة وهوية Git مهيأة
  • للوصول عبر SSH/SFTP، يجب تكوين المصادقة SSH الموجودة
  • دعم SFTP يتطلب البناء باستخدام --features sftp وهو متاح حاليًا لأنظمة شبيهة بـ Unix فقط

بداية سريعة

  1. انتقل إلى مستودع Git موجود أو أنشئ واحدًا.

  2. قم بتهيئة تخزين pqcrypt.

مسار محلي:

root@kitploit:~
git-remote-pqcrypt init pqcrypt:///path/to/encrypted-store

SFTP يتطلب البناء باستخدام ميزة sftp وهو مدعوم حاليًا فقط على أنظمة شبيهة بـ Unix:

root@kitploit:~
git-remote-pqcrypt init pqcrypt::sftp://[email protected]/path/to/store

مدعوم بـ Git:

root@kitploit:~
git-remote-pqcrypt init pqcrypt::[email protected]:org/store.git

إذا لم يكن هناك مفتاح خاص موجود، يتم إنشاء واحد في ~/.config/pqcrypt/key ويتم طباعة المفتاح العام.

سيُطلب منك إدخال تعليق اختياري للمفتاح، على سبيل المثال personal أو work-laptop.

بعد التهيئة، يتم إضافة مستودع بعيد باسم pqcrypt:

root@kitploit:~
git remote -v

مثال:

root@kitploit:~
pqcrypt  pqcrypt::/path/to/encrypted-store (fetch)
pqcrypt  pqcrypt::/path/to/encrypted-store (push)
  1. دفع:
root@kitploit:~
git push pqcrypt main
  1. استنساخ أو جلب:
root@kitploit:~
git clone pqcrypt::[email protected]:Torm0r/pqcrypt-test.git my-clone
  1. أضف مستخدمًا آخر.

يجب عليهم إنشاء زوج مفاتيح باستخدام:

root@kitploit:~
git-remote-pqcrypt keygen

يمكنهم الحصول على مفتاحهم العام باستخدام:

root@kitploit:~
git-remote-pqcrypt pubgen ~/.config/pqcrypt/key

أو يمكنهم نسخ المفتاح العام الذي طبعه keygen.

ثم يقوم مستخدم مخوَّل موجود بإضافتهم إلى المستودع:

root@kitploit:~
git-remote-pqcrypt add-user <base64-public-key>

قم بتشغيل هذا لمزيد من الخيارات:

root@kitploit:~
git-remote-pqcrypt add-user -h

افتراضيًا، يبحث add-user عن مستودع بعيد محلي لـ Git يبدأ عنوان URL الخاص به بـ pqcrypt ويضيف المفتاح العام هناك.

سلوك الدفع

يميز pqcrypt بين الدفع العادي والدفع القسري من خلال مرجع Git. يتم فحص الدفع العادي للتقدم السريع ويتم رفضه إذا كان سيؤدي إلى استبدال التاريخ البعيد.

سلوك المساعد عن بعد

يستدعي Git pqcrypt كمساعد عن بعد من خلال الثنائي git-remote-pqcrypt.

عند استدعائه بواسطة Git، يتوقع المساعد شكل وسيطة المساعد البعيد الذي يستخدمه Git، على سبيل المثال:

root@kitploit:~
git-remote-pqcrypt origin pqcrypt::/path/to/store

يتم التعامل مع الأوامر الفرعية المباشرة عبر سطر الأوامر مثل init وadd-user وkeygen وpubgen وhelp كأوامر مستخدم عادية، وليست استدعاءات للمساعد عن بعد.

يفوض نقطة الدخول للثنائي وقت تشغيل المكتبة، لذا يمكن اختبار منطق التطبيق من خلال مكتبة الحزمة وكذلك من خلال الثنائي المثبت.

ذاكرة التخزين المؤقت للتخزين المدعوم بـ Git

بالنسبة لعناوين URL للتخزين المدعوم بـ Git، يحتفظ pqcrypt بذاكرة تخزين مؤقت محلية تحت دليل ذاكرة التخزين المؤقت للنظام، على سبيل المثال:

root@kitploit:~
~/.cache/pqcrypt/

يجلب pqcrypt الحالة المشفرة من مستودع Git الداعم قبل العمليات ويدفع الحالة المشفرة بعد التحديثات.

إذا تم اكتشاف تلف أو فقدان في ذاكرة التخزين المؤقت، يحاول pqcrypt إعادة إنشاء ذاكرة التخزين المؤقت تلقائيًا عن طريق إعادة الجلب من مستودع Git الداعم.

صيغ URL

يتم قبول pqcrypt:: وpqcrypt:// وpqcrypt: جميعها ويتم تطبيعها داخليًا إلى pqcrypt::.

هذه متكافئة:

root@kitploit:~
git-remote-pqcrypt init pqcrypt:///path/to/store
git-remote-pqcrypt init pqcrypt::/path/to/store
git-remote-pqcrypt init pqcrypt:/path/to/store

يتم تحديد الخلفية بواسطة مسار التخزين:

أمثلة:

root@kitploit:~
pqcrypt::/tmp/store
pqcrypt:///tmp/store
pqcrypt:/tmp/store
pqcrypt::[email protected]:org/store.git
pqcrypt::https://github.com/org/store.git
pqcrypt::sftp://[email protected]/path/to/store

منطق اكتشاف المفتاح الخاص

أثناء فك التشفير، يبحث pqcrypt عن مفتاح خاص بالترتيب التالي:

  1. متغير البيئة PQCRYPT_KEY_PATH
  2. git config pqcrypt.keypath
  3. .pqcrypt/key في الدليل الحالي
  4. أي ملف مفتاح مطابق في ~/.config/pqcrypt، حيث يتم اختبار الكل

لإعدادات متعددة المفاتيح، على سبيل المثال مفاتيح العمل والشخصية:

root@kitploit:~
git config pqcrypt.keypath ~/.config/pqcrypt/work-key

يجب أن يكون المفتاح واحدًا من تلك المستخدمة أثناء init أو تمت إضافته عبر add-user.

التطوير

قم بتشغيل مجموعة الاختبار الكاملة:

root@kitploit:~
cargo test

قم بتشغيل مع تمكين SFTP على أنظمة شبيهة بـ Unix:

root@kitploit:~
cargo test --features sftp

يتم تجاهل بعض اختبارات النهاية إلى النهاية التي تعتمد على سلوك المسار المحلي لأنظمة شبيهة بـ Unix على Windows.

بنيات CI

تبني GitHub Actions المشروع على Linux وmacOS وWindows. قد تحتوي قطع العمل في سير العمل على ثنائيات من تشغيلات CI، لكن هذه ليست إصدارات رسمية.

معلومات الأمان

  • يتم تشفير محتويات المستودع باستخدام XChaCha20Poly1305.
  • يتم تغليف المفتاح الرئيسي للمستودع للمستخدمين باستخدام HPKE مع XWing.
  • يتلقى كل مفتاح عام مخوّل نسخة مشفرة خاصة به من المفتاح الرئيسي.
  • يتم توثيق التعليقات المرفقة بالمفاتيح كبيانات مرتبطة بـ HPKE. وهذا يعني أنه إذا تم تلف بيانات التعليقات الوصفية، فقد لا يتم فك تشفير المفتاح الرئيسي لهذا الغلاف.
  • يتم تخزين مراجع Git وبيانات تعريف حزمة الملفات داخل قائمة المحتويات المشفرة.
  • يتم إنشاء ملفات المفاتيح الخاصة بأذونات 0600 على أنظمة شبيهة بـ Unix.

القيود

  • هذا المشروع تجريبي ولم يحصل على تدقيق أمني رسمي.
  • حاليًا، يتم دعم أنظمة الملفات المحلية والتخزين المدعوم بـ Git وخلفية تخزين SFTP الاختيارية فقط.
  • دعم SFTP موجود خلف ميزة sftp الاختيارية وغير مدعوم حاليًا على Windows.
  • تفتقر خلفيات SFTP/Git إلى قفل موزع قوي، لذا قد تؤدي الدفعات المتزامنة إلى فقدان البيانات.
  • لا يزال سلوك المساعد البعيد لـ Git بسيطًا نسبيًا وقد لا يدعم كل سير عمل Git أو عملية CI/CD.
  • يتم دعم الدفعات القسرية، لكنها يمكنها إعادة كتابة التاريخ البعيد المشفر تمامًا مثل الدفعات القسرية العادية لـ Git.
  • تعتمد حزمة HPKE على مصدر git لأن XWing غير مدعوم بعد في إصدارات الحزمة المنشورة. سيتم تغيير هذا بمجرد تحديث HPKE.
  • لا توجد طريقة لإلغاء أو إزالة وصول المستخدم. نظرًا لأن المستخدمين يمكنهم استعادة المفتاح الرئيسي من تاريخ Git، فإن أفضل إجراء هو إعادة تهيئة المستودع بمفتاح رئيسي جديد ومسح البعيد.
  • قد يتغير تنسيق التخزين في الإصدارات المستقبلية.
  • يتطلب التخزين المدعوم بـ Git بيانات اعتماد Git عاملة وهوية Git مهيأة للالتزامات.
  • بالنسبة لمصادقة Git أو SSH أو SFTP، يعتمد pqcrypt على بيانات اعتماد SSH/Git الموجودة.
  • يجب تثبيت ssh وgit.
تنزيل الأداة
النمطالخلفيةملاحظات
/local/pathنظام الملفات المحليافتراضي
git@host:, *.git, https://git*مدعوم بـ Gitافتراضي
sftp:// أو ssh://SFTPيتطلب --features sftp؛ أنظمة شبيهة بـ Unix فقط