मैक एप्लिकेशन के डिजिटल हस्ताक्षर टूटने पर क्या झुंझलाहट या वास्तविक समस्याएं हो सकती हैं?
मैक पर अनुप्रयोगों को डिजिटल रूप से हस्ताक्षरित किया जा सकता है। जब हस्ताक्षर किसी तरह टूट जाता है, तो मुझे पता है कि कुछ एप्लिकेशन नोटिस कर सकते हैं। लेकिन मुझे नहीं पता कि ये किस हद तक सिर्फ झुंझलाहट होगी या वास्तव में चीजों को तोड़ देगी:
OS X फ़ायरवॉल एक तदर्थ हस्ताक्षर को सही ढंग से सेट करने में सक्षम नहीं हो सकता है, जिससे एक को बार-बार संकेत मिलता है कि "क्या आप आने वाले नेटवर्क कनेक्शन स्वीकार करने के लिए '[..]' आवेदन चाहते हैं?"
माता-पिता के नियंत्रण द्वारा अनुमत एप्लिकेशन अब नहीं चल सकते हैं?
किचेन एक्सेस टूट सकता है?
कुछ कहते हैं कि Apple सॉफ़्टवेयर अपडेट विफल हो सकता है। अगर सच है, तो मुझे आश्चर्य है कि अगर यह वास्तव में कोड हस्ताक्षर हस्ताक्षर पर निर्भर करता है, या पूरे आवेदन के लिए कुछ गैर-मिलान हैश, या बीओएम फ़ाइलों से जानकारी के कारण होगा ।
अधिक पृष्ठभूमि की जानकारी नीचे।
कोड हस्ताक्षर विवरण का उपयोग करके दिखाया जा सकता है:
codesign --display -vv /Applications/iTunes.app/
... जो निम्नलिखित की तरह कुछ निकलेगा (लेकिन संशोधनों के बारे में चेतावनी नहीं देगा ):
[..]
CDHash=86828a2d631dbfd417600c458b740cdcd12b13e7
Signature size=4064
Authority=Software Signing
Authority=Apple Code Signing Certification Authority
Authority=Apple Root CA
[..]
हस्ताक्षर का उपयोग करके मान्य किया जा सकता है:
codesign --verify -vv /Applications/iTunes.app/
जो उपज देगा:
/Applications/iTunes.app/: valid on disk
/Applications/iTunes.app/: satisfies its Designated Requirement
... या (यहां तक कि जब एक आवेदन में कुछ अतिरिक्त फ़ाइल डाल रहा है ।/Contents/Resources फ़ोल्डर):
/Applications/iTunes.app/: a sealed resource is missing or invalid
... या (शायद उपरोक्त संदेश से भी बदतर):
/Applications/iTunes.app/: code or signature modified
कोड हस्ताक्षर ओएस 9 या उससे पहले वापस चला जाता है, लेकिन वर्तमान कार्यान्वयन 10.5 तेंदुए में पेश किया गया था । Ars Technica लिखते हैं :
कोड पर हस्ताक्षर करने से कोड के संग्रह में एक क्रिप्टोग्राफिक रूप से सत्यापन योग्य पहचान होती है और यह सुनिश्चित करता है कि उस कोड के किसी भी संशोधन का पता चला है। शामिल पार्टियों के बारे में कोई गारंटी नहीं दी जाती है। उदाहरण के लिए, यदि आप Acme Inc. द्वारा हस्ताक्षरित एक एप्लिकेशन डाउनलोड करते हैं, तो आप इसके बारे में कुछ भी नहीं साबित कर सकते हैं सिवाय इसके कि यह उसी इकाई से आया है जो Acme Inc. का दावा कर रहा है जब आपने पिछली बार उनकी वेब साइट से कुछ डाउनलोड किया था।
यह उदाहरण वास्तव में उपभोक्ता के दृष्टिकोण से प्रौद्योगिकी के सबसे उपयोगी अनुप्रयोग पर प्रकाश डालता है। मैक ओएस एक्स एप्लिकेशन को आज [10.4 टाइगर, एवीबी] में अपग्रेड करते समय, उपयोगकर्ता को अक्सर यह सत्यापित करने के लिए प्रेरित किया जाता है कि इस एप्लिकेशन को उपयोगकर्ता नाम और पासवर्ड प्राप्त करने के लिए किचेन तक पहुंचने की अनुमति है। यह एक अच्छी सुरक्षा सुविधा की तरह लगता है, लेकिन यह सब वास्तव में मैक उपयोगकर्ताओं को नेत्रहीन रूप से "ऑलवेज अलाउन" पर क्लिक करने के लिए प्रशिक्षित करता है। और वास्तव में, औसत उपयोगकर्ता क्या करने जा रहा है, एक डिस्सेम्बलर के माध्यम से निष्पादन योग्य चलाएं और मैन्युअल रूप से सत्यापित करें कि कोड सुरक्षित है?
दूसरी ओर, एक हस्ताक्षरित एप्लिकेशन, गणितीय रूप से यह साबित कर सकता है कि यह वास्तव में उसी विक्रेता का उसी एप्लिकेशन का एक नया संस्करण है जिसे आपने अतीत में विश्वास व्यक्त किया था। परिणाम संवाद बॉक्स का एक अंत है जो आपको एक विकल्प की पुष्टि करने के लिए कहता है जिसकी सुरक्षा के लिए आपके पास सत्यापित करने का कोई उचित तरीका नहीं है।
10.5 तेंदुए में फ़ायरवॉल के लिए, Apple बताता है :
जब आप इस सूची में एक एप्लिकेशन जोड़ते हैं, तो मैक ओएस एक्स डिजिटल रूप से आवेदन पर हस्ताक्षर करता है (यदि यह पहले से ही हस्ताक्षरित नहीं हुआ है)। यदि आवेदन को बाद में संशोधित किया जाता है, तो आपको आने वाले नेटवर्क कनेक्शन को अनुमति देने या अस्वीकार करने के लिए प्रेरित किया जाएगा। अधिकांश एप्लिकेशन स्वयं को संशोधित नहीं करते हैं, और यह एक सुरक्षा सुविधा है जो आपको परिवर्तन के बारे में सूचित करती है।
[..]
सिस्टम द्वारा विश्वसनीय प्रमाणपत्र प्राधिकरण द्वारा (कोड हस्ताक्षर के उद्देश्य के लिए) डिजिटल रूप से हस्ताक्षरित सूची में नहीं आने वाले सभी अनुप्रयोगों को आने वाले कनेक्शन प्राप्त करने की अनुमति है। तेंदुए के प्रत्येक ऐप्पल के ऐप्पल द्वारा हस्ताक्षर किए गए हैं और आने वाले कनेक्शन प्राप्त करने की अनुमति है। यदि आप एक डिजिटली हस्ताक्षरित आवेदन को अस्वीकार करना चाहते हैं, तो आपको पहले इसे सूची में जोड़ना चाहिए और फिर इसे स्पष्ट रूप से अस्वीकार करना चाहिए।
10.6 हिम तेंदुए में, बाद को अधिक स्पष्ट (और अक्षम किया जा सकता है) के रूप में "स्वचालित रूप से हस्ताक्षरित सॉफ़्टवेयर को आने वाले कनेक्शन प्राप्त करने की अनुमति देता है। एक मान्य प्रमाणपत्र प्राधिकारी द्वारा हस्ताक्षरित सॉफ़्टवेयर को नेटवर्क से पहुंच प्रदान करने की अनुमति देता है"।
(10.6 में, 10.5.1 विकल्प "सभी आने वाले कनेक्शनों की अनुमति दें", "केवल आवश्यक सेवाओं की अनुमति दें" और "विशिष्ट सेवाओं और अनुप्रयोगों के लिए पहुंच सेट करें" या तो "सभी आने वाले कनेक्शनों को अवरुद्ध करें" या एक सूची के लिए एक विकल्प में बदल दिया गया है। अनुमत अनुप्रयोगों और विकल्पों में "स्वचालित रूप से हस्ताक्षरित सॉफ़्टवेयर को आने वाले कनेक्शन प्राप्त करने की अनुमति दें" और "चुपके मोड सक्षम करें"। 10.5.1 अपडेट से पहले , "केवल आवश्यक सेवाओं की अनुमति दें" वास्तव में "सभी आने वाले कनेक्शन को अवरुद्ध करें" कहा जाता था।)
(Apple) अनुप्रयोगों के लिए जो किसी भी तरह से अपने मूल हस्ताक्षर को तोड़ चुके हैं, यह तदर्थ हस्ताक्षर किसी भी तरह कायम नहीं हो सकता है, और इसे configd, mDNSResponder और racoon के लिए परेशानी का कारण माना जाता है ।