Lỗ hổng trong chip Qualcomm cho phép trích xuất khóa riêng tư từ bộ lưu trữ TrustZone

Các nhà nghiên cứu từ Tập đoàn NCC không che đậy chi tiết lỗ hổng (CVE-2018-11976) trong chip Qualcomm, cho phép bạn xác định nội dung của các khóa mã hóa riêng nằm trong một khu vực biệt lập Qualcomm QSEE (Môi trường thực thi an toàn Qualcomm), dựa trên công nghệ ARM TrustZone. Vấn đề thể hiện ở chỗ đa số Snapdragon SoC, đã trở nên phổ biến trên điện thoại thông minh dựa trên nền tảng Android. Các bản sửa lỗi khắc phục sự cố đã có bao gồm trong bản cập nhật Android tháng 19 và các bản phát hành chương trình cơ sở mới cho chip Qualcomm. Qualcomm phải mất hơn một năm để chuẩn bị sửa lỗi; thông tin về lỗ hổng ban đầu được gửi tới Qualcomm vào ngày 2018 tháng XNUMX năm XNUMX.

Chúng ta hãy nhớ lại rằng công nghệ ARM TrustZone cho phép bạn tạo các môi trường được bảo vệ tách biệt với phần cứng, tách biệt hoàn toàn với hệ thống chính và chạy trên một bộ xử lý ảo riêng bằng hệ điều hành chuyên dụng riêng. Mục đích chính của TrustZone là cung cấp khả năng thực thi riêng biệt của bộ xử lý cho các khóa mã hóa, xác thực sinh trắc học, dữ liệu thanh toán và các thông tin bí mật khác. Tương tác với hệ điều hành chính được thực hiện gián tiếp thông qua giao diện điều phối. Khóa mã hóa riêng được lưu trữ bên trong kho khóa cách ly bằng phần cứng. Nếu được triển khai đúng cách, khóa này có thể ngăn chặn sự rò rỉ nếu hệ thống cơ bản bị xâm phạm.

Lỗ hổng này xuất phát từ một lỗ hổng trong việc triển khai thuật toán xử lý đường cong elip, dẫn đến rò rỉ thông tin về tiến trình xử lý dữ liệu. Các nhà nghiên cứu đã phát triển một kỹ thuật tấn công kênh bên cho phép sử dụng các rò rỉ gián tiếp hiện có để khôi phục nội dung của các khóa riêng nằm trong một khu vực bị cô lập bằng phần cứng. Kho khóa Android. Rò rỉ được xác định dựa trên phân tích hoạt động của khối dự đoán nhánh và những thay đổi về thời gian truy cập dữ liệu trong bộ nhớ. Trong thử nghiệm, các nhà nghiên cứu đã chứng minh thành công khả năng khôi phục khóa ECDSA 224 và 256 bit từ kho khóa cách ly phần cứng được sử dụng trong điện thoại thông minh Nexus 5X. Việc khôi phục khóa cần tạo ra khoảng 12 nghìn chữ ký số, mất hơn 14 giờ. Công cụ được sử dụng để thực hiện cuộc tấn công Bộ nhớ đệm.

Nguyên nhân chính của sự cố là do việc chia sẻ các thành phần phần cứng và bộ đệm chung để tính toán trong TrustZone và trong hệ thống chính - việc cách ly được thực hiện ở mức độ phân tách logic, nhưng sử dụng các đơn vị tính toán chung và có dấu vết tính toán và thông tin về nhánh địa chỉ được gửi vào bộ nhớ đệm chung của bộ xử lý. Sử dụng phương pháp Prime+Probe, dựa trên việc đánh giá các thay đổi về thời gian truy cập vào thông tin được lưu trong bộ nhớ đệm, bằng cách kiểm tra sự hiện diện của các mẫu nhất định trong bộ nhớ đệm, có thể theo dõi các luồng dữ liệu và các dấu hiệu thực thi mã liên quan đến việc tính toán chữ ký số trong TrustZone với độ chính xác khá cao.

Hầu hết thời gian để tạo chữ ký số bằng khóa ECDSA trong chip Qualcomm được dành để thực hiện các phép nhân trong một vòng lặp bằng cách sử dụng vectơ khởi tạo không thay đổi cho mỗi chữ ký (khâm mạng). Nếu kẻ tấn công có thể khôi phục ít nhất một vài bit có thông tin về vectơ này thì có thể thực hiện một cuộc tấn công để khôi phục tuần tự toàn bộ khóa riêng.

Trong trường hợp của Qualcomm, hai vị trí rò rỉ thông tin như vậy đã được xác định trong thuật toán nhân: khi thực hiện các thao tác tra cứu trong bảng và trong mã truy xuất dữ liệu có điều kiện dựa trên giá trị của bit cuối cùng trong vectơ “nonce”. Mặc dù thực tế là mã Qualcomm có chứa các biện pháp chống rò rỉ thông tin qua các kênh của bên thứ ba, phương pháp tấn công được phát triển cho phép bạn bỏ qua các biện pháp này và xác định một số bit của giá trị “nonce”, đủ để khôi phục khóa ECDSA 256 bit.

Nguồn: opennet.ru

Thêm một lời nhận xét