กระบวนการนี้จะป้องกันไม่ให้ซอฟต์แวร์ที่ไม่สามารถบูตได้ สิ่งนี้อาจมีประโยชน์แม้ว่าฉันจะมองไม่เห็นก็ตาม
คุณมีกลไกความปลอดภัยใหม่เพื่อควบคุมสิ่งที่สามารถและสิ่งที่ไม่สามารถบูตจากฮาร์ดแวร์ของคุณ คุณสมบัติด้านความปลอดภัย คุณไม่รู้สึกว่าคุณต้องการมันจนกระทั่งมันสายเกินไป แต่ฉันเชือนแช
ฉันได้อ่านเธรดในรายการส่งเมลของ Linux ที่พนักงาน Red Hat ขอให้ Linus Torvalds ดึงชุดการแก้ไขที่ใช้เครื่องมือแยกวิเคราะห์ไบนารี PE และดำเนินการชุดที่ซับซ้อนเพื่อให้เคอร์เนลบูตในโหมด Secure Boot (เท่าที่ฉันเข้าใจ )
ไดร์เวอร์เช่นเดียวกับ GPU ของคุณต้องลงชื่อเข้าใช้ด้วย Secure Boot มิฉะนั้นจะเป็นรูทคิทอื่นได้ สถานะที่เป็นอยู่คือไดรเวอร์เหล่านั้นถูกลงชื่อในรูปแบบ PE เคอร์เนลสามารถบูตโดยไม่มีสิ่งเหล่านั้นได้ แต่ฮาร์ดแวร์จะไม่ทำงาน การแยกวิเคราะห์รูปแบบ PE ในเคอร์เนลเป็นเพียงตัวเลือกที่ง่ายกว่าในทางเทคนิคสำหรับเรื่องนี้มากกว่าที่จะขอให้ผู้ค้าฮาร์ดแวร์ทุกรายเซ็นชื่อใน blobs สำหรับแต่ละ distro หรือตั้งค่าเฟรมเวิร์กสเปซผู้ใช้ให้ทำ ไลนัสตัดสินใจที่จะไม่ดูดกระเจี๊ยวของ Microsoft นั่นไม่ใช่ข้อโต้แย้งทางเทคนิค
ฉันจะได้รับประโยชน์อะไรบ้างเมื่อใช้ UEFI และ Secure Boot ในฐานะผู้ใช้ตามบ้าน
คุณสมบัติที่มองเห็นได้มากที่สุดคือการบูทเร็ว UEFI ฉันมีมือบนเดสก์ท็อปโลโก้ Windows 8 หลายตัวและพวกเขาบูตอย่างรวดเร็วจนฉันมักจะพลาดการเปิดเมนูบูต Intel และ OEM ได้รับวิศวกรรมมาบ้าง
หากคุณเป็นประเภทของผู้ใช้ลินุกซ์ที่เกลียดbloatednessและการทำสำเนารหัสด้วยความรักที่คุณอาจต้องการที่จะจัดการ multiboot ในระดับเฟิร์มและกำจัด bootloaders โดยสิ้นเชิง UEFI มีตัวจัดการการบู๊ตซึ่งคุณสามารถบู๊ตเข้าเคอร์เนลได้โดยตรงหรือเลือกที่จะบู๊ตระบบปฏิบัติการอื่นด้วยเมนูเฟิร์มแวร์ แม้ว่ามันอาจต้องมีการซ่อมแซม
นอกจากนี้กราฟิกนักเล่นในระหว่างเวลาบูตและในเมนูเฟิร์ม ความปลอดภัยที่ดีขึ้นระหว่างการบู๊ต (Secure Boot) คุณสมบัติอื่น ๆ (IPv4 / 6 netboot, อุปกรณ์บูต 2TB + ฯลฯ ) ส่วนใหญ่มีไว้สำหรับผู้ใช้ระดับองค์กร
อย่างไรก็ตามตามที่ Linus กล่าวว่า BIOS / UEFI ควรจะ "เพียงแค่โหลดระบบปฏิบัติการและกำจัดสิ่งชั่วร้ายออกไปจากที่นั่น" และ UEFI ก็จะปรากฏขึ้นเช่นนั้นสำหรับผู้ใช้ตามบ้านที่บูตเร็ว มันทำอะไรได้มากกว่า BIOS ใต้ฝากระโปรง แต่ถ้าเราพูดถึงผู้ใช้ที่บ้านพวกเขาจะไม่สนใจเรื่องนั้น
การเซ็นชื่อนี้ทำได้อย่างไร
ในทางทฤษฎีไบนารีจะถูกเข้ารหัสด้วยไพรเวตคีย์เพื่อสร้างลายเซ็น จากนั้นลายเซ็นสามารถตรวจสอบได้ด้วยกุญแจสาธารณะเพื่อพิสูจน์ว่าไบนารีได้รับการลงนามโดยเจ้าของกุญแจส่วนตัวจากนั้นตรวจสอบไบนารี ดูเพิ่มเติมเกี่ยวกับ Wikipediaดูข้อมูลเพิ่มเติมเกี่ยวกับวิกิพีเดีย
ในทางเทคนิคเฉพาะแฮชของไบนารีเท่านั้นที่ถูกเซ็นชื่อและลายเซ็นต์จะถูกฝังอยู่ในไบนารี่ที่มีรูปแบบ PE และทวีคูณรูปแบบเพิ่มเติม
โดยทั่วไป OEM ของคุณจะถูกจัดเก็บไว้ในเฟิร์มแวร์ของคุณและมาจาก Microsoft คุณมีสองทางเลือก:
- สร้างคู่กุญแจของคุณเองและจัดการอย่างปลอดภัยติดตั้งกุญแจสาธารณะของคุณเองไปที่เฟิร์มแวร์และลงนามไบนารีด้วยรหัสส่วนตัวของคุณเอง ( sbsignจาก Ubuntu หรือการออกแบบจาก Fedora) หรือ
- ส่งไบนารี่ของคุณไปที่ Microsoft และให้พวกเขาเซ็นมัน
ใครสามารถรับลายเซ็น / ใบรับรองได้บ้าง มันจะจ่ายหรือไม่ เป็นสาธารณะหรือไม่? (ควรมีอยู่ในซอร์สโค้ดของ Linux ใช่ไหม)
เนื่องจากลายเซ็น / ใบรับรองฝังอยู่ในไบนารีผู้ใช้ทั้งหมดจึงต้องได้รับ ทุกคนสามารถตั้งค่า CA ของตนเองและสร้างใบรับรองด้วยตนเอง แต่ถ้าคุณต้องการให้ Microsoft สร้างใบรับรองให้กับคุณคุณต้องผ่าน Verisign เพื่อยืนยันตัวตนของคุณ กระบวนการนี้มีค่าใช้จ่าย $ 99 รหัสสาธารณะอยู่ในเฟิร์มแวร์ คีย์ส่วนตัวอยู่ในที่ปลอดภัยของ Microsoft ใบรับรองอยู่ในไบนารีที่ลงนามแล้ว ไม่มีซอร์สโค้ดเกี่ยวข้อง
Microsoft เป็นผู้ให้สิทธิ์ในการจัดเตรียมลายเซ็นเท่านั้น ไม่ควรมีรากฐานที่เป็นอิสระที่จะให้พวกเขา?
ด้านเทคนิคค่อนข้างเล็กน้อยเมื่อเทียบกับกระบวนการจัดการ PKI การยืนยันตัวตนการประสานงานกับ OEM และผู้จำหน่ายฮาร์ดแวร์ที่รู้จัก ค่าใช้จ่ายนี้ที่รัก Microsoft มีโครงสร้างพื้นฐาน (WHQL) และมีประสบการณ์มานานหลายปี ดังนั้นพวกเขาจึงเสนอให้ลงชื่อไบนารี รากฐานที่เป็นอิสระทุกคนสามารถก้าวขึ้นไปเสนอสิ่งเดียวกัน แต่ก็ยังไม่มีใครทำมาก่อน
จากเซสชัน UEFI ที่ IDF 2013 ฉันเห็น Canonical ได้เริ่มใส่รหัสของตัวเองลงในเฟิร์มแวร์แท็บเล็ต ดังนั้น Canonical สามารถลงชื่อไบนารีของตนเองโดยไม่ต้องผ่าน Microsoft แต่พวกเขาไม่น่าจะเซ็นไบนารีให้คุณเพราะพวกเขาไม่รู้ว่าคุณเป็นใคร
สิ่งนี้จะส่งผลกระทบต่อโอเพ่นซอร์สและเคอร์เนลฟรีนักพัฒนางานอดิเรก / นักพัฒนาเคอร์เนลเป็นต้น
เคอร์เนลที่สร้างขึ้นเองของคุณจะไม่บูตภายใต้ Secure Boot เนื่องจากไม่ได้ลงชื่อ คุณสามารถปิดได้
รูปแบบความน่าเชื่อถือของ Secure Boot ล็อคบางแง่มุมของเคอร์เนล เช่นเดียวกับคุณไม่สามารถทำลายเคอร์เนลของคุณได้โดยเขียนถึง / dev / kmem แม้ว่าคุณจะรูทแล้วก็ตาม คุณไม่สามารถจำศีลในดิสก์ได้ (กำลังทำงานแบบสตรีม) เนื่องจากไม่มีวิธีที่จะทำให้แน่ใจว่าภาพเคอร์เนลจะไม่เปลี่ยนเป็น bootkit เมื่อทำงานต่อ คุณไม่สามารถถ่ายโอนข้อมูลหลักเมื่อเคอร์เนลของคุณตื่นตระหนกเนื่องจากกลไกของ kdump (kexec) สามารถใช้ในการบูต bootkit (เช่นเดียวกับที่ทำงานด้วยอัปสตรีม) สิ่งเหล่านี้เป็นข้อถกเถียงและไม่ได้รับการยอมรับจาก Linus ในเคอร์เนลที่ฉีดยา แต่มี distros (Fedora, RHEL, Ubuntu, openSUSE, SUSE) ที่มาพร้อมกับ Secure Boot patches ของพวกเขาเอง
โดยส่วนตัวแล้วการเซ็นชื่อโมดูลที่จำเป็นสำหรับการสร้างเคอร์เนล Secure Boot มีค่าใช้จ่าย 10 นาทีในขณะที่การรวบรวมจริงใช้เวลาเพียง 5 นาที ถ้าฉันปิดการเซ็นโมดูลและเปิด ccache การสร้างเคอร์เนลใช้เวลาเพียงหนึ่งนาที
UEFI เป็นเส้นทางบูตที่แตกต่างอย่างสิ้นเชิงจาก BIOS รหัสการบู๊ต BIOS ทั้งหมดจะไม่ถูกเรียกโดยเฟิร์มแวร์ UEFI
กลุ่มผู้ใช้ลีนุกซ์สเปนชื่อ Hispalinux ได้ยื่นเรื่องร้องเรียนต่อ Microsoft เกี่ยวกับเรื่องนี้ต่อ Europan Comission
อย่างที่กล่าวไว้ข้างต้นไม่มีใครยกเว้น Microsoft ได้ก้าวขึ้นมาทำหน้าที่บริการสาธารณะ ขณะนี้ยังไม่มีหลักฐานแสดงความตั้งใจของ Microsoft ในการทำสิ่งชั่วร้ายใด ๆ กับสิ่งนี้ แต่ยังไม่มีสิ่งใดที่จะป้องกันไม่ให้ Microsoft ละเมิดการผูกขาดโดยพฤตินัยและดำเนินการอย่างมีประสิทธิภาพ ดังนั้นในขณะที่กลุ่มผู้ใช้ FSF และ Linux อาจไม่ได้ดูจริงจังและไม่ได้นั่งลงเพื่อแก้ไขปัญหาอย่างสร้างสรรค์ แต่ก็มีคนจำเป็นต้องกดดัน Microsoft และเตือนเกี่ยวกับผลกระทบที่เกิดขึ้น
ฉันควรจะกังวลหรือไม่ ฉันปฏิเสธที่จะใช้ซอฟต์แวร์ที่เป็นกรรมสิทธิ์หรือซอฟต์แวร์ที่ลงนามโดย บริษัท ที่เชื่อถือได้ ฉันได้ทำจนถึงตอนนี้และฉันต้องการที่จะดำเนินการต่อไป
เหตุผลที่ควรยอมรับ Secure Boot:
- มันกำจัดเวกเตอร์การโจมตีความปลอดภัยที่แท้จริง
- มันเป็นกลไกทางเทคนิคเพื่อให้ผู้ใช้มีอิสระมากขึ้นในการควบคุมฮาร์ดแวร์ของพวกเขา
- ผู้ใช้ Linux ต้องเข้าใจกลไก Boot การรักษาความปลอดภัยและการกระทำในเชิงรุกก่อนที่ไมโครซอฟท์ได้รับมากเกินไปในการผูกขาดของการรักษาความปลอดภัย Boot นโยบาย
UEFI
ตัวเองไม่ได้เป็นปัญหามากนัก แต่การบู๊ตอย่างปลอดภัยอาจเป็นไปได้