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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
webauthn_tpm_portable — पोर्टेबल, हार्डवेयर-समर्थित वेबऑथन क्रेडेंशियल्स जो TPM 2.0 का उपयोग करते हैं। मास्टर सीड से व्युत्पन्न नियतात्मक मूल कुंजी क्रॉस-डिवाइस क्रेडेंशियल पोर्टेबिलिटी सक्षम करती है। निजी हस्ताक्षर कुंजी कभी TPM से बाहर नहीं जाती। ब्राउज़र एक्सटेंशन और CLI शामिल है। | Kitploit
उपकरण/GitHubGitHub/mimi89999/webauthn_tpm_portable
एन्क्रिप्शन/डिक्रिप्शन उपकरणसुरक्षा वर्चुअलाइजेशनक्रिप्टोग्राफीहार्डवेयर सुरक्षाप्रमाणीकरण
GitHubmimi89999/webauthn_tpm_portable

webauthn_tpm_portable

पोर्टेबल, हार्डवेयर-समर्थित वेबऑथन क्रेडेंशियल्स जो TPM 2.0 का उपयोग करते हैं। मास्टर सीड से व्युत्पन्न नियतात्मक मूल कुंजी क्रॉस-डिवाइस क्रेडेंशियल पोर्टेबिलिटी सक्षम करती है। निजी हस्ताक्षर कुंजी कभी TPM से बाहर नहीं जाती। ब्राउज़र एक्सटेंशन और CLI शामिल है।

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
रिपॉजिटरी देखें
465 महीने पहलेअभी तक समीक्षित नहीं

WebAuthn TPM पोर्टेबल क्रेडेंशियल्स

⚠️ प्रारंभिक प्रमाण-अवधारणा। इस परियोजना का पूरी तरह से परीक्षण या ऑडिट नहीं किया गया है। इसे प्रयोग के अलावा किसी अन्य चीज़ के लिए उपयोग न करें।

पोर्टेबल, हार्डवेयर-समर्थित WebAuthn/पासकी क्रेडेंशियल्स जो TPM 2.0 का उपयोग करके कई उपकरणों पर काम करते हैं।

पारंपरिक TPM क्रेडेंशियल्स उस उपकरण से बंधे होते हैं जिसने उन्हें बनाया है। यह परियोजना उन्हें पोर्टेबल बनाती है, प्रत्येक उपकरण के TPM में एक निर्धारणात्मक मूल कुंजी (मास्टर सीड से व्युत्पन्न) आयात करके। एक TPM द्वारा एन्क्रिप्ट किए गए क्रेडेंशियल ब्लॉब्स को फिर किसी भी अन्य TPM द्वारा लोड और उपयोग किया जा सकता है जो उसी सीड से प्रावधानित है। निजी हस्ताक्षर कुंजियाँ TPM द्वारा प्रत्येक क्रेडेंशियल के लिए यादृच्छिक रूप से उत्पन्न होती हैं और हार्डवेयर के बाहर सादे पाठ में कभी मौजूद नहीं होती हैं।

मास्टर सीड की आवश्यकता केवल एक बार प्रति उपकरण प्रावधान के दौरान होती है। उसके बाद, सभी क्रिप्टोग्राफिक संचालन पूरी तरह से TPM के अंदर होते हैं।

यह कैसे काम करता है

एक ब्राउज़र एक्सटेंशन navigator.credentials को ओवरराइड करता है और WebAuthn कॉल को नेटिव मैसेजिंग के माध्यम से एक Python बैकएंड पर रूट करता है जो सीधे TPM से बात करता है। पंजीकरण पर, TPM पोर्टेबल पैरेंट के तहत एक नई हस्ताक्षर कुंजी बनाता है और एक एन्क्रिप्टेड ब्लॉब लौटाता है। प्रमाणीकरण पर, यह ब्लॉब को वापस लोड करता है, आंतरिक रूप से इसे डिक्रिप्ट करता है, और चुनौती पर हस्ताक्षर करता है।

आवश्यकताएँ

  • OS: Linux या Windows (macOS में TPM नहीं है)
  • हार्डवेयर: TPM 2.0
  • Python: 3.10+
  • ब्राउज़र: Firefox (Chrome समर्थन की योजना है)

स्थापना

1. निर्भरताएँ स्थापित करें

Linux (Debian/Ubuntu):

root@kitploit:~
sudo apt install tpm2-tools python3-tpm2-pytss python3-cryptography

Windows:

root@kitploit:~
pip install cryptography

Windows TBS (TPM Base Services) के माध्यम से ctypes के ज़रिए TPM से बात करता है, इसलिए किसी अतिरिक्त नेटिव पैकेज की आवश्यकता नहीं है।

2. नेटिव मैसेजिंग सेट करें

ब्राउज़र एक्सटेंशन native_host.py के साथ नेटिव मैसेजिंग के माध्यम से संचार करता है। आपको एक मेनिफेस्ट पंजीकृत करना होगा जो Firefox को बताता है कि होस्ट कहाँ मिलेगा।

फ़ाइल ~/.mozilla/native-messaging-hosts/webauthn_tpm_portable.json बनाएँ:

root@kitploit:~
{
    "name": "webauthn_tpm_portable",
    "description": "WebAuthn TPM Portable Credentials Backend",
    "path": "/absolute/path/to/native_host.py",
    "type": "stdio",
    "allowed_extensions": [
        "[email protected]"
    ]
}

path को native_host.py के पूर्ण पथ से बदलें। सुनिश्चित करें कि यह निष्पादन योग्य है (chmod +x native_host.py)।

Windows पर, नेटिव मैसेजिंग मेनिफेस्ट विंडोज रजिस्ट्री के माध्यम से पंजीकृत किया जाता है। विवरण के लिए Firefox नेटिव मैसेजिंग दस्तावेज़ देखें।

3. ब्राउज़र एक्सटेंशन लोड करें

root@kitploit:~
cd extension
npm install
npm run build

फिर Firefox में:

  1. about:debugging#/runtime/this-firefox खोलें
  2. "Load Temporary Add-on..." पर क्लिक करें
  3. extension/dist फ़ोल्डर के अंदर कोई भी फ़ाइल चुनें (जैसे manifest.json)

4. TPM को प्रावधानित करें

एक्सटेंशन पॉपअप खोलें और या तो मौजूदा सीड पेस्ट करें या "Generate" पर क्लिक करके नया बनाएं, फिर "Provision" पर क्लिक करें। यदि आप नई सीड बनाते हैं, तो इसे किसी सुरक्षित स्थान पर सहेजें। आपको अतिरिक्त उपकरणों को प्रावधानित करने के लिए इसकी आवश्यकता होगी, और इसे खोने का मतलब नए उपकरण स्थापित करने की क्षमता खोना है (पहले से प्रावधानित उपकरणों पर मौजूदा क्रेडेंशियल्स काम करते रहेंगे)।

प्रावधान CLI से भी किया जा सकता है:

root@kitploit:~
./webauthn_cli.py provision --generate
# or with an existing seed:
./webauthn_cli.py provision <seed_hex>

5. सत्यापित करें

root@kitploit:~
./webauthn_cli.py test

यह एक क्रेडेंशियल बनाता है, एक चुनौती पर हस्ताक्षर करता है, और हस्ताक्षर को सत्यापित करता है।

CLI संदर्भ

root@kitploit:~
webauthn_cli.py [--backend=BACKEND] <command> [args]

आदेश:

बैकएंड (--backend या WEBAUTHN_BACKEND env var के साथ चुने जाते हैं):

Backendविवरण
tpmकच्चे आदेशों के माध्यम से क्रॉस-प्लेटफ़ॉर्म TPM (डिफ़ॉल्ट)
linuxकेवल Linux, tpm2-pytss लाइब्रेरी का उपयोग करता है
softशुद्ध सॉफ़्टवेयर, कोई TPM आवश्यक नहीं (परीक्षण के लिए)

सुरक्षा

क्या सुरक्षित है

क्रेडेंशियल हस्ताक्षर कुंजियाँ TPM के अंदर उत्पन्न होती हैं और कभी भी सादे पाठ में बाहर नहीं जाती हैं। क्रेडेंशियल ID में एन्क्रिप्टेड ब्लॉब प्रावधानित TPM तक पहुँच के बिना बेकार है। सॉफ़्टवेयर-आधारित क्रेडेंशियल स्टोर्स के विपरीत, प्रमाणीकरण के दौरान निजी कुंजियाँ होस्ट मेमोरी में कभी मौजूद नहीं होती हैं, जो कोल्ड बूट हमलों और मैलवेयर-आधारित कुंजी निष्कर्षण से बचाता है।

TPM2_Duplicate (जो सैद्धांतिक रूप से कुंजियों को निर्यात कर सकता है) को अवरुद्ध किया गया है क्योंकि क्रेडेंशियल्स एक खाली authPolicy के साथ बनाए जाते हैं, जिससे पूर्ण सिस्टम पहुँच के साथ भी दोहराव असंभव हो जाता है।

क्या सुरक्षित नहीं है

प्रावधानित सिस्टम पर चलने वाला मैलवेयर TPM से चुनौतियों पर हस्ताक्षर करने के लिए कह सकता है, क्योंकि कोई उपयोगकर्ता सत्यापन नहीं है (कोई बटन दबाना या बायोमेट्रिक नहीं)। यह कुंजियों को निकाल नहीं सकता, लेकिन सक्रिय रहते हुए उनका उपयोग कर सकता है। यह सॉफ़्टवेयर-आधारित क्रेडेंशियल स्टोर्स की तुलना में एक संकीर्ण हमला सतह है जहाँ मैलवेयर सीधे कुंजियाँ चुरा सकता है।

सीड सुरक्षा

मास्टर सीड विश्वास की जड़ है। यदि यह समझौता किया जाता है, तो एक हमलावर अपना स्वयं का TPM प्रावधानित कर सकता है और उनके द्वारा प्राप्त किसी भी क्रेडेंशियल ब्लॉब का उपयोग कर सकता है। यदि यह खो जाता है और सभी प्रावधानित उपकरण अनुपलब्ध हो जाते हैं, तो क्रेडेंशियल्स पुनर्प्राप्त नहीं किए जा सकते। इसे ऐसे स्टोर करें जैसे आप एक हार्डवेयर वॉलेट रिकवरी वाक्यांश को स्टोर करेंगे: ऑफ़लाइन, एक सुरक्षित स्थान पर, आदर्श रूप से रिडंडेंसी के साथ (जैसे कई स्थानों पर विभाजित)।

बैकएंड

परियोजना में तीन विनिमेय बैकएंड शामिल हैं:

webauthn_tpm_portable.py प्राथमिक बैकएंड है। यह बाइट स्तर पर TPM कमांड बनाता है और Linux (/dev/tpmrm0) और Windows (ctypes के माध्यम से TBS API) दोनों पर काम करता है।

webauthn_tpm_linux.py tpm2-pytss Python लाइब्रेरी का उपयोग करता है और केवल Linux पर काम करता है।

webauthn_soft.py एक शुद्ध-सॉफ़्टवेयर कार्यान्वयन है जो बिना किसी TPM के समान क्रेडेंशियल प्रारूप का अनुकरण करता है। परीक्षण और विकास के लिए उपयोगी, लेकिन कोई हार्डवेयर सुरक्षा प्रदान नहीं करता।

समस्या निवारण

/dev/tpmrm0 पर 'अनुमति अस्वीकृत': अपने उपयोगकर्ता को tss समूह में जोड़ें और पुनः लॉगिन करें: sudo usermod -aG tss $USER

tpm2-pytss आयात त्रुटियाँ: sudo apt install python3-tpm2-pytss या pip install --upgrade tpm2-pytss --break-system-packages आज़माएँ।

एक्सटेंशन नेटिव होस्ट से कनेक्ट नहीं हो रहा है: जाँचें कि नेटिव मैसेजिंग मेनिफेस्ट में path एक पूर्ण पथ है जो native_host.py की ओर इशारा करता है। Firefox में ब्राउज़र कंसोल खोलें (Ctrl+Shift+J) और एक्सटेंशन से त्रुटियों की जाँच करें।

लाइसेंस

MIT

टूल डाउनलोड करें
Commandविवरण
statusजाँचें कि TPM प्रावधानित है या नहीं
provision --generateएक यादृच्छिक सीड उत्पन्न करें और प्रावधानित करें
provision <seed_hex>मौजूदा सीड के साथ प्रावधानित करें
create <rp_id>एक आश्रित पार्टी के लिए क्रेडेंशियल बनाएँ
sign <cred_id> <rp_id> <challenge>एक चुनौती पर हस्ताक्षर करें
verify <cred_id> <rp_id> <challenge> <sig>एक हस्ताक्षर सत्यापित करें
clearTPM से पोर्टेबल मूल कुंजी हटाएँ
testपूर्ण create/sign/verify चक्र चलाएँ