Cryptology Academy · पाठ

Entropy की कमी और कमज़ोर-कुंजी बग

Debian OpenSSL RNG बग और randomness की अन्य वास्तविक विफलताओं का अध्ययन करें।

पाठ 3, कुल 4 में से13 चरण

Entropy की कमी और कमज़ोर-कुंजी बग, CoddyKit पर Cryptology Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Cryptology Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Cryptology Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

एंट्रॉपी का अभाव क्या है

एंट्रॉपी का अभाव तब होता है जब किसी सिस्टम में अपने CSPRNG का बीजीकरण करने के लिए पर्याप्त अप्रत्याशित इनपुट नहीं होता। ऐसा नए बूट किए गए एम्बेडेड उपकरणों, वर्चुअलाइज़ किए गए सर्वरों या ऐसे सिस्टमों में होता है जहाँ उपयोगकर्ता का कोई इनपुट नहीं होता। RNG का आउटपुट पूर्वानुमेय हो जाता है।

Debian OpenSSL बग (CVE-2008-0166)

2006 में Debian के एक डेवलपर ने Valgrind द्वारा चिह्नित एक पंक्ति हटा दी: MD_Update(&m, buf, j)। यही पंक्ति एंट्रॉपी का स्रोत थी। परिणामस्वरूप, Debian पर OpenSSL का बीजीकरण केवल PID से हुआ (अधिकतम 32,768 मान)। 2006-2008 के दौरान उत्पन्न सभी कुंजियाँ 32,768 संभावनाओं के एक समूह में आती हैं।

Debian बग का प्रभाव

2006-2008 के दौरान Debian/Ubuntu सिस्टमों पर उत्पन्न RSA, DSA और ECDSA कुंजियाँ, SSH होस्ट कुंजियाँ, TLS प्रमाणपत्र और SSL VPN कुंजियाँ उजागर हो गईं। प्रभावित सिस्टम: Debian Etch, Debian Lenny, Ubuntu 7.04-8.04। काली सूचियाँ प्रकाशित की गईं और प्रमाणपत्र रद्द किए गए।

वर्चुअल मशीनों की RNG समस्या

वर्चुअल मशीनों को समान डिस्क स्थिति के साथ क्लोन किया जा सकता है। यदि दोनों वर्चुअल मशीनें समान CSPRNG स्थिति से कुंजियाँ उत्पन्न करती हैं, तो वे समान कुंजियाँ उत्पन्न करेंगी। हाइपरवाइज़र अब VirtIO RNG या ACPI तालिकाओं के माध्यम से एंट्रॉपी डालते हैं, लेकिन गलत ढंग से कॉन्फ़िगर की गई वर्चुअल मशीनों को बूट के समय अब भी यह जोखिम रहता है।

एम्बेडेड सिस्टम और IoT

IoT उपकरण (राउटर, कैमरे) अक्सर एंट्रॉपी संचित होने से पहले, पहली बार बूट के दौरान SSH/TLS कुंजियाँ उत्पन्न करते हैं। अध्ययनों में पाया गया कि लाखों उपकरण कुछ हज़ार RSA कुंजी युग्म साझा कर रहे थे, क्योंकि उन सभी का बीजीकरण उसी कम-एंट्रॉपी वाली बूट स्थिति से हुआ था।

RSA कुंजियों पर GCD हमला

Lenstra आदि ने (2012) 11.7 मिलियन TLS प्रमाणपत्र एकत्र किए और प्रत्येक जोड़ी के GCD की गणना की। 12,720 RSA कुंजियाँ एक ही अभाज्य गुणक साझा करती मिलीं — अर्थात दोनों कुंजियों का पूर्ण गुणनखंडन किया जा सकता था। सभी सार्वजनिक कुंजियों में से 0.2% कुंजियाँ टूट चुकी थीं। कारण: बूट के समय अपर्याप्त एंट्रॉपी।

ECDSA में नॉन्स का पुनःउपयोग

ECDSA को प्रत्येक हस्ताक्षर के लिए एक अद्वितीय यादृच्छिक नॉन्स k चाहिए। यदि k का पुनःउपयोग किया जाए (या वह कमज़ोर हो), तो निजी कुंजी तुरंत प्राप्त की जा सकती है: d = (s1-s2)^{-1} * (z1-z2) * k / (r1-r2) mod n। Sony के PS3 में k=constant का उपयोग किया गया था — प्राप्त कुंजी से सभी खेलों पर हस्ताक्षर किए जा सकते थे।

Android Bitcoin वॉलेट बग (2013)

कुछ परिस्थितियों में Android 4.x पर Java SecureRandom का बीजीकरण सिस्टम समय से किया जाता था। कई Bitcoin वॉलेट ऐपों ने समान k नॉन्स के साथ हस्ताक्षर उत्पन्न किए, जिससे निजी कुंजियाँ उजागर हो गईं। लाखों डॉलर चुरा लिए गए। Google ने SecureRandom के कार्यान्वयन में सुधार किया।

कमज़ोर कुंजियों का पता लगाना

उपकरण: ssh-vulnkey (Debian की कमज़ोर कुंजी काली सूची से मिलान करता है), badkeys (TLS प्रमाणपत्रों में ज्ञात कमज़ोर अभाज्य संख्याओं की जाँच करता है), और बड़ी संख्या में RSA कुंजियों की जाँच के लिए GCD-batch एल्गोरिदम। Certificate Transparency लॉग बड़े पैमाने पर कुंजी-संग्रह का विश्लेषण संभव बनाते हैं।

उपाय

पहली कुंजी उत्पन्न करते समय getrandom(GRND_RANDOM) का उपयोग करें। प्रारंभिक बीजीकरण पूरा होने की प्रतीक्षा करने के बाद /dev/urandom से पढ़ें (जाँचें कि /proc/sys/kernel/random/entropy_avail > 128 हो)। पूरक एंट्रॉपी के रूप में हार्डवेयर RNG (RDRAND) का उपयोग करें। बिना विलंब के पहली बार बूट के दौरान कभी कुंजियाँ उत्पन्न न करें।

बीज फ़ाइल का स्थायित्व

रीबूट के दौरान CSPRNG की स्थिति बनाए रखें: शटडाउन के समय /dev/urandom से 32 बाइट पढ़कर बीज फ़ाइल में सहेजें; बूट के समय उसे पढ़कर CSPRNG में वापस डालें। इससे ठंडे बूट के दौरान एंट्रॉपी की निरंतरता बनी रहती है। लिनक्स यह स्वचालित रूप से करता है; एम्बेडेड सिस्टम अक्सर ऐसा नहीं करते।

त्वरित जाँच

Debian OpenSSL एंट्रॉपी बग का मूल कारण क्या था?

पुनरावलोकन

एंट्रॉपी के अभाव से पूर्वानुमेय कुंजियाँ बनती हैं। वास्तविक घटनाएँ: Debian OpenSSL (केवल PID से बीजीकरण), IoT पर GCD हमले, PS3 में ECDSA नॉन्स का पुनःउपयोग और Android Bitcoin वॉलेट। हमेशा OS की एंट्रॉपी से बीजीकरण करें और एम्बेडेड कुंजी निर्माण की सावधानीपूर्वक जाँच करें। अगला विषय: कुंजियों, नॉन्स और IV को सुरक्षित रूप से उत्पन्न करना।

शुरुआत निःशुल्क

एआई शिक्षक के साथ Cryptology Academy सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
67
पाठ
261

अक्सर पूछे जाने वाले प्रश्न

क्या “Entropy की कमी और कमज़ोर-कुंजी बग” पाठ निःशुल्क है?

हाँ—“Entropy की कमी और कमज़ोर-कुंजी बग” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Cryptology Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Cryptology Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“Entropy की कमी और कमज़ोर-कुंजी बग” में मैं क्या सीखूँगा?

Debian OpenSSL RNG बग और randomness की अन्य वास्तविक विफलताओं का अध्ययन करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Cryptology Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Cryptology Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Cryptology Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।

“Entropy की कमी और कमज़ोर-कुंजी बग” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Cryptology Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Cryptology Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. वास्तविक randomness बनाम pseudorandomness
  2. क्रिप्टोग्राफ़िक रूप से सुरक्षित PRNG
  3. Entropy की कमी और कमज़ोर-कुंजी बग
  4. कुंजियाँ, nonces और IV सुरक्षित रूप से बनाना
← Cryptology Academy पर वापस जाएँ