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

यदि कार्यक्रम डिजिटल रूप से हस्ताक्षरित है, तो विंडो अलग दिखाई देगी और आप प्रमाण पत्र के बारे में जानकारी भी देख सकते हैं।

कोड हस्ताक्षर प्रमाणपत्र के प्रकार क्या हैं, और वे कैसे भिन्न हैं?
सबसे पहले, प्रमाणीकरण अधिकारियों के लिए प्रमाण पत्र पर विचार करें जो उन्हें जारी करते हैं।
विभिन्न प्रमाणपत्र अधिकारियों के प्रमाणपत्रों के बीच सबसे अच्छा अंतर डैशबोर्ड द्वारा दिखाया गया है।
कॉलम प्रमाणन अधिकारियों के नामों को इंगित करते हैं, और लाइनों में प्रमाण पत्र या प्रौद्योगिकी / मंच का प्रकार जिसके लिए इसका उपयोग किया जाता है।
यह स्पष्ट किया जाना चाहिए कि सभी प्रमाणन प्राधिकरण उन प्लेटफार्मों के बारे में पूरी जानकारी प्रदान नहीं करते हैं जिन पर उनके प्रमाण पत्र काम करते हैं, इसलिए केवल उन प्लेटफार्मों को जिनके समर्थन को प्रमाणीकरण प्राधिकरण द्वारा स्पष्ट रूप से कहा गया है, को प्लस के साथ चिह्नित किया गया है।
माइक्रोसॉफ्ट ऑथेंटिकोड
32 और 64 बिट फ़ाइलों (.exe, .cab, .dll, .ocx, .msi, .xpi और .xap फ़ाइलों) पर हस्ताक्षर करने के लिए। इसके अलावा Microsoft® Office, Microsoft VBA, नेटस्केप ऑब्जेक्ट साइनिंग और Marimba चैनल साइनिंग के लिए कोड हस्ताक्षर करने की अनुमति देता है।
सिल्वरलाइट 4 एप्लीकेशन का समर्थन करता है
Apple के लिए कोड हस्ताक्षर
डेवलपर्स मैक ओएस के लिए कार्यक्रमों पर हस्ताक्षर करने की अनुमति देता है, साथ ही साथ सॉफ्टवेयर अपडेट भी
माइक्रोसॉफ्ट ऑफिस Vba साइनिंग
Microsoft Office .doc, .xls और .ppt फ़ाइलों के लिए VBA ऑब्जेक्ट, स्क्रिप्ट और मैक्रोज़ साइन करता है
Microsoft Office और ऐड-ऑन के लिए जो VBA का उपयोग करते हैं
जावा कोड साइनिंग
जावा एप्लेट पर हस्ताक्षर करने के लिए। आपको डेस्कटॉप और मोबाइल उपकरणों के लिए .jar फ़ाइलों और जावा अनुप्रयोगों पर हस्ताक्षर करने की अनुमति देता है।
मान्यता प्राप्त जावा रनटाइम पर्यावरण (JRE)
एडोब एयर साइनिंग
.Air फ़ाइलों पर हस्ताक्षर करने के लिए
सभी आकाशवाणी आधारित अनुप्रयोगों के लिए आवश्यक
कर्नेल मोड पर हस्ताक्षर
कर्नेल-मोड डेवलपर प्रमाणपत्र आपको तथाकथित कर्नेल-मोड एप्लिकेशन और डिवाइस ड्राइवरों पर हस्ताक्षर करने की अनुमति देते हैं। विंडोज विस्टा और विंडोज 7 के 64-बिट संस्करण के लिए सभी कर्नेल-मोड एप्लिकेशन को एक प्रमाण पत्र और एक विश्वसनीय प्रमाणीकरण प्राधिकरण के साथ हस्ताक्षर करने की आवश्यकता होती है।
एंड्रॉयड
Android प्लेटफ़ॉर्म के लिए .apk फ़ाइलों को साइन और ऑप्टिमाइज़ करने के लिए
माइक्रोसॉफ्ट विंडोज फोन
विंडोज फोन और Xbox 360 के लिए डिजिटल रूप से हस्ताक्षर करने के लिए। Microsoft ऐप हब के लिए आवश्यक है
क्वालकॉम BREW
उन लोगों के लिए जो BREW प्लेटफ़ॉर्म के लिए एप्लिकेशन विकसित करते हैं (वायरलेस के लिए बाइनरी रनटाइम पर्यावरण)
कैसे कोड हस्ताक्षर प्रमाणपत्र काम करता है:
कोड पर हस्ताक्षर करने की प्रक्रिया।

- प्रकाशक (डेवलपर) प्रमाणन प्राधिकारी से एक कोड हस्ताक्षर प्रमाणपत्र का अनुरोध करता है
- SIGNCODE.EXE या किसी अन्य प्रकाशक कोड का उपयोग उपयोगिता पर हस्ताक्षर करने के लिए, MD5 या SHA एल्गोरिदम का उपयोग करके एक कोड हैश बनाता है
- एक निजी कुंजी का उपयोग करके हैश को एनकोड करता है
- एक पैकेज बनाता है जिसमें शामिल हैं: कोड, एक एन्क्रिप्टेड हैश, और एक प्रकाशक प्रमाणपत्र
हस्ताक्षरित कोड को सत्यापित करने की प्रक्रिया।

- उपयोगकर्ता डाउनलोड किए गए सॉफ़्टवेयर को डाउनलोड या इंस्टॉल करता है और उपयोगकर्ता का प्लेटफ़ॉर्म या सिस्टम प्रकाशक के प्रमाण पत्र की जांच करता है, जो कि प्रमाणीकरण प्राधिकरण की मूल निजी कुंजी द्वारा हस्ताक्षरित है।
- सिस्टम प्रकाशक के समान ही हैश एल्गोरिथ्म का उपयोग करके कोड चलाता है और एक नया हैश बनाता है
- प्रकाशक की सार्वजनिक कुंजी का उपयोग करना, जो प्रमाण पत्र में निहित है, सिस्टम एन्क्रिप्टेड हैश को डिक्रिप्ट करता है
- और 2 हैश की तुलना करता है
प्रमाण पत्र प्राधिकरण
जब कोई डेवलपर किसी डिजिटल प्रमाणपत्र का अनुरोध करता है, तो प्रमाणीकरण प्राधिकारी उसकी पहचान करता है और प्रमाणीकरण प्राधिकारी के मूल प्रमाण पत्र से जुड़ा प्रमाण पत्र जारी करता है। प्लेटफ़ॉर्म और उपकरणों में संबंधित प्रमाणन प्राधिकरण का मूल प्रमाणपत्र होता है। यही है, अगर कोई प्लेटफ़ॉर्म या डिवाइस किसी प्रमाणन प्राधिकरण पर भरोसा करता है, तो वह इस प्रमाणन प्राधिकरण द्वारा हस्ताक्षरित आपके प्रमाणपत्र पर भरोसा करेगा।
यदि हैश मेल नहीं खाता है, तो आपको ऐसे सॉफ़्टवेयर को शुरू करते समय एक त्रुटि प्राप्त होगी - इसका मतलब यह हो सकता है कि सॉफ़्टवेयर को वायरस या हमलावर द्वारा संशोधित किया गया था।
जब सॉफ्टवेयर डिजिटल हस्ताक्षर को डिक्रिप्ट करता है, तो यह सिस्टम में रूट प्रमाण पत्र, सत्यापित जानकारी का स्रोत भी जांचता है। यदि आप स्व-हस्ताक्षरित प्रमाणपत्र का उपयोग करते हैं, तो आपको एक त्रुटि मिलेगी: "प्रकाशक को सत्यापित नहीं किया जा सकता है।" इसलिए, प्रमाणन प्राधिकरण के प्रमाण पत्र का उपयोग करना महत्वपूर्ण है, जिसका रूट प्रमाण पत्र पहले से ही प्रोग्राम के इच्छित उपयोगकर्ता के साथ सिस्टम पर स्थापित है।
मैं संगठन सत्यापन प्रक्रिया के बारे में बात नहीं करूंगा, क्योंकि यह संगठन सत्यापन के साथ एसएसएल प्रमाणपत्रों के लिए समान है, जिसके बारे में हमने
पिछले लेख में चर्चा की
थी ।
टाइमस्टैम्प के बारे में कुछ शब्द।
एक टाइमस्टैम्प या टाइमस्टैम्प का उपयोग यह इंगित करने के लिए किया जाता है कि डिजिटल हस्ताक्षर कब किया गया था। यदि ऐसा कोई लेबल मौजूद है, तो हस्ताक्षर को सत्यापित करने वाला एप्लिकेशन यह जांच करेगा कि हस्ताक्षर के समय हस्ताक्षर से जुड़ा प्रमाण पत्र वैध था या नहीं। यदि ऐसा कोई निशान नहीं है, और प्रमाणपत्र समाप्त हो गया है, तो हस्ताक्षर को अमान्य माना जाएगा।
एक उदाहरण:
प्रमाण पत्र से मान्य है: 01.01। 2008
प्रमाणपत्र तक मान्य है: 12.31.2010
हस्ताक्षर किए गए: 07/04/2009
हस्ताक्षर सत्यापित: 04/30/2012
टाइमस्टैम्प के साथ, हस्ताक्षर को सत्यापित किया जाएगा, क्योंकि हस्ताक्षर करने के समय, प्रमाण पत्र मान्य था। इस तरह के एक लेबल के बिना, प्रमाण पत्र सत्यापन पारित नहीं करेगा, क्योंकि सत्यापन के समय प्रमाणपत्र समाप्त हो गया है।
यही है, इस तरह के एक लेबल आपको प्रमाणपत्र समाप्ति तिथि के बाद भी एक हस्ताक्षरित कोड का उपयोग करने की अनुमति देता है।
संक्षेप में कहना
एक प्रमाण पत्र का चयन करने के लिए, आपको पहले एक प्रमाणन प्राधिकरण का चयन करना होगा जो आपके लिए आवश्यक प्लेटफ़ॉर्म के लिए प्रमाण पत्र जारी करता है, और फिर मूल्य और लोकप्रियता के लिए प्रमाणन प्राधिकरण का चयन करने के लिए अनिवार्य रूप से पसंद आता है, अक्सर ग्राहक प्रमाणन प्राधिकरणों का चयन करते हैं जो उन्होंने पहले के साथ काम किया है।
कुछ टिप्स
- यह उसी मशीन से प्रमाण पत्र के लिए आवेदन भरने के लिए सलाह दी जाती है जिसके साथ आप सॉफ्टवेयर हस्ताक्षर निष्पादित करेंगे।
- अधिकांश सर्टिफ़िकेट अथॉरिटीज़ इंटरनेट एक्सप्लोरर के माध्यम से एक सर्टिफ़िकेट एप्लिकेशन जेनरेट करने की सलाह देते हैं, हालाँकि हमें अन्य ब्राउज़रों के माध्यम से एप्लिकेशन बनाने में कोई समस्या नहीं थी।
मुझे अपनी योग्यता के भीतर, डेवलपर प्रमाणपत्रों पर सवालों के जवाब देने में खुशी होगी, क्योंकि मैं खुद एक डेवलपर नहीं हूं।
मैं इस तरह के प्रमाण पत्र का उपयोग करने वाले लोगों के अतिरिक्त और स्पष्टीकरण से भी खुश होऊंगा।
UPD: टाइमस्टैम्प (टाइमस्टैम्प) के बारे में महत्वपूर्ण जानकारी, धन्यवाद
टॉलटॉल और
crea7or