एक मानक छह फलक वाला पासा हर रोल के साथ लगभग 2.6 बिट अप्रत्याशित जानकारी उत्पन्न करता है। यह बहुत अधिक नहीं लग सकता, लेकिन पर्याप्त बार दोहराने पर, ये रोल एक बिटकॉइन वॉलेट को सुरक्षित करने के लिए सॉफ्टवेयर या इलेक्ट्रॉनिक घटक पर निर्भर किए बिना आवश्यक कच्ची यादृच्छिकता बना सकते हैं।
मुख्य बिंदु
- एक न्यायसंगत छह फलक वाला पासा, क्लॉड शैनन के सूत्र के अनुसार, लगभग 2.585 बिट एंट्रॉपी प्रदान करता है।
- Coinkite के दस्तावेज़ में कहा गया है कि 50 डाइस रोल्स एक बिटकॉइन वॉलेट सीड के लिए 128-बिट मानक को पूरा करते हैं।
- केविन लोएक के विजार्ड सार्डिन विश्लेषण ने मुख्य सीड के अलावा कोल्डकार्ड टूल्स में जोखिम को चिह्नित किया।
एक पासा फेंकना इतना कठिन क्यों है भविष्यवाणी करने में
क्लॉड शैनन, जिन्होंने सूचना सिद्धांत की स्थापना की, एक परिणाम की अनिश्चितता को मापने के लिए एंट्रॉपी का उपयोग किया। एक समान छह-पक्षीय पासे के साथ, प्रत्येक फेस के आने की संभावना एक-छठी होती है। इससे प्रत्येक रोल को लगभग 2.585 बिट एंट्रॉपी मिलती है। एक सिक्के के उछाल से 1 बिट उत्पन्न होता है, जबकि एक आठ-पक्षीय पासा 3 बिट उत्पन्न करता है।

हाल के Coldcard के विवाद ने सोशल मीडिया पर डाइस-आधारित सीड जनरेशन को बढ़ावा दिया है। कुछ उपयोगकर्ता अब इसे आवश्यक मानते हैं, कुछ कहते हैं कि इसने उनकी धनराशि की सुरक्षा की, जबकि अनुभवी संचालक यह बताते हैं कि अधिकांश नए उपयोगकर्ता एक धीमी, त्रुटिपूर्ण सेटअप प्रक्रिया को सहन नहीं कर पाएंगे।
महत्वपूर्ण बात यह नहीं है कि एक लुढ़कते हुए पासे का आणविक स्तर पर व्यवहार यादृच्छिक होता है। ऐसा नहीं है। परिणाम भौतिकी द्वारा नियंत्रित होता है, लेकिन किसी के लिए परिणाम की विश्वसनीय गणना करना संभव नहीं है क्योंकि एक साथ बहुत सारे छोटे चर बदल रहे हैं। पासा एक निश्चित गति, कोण, ऊँचाई और घूर्णन के साथ हाथ से छूटता है, फिर मेज से टकराता है और प्रत्येक उछाल के साथ दिशा बदलता है।
व्यावहारिक रूप से, रिलीज़ में न्यूनतम बदलाव भी पूरी तरह से अलग परिणाम उत्पन्न कर सकता है। एक हल्का अलग उंगली की स्थिति या थोड़ा अधिक तीव्र फेंकना पथ को इतना बदल देता है कि गति को देखकर अंतिम संख्या का अनुमान लगाना संभव नहीं है। परिणाम सिद्धांत में निर्धारित हो सकता है, लेकिन वॉलेट जनरेशन के लिए महत्वपूर्ण यह है कि हमलावर इसे पुनः उत्पन्न या गणना नहीं कर सके।
डाइस रोल को उपयोगी डेटा में बदलना
एक कंप्यूटर सीधे पासों के परिणामों की सूचि का उपयोग नहीं कर सकता। रोल्स को पहले बाइनरी डेटा में बदलना होगा, और बदलाव की विधि महत्वपूर्ण है।
एक बेसिक विषम-या-सम सिद्धांत समझने में आसान है, लेकिन यह उपलब्ध एंट्रॉपी का बहुत सा हिस्सा बर्बाद कर देता है। प्रत्येक रोल को एक एकल बिट में कम कर दिया जाता है, भले ही पासा लगभग 2.6 बिट जानकारी पैदा करता है। अधिक कुशल विधियाँ कई रोल्स की लंबी अनुक्रम को एकत्रित करती हैं और पूरी स्ट्रिंग को सामान्यतः क्रिप्टोग्राफिक हैश फ़ंक्शन के माध्यम से प्रोसेस करती हैं। इससे अधिक यादृच्छिकता संरक्षित रहती है।
वही सिद्धांत Diceware में भी दिखाई देता है, जो सुरक्षित पासफ्रेज बनाने की एक लंबे समय से चली आ रही विधि है, और मैनुअल बिटकॉइन वॉलेट जनरेशन में। एक सामान्य 12-शब्द वॉलेट रिकवरी फ्रेज 128 बिट एंट्रॉपी से बनाई जाती है। लगभग प्रति रोल 2.6 बिट की दर से, लगभग 50 समान रोल्स पर्याप्त कच्ची जानकारी प्रदान करते हैं ताकि इस सीमा को पार किया जा सके।
Coinkite, जो Coldcard हार्डवेयर वॉलेट का मेकर है, 256 बिट्स के लगभग एंट्रॉपी के लिए उपयोगकर्ताओं को 99 या अधिक रोल्स की सिफारिश करता है। इससे वॉलेट का उपयोग करना दोगुना कठिन नहीं हो जाता, लेकिन जनरेट किए गए सीक्रेट को एक बहुत बड़ा गणितीय सुरक्षा मार्जिन प्रदान करता है।
डाइस-जेनरेटेड सीड्स का वास्तविक दुनिया का परीक्षण
यह अंतर Coinkite ने 2021 तक का फर्मवेयर समस्या का खुलासा किया के बाद महत्वपूर्ण हो गया। कुछ Coldcard उपकरणों पर, सॉफ्टवेयर आंतरिक हार्डवेयर रैंडम-नंबर जनरेटर को छोड़ सकता था और बजाय इसके गैर-गुप्त उपकरण जानकारी से जुड़ी कमजोर प्रक्रिया का उपयोग कर सकता था।
चूंकि उस प्रक्रिया के कुछ हिस्सों को पुनः बनाया जा सकता था, इसलिए हमलावरों को पूरे की स्पेस की तलाश करने के बजाय संभावित वॉलेट कुंजियों को संकुचित करने में सक्षम हो गए। 1 बजे पूर्वी समय तक, इस दोष को लगभग 1100 पतों से अनुमानित 1,128.6633 BTC की चोरी से जोड़ा गया।

पूर्ण रूप से पर्याप्त संख्या में स्वतंत्र डाइस रोल से बनाए गए वॉलेट सीड्स को उसी पथ के माध्यम से प्रकट नहीं किया गया था। उन उपयोगकर्ताओं ने अपनी अपनी एंट्रॉपी प्रदान की थी, इसलिए दोषपूर्ण हार्डवेयर जनरेटर प्राथमिक वॉलेट सीक्रेट बनाने के लिए जिम्मेदार नहीं था।
हालाँकि, यह सुरक्षा केवल पासों से उत्पन्न बीज के लिए लागू होती थी। यह उपकरण द्वारा उत्पन्न प्रत्येक अन्य गुप्त जानकारी को स्वचालित रूप से सुरक्षित नहीं करती थी।
विजर्ड सार्डिन फाइन प्रिंट की जांच करता है
सुरक्षा शोधकर्ता केविन लोएक ने 1 अगस्त को विजार्ड सार्डिन की वेबसाइट पर कॉल्डकार्ड एक्सप्लॉइट का मूल्यांकन प्रकाशित किया। उनका सबसे महत्वपूर्ण अवलोकन उन कॉल्डकार्ड सुविधाओं से संबंधित था जो मुख्य वॉलेट सीड से अलग अपने सीक्रेट्स उत्पन्न करती थीं।
मुझे लगता है कि यह बेहद महत्वपूर्ण है कि जोर दिया जाए कि यदि उपयोगकर्ता निम्नलिखित सुविधाओं का उपयोग करते हैं, तो यहां तक कि डाइस के साथ बीज आयातित या जनरेट करने वाले उपयोगकर्ता भी सुरक्षा जोखिम में हैं,” Loaec ने X पर लिखा, जिसके बाद उन्होंने प्रभावित प्रणाली का एक आरेख प्रस्तुत किया।
आरेख दर्शाता है कि दोषपूर्ण रैंडम-नंबर जनरेटर कई द्वितीयक Coldcard कार्यों को फीड करता है। इनमें कागजी वॉलेट बनाना, डिवाइस क्लोनिंग, USB सेशन एन्क्रिप्शन, सीक्रेट टेलीपोर्ट ट्रांसफ़र सुविधा, सह-हस्ताक्षर कुंजी बनाना, बिल्ट-इन पासवर्ड जनरेटर और हार्डवेयर सुरक्षा मॉड्यूल प्रमाणीकरण कोड शामिल थे।

99 डाइस रोल्स के साथ बनाया गया प्राथमिक वॉलेट सिस्टम के अलग हिस्से में रहा। समस्या यह थी कि अन्य उपकरण अभी भी दोषपूर्ण जनरेटर से नया रैंडमनेस मांग सकते थे। परिणामस्वरूप, एक सुरक्षित सीड यह गारंटी नहीं देता था कि एक ही डिवाइस पर बनाए गए हर पासवर्ड, बैकअप, प्रमाणीकरण कोड या सेकेंडरी की समान रूप से सुरक्षित हैं।
क्यों अधिकांश नए उपयोगकर्ता पासा नहीं फेंकेंगे
डाइस-जनित एंट्रॉपी तकनीकी रूप से ठीक है जब इसे सही तरीके से किया जाए, लेकिन यह अधिकांश नए उपयोगकर्ताओं के लिए वास्तविक डिफ़ॉल्ट नहीं है। एक डाइस को 50 या 99 बार रोल करना, हर परिणाम को सटीकता से दर्ज करना, और यह सुनिश्चित करना कि कोई रोल छूटा न हो या दोहराया न हो, इसमें धैर्य और काफी सांद्रता की आवश्यकता होती है। एक गलत टाइप किया गया अंक अंतिम वॉलेट को पूरी तरह से बदल सकता है, और अधिकांश डिवाइस यह नहीं बता सकते कि गलती खराब रोल, प्रवेश त्रुटि, या निर्देशों की गलत समझ से आई है।

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

इसी कारण से, अनुभवी बिटकॉइन उपयोगकर्ताओं के बीच भी, कई लोगों के लिए पासा फेंकना हमेशा सबसे अच्छी विधि नहीं माना जाता। यह एक उपकरण पर विश्वास को एक हाथ से संचालित प्रक्रिया पर विश्वास से बदल देता है। जिस तकनीकी रूप से सावधान उपयोगकर्ता को एंट्रॉपी की समझ है, वह विधि की पुष्टि करता है और रोल सीक्वेंस को गोपनीय रखता है, उसके लिए यह व्यापार समझ में आ सकता है। लेकिन एक औसत खरीददार, जो पहली बार एक वॉलेट सेटअप कर रहा है, उसके लिए यह कई स्थायी गलतियों के अवसर प्रदान करता है, जबकि यह एक उलझने वाली प्रक्रिया भी है।

यह समझना भी कठिन है कि बिटकॉइन का व्यापक अपनाया जाए, जब लोगों को धन प्राप्त करने और उसे सुरक्षित रूप से करने के लिए एक मेज के पास बैठकर 99 डाइस के परिणाम दर्ज करने की आवश्यकता हो। सुरक्षा प्रथाओं को वास्तविक घरों, व्यस्त शेड्यूल, विचलित करने वाली बातों और ऐसे उपयोगकर्ताओं के साथ बरकरार रहना होगा जो क्रिप्टोग्राफी का अध्ययन नहीं करना चाहते। मैनुअल एंट्रॉपी को एक उन्नत विकल्प के रूप में उपलब्ध रखा जाना चाहिए, लेकिन दीर्घकालिक लक्ष्य हार्डवेयर और सॉफ़्टवेयर है जो सही ढंग से मजबूत यादृच्छिकता उत्पन्न करता है, स्पष्ट रूप से बताता है कि क्या हो रहा है, और सबसे कम विशेषज्ञता की मांग करता है।
जो लोगों के पास कोल्डकार्ड है, उन्हें क्या जांचना चाहिए
प्रभावित Coldcard डिवाइस के मालिक पहले डिवाइस पर स्थापित फर्मवेयर संस्करण की पुष्टि करें। उन्हें फिर यह समीक्षा करनी चाहिए कि उन्होंने पुराने फर्मवेयर चलाते समय कौन सी सुविधाएँ उपयोग कीं, बजाय इसके कि केवल मुख्य वॉलेट सीड का निर्माण कैसे किया गया।
जो कोई भी प्रभावित उपकरण का उपयोग करके पेपर वॉलेट, क्लोनिंग सीक्रेट, पासवर्ड, को-साइनिंग की या प्रमाणीकरण कोड बनाता है, उसे तुरंत उस सामग्री को बदलने की आवश्यकता हो सकती है। अपडेट स्थापित करने से नए सीक्रेट्स को इस समस्या से प्रभावित होने से रोका जा सकता है, लेकिन इससे पहले बनाई गई कोई भी चीज सुधारी नहीं जाती है।
इस घटना से मल्टी-वेंडर वॉलेट सेटअप्स को एक मजबूत व्यावहारिक मामला भी मिलता है। एक मल्टी-सिग्नेचर व्यवस्था में, अलग-अलग निर्माताओं के हार्डवेयर उपकरणों को लेनदेन को स्वीकृत करने के लिए आवश्यक हो सकता है। यह संरचना फर्मवेयर बग्स को असंभव नहीं बनाती, लेकिन यह एक अकेले दोषपूर्ण रैंडम-नंबर जनरेटर से पूरे वॉलेट को प्रभावित होने से रोक सकती है।
