8192-बिट कुंजियाँ हैंडशेक को अटका देती हैं; 1024-बिट DH अस्वीकार होता है
विपरीत सुधारों वाली दो आकार-त्रुटियाँ: बहुत बड़ी कुंजी हैंडशेक का समय जलाती है जब तक सामने वाले पक्ष की समय-सीमा खत्म न हो जाए, जबकि छोटा DH समूह शुरू होने से पहले ही अस्वीकार हो जाता है।
एक सर्वर में क्लाइंट कुछ देर अटकते हैं और फिर दोबारा जुड़ते हैं, और दूसरा कुंजी के आकार के बारे में संदेश के साथ कनेक्शन तुरंत अस्वीकार कर देता है। ये अलग-अलग बग लगते हैं और यह वही बग है जो विपरीत दिशाओं में इशारा करता है। हैंडशेक क्रिप्टोग्राफी की लागत पैरामीटर के आकार के साथ बढ़ती है, और इसकी एक निचली सीमा भी है जिसके नीचे आधुनिक लाइब्रेरी नहीं जातीं। सामग्री का आकार तय करना चेकलिस्ट है, और पहला मद यह तय करना है कि आपके पास वास्तव में दोनों में से कौन-सी त्रुटि है।
कुछ भी दोबारा बनाने से पहले विफलता पढ़ें
समय आपको इसका ज़्यादातर हिस्सा बता देता है। कुछ सेकंड लेकर फिर मर जाने वाला हैंडशेक आमतौर पर बताता है कि गणना सामने वाले पक्ष के धैर्य से आगे निकल गई, जो हार्डवेयर या समय-सीमा के लिए बहुत बड़े पैरामीटर की ओर इशारा करता है। कुंजी या समूह का आकार बताने वाला तत्काल अस्वीकार दूसरी दिशा में इशारा करता है, ऐसी सामग्री की ओर जिसे लाइब्रेरी बिल्कुल भी स्वीकार नहीं करेगी।
इन दोनों को विपरीत सुधार चाहिए, और यहीं अधिकांश प्रयास गलत होते हैं। जिस क्लाइंट ने पहले ही छोटा समूह अस्वीकार कर दिया है, उस पर 8192-बिट पैरामीटर दोबारा बनाना धीमे मामले को और खराब करता है और तेज़ मामले के लिए कुछ नहीं करता। किसी फ़ाइल को छूने से पहले लिख लें कि आपने कौन-सा लक्षण देखा।
फिर देखें कि सामने वाले पक्ष से क्या माँगा जा रहा है। बड़े परिमित-क्षेत्र समूह के लिए सेट सर्वर हर क्लाइंट को केवल कनेक्ट होने पर नहीं, बल्कि हर पुनः-वार्ता पर वही CPU समय खर्च करने को मजबूर करता है। अगर समस्या शुरुआत में नहीं बल्कि नियमित अंतराल पर दिखे, तो वह अंतराल इस बात का मजबूत संकेत है कि कौन-सी सेटिंग महँगी है। पुनः-वार्ता पूरी गणना दोहराती है, इसलिए हर घंटे लौटने वाला ठहराव आमतौर पर वही लागत फिर से चुकाना है।
धीमा मामला: ऐसी सामग्री जो हार्डवेयर वहन नहीं कर सकता
Diffie-Hellman और RSA का काम कुंजी के आकार के साथ तेज़ी से बढ़ता है, और यह सब सुरंग में कोई ट्रैफ़िक बहने से पहले ही होता है। छोटे राउटर या कम शक्ति वाले क्लाइंट पर पर्याप्त बड़ा समूह आदान-प्रदान को दूसरे पक्ष की समय-सीमा से आगे धकेल सकता है, जिससे कनेक्शन फिर कोशिश करता है या बिना किसी त्रुटि के बस अटका दिखता है।
सुधार यह है कि ऐसे आकार पर आएँ जिसे हर पक्ष समर्थन देता हो और हर उपकरण आराम से गणना कर सके। 2048-बिट RSA कुंजी और 2048-बिट समूह व्यापक रूप से संगत आधाररेखा बने रहते हैं; बड़ा करना केवल तब मदद करता है जब सभी पक्ष सहमत हों और प्रोसेसर हर पुनः-वार्ता पर उसका खर्च उठा सके। उस आधाररेखा से ऊपर सब कुछ जानबूझकर किया गया सौदा है, उन्नयन नहीं।
आकार कोई स्कोर नहीं है, और तुलना तालिका की सबसे बड़ी संख्या अपने आप सही चुनाव नहीं होती। अपनी नीति द्वारा अनुमत सबसे छोटा मान चुनें जिसे सभी पक्ष स्वीकार करें, फिर सुधरा मानने के बजाय हैंडशेक मापें। अभी भी समय-सीमा पार करने वाला छोटा समूह आपको बताता है कि आकार कभी पूरी कहानी नहीं था।
तेज़ मामला: वह समूह जिसे लाइब्रेरी अस्वीकार करती है
आधुनिक OpenSSL बिल्ड सबसे छोटे परिमित-क्षेत्र समूहों को सीधे अस्वीकार करते हैं, और बढ़ाया सुरक्षा स्तर निचली सीमा को और ऊपर धकेल देता है। दशकों पुरानी पैरामीटर फ़ाइल लेकर आने वाला राउटर फ़र्मवेयर सामान्य स्रोत है, और लक्षण वह कनेक्शन है जो समूह या कुंजी का आकार बताने वाले संदेश के साथ तुरंत विफल हो जाता है। उस विफलता में कुछ भी रुक-रुक कर नहीं है, और यही इसे पहचानना आसान बनाता है।
जाँच छोड़ने के लिए कॉन्फ़िगरेशन संपादित करने के बजाय फ़ाइल बदलें। मौजूदा समूह बनाएँ, उसे सत्यापित करें, फिर उसे वहाँ स्थापित करें जहाँ डेमन वास्तव में उसे पढ़ता है। पुरानी फ़ाइल तब तक रखें जब तक कोई क्लाइंट नई के साथ सफलतापूर्वक न जुड़ जाए:
openssl dhparam -out /etc/openvpn/ffdhe2048.pem 2048
openssl dhparam -in /etc/openvpn/ffdhe2048.pem -check -noout
ls -l /etc/openvpn/ffdhe2048.pemजाँच कमांड फ़ाइल को सत्यापित करता है और पास होने पर कुछ उपयोगी नहीं छापता; सूची पुष्टि करती है कि आपने वह फ़ाइल बदली है जिसे सेवा लोड करती है, न कि उसके बगल की पुरानी प्रति। कॉन्फ़िगरेशन को उस पथ पर इंगित करें, डेमन पुनः आरंभ करें, और पुष्टि करें कि पहले विफल रहा क्लाइंट अब हैंडशेक पूरा करता है।
अगर सर्वर सुरक्षा स्तर या प्रमाणपत्र प्रोफ़ाइल भी सेट करता है, तो समूह को गलत मानने से पहले उन्हें पढ़ें। अधिक कड़ी श्रेणी माँगने वाला प्रोफ़ाइल ऐसी सामग्री अस्वीकार कर सकता है जिसे डिफ़ॉल्ट स्वीकार करता, और उस सेटिंग को हटाना जाँच को वैश्विक रूप से बंद करने से अधिक सीमित बदलाव है।
सामने वाले पक्ष और हार्डवेयर के लिए आकार चुनें
कुछ भी विचित्र बनाने से पहले पता करें कि दूर का सिरा क्या सहन कर सकता है। 2048-बिट समूह के लिए बहुत पुराना उपकरण बदलने योग्य उपकरण है, क्योंकि सर्वर को कमजोर समूह की ओर मोड़ना केवल संगतता की शिकायत को रुकावट में बदलता है। टिकाऊ सुधार पुराने पैरामीटर की ओर नहीं, नए सॉफ़्टवेयर की ओर बढ़ते हैं। इस क्षेत्र का हर अस्थायी अपवाद स्थायी कॉन्फ़िगरेशन बन जाने का रास्ता खोज लेता है।
जहाँ सर्वर का CPU सीमा है, वहाँ नीति से नीचे उतरने के बजाय एल्गोरिदम बदलें। X25519 जैसा दीर्घवृत्तीय वक्र कुंजी आदान-प्रदान बड़े परिमित-क्षेत्र समूह से नाटकीय रूप से सस्ता है और व्यापक रूप से समर्थित है, जो इसे छोटे RSA मापांक की तुलना में प्रदर्शन की शिकायत का बेहतर उत्तर बनाता है।
आप जो भी चुनें, एक वास्तविक कनेक्शन से परखें और देखें कि हैंडशेक में कितना समय लगता है, केवल यह नहीं कि अंत में जुड़ता है या नहीं। बारह सेकंड में सफल होने वाले कनेक्शन का मूल कारण वही है जो पंद्रह में विफल होने वाले का है।
चुनाव लिख लें ताकि पुनर्निर्माण उसे रद्द न कर सके
पैरामीटर फ़ाइल को कॉन्फ़िगरेशन प्रबंधन के अंतर्गत रखें और उसके बगल में आकार, कारण और तारीख लिखें। अपने डिफ़ॉल्ट चुपचाप बनाने वाला पुनर्निर्मित सर्वर वही रास्ता है जिससे वही त्रुटि छह महीने बाद लौटती है और कोई मूल निर्णय नहीं समझा पाता।
वही जानकारी एंडपॉइंट और प्रोफ़ाइल के पास लिखें, ताकि समीक्षा को उसे फ़ाइल के आकार से फिर से न बनाना पड़े। जब अगला कनेक्शन अटके, तो वह टिप्पणी पाँच मिनट की जाँच और नई जाँच के बीच का अंतर है। यह अगले इंजीनियर को तेज़ मामले के लिए बने सुधार से धीमा मामला सुलझाने से भी रोकता है।