Padding Oracle आक्रमण विस्तार से
CBC padding oracle आक्रमण को चरण-दर-चरण समझिए और जानिए कि डिक्रिप्शन त्रुटि बताने वाले छोटे-से-छोटे oracle भी विनाशकारी क्यों हो सकते हैं।
Padding Oracle आक्रमण विस्तार से, CoddyKit पर Cryptology Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Cryptology Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Cryptology Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
CBC मोड में डिक्रिप्शन की संरचना
CBC (सिफर ब्लॉक चेनिंग) मोड में प्रत्येक ब्लॉक के डिक्रिप्शन में ब्लॉक सिफर से कूट-पाठ ब्लॉक को डिक्रिप्ट करना और फिर परिणाम के साथ पिछले कूट-पाठ ब्लॉक का XOR करना शामिल होता है। इस XOR ऑपरेशन से एक महत्वपूर्ण गुण उत्पन्न होता है: कूट-पाठ ब्लॉक के बिट बदलकर हम अगले ब्लॉक के डिक्रिप्ट किए गए सादे पाठ में विशिष्ट बिटों पर अनुमानित प्रभाव डाल सकते हैं। यही गुण पैडिंग ओरेकल आक्रमण को संभव बनाता है।
PKCS#7 पैडिंग की व्याख्या
ब्लॉक सिफर को निश्चित आकार वाले ब्लॉक में इनपुट की आवश्यकता होती है। PKCS#7 पैडिंग अंतिम ब्लॉक को भरती है: यदि 3 बाइट पैडिंग की आवश्यकता हो, तो 0x03 मान वाली तीन बाइट जोड़ें। यदि ब्लॉक पहले से पूरा हो, तो एक पूरा पैडिंग ब्लॉक जोड़ें जिसमें सभी 16 बाइट 0x10 हों। डिक्रिप्शन के दौरान पैडिंग बाइट का सुसंगत होना सत्यापित किया जाता है—सभी N बाइट का मान N होना चाहिए—और फिर उन्हें हटा दिया जाता है। पैडिंग अमान्य होने पर डिक्रिप्शन विफल होना चाहिए।
ओरेकल: पैडिंग सत्यापन का शोषण
पैडिंग ओरेकल ऐसी कोई भी प्रणाली है जो यह बताती है कि डिक्रिप्ट किए गए कूट-पाठ में मान्य PKCS#7 पैडिंग है या नहीं। ओरेकल इनमें से कोई हो सकता है: स्पष्ट त्रुटि संदेश (अमान्य पैडिंग), अलग HTTP स्थिति कोड (500 बनाम 403), अलग त्रुटि प्रतिक्रिया निकाय या समय में अंतर तक—मान्य पैडिंग वाले डिक्रिप्शन की गति थोड़ी अधिक होती है। आक्रमणकारी को कुंजी जानने की आवश्यकता नहीं होती; उसे केवल यह द्विआधारी संकेत चाहिए: पैडिंग मान्य है या नहीं।
बाइट-दर-बाइट सादा पाठ पुनर्प्राप्ति
आक्रमणकारी किसी विशिष्ट कूट-पाठ ब्लॉक को लक्ष्य बनाता है। सादे पाठ की अंतिम बाइट पुनर्प्राप्त करने के लिए पिछले कूट-पाठ ब्लॉक की अंतिम बाइट बदलकर संशोधित कूट-पाठ ओरेकल को भेजें। 256 संभावित मानों को तब तक आज़माएँ जब तक ओरेकल मान्य पैडिंग की सूचना न दे। जो मान मान्य पैडिंग (0x01) उत्पन्न करता है, उस पर मध्यवर्ती डिक्रिप्शन मान ज्ञात हो जाता है—वह संशोधित बाइट के साथ XOR होकर 0x01 बनाता है। मूल कूट-पाठ बाइट के साथ XOR करने पर सादे पाठ की बाइट मिल जाती है।
पूरे ब्लॉक की पुनर्प्राप्ति
अंतिम बाइट पुनर्प्राप्त हो जाने के बाद उससे ठीक पहले वाली बाइट को लक्ष्य बनाया जाता है। अंतिम बाइट का मध्यवर्ती मान पहले से ज्ञात होता है, इसलिए उसे 0x02 बनाया जा सकता है। फिर उससे पहले वाली बाइट के लिए 256 मानों को तब तक आज़माया जाता है जब तक 0x02 0x02 वाली पैडिंग मान्य न हो जाए। प्रत्येक बाइट के लिए यह प्रक्रिया दोहराने पर 256 * 16 = 4,096 ओरेकल क्वेरी के औसत से पूरा 16-बाइट ब्लॉक पुनर्प्राप्त किया जा सकता है। तेज़ ओरेकल के साथ यह कुछ ही सेकंड में पूरा हो सकता है।
पूरा संदेश पुनर्प्राप्त करना
यह प्रक्रिया प्रत्येक सिफरटेक्स्ट ब्लॉक के लिए दोहराई जाती है (आईवी को छोड़कर, जिसे पिछले ब्लॉक के बिना पुनर्प्राप्त नहीं किया जा सकता)। 128-बाइट के सिफरटेक्स्ट (8 एईएस ब्लॉक) को पूरी तरह डिक्रिप्ट करने के लिए औसतन लगभग 32,000 ओरेकल प्रश्नों की आवश्यकता होती है। प्रति सेकंड सैकड़ों अनुरोध संसाधित करने वाले वेब सर्वर के विरुद्ध इसमें कुछ मिनट लगते हैं। हमलावर कूटलेखन कुंजी जाने बिना ही पूरा प्लेनटेक्स्ट पुनर्प्राप्त कर लेता है।
वास्तविक दुनिया के हमले: POODLE
POODLE (डाउनग्रेड किए गए विरासत कूटलेखन पर पैडिंग ओरेकल) ने SSL 3.0 के CBC पैडिंग सत्यापन का दुरुपयोग किया। SSL 3.0 में गैर-PKCS#7 पैडिंग योजना का उपयोग होता था, लेकिन इस हमले ने ओरेकल अवधारणा को उसके अनुरूप ढाल लिया। यदि कोई हमलावर SSL 3.0 सत्र में सामग्री डाल सकता था और क्लाइंटों को SSL 3.0 पर डाउनग्रेड करने के लिए बाध्य कर सकता था, तो वह पैडिंग ओरेकल तकनीक का उपयोग करके सत्र कुकीज़ पुनर्प्राप्त कर सकता था। POODLE के कारण SSL 3.0 को अप्रचलित करना पड़ा।
Lucky Thirteen और BEAST
Lucky Thirteen (2013) ने TLS की CBC में पहले MAC और फिर कूटलेखन वाली योजना में समय-आधारित साइड चैनल का दुरुपयोग किया। MAC सत्यापन के समय में कुछ नैनोसेकंड का अंतर इस आधार पर होता था कि पैडिंग मान्य थी या नहीं, जिससे समय-आधारित ओरेकल बनता था। BEAST (2011) ने TLS 1.0 के CBC मोड में पूर्वानुमेय आईवी का दुरुपयोग करके सत्र कुकीज़ पर चुने हुए प्लेनटेक्स्ट का हमला किया। दोनों हमलों ने दिखाया कि TLS में CBC मोड को सही ढंग से लागू करना मूलतः कठिन था।
रक्षा: CBC के बजाय AEAD का उपयोग करें
पैडिंग ओरेकल हमलों से निश्चित रक्षा के लिए CBC के बजाय AEAD (संबद्ध डेटा के साथ प्रमाणित कूटलेखन) मोड का उपयोग करें। एईएस-256-GCM और ChaCha20-Poly1305 जैसे AEAD मोड किसी भी डिक्रिप्शन या पैडिंग जाँच से पहले प्रमाणीकरण की पुष्टि करते हैं। यदि प्रमाणीकरण टैग अमान्य हो, तो डिक्रिप्शन होता ही नहीं और पैडिंग की कोई जानकारी उजागर नहीं होती। TLS 1.3 में AEAD अनिवार्य है और CBC को पूरी तरह हटा दिया गया है।
रक्षा: पहले कूटलेखन, फिर MAC
यदि AEAD उपलब्ध न हो, तो पहले कूटलेखन, फिर MAC वाला संयोजन सिफरटेक्स्ट पर MAC लगाता है, प्लेनटेक्स्ट पर नहीं। डिक्रिप्शन या पैडिंग जाँच से पहले MAC का सत्यापन किया जाता है। यदि MAC विफल हो, तो पैडिंग के बारे में कोई जानकारी उजागर किए बिना संचालन तुरंत रोक दिया जाता है। समय-आधारित ओरेकल से बचने के लिए यह कार्य स्थिर समय में किया जाना चाहिए। MAC सत्यापन की विफलता से यह पता नहीं चलता कि पैडिंग मान्य होती या नहीं।
पैडिंग ओरेकल की कमज़ोरियाँ पहचानना
पैडिंग ओरेकल की कमज़ोरियों का परीक्षण करने के लिए पहले किसी ज्ञात संदेश को कूटबद्ध करें, फिर संशोधित सिफरटेक्स्ट को अनुप्रयोग में भेजकर प्रतिक्रिया देखें। यदि मान्य और अमान्य पैडिंग से स्पष्ट रूप से अलग प्रतिक्रियाएँ मिलती हैं (त्रुटि संदेश, स्थिति कोड या प्रतिक्रिया समय), तो पैडिंग ओरेकल मौजूद है। padbuster और PadBuster जैसे स्वचालित उपकरण सिफरटेक्स्ट को व्यवस्थित रूप से संशोधित करके और प्रतिक्रियाओं का विश्लेषण करके वेब अनुप्रयोगों में पैडिंग ओरेकल की विशेष रूप से जाँच करते हैं।
पैडिंग ओरेकल की कार्यप्रणाली
कुंजी के बिना सिफरटेक्स्ट को डिक्रिप्ट करने के लिए पैडिंग ओरेकल हमले को लक्ष्य प्रणाली से क्या आवश्यक होता है?
पैडिंग ओरेकल हमले का पुनरावलोकन
पैडिंग ओरेकल का पुनरावलोकन: CBC डिक्रिप्शन का XOR गुण प्लेनटेक्स्ट बाइट में नियंत्रित बदलाव की अनुमति देता है, PKCS#7 पैडिंग सत्यापन एक द्विआधारी ओरेकल उजागर करता है, हमलावर बाइट मानों को क्रमशः आज़माकर और मान्य या अमान्य प्रतिक्रियाओं को देखकर बाइट-दर-बाइट प्लेनटेक्स्ट पुनर्प्राप्त करता है, वास्तविक हमलों में POODLE, Lucky Thirteen और BEAST शामिल हैं, और रक्षा के लिए AEAD (GCM, ChaCha20-Poly1305) पर स्विच किया जाता है, जो डिक्रिप्शन से पहले प्रमाणीकरण की पुष्टि करता है।
एआई शिक्षक के साथ Cryptology Academy सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 67
- पाठ
- 261
अक्सर पूछे जाने वाले प्रश्न
क्या “Padding Oracle आक्रमण विस्तार से” पाठ निःशुल्क है?
हाँ—“Padding Oracle आक्रमण विस्तार से” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Cryptology Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Cryptology Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“Padding Oracle आक्रमण विस्तार से” में मैं क्या सीखूँगा?
CBC padding oracle आक्रमण को चरण-दर-चरण समझिए और जानिए कि डिक्रिप्शन त्रुटि बताने वाले छोटे-से-छोटे oracle भी विनाशकारी क्यों हो सकते हैं। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Cryptology Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Cryptology Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Cryptology Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“Padding Oracle आक्रमण विस्तार से” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Cryptology Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Cryptology Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- Padding Oracle आक्रमण विस्तार से
- Replay आक्रमण और Nonce पुनःउपयोग की कमज़ोरियाँ
- एप्लिकेशन-स्तरीय कोड में Timing आक्रमण
- क्रिप्टोग्राफ़िक गलत-उपयोग के प्रमुख पैटर्न