2012-07-27 17 views
5

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

तो, मैंने ज्यादातर सर्टिफिकेट अवधारणाओं के लिए बहुत अधिक देखा, लेकिन मेरी अवधारणाओं को मेरी संतुष्टि के लिए बेहतर नहीं कर सका। असल में यह और भ्रम जोड़ा। :)

यहां कुछ चीजें हैं जिन्हें मैं लगभग बिल्कुल नहीं समझता: 1. बेस 64 प्रारूप क्या है? क्या यह डीईआर के समान है? 2. पीईएम फ़ाइल में हमेशा बेस 64 सामग्री होती है? 3. विंडोज सर्टिफिकेट स्टोर द्वारा उपयोग किया जाने वाला प्रारूप क्या है? क्या यह बाइनरी है?

क्या कोई मेरी मदद कर सकता है। यदि इन चीजों को मेरे लिए साफ़ किया जाता है तो बहुत बहुत आभारी होंगे।

उत्तर

9

एक्स.50 9 प्रमाणपत्र की संरचना ASN.1 का उपयोग करके परिभाषित की गई है।

Certificate ::= SEQUENCE { 
    tbsCertificate  TBSCertificate, 
    signatureAlgorithm AlgorithmIdentifier, 
    signatureValue  BIT STRING } 

TBSCertificate ::= SEQUENCE { 
    version   [0] EXPLICIT Version DEFAULT v1, 
    serialNumber   CertificateSerialNumber, 
    signature   AlgorithmIdentifier, 
    issuer    Name, 
    validity    Validity, 
    subject    Name, 
    subjectPublicKeyInfo SubjectPublicKeyInfo, 
    issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL, 
         -- If present, version MUST be v2 or v3 
    subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL, 
         -- If present, version MUST be v2 or v3 
    extensions  [3] EXPLICIT Extensions OPTIONAL 
         -- If present, version MUST be v3 
    } 

एक Certificate मूल्य (साथ निहित मूल्यों में भरा) DER प्रारूप है, जो एक द्विपदीय प्रारूप है का उपयोग कर इनकोडिंग: यहाँ an X.509 certificate की समग्र संरचना परिभाषा का एक अंश है।

Base64 पठनीय ASCII वर्णों के लिए उपयोग किए गए बाइट्स के सेट को कम करके, पाठ में बाइनरी अनुक्रमों को एन्कोड करने का एक सामान्य तरीका है (इसलिए यह प्रतिनिधित्व लंबा है)।

-----BEGIN CERTIFICATE----- 
MIIB2zCCAUSgAwIBAwIBADANBgkqhkiG9w0BAQQFADAYMRYwFAYDVQQDEw1OZXRn 
... 
-----END CERTIFICATE----- 

आप:

PEM प्रारूप में एक प्रमाण पत्र प्रमाण पत्र की DER- द्वारा एन्कोडिंग का Base64 एन्कोडिंग, प्रत्येक 64-चरित्र हिस्सा के अंत में एक लाइन-वापसी के साथ, सीमांकक के बीच रखा गया है पीईएम प्रारूप में निजी कुंजी भी हो सकती है, इस मामले में डिलीमीटर -----BEGIN RSA PRIVATE KEY----- (और END से मेल खाते हैं), उदाहरण के लिए।

तार पर, एक टीएलएस कनेक्शन के दौरान, डीईआर का उपयोग किया जाता है।

यह वास्तव में कोई फर्क नहीं पड़ता कि विंडोज सर्टिफिकेट स्टोर आंतरिक रूप से क्या उपयोग करता है, यह डीईआर या पीईएम/बेस 64 प्रमाणपत्र आयात/निर्यात करने में सक्षम होना चाहिए।


प्रमाणपत्र "प्रकार" डीईआर/बेस 64 प्रारूप से व्यापक विषय है। एसएसएल/टीएलएस के लिए उपयोग किए जाने वाले अधिकांश प्रमाणपत्र X.50 9 प्रमाण पत्र हैं। फिर आप उपयोग प्रोफाइल प्राप्त करते हैं। सबसे आम एक Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile है, जो अनिवार्य रूप से परिभाषित करता है कि प्रमाणन प्राधिकरणों को प्रमाण पत्र जारी करना चाहिए और संस्थाओं को दूरस्थ प्रमाणपत्रों को कैसे सत्यापित करना चाहिए।

तुम भी इन सवालों में रुचि हो सकती:

आम तौर पर, PKI पर एक किताब हो रही मदद करनी चाहिए।

+0

धन्यवाद ब्रूनो, इससे बहुत मदद मिली!मुझे अब बहुत स्पष्ट दृश्य है। विंडोज स्टोर प्रारूप के बारे में, मैं प्रमाण पत्र पुनर्प्राप्त करने के लिए क्रिप्टो एपीआई का उपयोग कर रहा हूं और ऐसा लगता है कि यह केवल बाइनरी प्रारूपों का समर्थन करता है। मुझे उन कर्टों को बदलने के लिए अपना खुद का बेस 64 एन्कोडर लिखना होगा। –

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