492 / 736CK-RNG

COLDCARD RNG Incident (2026)

COLDCARD वॉलेट में यादृच्छिकता जनरेशन की घटना

हार्डवेयर वॉलेट को ऐसा रहस्य बनाना चाहिए जिसका अनुमान कोई और न लगा सके। लेकिन कुछ COLDCARD फ़र्मवेयर में एक गलती के कारण यह रहस्य ऐसे डेटा से बनता था जिसका अनुमान लगाना अपेक्षाकृत आसान था। इस घटना ने एक ज़रूरी अंतर दिखाया: डिवाइस का प्रोग्राम ठीक करने से उस प्रोग्राम द्वारा पहले बनाया गया वॉलेट ठीक नहीं हो जाता।

COLDCARD RNG Incident (2026) जुलाई 2026 में सामने आई घटना है, जिसमें सॉफ़्टवेयर की गलती ने seed बनाने की प्रक्रिया कमज़ोर कर दी। Seed वह गुप्त आधार है जिससे वॉलेट की कुंजियाँ निकलती हैं; RNG का अर्थ यादृच्छिक संख्याएँ बनाने वाला जनरेटर है। जोखिम समझने के लिए seed बनने का तरीका और उस समय का फ़र्मवेयर जानना ज़रूरी है। यह Bitcoin के नियमों की खराबी या डिवाइस पर दूर से कब्ज़ा करने की घटना नहीं थी।

Coinkite और Block ने नुकसान की रिपोर्टों के बाद 30 जुलाई 2026 को शुरुआती विश्लेषण जारी किए। निर्माता के अनुसार हमलावरों को दूसरे व्यक्ति का डिवाइस चलाने की ज़रूरत नहीं थी। वे कमज़ोर तरीके से बने रहस्य दोबारा बना सकते थे और उनसे जुड़ी निजी कुंजियाँ पा सकते थे, जिनसे भुगतान पर हस्ताक्षर किए जाते हैं। इसलिए वॉलेट को इंटरनेट से अलग रखना पर्याप्त नहीं था। फिर भी यह विवरण हर व्यक्तिगत नुकसान का कारण साबित नहीं करता; केवल डिवाइस का ब्रांड देखकर कारण नहीं बताया जा सकता। [2] [3]

वॉलेट को TRNG कहलाने वाले हार्डवेयर स्रोत से यादृच्छिकता लेनी थी। लेकिन libNgU लाइब्रेरी जोड़ने के बाद ngu.random.bytes, MicroPython के rng_get फ़ंक्शन और उसके Yasmarang सॉफ़्टवेयर जनरेटर तक पहुँच रहा था। प्रोग्राम बनाते समय गलत हिस्से आपस में जुड़ गए। MICROPY_HW_ENABLE_RNG का मान 0 था, जबकि #ifndef केवल यह देखता था कि सेटिंग मौजूद है या नहीं, उसका मान नहीं। सही हार्डवेयर कोड फ़ाइल में मौजूद होने पर भी seed बनाने में इस्तेमाल नहीं होता था। यह चिप की खराबी या जानबूझकर बनाया गया आपातकालीन मोड नहीं था। [1]

रहस्य चुनने के विकल्प कम हों तो हमलावर को लाभ होता है। यहाँ प्रोग्राम की स्थिति डिवाइस के डेटा, टाइमर और पिछले कॉल पर निर्भर थी। Mk4, Mk5 और Q के लिए Block ने स्थिति के अतिरिक्त बदलाव को 32 बिट तक सीमित बताया: बाकी स्थिति तय रहने पर अधिकतम 2^32 अलग आउटपुट क्रम। Coinkite ने कुल entropy, यानी अनिश्चितता की मात्रा, का शुरुआती अनुमान Mk2/Mk3 के लिए लगभग 40 बिट और नए मॉडलों के लिए 72 बिट दिया। ये संख्याएँ अलग मान्यताओं पर आधारित हैं। इनसे हर हमले की लागत या हर वॉलेट को तुरंत तोड़ सकने का निष्कर्ष नहीं निकलता। [3] [1]

आधिकारिक चेतावनी में Mk2/Mk3 के 4.0.1–4.1.9 संस्करण हैं। Block का पहला विश्लेषण 4.0.0 और मार्च 2021 के बदलाव को भी शामिल करता है। इसलिए शुरुआती सीमा पर स्रोत अलग हैं; इस अनिश्चितता की जगह अनुमान नहीं रखना चाहिए। Seed कहाँ बना था यह स्पष्ट न हो, तो माइग्रेशन गाइड वॉलेट को प्रभावित मानने की सलाह देती है। Mk4/Mk5 और Q भी अपनी फ़र्मवेयर शाखा की मरम्मत से पहले प्रभावित थे। उस समय के सभी उत्पादन संस्करणों वाला कथन बाद के सुधारे गए संस्करणों पर लागू नहीं होता। [2] [3] [5]

पहले सुधारे गए संस्करण हैं: Mk2/Mk3 4.2.0, Mk4/Mk5 Standard 5.6.0, Q Standard 1.5.0Q, Mk4/Mk5 Edge 6.6.0X और Q Edge 6.6.0QX। Standard और Edge अलग शाखाएँ हैं; दूसरी शाखा की बड़ी संख्या अपने आप कुछ साबित नहीं करती। इस समीक्षा के समय निर्माता Mk4/Mk5 के लिए Standard 5.6.3 और Q के लिए 1.5.3Q सुझाता है। इंस्टॉल करने से पहले वर्तमान आधिकारिक पृष्ठ, फ़ाइल का हैश और रिलीज़ का हस्ताक्षर जाँचें। हैश सामग्री की पहचान है; हस्ताक्षर उसका स्रोत जाँचने में मदद करता है। सही अपडेट भी पहले से मौजूद seed नहीं बदलता। [4]

मान लें आप कमज़ोर तरीके से बना seed नए डिवाइस पर बहाल करते हैं। डिवाइस बदल गया, लेकिन रहस्य वही रहा। वॉलेट की कॉपी या उसका स्थानांतरण भी यही करता है। डेटा की पहचान निकालने वाला हैश संभावित इनपुट नहीं बढ़ाता; BIP39 Checksum शब्दों में गलती पकड़ने में मदद करता है, गायब यादृच्छिकता नहीं जोड़ता। इसके उलट, कहीं और सुरक्षित ढंग से बनाया seed सिर्फ COLDCARD में आयात करने से इस खास गलती के कारण कमज़ोर नहीं होता। उसका बनना ही निर्णायक है। [3] [5]

निर्माता का अपवाद मूल Add Dice Rolls सुविधा में दर्ज निष्पक्ष पासे के कम-से-कम 50 स्वतंत्र फेंकों पर लागू होता है। परिणामों का क्रम कभी दर्ज या उजागर नहीं हुआ होना चाहिए, और वॉलेट में फेंक जोड़ने के बाद दिखे अंतिम शब्द इस्तेमाल होने चाहिए। कम फेंक या संदेह होने पर माइग्रेशन की सलाह है। BIP39 Passphrase अलग उपाय है: अतिरिक्त गुप्त पाठ, जो seed के साथ मिलकर दूसरा वॉलेट तय करता है। मज़बूत और अनोखी passphrase हमलावर के लिए अतिरिक्त बाधा है, लेकिन seed ठीक नहीं करती; निर्माता इसके उपयोगकर्ताओं को भी माइग्रेशन सुझाता है। PIN केवल डिवाइस तक पहुँच बचाता है। नए seed बनाने के आज के नियम इस पुराने अपवाद से अलग हैं। [2]

पहले जाँचें कि पुराने वॉलेट का उपयोग योग्य बैकअप है। फिर माइग्रेशन गाइड के अनुसार सुधारे गए फ़र्मवेयर पर वास्तव में नया seed बनाएँ और उसका बैकअप जाँचें। वॉलेट का छोटा पहचान चिह्न fingerprint और डिवाइस की स्क्रीन पर प्राप्ति पता मिलाएँ। छोटी परीक्षण राशि भेजें; गंतव्य और प्राप्ति की पुष्टि के बाद ही बाकी भेजें। सभी धन वाले खाते, passphrase वॉलेट, उनसे निकले वॉलेट और multisig व्यवस्था शामिल करें। पूरा स्थानांतरण पुष्ट होने तक पुराना बैकअप रखें। कुछ न मिले तो न भेजें, न मिटाएँ। पुनर्प्राप्ति के रहस्य कभी वेब फ़ॉर्म में न डालें। [5]

Multisig में भुगतान के लिए कई कुंजियों में से तय संख्या में हस्ताक्षर चाहिए होते हैं। हमलावर को नियम पूरा करने लायक कुंजियाँ मिल जाएँ तो सुरक्षा पर्याप्त नहीं रहती। बची कुंजियों का मूल्यांकन करें, नई हस्ताक्षर नीति बनाएँ और डिवाइस पर जाँचकर धन उसमें भेजें। Block ने इसी जनरेटर के दूसरे उपयोग भी बताए: अलग Paper Wallet कुंजियाँ और कुछ अस्थायी एन्क्रिप्शन कुंजियाँ। प्रभाव उनके वास्तविक उपयोग और हमलावर के पास मौजूद जानकारी पर निर्भर है; हर सुविधा पर एक जैसा नहीं। [3] [5]

स्थिति पृष्ठ पर वास्तविक Mk4 में हार्डवेयर जनरेटर का परीक्षण, स्रोत कोड की समीक्षा और खास सुधार का स्वतंत्र दोबारा बिल्ड दर्ज है। इससे बताए गए तंत्र की जाँच होती है, हर प्रकाशित फ़ाइल की सुरक्षा साबित नहीं होती। वर्तमान Standard नया seed बनाते समय उपयोगकर्ता से अपनी यादृच्छिकता का योगदान भी माँगता है। इसलिए इसके हमेशा वैकल्पिक होने की पुरानी सलाह अब उस शाखा का वर्तमान तरीका नहीं है। पृष्ठ सुधार की प्रगति दर्ज करता है और कारणों पर अलग विस्तृत तकनीकी रिपोर्ट अभी तैयार होने की बात कहता है। [4]

उदाहरण · CK-RNG

डिवाइस अपडेट हुआ, समस्या वही रही

किसी व्यक्ति ने Mk3 4.1.9 पर अपने पासे के फेंक जोड़े बिना seed बनाया। वह 4.2.0 इंस्टॉल करता है और वही शब्द दूसरे डिवाइस पर बहाल करता है, पर रहस्य पुराना ही है। माइग्रेशन गाइड के अनुसार सुधरे फ़र्मवेयर पर नया seed बनाकर बैकअप और पता जाँचना तथा छोटा परीक्षण भुगतान करना होगा। उसके बाद बाकी धन भेजा जाता है। पूरी पुष्टि तक पुराना बैकअप रखा जाता है।

पूरी तस्वीर के लिए इस प्रविष्टि के साथ यह भी पढ़ें Cryptographic Entropy, Deterministic RNG, Seed Generation, BIP39 checksum, BIP39 passphrase, Dice Roll Entropy.

01क्या नया डिवाइस खरीदना पर्याप्त है?

नहीं, यदि उसमें वही प्रभावित seed बहाल करें। नया हार्डवेयर रहस्य के मूल निर्माण का तरीका नहीं बदलता। प्रक्रिया उसके स्रोत और स्वतंत्र पासों वाले अपवाद की सटीक शर्तों पर निर्भर है। प्रभावित seed के लिए नया वॉलेट चाहिए, केवल डिवाइस बदलना नहीं।

02क्या 32 बिट का अर्थ हर मॉडल पर उतना ही आसान हमला है?

नहीं। Block के विश्लेषण में यह बाकी स्थिति और कॉल इतिहास तय रहने पर जनरेटर की स्थिति में अतिरिक्त बदलाव की सीमा है। अज्ञात डिवाइस डेटा या समय संबंधी जानकारी से हमलावर का काम बदलता है। संख्या हमले की गति का सार्वभौमिक माप या किसी खास seed की सुरक्षा की गारंटी नहीं है।

DOC · 001Coinkite — Technical Deep Dive into the Entropy Issueप्राथमिक स्रोत DOC · 002Coinkite — COLDCARD Security Advisoryप्राथमिक स्रोत DOC · 003Block — Predictable RNG Fallback and 32-Bit Reseedप्राथमिक स्रोत DOC · 004COLDCARD — Current Security Statusप्राथमिक स्रोत DOC · 005COLDCARD — Seed migration guideदस्तावेज़
समीक्षा की गई: स्रोत पहले · यह निवेश सलाह नहीं है