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

मान का नाम लेने से पहले वस्तु का नाम लें

तय करें कि अपेक्षित मान सर्वर के लीफ़ प्रमाणपत्र का है, जारी करने वाले CA का है, या लीफ़ के भीतर की सार्वजनिक कुंजी का है। ये तीन अलग जाँचें हैं और ये अलग-अलग तरीक़ों से विफल होती हैं। मेल खाती CA फ़िंगरप्रिंट सर्वर को पिन नहीं करती, और सार्वजनिक कुंजी का हैश जानबूझकर ऐसे पुनःजारी में बचा रहता है जो वही कुंजी रखता है।

एल्गोरिदम भी लिख लें। SHA-256 आज सामान्य अपेक्षा है, पर पुराने औज़ार कुछ और न माँगने पर SHA-1 छापते थे, और 40 अक्षरों का हेक्स मान यह संकेत है कि आप दो अलग चीज़ों की तुलना करने वाले हैं।

अपेक्षित मान दूसरे चैनल से लाएँ

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

पूरा मान और एल्गोरिदम माँगें, कभी उपसर्ग नहीं। कोलन और अक्षरों का बड़ा-छोटा होना मायने नहीं रखता, पर काट-छाँट 256-बिट की जाँच को अनुमान के खेल में बदल देती है।

यदि कोई स्वतंत्र स्रोत से अपेक्षित मान नहीं दे सकता, तो ईमानदार नतीजा यही है कि इस प्रमाणपत्र को आज सत्यापित नहीं किया जा सकता। यह कहना उस चीज़ को पिन करने से बेहतर है जो क्लाइंट ने अभी दिखाया, क्योंकि उससे चेतावनी आदत बन जाती है।

मान अपनी ओर से निकालें

प्रमाणपत्र फ़ाइल के लिए आदेश openssl x509 -in server.crt -noout -fingerprint -sha256 है। स्पष्ट डाइजेस्ट मायने रखता है: उसके बिना आउटपुट आपके OpenSSL संस्करण पर निर्भर करता है। नतीजा कोलन से अलग की गई हेक्स स्ट्रिंग है, इसलिए तुलना से पहले कोलन हटाएँ और दोनों पक्षों को छोटे अक्षरों में लाएँ।

सीधे TLS बोलने वाले एंडपॉइंट के लिए, कनेक्ट करें और प्रमाणपत्र को पाइप से बाहर निकालें: openssl s_client -connect vpn.example.com:443 -servername vpn.example.com < /dev/null | openssl x509 -noout -fingerprint -sha256। यह वेब एडमिन पैनल या TLS श्रोता के लिए काम करता है, OpenVPN के लिए नहीं, जिसका नियंत्रण चैनल सुरंग के भीतर होता है। OpenVPN के लिए, सॉकेट से पकड़ने की कोशिश करने के बजाय डिस्क पर प्रोफ़ाइल से प्रमाणपत्र पढ़ें।

तुलना यांत्रिक होनी चाहिए। tr -d ':' और अक्षरों को एक समान करके दोनों मान सामान्यीकृत करें, फिर पूरी स्ट्रिंग की तुलना करें। आँख से तुलना करना वह तरीक़ा है जिसमें मेल खाता उपसर्ग अंतिम बाइट का अंतर छिपा देता है। यदि स्ट्रिंग अलग हैं, तो व्याख्या खोजने से पहले अंतर को वास्तविक मानें।

रोकने की शर्तें

यदि वस्तु अलग है तो रुकें, क्योंकि CA फ़िंगरप्रिंट लीफ़ प्रमाणपत्र को निर्दोष नहीं ठहरा सकती और लीफ़ CA को नहीं ठहरा सकता। यदि एल्गोरिदम अलग है तो रुकें, क्योंकि SHA-1 मान की SHA-256 मान से तुलना आपको कुछ नहीं बताती। यदि फ़िंगरप्रिंट मेल खाती है पर प्रमाणपत्र समाप्त, निरस्त या किसी दूसरे नाम के लिए जारी है तो रुकें; मेल खाता हैश वैधता की जाँच नहीं है और टूटी श्रृंखला सुधारता नहीं। यदि क्रम संख्या उस रिकॉर्ड की क्रम संख्या से मेल नहीं खाती जिसके विरुद्ध आप जाँच रहे हैं तो भी रुकें, क्योंकि बदला गया प्रमाणपत्र पकड़ने का यह सबसे सस्ता तरीक़ा है।

यदि नया मान उसी चैनल से आया है जिसकी आप जाँच कर रहे थे तो रुकें। रोटेशन फ़िंगरप्रिंट को वैध रूप से बदल सकता है, पर प्रतिस्थापन मान फिर भी भरोसेमंद प्रक्रिया से ही आना चाहिए, उस चेतावनी संवाद से नहीं जिसने सवाल उठाया।

यदि सुझाया गया सुधार होस्टनाम या श्रृंखला सत्यापन बंद करना है तो रुकें। फ़िंगरप्रिंट सामान्य जाँचों में एक बाधा जोड़ती है; यह उन्हें तब तक प्रतिस्थापित नहीं करती जब तक तैनाती ने जानबूझकर केवल-पिन मॉडल न चुना हो, और उस चुनाव की अपनी परिचालन लागतें हैं।

तुलना के बाद

दर्ज करें कि आपने क्या तुलना की, अपेक्षित मान कहाँ से आया और कब। यदि प्रमाणपत्र पुनः जारी हुआ है, तो संग्रहित अपेक्षा को उसी भरोसेमंद चैनल से अद्यतन करें और नई क्रम संख्या लिखें, क्योंकि क्रम संख्या ही अगले रोटेशन को लेखा-परीक्षण योग्य बनाती है।

फिर सीमाओं के बारे में स्पष्ट रहें। फ़िंगरप्रिंट पुष्टि करती है कि आपके पास जो प्रमाणपत्र है वही वह है जिसकी अपेक्षा करने को किसी ने आपसे कहा था। यह इस बारे में कुछ नहीं कहती कि होस्ट समझौता-मुक्त है, और इस बारे में भी कुछ नहीं कहती कि सेवा यह दर्ज करती है या सीमित करती है कि वह प्रमाणपत्र कहाँ तक पहुँच सकता है।

संबंधित लेख