लेखक: लियम 'अकिबा' राइट
साओइर्स, फोरसाइट न्यूज़
हार्डवेयर वॉलेट को नेटवर्क से जोड़ने से पहले ही वॉलेट की सुरक्षा रक्षा व्यवस्था टूट सकती है। एक एयर-गैप्ड हार्डवेयर वॉलेट संभवतः अपनी प्राइवेट की को इंटरनेट से कई वर्षों तक अलग रख सकता है, लेकिन मैनेमोनिक सीड से उत्पन्न होने के क्षण से ही जोखिम पहले से ही मौजूद होता है।
Coldcard द्वारा हाल ही में उजागर किए गए रैंडम नंबर दोष ने इस सुरक्षा जाल को पूरी तरह से साबित कर दिया है। दोष प्रभावित वॉलेट 12 शब्दों या 24 शब्दों के पुनर्स्थापना मेमोनिक का उत्पादन कर सकते हैं, जो पूरी तरह सामान्य दिखते हैं, और उपयोगकर्ता इन मेमोनिक्स को सुरक्षित रूप से संग्रहित कर सकते हैं और ऑफलाइन लेनदेन पर हस्ताक्षर कर सकते हैं। हालाँकि, नीचे के रैंडम नंबर जनरेटर की संभावित सीमा वास्तव में काफी संकुचित हो गई है। हमलावर अन्य उपकरणों पर सभी संभावित सीड संयोजनों का विस्तृत परीक्षण कर सकते हैं, प्रत्याशी सीड को पुनः प्राप्त कर सकते हैं; और फिर बिटकॉइन के खुले लेज़र पर संगति के आधार पर वास्तविक पतों के साथ मेल खाने वाले मान्य सीड को छाँट सकते हैं।
मेरे अनुसार, वॉलेट की सुरक्षा की नियति बीज के निर्माण के समय ही तय हो जाती है। पिन कोड, स्टील बैकअप प्लेट, अखंडता सुनिश्चित करने वाले सील, और एयर गैप जैसे सुरक्षा उपायों के काम करने से पहले, बीज को सच्चे और विश्वसनीय रैंडम स्रोत से उत्पन्न किया जाना चाहिए।
एक उच्च गुणवत्ता वाला आधुनिक यादृच्छिक संख्या जनरेटर पर्याप्त एंट्रॉपी उत्पन्न कर सकता है। हालाँकि, यदि हमलावर यादृच्छिक संख्या जनरेटर के कार्यान्वयन तर्क को जानता है, तो वह पूरी उत्पादन प्रक्रिया को प्रतिलिखित कर सकता है।
मैनुअल डाइस रोलिंग उपयोगकर्ताओं को एक रैंडम सोर्स प्रदान करता है, जिसमें रैंडमनेस स्पष्ट और नियंत्रित होती है, और यह निर्माता द्वारा लिखे गए कोड से स्वतंत्र होती है।
बिटकॉइन वॉलेट सुरक्षा में छिपे हुए कमजोर बिंदु
Coldcard बीज जनरेशन में छिपी हुई सुरक्षा जोखिम है। हमलावर डिवाइस के बाहर उम्मीदवार बीज उत्पन्न कर सकते हैं, उन्हें सार्वजनिक कुंजी पतों में बदल सकते हैं, और बिटकॉइन सार्वजनिक लेजर पर पतों के लेन-देन रिकॉर्ड के साथ मिलान करके हमला कर सकते हैं।
दरअसल, दोष की तकनीकी जड़ इतनी सूक्ष्म है कि इससे डर लगता है। 1 मार्च, 2021 को एक कोड परिवर्तन ने Coldcard के बीज उत्पादन कार्य को एक नए कोडबेस पर स्थानांतरित कर दिया। बड़े पैमाने पर उत्पादित फर्मवेयर में, MICROPY_HW_ENABLE_RNG कॉन्फ़िगरेशन विकल्प को 0 पर सेट किया गया, जिसका अर्थ है कि हार्डवेयर रैंडम जनरेटर अक्षम है; लेकिन कोड एकीकरण तर्क केवल यह जांचता है कि क्या यह कॉन्फ़िगरेशन मौजूद है, और इसका मान पढ़ता नहीं है। जब तक यह कॉन्फ़िगरेशन मौजूद है, सिस्टम हार्डवेयर रैंडम जनरेटर को छोड़ देता है और MicroPython में निर्धारित एल्गोरिथम Yasmarang को बैकअप के रूप में सक्रिय करता है। Block की संयुक्त विश्लेषण रिपोर्ट के अनुसार, यह दोषपूर्ण तर्क 4.0.0 संस्करण के फर्मवेयर के साथ 17 मार्च को सार्वजनिक रूप से जारी किया गया।
उत्पन्न किया गया मैनेमोनिक असामान्य दिखता है, लेकिन पीछे का ब्रूट फोर्स सर्च स्पेस तीव्रता से संकुचित हो गया है। कोइनकाइट के प्रारंभिक आकलन के अनुसार, प्रभावित Mk2, Mk3 मॉडलों के लिए बीज का प्रभावी सर्च स्पेस लगभग 40 बिट है; प्रभावित Mk4, Mk5 और Q सीरीज़ मॉडलों के लिए बीज का प्रभावी सर्च स्पेस लगभग 72 बिट है।
ब्लॉक टीम ने भविष्य के मॉडल के लिए अलग से सीमा निर्धारित की है: जब बैकअप एल्गोरिदम की स्थिति और कॉल हिस्ट्री स्थिर होती है, तो केवल 2^32 अलग-अलग रैंडम स्ट्रीम्स ही संभव होती हैं। कोइनकाइट द्वारा प्रदान किए गए डेटा ने हमलावर के द्वारा अनुसंधान किए जा सकने वाले प्रभावी सर्च स्पेस का अनुमान लगाया है।
दोनों विश्लेषण रिपोर्ट्स ने पुष्टि की है कि फर्मवेयर ठीक करने से पहले के सभी बाद के मॉडल जोखिम के दायरे में थे। कोइनकाइट सुरक्षा घोषणा में बताया गया है कि मानक 5.6.0 संस्करण और Edge 6.6.0X संस्करण से पहले के Mk4, Mk5 फर्मवेयर; मानक 1.5.0Q संस्करण और Edge 6.6.0QX संस्करण से पहले के Q-सीरीज़ फर्मवेयर प्रभावित हैं। Mk2 और Mk3 के लिए, कोइनकाइट ने जोखिम वाले संस्करण 4.0.1 से 4.1.9 तक बताए हैं, जबकि Block टीम का मानना है कि दुर्बलता 4.0.0 संस्करण से ही मौजूद थी। इस विवादास्पद संस्करण सीमा के लिए, उपयोगकर्ताओं को सावधानी से दृष्टिकोण अपनाने की सलाह दी जाती है।
इस घटना से स्पष्ट होता है कि केवल नए फर्मवेयर को इंस्टॉल करने से मौजूदा वॉलेट की सुरक्षा कमजोरियों को ठीक नहीं किया जा सकता। ठीक किए गए संस्करण में अपग्रेड करने से केवल भविष्य में बनाए गए सीड्स की सुरक्षा सुनिश्चित होती है; सभी पहले से बनाए गए पुराने सीड्स केवल उस समय प्राप्त एंट्रॉपी मान को ही बनाए रखते हैं, और इन सीड्स से उत्पन्न सभी पते एक ही नींव की कुंजी को साझा करते हैं।
सभी रिस्क फर्मवेयर संस्करण का उपयोग करने वाले उपयोगकर्ताओं को औपचारिक सुरक्षा घोषणा की जांच करनी चाहिए। यदि आप निश्चित रूप से नहीं कर सकते कि बीज को पर्याप्त मानव द्वारा डाइस फेंककर उत्पन्न किया गया है, तो आपको सुधारित फर्मवेयर का उपयोग करना चाहिए, विश्वसनीय यादृच्छिक स्रोत का उपयोग करके नया बीज उत्पन्न करना चाहिए, और अपनी धनराशि को नए वॉलेट में स्थानांतरित करना चाहिए। यदि आप केवल पुराने मैमोनिक फ्रेज से नए पते का उत्पादन करते हैं, तो मूल सुरक्षा दोष वैसे ही बने रहेंगे।
बिटकॉइन Optech ने 31 जुलाई को एक अनुमानित डेटा जारी किया, जिसके अनुसार 1000 से अधिक बिटकॉइन के आकार के संपत्ति खतरे में हैं। 2 अगस्त तक, Galaxy Research के अनुमान के अनुसार, लगभग 1367 बिटकॉइन 4585 पतों में खतरे में हैं। X प्लेटफॉर्म पर Graham_Quantum नाम के एक उपयोगकर्ता ने कहा कि 29 जुलाई को संबंधित वॉलेट से 18.25245043 बिटकॉइन निकाले गए थे।
समाचार फैलने के बाद, बड़ी संख्या में उपयोगकर्ताओं ने सुरक्षा के उद्देश्य से अपने संपत्ति स्थानांतरित की, जिससे और अधिक विशाल धन प्रवाह उत्पन्न हुआ। दरार के समाचार के प्रकाशित होने के बाद, 77402 BTC पुराने अनुपयोगित लेन-देन आउटपुट (UTXO) पूल से स्थानांतरित हुए।
दो प्रकार के डेटा को अलग किया जाना चाहिए:

इस सुरक्षा दुर्घटना ने दो बड़े प्रभावों को जन्म दिया: एक, हैकर्स द्वारा संपत्ति चुराना, और दूसरा, उपयोगकर्ताओं की बड़े पैमाने पर स्वयं को सुरक्षित रखने के लिए स्थानांतरण की लहर।
लगभग 89 मिलियन डॉलर के मूल्य के साथ कोल्डकार्ड वॉलेट दरार ने FTX के ध्वस्त होने के बाद सबसे बड़ी बिटकॉइन चेन-पर फंड ट्रांसफर को प्रेरित किया और बाजार संकेतों की व्याख्या को गंभीर रूप से विकृत किया। लाखों उपयोगकर्ताओं ने अपने पुराने वॉलेट से बिटकॉइन को तुरंत स्थानांतरित कर दिया, जिससे मुख्य चेन-पर सूचकांकों द्वारा जारी मंदी के संकेतों की पहचान करना मुश्किल हो गया।
हाथ से पासा फेंकने से क्या बदलाव आ सकते हैं
Coldcard ऑफिशियल डाइस डॉक्यूमेंटेशन के अनुसार: एक निष्पक्ष छह-पक्षीय पासा, प्रत्येक स्वतंत्र फेंक से लगभग 2.585 बिट एंट्रॉपी उत्पन्न करता है। 50 फेंकों से लगभग 129.25 बिट प्रारंभिक एंट्रॉपी प्राप्त होती है, जो सामान्य 128-बिट सुरक्षा मानक को पूरा करती है; 99 फेंकों से लगभग 255.91 बिट प्रारंभिक एंट्रॉपी प्राप्त होती है, जो 256-बिट सुरक्षा मानक को लगभग पूरा करती है (यह मान वॉलेट द्वारा एम्बेडेड कन्वर्जन एल्गोरिथम द्वारा प्रसंस्कृत नहीं हुआ है)।
ये मान BIP-39 मेमोनिक स्टैंडर्ड के साथ मेल खाते हैं: 12 शब्दों का मेमोनिक 128 बिट एंट्रॉपी के साथ 4 बिट चेकसम को कोड करता है; 24 शब्दों का मेमोनिक 256 बिट एंट्रॉपी के साथ 8 बिट चेकसम को कोड करता है।

हार्डवेयर वॉलेट की ऑफलाइन आइसोलेशन मैकेनिज्म केवल जनरेट हो चुके मैनेमोनिक फ्रेज को ही सुरक्षित रख सकती है, यह जनरेशन प्रक्रिया में होने वाले कमजोर रैंडमनेस वल्नरेबिलिटी को ठीक नहीं कर सकती; सुरक्षित BIP-39 मैनेमोनिक फ्रेज जनरेट करने के लिए निजी डाइस रोल करके स्वतंत्र एंट्रॉपी प्राप्त करना आवश्यक है।
चेकसम केवल मैमोनिक फ्रेज की प्रतिलिपि में हुई त्रुटियों की पहचान के लिए उपयोग किया जाता है। वास्तविक सुरक्षा का निर्धारण नीचे के मूल यादृच्छिक डेटा द्वारा किया जाता है। हैशिंग और नियमित फॉर्मेटिंग कम एंट्रॉपी इनपुट को सुंदर बना सकते हैं, लेकिन कुंजी की संभावित सभी संख्या का कुल स्थान बढ़ता नहीं है। वे 12 शब्द, जो आपको सुरक्षित महसूस करा सकते हैं, बहुत छोटे यादृच्छिक पूल से आ सकते हैं।
हाथ से पासा फेंकने के द्वारा सुरक्षा के लिए पूर्वशर्त: वॉलेट की आंतरिक प्रक्रिया पासा द्वारा उत्पन्न यादृच्छिक डेटा को सही ढंग से स्वीकार करे। पासा स्वयं योग्य हो, प्रत्येक फेंक वास्तविक हो और एक-दूसरे से स्वतंत्र हो, और फेंकने की प्रक्रिया पूरी तरह से गुप्त रखी जाए। फेंकने के पैटर्न का पुनः उपयोग, रिकॉर्डिंग करना, क्लाउड पर सीक्वेंस संग्रहित करना, या इंटरनेट से जुड़े कंप्यूटर पर परिणाम दर्ज करना, सभी यादृच्छिकता की स्वतंत्रता और गोपनीयता को नुकसान पहुंचाएंगे।
Coldcard सुरक्षा घटना के संदर्भ में, Coinkite ने कहा कि केवल तभी उपयोगकर्ता अपने संपत्ति स्थानांतरित नहीं कर सकते जब वे साबित कर सकें कि अंतिम बीज उत्पन्न करते समय, कम से कम 50 बार निष्पक्ष, स्वतंत्र और गोपनीय डाइस रोल किए गए थे; जहां कोई अनिश्चितता हो, वहां आधिकारिक रूप से धन स्थानांतरित करने की सलाह दी जाती है।
मेरे लिए, हाथ से डाइस का मुख्य मूल्य यह है: डिवाइस के अंदरूनी रैंडम नंबर पर निर्भर करना का अर्थ है कि आपको हार्डवेयर, फर्मवेयर, कंपाइल प्रक्रिया और एकीकृत कोड की पूरी श्रृंखला पर बिना किसी शर्त के भरोसा करना पड़ता है।
एक नियमित डाइस एंट्री प्रक्रिया, जो उपयोगकर्ता द्वारा स्वयं नियंत्रित होने वाली, इस विश्वास श्रृंखला से बाहर की एंट्रॉपी को शामिल कर सकती है। लगभग 50 समान डाइस रोल 128-बिट सुरक्षा स्तर के बराबर हैं, और 99 रोल 256-बिट सुरक्षा स्तर के बराबर हैं। हालाँकि, उपयोगकर्ता को अपने उपकरण की आधिकारिक संचालन प्रक्रिया का कठोरता से पालन करना चाहिए और स्वयं कोई रैंडम नंबर ट्रांसफॉर्मेशन स्कीम नहीं बनानी चाहिए।
एक उच्च तीव्रता और अद्वितीय BIP-39 पासफ्रेज सेट करें, जो हमले की सीमा को एक अलग आयाम में बढ़ाता है। पासफ्रेज एक स्वतंत्र कुंजी के समान है; भले ही हमलावर को मैनेमोनिक शब्द मिल जाएं, उन्हें संपत्ति तक पहुंचने के लिए पासफ्रेज को भी तोड़ना होगा। ध्यान दें: पासफ्रेज जोड़ने से मैनेमोनिक की एंट्रॉपी में कोई वृद्धि नहीं होती। कोई भी पासफ्रेज (भले ही एक अक्षर गलत हो) एक मान्य वॉलेट पता का समूह उत्पन्न करता है, और यदि पासफ्रेज खो जाता है, तो संपत्ति स्थायी रूप से बंद हो जाएगी। हार्डवेयर वॉलेट PIN कोड का कार्य पासफ्रेज से पूरी तरह अलग है।
पासकी को सक्षम करने में खुद एक समझौता शामिल है: अगर आप पासकी को सही तरीके से सुरक्षित रख सकते हैं और इसे सटीक रूप से पुनः उत्पन्न कर सकते हैं, तो यह एक मजबूत दूसरी परत बनाएगा; लेकिन अगर बैकअप योजना अपर्याप्त है, तो यह सुविधा आपको संपत्ति तक पहुँचने से पूरी तरह रोक सकती है।
Weak randomness issues keep recurring
Coldcard के वैलिडिटी विफलता ने फिर से सभी को चेतावनी दी है: बिटकॉइन वॉलेट की सुरक्षा की नींव, बीज उत्पन्न होने के क्षण में पर्याप्त शक्तिशाली यादृच्छिकता होना है। इसी प्रकार की नींव की दोष, पिछले कई अलग-अलग वॉलेट उत्पादों पर लगातार प्रकट हुए हैं।
2023 में, Ledger Donjon ने खुलासा किया: विशिष्ट संस्करण के Trust Wallet ब्राउज़र एक्सटेंशन में, WebAssembly रनटाइम पथ में 32-बिट मैरसेन ट्विस्ट एल्गोरिथम का उपयोग करके रैंडम सीड उत्पन्न किया जाता था। इस तरह के दिखने में सामान्य मैनेमोनिक्स, लगभग 40 अरब प्रारंभिक मानों से उत्पन्न हुए। जोखिम की सीमा स्पष्ट है: 0.0.172 से 0.0.182 संस्करण के Trust Wallet Core के 3.1.1 से पहले के संस्करण के साथ संचालित ब्राउज़र एक्सटेंशन। अमेरिकी राष्ट्रीय दुर्बलता डेटाबेस में, इस दुर्बलता का उपयोग 2022 दिसंबर और 2023 मार्च में किया गया।
「Milk Sad वेक्यूम」 घटना ने समान जोखिम को स्पष्ट रूप से दर्शाया। Libbitcoin Explorer 3.x का bx seed आदेश, सिस्टम समय पर आधारित 32-बिट मर्सेन ट्विस्ट एल्गोरिथम का उपयोग करता है; समान क्लॉक स्थितियों में, सॉफ्टवेयर समान मैनेमोनिक शब्दों को उत्पन्न कर सकता है। आक्रमणकारी को बस बीज बनाने के समय का अनुमान लगाना होगा, ताकि खोज का परिसर मैनेमोनिक शब्दों के प्रतीकात्मक स्थान से कहीं कम हो।
शोधकर्ताओं ने जोखिम क्षेत्र में 2600 से अधिक ऐसे सक्रिय बिटकॉइन वॉलेट खोजे हैं; 2023 अगस्त के बाजार के अनुसार, संबंधित चोरी हुए संपत्ति का मूल्य लगभग 900,000 डॉलर से अधिक है। इनमें से 2550 से अधिक वॉलेट स्वचालित कार्रवाई के लक्षण दर्शाते हैं, जो इस बात की संभावना को दर्शाते हैं कि ये सभी एक ही धारक के हैं। शोधकर्ताओं ने यह भी बताया कि कुछ संपत्ति चोरी की घटनाएँ शायद अन्य सुरक्षा दुर्बलताओं के साथ जुड़ी हुई हैं।
इस तरह के दुर्बलता हर बार अलग-अलग रूप में प्रकट होती हैं: Coldcard में फर्मवेयर बैकअप रैंडम एल्गोरिथम अनचाहे रूप से ट्रिगर हो जाता है; Trust Wallet ब्राउज़र एक्सटेंशन और Libbitcoin कमांड-लाइन टूल, सिस्टम क्लॉक पर निर्भर करने के कारण कमजोर रैंडम नंबर उत्पन्न करते हैं। अंततः उत्पन्न वॉलेट कुंजियाँ दिखने में कोई दोष नहीं देतीं, लेकिन खोजने के लिए उपलब्ध कुंजि सेट का आकार इतना छोटा होता है कि यह घातक जोखिम पैदा कर सकता है।
बाजार में अधिकांश बिटकॉइन होस्टिंग सुझाव, बीज उत्पन्न होने के बाद शुरू होते हैं: ऑफलाइन मैनेमोनिक फ्रेज सहेजें, टिकाऊ बैकअप वाहक का उपयोग करें, अधिकारों का पृथक्करण करें, और पुनर्स्थापन प्रक्रिया का परीक्षण करें। ये उपाय अभी भी मूल्यवान हैं। लेकिन Coldcard की घटना हमें याद दिलाती है कि सुरक्षा रक्षा को आगे बढ़ाने की आवश्यकता है।
एयर गैप केवल आपके डिवाइस में पहले से दर्ज की गई कुंजियों की सुरक्षा कर सकता है। इसलिए, बिटकॉइन वॉलेट सुरक्षा को विश्वसनीय यादृच्छिक स्रोत से शुरू किया जाना चाहिए।

