तृतीय पक्ष मॉड्यूल स्थापित करते समय "सुरक्षित बूट" को अक्षम करना नीति क्यों लागू की गई है


46

16.04 स्थापित करते समय , मुझे " सिक्योर बूट " को बंद करने के लिए कहा गया था यदि मैं 3 पार्टी मॉड्यूल / ड्राइवर स्थापित करना चाहता था ।

मैंने पालन नहीं किया।

और जब मैं मैन्युअल रूप से केवल 3 पार्टी ड्राइवरों को स्थापित करता हूं, जिनका मैं उपयोग करता हूं ( bcmwl-kernel-source ), मुझे फिर से (पैकेज की स्थापना के दौरान) "सिक्योर बूट" को बंद करने के लिए कहा गया था।

15.10 में सुरक्षित बूट के साथ bcmwl- कर्नेल-स्रोत का उपयोग करना बिल्कुल ठीक था । यह मुझे बग से संबंधित नहीं लगता है।

तो ऐसा लगता है कि उबंटू ने "सिक्योर बूट" के साथ इसे (??) काम करने के लिए तीसरे पक्ष के ड्राइवरों / मॉड्यूलों पर हस्ताक्षर करने से इनकार कर दिया। या 3 पार्टी मॉड्यूल को असुरक्षित और "सिक्योर बूट" तोड़ने के रूप में माना जाता है, इसलिए इसे स्पष्ट करने के लिए इसे अक्षम करने के लिए inforcing ?? क्या मैं सही हू ?


6
ठीक है, IMO, ऐसा इसलिए है क्योंकि लोग (झूठा) मान लेते हैं कि सुरक्षित बूट सलाह देते समय 3 पार्टी मॉड्यूल को तोड़ देगा। सुरक्षित बूट पर तकनीकी जानकारी यहाँ है - wiki.ubuntu.com/SecurityTeam/SecureBoot । व्यक्तिगत रूप से मैं सुरक्षित बूट को बंद करने के लिए सर्वव्यापी सलाह से असहमत हूं, मेरे हार्डवेयर पर केवल ठीक से सक्षम सुरक्षा के साथ काम करता है। IMO सुरक्षित बूट सक्षम छोड़ दें जब तक आपको इसके साथ कोई समस्या न हो, सुरक्षा सुविधाओं को नेत्रहीन रूप से अक्षम करने का कोई कारण नहीं है।
पैंथर

8
मैंने इसे गहराई से नहीं देखा है, लेकिन जैसा कि मैं इसे समझता हूं, 16.04 15.10 की तुलना में एक सख्त सिक्योर बूट प्रवर्तन पर जा रहा है और पहले उपयोग किए गए संस्करण। विशेष रूप से, 15.10 में और इससे पहले, एक बार जब शिम ने GRUB लॉन्च किया, GRUB किसी भी लिनक्स कर्नेल को लॉन्च करेगा ; सुरक्षित बूट सुरक्षा GRUB के साथ समाप्त होती है। मेरी समझ यह है कि 16.04 के साथ, सुरक्षित बूट नीति प्रवर्तन कर्नेल तक फैली हुई है, इसलिए उबंटू का GRUB अब अहस्ताक्षरित कर्नेल लॉन्च नहीं करेगा। यदि यह उससे आगे निकल जाता है, तो अहस्ताक्षरित कर्नेल मॉड्यूल भी प्रभावित होंगे, जब वे पहले नहीं थे। फिर, हालांकि, मैंने इसका गहराई से अध्ययन नहीं किया है।
रॉड स्मिथ

1
कुछ अच्छी पृष्ठभूमि: Bugs.launchpad.net/ubuntu/+ource/grub2/+bug/1401532
dpb

1
तीसरे पक्ष के मॉड्यूल को स्थापित करने के प्रयास में अपने सिस्टम के साथ खिलवाड़ करने वाले लोगों के साथ, मैं सोच रहा हूं कि क्या यह सुविधा अच्छे से अधिक नुकसान नहीं करेगी ।
डैनियल

इसे बंद करने के बाद इसे फिर से सक्षम करने के लिए वैसे भी क्या है?
शौनकड़े

जवाबों:


38

यह बग नहीं है, यह एक विशेषता है।

जैसा कि एंथनी वोंग कहते हैं, जब आप एक डीकेएमएस पैकेज स्थापित करते हैं, तो आप पैकेज को स्वयं संकलित कर रहे हैं, इस प्रकार, कैननिकल आपके लिए मॉड्यूल पर हस्ताक्षर नहीं कर सकता है।

हालाँकि, आप निश्चित रूप से सुरक्षित बूट का उपयोग कर सकते हैं, हालाँकि यह वास्तव में उपयोग का मामला है जहाँ सुरक्षित बूट आपको अपने आप से बचाने की कोशिश कर रहा है क्योंकि यह नहीं जान सकता कि आप किसी मॉड्यूल पर भरोसा करते हैं या नहीं।

डिफ़ॉल्ट रूप से , आपके UEFI मशीन पर एक प्लेटफ़ॉर्म कुंजी (PK) है, जो आपके प्रोसेसर में कोड लोड करने के लिए अंततः विश्वसनीय प्रमाणपत्र प्राधिकरण है।

GRUB, या शिम, या अन्य बूट तंत्र डिजिटल रूप से एक KEK द्वारा हस्ताक्षरित किए जा सकते हैं जो रूट CA (PK) द्वारा विश्वसनीय है, और इस प्रकार आपका कंप्यूटर बिना किसी कॉन्फ़िगरेशन के बूट सॉफ्टवेयर जैसे Ubuntu Live USB / DVD।

उबंटू 16.04 पर कर्नेल CONFIG_MODULE_SIG_FORCE = 1 के साथ बनाया गया है, जिसका मतलब है कि कर्नेल मॉड्यूल को प्लेटफॉर्म में एक विश्वसनीय कुंजी द्वारा हस्ताक्षरित करने के लिए लागू करेगा । ध्यान रखें कि डिफ़ॉल्ट रूप से UEFI प्लेटफ़ॉर्म में एक PK होता है जिस पर आपका कोई नियंत्रण नहीं होता है, और इस प्रकार आप बायनेरिज़ को अपनी मशीन द्वारा मान्यता प्राप्त कुंजी के साथ साइन नहीं कर सकते हैं।

कुछ लोग इसके खिलाफ बकवास और शेखी बघारते हैं, लेकिन वास्तव में इससे बेहतर तरीका (सुरक्षा के नजरिए से) नहीं है, बल्कि खुद से है जो आप चाहते हैं कि नई कुंजी का नामांकन करें।

यदि आपका बूट सिस्टम शिम का उपयोग करता है, तो आप मशीन मालिक के कुंजी डेटाबेस नामक किसी चीज का उपयोग कर सकते हैं, और अपनी कुंजी को MOK के रूप में नामांकित कर सकते हैं (आप ऐसा कर सकते हैं mokutil के साथ)। यदि आप नहीं करते हैं, तो आप यूईएफआई डेटाबेस में अपनी कुंजी को एक हस्ताक्षर कुंजी के रूप में भी नामांकित कर सकते हैं ।

अपनी कुंजी दर्ज करने के बाद, आप अपने MOK के साथ अपने DKMS- निर्मित पैकेज पर हस्ताक्षर कर सकते हैं (इसमें एक पर्ल स्क्रिप्ट होनी चाहिए /usr/src/kernels/$(uname -r)/scripts/sign-file), और इसके हस्ताक्षरित होने के बाद, आप इसे कर्नेल में लोड कर सकते हैं

दी गई है, किसी को इस पर अधिक दृश्य निर्देश बनाने चाहिए, और संभवतया कुंजियों या एक बेहतर डीकेएमएस मानक भी बनाना चाहिए ताकि चाबियों को ध्यान में रखा जा सके, लेकिन अब हमारे पास यही है।

आप इस स्पष्टीकरण का उल्लेख अपने स्वयं के कर्नेल मॉड्यूल पर हस्ताक्षर करने के तरीके पर कर सकते हैं: https://askubuntu.com/a/768310/12049


1
मैंने इसे अक्षम कर दिया, और अब मुझे एक कष्टप्रद "असुरक्षित मोड संदेश में बूटिंग" मिल रही है "क्या इसको पूर्ववत करने के लिए वैसे भी है? मैं भी यहाँ मंचों पर इस मुद्दे को समझाने के लिए नहीं कर सकते। @ssice - मैं UBUNTU 14.04 का उपयोग कर रहा हूं इसलिए मुझे नहीं लगता कि यह मेरे लिए भी प्रासंगिक है। [
१18:१

20

संक्षेप में, यह एक बग नहीं है लेकिन 16.04 में पेश किया गया एक नया बदलाव है।

क्योंकि आप जो स्थापित कर रहे हैं वह एक dkms पैकेज है। DKMS मॉड्यूल आपकी स्वयं की मशीन पर संकलित किए जाते हैं और इसलिए Canonical आपके लिए मॉड्यूल पर हस्ताक्षर नहीं कर सकता है। यदि कैनोनिकल इस पर हस्ताक्षर नहीं कर सकता है, तो इसे डिजिटल रूप से सत्यापित करने का कोई तरीका नहीं है। यदि आपने सुरक्षित बूट चालू किया है, तो इसका मतलब है कि आपके मॉड्यूल का उपयोग नहीं किया जा सकता है, और इसका उपयोग करने के लिए, आपको सुरक्षित बूट बंद करना होगा, इसीलिए आपको प्रश्न पूछा जा रहा है।

यह केवल 16.04 में ही क्यों होता है, लेकिन पिछली रिलीज में नहीं, रॉड स्मिथ ने एक अच्छा जवाब दिया है। Ubuntu 16.04 में, Ubuntu कर्नेल स्तर तक सुरक्षित बूट लागू करना शुरू करता है। 16.04 से पहले, उबंटू वास्तव में आपको हस्ताक्षरित कर्नेल और हस्ताक्षरित कर्नेल मॉड्यूल का उपयोग करने के लिए लागू नहीं करता है, यहां तक ​​कि आपके पास सुरक्षित बूट चालू है। लेकिन 16.04 में ऐसा नहीं है।

यह संबंधित बग है: https://bugs.launchpad.net/ubuntu/+source/grub2/+bug8/141432

यह संबंधित ब्लूप्रिंट है: https://blueprints.launchpad.net/ubuntu/+spec/foundations-x-installing-unsigned-secureboot


मैं अभी भी 16.04 Beta2 और अपडेट के बाद wl मॉड्यूल को लोड कर सकता हूं। लेकिन अब रिलीज के साथ मुझे एक त्रुटि मिली "modprobe: ERROR: नहीं डाल सका 'wl': आवश्यक कुंजी उपलब्ध नहीं"
solsTiCe

क्या आप दौड़ने की कोशिश कर सकते हैं: सुडोल एप इंस्टॉल मोखुटिल; सूडो मोकुटिल
एंथनी वोंग

6

ऐसा करने का एक और तरीका है कि आप अपनी कुंजी बनाएं, सार्वजनिक भाग को MOK डेटाबेस में डालें और उन मॉड्यूल पर हस्ताक्षर करें जिन्हें आप निजी भाग के साथ संकलित करते हैं। विस्तृत जानकारी के लिए यहां देखें: उबंटू 16.04 में उन्नयन के बाद 'vboxdrv' लोड नहीं कर सका (और मैं सुरक्षित बूट रखना चाहता हूं)


1

स्वीकृत उत्तर बहुत पूरा है, लेकिन मैं इस सरल जानकारी को जोड़ना चाहूंगा, यहाँ से लिया गया है:

https://askubuntu.com/a/843678/664391

मूल रूप से सुरक्षित बूट आपको स्थापित किए गए कुछ ड्राइवर को लोड करने से रोक सकता है जो काफी निराशाजनक हो सकता है। मैं खुद इसके माध्यम से गया हूं: ड्राइवर ने सही ढंग से स्थापित किया, सब कुछ जाने के लिए अच्छा लग रहा था, लेकिन यह सिर्फ काम नहीं करता था। मुझे कुछ समय लगा कि यह सुरक्षित बूट था जो ओएस को लोड करने से रोक रहा था।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.