क्या एक स्व-हस्ताक्षरित एसएसएल प्रमाणपत्र सुरक्षा की गलत भावना है?


30

क्या स्व हस्ताक्षरित एसएसएल प्रमाणपत्र सुरक्षा की झूठी भावना है?

अगर आप पर नकेल कसी जा रही है, तो उपयोगकर्ता हमेशा की तरह प्रमाण पत्र स्वीकार करेगा।

जवाबों:


25

दिलचस्प सवाल है, यह मेरी राय में उपयोग पर निर्भर करता है। सत्र के संदर्भ में आप अभी भी सुरक्षित हैं, लेकिन यह बताने का कोई तरीका नहीं है कि क्या यह सही एसएसएल प्रमाणपत्र आपके लिए प्रस्तुत किया गया है जब तक कि आप अपने सीए रूट प्रमाणपत्र को उपयोगकर्ताओं / ग्राहकों को वितरित नहीं करते हैं। आंतरिक परीक्षण / dev projets के लिए यह बहुत अच्छा काम करेगा, आप अपने उपयोगकर्ताओं को वितरित करने के लिए एक रूट CA प्रमाणपत्र का उपयोग करते हैं (जो कि Windows में समूह नीति के माध्यम से और Linux / BSD में ओपनसीएल कमांड लाइन के माध्यम से किया जा सकता है) और फिर उस रूट प्रमाणपत्र का उपयोग करें अपने CSR पर हस्ताक्षर करना। उपयोगकर्ताओं को एक चेतावनी या कुछ भी दिखाई नहीं देगा और आपको पता होगा कि प्रमाणपत्र आपके आंतरिक सीए द्वारा हस्ताक्षरित है।

बाहरी साइटों के लिए जहां आप इस बात का आश्वासन नहीं दे सकते, मैं फिर भी कहूंगा कि एक स्व-हस्ताक्षरित प्रमाणपत्र किसी एसएसएल से बेहतर है यदि आप कनेक्शन पर पासवर्ड या अन्य संवेदनशील जानकारी भेज रहे हैं।

हालाँकि, प्लस साइड में बहुत सस्ते "कमर्शियल" सर्टिफिकेट जारीकर्ता हैं, जिनमें से GoDaddy उनमें से एक है। आप प्रति वर्ष लगभग 40 यूरो के लिए एक प्रमाण पत्र प्राप्त कर सकते हैं। GoDaddy भी OpenSource प्रोजेक्ट वेब-साइट्स के लिए मुफ्त सेर्ट्स प्रदान करता है।


ठीक यही हम करते हैं। सस्ते सर्टिफिकेट के साथ सावधान रहें। इनमें से कुछ के बजाय विषम रूट CA के हैं और ये सभी रूट CA प्रमाणपत्रों के संग्रह में नहीं हैं जो सभी ब्राउज़रों के साथ शिप किए गए हैं।
वुल्फगैंग्ज़

4
+1 को छोड़कर "स्व हस्ताक्षरित प्रमाणपत्र किसी भी एसएसएल से बेहतर नहीं है" - यदि आप सत्यापित करते हैं कि यह आपका प्रमाण पत्र है, और एमआईटीएम द्वारा आपूर्ति नहीं की गई है। ईमानदारी से, जब आखिरी बार एक सामान्य उपयोगकर्ता ने ऐसा किया था? (मुझे लगता है कि उत्तर में ब्लू मून और फ्लाइंग पिग्स शामिल होंगे) दूसरे शब्दों में, उपयोगकर्ताओं को अपने सीए सेर्ट्स वितरित किए बिना एक स्व-हस्ताक्षरित एसएसएल प्रमाण पत्र का उपयोग करते हुए, आप उपयोगकर्ताओं को डरावने चेतावनी के लिए निराश कर रहे हैं जो उन्हें मिलता है - वे सीखेंगे इसके माध्यम से क्लिक करने के लिए, "ठीक है, उन्होंने मुझे mysite.example.com पर चेतावनी को अनदेखा करने के लिए कहा था, इसलिए मैं इसे हर जगह अनदेखा कर सकता हूं; देखो, एक लॉक आइकन!" वोइला, सुरक्षा का झूठा भाव!
पिस्कवर

7
@Piskvor, वास्तव में यह ब्राउज़र की गलती है। सबसे पहले, ब्राउज़र आम तौर पर पहले से स्वीकार किए गए स्व-हस्ताक्षरित प्रमाणपत्रों को "स्थायी रूप से स्वीकार करने" का एक तरीका प्रदान नहीं करते हैं ताकि उपयोगकर्ता हर लॉग-इन पर खुद को खतरे में न डाले। दूसरा, ब्राउज़र पुराने सादे HTTP के उपयोग को हतोत्साहित नहीं करते हैं, सुरक्षा की झूठी भावना भी पैदा करते हैं। तो, HTTP हमेशा HTTPS से भी बदतर है, सुरक्षा और उपयोगकर्ता जागरूकता दोनों में (कम से कम उन्हें चेतावनी मिलती है!)।
रॉटस्टर

1
@ रॉटर्स: सबसे पहले, ओपेरा में यह सुविधा है कि आप बिल्ट-इन का वर्णन करते हैं, एफएफ में सर्टिफिकेट पैट्रोल है (जो कम से कम सर्टिफिकेट की चेतावनी देता है)। यह भी ध्यान दें कि SSL पर सब कुछ एक ब्राउज़र (IMAPS आदि) नहीं है। दूसरा, HTTP का मौजूदा ढेर केवल ब्राउज़रों की गलती कैसे है? (और नहीं, HTTPS- केवल ब्राउज़र कभी नहीं पकड़े गए, ठीक है क्योंकि उनके साथ ब्राउज़ करने के लिए बहुत छोटा नेट था)। तीसरा, "उन्हें चेतावनी मिलती है" उपयोगी होगी, अगर केवल उपयोगकर्ता इसे पढ़ेंगे - और इसे दूर करने के लिए नेत्रहीन "स्वीकार" पर क्लिक न करें। "क्लिकिंग एक्सेप्ट का मतलब समझ है" डेवलपर्स का साझा भ्रम है।
१२:०५ पर पिस्कवर

1
@Piskvor, कुछ ब्राउज़रों को जानने के लिए अच्छा है जो उस सुविधा को प्रदान करते हैं। HTTP के लिए, मैं नहीं बता सकता कि क्या किया जाना है (HTTP को स्पष्ट रूप से अस्वीकार करना एक विकल्प नहीं है), लेकिन बिना SSL के स्व-हस्ताक्षरित SSL के साथ अधिक सुरक्षा-संबंधी चेतावनियाँ देना निश्चित रूप से गलत है और ब्राउज़र है ' गलती!
रतसर

12

मैं एक बार संकीर्ण तकनीकी आधार पर और एक बार सामान्य आधार पर असहमत होने जा रहा हूं।

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

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

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

स्व-हस्ताक्षरित प्रमाण पत्र (और, उस मामले के लिए, आम तौर पर मान्य सीए द्वारा हस्ताक्षरित प्रमाण पत्र) एसएसबी से बिल्कुल भी बेहतर नहीं हैं, जब तक कि लोगों को एहसास होता है कि जब तक वे उन्हें सत्यापित नहीं करते हैं, तब तक वे स्वयं को संचार सुरक्षित करते हैं, सर्वर DNS रिकॉर्ड के दूसरे छोर पर और वर्तमान में कोई भी पुरुष लाइन पर मध्य में है। यदि वे स्वतंत्र रूप से प्रमाण पत्र का सत्यापन करते हैं, तो प्रमाणीकरण और एन्क्रिप्शन कम से कम उतना ही मजबूत है जितना कि किसी मान्यता प्राप्त सीए द्वारा हस्ताक्षरित प्रमाण पत्र द्वारा प्रदान किया गया है।

इसके अलावा, एक मान्यताप्राप्त सीए द्वारा हस्ताक्षरित प्रमाणपत्रों के उपयोग को एक और केवल एक इंटरनेट सुरक्षा रामबाण के रूप में प्रस्तुत करने की इच्छा रखने वालों को मानक मोज़िला बंडल में चीनी सरकार के हस्ताक्षरित सीए को शामिल करने , और इच्छा जैसे मुद्दों के बारे में कठिन सोचने की आवश्यकता हो सकती है । धोखाधड़ी SSL प्रमाणपत्र Comodo द्वारा हस्ताक्षर किए गए


काश, "विश्वसनीय CA" मॉडल वास्तव में टूट गया है (और वर्षों से है); दुर्भाग्य से, यह दूर नहीं जा रहा है (और वास्तव में इसे बदलने के लिए कुछ भी बेहतर नहीं है)। हमेशा की तरह, एसएसएल और विश्वसनीय सीएएस जादुई सुरक्षा पिक्सी धूल नहीं हैं; उपयोगकर्ता को सक्रिय रूप से सुरक्षा बनाए रखने की आवश्यकता है - जो कि अधिकांश भाग पर, बल्कि एक पागल धारणा है।
पिस्कवॉर

2
क्या आपके उपयोगकर्ता वर्तमान DNS सर्वर के लिए अपने पथ की अखंडता में अपने विश्वास स्तर का एक शिक्षित मूल्यांकन करने में सक्षम हैं (कैश पॉइज़निंग की संभावना) और जिस डिवाइस को वे मार रहे हैं? मेरा पता नहीं है कि DNS क्या है, एमपीएसएल के माध्यम से किसी अन्य साइट से जुड़े किसी अन्य राज्य में एक सर्वर से उनके कनेक्शन के बारे में शिक्षित सुरक्षा निर्णय लेने में सक्षम होने से बहुत कम है, जो ग्राहक वीपीएन के माध्यम से उपयोगकर्ता से जुड़ा है, जो वे हैं बिना लाइसेंस वाली कॉफी शॉप वाईफाई के जरिए। उन्हें वह जिम्मेदारी देने से बचें।
शेन मैडेन

2
@ शेन मद्देन: एक ऐसा क्षेत्र जहां यह संभव है, प्रशासन का वेब फ्रंट है - जैसे phpMyAdmin (या, कुछ हद तक, HTTPS पर SVN)। आमतौर पर उपयोगकर्ताओं की एक सीमित संख्या होती है, और उनमें कुछ महत्वपूर्ण अंश होते हैं । मैं अपने परदादा से एक एसएसएल प्रमाणपत्र चेतावनी के प्रमुख या पूंछ बनाने की उम्मीद नहीं करूंगा, लेकिन मैं निश्चित रूप से एक साथी sysadmin से यह उम्मीद करता हूं, खासकर अगर यह hir नियंत्रण के तहत एक सर्वर है। एक उद्यान किस्म उपयोगकर्ता के पास known_hosts@MadHatter के बारे में कोई संकेत नहीं है , या तो संदर्भित है।
पिस्कवर

8

बाहरी साइटों के लिए, जहाँ उपयोगकर्ताओं के पास आपका CA प्रमाणपत्र स्थापित नहीं है (जो कि सबसे सामान्य मामला है), हाँ, एक स्व-हस्ताक्षरित प्रमाणपत्र सुरक्षा का झूठा एहसास देता है , और इस तरह यह बेकार से भी बदतर है:

  • सबसे पहले, पूर्व-स्थापित सीए प्रमाण पत्र के बिना, उपयोगकर्ता कैसे सत्यापित करता है कि प्रमाणपत्र वास्तव में आप से आता है, और हमलावर से नहीं? प्रमाणपत्र फ़ील्ड (CN, फ़िंगरप्रिंट, आदि) का मिलान करके, निश्चित रूप से - लेकिन किसके खिलाफ? तो अब आपको प्रमाण पत्र को सत्यापित करने के लिए एक साइड चैनल की आवश्यकता है - और कुछ उदाहरणों में मैंने देखा है कि, समर्थन लाइन ऑपरेटरों (जिन्हें सत्यापन के लिए साइड चैनल के रूप में सेवा की जानी चाहिए) के पास कोई सुराग नहीं है कि इसका क्या मतलब है; इसके अलावा, इस तरह के साइड चैनल का संचालन एक विश्वसनीय-सीए-हस्ताक्षरित प्रमाण पत्र प्राप्त करने की तुलना में अधिक महंगा होने का आदेश है, इसलिए उपयोगकर्ता को आँख बंद करके आप पर भरोसा करना चाहिए।

  • दूसरा, उपयोगकर्ता को मिलने वाला डरावना अलर्ट एक अच्छे कारण के लिए डरावना है: चूंकि उपयोगकर्ता प्रस्तुत प्रमाण पत्र को सत्यापित नहीं कर सकता / सकती है, वे सुरक्षित रूप से Elbonian Haxx0r D00dz पर डेटा संचारित कर सकते हैं ।

  • तीसरा, और सबसे बुरा, आप उपयोगकर्ताओं को निराश कर रहे हैं : "ठीक है, उन्होंने मुझे बताया कि मुझे https://mysite.example.com/ पर उस चेतावनी को अनदेखा करना चाहिए , और मेरे सिर पर आँवला नहीं गिरा, और मेरा सुनहरी मछली या तो नहीं मरती थी; सोओ, इसका मतलब है कि यह बिना किसी वास्तविक अर्थ के सिर्फ एक और अलर्ट बॉक्स है, इसलिए जब भी मैं इसका सामना करता हूं, मैं इस बॉक्स को अनदेखा कर सकता हूं - मुझे वैसे भी अच्छा लॉक आइकन मिलता है, और यह महत्वपूर्ण है। "

दूसरे शब्दों में, सुरक्षा का स्तर सादे HTTP के अलावा (ऑन-द-वायर सूँघने के अलावा) है: हालाँकि डेटा को ट्रांज़िट में एन्क्रिप्ट किया जाता है, जो एंडपॉइंट सत्यापन के बिना एक एनीमिक विशेषता है), लेकिन सुरक्षा की भावना अनुचित रूप से उच्च है । खराब कार सादृश्य: "मेरे पास एबीएस है, इसलिए मैं अब खराब परिस्थितियों में सुरक्षित चला सकता हूं" - एबीएस को छोड़कर केवल कार की बिक्री विवरणिका में मौजूद है, वास्तव में कार में मौजूद नहीं होने के बिना।

सुझाया गया रीडिंग: OWASP SSL बेस्ट प्रैक्टिस

टीएल; डीआर: सार्वजनिक-सामना करने वाली साइटों पर स्व-हस्ताक्षरित प्रमाण पत्र का उपयोग करके, आप नेट को एक बदतर जगह, एक बार में एक क्लूलेस उपयोगकर्ता बना रहे हैं।


2
@downvoter: अगर आप ने कहा मैं इसकी सराहना करेंगे जहां मेरा उत्तर तथ्यात्मक रूप से गलत है ( "गलत" के रूप में करने का विरोध किया "असहज, असुविधाजनक है, और एक को लागू करने के लिए परेशान")। सिक्योरिटी इज़ हार्ड, एंड गोइंग "ला ला ला मैं आपको सुन नहीं सकता" इसे ठीक करने के लिए कुछ भी नहीं करता है।
पिस्कवर

2
हालाँकि मैंने आपके उत्तर को अस्वीकार नहीं किया, लेकिन नीचे तीर पर टूलटिप पाठ बिना किसी कारण के उपयोगी होने के अलावा किसी और कारण से इंगित करता है। मुझे लगता है कि सुरक्षा पेंडुलम की झूठी भावना दूसरी दिशा में भी स्विंग कर सकती है। हालिया कोमोडो आरए ब्रीच साबित करते हैं कि "खलनायक" के लिए यह बिलकुल भी मुश्किल नहीं है कि वह पूरी तरह से वैध प्रमाण पत्र खरीदे।
महासंघ

@mahnsc: अनुस्मारक के लिए धन्यवाद; मुझे पता है कि :-) "क्या एक स्वनिर्धारित एसएसएल प्रमाणपत्र सुरक्षा की झूठी भावना है?" "हाँ, निम्नलिखित कारणों से ..." उपयोगी लगता है, नहीं? इसलिए, मैं उत्सुक था कि ऐसा क्यों नहीं होगा: मैं एक विरोधी दृष्टिकोण से कुछ सीख सकता था; एक पतन से, इतना नहीं।
पिस्कवर

1
@mahnsc: समझौतावादी CA के बारे में अच्छी बात। मैं यह नहीं कह रहा कि रूट CA सूची पत्थर और अचूक में सेट है - सही सुरक्षा मौजूद नहीं है; लेकिन यह तोड़ने के लिए काफी अधिक प्रयास लेता है कि एक नेटवर्क प्रवेश द्वार पर एक पर कब्जा करने एसएसएल प्रॉक्सी की स्थापना से।
पिस्कवर

1
@mahnsc: मेरा मतलब था कि SSL प्रॉक्सी सेट करना आसान है और आशा है कि उपयोगकर्ता चेतावनी के माध्यम से क्लिक करता है, SSL प्रॉक्सी सेट करने के बजाय और उम्मीद करता है कि एक फर्जी प्रमाणपत्र अनुरोध CA सत्यापन प्रक्रिया से फिसल जाता है। या तो संभव है, जैसा कि हमने देखा है, लेकिन पूर्व में करना बहुत आसान है (और बाद में पता लगाना कठिन है, क्योंकि ब्राउज़र उपयोगकर्ता आमतौर पर ऑडिट ट्रेल नहीं रखते हैं)।
पिस्कवर

8

निर्भर करता है। अगर आपको लगता है कि यह आपको अधिक सुरक्षित बनाता है तो यह आपके जोखिम को बढ़ाता है क्योंकि आप सुरक्षा की झूठी भावना के साथ जोखिम भरा काम करते हैं। यदि आप इसे कार्यात्मक रूप से HTTP के बराबर मानते हैं, तो मैं कहूंगा कि आप थोड़े अधिक सुरक्षित हैं।

एसएसएल / एचटीटीपीएस के बिना आपके नेटवर्क पर वायरशर्क (या लॉग इन करने वाले किसी का स्थानीय नेटवर्क) के साथ कोई भी सामान्य पाठ के रूप में भेजे गए उपयोगकर्ता नाम / पासवर्ड को तुच्छ रूप से सुन और पकड़ सकता है।

स्व-हस्ताक्षरित एसएसएल के साथ वे बस नहीं सुन सकते हैं, लेकिन अब आपकी साइट को नकली करना चाहिए, संभावित रूप से डीएनएस को एक आदमी को बदलने के लिए इसे मध्यम (एमआईटीएम) हमला करना चाहिए। यह अभी भी एक खतरा है, लेकिन उन्हें पूरा करने के लिए काफी अधिक कठिन है।

स्व-हस्ताक्षरित एसएसएल का उपयोग करने के साथ दूसरी समस्या यह है कि कई ब्राउज़र स्व-हस्ताक्षरित प्रमाणपत्रों को एक बड़े सुरक्षा खतरे के रूप में मानते हैं और एक विशाल लाल पृष्ठ के साथ प्रवेश करने से पहले आपको चेतावनी देते हैं (जैसे, क्रोम)। http://www.sslshopper.com/article-ssl-certports-in-google-chrome.html यह एक बड़ी असुविधा हो सकती है।

इसलिए नीचे की रेखा यह है: यदि आप कुछ ऐसा चलाते हैं जो विशेष रूप से सुरक्षित होने की आवश्यकता नहीं है (जैसे, कोई क्रेडिट कार्ड डेटा, कोई सामाजिक सुरक्षा नहीं #) और एक उचित प्रमाण पत्र नहीं दे सकता है, तो एक स्व-हस्ताक्षरित प्रमाण पत्र कुछ समझ सकता है (कहने के लिए अन्य नेटवर्क उपयोगकर्ताओं को आसानी से उनकी लॉगिन जानकारी को सूँघने से रोकें)।


0

यह निर्भर करता है कि आप "सुरक्षा" से क्या मतलब है, और यह किस हद तक है।

उदाहरण के लिए, आपका ब्राउज़र डिफ़ॉल्ट रूप से स्वीकार किए गए CA के एक सेट के साथ आता है। इसका अर्थ है, इस CA द्वारा जारी किया गया कोई भी प्रमाणपत्र आपके ब्राउज़र द्वारा स्वीकार किया जाता है (जब तक कि यह dns नाम से मेल नहीं खाता)। अब, कल्पना कीजिए कि कुछ दुष्ट सरकार सीए का मालिक है, या आप जिस साइट पर जा रहे हैं, उसके लिए एक प्रमाण पत्र जारी करने के लिए सीए को बाध्य कर सकते हैं। फिर, एक MITM करना बहुत आसान है: वे आपके कनेक्शन को प्रॉक्सी कर सकते हैं, आपके ब्राउज़र को उनके पास प्रमाण पत्र भेज सकते हैं, और आपका ब्राउज़र इसे स्वीकार करेगा, क्योंकि यह "विश्वसनीय" सीए से आता है। जब तक वे DNS-पारदर्शी (जो MITM का आधार है) तब तक यह ठीक है।

तो, "स्वीकृत सीए की सूची" मूल रूप से एक बड़ा सुरक्षा छेद है, जब तक कि इस सीए में से कोई भी कुछ बुरी सरकार के साथ सहयोग नहीं करता है। अपने खुद के सीए होने से बेहतर है।

बेशक, आप इसे अपनी कंपनी में या अपने होम सर्वर में कर सकते हैं, क्योंकि आप क्लाइंट में अपना स्वयं का सीए प्रमाणपत्र स्थापित कर सकते हैं, जिसे आप नियंत्रित भी करते हैं। एक सार्वजनिक सर्वर में, आप किसी भी उपयोगकर्ता के साथ सौदा नहीं कर सकते, उसे एक अपवाद जोड़ने के लिए, या अपने प्रमाण पत्र को जोड़ने के लिए कह सकते हैं।

तो, यह निर्भर करता है कि "सुरक्षा", और गुंजाइश के लिए आपका क्या मतलब है। यदि आप क्लाइंट के मालिक हैं, तो SURE के लिए, स्वयं हस्ताक्षरित सुरक्षित है, जब तक आप क्लाइंट पर खुद के CA का प्रमाण पत्र स्थापित नहीं करते।

बेशक, आप इसे किसी सार्वजनिक वेबसाइट पर नहीं कर सकते क्योंकि आपके पास सभी ग्राहक नहीं हैं। तो आपको अलग-अलग व्यवहारों का खतरा होगा, जो सुरक्षित नहीं है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.