DER बाइनरी (.der)
ITU-T मानकडिस्टिंग्विश्ड एनकोडिंग रूल्स (DER) ASN.1 डेटा संरचनाओं के लिए सख्त, कैनोनिकल बाइनरी एनकोडिंग मानक है, जो सुरक्षा प्रमाणपत्रों और क्रिप्टोग्राफिक कुंजियों का अस्पष्टता-रहित, बिट-दर-बिट सटीक निरूपण प्रदान करता है।
DER को PEM में कन्वर्ट करें
मुफ्त इन-ब्राउज़र DER से PEM कन्वर्टर। अपने डिवाइस पर तुरंत फ़ाइलें कन्वर्ट करें।
निरीक्षण और मेटाडेटा
ऑपरेटिंग सिस्टम और फ़ाइल विश्लेषक शुरुआती बाइनरी बाइट अनुक्रम का निरीक्षण करके DER फ़ाइलों की पहचान करते हैं:
बाइट-स्तरीय हेडर हस्ताक्षर (मैजिक बाइट्स)
ऑपरेटिंग सिस्टम और फ़ाइल विश्लेषक शुरुआती बाइनरी बाइट अनुक्रम का निरीक्षण करके DER फ़ाइलों की पहचान करते हैं:
HEX हस्ताक्षर (ऑफ़सेट 0):
कोई निश्चित हस्ताक्षर नहींASCII निरूपण: कोई निश्चित ASCII सिग्नेचर नहीं
मानकीकरण: ITU-T Recommendation X.690
तकनीकी विनिर्देश
| कंटेनर आर्किटेक्चर | Tag-Length-Value (TLV) त्रिकों का उपयोग करके ASN.1 संरचनाओं की सख्त कैनोनिकल बाइनरी एन्कोडिंग |
| कंप्रेशन | असंपीड़ित बाइनरी डेटा |
| बाइट एंडियानेस | बिग-एंडियन ASN.1 एन्कोडिंग |
| कलर स्पेस | लागू नहीं (क्रिप्टोग्राफ़िक बाइनरी स्ट्रीम) |
| चैनल और संरचना | क्रिप्टोग्राफ़िक कुंजियाँ, X.509 प्रमाणपत्र, CRLs और PKCS संरचनाएँ |
| अधिकतम आयाम | असीमित ASN.1 लंबाई |
| पारदर्शिता | बाइनरी ASN.1 डेटा संरचना |
| स्ट्रीमिंग और प्रोग्रेसिव | नियतात्मक एकल-पास कैनोनिकल डिकोडिंग |
तकनीकी तुलना मैट्रिक्स: DER बनाम प्रतियोगी
| तकनीकी विशेषता | DER (वर्तमान) | PEM | CRT | P12 |
|---|---|---|---|---|
| डेटा प्रतिनिधित्व | सख्त बाइनरी ASN.1 एनकोडिंग | Base64 ASCII आर्मर्ड टेक्स्ट | Base64 PEM या बाइनरी DER | एन्क्रिप्टेड बाइनरी PKCS #12 संग्रह |
| नियतात्मक हैशिंग | 100% कैनोनिकल बिटस्ट्रीम | व्हाइटस्पेस/बैनर पर निर्भर करता है | फ़ॉर्मेटिंग पर निर्भर करता है | सॉल्ट/IV के साथ एन्क्रिप्टेड |
| फ़ाइल का आकार | सबसे छोटा (~PEM से 33% छोटा) | Base64 के कारण बड़ा (+33%) | Base64 के कारण बड़ा (+33%) | एन्क्रिप्शन रैपर के कारण बड़ा |
| Java और हार्डवेयर समर्थन | नेटिव मानक | जावा में रूपांतरण की आवश्यकता है | जावा में रूपांतरण की आवश्यकता है | कीस्टोर के रूप में समर्थित |
सामान्य करप्शन मोड और हेक्स रिकवरी गाइड
OpenSSL त्रुटि: 'asn1 encoding routines:ASN1_get_object:header too long'।
मूल कारण: ASN.1 अनुक्रम हेडर में दूषित टैग-लेंथ-वैल्यू (TLV) बाइट।
रिकवरी: वैध DER कैनोनिकल बाइट्स का पुनर्निर्माण करने के लिए File2File.app सर्टिफिकेट टूल का उपयोग करके ट्रांसकोड करें।
सुरक्षा विश्लेषण और पार्सर अटैक वेक्टर्स
DER डिकोडर लंबाई डिस्क्रिप्टर पार्स करते हैं। इनमें पूर्णांक अंडरफ़्लो/ओवरफ़्लो होने पर नेटिव क्रिप्टोग्राफ़ी लाइब्रेरी में बफ़र ओवरफ़्लो हो सकता है।
ज्ञात अटैक वेक्टर्स
- गहराई से नेस्टेड ASN.1 अनिश्चित लंबाई डिकोडिंग के दौरान पूर्णांक ओवरफ़्लो।
- खराब स्वरूपित बिट स्ट्रिंग को पार्स करते समय आउट-ऑफ-बाउंड्स पढ़ना।
- नेस्टेड ASN.1 रिकर्सन बम से सेवा बाधित करने का हमला (DoS)।
सुरक्षात्मक सर्वोत्तम प्रथाएँ: लागू की गई अधिकतम रिकर्शन गहराई सीमा के साथ मेमोरी-सुरक्षित ASN.1 पार्सर का उपयोग करें।
ऐतिहासिक मूल और मील के पत्थर
मुख्य लाभ और खूबियाँ
- कैनोनिकल और नियतात्मक (deterministic): गारंटी देता है कि समान डेटा हमेशा ठीक वही बाइनरी हैश उत्पन्न करता है, जो डिजिटल हस्ताक्षर के लिए आवश्यक है।
- PEM से अधिक संक्षिप्त: Base64 एनकोडिंग और ASCII बैनर को छोड़कर ~33% ओवरहेड बचाता है।
- हार्डवेयर सिक्योरिटी मॉड्यूल (HSMs), स्मार्ट कार्ड और जावा कीस्टोर के लिए मूल प्रारूप।
तकनीकी सीमाएँ और कमियाँ
- बाइनरी प्रारूप को टेक्स्ट संपादकों में देखा, संपादित या कॉपी-पेस्ट नहीं किया जा सकता है।
- वेब होस्टिंग परिवेशों में इसका उपयोग कम आम है, क्योंकि वहाँ आम तौर पर टेक्स्ट-आधारित PEM/CRT फ़ाइलों को प्राथमिकता दी जाती है।
- सख्त एनकोडिंग नियमों का मतलब है कि किसी भी मामूली पैडिंग विसंगति के कारण पार्सिंग अस्वीकृति होती है।
रोचक तकनीकी जानकारी
- DER, BER (बेसिक एनकोडिंग रूल्स) का एक सख्त उपसमुच्चय है; जबकि BER किसी मान को एनकोड करने के कई वैध तरीकों की अनुमति देता है, DER ठीक एक कैनोनिकल तरीके की अनुमति देता है।
- यदि आप DER फ़ाइल को Base64-एनकोड करते हैं और इसे '-----BEGIN CERTIFICATE-----' में लपेटते हैं, तो आपको एक मानक PEM फ़ाइल मिलती है।
- जावा के KeyFactory के लिए RSA सार्वजनिक और निजी कुंजियों को कच्चे DER प्रारूप में प्रदान किया जाना आवश्यक है।
अक्सर पूछे जाने वाले तकनीकी प्रश्न
DER और PEM में क्या अंतर है?
DER किसी प्रमाणपत्र या कुंजी का कच्चा बाइनरी फ़ॉर्मेट है। PEM बस वही DER फ़ाइल है जिसे '-----BEGIN...-----' बैनर के साथ पठनीय Base64 टेक्स्ट में बदल दिया गया है।
मैं DER को PEM में कैसे बदल सकता हूँ?
अपनी .der फ़ाइल को सीधे अपने ब्राउज़र में एक सेकंड में मानक .pem टेक्स्ट सर्टिफिकेट में बदलने के लिए उसे File2File.app पर अपलोड करें।
जावा (Java) DER की का उपयोग क्यों करता है?
जावा क्रिप्टोग्राफी आर्किटेक्चर (JCA) अपने नेटिव कुंजी विनिर्देशों के लिए DER-एन्कोडेड PKCS#8 और X.509 बाइट एरे का उपयोग करता है।