Project Zero วิเคราะห์ระบบสร้างค่าสุ่มของเคอร์เนลลินุกซ์ และพบว่าอ่อนแอกว่าที่ออกแบบไว้อย่างมากเมื่อผู้ใช้เริ่มขอค่าสุ่มตั้งแต่ระบบเริ่มบูตใหม่ๆ
ปัญหาหนึ่งคือมีการล้างค่าเริ่มต้นการสุ่มออกเมื่อเริ่มต้นระบบสร้างค่าสุ่ม และผู้ใช้ส่วนมากก็ไม่ได้รอให้ระบบบูตไปนานเพียงพอ แต่เริ่มขอค่าสุ่มทันทีที่ ฟังก์ชั่น crng_ready() เป็นจริง แต่ฟังก์ชั่นนี้มีข้อจำกัดที่หลายกรณีกลับไม่ได้เตรียมค่าสุ่มไว้เพียงพอ โดยตรวจเพียงว่าแหล่งเริ่มต้นค่าสุ่มนั้นได้รับมาครบ 64 ไบต์หรือไม่ โดยแหล่งเริ่มต้นค่าสุ่มได้แก่ ตาราง DMI, อาร์กิวเมนต์คำสั่งเคอร์เนล, ค่า MAC, หมายเลข USB ในบางกรณีการอ่านค่าจากตาราง DMI อย่างเดียวก็มีขนาดเกิน 64 ไบต์ ทำให้ระบบคิดว่าค่าสุ่มปลอดภัยแล้ว แต่ในความเป็นจริงค่าสุ่มกลับยังไม่ปลอดภัยเพียงพอ
ทางผู้ดูแลเคอร์เนลปรับแก้โค้ดใน git แล้ว โดยเพิ่มความรัดกุมใน crng_ready() ให้สูงขึ้น อย่างไรก็ดี การโจมตีในระบบใหม่ๆ อาจจะจำกัดพอสมควร เพราะระบบใหม่ๆ มักเปิด ASLR ซึ่งทำให้มีอินเทอร์รัปต์สร้างความสุ่มให้ระบบ, มีคำสั่ง RDRAND ที่ดึงค่าสุ่มที่แท้จริง (True Random Number Generator - TRNG) เป็นฮาร์ดแวร์, ตลอดจนความร้อนในห้องและการปรับความเร็วซีพียูล้วนเพิ่มความสุ่มได้ทั้งสิ้น
ที่มา - Project Zero
on
--Project Zero
shayennn Wed, 02/05/2018 - 19:46
Project Zero รายงานค่าสู่ของลินุกซ์ช่วงเริ่มบูตไม่ปลอดภัย เป็นหนักในรุ่น 4.14 ขึ้นมา => Project Zero รายงานค่าสุ่มของลินุกซ์ช่วงเริ่มบูตไม่ปลอดภัย เป็นหนักในรุ่น 4.14 ขึ้นมา
ผมงงตรงย่อหน้าที่ 3
big50000 Wed, 02/05/2018 - 19:50
ผมงงตรงย่อหน้าที่ 3 บรรทัดสุดท้าย
ตลอดจนความร้อนในห้องและการปรั
panurat2000 Thu, 03/05/2018 - 14:07
In reply to ผมงงตรงย่อหน้าที่ 3 by big50000
เพิ่มความสุ่ม ?
เพิ่มความสุ่ม ->
hisoft Thu, 03/05/2018 - 15:14
In reply to ตลอดจนความร้อนในห้องและการปรั by panurat2000
เพิ่มความสุ่ม -> เพิ่มความมั่วของการสุ่ม
Project Zero รายงานค่าสู่
nant Wed, 02/05/2018 - 22:13
Project Zero รายงานค่าสู่
ค่าสู่ -> ค่าสุ่ม