
Project Wycheproof ज्ञात हमलों के विरुद्ध क्रिप्टो लाइब्रेरी का परीक्षण करता है।
प्रोजेक्ट वायचेप्रूफ एक सामुदायिक प्रबंधित रिपॉजिटरी है जिसमें परीक्षण वेक्टर शामिल हैं जिनका उपयोग क्रिप्टोग्राफी लाइब्रेरी डेवलपर्स ज्ञात हमलों, विनिर्देशन विसंगतियों और अन्य विभिन्न कार्यान्वयन बगों के विरुद्ध परीक्षण करने के लिए कर सकते हैं।
परीक्षण वेक्टरों को JSON परीक्षण वेक्टर डेटा के रूप में बनाए रखा जाता है, साथ में JSON स्कीमा फ़ाइलें भी होती हैं जो परीक्षण वेक्टर डेटा की संरचना का दस्तावेजीकरण करती हैं।
आपको यह देखना उपयोगी लग सकता है कि pyca/cryptography जैसे अन्य प्रोजेक्टों ने वायचेप्रूफ के परीक्षण वेक्टरों को कैसे एकीकृत किया है।
प्रोजेक्ट वायचेप्रूफ में सबसे लोकप्रिय क्रिप्टो एल्गोरिदम के लिए परीक्षण वेक्टर हैं, जिनमें शामिल हैं
परीक्षण वेक्टर यह पता लगाते हैं कि कोई लाइब्रेरी कई हमलों के प्रति संवेदनशील है या नहीं, जिनमें शामिल हैं
हम नए परीक्षण वेक्टर डेटा और एल्गोरिदम के योगदान का स्वागत करते हैं।
यदि आप योगदान देना चाहते हैं, तो कृपया CONTRIBUTING पढ़ें और हमें पुल रिक्वेस्ट भेजें। आप GitHub issues पर बग की रिपोर्ट भी कर सकते हैं या नए परीक्षणों का अनुरोध कर सकते हैं।
हम प्रोजेक्ट वायचेप्रूफ के विकास और रखरखाव को C2SP प्रोजेक्ट के रूप में पुनर्जीवित करने की प्रक्रिया में हैं, जिसमें परीक्षण वेक्टर डेटा पर नए सिरे से ध्यान केंद्रित किया गया है। हमारी तत्काल प्राथमिकताएँ हैं:
प्रोजेक्ट वायचेप्रूफ का नाम माउंट वायचेप्रूफ के नाम पर रखा गया है, जो दुनिया का सबसे छोटा पहाड़ है। इसके निर्माण के समय परियोजना का मुख्य उद्देश्य एक ऐसा लक्ष्य रखना था जो प्राप्त करने योग्य हो। पहाड़ जितना छोटा होगा, उस पर चढ़ने की संभावना उतनी ही अधिक होगी।
वायचेप्रूफ परीक्षण वेक्टर कुछ न कुछ रूप में कई महत्वपूर्ण क्रिप्टोग्राफी प्रोजेक्ट्स और लाइब्रेरीज़ द्वारा उपयोग किए जाते हैं। किसी विशेष क्रम में नहीं, इनमें शामिल हैं:
यदि आपका प्रोजेक्ट वायचेप्रूफ से परीक्षण वेक्टर का उपयोग करता है, तो बेझिझक इसे उपरोक्त सूची में जोड़ने के लिए PR खोलें!
वायचेप्रूफ के टेस्ट हार्नेस या परीक्षण वेक्टर डेटा का उपयोग करके पाए गए कुछ उल्लेखनीय ऐतिहासिक बग्स के लिए doc/bugs.md देखें।
testvectors/ निर्देशिका कहाँ है?हमने हाल ही में testvectors/ और testvectors_v1/ निर्देशिकाओं को एक एकीकृत निर्देशिका में मिला दिया है, जिसमें स्कीमा के लिए एक सुसंगत दृष्टिकोण है।
मूल ("v0") परीक्षण वेक्टर डेटा की आवश्यकता वाले उपयोगकर्ता wycheproof-v0-vectors टैग से इस रेपो को क्लोन कर सकते हैं, लेकिन भविष्य के अपडेट से लाभ उठाने के लिए testvectors_v1/ का उपयोग करने पर विचार करने के लिए प्रोत्साहित किया जाता है। यदि testvectors_v1/ में testvectors/ से फीचर/टेस्ट कवरेज गायब है, या आपके अपडेट को रोकने वाली कोई अन्य समस्या है, तो कृपया अपनी आवश्यकताओं का वर्णन करते हुए एक इश्यू खोलें।
लेखन के समय, निम्नलिखित testvectors_v1 फ़ाइलों में स्कीमा गायब हैं:
testvectors_v1/aes_ff1_base*_test.jsontestvectors_v1/aes_ff1_radix*_test.jsontestvectors_v1/ecdsa_secp256k1_sha256_bitcoin_test.jsontestvectors_v1/pbes2_hmacsha*_aes_*_test.jsontestvectors_v1/pbkdf2_hmacsha*_test.jsontestvectors_v1/rsa_pss_*_sha*_mgf*_params_test.jsontestvectors_v1/rsa_pss_misc_params_test.jsonउपरोक्त वेक्टरों के लिए स्कीमा का योगदान अत्यधिक स्वागतयोग्य होगा।
फ़ाइलों, फ़ॉर्मेट और टाइप्स के लिए कुछ पुराना दस्तावेज़ीकरण उपलब्ध है, लेकिन जरूरी नहीं कि यह वर्तमान परीक्षण वेक्टर स्थिति के साथ सिंक में हो।
सामान्य तौर पर, स्कीमा फ़ाइलों को संदर्भित करना पसंद करें क्योंकि ये CI में परीक्षण की जाती हैं ताकि यह सुनिश्चित किया जा सके कि वेक्टर फ़ाइल सामग्री उनके विज्ञापित स्कीमा से मेल खाती है।
ऐतिहासिक रूप से वायचेप्रूफ में टेस्ट हार्नेस (जैसे Java और Javascript क्रिप्टोग्राफी कार्यान्वयन के लिए) भी शामिल थे जो सीधे कार्यान्वयन के विरुद्ध विभिन्न हमलों का परीक्षण करते थे। सामुदायिक समर्थन में संक्रमण के बाद से ये हार्नेस हटा दिए गए हैं (लेकिन रुचि रखने वालों के लिए git इतिहास में cd27d64 पर अभी भी मौजूद हैं)। हमारा वर्तमान फोकस कार्यान्वयन-अज्ञेयवादी परीक्षण वेक्टरों पर है।
तीसरे पक्ष के क्रिप्टोग्राफी लाइब्रेरीज़ का सीधे परीक्षण करने का अर्थ है कि खामियाँ केवल परीक्षण के तहत प्रोजेक्ट्स द्वारा प्रतिबद्ध किए जाने और संभावित रूप से जारी होने के बाद ही सामने आती हैं। इसके बजाय, हम डाउनस्ट्रीम प्रोजेक्ट्स को प्रोत्साहित करते हैं कि वे अपनी विकास प्रक्रिया के हिस्से के रूप में वायचेप्रूफ परीक्षण वेक्टरों का उपयोग करके नियमित रूप से अपने कोड का परीक्षण करें। यह दृष्टिकोण खामियों को CVEs बनने से पहले पकड़ने में मदद करता है, इसका अर्थ है कि नई सुविधाओं का तुरंत परीक्षण किया जाता है, और रखरखाव के बोझ को वितरित करने में मदद करता है। यह वायचेप्रूफ अनुरक्षकों को कई प्रोजेक्ट्स के डाउनस्ट्रीम विकास को ट्रैक करने और साथ ही लगातार बढ़ती संख्या में भाषा और प्रोजेक्ट-विशिष्ट टेस्ट हार्नेस को बनाए रखने के बजाय परीक्षण वेक्टरों पर ध्यान केंद्रित करने की अनुमति देता है।
टेस्ट हार्नेस में रुचि रखने वाले पक्ष Rooterberg में Daniel Bleichenbacher द्वारा जारी कार्य को रुचिकर पा सकते हैं।
कॉपीराइट 2016-2026 द वायचेप्रूफ ऑथर्स, Apache License 2.0 के तहत प्रदान किया गया।
प्रोजेक्ट वायचेप्रूफ मूल रूप से निम्नलिखित द्वारा बनाया और अनुरक्षित किया गया था: