عن المشروع
git-crypt هو أداة سطر أوامر تتيح التشفير وفك التشفير الشفافين للملفات داخل مستودع git. يتم تشفير الملفات المخصصة للحماية تلقائيًا عند الالتزام (commit) وفك تشفيرها عند السحب (checkout)، مما يسمح للفرق بمشاركة مستودعات تحتوي على مزيج من المحتوى العام والخاص دون قفل المستودع بأكمله.
تشمل الميزات الرئيسية:
- تشفير وفك تشفير شفافان عبر مرشحات git، بحيث يمكن للمستخدمين العمل مع git بشكل طبيعي بعد الإعداد الأولي
- AES-256 في وضع CTR مع IV اصطناعي مشتق من HMAC-SHA-1 للملف، مما يوفر أمانًا دلاليًا تحت هجوم النص الصريح المختار الحتمي
- مشاركة المفاتيح المستندة إلى GPG للتعاون متعدد المستخدمين، حيث تتم إضافة المفاتيح العامة عبر git-crypt add-gpg-user
- تصدير مفتاح متماثل لتوزيع المفاتيح بشكل آمن دون الحاجة إلى GPG
- تدهور سلس، بحيث يمكن للمطورين الذين لا يملكون المفتاح السري استنساخ (clone) المستودع والالتزام (commit) فيه
يتم التكوين من خلال ملف .gitattributes الذي يحدد الملفات أو الأنماط التي يجب تشفيرها. تنسيق الأنماط مشابه لـ .gitignore، ويدعم أحرف البدل وأنماط الدلائل. يجب ألا يتم تشفير ملف .gitattributes نفسه، ويجب وضع القواعد قبل إضافة الملفات الحساسة.
اعتبارات الأمان: git-crypt أكثر أمانًا من أنظمة تشفير git الشفافة الأخرى التي تستخدم ECB أو CBC مع IV ثابت. ومع ذلك، فهو لا يشفر أسماء الملفات أو رسائل الالتزام أو أهداف الروابط الرمزية أو البيانات الوصفية الأخرى. كما أنه لا يخفي وقت تغيير الملف أو طول الملف أو حقيقة أن ملفين متطابقان. كما أنه لا يدعم إلغاء الوصول إلى مستودع مشفر تم منحه سابقًا، لأن هذا معقد بطبيعته في سياق البيانات التاريخية.
تشمل القيود: غير مناسب لتشفير معظم أو كل الملفات في المستودع (أكثر ملاءمة للتشفير الانتقائي لعدد قليل من الملفات الحساسة مثل المفاتيح الخاصة أو بيانات اعتماد API)، والملفات المشفرة غير قابلة للضغط لذا حتى التغييرات الصغيرة تتطلب تخزين الملف بأكمله، وقد لا تعمل بشكل موثوق مع بعض واجهات git الرسومية التابعة لجهات خارجية مثل Atlassian SourceTree وGitHub for Mac. لا يمكن تطبيق التصحيحات على الملفات المشفرة باستخدام git-apply ما لم يكن التصحيح نفسه مشفرًا.
أحدث إصدار هو 0.8.0، صدر في 23 سبتمبر 2025. يهدف المشروع إلى أن يكون خاليًا من الأخطاء وموثوقًا لكنه لم يصل بعد إلى النضج الكامل، وقد يتم إدخال تغييرات غير متوافقة مع الإصدارات السابقة قبل الإصدار 1.0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.