พวกเขาตรวจพบช่องโหว่ใน AMD SEV ซึ่งอนุญาตให้กำหนดคีย์การเข้ารหัส

เอเอ็มดี SEV

นักพัฒนาของทีม Google Cloud ได้ระบุช่องโหว่ (CVE-2019-9836) ในการนำเทคโนโลยี AMD SEV (การจำลองเสมือนที่เข้ารหัสอย่างปลอดภัย) ซึ่งสามารถทำลายข้อมูลที่ได้รับการปกป้องด้วยเทคโนโลยีนี้

AMD SEV ในระดับฮาร์ดแวร์e ให้การเข้ารหัสหน่วยความจำแบบโปร่งใสของเครื่องเสมือน โดยที่ระบบเกสต์ในปัจจุบันเท่านั้นที่สามารถเข้าถึงข้อมูลที่ถอดรหัสได้ในขณะที่เครื่องเสมือนและไฮเปอร์ไวเซอร์ที่เหลือจะได้รับชุดข้อมูลที่เข้ารหัสเมื่อเข้าถึงหน่วยความจำนี้

ปัญหาที่ระบุช่วยให้สามารถกู้คืนเนื้อหาของคีย์ส่วนตัว PDH ได้อย่างสมบูรณ์ ซึ่งได้รับการประมวลผลในระดับของโปรเซสเซอร์ PSP (AMD Security Processor) ที่ได้รับการป้องกันเพียงตัวเดียวซึ่งไม่มีให้สำหรับระบบปฏิบัติการหลัก

เมื่อมีคีย์ PDH ผู้โจมตีสามารถกู้คืนคีย์เซสชันและลำดับความลับได้ ระบุเมื่อสร้างเครื่องเสมือนและเข้าถึงข้อมูลที่เข้ารหัส

ช่องโหว่นี้เกิดจากข้อบกพร่องในการนำเส้นโค้งรูปไข่มาใช้ (ECC) ใช้สำหรับการเข้ารหัสซึ่งอนุญาตให้โจมตีเพื่อเรียกคืนพารามิเตอร์ของเส้นโค้ง

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

การใช้ Elliptical Curve (ECC) ของ SEV พบว่าเสี่ยงต่อการโจมตีเส้นโค้งที่ไม่ถูกต้อง ที่คำสั่ง boot start ผู้โจมตีสามารถส่ง

จุด ECC คำสั่งขนาดเล็กไม่ได้อยู่ในเส้นโค้ง NIST อย่างเป็นทางการและบังคับให้เฟิร์มแวร์ SEV คูณจุดสั่งซื้อเล็ก ๆ โดย DH ส่วนตัวของเฟิร์มแวร์สเกลาร์

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

ความปลอดภัยของโปรโตคอล ECDH ขึ้นอยู่กับลำดับของจุดเริ่มต้นที่สร้างขึ้นโดยตรง ของเส้นโค้งซึ่งลอการิทึมแบบไม่ต่อเนื่องเป็นงานที่ซับซ้อนมาก

ในขั้นตอนหนึ่งในการเริ่มต้นสภาพแวดล้อม AMD SEV พารามิเตอร์ที่ได้รับจากผู้ใช้จะถูกใช้ในการคำนวณด้วยคีย์ส่วนตัว

โดยพื้นฐานแล้วการดำเนินการคูณสองจุดจะดำเนินการซึ่งหนึ่งในนั้นสอดคล้องกับคีย์ส่วนตัว

หากจุดที่สองอ้างถึงจำนวนเฉพาะลำดับต่ำผู้โจมตีสามารถกำหนดพารามิเตอร์ของจุดแรก (บิตของโมดูโลที่ใช้ในการดำเนินการโมดูโลการยกกำลัง) โดยแสดงรายการค่าที่เป็นไปได้ทั้งหมด สามารถรวมส่วนของจำนวนเฉพาะที่เลือกไว้เพื่อกำหนดคีย์ส่วนตัวโดยใช้ทฤษฎีบทภาษาจีนเกี่ยวกับเศษเหลือ

การโจมตีเส้นโค้งที่ไม่ถูกต้องคือการคูณจุด ECDH บนเส้นโค้งที่แตกต่างกัน - พารามิเตอร์ที่แตกต่างกัน (a, b) สิ่งนี้เกิดขึ้นได้ในฟังก์ชันผลรวมคะแนน Weierstrass แบบสั้นเนื่องจากไม่ได้ใช้พารามิเตอร์ "b"

บนเส้นโค้งนี้จุดจะมีลำดับหลักเล็ก ๆ เมื่อลองใช้ค่าที่เป็นไปได้ทั้งหมดสำหรับจุดสั่งซื้อขนาดเล็กผู้โจมตีสามารถดึงบิตสเกลาร์ส่วนตัว (ปรับเปลี่ยนลำดับ)

แพลตฟอร์มเซิร์ฟเวอร์ AMD EPYC ที่ใช้เฟิร์มแวร์ SEV จนถึงเวอร์ชัน 0.17 build 11 เป็นปัญหา

AMD ได้ออกอัพเดตเฟิร์มแวร์แล้วซึ่งได้เพิ่มการล็อคการใช้จุดที่ไม่ตรงกับเส้นโค้ง NIST

ในขณะเดียวกันใบรับรองที่สร้างขึ้นก่อนหน้านี้สำหรับคีย์ PDH ยังคงถูกต้องทำให้ผู้โจมตีสามารถโจมตีการย้ายเครื่องเสมือนจากสภาพแวดล้อมที่ได้รับการป้องกันจากช่องโหว่ของผู้ที่อาจเกิดปัญหา

นอกจากนี้ยังมีการกล่าวถึงความเป็นไปได้ในการโจมตีย้อนกลับในเวอร์ชันเฟิร์มแวร์ของเวอร์ชันที่มีช่องโหว่ก่อนหน้านี้ด้วย แต่คุณสมบัตินี้ยังไม่ได้รับการยืนยัน

Fuente: https://seclists.org/


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา