2010-02-26 9 views
20

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

java -Djavax.net.ssl.trustStore=<PATHSTUFF>/client.keystore -classpath <STUFF> Client 

(नोट: वहाँ एक पासवर्ड निर्दिष्ट नहीं है)

ऊपर कॉल काम करता है।

java -classpath <STUFF> Client 

यह काम नहीं करता है:


लेकिन जब मैं यह कोशिश। (जाहिर है यह काम नहीं करता है इसे ट्रस्टस्टोर की आवश्यकता है)।


मैं इस विकल्प में उत्तीर्ण करने की आवश्यकता करने के लिए उम्मीद कर रहा था (लेकिन मैंने नहीं किया):

-Djavax.net.ssl.trustStorePassword=mypass 

प्रश्न: यदि आप नहीं एक truststore तक पहुँचने के लिए एक पासवर्ड की जरूरत है? क्या सिर्फ संशोधन के लिए पासवर्ड है? एक कीस्टोर के बारे में क्या?

+0

@ पास्कल, हाँ। जिस सर्वर का मैं उपयोग कर रहा हूं उसके पास सीए प्रमाणपत्र नहीं है, इसलिए इसे ट्रस्टस्टोर की आवश्यकता है ताकि वह सर्वर के लिए एसएसएल प्रमाणीकरण कर सके। – sixtyfootersdude

+2

मुझे यह भी समझ में नहीं आता कि ट्रस्टस्टोर के लिए पासवर्ड की आवश्यकता क्यों है, जो एसएसएल का क्लाइंट हिस्सा है। विशेष रूप से, जब एक सीए शामिल नहीं है। क्या आपने इसे हल करने में कामयाब रहे हैं? –

उत्तर

28

पासवर्ड का उपयोग किसी कीस्टोर की अखंडता की रक्षा के लिए किया जाता है। अगर आप कोई स्टोर पासवर्ड नहीं देते हैं, तो भी आप कीस्टोर की सामग्री पढ़ सकते हैं। आदेश keytool -list इस व्यवहार को दर्शाता है (इसे खाली पासवर्ड के साथ उपयोग करें)।

+1

@sixtyfootersdude हां, अखंडता की जांच नहीं की गई है, लेकिन फिर भी, आप कीस्टोर तक पहुंच सकते हैं। –

+3

यह उत्तर कुंजीस्टोर के बारे में है लेकिन मुख्य प्रश्न ट्रस्टस्टोर के बारे में है। मैं उलझन में हूं। –

-2

यदि आप ट्रस्टस्टोर निर्दिष्ट नहीं करते हैं, तो इसके बजाय डिफ़ॉल्ट का उपयोग किया जाता है। मुझे लगता है, आपको एक त्रुटि मिलती है, आपको अनुरोध करने वाले होस्ट पर विश्वास करने के लिए आपको एक ट्रस्टस्टोर निर्दिष्ट करने की आवश्यकता होगी? डिफ़ॉल्ट ट्रस्टस्टोर $ JAVA_HOME/lib/security/jssecacerts में रहता है।

+3

हाय बीएफयू, हाँ मुझे पता था कि यह कहां चूकता है हालांकि यह मेरे प्रश्न का उत्तर नहीं देता है। स्पष्ट रूप से डिफ़ॉल्ट काम नहीं कर रहा है और मैंने जो निर्दिष्ट किया है वह है। मेरा सवाल है: ट्रस्टस्टोर पढ़ने के लिए आपको पासवर्ड चाहिए? क्या कोई डिफ़ॉल्ट पासवर्ड है? – sixtyfootersdude

-1

डिफ़ॉल्ट रूप से, जेआरई ट्रस्ट स्टोर पासवर्ड "परिवर्तन" है। यदि आप जावा का उपयोग करके प्रोग्रामेटिक रूप से डिफ़ॉल्ट ट्रस्ट स्टोर (कैकर्ट) पासवर्ड बदलना चाहते हैं, तो कृपया this link पर जाएं।

9

@ पास्कल-thivent के उत्कृष्ट जवाब के अलावा:

कुंजीस्टोर पासवर्ड दो उद्देश्यों है - अगर इसकी आपूर्ति नहीं keytool आप जैसे नई सामग्री के साथ दुकान की सामग्री को बदलने मना कर दिया मौजूदा हटाने या नई प्रमाणपत्र प्रविष्टियों को जोड़कर।

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

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

यही कारण है कि जब आप कोई पासवर्ड नहीं देते हैं, तो keytool सिर्फ आपको चेतावनी देता है कि यह सत्यापित नहीं कर सकता कि स्टोर को छेड़छाड़ नहीं हुई है। वर्तमान के आधार पर पचाने

Enter keystore password: keytool error: java.io.IOException: Keystore was tampered with, or password was incorrect

keytool पुन: बना हैश मौजूदा करने में असमर्थ था: यदि आप एक अमान्य पासवर्ड, या दुकान साथ छेड़छाड़ की गई है प्रदान करते हैं, तो आप एक अलग संदेश प्राप्त होगा स्टोर सामग्री और आपके द्वारा प्रदान किया गया पासवर्ड, इसलिए या तो पासवर्ड गलत है, या कीस्टोर से समझौता किया गया है - keytool नहीं बता सकता है, लेकिन यह मानता है कि आप या स्टोर पढ़ने वाले सॉफ़्टवेयर को पता है।

ध्यान दें कि जबकि अवधि कुंजीस्टोर आम तौर पर प्रयोग किया जाता है, यह keystores और truststores को समान रूप से संदर्भित करता है। कम आम तौर पर, कीस्टोर अधिकतर पहचान स्टोर होता है और इसमें पहचान के रूप में पहचान और उनकी गुप्त, निजी कुंजी शामिल होती है। एक सर्वर द्वारा HTTPS चल रहा है। ट्रस्टस्टोर में अक्सर सार्वजनिक कुंजी और कोई निजी कुंजी नहीं होती है, इसलिए कोई रहस्य नहीं है, लेकिन यह निर्धारित करना महत्वपूर्ण है कि क्लाइंट ट्रस्ट की पहचान क्या है।

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