2012-03-09 13 views
5

PKCS#12 अपने संबंधित X.50 9 प्रमाण पत्र के साथ एक मानक कुंजी फ़ाइल प्रारूप में एक निजी कुंजी को एक साथ जोड़ने का एक सुविधाजनक तरीका है। हालांकि, विनिर्देशन 1 999 में आरएसएएलएब्स द्वारा प्रकाशित किया गया था और सममित एन्क्रिप्शन के लिए केवल आरसी 4, आरसी 2 और ट्रिपल डीईएस का उपयोग करता है। क्या इस योजना के लिए कोई आम अर्ध-मानक एक्सटेंशन है जो अधिक एन्क्रिप्शन एल्गोरिदम या अन्य कुंजी व्युत्पन्न कार्यों को जोड़ता है? OpenSSL को एईएस और कैमेलिया के लिए समर्थन लागू करने के लिए दस्तावेज किया गया है, लेकिन इसी मानक के लिए एक खोज खाली हो जाती है, इसलिए यह ओपनएसएसएल के लिए कुछ कार्यान्वयन विशिष्ट प्रतीत होता है। क्या किसी ने इन एक्सटेंशन के लिए ASN.1 मॉड्यूल और छद्म कोड को दस्तावेज किया है?क्या पीकेसीएस # 12 में कोई प्रकाशित एक्सटेंशन हैं?

उत्तर

3

पीकेसीएस # 12 अन्य मानकों से बिल्डिंग-ब्लॉक का उपयोग करता है।

अनुशंसित एन्क्रिप्शन-मोड पीकेसीएस # 5 (पीबीईएस 2) से पासवर्ड आधारित एन्क्रिप्शन पर आधारित है। इसे PKCS#5 v.2.1 में एसएचए -2 और एईएस के समर्थन के साथ बढ़ा दिया गया है।

जब OpenSSL एईएस का उपयोग करता है तो वह ऐसा करता है:

684 30 806:      SEQUENCE { 
688 30 802:      SEQUENCE { 
692 06 11:       OBJECT IDENTIFIER 
      :       pkcs-12-pkcs-8ShroudedKeyBag (1 2 840 113549 1 12 10 1 2) 
705 A0 723:       [0] { 
709 30 719:       SEQUENCE { 
713 30 73:        SEQUENCE { 
715 06 9:        OBJECT IDENTIFIER 
      :         pkcs5PBES2 (1 2 840 113549 1 5 13) 
726 30 60:        SEQUENCE { 
728 30 27:         SEQUENCE { 
730 06 9:         OBJECT IDENTIFIER 
      :          pkcs5PBKDF2 (1 2 840 113549 1 
5 12) 
741 30 14:         SEQUENCE { 
743 04 8:          OCTET STRING 
      :     BA 6B 5B B3 47 27 C9 73 
753 02 2:          INTEGER 2048 
      :          } 
      :         } 
757 30 29:         SEQUENCE { 
759 06 9:         OBJECT IDENTIFIER 
      :          aes128-CBC (2 16 840 1 101 3 4 1 2) 
770 04 16:         OCTET STRING 
      :     0F 79 79 0A D3 EC C0 3E 20 B8 51 85 2F 2B 6C 29 
      :         } 
      :         } 
      :        } 

जहां तक ​​मेरा स्रोत पढ़ सकते हैं, OpenSSL बजाय ASCII के रूप में पासवर्ड encodes शून्य समाप्त UTF-16 जब PKCS का उपयोग कर # 5 PBES2 ।

+0

ठीक है, बिल्कुल नहीं। पीकेसीएस # 12 एक पीबीकेडीएफ का उपयोग करता है जो परिशिष्ट बी 2 में निर्दिष्ट है और कई मामलों में पीकेसीएस # 5 के पीबीकेडीएफ 2 के पीबीकेडीएफ 1 दोनों से अलग है। उदाहरण के लिए, पीकेसीएस # 5 पीबीकेडीएफ 1 के विपरीत इसमें पीकेसीएस # 5 पीबीकेडीएफ 2 के विपरीत कुंजी खींचने की सुविधा है, यह एचएमएसी आउटपुट के एक्सोर योग के बजाय एक पुनरावृत्त हैश का उपयोग करता है, और दोनों के विपरीत यह नमक और पासवर्ड को असामान्य तरीके से स्वरूपित करता है। –

+0

अधिक विशिष्ट होने के लिए: पीकेसीएस # 12 परिशिष्ट बी .1 निर्दिष्ट करता है कि पासवर्ड को साधारण ऑक्टेटस्ट्रिंग्स के बजाय बीएमपीएसट्रिंग के रूप में देखा जाना चाहिए। इसका अर्थ यह है कि यदि पीकेसीएस # 5 एल्गोरिदम पहचानकर्ता को पीकेसीएस # 12 फ़ाइल के एन्क्रिप्शन एल्गोरिदम पहचानकर्ता फ़ील्ड में सामना करना पड़ेगा, तो यह अनिश्चित होगा कि पासवर्ड को BMPString के रूप में माना जाना चाहिए या नहीं। इसलिए, प्रोसेसिंग नियमों को अभी भी स्पष्ट रूप से स्पष्ट नहीं किया जाना चाहिए। –

+1

@ हेनरिक Hellström: जहां तक ​​मुझे याद है, परिशिष्ट बी 2 में पीबीकेडीएफ केवल पुराने माइक्रोसॉफ्ट प्रारूप के साथ पिछड़ा संगतता के लिए है। यदि आप पृष्ठ 13 पर नोट पढ़ते हैं, तो आप देखेंगे कि पीकेसीएस # 5 तंत्र का उपयोग करने की अनुशंसा की जाती है। –

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