ในกระทู้ก่อนหน้านี้ เราทำให้ทราบว่าชิป Broadcom เสี่ยงต่อการถูกโจมตีและตอนนี้นักวิจัยจาก บริษัท กลุ่ม ป.ป.ช. เปิดเผยรายละเอียดช่องโหว่ (CVE-2018-11976 ) บนชิป Qualcomm นี้ อนุญาตให้คุณกำหนดเนื้อหาของคีย์การเข้ารหัสส่วนตัว ตั้งอยู่ในวงล้อม Qualcomm QSEE (Qualcomm Secure Execution Environment) ที่แยกจากกันโดยใช้เทคโนโลยี ARZ TrustZone
ปัญหาปรากฏใน Snapdragon SoC ส่วนใหญ่บนสมาร์ทโฟนที่ใช้ Android การแก้ไขปัญหารวมอยู่ในการอัปเดต Android เดือนเมษายนและเฟิร์มแวร์เวอร์ชันใหม่สำหรับชิป Qualcomm แล้ว
Qualcomm ใช้เวลากว่าหนึ่งปีในการเตรียมการแก้ปัญหา: ในขั้นต้นข้อมูลเกี่ยวกับช่องโหว่ถูกส่งไปยัง Qualcomm เมื่อวันที่ 19 มีนาคม 2018
เทคโนโลยี ARM TrustZone ช่วยให้คุณสร้างสภาพแวดล้อมที่แยกฮาร์ดแวร์ที่ได้รับการป้องกันซึ่งแยกออกจากระบบหลักอย่างสมบูรณ์และรันบนโปรเซสเซอร์เสมือนแยกต่างหากโดยใช้ระบบปฏิบัติการเฉพาะแยกต่างหาก
จุดประสงค์หลักของ TrustZone คือการดำเนินการแยกตัวจัดการคีย์การเข้ารหัสการตรวจสอบความถูกต้องทางชีวภาพข้อมูลการเรียกเก็บเงินและข้อมูลลับอื่น ๆ
การโต้ตอบกับระบบปฏิบัติการหลักเกิดขึ้นโดยอ้อมผ่านอินเทอร์เฟซการจัดส่ง
คีย์การเข้ารหัสส่วนตัวจะอยู่ในที่เก็บคีย์แยกฮาร์ดแวร์ซึ่งหากนำไปใช้อย่างถูกต้องจะป้องกันไม่ให้รั่วไหลหากระบบที่อยู่เบื้องหลังถูกบุกรุก
เกี่ยวกับปัญหา
ช่องโหว่นี้เกี่ยวข้องกับความล้มเหลวในการนำไปใช้งาน ของอัลกอริทึมในการประมวลผลเส้นโค้งรูปไข่ซึ่งนำไปสู่การรั่วไหลของข้อมูลเกี่ยวกับการประมวลผลข้อมูล
นักวิจัยได้พัฒนา เทคนิคการโจมตีของบุคคลที่สามที่อนุญาตจากการรั่วไหลทางอ้อม rดึงเนื้อหาของคีย์ส่วนตัวอยู่ใน Android Keystore ที่แยกฮาร์ดแวร์
การรั่วไหลจะพิจารณาจากการวิเคราะห์กิจกรรมของการเปลี่ยนบล็อกการทำนายและการเปลี่ยนแปลงเวลาในการเข้าถึงข้อมูลในหน่วยความจำ
ในระหว่างการทดลอง นักวิจัยประสบความสำเร็จในการกู้คืนคีย์ ECDSA 224 และ 256 บิตจากที่เก็บคีย์แยก บนฮาร์ดแวร์ที่ใช้ในสมาร์ทโฟน Nexus 5X
ในการกู้คืนคีย์ต้องใช้เวลาประมาณ 12 ลายเซ็นดิจิทัลในการสร้างซึ่งใช้เวลานานกว่า 14 ชั่วโมงจึงจะเสร็จสมบูรณ์ ชุดเครื่องมือ Cachegrab ถูกใช้เพื่อทำการโจมตี
สาเหตุหลักของปัญหาคือการแบ่งปันแคชและส่วนประกอบฮาร์ดแวร์ทั่วไปสำหรับการคำนวณใน TrustZone และในระบบโฮสต์: การแยกจะกระทำในระดับการแยกทางตรรกะ แต่โดยใช้บล็อกการคำนวณทั่วไปและการตั้งค่าการติดตามการคำนวณและข้อมูลเกี่ยวกับที่อยู่ข้าม ในแคชทั่วไปของโปรเซสเซอร์
การใช้วิธี Prime + Probe ตามการประมาณการการเปลี่ยนแปลงเวลาในการเข้าถึงข้อมูลแคชคุณสามารถตรวจสอบความพร้อมใช้งานของรูปแบบบางอย่างในแคชด้วยสตรีมข้อมูลและสัญญาณการดำเนินการที่มีความแม่นยำสูงเพียงพอที่เกี่ยวข้องกับลายเซ็นดิจิทัล การคำนวณใน TrustZone
เวลาส่วนใหญ่ในการสร้างลายเซ็นดิจิทัลด้วยปุ่ม ECDSA บนชิป Qualcomm จะใช้ในการคูณการดำเนินการในวงจรโดยใช้เวกเตอร์เริ่มต้น (nonce) โดยไม่มีการเปลี่ยนแปลงสำหรับแต่ละลายเซ็น
Si ผู้โจมตีสามารถกู้คืนข้อมูลเกี่ยวกับเวกเตอร์นี้ได้อย่างน้อยสองสามบิต เป็นไปได้ที่จะโจมตีการกู้คืนตามลำดับของคีย์ส่วนตัวทั้งหมด
ในกรณีของ Qualcomm มีการเปิดเผยจุดรั่วไหลของข้อมูล XNUMX จุดในอัลกอริทึมการคูณ: เมื่อดำเนินการค้นหาตารางและในรหัสการแยกข้อมูลตามเงื่อนไขตามค่าของบิตสุดท้ายในเวกเตอร์ "nonce"
แม้ว่ารหัส Qualcomm จะมีมาตรการในการต่อต้านการรั่วไหลของข้อมูลในช่องทางของบุคคลที่สาม แต่วิธีการโจมตีที่พัฒนาขึ้นช่วยให้คุณข้ามมาตรการเหล่านี้และกำหนดค่า "nonce" บางส่วนซึ่งเพียงพอที่จะกู้คืนคีย์ ECDSA 256 บิต
28 เมษายนและฉันยังคงรอแพตช์ที่ใน GNU / Linux จะไม่เกิดขึ้น