
CodeQL-आधारित स्कैनर जो रिपॉज़िटरी और GitHub संगठनों में क्रिप्टोग्राफ़िक फ़ंक्शन कॉल्स की सूची बनाता है, और SARIF प्रारूप में क्रिप्टोग्राफ़िक बिल ऑफ़ मटेरियल्स (CBOM) तैयार करता है।
क्वांटम कंप्यूटर आपके लिए इसे खोजने से पहले, अपने कोड में छिपी क्रिप्टोग्राफी को खोजें।
cryptoptic किसी रिपॉज़िटरी या पूरे GitHub संगठन को स्कैन करने के लिए CodeQL और GitHub Actions का उपयोग करता है और उपयोग में आने वाले प्रत्येक क्रिप्टोग्राफिक फ़ंक्शन, उसके स्रोत लाइब्रेरी, और उसे कहाँ कॉल किया जाता है, की एक इन्वेंटरी तैयार करता है।
क्रिप्टोग्राफिक रूप से प्रासंगिक क्वांटम कंप्यूटिंग के अपेक्षित आगमन का अर्थ है कि आज व्यापक रूप से उपयोग किए जाने वाले कई एल्गोरिदम अब डेटा को सुरक्षित नहीं रख पाएंगे। "अभी संग्रह करो, बाद में डिक्रिप्ट करो" इसे भविष्य का नहीं, बल्कि वर्तमान का जोखिम बनाता है।
किसी संगठन के पोस्ट-क्वांटम एल्गोरिदम पर माइग्रेट करने से पहले, उसे यह समझना आवश्यक है कि उसके कोडबेस में क्रिप्टोग्राफी का उपयोग कहाँ-कहाँ होता है। cryptoptic उस क्रिप्टोग्राफिक बिल ऑफ मटेरियल्स (CBOM) को बनाने में मदद करता है, ताकि कमज़ोर एल्गोरिदम को क्वांटम-सुरक्षित विकल्पों से बदला जा सके या पारदर्शी रूप से प्रबंधित किया जा सके।
cryptoptic को Nationwide Building Society में बनाया गया और आंतरिक रूप से उपयोग किया जाता है। इसे यहाँ व्यापक समुदाय के लिए जारी किया गया है।
इस रिपॉज़िटरी को क्लोन करें और इसे अपनी पसंद के एडिटर में खोलें।
.github/workflows/org-codeql-sarif-run.yml को संपादित करें और आवश्यक वर्कफ़्लो मान सेट करें।
| सेटिंग | विवरण |
|---|---|
ORG | स्कैन करने के लिए संगठन। व्यक्तिगत रिपॉज़िटरी के लिए, अपना GitHub उपयोगकर्ता नाम उपयोग करें। |
REPO |
अपने परिवर्तनों को कमिट और पुश करें।
GitHub में Actions टैब पर जाएँ और बाएँ साइडबार से CodeQL org run (crypto inventory) चुनें।
Run workflow पर क्लिक करें, वह ब्रांच चुनें जिसके विरुद्ध आप चलाना चाहते हैं, और हरे Run workflow बटन पर क्लिक करें।
उत्पन्न फ़ाइलें वर्कफ़्लो रन पर आर्टिफ़ैक्ट के रूप में प्रकाशित की जाती हैं:
cryptoptic पर ही काम करने के लिए, आपको आवश्यकता होगी:
योगदान का स्वागत है, जिसमें कोड, क्वेरीज़, दस्तावेज़ीकरण, परीक्षण और बग रिपोर्ट शामिल हैं। भाग लेने से पहले कृपया आचार संहिता पढ़ें; यह प्रत्येक प्रोजेक्ट स्थान पर लागू होती है।
निर्णय कैसे लिए जाते हैं इसके लिए GOVERNANCE.md देखें और किससे बात करनी है इसके लिए MAINTAINERS.md देखें।
कृपया सार्वजनिक GitHub issues के माध्यम से सुरक्षा भेद्यताओं की रिपोर्ट न करें। निजी तौर पर रिपोर्ट करने के तरीके और रिपोर्ट करने के बाद क्या अपेक्षा करें, इसके लिए SECURITY.md देखें।
यह प्रोजेक्ट Apache License, Version 2.0 के अंतर्गत लाइसेंस प्राप्त है। लाइसेंस की एक प्रति रिपॉज़िटरी में LICENCE या LICENSE नाम की फ़ाइल में शामिल होनी चाहिए। उपयोगकर्ताओं को प्रोजेक्ट का उपयोग, संशोधन या वितरण करने से पहले लाइसेंस की शर्तों की समीक्षा करनी चाहिए।
जहाँ प्रोजेक्ट का पुनर्वितरण किया जाता है, वहाँ Apache License 2.0 लागू कॉपीराइट, पेटेंट, ट्रेड मार्क और एट्रिब्यूशन नोटिसों के संरक्षण, लाइसेंस की एक प्रति को शामिल करने, जहाँ लागू हो वहाँ संशोधित फ़ाइलों के लिए नोटिस, और प्रोजेक्ट के साथ शामिल किसी भी NOTICE फ़ाइल के उचित प्रबंधन की आवश्यकता होती है।
यदि रिपॉज़िटरी में कोई NOTICE फ़ाइल शामिल है, तो उपयोगकर्ताओं और पुनर्वितरकों को Apache License 2.0 के अनुसार उस फ़ाइल में निहित एट्रिब्यूशन नोटिसों को संरक्षित करना होगा। NOTICE फ़ाइल को सटीक रखा जाना चाहिए और वितरण की सामग्री पर लागू नोटिसों को प्रतिबिंबित करना चाहिए।
Apache License 2.0 Nationwide के नाम, लोगो, ट्रेड मार्क या ब्रांडिंग का उपयोग करने की अनुमति नहीं देता। Nationwide ब्रांडिंग या प्रोजेक्ट-विशिष्ट ब्रांडिंग का कोई भी उपयोग प्रोजेक्ट की अलग ट्रेड मार्क नीति का पालन करना चाहिए।
जैसा कि Apache License 2.0 में वर्णित है, प्रोजेक्ट "AS IS" आधार पर प्रदान किया गया है, बिना किसी प्रकार की वारंटी या शर्तों के। उपयोगकर्ता यह निर्धारित करने के लिए ज़िम्मेदार हैं कि प्रोजेक्ट उनके उपयोग के लिए उपयुक्त है या नहीं और किसी भी आउटपुट पर भरोसा करने से पहले उसका सत्यापन करना उनकी ज़िम्मेदारी है।
| भाषा | स्थिति | TARGET_LANG मान |
|---|
| Python | समर्थित | python |
| JavaScript | समर्थित | javascript |
| .NET | समर्थित | csharp |
| Java | नियोजित |
| स्कैन करने के लिए रिपॉज़िटरी। संगठन की प्रत्येक रिपॉज़िटरी को स्कैन करने के लिए इसे खाली स्ट्रिंग के रूप में छोड़ दें। |
TARGET_LANG | स्कैन करने के लिए भाषा, मान्य मानों के लिए समर्थित भाषाएँ देखें। |