जवाबों:
दिलचस्प सवाल है, यह मेरी राय में उपयोग पर निर्भर करता है। सत्र के संदर्भ में आप अभी भी सुरक्षित हैं, लेकिन यह बताने का कोई तरीका नहीं है कि क्या यह सही एसएसएल प्रमाणपत्र आपके लिए प्रस्तुत किया गया है जब तक कि आप अपने सीए रूट प्रमाणपत्र को उपयोगकर्ताओं / ग्राहकों को वितरित नहीं करते हैं। आंतरिक परीक्षण / dev projets के लिए यह बहुत अच्छा काम करेगा, आप अपने उपयोगकर्ताओं को वितरित करने के लिए एक रूट CA प्रमाणपत्र का उपयोग करते हैं (जो कि Windows में समूह नीति के माध्यम से और Linux / BSD में ओपनसीएल कमांड लाइन के माध्यम से किया जा सकता है) और फिर उस रूट प्रमाणपत्र का उपयोग करें अपने CSR पर हस्ताक्षर करना। उपयोगकर्ताओं को एक चेतावनी या कुछ भी दिखाई नहीं देगा और आपको पता होगा कि प्रमाणपत्र आपके आंतरिक सीए द्वारा हस्ताक्षरित है।
बाहरी साइटों के लिए जहां आप इस बात का आश्वासन नहीं दे सकते, मैं फिर भी कहूंगा कि एक स्व-हस्ताक्षरित प्रमाणपत्र किसी एसएसएल से बेहतर है यदि आप कनेक्शन पर पासवर्ड या अन्य संवेदनशील जानकारी भेज रहे हैं।
हालाँकि, प्लस साइड में बहुत सस्ते "कमर्शियल" सर्टिफिकेट जारीकर्ता हैं, जिनमें से GoDaddy उनमें से एक है। आप प्रति वर्ष लगभग 40 यूरो के लिए एक प्रमाण पत्र प्राप्त कर सकते हैं। GoDaddy भी OpenSource प्रोजेक्ट वेब-साइट्स के लिए मुफ्त सेर्ट्स प्रदान करता है।
मैं एक बार संकीर्ण तकनीकी आधार पर और एक बार सामान्य आधार पर असहमत होने जा रहा हूं।
संकीर्ण तकनीकी आधार यह है कि ओपी ने स्व-हस्ताक्षरित प्रमाणपत्रों के बारे में पूछा, और कई अन्य उत्तर निजी सीए द्वारा हस्ताक्षरित प्रमाणपत्रों को संदर्भित करते हैं, जो थोड़ा अलग मुद्दा है। लेकिन बहुत अलग नहीं है, इसलिए यह वास्तव में केवल एक नोट है।
प्रमुख आपत्ति यह है कि मुझे लगता है कि जब तक व्यावसायिक रूप से हस्ताक्षरित प्रमाण पत्र तुच्छ व्यय से अधिक हैं - और $ 40 प्रति वर्ष इस ग्रह पर बहुत से लोगों के लिए एक तुच्छ व्यय नहीं है - स्व-हस्ताक्षरित प्रमाण पत्र की एक प्रमुख भूमिका है इंटरनेट सुरक्षा में, बशर्ते उनकी सीमाओं को मान्यता दी गई हो ।
एक स्व-हस्ताक्षरित प्रमाणपत्र मेरी known_hosts
फ़ाइल से ssh कुंजी की तरह है । स्वतंत्र सत्यापन के बिना, यह मुझे आश्वस्त नहीं कर सकता कि मैं उस प्रणाली से बात कर रहा हूं जो मुझे विश्वास है कि मैं हूं; लेकिन यह मुझे आश्वस्त कर सकता है कि मैं अब जिस प्रणाली से बात कर रहा हूं वह वही प्रणाली है जिससे मैंने पिछली बार बात की थी, मुझे लगा कि मैं इसके साथ बातचीत कर रहा हूं। हम हर समय ssh कुंजियों को कैश करते हैं, और मैंने अभी तक एक सिस्टम एडमिनिस्ट्रेटर से कभी मुलाकात नहीं की है जो स्वतंत्र रूप से अपनी / अपनी known_hosts
फाइल में सार्वजनिक कुंजी के एक अंश से अधिक सत्यापित है ।
स्व-हस्ताक्षरित प्रमाण पत्र (और, उस मामले के लिए, आम तौर पर मान्य सीए द्वारा हस्ताक्षरित प्रमाण पत्र) एसएसबी से बिल्कुल भी बेहतर नहीं हैं, जब तक कि लोगों को एहसास होता है कि जब तक वे उन्हें सत्यापित नहीं करते हैं, तब तक वे स्वयं को संचार सुरक्षित करते हैं, सर्वर DNS रिकॉर्ड के दूसरे छोर पर और वर्तमान में कोई भी पुरुष लाइन पर मध्य में है। यदि वे स्वतंत्र रूप से प्रमाण पत्र का सत्यापन करते हैं, तो प्रमाणीकरण और एन्क्रिप्शन कम से कम उतना ही मजबूत है जितना कि किसी मान्यता प्राप्त सीए द्वारा हस्ताक्षरित प्रमाण पत्र द्वारा प्रदान किया गया है।
इसके अलावा, एक मान्यताप्राप्त सीए द्वारा हस्ताक्षरित प्रमाणपत्रों के उपयोग को एक और केवल एक इंटरनेट सुरक्षा रामबाण के रूप में प्रस्तुत करने की इच्छा रखने वालों को मानक मोज़िला बंडल में चीनी सरकार के हस्ताक्षरित सीए को शामिल करने , और इच्छा जैसे मुद्दों के बारे में कठिन सोचने की आवश्यकता हो सकती है । धोखाधड़ी SSL प्रमाणपत्र Comodo द्वारा हस्ताक्षर किए गए ।
known_hosts
@MadHatter के बारे में कोई संकेत नहीं है , या तो संदर्भित है।
बाहरी साइटों के लिए, जहाँ उपयोगकर्ताओं के पास आपका CA प्रमाणपत्र स्थापित नहीं है (जो कि सबसे सामान्य मामला है), हाँ, एक स्व-हस्ताक्षरित प्रमाणपत्र सुरक्षा का झूठा एहसास देता है , और इस तरह यह बेकार से भी बदतर है:
सबसे पहले, पूर्व-स्थापित सीए प्रमाण पत्र के बिना, उपयोगकर्ता कैसे सत्यापित करता है कि प्रमाणपत्र वास्तव में आप से आता है, और हमलावर से नहीं? प्रमाणपत्र फ़ील्ड (CN, फ़िंगरप्रिंट, आदि) का मिलान करके, निश्चित रूप से - लेकिन किसके खिलाफ? तो अब आपको प्रमाण पत्र को सत्यापित करने के लिए एक साइड चैनल की आवश्यकता है - और कुछ उदाहरणों में मैंने देखा है कि, समर्थन लाइन ऑपरेटरों (जिन्हें सत्यापन के लिए साइड चैनल के रूप में सेवा की जानी चाहिए) के पास कोई सुराग नहीं है कि इसका क्या मतलब है; इसके अलावा, इस तरह के साइड चैनल का संचालन एक विश्वसनीय-सीए-हस्ताक्षरित प्रमाण पत्र प्राप्त करने की तुलना में अधिक महंगा होने का आदेश है, इसलिए उपयोगकर्ता को आँख बंद करके आप पर भरोसा करना चाहिए।
दूसरा, उपयोगकर्ता को मिलने वाला डरावना अलर्ट एक अच्छे कारण के लिए डरावना है: चूंकि उपयोगकर्ता प्रस्तुत प्रमाण पत्र को सत्यापित नहीं कर सकता / सकती है, वे सुरक्षित रूप से Elbonian Haxx0r D00dz पर डेटा संचारित कर सकते हैं ।
तीसरा, और सबसे बुरा, आप उपयोगकर्ताओं को निराश कर रहे हैं : "ठीक है, उन्होंने मुझे बताया कि मुझे https://mysite.example.com/ पर उस चेतावनी को अनदेखा करना चाहिए , और मेरे सिर पर आँवला नहीं गिरा, और मेरा सुनहरी मछली या तो नहीं मरती थी; सोओ, इसका मतलब है कि यह बिना किसी वास्तविक अर्थ के सिर्फ एक और अलर्ट बॉक्स है, इसलिए जब भी मैं इसका सामना करता हूं, मैं इस बॉक्स को अनदेखा कर सकता हूं - मुझे वैसे भी अच्छा लॉक आइकन मिलता है, और यह महत्वपूर्ण है। "
दूसरे शब्दों में, सुरक्षा का स्तर सादे HTTP के अलावा (ऑन-द-वायर सूँघने के अलावा) है: हालाँकि डेटा को ट्रांज़िट में एन्क्रिप्ट किया जाता है, जो एंडपॉइंट सत्यापन के बिना एक एनीमिक विशेषता है), लेकिन सुरक्षा की भावना अनुचित रूप से उच्च है । खराब कार सादृश्य: "मेरे पास एबीएस है, इसलिए मैं अब खराब परिस्थितियों में सुरक्षित चला सकता हूं" - एबीएस को छोड़कर केवल कार की बिक्री विवरणिका में मौजूद है, वास्तव में कार में मौजूद नहीं होने के बिना।
सुझाया गया रीडिंग: OWASP SSL बेस्ट प्रैक्टिस
टीएल; डीआर: सार्वजनिक-सामना करने वाली साइटों पर स्व-हस्ताक्षरित प्रमाण पत्र का उपयोग करके, आप नेट को एक बदतर जगह, एक बार में एक क्लूलेस उपयोगकर्ता बना रहे हैं।
निर्भर करता है। अगर आपको लगता है कि यह आपको अधिक सुरक्षित बनाता है तो यह आपके जोखिम को बढ़ाता है क्योंकि आप सुरक्षा की झूठी भावना के साथ जोखिम भरा काम करते हैं। यदि आप इसे कार्यात्मक रूप से HTTP के बराबर मानते हैं, तो मैं कहूंगा कि आप थोड़े अधिक सुरक्षित हैं।
एसएसएल / एचटीटीपीएस के बिना आपके नेटवर्क पर वायरशर्क (या लॉग इन करने वाले किसी का स्थानीय नेटवर्क) के साथ कोई भी सामान्य पाठ के रूप में भेजे गए उपयोगकर्ता नाम / पासवर्ड को तुच्छ रूप से सुन और पकड़ सकता है।
स्व-हस्ताक्षरित एसएसएल के साथ वे बस नहीं सुन सकते हैं, लेकिन अब आपकी साइट को नकली करना चाहिए, संभावित रूप से डीएनएस को एक आदमी को बदलने के लिए इसे मध्यम (एमआईटीएम) हमला करना चाहिए। यह अभी भी एक खतरा है, लेकिन उन्हें पूरा करने के लिए काफी अधिक कठिन है।
स्व-हस्ताक्षरित एसएसएल का उपयोग करने के साथ दूसरी समस्या यह है कि कई ब्राउज़र स्व-हस्ताक्षरित प्रमाणपत्रों को एक बड़े सुरक्षा खतरे के रूप में मानते हैं और एक विशाल लाल पृष्ठ के साथ प्रवेश करने से पहले आपको चेतावनी देते हैं (जैसे, क्रोम)। http://www.sslshopper.com/article-ssl-certports-in-google-chrome.html यह एक बड़ी असुविधा हो सकती है।
इसलिए नीचे की रेखा यह है: यदि आप कुछ ऐसा चलाते हैं जो विशेष रूप से सुरक्षित होने की आवश्यकता नहीं है (जैसे, कोई क्रेडिट कार्ड डेटा, कोई सामाजिक सुरक्षा नहीं #) और एक उचित प्रमाण पत्र नहीं दे सकता है, तो एक स्व-हस्ताक्षरित प्रमाण पत्र कुछ समझ सकता है (कहने के लिए अन्य नेटवर्क उपयोगकर्ताओं को आसानी से उनकी लॉगिन जानकारी को सूँघने से रोकें)।
यह निर्भर करता है कि आप "सुरक्षा" से क्या मतलब है, और यह किस हद तक है।
उदाहरण के लिए, आपका ब्राउज़र डिफ़ॉल्ट रूप से स्वीकार किए गए CA के एक सेट के साथ आता है। इसका अर्थ है, इस CA द्वारा जारी किया गया कोई भी प्रमाणपत्र आपके ब्राउज़र द्वारा स्वीकार किया जाता है (जब तक कि यह dns नाम से मेल नहीं खाता)। अब, कल्पना कीजिए कि कुछ दुष्ट सरकार सीए का मालिक है, या आप जिस साइट पर जा रहे हैं, उसके लिए एक प्रमाण पत्र जारी करने के लिए सीए को बाध्य कर सकते हैं। फिर, एक MITM करना बहुत आसान है: वे आपके कनेक्शन को प्रॉक्सी कर सकते हैं, आपके ब्राउज़र को उनके पास प्रमाण पत्र भेज सकते हैं, और आपका ब्राउज़र इसे स्वीकार करेगा, क्योंकि यह "विश्वसनीय" सीए से आता है। जब तक वे DNS-पारदर्शी (जो MITM का आधार है) तब तक यह ठीक है।
तो, "स्वीकृत सीए की सूची" मूल रूप से एक बड़ा सुरक्षा छेद है, जब तक कि इस सीए में से कोई भी कुछ बुरी सरकार के साथ सहयोग नहीं करता है। अपने खुद के सीए होने से बेहतर है।
बेशक, आप इसे अपनी कंपनी में या अपने होम सर्वर में कर सकते हैं, क्योंकि आप क्लाइंट में अपना स्वयं का सीए प्रमाणपत्र स्थापित कर सकते हैं, जिसे आप नियंत्रित भी करते हैं। एक सार्वजनिक सर्वर में, आप किसी भी उपयोगकर्ता के साथ सौदा नहीं कर सकते, उसे एक अपवाद जोड़ने के लिए, या अपने प्रमाण पत्र को जोड़ने के लिए कह सकते हैं।
तो, यह निर्भर करता है कि "सुरक्षा", और गुंजाइश के लिए आपका क्या मतलब है। यदि आप क्लाइंट के मालिक हैं, तो SURE के लिए, स्वयं हस्ताक्षरित सुरक्षित है, जब तक आप क्लाइंट पर खुद के CA का प्रमाण पत्र स्थापित नहीं करते।
बेशक, आप इसे किसी सार्वजनिक वेबसाइट पर नहीं कर सकते क्योंकि आपके पास सभी ग्राहक नहीं हैं। तो आपको अलग-अलग व्यवहारों का खतरा होगा, जो सुरक्षित नहीं है।