2010-10-05 11 views
12

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

उत्तर

25

यदि आप जावा में काम कर रहे हैं तो जावा कुंजी स्टोर निजी कुंजी स्टोर करने के लिए एक काफी प्राकृतिक जगह है। जावा एप्लिकेशन आमतौर पर जेकेएस से आवश्यक चाबियाँ प्राप्त करने की अपेक्षा करते हैं, और अपने जावा ऐप्स से एक्सेस करना आसान है। जावा के बाहर से जेकेएस सुलभ नहीं है (कुछ हुप्स के माध्यम से कूदने के बिना)।

PKCS # 12 (उर्फ PFX) फ़ाइलें, दूसरे हाथ पर एन्क्रिप्टेड निजी कुंजी और प्रमाणपत्र स्टोर करने के लिए एक भाषा-तटस्थ तरीका है, और लंबे समय के आसपास पर्याप्त है कि यह सिर्फ के बारे में हर जगह समर्थित है किया गया है। नोट, हालांकि, फ़ाइल प्रारूप बेहद जटिल और अति-सामान्य है - समस्याओं के हल्के दिल के दृश्य के लिए पीटर गुटमैन के "पीएफएक्स - हाउ नॉट टू डिज़ाइन ए क्रिप्टो प्रोटोकॉल/स्टैंडर्ड" (http://www.cs.auckland.ac.nz/~pgut001/pubs/pfx.html) पर एक नज़र डालें ।

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

तकनीकी रूप से, न तो प्रारूप आदर्श है क्योंकि वे दोनों निजी कुंजी को पासवर्ड से प्राप्त कुंजी से एन्क्रिप्ट करके सुरक्षित करते हैं; यह किसी अन्य की तुलना में बेहतर नहीं है, हालांकि। यदि आप स्मार्टकार्ड या अन्य हार्डवेयर कुंजी स्टोरेज समाधान का उपयोग कर सकते हैं तो सुरक्षा (हालांकि सुविधा नहीं है) बेहतर है।

आपकी पसंद का निर्धारण करने वाला मुख्य कारक यह होना चाहिए कि आप निजी कुंजी का उपयोग करने की योजना कैसे बनाते हैं - यानी: निजी कुंजी का उपयोग करने के लिए कौन से अनुप्रयोगों की आवश्यकता होगी और मुख्य स्टोर का कौन सा प्रारूप (वे) पहले से ही संभालता है। PKCS # 12 अधिक लचीला विकल्प है ... लेकिन आप केवल कोड है कि आप अपने बारे में (अंतर की आवश्यकता नहीं) तो आप भी PKCS # 8 या PKCS # 15 कंटेनरों में विचार कर सकते के साथ कुंजी का उपयोग करना चाहते हैं।

मैं PKCS # 12 को संभालने के लिए अपने स्वयं के कोड लिखने की सिफारिश नहीं कर सकते हैं (मैं इसे किया है, नहीं मज़ा) - एक सिद्ध तृतीय-पक्ष लाइब्रेरी (OpenSSL की तरह) का उपयोग करें।

+0

ठीक है का उपयोग कर परिवर्तित कर सकते हैं, इसलिए महत्वपूर्ण तत्व है कि आप का कहना है कि PKCS # 12 की कोशिश की और सही किया जाता है। वह काम करता है, धन्यवाद। –

2

मामले में आप JKS कुंजी संग्रह है आप का उपयोग कर नीचे आदेशों

 
keytool -importkeystore -srckeypass secret -destkeypass meow123 -srcstorepass secretstore -deststorepass secretstore -srcalias certforsigning -destalias certforsigning -srcalias certforencryption -destalias certforencryption -srckeystore my_java_keystore.jks -destkeystore PFX_keystore.pfx -deststoretype PKCS12 

जहां my_java_keystore.jks जावा कुंजी संग्रह उर्फ ​​ certforsigning के साथ दो कुंजी और certforencryption

है कि PKCS12 में बदल सकते हैं

और आप भी कुंजी PKCS12 से JKS को Keytool

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