कोड साइनिंग: Difference between revisions
No edit summary |
m (12 revisions imported from alpha:कोड_साइनिंग) |
||
| (4 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
{{Short description|Software authentication}}'''कोड साइनिंग''' सॉफ्टवेयर स्क्रिप्ट को कन्फर्म करने और यह गारंटी देने के लिए [[निष्पादन|एक्सेक्यूटेबल्स]] और स्क्रिप्ट पर [[डिजिटल हस्ताक्षर और कानून|डिजिटल रूप से साइनिंग]] करने की प्रक्रिया है कि कोड पर साइनिंग किए जाने के पश्चात से उसे ऑल्टड या कर्रप्टेड नहीं किया गया है। यह प्रोसेस ऑथेंटिसिटी और इंटीग्रिटी को वैलिड करने के लिए क्रिप्टोग्राफ़िक हैश का उपयोग करती है।<ref>{{Cite web|url=https://msdn.microsoft.com/en-us/library/ms537361(v=vs.85).aspx|title=Introduction to Code Signing}}</ref> कोड साइनिंग का आविष्कार 1995 में माइकल डॉयल द्वारा ईओलास वेबविश ब्राउज़र प्लग-इन के भाग के रूप में किया गया था, जिसने | {{Short description|Software authentication}}'''कोड साइनिंग''' सॉफ्टवेयर स्क्रिप्ट को कन्फर्म करने और यह गारंटी देने के लिए [[निष्पादन|एक्सेक्यूटेबल्स]] और स्क्रिप्ट पर [[डिजिटल हस्ताक्षर और कानून|डिजिटल रूप से साइनिंग]] करने की प्रक्रिया है कि कोड पर साइनिंग किए जाने के पश्चात से उसे ऑल्टड या कर्रप्टेड नहीं किया गया है। यह प्रोसेस ऑथेंटिसिटी और इंटीग्रिटी को वैलिड करने के लिए क्रिप्टोग्राफ़िक हैश का उपयोग करती है।<ref>{{Cite web|url=https://msdn.microsoft.com/en-us/library/ms537361(v=vs.85).aspx|title=Introduction to Code Signing}}</ref> कोड साइनिंग का आविष्कार 1995 में माइकल डॉयल द्वारा ईओलास वेबविश ब्राउज़र प्लग-इन के भाग के रूप में किया गया था, जिसने सीक्रेट की का उपयोग करके डाउनलोड करने योग्य वेब ऐप प्रोग्राम कोड पर साइनिंग करने के लिए पब्लिक-की क्रिप्टोग्राफी के उपयोग को सक्षम किया, जिससे प्लग-इन कोड इंटरप्रेटर कर सके। फिर कोड इंटरप्रेटर के एपीआई तक एक्सेस करने की अनुमति देने से पहले कोड को ऑथेंटिकेट करने के लिए संबंधित पब्लिक की का उपयोग किया जाता है। <ref>{{Cite web|url= https://archive.org/details/dr_dobbs_journal-1996_02/page/22/mode/2up|title=WebWish: Our Wish is Your Command}}</ref> | ||
कोड साइनिंग कई वैल्युएबल फीचर प्रदान कर सकते हैं। कोड साइनिंग का सबसे सरल उपयोग डेप्लॉयिंग के | कोड साइनिंग कई वैल्युएबल फीचर प्रदान कर सकते हैं। कोड साइनिंग का सबसे सरल उपयोग डेप्लॉयिंग के टाइम सिक्योरिटी प्रदान करना है; कुछ प्रोग्रामिंग लैंग्वेज में, इसका उपयोग नेमस्पेस कन्फ्लिक्ट्स को प्रिवेंट करने में सहायता के लिए भी किया जा सकता है। लगभग सभी कोड साइनिंग इम्प्लीमेंटेशन ऑथर या बिल्ड सिस्टम की आइडेंटिटी को वेरीफाई करने के लिए कुछ प्रकार के डिजिटल साइनिंग मैकेनिज्म प्रदान करेगा, और यह वेरीफाई करने के लिए[[ अंततः, | चेकसम]] प्रदान करेगा कि ऑब्जेक्ट को मॉडिफाई नहीं किया गया है। इसका उपयोग किसी ऑब्जेक्ट के बारे में वर्जनिंग इनफार्मेशन प्रदान करने या किसी ऑब्जेक्ट के बारे में अन्य [[ मेटाडाटा |मेटाडाटा]] स्टोर करने के लिए भी किया जा सकता है।<ref>{{cite web |url= https://www.cabforum.org/wp-content/uploads/Baseline_Requirements_V1.pdf|title= विश्वसनीय प्रमाणपत्रों का संपूर्ण अवलोकन - CABForum|year=2015 |last1=Hendric |first1=William |access-date=2015-02-26}}</ref> | ||
सॉफ़्टवेयर के लिए ऑथेंटिकेशन मैकेनिज्म के रूप में कोड साइनिंग की एफ्फिकसी अंडरपिंनिंग साइनिंग की सिक्योरिटी पर निर्भर करती है। अन्य पब्लिक की इन्फ्रास्ट्रक्चर (पीकेआई) टेक्नोलॉजीज के जैसे, सिस्टम की इंटीग्रिटी अनऑथॉरिज़ेड एक्सेस के अगेंस्ट अपनी प्राइवेट की सेकुरिंग करने वाले पब्लिशर्स पर निर्भर करती है। जनरल पर्पस के कंप्यूटरों पर सॉफ़्टवेयर में स्टोर कीस कोम्प्रोमाईज़ करने के लिए ससटेबल होती हैं। इसलिए, कीस को [[हार्डवेयर सुरक्षा मॉड्यूल|हार्डवेयर सिक्योरिटी मॉड्यूल]] या एचएसएम के रूप में जाने वाले सिक्योर, टेमपर-प्रूफ, क्रिप्टोग्राफ़िक हार्डवेयर डिवाइस में स्टोर करना अधिक सिक्योर और बेस्ट प्रैक्टिस है।<ref>{{Cite web|url=https://www.thawte.com/code-signing/whitepaper/best-practices-for-code-signing-certificates.pdf|title=Securing your Private Keys as Best Practice for Code Signing Certificates}}</ref> | सॉफ़्टवेयर के लिए ऑथेंटिकेशन मैकेनिज्म के रूप में कोड साइनिंग की एफ्फिकसी अंडरपिंनिंग साइनिंग की सिक्योरिटी पर निर्भर करती है। अन्य पब्लिक की इन्फ्रास्ट्रक्चर (पीकेआई) टेक्नोलॉजीज के जैसे, सिस्टम की इंटीग्रिटी अनऑथॉरिज़ेड एक्सेस के अगेंस्ट अपनी प्राइवेट की सेकुरिंग करने वाले पब्लिशर्स पर निर्भर करती है। जनरल पर्पस के कंप्यूटरों पर सॉफ़्टवेयर में स्टोर कीस कोम्प्रोमाईज़ करने के लिए ससटेबल होती हैं। इसलिए, कीस को [[हार्डवेयर सुरक्षा मॉड्यूल|हार्डवेयर सिक्योरिटी मॉड्यूल]] या एचएसएम के रूप में जाने वाले सिक्योर, टेमपर-प्रूफ, क्रिप्टोग्राफ़िक हार्डवेयर डिवाइस में स्टोर करना अधिक सिक्योर और बेस्ट प्रैक्टिस है।<ref>{{Cite web|url=https://www.thawte.com/code-signing/whitepaper/best-practices-for-code-signing-certificates.pdf|title=Securing your Private Keys as Best Practice for Code Signing Certificates}}</ref> | ||
== सिक्योरिटी प्रदान करना == | == सिक्योरिटी प्रदान करना == | ||
कई कोड साइनिंग इम्प्लीमेंटेशन [[ परिवहन परत सुरक्षा |टीएलएस]] या [[ सुरक्षित खोल |एसएसएच]] द्वारा एम्प्लॉयड प्रोसेस के समान, की पेयर, पब्लिक और प्राइवेट को सम्मिलित करते वाले सिस्टम का उपयोग करके कोड पर साइनिंग करने का मेथड प्रदान करेंगे। उदाहरण के लिए, .NET के केस में, डेवलपर बिल्ड करते | कई कोड साइनिंग इम्प्लीमेंटेशन [[ परिवहन परत सुरक्षा |टीएलएस]] या [[ सुरक्षित खोल |एसएसएच]] द्वारा एम्प्लॉयड प्रोसेस के समान, की पेयर, पब्लिक और प्राइवेट को सम्मिलित करते वाले सिस्टम का उपयोग करके कोड पर साइनिंग करने का मेथड प्रदान करेंगे। उदाहरण के लिए, .NET के केस में, डेवलपर बिल्ड करते टाइम अपनी लाइब्रेरी या एक्सेक्यूटेबल्स पर साइनिंग करने के लिए प्राइवेट की का उपयोग करता है। यह की किसी डेवलपर या ग्रुप या कभी-कभी पर एप्लिकेशन या ऑब्जेक्ट के लिए यूनिक होगी। डेवलपर या तो यह की सेल्फ उत्पन्न कर सकता है या किसी ट्रस्टड सर्टिफिकेट अथॉरिटी (सीए) से प्राप्त कर सकता है।<ref>{{Cite web |url = https://www.instantssl.com/code-signing-certificate.html |title = What is Code Signing? |date = 17 June 2011 |first = William |last = Hendric |access-date = 26 February 2015}}</ref> | ||
कोड साइनिंग डिस्ट्रिब्यूटेड एनवीरोंमेंट्स में विशेष रूप से वैल्युएबल है, जहां किसी दिए गए कोड का सोर्स इम्मेडिएटली एविडेंट नहीं हो सकता है- उदाहरण के लिए [[जावा एप्लेट]], [[एक्टिवेक्स|एक्टिवएक्स]] कंट्रोल्स और अन्य एक्टिव वेब और ब्राउज़र स्क्रिप्टिंग कोड अन्य महत्वपूर्ण उपयोग उपस्थित सॉफ़्टवेयर को सुरक्षित रूप से अपडेट और पैच प्रदान करना है।<ref>{{Cite web|url=https://msdn.microsoft.com/en-us/library/windows/desktop/aa368289(v=vs.85).aspx|title=Digital Signatures and Windows Installer}}</ref> [[माइक्रोसॉफ़्ट विंडोज़]], {{nowrap|[[मैक ओएस एक्स]]}}, रिसीविंग ऑपरेटिंग सिस्टम को यह वेरीफाई करने की अनुमति देता है कि अपडेट लेजिमेंट है, भले ही अपडेट थर्ड पार्टीज या फिजिकल मीडिया (डिस्क) द्वारा डेलिवर्ड किया गया हो। | कोड साइनिंग डिस्ट्रिब्यूटेड एनवीरोंमेंट्स में विशेष रूप से वैल्युएबल है, जहां किसी दिए गए कोड का सोर्स इम्मेडिएटली एविडेंट नहीं हो सकता है- उदाहरण के लिए [[जावा एप्लेट]], [[एक्टिवेक्स|एक्टिवएक्स]] कंट्रोल्स और अन्य एक्टिव वेब और ब्राउज़र स्क्रिप्टिंग कोड अन्य महत्वपूर्ण उपयोग उपस्थित सॉफ़्टवेयर को सुरक्षित रूप से अपडेट और पैच प्रदान करना है।<ref>{{Cite web|url=https://msdn.microsoft.com/en-us/library/windows/desktop/aa368289(v=vs.85).aspx|title=Digital Signatures and Windows Installer}}</ref> [[माइक्रोसॉफ़्ट विंडोज़]], {{nowrap|[[मैक ओएस एक्स]]}}, रिसीविंग ऑपरेटिंग सिस्टम को यह वेरीफाई करने की अनुमति देता है कि अपडेट लेजिमेंट है, भले ही अपडेट थर्ड पार्टीज या फिजिकल मीडिया (डिस्क) द्वारा डेलिवर्ड किया गया हो। | ||
| Line 42: | Line 42: | ||
1.3.6.1.4.1.311.60.2.1.3 = US | 1.3.6.1.4.1.311.60.2.1.3 = US | ||
1.3.6.1.4.1.311.60.2.1.2 = Nevada | 1.3.6.1.4.1.311.60.2.1.2 = Nevada | ||
streetAddress = 3100 Richmond Ave Ste 503 | |||
businessCategory = Private Organization | |||
postalCode = 77098 | |||
commonName = SSL Corp | |||
serialNumber = NV20081614243 | |||
organizationName = SSL Corp | |||
localityName = Houston | |||
stateOrProvinceName = Texas | |||
countryName = US | |||
Subject Public Key Info: | |||
Public Key Algorithm: rsaEncryption | |||
Public-Key: (2048 bit) | |||
Modulus: | |||
00:c3:e9:ae:be:d7:a2:6f:2f:24... | 00:c3:e9:ae:be:d7:a2:6f:2f:24... | ||
Exponent: 65537 (0x10001) | |||
X509v3 | X509v3 extensions: | ||
X509v3 | X509v3 Authority Key Identifier: | ||
keyid:36:BD:49:FF:31:2C:EB:AF:6A:40:FE:99:C0:16:ED:BA:FC:48:DD:5F | keyid:36:BD:49:FF:31:2C:EB:AF:6A:40:FE:99:C0:16:ED:BA:FC:48:DD:5F | ||
Authority Information Access: | |||
CA Issuers - URI:http://www.ssl.com/repository/SSLcom-SubCA-EV-CodeSigning-RSA-4096-R3.crt | |||
OCSP - URI::http://ocsps.ssl.com | |||
X509v3 | X509v3 Certificate Policies: | ||
Policy: 2.23.140.1.3 | |||
Policy: 1.2.616.1.113527.2.5.1.7 | |||
Policy: 1.3.6.1.4.1.38064.1.3.3.2 | |||
CPS: https://www.ssl.com/repository | |||
X509v3 | X509v3 Extended Key Usage: | ||
Code Signing | |||
X509v3 CRL | X509v3 CRL Distribution Points: | ||
Full Name: | |||
URI:http://crls.ssl.com/SSLcom-SubCA-EV-CodeSigning-RSA-4096-R3.crl | |||
X509v3 | X509v3 Subject Key Identifier: | ||
EC:6A:64:06:26:A7:7A:69:E8:CC:06:D5:6F:FA:E1:C2:9A:29:79:DE | EC:6A:64:06:26:A7:7A:69:E8:CC:06:D5:6F:FA:E1:C2:9A:29:79:DE | ||
X509v3 | X509v3 Key Usage: critical | ||
Digital Signature | |||
Signature Algorithm: sha256WithRSAEncryption | |||
17:d7:a1:26:58:31:14: | 17:d7:a1:26:58:31:14:2b:9f:3b ... | ||
===सीए का अल्टरनेटिव === | |||
दूसरा मॉडल प्रथम उपयोग मॉडल पर ट्रस्ट है, जिसमें डेवलपर्स अपनी सेल्फ-जनरेट की को सेलेक्ट कर सकते हैं। इस सिनेरियो में, यूजर को सरलता सर्वप्रथम ऑब्जेक्ट को वेरीफाई करने के लिए सीधे डेवलपर से पब्लिक की प्राप्त करनी होगी। कई कोड साइनिंग सिस्टम्स पब्लिक की को साइनिंग के इंटरनल स्टोर करेंगी। कुछ सॉफ्टवेयर फ्रेमवर्क और ओएस जो एक्सेक्यूटिंग करने से पहले कोड के साइनिंग को चेक करते हैं, आपको पहले रन के पश्चात उस पॉइंट से उस डेवलपर पर ट्रस्ट करने का आप्शन सेलेक्ट करने' की अनुमति देंगे। एप्लिकेशन डेवलपर इंस्टॉलर के साथ पब्लिक की सम्मिलित करके सिमिलर सिस्टम प्रदान कर सकता है। की का उपयोग यह सुनिश्चित करने के लिए किया जा सकता है कि किसी भी सबसेकेंट ऑब्जेक्ट को रन करने की आवश्यकता है, जैसे अपग्रेड, प्लगइन्स, या अन्य एप्लिकेशन, सभी उसी डेवलपर से आने के रूप में वेरीफाई हैं। | |||
'''टाइम-स्टैम्पिंग''' | |||
टाइम-स्टैम्पिंग को ट्रस्ट वार्निंग से बचने के लिए डिज़ाइन किया गया था जो कि एक्सपयार्ड सर्टिफिकेट के केस में दिखाई देगी। वास्तव में, टाइम-स्टैम्पिंग किसी सर्टिफिकेट की वैलिडिटी पीरियड से परे कोड ट्रस्ट को एक्सटेंडेड करती है।<ref name=morton>{{cite web|last=Morton|first=Bruce|title=कोड पर हस्ताक्षर|url=https://casecurity.org/wp-content/uploads/2013/10/CASC-Code-Signing.pdf|publisher=CASC|access-date=21 February 2014}}</ref> | |||
ऐसी स्थिति में जब किसी कोम्प्रोमाईज़ड के कारण सर्टिफिकेट को रिवोकड करना होता है, तो कम्प्रोमिसिंग इवेंट स्पेसिफिक डेट और टाइम रिवोकेशन रिकॉर्ड का भाग बन जाएगा। इस केस में, टाइम-स्टैम्पिंग यह स्थापित करने में सहायता करती है कि कोड पर साइनिंग सर्टिफिकेट से कोम्प्रोमाईज़ड होने से पहले या पश्चात में किया गया था।<ref name="morton" /> | |||
'''[[Xcode]] में कोड साइनिंग''' | '''[[Xcode|एक्सकोड]] में कोड साइनिंग''' | ||
डेवलपर्स को किसी भी | डेवलपर्स को किसी भी रियल डिवाइस पर रन करने से पहले और [[ऐप स्टोर (आईओएस)]] पर अपलोड करने से पहले अपने आईओएस और टीवीओएस ऐप पर साइनिंग करने की आवश्यकता होती है। यह प्रोव करने के लिए आवश्यक है कि डेवलपर के पास वैलिड एप्पल डेवलपर आईडी है। किसी एप्लिकेशन को वैलिड प्रोफ़ाइल या सर्टिफिकेट की आवश्यकता होती है जिससे वह डिवाइस पर रन कर सके। | ||
===समस्याएँ=== | ===समस्याएँ === | ||
किसी भी सिक्योरिटी | किसी भी सिक्योरिटी मेजर्स के जैसे, कोड साइनिंग को डेफेटेड किया जा सकता है। यूजर को बिना अनसाइंड कोड रनिंग, या यहां तक कि ऐसे कोड रनिंग करने के लिए भी ट्रिकड किया जा सकता है जो वेरीफाई करने से रिफ्यूज कर देता है, और सिस्टम केवल तब तक सिक्योर रहता है जब तक प्राइवेट की प्राइवेट रहती है।<ref>{{Cite web|url=http://blog.trendmicro.com/fake-antivirus-solutions-increasingly-stolen-code-signing-certificates/|title = नकली एंटीवायरस समाधान तेजी से कोड-हस्ताक्षर प्रमाणपत्र चुरा रहे हैं|date = 9 January 2014}}</ref><ref>http://www.eweek.com/c/a/Security/Theres-A-Racket-Brewing-In-the-Code-Signing-Cert-Business/ {{Dead link|date=February 2022}}</ref> | ||
यह ध्यान रखना भी महत्वपूर्ण है कि कोड साइनिंग | |||
यह ध्यान रखना भी महत्वपूर्ण है कि कोड साइनिंग एंड यूजर को सॉफ़्टवेयर ऑथर द्वारा किसी भी मालिसियस एक्टिविटी या अननिंटेन्शनल सॉफ़्टवेयर बग से नहीं बचाता है- यह केवल सुनिश्चित करता है कि सॉफ़्टवेयर को ऑथर के अतिरिक्त किसी अन्य द्वारा मॉडिफाई नहीं किया गया है। कभी-कभी, फाल्स टाइम-स्टैम्प के कारण या [[ रैंडम एक्सेस मेमोरी |रैंडम एक्सेस मेमोरी]] के अधिक उपयोग के कारण, सैंडबॉक्स सिस्टम सर्टिफिकेट एक्सेप्ट नहीं करते हैं। | |||
==इम्प्लीमेंटेशन== | ==इम्प्लीमेंटेशन== | ||
माइक्रोसॉफ्ट इम्प्लेमेंट्स किए गए ड्राइवरों के लिए प्रदान किए गए कोड साइनिंग का रूप (ऑथेंटिकोड पर आधारित) प्रारम्भ करता है। चूंकि ड्राइवर कर्नेल में रन करते हैं, वे सिस्टम को डिसस्टैबिलाईड कर सकते हैं या सिस्टम में सिक्योरिटी होल्स ओपन कर सकते हैं। इस कारण से, माइक्रोसॉफ्ट अपने [[WHQL परीक्षण|डब्लूएचक्यूएल प्रोग्राम]] में सबमिट किए गए ड्राइवरों को टेस्ट करता है। ड्राइवर के पास्ड हो जाने के पश्चात, माइक्रोसॉफ्ट ड्राइवर के उस वर्जन को सेफ मानता है। केवल 32-बिट सिस्टम पर, माइक्रोसॉफ्ट के साथ वैलिड नहीं किए गए ड्राइवरों को इंस्टॉल करना यूजर को वार्निंग देते हुए इंस्टॉलेशन की अनुमति देने के पश्चात संभव है कि कोड अनसाइंड है। .NET (प्रबंधित) कोड के लिए, [[मजबूत कुंजी|स्ट्रांग नेम]] साइनिंग नामक अतिरिक्त मैकेनिज्म है जो सर्टिफिकेट के विपरीत पब्लिक/प्राइवेट की और [[SHA-1]]-1 हैश का उपयोग करता है। चूँकि, माइक्रोसॉफ्ट ऑथेंटिकोड के रिप्लेसमेंट के रूप में स्ट्रॉन्ग नेम साइनिंग पर डिपेंडेंसी को डिसकरेज करता है।<ref>[http://blogs.msdn.com/shawnfa/archive/2008/05/14/strong-name-bypass.aspx Strong Name Bypass: .NET Security Blog]</ref> | |||
== गेमिंग और | == गेमिंग और कन्जूमर डिवाइस में अनसाइंड कोड == | ||
[[हैंडहेल्ड गेम कंसोल]] जैसे | [[हैंडहेल्ड गेम कंसोल]] जैसे कन्जूमर डिवाइस के संदर्भ में, अनसाइंड कोड शब्द का उपयोग प्रायः ऐसे एप्लिकेशन को संदर्भित करने के लिए किया जाता है जिसे सॉफ़्टवेयर को एक्सेप्ट करने और एक्सीक्यूट करने के लिए सामान्य रूप से आवश्यक क्रिप्टोग्राफ़िक [[कुंजी (क्रिप्टोग्राफी)|की (क्रिप्टोग्राफी)]] के साथ साइंड नहीं किया गया है। अधिकांश कंसोल गेम को कंसोल मेकर द्वारा डिज़ाइन की गई सीक्रेट की के साथ साइंड करना होता है अन्यथा गेम कंसोल पर लोड नहीं होगा। अनसाइंड कोड को एक्सीक्यूट करने के लिए कई मेथड्स हैं जिनमें सॉफ्टवेयर एक्सप्लॉइट (कंप्यूटर सिक्योरिटी), [[मॉडचिप]] का उपयोग, [[ जादू बदलें |स्वैप ट्रिक]] के रूप में जानी जाने वाली टेकनीक या [[ सॉफ्टमोड |सॉफ्टमोड]] रनिंग सम्मिलित है। | ||
यह | यह प्रारंभ में ऑब्वियस नहीं लग सकता है कि किसी साइंड एप्लिकेशन को किसी अन्य डीवीडी पर कॉपी करने से उसे बूट होने की अनुमति क्यों नहीं मिलती है। एक्सबॉक्स (कंसोल) पर, इसका कारण यह है कि एक्सबॉक्स एक्सेक्यूटेबल्स फ़ाइल (एक्सबीई) में मीडिया-टाइप फ्लैग होता है, जो मीडिया के टाइप को निर्दिष्ट करता है जिससे एक्सबीई बूट किया जा सकता है। लगभग सभी एक्सबॉक्स सॉफ़्टवेयर पर, इसे ऐसे सेट किया गया है कि एक्सेक्यूटेबल्स केवल फ़ैक्टरी-जनरेट डिस्क से बूट होगा, इसलिए एक्सेक्यूटेबल्स को बर्नएबल मीडिया में कॉपी करना ही सॉफ़्टवेयर के एक्सेक्यूटेबल्स को स्टॉप करने के लिए पर्याप्त है। | ||
चूँकि, एक्सेक्यूटेबल्स साइंड है, केवल फ्लैग की वैल्यू चेंज करना संभव नहीं है क्योंकि यह एक्सेक्यूटेबल्स के साइनिंग को आल्टरस कर देता है, जिससे चेक करने पर वेलिडेशन फेल हो जाता है। | |||
==यह भी देखें== | ==यह भी देखें== | ||
* [[अंगुली का हस्ताक्षर| | * [[अंगुली का हस्ताक्षर|डिजिटल सिग्नेचर]] | ||
* [[आईओएस जेलब्रेकिंग]] | * [[आईओएस जेलब्रेकिंग]] | ||
* [[प्लेस्टेशन पोर्टेबल होमब्रू]] | * [[प्लेस्टेशन पोर्टेबल होमब्रू]] | ||
* [[विशेषाधिकार वृद्धि]] | * [[विशेषाधिकार वृद्धि|प्रिविलेज एस्कालेशन]] | ||
* [[रूटिंग (एंड्रॉइड ओएस)]] | * [[रूटिंग (एंड्रॉइड ओएस)]] | ||
* सिम्बियन ओएस | * सिम्बियन ओएस सिक्योरिटी बायपास | ||
==संदर्भ== | ==संदर्भ== | ||
| Line 129: | Line 130: | ||
[[Category: Machine Translated Page]] | [[Category: Machine Translated Page]] | ||
[[Category:Created On 16/08/2023]] | [[Category:Created On 16/08/2023]] | ||
[[Category:Vigyan Ready]] | |||
Latest revision as of 22:19, 5 December 2023
कोड साइनिंग सॉफ्टवेयर स्क्रिप्ट को कन्फर्म करने और यह गारंटी देने के लिए एक्सेक्यूटेबल्स और स्क्रिप्ट पर डिजिटल रूप से साइनिंग करने की प्रक्रिया है कि कोड पर साइनिंग किए जाने के पश्चात से उसे ऑल्टड या कर्रप्टेड नहीं किया गया है। यह प्रोसेस ऑथेंटिसिटी और इंटीग्रिटी को वैलिड करने के लिए क्रिप्टोग्राफ़िक हैश का उपयोग करती है।[1] कोड साइनिंग का आविष्कार 1995 में माइकल डॉयल द्वारा ईओलास वेबविश ब्राउज़र प्लग-इन के भाग के रूप में किया गया था, जिसने सीक्रेट की का उपयोग करके डाउनलोड करने योग्य वेब ऐप प्रोग्राम कोड पर साइनिंग करने के लिए पब्लिक-की क्रिप्टोग्राफी के उपयोग को सक्षम किया, जिससे प्लग-इन कोड इंटरप्रेटर कर सके। फिर कोड इंटरप्रेटर के एपीआई तक एक्सेस करने की अनुमति देने से पहले कोड को ऑथेंटिकेट करने के लिए संबंधित पब्लिक की का उपयोग किया जाता है। [2]
कोड साइनिंग कई वैल्युएबल फीचर प्रदान कर सकते हैं। कोड साइनिंग का सबसे सरल उपयोग डेप्लॉयिंग के टाइम सिक्योरिटी प्रदान करना है; कुछ प्रोग्रामिंग लैंग्वेज में, इसका उपयोग नेमस्पेस कन्फ्लिक्ट्स को प्रिवेंट करने में सहायता के लिए भी किया जा सकता है। लगभग सभी कोड साइनिंग इम्प्लीमेंटेशन ऑथर या बिल्ड सिस्टम की आइडेंटिटी को वेरीफाई करने के लिए कुछ प्रकार के डिजिटल साइनिंग मैकेनिज्म प्रदान करेगा, और यह वेरीफाई करने के लिए चेकसम प्रदान करेगा कि ऑब्जेक्ट को मॉडिफाई नहीं किया गया है। इसका उपयोग किसी ऑब्जेक्ट के बारे में वर्जनिंग इनफार्मेशन प्रदान करने या किसी ऑब्जेक्ट के बारे में अन्य मेटाडाटा स्टोर करने के लिए भी किया जा सकता है।[3]
सॉफ़्टवेयर के लिए ऑथेंटिकेशन मैकेनिज्म के रूप में कोड साइनिंग की एफ्फिकसी अंडरपिंनिंग साइनिंग की सिक्योरिटी पर निर्भर करती है। अन्य पब्लिक की इन्फ्रास्ट्रक्चर (पीकेआई) टेक्नोलॉजीज के जैसे, सिस्टम की इंटीग्रिटी अनऑथॉरिज़ेड एक्सेस के अगेंस्ट अपनी प्राइवेट की सेकुरिंग करने वाले पब्लिशर्स पर निर्भर करती है। जनरल पर्पस के कंप्यूटरों पर सॉफ़्टवेयर में स्टोर कीस कोम्प्रोमाईज़ करने के लिए ससटेबल होती हैं। इसलिए, कीस को हार्डवेयर सिक्योरिटी मॉड्यूल या एचएसएम के रूप में जाने वाले सिक्योर, टेमपर-प्रूफ, क्रिप्टोग्राफ़िक हार्डवेयर डिवाइस में स्टोर करना अधिक सिक्योर और बेस्ट प्रैक्टिस है।[4]