Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
git-remote-pqcrypt — एक एन्क्रिप्टेड Git remote helper जो rust में लागू किया गया है | Kitploit
उपकरण/GitHubGitHub/torm0r/git-remote-pqcrypt
एन्क्रिप्शन/डिक्रिप्शन उपकरणक्रिप्टोग्राफीक्लाउड सुरक्षाउपयोगिताएँ और फ्रेमवर्क
GitHubtorm0r/git-remote-pqcrypt

git-remote-pqcrypt

एक एन्क्रिप्टेड Git remote helper जो rust में लागू किया गया है

रिपॉजिटरी देखें
31 महीना पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

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 git-remote-pqcrypt रिमोट हेल्पर के माध्यम से pqcrypt का उपयोग करता है।
  5. मास्टर कुंजी को हेल्पर द्वारा स्थानीय रूप से डिक्रिप्ट किया जाता है और फिर पैकफ़ाइलों को स्थानीय रिपॉज़िटरी में डिक्रिप्ट किया जाता है।

रिमोट स्टोरेज की उदाहरण फ़ाइलें:

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-समर्थित भंडारण समर्थन शामिल है।

Unix-जैसे सिस्टम पर SFTP समर्थन के साथ स्थापित करने के लिए:

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

sftp सुविधा वर्तमान में Windows पर समर्थित नहीं है।

स्रोत से बिल्ड करें

डिफ़ॉल्ट बैकएंड समर्थन के साथ बिल्ड करें:

root@kitploit:~
cargo build --release

इसमें स्थानीय फ़ाइलसिस्टम और Git-समर्थित भंडारण समर्थन शामिल है।

Unix-जैसे सिस्टम पर SFTP समर्थन के साथ बिल्ड करने के लिए:

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, पूछी जाएगी।

init के बाद, pqcrypt नाम का एक Git रिमोट जोड़ा जाता है:

root@kitploit:~
git remote -v

उदाहरण:

root@kitploit:~
pqcrypt  pqcrypt::/path/to/encrypted-store (fetch)
pqcrypt  pqcrypt::/path/to/encrypted-store (push)
  1. Push करें:
root@kitploit:~
git push pqcrypt main
  1. Clone या fetch करें:
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 से शुरू होता है और वहाँ सार्वजनिक कुंजी जोड़ता है।

Push व्यवहार

pqcrypt सामान्य push को force push से Git refspec द्वारा अलग करता है।

सामान्य push की फ़ास्ट-फ़ॉरवर्ड जाँच की जाती है और यदि वे रिमोट इतिहास को अधिलेखित करेंगे तो अस्वीकार कर दिए जाते हैं।

रिमोट-हेल्पर व्यवहार

Git git-remote-pqcrypt बाइनरी के माध्यम से pqcrypt को एक रिमोट हेल्पर के रूप में आमंत्रित करता है।

जब Git द्वारा आमंत्रित किया जाता है, तो हेल्पर Git द्वारा उपयोग किए जाने वाले रिमोट-हेल्पर तर्क आकार की अपेक्षा करता है, उदाहरण के लिए:

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

प्रत्यक्ष CLI उपकमांड जैसे init, add-user, keygen, pubgen, और help को सामान्य उपयोगकर्ता कमांड माना जाता है, रिमोट-हेल्पर आह्वान नहीं।

बाइनरी प्रवेश बिंदु लाइब्रेरी रनटाइम को सौंपता है, इसलिए एप्लिकेशन तर्क क्रेट लाइब्रेरी के साथ-साथ स्थापित बाइनरी के माध्यम से भी परीक्षण योग्य है।

Git-समर्थित भंडारण कैश

Git-समर्थित भंडारण URL के लिए, pqcrypt सिस्टम कैश निर्देशिका के अंतर्गत एक स्थानीय कैश बनाए रखता है, उदाहरण के लिए:

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

pqcrypt संचालन से पहले अंतर्निहित Git रिपॉज़िटरी से एन्क्रिप्टेड स्थिति प्राप्त करता है और अद्यतन के बाद एन्क्रिप्टेड स्थिति को push करता है।

यदि कैश भ्रष्टाचार या कैश हानि का पता चलता है, तो 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

Unix-जैसे सिस्टम पर SFTP सक्षम के साथ चलाएँ:

root@kitploit:~
cargo test --features sftp

कुछ एंड-टू-एंड परीक्षण जो Unix-जैसे स्थानीय पथ व्यवहार पर निर्भर करते हैं, Windows पर अनदेखा किए जाते हैं।

CI बिल्ड

GitHub Actions Linux, macOS, और Windows पर प्रोजेक्ट बनाता है। वर्कफ़्लो आर्टिफैक्ट में CI रन से बाइनरी हो सकती है, लेकिन ये आधिकारिक रिलीज़ नहीं हैं।

सुरक्षा जानकारी

  • रिपॉज़िटरी सामग्री XChaCha20Poly1305 का उपयोग करके एन्क्रिप्ट की जाती है।
  • रिपॉज़िटरी मास्टर कुंजी HPKE के साथ XWing का उपयोग करके उपयोगकर्ताओं के लिए लपेटी जाती है।
  • प्रत्येक अधिकृत सार्वजनिक कुंजी को मास्टर कुंजी की अपनी एन्क्रिप्टेड प्रतिलिपि प्राप्त होती है।
  • कुंजियों से जुड़ी टिप्पणियाँ HPKE संबद्ध डेटा के रूप में प्रमाणित होती हैं। इसका मतलब है कि यदि टिप्पणी मेटाडेटा दूषित हो जाता है, तो मास्टर कुंजी उस रैपिंग के लिए डिक्रिप्ट नहीं हो सकती है।
  • Git refs और पैकफ़ाइल मेटाडेटा एन्क्रिप्टेड मेनिफ़ेस्ट के अंदर संग्रहीत होते हैं।
  • निजी कुंजी फ़ाइलें Unix-जैसे सिस्टम पर 0600 अनुमतियों के साथ बनाई जाती हैं।

सीमाएँ

  • यह प्रोजेक्ट प्रायोगिक है और इसका कोई औपचारिक सुरक्षा ऑडिट नहीं हुआ है।
  • वर्तमान में केवल स्थानीय फ़ाइलसिस्टम, Git-समर्थित, और वैकल्पिक SFTP भंडारण बैकएंड समर्थित हैं।
  • SFTP समर्थन वैकल्पिक sftp सुविधा के पीछे है और वर्तमान में Windows पर समर्थित नहीं है।
  • SFTP/Git बैकएंड में मजबूत वितरित लॉकिंग का अभाव है, इसलिए एक साथ push करने से डेटा हानि हो सकती है।
  • Git रिमोट-हेल्पर व्यवहार अभी भी अपेक्षाकृत न्यूनतम है और हर Git वर्कफ़्लो या CI/CD संचालन का समर्थन नहीं कर सकता है।
  • Force push समर्थित हैं, लेकिन वे सामान्य Git force push की तरह एन्क्रिप्टेड रिमोट इतिहास को फिर से लिख सकते हैं।
  • HPKE क्रेट एक git स्रोत पर निर्भर करता है क्योंकि XWing अभी तक प्रकाशित क्रेट रिलीज़ पर समर्थित नहीं है। HPKE अद्यतन होने पर इसे बदल दिया जाएगा।
  • उपयोगकर्ता पहुँच को रद्द करने या हटाने का कोई तरीका नहीं है। चूँकि उपयोगकर्ता Git इतिहास से मास्टर कुंजी पुनर्प्राप्त कर सकते हैं, सबसे अच्छा उपाय एक नई मास्टर कुंजी के साथ रिपॉज़िटरी को फिर से init करना और रिमोट को मिटाना है।
  • भंडारण प्रारूप भविष्य के संस्करणों में बदल सकता है।
  • 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-जैसे सिस्टम