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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
git-crypt — تشفير الملفات بشفافية في git | Kitploit
أدوات/GitHubGitHub/agwa/git-crypt
المصادقة والترخيصأدوات التشفير/فك التشفيرتسريب البياناتالتشفيركشف الأسرارأمن سلسلة التوريد
GitHubagwa/git-crypt

git-crypt

تشفير الملفات بشفافية في git

عرض المستودع
9.8k53812منذ 11 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

git-crypt - تشفير الملفات بشفافية في git

يمكّن git-crypt من تشفير وفك تشفير الملفات بشفافية في مستودع git. يتم تشفير الملفات التي تختار حمايتها عند الالتزام (commit)، وفك تشفيرها عند السحب (checkout). يسمح لك git-crypt بمشاركة مستودع بحرية يحتوي على مزيج من المحتوى العام والخاص. يتدهور أداء git-crypt بلطف، بحيث يمكن للمطورين الذين ليس لديهم المفتاح السري الاستمرار في استنساخ (clone) والالتزام (commit) بمستودع يحتوي على ملفات مشفرة. يتيح لك هذا تخزين موادك السرية (مثل المفاتيح أو كلمات المرور) في نفس مستودع الكود الخاص بك، دون الحاجة إلى قفل المستودع بأكمله.

تم كتابة git-crypt بواسطة Andrew Ayer ([email protected]). لمزيد من المعلومات، راجع https://www.agwa.name/projects/git-crypt.

بناء git-crypt

راجع ملف INSTALL.md.

استخدام git-crypt

قم بتكوين مستودع لاستخدام git-crypt:

root@kitploit:~
cd repo
git-crypt init

حدد الملفات المراد تشفيرها عن طريق إنشاء ملف .gitattributes:

root@kitploit:~
secretfile filter=git-crypt diff=git-crypt
*.key filter=git-crypt diff=git-crypt
secretdir/** filter=git-crypt diff=git-crypt

مثل ملف .gitignore، يمكنه مطابقة أنماط البدل (wildcards) ويجب تسجيله في المستودع. راجع أدناه لمزيد من المعلومات حول .gitattributes. تأكد من عدم تشفير ملف .gitattributes نفسه عن طريق الخطأ (أو ملفات git الأخرى مثل .gitignore أو .gitmodules). تأكد من أن قواعد .gitattributes موجودة قبل إضافة الملفات الحساسة، وإلا فلن يتم تشفير هذه الملفات!

شارك المستودع مع الآخرين (أو مع نفسك) باستخدام GPG:

root@kitploit:~
git-crypt add-gpg-user USER_ID

يمكن أن يكون USER_ID معرف مفتاح، أو بصمة كاملة، أو عنوان بريد إلكتروني، أو أي شيء آخر يحدد بشكل فريد مفتاحًا عامًا لـ GPG (راجع "HOW TO SPECIFY A USER ID" في صفحة دليل gpg). ملاحظة: git-crypt add-gpg-user سيضيف ويلتزم (commit) بملف مفتاح مشفر بـ GPG في دليل .git-crypt في جذر مستودعك.

بدلاً من ذلك، يمكنك تصدير مفتاح سري متماثل، والذي يجب عليك توصيله بشكل آمن إلى المتعاونين (GPG غير مطلوب، ولا تتم إضافة أي ملفات إلى مستودعك):

root@kitploit:~
git-crypt export-key /path/to/key

بعد استنساخ مستودع يحتوي على ملفات مشفرة، قم بفتح القفل باستخدام GPG:

root@kitploit:~
git-crypt unlock

أو باستخدام مفتاح متماثل:

root@kitploit:~
git-crypt unlock /path/to/key

هذا كل ما عليك فعله - بعد إعداد git-crypt (إما باستخدام git-crypt init أو git-crypt unlock)، يمكنك استخدام git بشكل طبيعي - يتم التشفير وفك التشفير بشفافية.

الحالة الحالية

أحدث إصدار من git-crypt هو 0.8.0، وتم إصداره في 2025-09-23. يهدف git-crypt إلى أن يكون خاليًا من الأخطاء وموثوقًا، مما يعني أنه لا ينبغي أن يتعطل أو يحدث خللًا أو يكشف بياناتك السرية. ومع ذلك، لم يصل بعد إلى مرحلة النضج، مما يعني أنه ليس موثقًا أو غنيًا بالميزات أو سهل الاستخدام كما ينبغي. بالإضافة إلى ذلك، قد تكون هناك تغييرات غير متوافقة مع الإصدارات السابقة تم تقديمها قبل الإصدار 1.0.

الأمان

git-crypt أكثر أمانًا من أنظمة تشفير git الشفافة الأخرى. يقوم git-crypt بتشفير الملفات باستخدام AES-256 في وضع CTR مع IV اصطناعي مشتق من SHA-1 HMAC للملف. وضع التشغيل هذا آمن من الناحية الدلالية بشكل قابل للإثبات تحت هجوم النص العادي المحدد الحتمي (deterministic chosen-plaintext attack). وهذا يعني أنه على الرغم من أن التشفير حتمي (وهو مطلوب حتى يتمكن git من التمييز عندما يتغير ملف أو لا يتغير)، فإنه لا يسرب أي معلومات تتجاوز ما إذا كان ملفان متطابقين أم لا. الاقتراحات الأخرى لتشفير git الشفاف تستخدم ECB أو CBC مع IV ثابت. هذه الأنظمة ليست آمنة من الناحية الدلالية وتسرب المعلومات.

القيود

يعتمد git-crypt على مرشحات git، والتي لم يتم تصميمها مع مراعاة التشفير. على هذا النحو، فإن git-crypt ليس أفضل أداة لتشفير معظم أو كل الملفات في مستودع. حيث يتألق git-crypt حقًا عندما يكون معظم مستودعك عامًا، ولكن لديك بعض الملفات (ربما مفاتيح خاصة مسماة *.key، أو ملف يحتوي على بيانات اعتماد API) والتي تحتاج إلى تشفيرها. لتشفير مستودع كامل، فكر في استخدام نظام مثل git-remote-gcrypt بدلاً من ذلك. (ملاحظة: لا يتم تأييد أمان git-remote-gcrypt.)

لا يقوم git-crypt بتشفير أسماء الملفات أو رسائل الالتزام (commit) أو أهداف الارتباطات الرمزية (symlink targets) أو روابط git أو البيانات الوصفية الأخرى.

لا يخفي git-crypt وقت تغيير الملف أو عدم تغييره، أو طول الملف، أو حقيقة تطابق ملفين (راجع قسم "الأمان" أعلاه).

لا يدعم git-crypt إلغاء الوصول إلى مستودع مشفر تم منحه سابقًا. ينطبق هذا على وضع GPG متعدد المستخدمين (لا يوجد أمر del-gpg-user لاستكمال add-gpg-user) وكذلك وضع المفتاح المتماثل (لا يوجد دعم لتدوير المفتاح). وذلك لأنه مشكلة معقدة بطبيعتها في سياق البيانات التاريخية. على سبيل المثال، حتى إذا تم تدوير المفتاح في نقطة ما في التاريخ، لا يزال بإمكان المستخدم الذي لديه المفتاح السابق الوصول إلى تاريخ المستودع السابق. تمت مناقشة هذه المشكلة بمزيد من التفصيل في https://github.com/AGWA/git-crypt/issues/47.

الملفات المشفرة باستخدام git-crypt غير قابلة للضغط. حتى أصغر تغيير في ملف مشفر يتطلب من git تخزين الملف المتغير بالكامل، بدلاً من مجرد فرق (delta).

على الرغم من أن git-crypt يحمي محتويات الملفات الفردية باستخدام SHA-1 HMAC، إلا أنه لا يمكن استخدام git-crypt بشكل آمن ما لم يتم حماية المستودع بأكمله من العبث (المهاجم الذي يمكنه تحوير مستودعك يمكنه تغيير ملف .gitattributes الخاص بك لتعطيل التشفير). إذا لزم الأمر، استخدم ميزات git مثل العلامات الموقعة (signed tags) بدلاً من الاعتماد فقط على git-crypt للتكامل.

لا يمكن تطبيق التصحيحات (patches) على الملفات المشفرة باستخدام git-crypt باستخدام git-apply، ما لم يكن التصحيح نفسه مشفرًا. لإنشاء تصحيح مشفر، استخدم git diff --no-textconv --binary. بدلاً من ذلك، يمكنك تطبيق تصحيح نص عادي (plaintext) خارج git باستخدام أمر patch.

لا يعمل git-crypt بشكل موثوق مع بعض واجهات git الرسومية التابعة لجهات خارجية، مثل Atlassian SourceTree و GitHub for Mac. قد يتم ترك الملفات في حالة غير مشفرة.

ملف Gitattributes

يتم توثيق ملف .gitattributes في صفحة دليل gitattributes(5). تنسيق نمط الملف هو نفسه المستخدم بواسطة .gitignore، كما هو موثق في صفحة دليل gitignore(5)، مع استثناء أن تحديد مجرد دليل (مثل /dir/) ليس كافيًا لتشفير جميع الملفات الموجودة أسفله.

لاحظ أيضًا أن النمط dir/* لا يطابق الملفات الموجودة تحت الدلائل الفرعية لـ dir/. لتشفير شجرة فرعية كاملة dir/، استخدم dir/**:

root@kitploit:~
dir/** filter=git-crypt diff=git-crypt

يجب ألا يتم تشفير ملف .gitattributes، لذا تأكد من أن أنماط البدل لا تطابقه عن طريق الخطأ. إذا لزم الأمر، يمكنك استبعاد .gitattributes من التشفير مثل هذا:

root@kitploit:~
.gitattributes !filter !diff
تنزيل الأداة