2015-06-08 5 views
6

मैं एसएसएल के माध्यम से अपने डेटाबेस Google क्लाउड एसक्यूएल से कनेक्ट कर रहा हूं। मैं ऐसा करने के लिए codeigniter 3.0 का उपयोग करता हूं, हालांकि mysqli ड्राइवर इस कार्यक्षमता को अनुमति देने के लिए थोड़ा संशोधित है।एसएसएल ऑपरेशन कोड 1 के साथ असफल रहा: डीएच कुंजी बहुत छोटा

यह महीनों के लिए अच्छा काम कर रहा है। हालांकि यह सिर्फ यह चेतावनी वापस जाने के लिए शुरू कर दिया:

Message: mysqli::real_connect(): SSL operation failed with code 1. OpenSSL Error messages: error:14082174:SSL routines:SSL3_CHECK_CERT_AND_ALGORITHM:dh key too small 

मैं DH Key is too small संभालने कर रहा हूँ मुख्य समस्या है, लेकिन मैं पता नहीं कि क्या मतलब है। मैंने "बहुत छोटी" संदेश के साथ डिफी-हेलमैन कुंजी एक्सचेंज को गुमराह किया है, लेकिन मुझे बहुत भाग्य नहीं मिला है।

यह एक संकेत है कि सर्वर पर कुंजी के साथ छेड़छाड़ की गई है है? मैंने उन पर अंतिम संशोधित तिथियों की जांच की है - कोई असामान्य हालिया पहुंच नहीं।

यह हो सकता है कि अपने सर्वर PHP या उनके सर्वर विन्यास के लिए कुछ उन्नयन, जो इस तोड़ने में परिणाम हो सकता था, लेकिन मैं जाँच करें और सुनिश्चित करें कि यह कुछ और नहीं था बनाना चाहते थे।

विषय पर किसी भी अंतर्दृष्टि/पठनीय सामग्री के लिए धन्यवाद।

+2

httpd.conf फ़ाइल में SSLCipherSuite को बदलने का प्रयास करें – codex

उत्तर

10
... error:14082174:SSL routines:SSL3_CHECK_CERT_AND_ALGORITHM:dh key too small 

त्रुटि संख्या आप में रुचि रखते हैं OpenSSL त्रुटि 0x14082174 है।

SSL3_CHECK_CERT_AND_ALGORITHM आमतौर पर जब निर्यात ग्रेड सिफर को सक्षम करने में देखा जाता है। यह लॉगजम (नीचे देखें) के कारण गैर निर्यात ग्रेड वार्ताओं में फिर से दिख रहा है।


मैं यह सोचते हैं रहा हूँ DH कुंजी बहुत छोटा है मुख्य समस्या है, लेकिन मैं पता नहीं कि क्या मतलब है। मैंने "बहुत छोटी" संदेश के साथ डिफी-हेलमैन कुंजी एक्सचेंज को गुमराह किया है, लेकिन मुझे बहुत भाग्य नहीं मिला है।

यह Imperfect Forward Secrecy: How Diffie-Hellman Fails in Practice पेपर से हाल ही में Logjam attack के कारण है।

आप 2048-बिट Diffie-Hellman समूह या बड़ा प्रयोग करना चाहिए। आपको चाहिये 512-बिट या 1024-बिट Diffie-Hellman समूहों का उपयोग नहीं किया।

पहले की जांच करने के बात आपके सिफर सूची स्ट्रिंग है। यह समान होना चाहिए:

"HIGH:!aNULL:!MD5:!RC4" 

यह निर्यात ग्रेड सिफर से बच जाएगा, और आधुनिक सिफर का उपयोग करेगा। लेकिन आपको यह सुनिश्चित करने की भी आवश्यकता होगी कि आपका डीएच कॉलबैक एक कमजोर/छोटे क्षेत्र के आकार का उपयोग नहीं कर रहा है। इसके लिए, आपको सर्वर कॉन्फ़िगरेशन की जांच करने की आवश्यकता है।


कुछ लोग kRSA के साथ इस मुद्दे को "हल" कर रहे हैं। kRSA एक महत्वपूर्ण परिवहन योजना, नहीं एक प्रमुख समझौते योजना है। आरएसए कुंजी परिवहन योजना आगे की गोपनीयता प्रदान नहीं करती है, और इसका उपयोग आमतौर पर निराश होता है। वास्तव में, इसे टीएलएस 1.3 से हटा दिया जा रहा है।

मैं केवल कह सकता हूं "आमतौर पर निराश" क्योंकि यह संरक्षित डेटा पर निर्भर करता है। यदि आपके पास सार्वजनिक रूप से उपलब्ध फ़ाइल के डाउनलोड की सुरक्षा के लिए SSL/TLS है, तो इसका उपयोग करने के लिए शायद ठीक है। यदि आपकी वेबसाइट में लॉगिन है, तो शायद इसका उपयोग करने के लिए थोड़ा जोखिम भरा है क्योंकि पासवर्ड गुप्त डेटा है (सार्वजनिक रूप से डाउनलोड करने योग्य फ़ाइल के विपरीत)।

कुंजी परिवहन से बचने और वेब सर्वर विन्यास और आगे गोपनीयता के लिए उन Qualsys SSL Labs परीक्षण पास करने के लिए, का उपयोग करें:

"HIGH:!aNULL:!kRSA:!MD5:!RC4" 

अपने अपाचे विन्यास फाइल में, यह तो ऐसा दिखाई देगा:

# cat /etc/httpd/conf.d/ssl.conf | grep SSLCipherSuite 
# SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5 
SSLCipherSuite HIGH:!aNULL:!kRSA:!MD5:!RC4 

मुझे लगता है कि पेपर जारी होने से कुछ समय पहले wget ने छोटे समूहों को खारिज कर दिया था। यह आपकी साइट के लिए एक अच्छा परीक्षण मामला बना सकता है।

एक बेहतर sslscan भी है, जो कई चीजों के लिए परीक्षण करता है। यह भी एक अच्छा क्यूए उपकरण बना सकता है।

+0

आपकी अंतर्दृष्टि के लिए धन्यवाद। जबरदस्त सराहना की। – markbratanov

संबंधित मुद्दे