प्रश्न और परिदृश्य
एक सामान्य रेप्लिकेटेड स्टेट मशीन आमतौर पर यह मानती है कि नोड्स सक्रिय रूप से अलग-अलग सामग्री गढ़े बिना क्रैश होते हैं, पैकेट खोते हैं, या रीस्टार्ट होते हैं। यह कंट्रोल प्लेन प्रमाणपत्रों, अनुमतियों और रूट्स को प्रबंधित करता है, इसलिए एक कॉम्प्रोमाइज्ड नोड विभिन्न पीयर्स को असंगत लॉग भेज सकता है या किसी अन्य पहचान का रूप धारण कर सकता है। थ्रेट मॉडल से शुरुआत करें और बताएं कि Raft, ऑथेंटिकेशन और बाइज़ेंटाइन प्रोटोकॉल व्यक्तिगत रूप से क्या हल करते हैं।
साक्षात्कारकर्ता क्या परीक्षण कर रहा है
- क्या उम्मीदवार क्रैश फॉल्ट, नेटवर्क पार्टीशन, दुर्भावनापूर्ण नोड्स और चोरी हुई पहचान कुंजियों के बीच अंतर कर सकता है?
- क्या वे Raft की सुरक्षा मान्यताओं, कोरम इंटरसेक्शन, और बाइज़ेंटाइन प्रोटोकॉल की अतिरिक्त संचार और रेप्लिका लागत को समझते हैं?
- क्या वे सिस्टम बाउंड्री में सिग्नेचर, सदस्यता, ऑडिटिंग, की-रोटेशन और रिकवरी को शामिल कर सकते हैं?
- क्या वे एन्क्रिप्शन या बहुमत के वोट को बाइज़ेंटाइन-सुरक्षा प्रमाण मानने से बचेंगे?
पहले पूछने योग्य स्पष्टीकरण प्रश्न
पूछें कि एक हमलावर कितने नोड्स को नियंत्रित कर सकता है, क्या पहचान को गढ़ा जा सकता है, क्या पीयर्स के पास विश्वसनीय कुंजियां हैं, और क्या संगति (consistency) या उपलब्धता (availability) अधिक महत्वपूर्ण है। कंट्रोल-प्लेन स्थिति के मूल्य, मानवीय अनुमोदन, सदस्यता-परिवर्तन आवृत्ति और अंतर-क्षेत्रीय लेटेंसी को स्पष्ट करें। हार्डवेयर-संरक्षित कुंजियों वाले एक नियंत्रित क्लस्टर को केवल क्रैश फॉल्ट टॉलरेंस की आवश्यकता हो सकती है; एक अविश्वसनीय आपूर्ति श्रृंखला या ऑपरेटर इस उत्तर को बदल देता है।
30-सेकंड उत्तर ढांचा
पहले फॉल्ट मॉडल और संरक्षित इनवेरिएंट्स लिखें। Raft गैर-दुर्भावनापूर्ण विफलताओं को मानता है और एक नियंत्रित क्लस्टर में क्रैश टॉलरेंस के अनुकूल है। ऑथेंटिकेशन यह साबित करता है कि संदेश किसी कुंजी से आया है, न कि यह कि धारक ईमानदार है। यदि कुछ नोड्स परस्पर विरोधी मान भेज सकते हैं, तो एक ऐसा बाइज़ेंटाइन प्रोटोकॉल चुनें जो बताई गई फॉल्ट सीमा के तहत सुरक्षित हो, और अधिक रेप्लिकास, ऑथेंटिकेटेड ब्रॉडकास्ट, टाइमआउट और की-ऑपरेशंस की लागत को स्वीकार करें। यदि आइसोलेशन, कुंजी सुरक्षा और मानवीय अनुमोदन जोखिम को पर्याप्त रूप से कम करते हैं, तो Raft को बनाए रखें और दस्तावेजित करें कि यह क्या कवर नहीं करता है।
चरण-दर-चरण गहन विश्लेषण
- फॉल्ट मॉडल बताएं। क्रैश, ओमिशन, पार्टीशन और सक्रिय-दुर्भावनापूर्ण फॉल्ट्स को अलग करें। बताएं कि क्या मिलीभगत, पहचान जालसाजी, संदेश में देरी, या डिस्क संपादन संभव हैं; इस मॉडल के बिना, प्रोटोकॉल तुलना निरर्थक है।
- सुरक्षा इनवेरिएंट्स को परिभाषित करें। उदाहरणों में शामिल हैं: कोई भी ईमानदार रेप्लिका दो परस्पर विरोधी कॉन्फ़िगरेशन कमिट नहीं करेगा, रद्दीकरण का कोई रोलबैक नहीं होगा, और ऑडिट करने योग्य कुंजी प्रकाशन। उपलब्धता, फाइनलिटी और रिकवरी उद्देश्यों को अलग से निर्धारित करें।
- सामान्य-सर्वसम्मति मान्यताओं की जांच करें। Raft क्रैश का विरोध करने के लिए लीडर, लॉग मिलान और बहुमत कमिट का उपयोग करता है। यह वैध पहचान वाले नोड को विभिन्न पीयर्स को अलग-अलग सामग्री भेजने से नहीं रोकता है। TLS ट्रांसपोर्ट की सुरक्षा करता है, दुर्भावनापूर्ण एंडपॉइंट्स की नहीं।
- बाइज़ेंटाइन लागत का मूल्यांकन करें। क्लासिक गैर-प्रमाणित ओरल-मैसेज मॉडल में, f बाइज़ेंटाइन नोड्स को सहन करने के लिए एक उच्च रेप्लिका सीमा की आवश्यकता होती है। प्रमाणित प्रोटोकॉल, थ्रेशोल्ड सिग्नेचर और विश्वसनीय हार्डवेयर इंजीनियरिंग ट्रेड-ऑफ को बदलते हैं लेकिन फॉल्ट-सीमा और सदस्यता मान्यताओं को नहीं हटाते हैं।
- सीमा को नियंत्रित करें। बाइज़ेंटाइन प्रोटोकॉल के साथ भी, सदस्यता को प्रतिबंधित करें, कुंजियों को घुमाएं और रद्द करें, कंट्रोल और डेटा प्लेन को अलग करें, साक्ष्य बनाए रखें और सुरक्षित रिकवरी की तैयारी करें। एक प्रोटोकॉल प्रतिभागियों को रोकता है, उस व्यवस्थापक को नहीं जो डेटाबेस को सीधे संपादित करता है।
- खतरे से सत्यापित करें। फोर्क किए गए संदेश, जाली हस्ताक्षर, रीप्ले किए गए कॉन्फ़िगरेशन, विलंबित कोरम प्रतिक्रियाएं और नोड रिकवरी इंजेक्ट करें। इनवेरिएंट्स, ऑडिट साक्ष्य और रिकवरी पथों की जांच करें; फॉल्ट ड्रिल्स को यह प्रदर्शित करना चाहिए कि चयनित प्रोटोकॉल वास्तविक सीमा को पूरा करता है।
उच्च गुणवत्ता वाला नमूना उत्तर
मैं केवल इसलिए बाइज़ेंटाइन फॉल्ट टॉलरेंस नहीं चुनूंगा क्योंकि क्लस्टर कई क्षेत्रों में फैला हुआ है। पहले हमलावर को परिभाषित करें। यदि नोड्स केवल क्रैश होते हैं या नेटवर्क दोषों का सामना करते हैं, तो Raft का लीडर, लॉग मिलान और बहुमत कमिट पर्याप्त हैं। यदि वैध कुंजी वाला कोई नोड विभिन्न रेप्लिकास को परस्पर विरोधी कॉन्फ़िगरेशन भेज सकता है, तो प्रमाणित ट्रांसपोर्ट और बहुमत मतदान ईमानदारी साबित नहीं करते हैं।
एक उच्च-मूल्य वाले कंट्रोल प्लेन के लिए, f, सदस्यता नियम, गैर-विरोधी कमिट और गैर-प्रतिवर्ती रद्दीकरण को इनवेरिएंट्स के रूप में परिभाषित करें। फिर एक प्रमाणित बाइज़ेंटाइन प्रोटोकॉल चुनें जो उस f के लिए सुरक्षित रहे। रेप्लिका संख्या, सिग्नेचर जांच, लेटेंसी और की-ऑपरेशंस की जोखिम के साथ तुलना करें। यदि आइसोलेशन, हार्डवेयर कुंजियां, दो-व्यक्ति अनुमोदन और रीड-ओनली रिकवरी दुर्भावनापूर्ण-नोड जोखिम को स्वीकार्य बनाती हैं, तो Raft को बनाए रखें और उस खतरे को रिकॉर्ड करें जिसे कवर नहीं किया गया है। संदर्भों में Lamport का बाइज़ेंटाइन जनरल्स कार्य, Raft पेपर और इसके औपचारिक विनिर्देश शामिल हैं।
सामान्य गलतियां
- यह बताए बिना कि क्या कोई नोड सक्रिय रूप से झूठ बोल रहा है, पार्टीशन या क्रैश को बाइज़ेंटाइन फॉल्ट कहना।
- यह मान लेना कि केवल TLS, सिग्नेचर, या बहुमत ही वैध क्रेडेंशियल वाले दुर्भावनापूर्ण नोड को रोकते हैं।
- ऑथेंटिकेशन मॉडल, मिलीभगत की सीमा, सदस्यता और कुंजी सुरक्षा को अनदेखा करते हुए केवल एक रेप्लिका संख्या की रिपोर्ट करना।
- प्रोटोकॉल संदेशों पर चर्चा करना लेकिन प्रशासकों, डेटाबेस, बैकअप और रिकवरी बायपास को अनदेखा करना।
- इनवेरिएंट्स, हमले के अभ्यास और जोखिम सीमाओं को "अधिक सुरक्षित" वाक्यांश से बदलना।
अनुवर्ती प्रश्न और उत्तर
क्या तीन-नोड वाला क्लस्टर एक बाइज़ेंटाइन नोड को सहन कर सकता है?
प्रोटोकॉल और ऑथेंटिकेशन मॉडल का नाम बताए बिना नहीं। क्लासिक गैर-प्रमाणित ओरल-मैसेज मॉडल में उच्च रेप्लिका सीमा होती है; प्रमाणित प्रोटोकॉल, विश्वसनीय हार्डवेयर और आंशिक तुल्यकालन (partial synchrony) स्थितियों को बदलते हैं। मॉडल बताएं, फिर f, कोरम और सुरक्षा तर्क प्रस्तुत करें।
बहुमत का वोट दुर्भावनापूर्ण व्यवहार को स्वचालित रूप से हल क्यों नहीं करता है?
एक दुर्भावनापूर्ण नोड विभिन्न पर्यवेक्षकों को अलग-अलग मान भेज सकता है या तार्किक भूमिकाओं का रूप धारण कर सकता है। बहुमत तभी सार्थक होता है जब संदेश प्रमाणीकरण, दृश्य परिवर्तन (view changes), साक्ष्य प्रसार और कोरम प्रतिच्छेदन प्रोटोकॉल मान्यताओं को संतुष्ट करते हैं।
आपको Raft के साथ कब बने रहना चाहिए?
जब नोड्स और कुंजियां एक नियंत्रित सीमा के भीतर हों, क्रैश और नेटवर्क दोष प्रमुख हों, और मैन्युअल रिकवरी स्वीकार्य हो, तो Raft सरल और सत्यापित करने में आसान होता है। सदस्यता अनुमोदन, की-रोटेशन, ऑडिटिंग और फॉल्ट ड्रिल्स जोड़ें, और बताएं कि दुर्भावनापूर्ण नोड्स इसकी गारंटी से बाहर हैं।