2010-04-23 14 views
5

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

क्या एस सी को प्रमाण पत्र भेज सकता है कि सी के पास अपने ट्रस्टस्टोर पर प्रमाणपत्र हैं या नहीं ?? मेरा मानना ​​है कि अगर मेरे पास ट्रस्टस्टोर सी ट्रस्ट एस और सी प्रमाणपत्र हैं तो मैं फिर से कनेक्ट होने पर प्रमाण पत्र नहीं मांगूंगा ?? क्या मेरा धारणा सही है ??

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

अग्रिम धन्यवाद।

+1

मैंने जावा में एक https सिम्युलेटर लिखा था। मैं स्व-हस्ताक्षरित प्रमाणपत्रों का उपयोग करके 15 सेकंड में 12000 - 15000 अनुरोधों का अनुकरण करने में सक्षम था। लेकिन सीए प्रमाणपत्रों का उपयोग करके 3 मिनट लगते हैं? मैं वास्तव में समझ में नहीं आता क्यों ऐसा होता है। क्या स्वयं हस्ताक्षरित बनाम सीए प्रमाणपत्रों के संचालन में कोई सूक्ष्म अंतर है? – JKV

उत्तर

6

यह एसएसएल की मेरी समझ है, मैं इस विषय में एक विशेषज्ञ नहीं हूं, लेकिन अन्य उत्तरों की अनुपस्थिति में उम्मीद है कि मैं आपको कम से कम कुछ चीजों को सोचने के लिए दे सकता हूं।

जब आप सर्वर आप ग्राहक किसी भी तरह, यह जैसे ही ग्राहक को जोड़ता स्थापित नहीं प्राप्त करता है करने के लिए इस जोड़ने की जरूरत के लिए एक स्वयं हस्ताक्षरित प्रमाणपत्र बनाने के लिए, अन्यथा किसी भी सर्वर सिर्फ एक आत्म हस्ताक्षरित प्रमाणपत्र भेजकर भरोसा हो सकता है जो कुछ भी उससे जुड़ने की कोशिश करता है। मेरे आवेदन में सर्वर प्रमाणपत्र को क्लाइंट के ट्रस्टस्टोर में लोड किया जाता है जब इसे javax.net.ssl.truststore ("पथ/से/सर्वर/प्रमाण") निर्दिष्ट करके शुरू किया जाता है;

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

सत्र व्यवहार का कुछ रूप है जो ऐसा होता है जो संचार को हर बार प्रमाणपत्रों का आदान-प्रदान किए बिना आगे बढ़ने की अनुमति देता है। लेकिन मेरा मानना ​​है कि यह एकल कनेक्शन तक ही सीमित है, इसलिए जैसे ही आप कनेक्शन बंद करते हैं और एक नया बनाते हैं, प्रक्रिया को दोहराया जाना चाहिए, यानी सर्वर को फिर से प्रमाणीकरण के लिए अपना प्रमाण पत्र भेजना होगा।

तो संक्षेप में: स्वयं हस्ताक्षरित सर्वर प्रमाणपत्र को क्लाइंट पर एसएसएल संचार के साथ स्थापित करना होगा (जैसे किसी उत्पाद में रूट सीए प्रमाणपत्र कैसे स्थापित किए जाते हैं)। क्लाइंट और सर्वर के बीच किए गए प्रत्येक SSL कनेक्शन के लिए सर्वर को क्लाइंट को अपना प्रमाणपत्र भेजने की आवश्यकता होगी ताकि वह इसे अपने ट्रस्टस्टोर के विरुद्ध देख सके।

यह संभव है कि सर्वर सत्रों को फिर से शुरू करने की अनुमति देगा, इस स्थिति में प्रमाणपत्र नाराज नहीं होगा (लेकिन मुझे यकीन नहीं है कि सत्र में कौन सी स्थितियों को फिर से शुरू किया जा सकता है, शायद यह अलग-अलग सर्वरों पर कॉन्फ़िगर करने योग्य है) ।

आशा है कि कम से कम आपको कुछ सोचने के लिए कुछ देता है।

+0

यह बहुत अच्छा है।बहाली क्षमता कनेक्शन से बंधी नहीं है; यह आमतौर पर केवल एक निश्चित जीवनकाल वाले सत्र का मामला है, आमतौर पर पांच मिनट, जिसके दौरान एक ही एसएसएल सहकर्मी के बीच नए एसएसएल कनेक्शन शुरुआत में उत्पन्न मास्टर गुप्त का पुन: उपयोग कर सकते हैं। –

+0

मैंने जावा में एक https सिम्युलेटर लिखा था। मैं स्व-हस्ताक्षरित प्रमाणपत्रों का उपयोग करके 15 सेकंड में 12000 - 15000 अनुरोधों का अनुकरण करने में सक्षम था। लेकिन सीए प्रमाणपत्रों का उपयोग करके 3 मिनट लगते हैं? मैं वास्तव में समझ में नहीं आता क्यों ऐसा होता है। क्या स्वयं हस्ताक्षरित बनाम सीए प्रमाणपत्रों के संचालन में कोई सूक्ष्म अंतर है? – JKV

+1

मुझे नहीं लगता कि उनके द्वारा प्रबंधित किए जाने में कोई अंतर है, लेकिन प्रमाण पत्र में अंतर हो सकता है। शायद स्वयं हस्ताक्षरित प्रमाण पत्र में उपयोग किया जाने वाला मुख्य आकार सीए प्रमाण पत्र से छोटा है? सीए प्रमाणपत्रों में प्रमाणपत्रों की एक लंबी श्रृंखला हो सकती है, इसलिए क्लाइंट प्रमाण पत्र को सत्यापित करने के लिए इसे विश्वसनीय प्रमाणपत्रों की एक लंबी सूची देखना होगा। मुझे लगता है कि openssl का उपयोग करके इन चीजों को देखने के तरीके हैं। – DaveJohnston

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