117 / 736ECL

Eclipse Attack

नोड जुड़ा है, लेकिन हमलावर बाकी नेटवर्क को उससे छिपा रहा है

इंटरनेट चल रहा है, कनेक्शन खुले हैं, फिर भी नोड Bitcoin की असली स्थिति नहीं देख पाता। Eclipse Attack में विरोधी दूसरे प्रतिभागियों तक उसके रास्ते नियंत्रित करता है और चुनता है कि कौन-से संदेश पहुँचेंगे।

Eclipse Attack नोड को ईमानदार peer से जानबूझकर अलग करता है, जबकि हमलावर से उसका कनेक्शन बना रहता है। Full Node एक प्रोग्राम है जो Bitcoin के नियम खुद जाँचता है। वह यह जाँच जारी रखता है, लेकिन उसे नेटवर्क की अधूरी या पुरानी तस्वीर मिल सकती है। हमला अमान्य डेटा को वैध नहीं बनाता; वह उस जानकारी का फायदा उठाता है जिसे नोड देख नहीं सकता।

आना बिटकॉइन भुगतान ले रही है और अपना नोड देखती है, यानी वह कंप्यूटर जिस पर Bitcoin नेटवर्क में भाग लेने वाला प्रोग्राम चल रहा है। वह सक्रिय कनेक्शन दिखाता है, लेकिन बाहर जाने वाले सभी महत्वपूर्ण रास्ते विरोधी के नियंत्रण में हैं। संदेश आते हैं, मगर केवल वे जिन्हें हमलावर दिखाना चाहता है। यही Eclipse Attack का मूल है। आम तौर पर एक दुर्भावनापूर्ण कनेक्शन पर्याप्त नहीं होता: ईमानदार नोड तक काम करने वाला रास्ता छिपाए गए ब्लॉक पहुँचा सकता है और हमलावर का नियंत्रण तोड़ सकता है। ब्लॉक लेनदेन का एक समूह है, जो साझा इतिहास में जोड़ा जाता है। [1] [6]

Ethan Heilman, Alison Kendler, Aviv Zohar और Sharon Goldberg ने 2015 में उस समय के Bitcoin नेटवर्क पर हमलों का वर्णन किया। उन्होंने जाँचा कि नोड की पता-सूचियाँ हमलावर के पतों से कैसे भरी जा सकती हैं, ताकि दोबारा जुड़ते समय वह केवल हमलावर के कंप्यूटरों से जुड़े। उन्होंने कनेक्शन चुनने की प्रक्रिया का फायदा उठाया; डिजिटल हस्ताक्षर जैसी व्यवस्थाओं की रक्षा करने वाले गणितीय तरीकों को तोड़ने की जरूरत नहीं पड़ी। शोध ने बचाव भी सुझाए; उसके ऐतिहासिक नतीजे आज के Bitcoin Core पर सफलता की दर नहीं बताते। [1] [7]

अलगाव हासिल करने के बाद हमलावर चुन सकता है कि कौन-से ब्लॉक और लेनदेन आना को दे और कौन-से रोक ले। वह आना के भेजे लेनदेन का प्रसार भी रोक सकता है या उनका स्रोत देख सकता है। केवल कनेक्शन नियंत्रित करने के लिए अधिकांश माइनिंग क्षमता जरूरी नहीं है। इसका अर्थ यह नहीं कि उसके बाद हर हमला बिना अतिरिक्त मेहनत के हो जाएगा: नए ब्लॉक बनाने के लिए, उदाहरण के तौर पर, वास्तविक काम चाहिए। [1] [6]

आना का Full Node हस्ताक्षर, खर्च की शर्तें और माइनर को मिलने वाला अनुमत इनाम जाँचता रहता है। यहाँ हस्ताक्षर करने का मतलब निजी कुंजी, यानी एक गुप्त संख्यात्मक मान, से भुगतान की अनुमति का जाँचा जा सकने वाला प्रमाण बनाना है। बाकी लोग वह गुप्त मान जाने बिना हस्ताक्षर जाँच सकते हैं। केवल एकमात्र उपलब्ध स्रोत से आने के कारण आना का नोड गलत लेनदेन स्वीकार नहीं करेगा। लेकिन जो वैध ब्लॉक कभी पहुँचा ही नहीं, उसे सत्यापन खोज नहीं सकता। इसी तरह आप मिले हुए पत्र की असलियत जान सकते हैं, बिना यह जाने कि किसी ने बाद के सभी पत्र रोक लिए। जानकारी की वैधता और उसका पूरा होना दो अलग बातें हैं। [5] [9]

दूसरे नोड आगे बढ़ सकते हैं और अलग पड़ा नोड अंतिम ज्ञात ब्लॉक पर रुका रह सकता है। अलग हुआ माइनर छोड़ी गई शाखा पर काम जारी रखकर अपेक्षित इनाम खो सकता है। लेकिन ब्लॉक का लंबा इंतजार अपने आप हमले का प्रमाण नहीं है: माइनिंग में यादृच्छिकता होती है और साधारण खराबी भी समस्या पैदा करती है। कई संकेतों का मेल मायने रखता है, केवल स्क्रीन का धीरे अपडेट होना नहीं। [1] [5] [8]

हमलावर आना को उसके भुगतान वाली वैध निजी शाखा दिखा सकता है, जबकि बाकी नेटवर्क में वही धन दूसरी तरह खर्च कर दे। कनेक्शन लौटने पर नोड ज्यादा संचित काम वाली वैध शाखा चुन सकता है। इसे Reorg कहते हैं, यानी स्वीकृत इतिहास के कुछ हिस्से को बदलना। छोड़ी गई शाखा में मौजूद भुगतान की पुष्टि खत्म हो सकती है। लेकिन हमलावर को अपने ब्लॉकों के लिए Proof of Work देना होगा। यह बहुत-सी गणना वाली खोज का ऐसा परिणाम है जिसे जाँचा जा सकता है; इन ब्लॉकों को भी यह शर्त पूरी करनी होती है। जरूरी काम उन माइनरों से भी मिल सकता है जिन्हें हमलावर ने अलग-थलग कर दिया हो। मनगढ़ंत पुष्टि-संख्या Full Node को नहीं ठग सकती; सफलता अलगाव की अवधि और विरोधी के संसाधनों पर भी निर्भर करती है। [1] [5] [6]

बचाव का लक्ष्य है कि सारे कनेक्शन एक ही विरोधी तक न पहुँचें। Bitcoin Core ज्ञात पतों को समूहों में बाँटता है और बाहर जाने वाले कनेक्शन चुनते समय नेटवर्क विविधता बढ़ाता है। IP पता नेटवर्क में उस स्थान को बताता है जिससे प्रोग्राम जुड़ता है। फिर भी अलग IP पते एक ही संचालक के हो सकते हैं या एक ही बुनियादी ढाँचे से गुजर सकते हैं। ये उपाय केंद्रीकरण घटाते हैं और हमला कठिन बनाते हैं, लेकिन हर peer की स्वतंत्रता साबित नहीं करते। [3] [4]

Bitcoin Core छोटे feeler कनेक्शन से जाँचता है कि किसी दूसरे पते तक पहुँचा जा सकता है या नहीं। अतिरिक्त ब्लॉक-रिले कनेक्शन का काम अलग है: वे नए ब्लॉक हेडर, यानी ब्लॉक का संक्षिप्त तकनीकी रिकॉर्ड, और चेन की आगे की स्थिति का दूसरा स्रोत दे सकते हैं। इसलिए यह कहना गलत होगा कि हर feeler तुरंत नया इतिहास डाउनलोड कर लेता है। संदर्भित Bitcoin Core 29.0 का कोड इन अलग बचावों को दिखाता है; कोई भी अकेले अलगाव खत्म करने की गारंटी नहीं देता। [4] [8]

पहचाना हुआ peer हाथ से जोड़ने पर दूसरा रास्ता मिल सकता है, यदि वह उपलब्ध हो और सचमुच बाकी नेटवर्क से जुड़ा हो। मगर एक ही प्रदाता से गुजरने वाले कई कनेक्शन स्वतंत्र नहीं भी हो सकते हैं। ऐसा सॉफ़्टवेयर इस्तेमाल करना जिसका रखरखाव जारी हो और कनेक्शन सेटिंग समझना, दूसरों के पतों की सूची आँख बंद करके लेने से बेहतर है। अपना सत्यापन कायम रहता है: स्रोत उपलब्ध होने पर भरोसा उसे अमान्य ब्लॉक भेजने की अनुमति नहीं देता। [2] [4] [6]

Sybil Attack में एक विरोधी कई पहचानों से काम करता है, जिससे Eclipse Attack आसान हो सकता है। Eclipse किसी खास नोड या चुने समूह को ईमानदार स्रोतों से सफलतापूर्वक काट देना है। व्यापक नेटवर्क विभाजन पूरे-पूरे हिस्सों को अलग करता है और जरूरी नहीं कि इसी तरीके से हो। सामान्य उपयोगकर्ता के लिए बात यह है कि Full Node स्वतंत्र सत्यापन देता है, लेकिन उसे हमलावर के नियंत्रण से बाहर की जानकारी भी चाहिए। [1] [6]

पूरी तस्वीर के लिए इस प्रविष्टि के साथ यह भी पढ़ें Sybil Attack, Block Propagation, Compact Blocks, Nakamoto Consensus, Bitcoin, Full Node. इस प्रविष्टि का उल्लेख यहाँ भी है दोहरा खर्च, Byzantine Generals Problem, Nakamoto Consensus, Sybil Attack.

DOC · 001Heilman et al. — Eclipse Attacks on Bitcoinप्राथमिक स्रोत DOC · 002Bitcoin Developer Guide — P2P Networkदस्तावेज़ DOC · 003Bitcoin Core v29.0 — addrmanदस्तावेज़ DOC · 004Bitcoin Core v29.0 — Peer connectionsदस्तावेज़ DOC · 005Bitcoin Developer Guide — Block Chainदस्तावेज़ DOC · 006Bitcoin Optech — Eclipse attacksदस्तावेज़ DOC · 007USENIX Security 2015 — Eclipse Attacks on Bitcoin’s Peer-to-Peer Networkप्राथमिक स्रोत DOC · 008Bitcoin Core v29.0 — Message processingदस्तावेज़ DOC · 009Bitcoin Core v29.0 — Block validationदस्तावेज़
समीक्षा की गई: स्रोत पहले · यह निवेश सलाह नहीं है