ช่องโหว่ในชิป Qualcomm ที่อนุญาตให้แยกคีย์ส่วนตัวออกจากที่เก็บข้อมูล TrustZone

นักวิจัยจากกลุ่ม ป.ป.ช เปิดเผย รายละเอียด ช่องโหว่ (CVE-2018-11976) ในชิป Qualcomm ซึ่งช่วยให้คุณกำหนดเนื้อหาของคีย์การเข้ารหัสส่วนตัวที่อยู่ในเครือข่าย Qualcomm QSEE (Qualcomm Secure Execution Environment) ที่แยกออกมา โดยใช้เทคโนโลยี ARM TrustZone ปัญหาก็ปรากฏอยู่ใน มากที่สุด Snapdragon SoC ซึ่งแพร่หลายในสมาร์ทโฟนที่ใช้แพลตฟอร์ม Android การแก้ไขที่แก้ไขปัญหามีอยู่แล้ว รวมอยู่ด้วย ในการอัปเดต Android เดือนเมษายนและเฟิร์มแวร์ใหม่สำหรับชิป Qualcomm Qualcomm ใช้เวลามากกว่าหนึ่งปีในการเตรียมการแก้ไข ข้อมูลเกี่ยวกับช่องโหว่ดังกล่าวถูกส่งไปยัง Qualcomm ในตอนแรกเมื่อวันที่ 19 มีนาคม 2018

ให้เราระลึกว่าเทคโนโลยี ARM TrustZone ช่วยให้คุณสร้างสภาพแวดล้อมการป้องกันแบบแยกฮาร์ดแวร์ซึ่งแยกออกจากระบบหลักโดยสิ้นเชิงและทำงานบนโปรเซสเซอร์เสมือนแยกต่างหากโดยใช้ระบบปฏิบัติการพิเศษแยกต่างหาก วัตถุประสงค์หลักของ TrustZone คือเพื่อให้การประมวลผลแบบแยกส่วนสำหรับคีย์การเข้ารหัส การรับรองความถูกต้องทางชีวภาพ ข้อมูลการชำระเงิน และข้อมูลลับอื่น ๆ การโต้ตอบกับระบบปฏิบัติการหลักนั้นดำเนินการทางอ้อมผ่านอินเทอร์เฟซการจัดส่ง คีย์เข้ารหัสส่วนตัวจะถูกจัดเก็บไว้ในที่เก็บคีย์ที่แยกด้วยฮาร์ดแวร์ ซึ่งหากนำไปใช้อย่างถูกต้อง จะสามารถป้องกันการรั่วไหลได้หากระบบที่ซ่อนอยู่ถูกบุกรุก

ช่องโหว่นี้เกิดจากข้อบกพร่องในการใช้อัลกอริธึมการประมวลผลแบบวงรี ซึ่งนำไปสู่การรั่วไหลของข้อมูลเกี่ยวกับความคืบหน้าของการประมวลผลข้อมูล นักวิจัยได้พัฒนาเทคนิคการโจมตีช่องทางด้านข้างที่ช่วยให้สามารถใช้การรั่วไหลทางอ้อมที่มีอยู่เพื่อกู้คืนเนื้อหาของคีย์ส่วนตัวที่อยู่ในฮาร์ดแวร์ที่แยกได้ ที่เก็บคีย์ Android. การรั่วไหลถูกกำหนดโดยอิงจากการวิเคราะห์กิจกรรมของบล็อกการคาดการณ์สาขาและการเปลี่ยนแปลงเวลาในการเข้าถึงข้อมูลในหน่วยความจำ ในการทดลอง นักวิจัยได้สาธิตการกู้คืนคีย์ ECDSA 224 และ 256 บิตจากที่เก็บคีย์แยกฮาร์ดแวร์ที่ใช้ในสมาร์ทโฟน Nexus 5X ได้สำเร็จ การกู้คืนคีย์ที่จำเป็นในการสร้างลายเซ็นดิจิทัลประมาณ 12 ลายเซ็น ซึ่งใช้เวลานานกว่า 14 ชั่วโมง เครื่องมือที่ใช้ในการโจมตี แคชแกร็บ.

สาเหตุหลักของปัญหาคือการแชร์ส่วนประกอบฮาร์ดแวร์ทั่วไปและแคชสำหรับการคำนวณใน TrustZone และในระบบหลัก - การแยกจะดำเนินการที่ระดับการแยกเชิงตรรกะ แต่ใช้หน่วยประมวลผลทั่วไปและมีร่องรอยของการคำนวณและข้อมูลเกี่ยวกับสาขา ที่อยู่ที่ถูกฝากไว้ในแคชตัวประมวลผลทั่วไป การใช้วิธี Prime+Probe ขึ้นอยู่กับการประเมินการเปลี่ยนแปลงเวลาในการเข้าถึงข้อมูลที่แคช เป็นไปได้โดยการตรวจสอบการมีอยู่ของรูปแบบบางอย่างในแคช เพื่อตรวจสอบการไหลของข้อมูลและสัญญาณของการดำเนินการโค้ดที่เกี่ยวข้องกับการคำนวณลายเซ็นดิจิทัลใน TrustZone มีความแม่นยำสูงพอสมควร

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

ในกรณีของ Qualcomm มีการระบุสถานที่สองแห่งที่มีการรั่วไหลของข้อมูลดังกล่าวในอัลกอริธึมการคูณ: เมื่อดำเนินการค้นหาในตาราง และในรหัสเรียกค้นข้อมูลแบบมีเงื่อนไขตามค่าของบิตสุดท้ายในเวกเตอร์ "nonce" แม้ว่ารหัส Qualcomm จะมีมาตรการเพื่อต่อต้านการรั่วไหลของข้อมูลผ่านช่องทางของบุคคลที่สาม แต่วิธีการโจมตีที่พัฒนาขึ้นช่วยให้คุณสามารถข้ามมาตรการเหล่านี้และกำหนดค่า "nonce" หลายบิต ซึ่งเพียงพอที่จะกู้คืนคีย์ ECDSA 256 บิต

ที่มา: opennet.ru

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