इस प्रोजेक्ट के बारे में
git-crypt एक कमांड-लाइन उपकरण है जो git रिपॉजिटरी के भीतर फ़ाइलों का पारदर्शी एन्क्रिप्शन और डिक्रिप्शन सक्षम करता है। सुरक्षा के लिए निर्दिष्ट फ़ाइलें कमिट पर स्वचालित रूप से एन्क्रिप्ट हो जाती हैं और चेकआउट पर डिक्रिप्ट हो जाती हैं, जिससे टीमें पूरे रिपॉजिटरी को लॉक किए बिना सार्वजनिक और निजी सामग्री का मिश्रण वाले रिपॉजिटरी साझा कर सकती हैं।
मुख्य विशेषताओं में शामिल हैं:
- git फ़िल्टर के माध्यम से पारदर्शी एन्क्रिप्शन और डिक्रिप्शन, ताकि प्रारंभिक सेटअप के बाद उपयोगकर्ता सामान्य रूप से git के साथ काम कर सकें
- फ़ाइल के SHA-1 HMAC से व्युत्पन्न सिंथेटिक IV के साथ CTR मोड में AES-256, जो नियतात्मक चुने-गए-प्लेनटेक्स्ट हमले के तहत सिमेंटिक सुरक्षा प्रदान करता है
- बहु-उपयोगकर्ता सहयोग के लिए GPG-आधारित कुंजी साझाकरण, जहां सार्वजनिक कुंजियाँ git-crypt add-gpg-user के माध्यम से जोड़ी जाती हैं
- GPG की आवश्यकता के बिना सुरक्षित कुंजी वितरण के लिए सममित कुंजी निर्यात
- ग्रेसफुल डिग्रेडेशन, ताकि गुप्त कुंजी के बिना डेवलपर्स अभी भी रिपॉजिटरी को क्लोन और कमिट कर सकें
कॉन्फ़िगरेशन एक .gitattributes फ़ाइल के माध्यम से किया जाता है जो निर्दिष्ट करती है कि कौन सी फ़ाइलें या पैटर्न एन्क्रिप्ट किए जाने चाहिए। पैटर्न प्रारूप .gitignore के समान है, जो वाइल्डकार्ड और निर्देशिका पैटर्न का समर्थन करता है। .gitattributes फ़ाइल स्वयं एन्क्रिप्ट नहीं होनी चाहिए, और संवेदनशील फ़ाइलों को जोड़ने से पहले नियम मौजूद होने चाहिए।
सुरक्षा विचार: git-crypt अन्य पारदर्शी git एन्क्रिप्शन सिस्टम की तुलना में अधिक सुरक्षित है जो निश्चित IV के साथ ECB या CBC का उपयोग करते हैं। हालांकि, यह फ़ाइल नाम, कमिट संदेश, सिमलिंक लक्ष्य, या अन्य मेटाडेटा को एन्क्रिप्ट नहीं करता है। यह नहीं छिपाता कि फ़ाइल कब बदलती है, फ़ाइल की लंबाई, या तथ्य यह है कि दो फ़ाइलें समान हैं। यह पहले से दिए गए एन्क्रिप्टेड रिपॉजिटरी तक पहुंच रद्द करने का समर्थन भी नहीं करता है, क्योंकि ऐतिहासिक डेटा के संदर्भ में यह स्वाभाविक रूप से जटिल है।
सीमाओं में शामिल हैं: अधिकांश या सभी फ़ाइलों को किसी रिपॉजिटरी में एन्क्रिप्ट करने के लिए उपयुक्त नहीं है (निजी कुंजी या API क्रेडेंशियल जैसी कुछ संवेदनशील फ़ाइलों के चयनात्मक एन्क्रिप्शन के लिए बेहतर उपयुक्त), एन्क्रिप्टेड फ़ाइलें संपीड़ित नहीं होती हैं, इसलिए छोटे बदलावों के लिए भी पूरी फ़ाइल संग्रहीत करने की आवश्यकता होती है, और यह कुछ तृतीय-पक्ष git GUI जैसे Atlassian SourceTree और GitHub for Mac के साथ विश्वसनीय रूप से काम नहीं कर सकता है। git-crypt से एन्क्रिप्ट की गई फ़ाइलों को git-apply के साथ पैच नहीं किया जा सकता जब तक कि पैच स्वयं एन्क्रिप्ट न हो।
नवीनतम संस्करण 0.8.0 है, जो 2025-09-23 को जारी किया गया था। परियोजना का लक्ष्य बग-मुक्त और विश्वसनीय होना है लेकिन अभी तक पूर्ण परिपक्वता तक नहीं पहुंची है, और संस्करण 1.0 से पहले पिछड़ा-असंगत परिवर्तन पेश किए जा सकते हैं।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.