Lennart Pottering เสนอสถาปัตยกรรมการบูตที่ได้รับการตรวจสอบใหม่สำหรับ Linux

Lennart Poettering ได้เผยแพร่ข้อเสนอเพื่อปรับปรุงกระบวนการบูตสำหรับการกระจาย Linux ให้ทันสมัย ​​โดยมีวัตถุประสงค์เพื่อแก้ไขปัญหาที่มีอยู่และลดความซับซ้อนของการจัดระเบียบของการบูตที่ได้รับการตรวจสอบเต็มรูปแบบซึ่งยืนยันความน่าเชื่อถือของเคอร์เนลและสภาพแวดล้อมของระบบพื้นฐาน การเปลี่ยนแปลงที่จำเป็นในการใช้สถาปัตยกรรมใหม่รวมอยู่ใน systemd codebase แล้ว และส่งผลต่อส่วนประกอบต่างๆ เช่น systemd-stub, systemd-measure, systemd-cryptenroll, systemd-cryptsetup, systemd-pcrphase และ systemd-creds

การเปลี่ยนแปลงที่เสนอนั้นเกิดขึ้นที่การสร้างอิมเมจสากลเดียว UKI (Unified Kernel Image) ซึ่งรวมอิมเมจเคอร์เนล Linux ตัวจัดการสำหรับการโหลดเคอร์เนลจาก UEFI (UEFI boot stub) และสภาพแวดล้อมระบบ initrd ที่โหลดลงในหน่วยความจำที่ใช้สำหรับ การเริ่มต้นเบื้องต้นในขั้นตอนก่อนที่จะติดตั้งรูท FS แทนที่จะใช้ดิสก์อิมเมจ RAM เริ่มต้น ระบบทั้งหมดสามารถบรรจุใน UKI ได้ ซึ่งช่วยให้คุณสามารถสร้างสภาพแวดล้อมระบบที่ได้รับการตรวจสอบอย่างสมบูรณ์ที่โหลดลงใน RAM อิมเมจ UKI ได้รับการฟอร์แมตเป็นไฟล์ปฏิบัติการในรูปแบบ PE ซึ่งสามารถโหลดได้ไม่เพียงแค่ใช้โปรแกรมโหลดบูตแบบเดิมเท่านั้น แต่ยังเรียกได้โดยตรงจากเฟิร์มแวร์ UEFI

ความสามารถในการโทรจาก UEFI ช่วยให้คุณใช้การตรวจสอบความสมบูรณ์ของลายเซ็นดิจิทัลที่ครอบคลุมไม่เพียงแต่เคอร์เนลเท่านั้น แต่ยังรวมถึงเนื้อหาของ initrd ด้วย ในเวลาเดียวกันการสนับสนุนการโทรจาก bootloaders แบบดั้งเดิมช่วยให้คุณรักษาคุณสมบัติเช่นการส่งมอบเคอร์เนลหลายเวอร์ชันและการย้อนกลับอัตโนมัติไปยังเคอร์เนลที่ใช้งานได้หากตรวจพบปัญหากับเคอร์เนลใหม่หลังจากติดตั้งการอัปเดต

ในปัจจุบัน ในการกระจาย Linux ส่วนใหญ่ กระบวนการเริ่มต้นจะใช้เชน “เฟิร์มแวร์ → เลเยอร์ชิม Microsoft ที่ลงนามแบบดิจิทัล → ตัวโหลดบูต GRUB ที่ลงนามแบบดิจิทัลโดยการแจกจ่าย → เคอร์เนล Linux ที่ลงนามแบบดิจิทัล → สภาพแวดล้อม initrd ที่ไม่ได้ลงนาม → รูท FS” การขาดการตรวจสอบเบื้องต้นในการแจกแจงแบบดั้งเดิมทำให้เกิดปัญหาด้านความปลอดภัย เนื่องจากในสภาพแวดล้อมนี้คีย์สำหรับการถอดรหัสระบบไฟล์รูทจะถูกดึงออกมา

ไม่สนับสนุนการตรวจสอบอิมเมจ initrd เนื่องจากไฟล์นี้สร้างขึ้นบนระบบภายในเครื่องของผู้ใช้ และไม่สามารถรับรองด้วยลายเซ็นดิจิทัลของชุดการแจกจ่าย ซึ่งทำให้การจัดระเบียบการตรวจสอบยุ่งยากอย่างมากเมื่อใช้โหมด SecureBoot (เพื่อตรวจสอบ initrd, ผู้ใช้จำเป็นต้องสร้างคีย์ของตนเองและโหลดลงในเฟิร์มแวร์ UEFI) นอกจากนี้ องค์กรการบูตปัจจุบันไม่อนุญาตให้ใช้ข้อมูลจากการลงทะเบียน TPM PCR (Platform Configuration Register) เพื่อควบคุมความสมบูรณ์ของส่วนประกอบพื้นที่ผู้ใช้นอกเหนือจาก shim, grub และเคอร์เนล ในบรรดาปัญหาที่มีอยู่ มีการกล่าวถึงความซับซ้อนในการอัปเดต bootloader และการไม่สามารถจำกัดการเข้าถึงคีย์ใน TPM สำหรับระบบปฏิบัติการเวอร์ชันเก่าที่ไม่เกี่ยวข้องหลังจากติดตั้งการอัปเดตด้วย

เป้าหมายหลักของการแนะนำสถาปัตยกรรมการโหลดใหม่คือ:

  • ให้กระบวนการบู๊ตที่ได้รับการตรวจสอบอย่างครบถ้วนซึ่งครอบคลุมตั้งแต่เฟิร์มแวร์ไปจนถึงพื้นที่ผู้ใช้ เพื่อยืนยันความถูกต้องและความสมบูรณ์ของส่วนประกอบที่กำลังบู๊ต
  • การเชื่อมโยงทรัพยากรที่ได้รับการควบคุมกับการลงทะเบียน TPM PCR โดยแยกจากเจ้าของ
  • ความสามารถในการคำนวณค่า PCR ล่วงหน้าตามเคอร์เนล, initrd, การกำหนดค่า และ ID ระบบภายในเครื่องที่ใช้ระหว่างการบู๊ต
  • การป้องกันการโจมตีแบบย้อนกลับที่เกี่ยวข้องกับการย้อนกลับไปยังเวอร์ชันก่อนหน้าของระบบที่มีช่องโหว่
  • ลดความซับซ้อนและเพิ่มความน่าเชื่อถือของการอัพเดต
  • รองรับการอัปเดตระบบปฏิบัติการที่ไม่จำเป็นต้องมีแอปพลิเคชันใหม่หรือการเตรียมทรัพยากรที่มีการป้องกัน TPM ภายในเครื่อง
  • ระบบพร้อมสำหรับการรับรองระยะไกลเพื่อยืนยันความถูกต้องของระบบปฏิบัติการและการตั้งค่าที่โหลด
  • ความสามารถในการแนบข้อมูลที่ละเอียดอ่อนกับขั้นตอนการบูตบางขั้นตอน เช่น การแยกคีย์การเข้ารหัสสำหรับระบบไฟล์รูทจาก TPM
  • มอบกระบวนการที่ปลอดภัย อัตโนมัติ และไม่ต้องใช้ผู้ใช้ในการปลดล็อคคีย์เพื่อถอดรหัสไดรฟ์พาร์ติชั่นรูท
  • การใช้ชิปที่รองรับข้อกำหนด TPM 2.0 โดยมีความสามารถในการย้อนกลับไปยังระบบที่ไม่มี TPM

ที่มา: opennet.ru

เพิ่มความคิดเห็น