นักวิจัยจากกลุ่ม ป.ป.ช
ให้เราระลึกว่าเทคโนโลยี ARM TrustZone ช่วยให้คุณสร้างสภาพแวดล้อมการป้องกันแบบแยกฮาร์ดแวร์ซึ่งแยกออกจากระบบหลักโดยสิ้นเชิงและทำงานบนโปรเซสเซอร์เสมือนแยกต่างหากโดยใช้ระบบปฏิบัติการพิเศษแยกต่างหาก วัตถุประสงค์หลักของ TrustZone คือเพื่อให้การประมวลผลแบบแยกส่วนสำหรับคีย์การเข้ารหัส การรับรองความถูกต้องทางชีวภาพ ข้อมูลการชำระเงิน และข้อมูลลับอื่น ๆ การโต้ตอบกับระบบปฏิบัติการหลักนั้นดำเนินการทางอ้อมผ่านอินเทอร์เฟซการจัดส่ง คีย์เข้ารหัสส่วนตัวจะถูกจัดเก็บไว้ในที่เก็บคีย์ที่แยกด้วยฮาร์ดแวร์ ซึ่งหากนำไปใช้อย่างถูกต้อง จะสามารถป้องกันการรั่วไหลได้หากระบบที่ซ่อนอยู่ถูกบุกรุก
ช่องโหว่นี้เกิดจากข้อบกพร่องในการใช้อัลกอริธึมการประมวลผลแบบวงรี ซึ่งนำไปสู่การรั่วไหลของข้อมูลเกี่ยวกับความคืบหน้าของการประมวลผลข้อมูล นักวิจัยได้พัฒนาเทคนิคการโจมตีช่องทางด้านข้างที่ช่วยให้สามารถใช้การรั่วไหลทางอ้อมที่มีอยู่เพื่อกู้คืนเนื้อหาของคีย์ส่วนตัวที่อยู่ในฮาร์ดแวร์ที่แยกได้
สาเหตุหลักของปัญหาคือการแชร์ส่วนประกอบฮาร์ดแวร์ทั่วไปและแคชสำหรับการคำนวณใน TrustZone และในระบบหลัก - การแยกจะดำเนินการที่ระดับการแยกเชิงตรรกะ แต่ใช้หน่วยประมวลผลทั่วไปและมีร่องรอยของการคำนวณและข้อมูลเกี่ยวกับสาขา ที่อยู่ที่ถูกฝากไว้ในแคชตัวประมวลผลทั่วไป การใช้วิธี Prime+Probe ขึ้นอยู่กับการประเมินการเปลี่ยนแปลงเวลาในการเข้าถึงข้อมูลที่แคช เป็นไปได้โดยการตรวจสอบการมีอยู่ของรูปแบบบางอย่างในแคช เพื่อตรวจสอบการไหลของข้อมูลและสัญญาณของการดำเนินการโค้ดที่เกี่ยวข้องกับการคำนวณลายเซ็นดิจิทัลใน TrustZone มีความแม่นยำสูงพอสมควร
เวลาส่วนใหญ่ในการสร้างลายเซ็นดิจิทัลโดยใช้คีย์ ECDSA ในชิป Qualcomm จะใช้เวลาดำเนินการคูณในลูปโดยใช้เวกเตอร์การเริ่มต้นซึ่งไม่มีการเปลี่ยนแปลงสำหรับแต่ละลายเซ็น (
ในกรณีของ Qualcomm มีการระบุสถานที่สองแห่งที่มีการรั่วไหลของข้อมูลดังกล่าวในอัลกอริธึมการคูณ: เมื่อดำเนินการค้นหาในตาราง และในรหัสเรียกค้นข้อมูลแบบมีเงื่อนไขตามค่าของบิตสุดท้ายในเวกเตอร์ "nonce" แม้ว่ารหัส Qualcomm จะมีมาตรการเพื่อต่อต้านการรั่วไหลของข้อมูลผ่านช่องทางของบุคคลที่สาม แต่วิธีการโจมตีที่พัฒนาขึ้นช่วยให้คุณสามารถข้ามมาตรการเหล่านี้และกำหนดค่า "nonce" หลายบิต ซึ่งเพียงพอที่จะกู้คืนคีย์ ECDSA 256 บิต
ที่มา: opennet.ru