2012-05-25 30 views
19

मैं ऐसी कंपनी के लिए काम करता हूं जो यूएसबी डिवाइस बेचता है और उनके लिए ड्राइवर प्रदान करता है।विंडोज 8 में, क्या तृतीय-पक्ष आईएनएफ ड्राइवर फ़ाइलों को हस्ताक्षर की आवश्यकता होगी?

विंडोज 7 में, आप यूएसबी उपकरणों के लिए बिना हस्ताक्षर किए गए आईएनएफ ड्राइवर फ़ाइलों को स्थापित और उपयोग कर सकते हैं जब तक कि वे कर्नेल में कोई कोड नहीं जोड़ते। हमारी कंपनी माइक्रोसॉफ्ट (usbser.sys और winusb.sys) द्वारा प्रदान किए गए जेनेरिक ड्राइवरों का उपयोग करती है, इसलिए हमें अपने ड्राइवर पैकेज पर हस्ताक्षर करने की आवश्यकता नहीं है।

हमारे ग्राहकों में से एक से और एक अन्य स्टैक ओवरफ़्लो सवाल What changed in the driver signature requirements for Windows 8? और the Arduino forum, ऐसा लगता है Windows 8 Consumer Preview सख्त हस्ताक्षर किए जाने की आवश्यकताओं कि सभी तृतीय-पक्ष INF फ़ाइलों पर हस्ताक्षर किए पाने के लिए की आवश्यकता है लगता है की एक रिपोर्ट के आधार पर। Windows   7 पर काम करने वाले ड्राइवरों को स्थापित करने का प्रयास करते समय लोगों को त्रुटि संदेश प्राप्त हो रहा है:

तृतीय पक्ष INF में डिजिटल हस्ताक्षर जानकारी नहीं है।

माइक्रोसॉफ्ट का आधिकारिक शब्द क्या है जो पुष्टि करता है कि विंडोज 8 के अंतिम संस्करण में हस्ताक्षर अभी भी आवश्यक होंगे? MSDN.com से एक वाक्य या दो पर्याप्त होगा, लेकिन मुझे कुछ भी नहीं मिला।

मैं एक हस्ताक्षर प्रमाणपत्र खरीदने पर विचार कर रहा हूं, लेकिन 200 डॉलर का भुगतान करने से पहले मैं यह सुनिश्चित करना चाहता हूं कि मुझे वास्तव में लंबी अवधि में इसकी आवश्यकता होगी। यह संभव है कि नई हस्ताक्षर आवश्यकता सिर्फ उपभोक्ता पूर्वावलोकन में है, न कि वास्तविक संस्करण में?

+0

उपभोक्ता पूर्वावलोकन प्राप्त करना बहुत छोटा है। तो आप अपने लिए खोज सकते हैं। विश्वास करना मुश्किल है कि आपने नहीं किया है। इसके अलावा, आप चीजें बेचते हैं लेकिन हस्ताक्षर के लिए $ 200 खांसी के लिए तैयार नहीं हैं ?! आपकी कंपनी के वार्षिक मुनाफे के एक अंश के रूप में क्या है? –

+1

उपभोक्ता पूर्वावलोकन प्राप्त करने से वास्तव में यह निर्णय लेने में मदद नहीं मिलेगी। मैं आदर्श रूप से समय पर आगे बढ़ना चाहता हूं और विंडोज 8 की आधिकारिक प्रति प्राप्त करना चाहता हूं। और हाँ, मैं मितव्ययी हूं। –

+0

इस प्रश्न पूछने के लगभग 7 महीने बाद, मैंने विषय के बारे में जो कुछ भी सीखा है, उसे समझाते हुए एक बड़ा लेख लिखा: http://www.davidegrayson.com/signing/ संक्षेप में, विंडोज 8 आपको अपनी आईएनएफ फाइलों पर हस्ताक्षर करने की आवश्यकता है लेकिन यह WHQL हस्ताक्षर होने की आवश्यकता नहीं है; इसमें सिर्फ ट्रस्ट की एक श्रृंखला होनी चाहिए जो विश्वसनीय रूट प्रमाणीकरण प्राधिकरण सूची में प्रमाण पत्र पर वापस आती है। –

उत्तर

17

अपने स्वयं के प्रश्न का उत्तर देने के लिए: हाँ, विंडोज 8 के अंतिम संस्करण में सभी आईएनएफ फाइलों पर हस्ताक्षर करने की आवश्यकता है, लेकिन आपको अपने ड्राइवरों को WHQL में सबमिट करने की आवश्यकता नहीं है। मैंने इस लेख के बारे में लिखा और मेरे लेख Practical Windows Code and Driver Signing में बहुत कुछ लिखा।

+3

वास्तव में उपयोगी लेख, धन्यवाद – Vicky

7

न केवल आईएनएफ फाइलों पर हस्ताक्षर करने की आवश्यकता है, इसके लिए उन्हें WHQL प्रमाणपत्र द्वारा हस्ताक्षरित होने की भी आवश्यकता है, वैसे ही आप एम्बेडेड-साइन .sys फ़ाइलों और इसी तरह के उपयोग के लिए उपयोग नहीं करते हैं। आईएनएफ फ़ाइल पर मेरे कोड हस्ताक्षर प्रमाणपत्र का उपयोग करना बिल्कुल काम नहीं करता था। (एक ही समस्याओं के रूप में यदि अहस्ताक्षरित छोड़ दिया है।)

संपादित करें:

यह वही है माइक्रोसॉफ्ट आपको लगता है चाहता है। उन्होंने कहा कि ड्राइवरों के कुछ वर्ग WHQL पर हस्ताक्षर किए गए हैं, अन्यथा वे काम नहीं करेंगे, और Authenticode हस्ताक्षर केवल उन लोगों के लिए काम करता है जिनके पास WHQL प्रक्रिया नहीं है।

यह पता चला आप साइन ड्राइवर संकुल Authenticode कर सकते हैं, को छोड़कर आप ध्यान रखते हैं और जैसे आप अब कोड गिरी हैं, के लिए अपने CA (Cross-Certificates for Kernel Mode Code Signing से, वहाँ की टन कर रहे हैं सही पार प्रमाण पत्र हो रही है जिसका अर्थ है उन पर हस्ताक्षर करने के लिए है अब स्टार्टकॉम सहित, जो मेरे पास है (कक्षा 2, यूएस $ 60 दो साल के लिए, लेकिन उन्हें टाइमस्टैम्प नहीं किया जा सकता है)। इस क्रॉस सर्टिफिकेट की आपूर्ति करें (आपके सीए के स्वयं हस्ताक्षरित प्रमाण पत्र के समान नहीं, या उनके मध्यस्थ प्रमाणपत्र। SignTool है कि MSDN पेज) /ac स्विच के माध्यम से पर ही उपलब्ध।

फिर SignTool /kp स्विच के साथ सत्यापित करने का उपयोग y दर्ज करती हैं कहां पार सही ढंग से हस्ताक्षर किए। किसी भी स्विच के बिना साइनटूल सत्यापन की आवश्यकता है कि .cat फाइलें WHQL हस्ताक्षरित हैं, जबकि /pa स्विच, जो ठीक पहले प्रतीत होता था, अब बहुत ढीला है, और केवल गैर-चालक हस्ताक्षर (जैसे EXE फ़ाइलें, ClickOnce इत्यादि) पर लागू होता है।)।

यदि आप अपना स्वयं का कर्नेल-स्तरीय हस्ताक्षर प्रमाणपत्र प्राप्त नहीं करना चाहते हैं (जो पहले से कहीं अधिक आसान है, स्पष्ट रूप से, इससे पहले वेरीसिगन के सुपर महंगे तक सीमित थे, और ग्लोबलसाइन 200 अमेरिकी डॉलर प्रति वर्ष, मुझे लगता है माइक्रोसॉफ्ट ने देखा कि नहीं कई लोगों को 64 सिस्टम के लिए कर्नेल-स्तर कारनामे लिखा था), तो आप एक स्व-हस्ताक्षरित जड़ सीए, अपने ड्राइवर संस्थापक यह LocalMachine की "विश्वसनीय रूट प्रमाणन प्राधिकरण" दुकान में स्थापित है बना सकते हैं (certmgr.exe देखें), और उसके बाद उस .cat फ़ाइल को स्थापित करें जिसे उस पर हस्ताक्षर किया गया था। बेशक, चूंकि यह कर्नेल-स्तरीय कोड प्रमाण पत्र नहीं है, इसलिए आपको केवल .sys फ़ाइलों का उपयोग करना होगा जिनके पास पहले से किसी अन्य से एम्बेडेड कर्नेल-स्तरीय कोड प्रमाणपत्र है (जिसका अर्थ है कि आप केवल ड्राइवर पैकेज में .inf फ़ाइलों को संशोधित कर सकते हैं) । जाहिर है, कुछ छेड़छाड़ है जो स्वयं हस्ताक्षरित प्रमाणपत्रों को .cat फ़ाइलों पर हस्ताक्षर करने की अनुमति देता है (यदि आपने अपना स्वयं का सीए बनाया है, तो उसके साथ एक प्रमाणपत्र पर हस्ताक्षर किए हैं, फिर उसके साथ अपनी .cat फाइलों पर हस्ताक्षर किए हैं, यह काम नहीं करेगा इस)।

एक सूट है कि हर ड्राइवर INF पैकेज बनाता है, libwdi देखने के लिए ऐसा करता है, और कैसे के लिए बिल्ली फ़ाइलों पर अपने स्व-हस्ताक्षरित प्रमाण पत्र विंडोज   पर स्थापना के लिए अनुमति देते 8.

EDIT2:

निकाला गया CERTUM "ओपन सोर्स" डेवलपर सर्टिफिकेट का उल्लेख है, क्योंकि यह माइक्रोसॉफ्ट द्वारा क्रॉस-सर्टिफिकेट नहीं है (जिसे आप प्राप्त करते हैं वह प्रमाणित ट्रस्ट नेटवर्क नहीं है, जो माइक्रोसॉफ्ट क्रॉस-सर्टिफाइड है)।

+0

* मुझे पूरा यकीन है कि आप इसके बारे में गलत हैं। * मुझे गो डैडी से एक सामान्य प्रमाणपत्र मिला और यह विंडोज 8 पूर्वावलोकन में मेरी आईएनएफ फाइल पर सही ढंग से काम किया। मुझे माइक्रोसॉफ्ट को कुछ भी जमा करने की ज़रूरत नहीं थी। अगर आप कुछ मदद चाहते हैं, तो कृपया एक स्टैक ओवरफ्लो प्रश्न लिखें और मुझे और विवरण दें। आपको जो विवरण देना चाहिए, उसके बारे में एक विचार के लिए, http://stackoverflow.com/questions/12291461/signed-inf-driver-works-on-the-computer-where-it-was-igned-not-others देखें कृपया यहां या कुछ टिप्पणी पोस्ट करें ताकि मुझे पता चले कि आपने अपना प्रश्न कब लिखा है। –

+0

मैंने अपने उत्तर को परीक्षण और त्रुटि की लगभग 3 दिनों के लायक जानकारी के साथ अपडेट किया है, और मैंने हस्ताक्षर किए गए एक स्व-हस्ताक्षरित प्रमाण पत्र को प्राप्त करने में कामयाब रहा है .cat फ़ाइल जा रही है, और मेरा अपना प्रामाणिकोड हस्ताक्षरित .cat फ़ाइल जा रहा है (दोनों Win8 और इससे पहले विंडोज संस्करण) – rajkosto

+1

यह '/ ac' है, नहीं '/ ca'। यह '/ pa''/pe' नहीं है। साथ ही, मैं क्रॉस सर्टिफिकेट का उपयोग किये बिना सरल ड्राइवर पैकेजों पर सफलतापूर्वक हस्ताक्षर करने में सक्षम हूं जिसमें अभी एक आईएनएफ और सीएटी फ़ाइल शामिल है; मुख्य बात यह है कि महत्वपूर्ण बात यह है कि ट्रस्ट की आपकी श्रृंखला विश्वसनीय रूट प्रमाणन स्टोर में मौजूद किसी चीज़ पर वापस जाती है। मैं व्यक्तिगत अनुभव और http://msdn.microsoft.com/en-us/library/windows/hardware/gg487332.aspx को इसके स्रोत के रूप में उद्धृत करता हूं। साथ ही, ड्राइवर संकुल को सत्यापित करने के लिए, मुझे लगता है कि '/ pa' उपयोग करने का सही विकल्प है क्योंकि इस तरह वे kmcs_walkthrough.doc में करते हैं। –

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

  • कोई संबंधित समस्या नहीं^_^