क्या गद्दी हमलों के वास्तविक परिणाम हैं?

Aug 18 2020

मैं एक कार्यक्रम लिख रहा हूं जो पायथन में डेटा को एन्क्रिप्ट करता है और पैडिंग ऑर्कल हमलों के बारे में सुना है , लेकिन मुझे लगता है कि वे ओवरराइड किए गए हैं (मेरा मतलब है, वास्तविक दुनिया के उपयोग क्या हैं?) पुराने कार्यान्वयन के लिए भी जो कमजोर हैं (जो बताते हैं कि क्या? पैडिंग SSLv3 की तरह सही या गलत है)।

चूंकि:

  1. अगर मुझे ज़रूरत है तो दो सिफरटेक्स्ट हैं $c(n-1)$, $c(n)$ जो पिछले दो एन्क्रिप्टेड मैसेज ब्लॉक हैं, और एक सर्वर है जो मुझे बताता है कि अगर डिक्रिप्टेड की पेडिंग है $c(n)$यह सही है या जो भी है, इसका मतलब यह नहीं है कि सर्वर जो कुछ भी आप इसे भेजता है उसे डिक्रिप्ट करता है (मेरा मतलब है, बस पूरे एन्क्रिप्टेड संदेश को भेजें जैसा कि आपने इसे प्राप्त किया और आउटपुट पढ़ा)। मेरा मतलब है, यह सर्वर बग है कि यह पहली बार में एक कुंजी नहीं लेता है और यह जांचता है कि क्या यह सही है।
  2. मान लेते हैं कि हमें बस इतना करना है कि अंतिम ब्लॉक (पैडिंग ब्लॉक) को जानने और डिक्रिप्ट करने के लिए उन दो सिफर संदेशों को भेजें। यह केवल तभी काम करता है जब पेडिंग प्लेटेक्स्ट ज्ञात हो या कम से कम यादृच्छिक या जो भी कारण हो।

लेकिन क्या कहते हैं, सी 2 और सी 3 जो पूरे संदेश के बीच में हैं? हम सी 3 और सी 2 जानते हैं, लेकिन हम नहीं जानते हैं और हम कभी भी पी 3 या पी 2 (प्लेनटेक्स्ट) को नहीं जान पाएंगे, न ही मध्यवर्ती राज्य आईएस 3 ; यानी p3 प्राप्त करने के लिए हम is3 के साथ XOR c2 नहीं कर सकते , इसलिए यह हमला मुझे लगता है कि हमें केवल पेडिंग ब्लॉक को केवल नई चीज़ के साथ डिक्रिप्ट करने की अनुमति देता है जिसे हम वास्तव में जानते थे कि पैडिंग ब्लॉक का एक मध्यवर्ती राज्य है।

मैं यह जानने के लिए कह रहा हूं कि क्या यह हमला वास्तविक दुनिया के निहितार्थ और वास्तविक डेटा डिक्रिप्शन क्षमताओं (वास्तविक डेटा) के साथ सिर्फ एक है।

जवाब

7 MaartenBodewes Aug 18 2020 at 23:14

मेरा मतलब है कि यह सर्वर बग है कि यह पहली बार में एक कुंजी नहीं लेता है और जाँच करें कि क्या यह सही है :)

उससे आपका क्या आशय है? कुंजी सही एक होनी चाहिए, और पेडिंग ऑरेकल हमले वास्तव में हमले को करने के लिए दूसरी तरफ उस कुंजी के साथ एन्क्रिप्ट किए गए सिफरटेक्स्ट को बदलते हैं ।

लेकिन सी 2, सी 3 के बारे में क्या कहना है जो पूरे संदेश के बीच में हैं, हम सी 3 और सी 2 जानते हैं लेकिन हम नहीं जानते हैं और हम कभी भी पी 3 (पाठ्यक्रम के संदर्भ) या मध्यवर्ती राज्य आईएस 3 को कभी नहीं जान पाएंगे।

नहीं, एक पेडिंग ऑरेकल अटैक एक संदेश को पूरी तरह से डिक्रिप्ट करने में सक्षम है। यह ठीक है क्योंकि XOR अगले ब्लॉक को प्रभावित करता है।

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

मैं यह जानने के लिए कह रहा हूं कि क्या यह हमला वास्तविक दुनिया के निहितार्थ और वास्तविक डेटा डिक्रिप्शन क्षमताओं (वास्तविक डेटा) के साथ सिर्फ एक है।

हाँ, यह पूरी तरह से और पूरी तरह से गलत है। एक पैडिंग ऑरेकल अटैक 128 बाइट्स प्रति बाइट का उपयोग करके पूरे संदेश को डिक्रिप्ट कर सकता है, और अन्य प्लेटेक्स्ट ऑर्कल्स वास्तव में अधिक प्रभावी हो सकते हैं।

इसके अलावा, प्राप्त अंत में एक परिवर्तित सादात स्वीकार करना संभवतः गोपनीयता खोने के रूप में खतरनाक है। उस कारण से आपको प्रमाणित एन्क्रिप्शन का उपयोग करना चाहिए - या एक प्रोटोकॉल जो बिना सीबीसी के बजाय प्रमाणित एन्क्रिप्शन का उपयोग करता है

5 Gilles'SO-stopbeingevil' Aug 19 2020 at 07:33

मैं यह जानने के लिए कह रहा हूं कि क्या यह हमला वास्तविक दुनिया के निहितार्थ और वास्तविक डेटा डिक्रिप्शन क्षमताओं (वास्तविक डेटा) के साथ सिर्फ एक है।

लकी तेरह हमले टीएलएस के खिलाफ एक वास्तविक दुनिया हमला है। यह उस समय टीएलएस प्रोटोकॉल (टीएलएस 1.0 - टीएलएस 1.1 और 1.2 मौजूद था, लेकिन बहुत कम अपनाने वाला था) के तत्कालीन संस्करणों के लिए एक गंभीर हमला था। तो नहीं, गद्दी हमले असली दुनिया में काम करते हैं।

(जो बताते हैं कि पेडिंग सही है या गलत है जैसे sllv3)।

भाग्यशाली तेरह संस्करण टीएलएस 1.2 तक के संस्करणों को प्रभावित करता है, जो आज सुरक्षित संचार के बहुमत के लिए उपयोग किया जाने वाला संस्करण है। यह केवल CBC का उपयोग करने वाले सिफर सुइट्स को प्रभावित करता है, जो इस हमले के कारण ठीक से पदावनत हैं, लेकिन अधिकांश समापन बिंदु अभी भी इसकी अनुमति देते हैं, भले ही वे AEAD सिफर्सुइट्स पसंद करेंगे। कई लेकिन सभी लोकप्रिय टीएलएस कार्यान्वयनों में कोड नहीं होते हैं जो लकी थिरीन हमले (प्रदर्शन की कीमत पर) को रोकता है। इसलिए, पेडिंग ओरेकल हमले ऐसे प्रोटोकॉल के लिए प्रासंगिक हैं जो अभी भी व्यापक उपयोग में हैं।

मैं एक प्रोग्राम लिख रहा हूं जो अजगर में डेटा एन्क्रिप्ट करता है और पैडिंग ऑर्कल हमलों के बारे में सुना है लेकिन मुझे लगता है कि वे ओवररेटेड हैं

खैर, यह सच है कि आपको ओरेकल हमलों के बारे में चिंता नहीं करनी चाहिए। लेकिन आपको चिंता करने का कारण यह नहीं होना चाहिए कि जब से वे जाने-माने हैं, हम जानते हैं कि उनका बचाव कैसे करें: पैडिंग का उपयोग न करें। और कोई एन्क्रिप्शन आधुनिक मोड पैडिंग का उपयोग नहीं करता है। बस किसी भी सामान्य AEAD मोड का उपयोग करें, जैसे GCM, CCM या ChaCha20 + Poly1305। या इससे भी बेहतर, एक उच्च-स्तरीय लाइब्रेरी का उपयोग करें जैसे NaCl / libsodium ( PyNaCl in Python): यदि आप AES को अपने कोड में टाइप कर रहे हैं, तो आप इसे गलत कर रहे हैं ।