
badkeys v0.0.20
क्रिप्टोग्राफिक सार्वजनिक कुंजियों में सामान्य कमजोरियों का पता लगाने का उपकरण
badkeys
ज्ञात कमजोरियों के लिए क्रिप्टोग्राफ़िक सार्वजनिक कुंजियों की जाँच करने हेतु उपकरण और लाइब्रेरी
क्या?
badkeys विभिन्न प्रारूपों में सार्वजनिक कुंजियों की ज्ञात कमजोरियों के लिए जाँच करता है। एक वेब संस्करण badkeys.info पर पाया जा सकता है।
स्थापना
badkeys को pip के माध्यम से स्थापित किया जा सकता है:
pip3 install badkeys
आप एक वर्चुअल वातावरण का उपयोग करना चाह सकते हैं। विभिन्न स्थापना विकल्पों के विवरण के लिए, कृपया आधिकारिक Python दस्तावेज़ देखें। वैकल्पिक रूप से, आप git रिपॉजिटरी से सीधे ./badkeys-cli को कॉल कर सकते हैं।
आप Linux वितरणों और अन्य ऑपरेटिंग सिस्टमों के लिए badkeys पैकेजों का अवलोकन Repology पर पा सकते हैं।
उपयोग
badkeys का उपयोग करने से पहले, आपको ब्लॉकलिस्ट डेटा डाउनलोड करना होगा:
badkeys --update-bl
उसके बाद, आप badkeys को कॉल कर सकते हैं और क्रिप्टोग्राफ़िक सार्वजनिक कुंजियों वाली फ़ाइलों को पैरामीटर के रूप में पास कर सकते हैं:
badkeys test.crt my.key
यह स्वचालित रूप से फ़ाइल प्रारूप का पता लगाने की कोशिश करेगा। समर्थित हैं PEM प्रारूप में सार्वजनिक और निजी कुंजियाँ (PKCS #1 और PKCS #8 दोनों), X.509 प्रमाणपत्र, सर्टिफिकेट साइनिंग अनुरोध (CSR) और SSH सार्वजनिक कुंजियाँ। आप tests/data निर्देशिका में कुछ परीक्षण कुंजियाँ पा सकते हैं।
डिफ़ॉल्ट रूप से, badkeys केवल कमजोर कुंजियों के बारे में जानकारी आउटपुट करेगा, जिसका अर्थ है कि यदि कोई कमजोरी नहीं मिलती है तो कोई आउटपुट उत्पन्न नहीं होगा। -a पैरामीटर सभी कुंजियों के लिए आउटपुट बनाता है।
कमांड लाइन उपकरण 0 लौटाएगा यदि कुंजियाँ स्कैन की गईं, कोई त्रुटि नहीं हुई, और कोई कमजोरी नहीं पाई गई। यह एप्लिकेशन त्रुटियों के लिए 1 लौटाता है, यदि कोई इनपुट स्कैन नहीं किया जा सका (पार्सर त्रुटियाँ, असमर्थित कुंजी प्रकार, बिना कुंजी वाली फ़ाइलें) तो 2, और यदि कोई कमजोर कुंजी मिली तो 4 लौटाता है। रिटर्न कोड को बिटमास्क के रूप में जोड़ा जा सकता है। (जैसे, 2|4=6 इंगित करता है कि कुछ कुंजियाँ कमजोर थीं और कुछ स्कैन नहीं की जा सकीं।)
स्कैनिंग
badkeys SSH और TLS होस्ट को स्कैन कर सकता है और उनकी सार्वजनिक कुंजियों की स्वचालित रूप से जाँच कर सकता है। इसे -s (SSH) और -t (TLS) पैरामीटर के साथ सक्षम किया जा सकता है। डिफ़ॉल्ट रूप से, SSH को पोर्ट 22 पर स्कैन किया जाएगा और TLS को सामान्य प्रोटोकॉल के लिए कई पोर्ट पर स्कैन किया जाएगा (https/443, smtps/465, ldaps/636, ftps/990, imaps/993, pop3s/995 और 8443, जो आमतौर पर एक गैर-मानक https पोर्ट के रूप में उपयोग किया जाता है)।
वैकल्पिक पोर्ट --tls-ports और --ssh-ports के साथ कॉन्फ़िगर किए जा सकते हैं।
TLS और SSH स्कैनिंग को संयोजित किया जा सकता है:
badkeys -ts example.org
ध्यान दें कि स्कैनिंग मोड की सीमाएँ हैं। अन्य उपकरणों का उपयोग करना अक्सर अधिक वांछनीय होता है TLS/SSH कुंजियाँ एकत्र करने और उन्हें badkeys के साथ स्थानीय रूप से स्कैन करने के लिए।
SSH स्कैनिंग के लिए एक अतिरिक्त निर्भरता के रूप में paramiko की आवश्यकता होती है।
TLS स्कैनिंग एक होस्ट पर कई प्रमाणपत्रों का पता नहीं लगा सकती (जैसे ECDSA और RSA)। यह Python के ssl.get_server_certificate() फ़ंक्शन की सीमा है।
Python मॉड्यूल और API
badkeys को Python मॉड्यूल के रूप में भी उपयोग किया जा सकता है। हालाँकि, वर्तमान में सॉफ्टवेयर बीटा स्थिति में है और API नियमित रूप से बदल सकता है।
परिचय
badkeys को Hanno Böck द्वारा लिखा गया था।
इस कार्य को प्रारंभ में 2022 में Industriens Fond द्वारा CIDI परियोजना (Cybersecure IOT in Danish Industry) और Center for Information Security and Trust (CISAT) के माध्यम से वित्त पोषित किया गया था, जो कोपेनहेगन, डेनमार्क की IT यूनिवर्सिटी में है। 2025/2026 में, badkeys को NLnet के NGI0 Core Fund द्वारा समर्थित किया गया।