นอกเหนือจาก Jason Donenfeld กำลังยุ่งอยู่กับผู้นำ WireGuard ยังคงทำงานอย่างหนักกับโค้ดตัวสร้างตัวเลขสุ่ม (RNG) ของเคอร์เนล Linux สำหรับ Linux 6.0 การปรับปรุง RNG จำนวนหนึ่งพร้อมแล้ว

สำหรับเวอร์ชันถัดไปของเคอร์เนล Linux นี้ การทดสอบเวลาบูต x86 RdRand ได้รับการทำให้มีประสิทธิภาพมากขึ้นในการพิจารณาว่าจะปิดใช้งานการใช้ส่วนขยายนี้หรือไม่หากพบว่ามีข้อผิดพลาด ตัวเลือก”nordrand”และ”CONFIG_ARCH_RANDOM”ลดลงเพื่อสนับสนุนตัวเลือก”random.trust_cpu”และ”CONFIG_RANDOM_TRUST_CPU”และการปรับปรุง RNG อื่นๆ

Donenfeld ที่น่าตื่นเต้นที่สุดด้วยการเปลี่ยนแปลง Linux 6.0 RNG คือกลไกสำหรับ bootloaders, hypervisor และ Kexec เพื่อส่งเมล็ดพันธุ์แบบสุ่มไปยังเคอร์เนลเพื่อเริ่มต้นตัวสร้างตัวเลขสุ่ม เขาอธิบายในคำขอดึง:

บน x86 และ m68k ขณะนี้มีกลไกสำหรับ bootloaders ไฮเปอร์ไวเซอร์ และ kexec เพื่อส่งเมล็ดพันธุ์แบบสุ่มไปยังเคอร์เนลเพื่อเริ่มต้น RNG กลไกเฉพาะของแพลตฟอร์มเหล่านี้ไม่จริงในดึงนี้ แต่จะมาจากทรี x86 และทรี m68k แต่ก็ควรค่าแก่การกล่าวถึง

สถาปัตยกรรมแบบผังอุปกรณ์ของอุปกรณ์มีความสามารถนี้ตั้งแต่ปี 2019 ผ่านพารามิเตอร์”rng-seed”ที่มีการใช้งานน้อยใน FDT และ EFI มีสิ่งที่คล้ายกันมาตั้งแต่ปี 2016 แต่แพลตฟอร์มที่ไม่มีทั้ง FDT และ EFI ถูกละเลย.

การเปลี่ยนแปลงเหล่านี้สอดคล้องกับงานที่เกี่ยวข้องใน QEMU ซึ่งกำหนดไว้สำหรับการเปิดตัวใน 7.1 เช่นเดียวกับใน kexec-tools ซึ่งเพิ่มการรองรับกลไก bootloader RNG ของ bootloader ทั้งรุ่นใหม่สำหรับ x86 และ m68k เช่น และในที่สุดก็ใช้พารามิเตอร์ FDT”rng-seed”บนแพลตฟอร์มที่เกี่ยวข้องที่ขาดหายไป

เมื่อนำมารวมกัน สิ่งเหล่านี้แสดงถึงขั้นตอนเล็กๆ ในการขจัดปัญหาเอนโทรปีเวลาบูต อย่างน้อยก็จากมุมมองของเคอร์เนล โดยการจัดเตรียมวิธีการในการส่งต่อความรับผิดชอบไปยังระดับของเชน เห็นได้ชัดว่าไฮเปอร์ไวเซอร์และ kexec อยู่ในตำแหน่งที่ยอดเยี่ยมในการจัดเตรียมสิ่งนี้ นั่นคือเหตุผลที่ฉันได้เพิ่มมันเข้าไปก่อน แต่ยังเปิดโอกาสให้ bootloaders จัดการไฟล์ seed ได้อย่างปลอดภัย เช่นเดียวกับที่เคยทำกับ BSD และระบบปฏิบัติการอื่นๆ มาเป็นเวลานาน และเฟิร์มแวร์ arm64 บางตัวก็ให้บริการสิ่งนี้ผ่านพารามิเตอร์”rng-seed”FDT แล้ว

รายละเอียดเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลง RNG สำหรับรอบเคอร์เนล Linux 6.0 ผ่าน คำขอดึงนี้

Categories: IT Info