高通晶片中存在允許從 TrustZone 儲存中提取私鑰的漏洞

NCC集團研究人員 裸露 細節 漏洞(CVE-2018,11976)在高通晶片中,它允許您確定位於基於 ARM TrustZone 技術的隔離飛地高通 QSEE(高通安全執行環境)中的私人加密金鑰的內容。 問題表現在 最多 Snapdragon SoC,已廣泛應用於基於Android平台的智慧型手機。 解決該問題的修復已經 包括 在四月份的 Android 更新和高通晶片的新韌體版本中。 高通花了一年多的時間準備修復;有關該漏洞的資訊最初於 19 年 2018 月 XNUMX 日發送給高通。

讓我們回想一下,ARM TrustZone 技術可讓您建立與主系統完全分離的硬體隔離的受保護環境,並使用單獨的專用作業系統在單獨的虛擬處理器上運行。 TrustZone 的主要目的是為加密金鑰、生物識別身份驗證、支付資料和其他機密資訊提供處理器的隔離執行。 與主作業系統的互動是透過調度介面間接進行的。 私有加密金鑰儲存在硬體隔離的金鑰儲存內,如果實施得當,可以在底層系統受到損害時防止其洩漏。

此漏洞是由於橢圓曲線處理演算法的實作有缺陷,導致資料處理進度資訊外洩。 研究人員開發了一種側通道攻擊技術,允許使用現有的間接洩漏來恢復位於硬體隔離的私鑰的內容 安卓金鑰庫。 根據對分支預測區塊的活動和記憶體中資料的存取時間的變化的分析來確定洩漏。 在實驗中,研究人員成功展示了從 Nexus 224X 智慧型手機使用的硬體隔離金鑰儲存中恢復 256 位元和 5 位元 ECDSA 金鑰。 恢復金鑰需要產生約 12 個數位簽名,耗時超過 14 小時。 用於進行攻擊的工具 快取抓取.

問題的主要原因是 TrustZone 和主系統中共享通用硬體組件和計算緩存 - 隔離是在邏輯分離級別執行的,但使用通用計算單元並帶有計算痕跡和分支信息地址被存放在公共處理器高速緩存中。 使用 Prime+Probe 方法,基於評估快取資訊的存取時間的變化,透過檢查快取中是否存在某些模式,可以監視與數位簽章計算相關的資料流和程式碼執行跡象。 TrustZone 具有相當高的準確度。

在高通晶片中使用 ECDSA 密鑰產生數位簽名的大部分時間都花在使用每個簽名不變的初始化向量在循環中執行乘法運算上(nonce)。 如果攻擊者可以恢復至少一些帶有有關該向量的資訊的位,則可以進行攻擊以順序恢復整個私鑰。

就高通公司而言,在乘法演算法中確定了此類資訊外洩的兩個地方:在表中執行查找操作時以及在基於「nonce」向量中最後一位的值的條件資料擷取程式碼中。 儘管高通代碼包含阻止透過第三方管道洩露資訊的措施,但開發的攻擊方法可讓您繞過這些措施並確定「隨機數」值的幾個位,這足以恢復 256 位 ECDSA 金鑰。

來源: opennet.ru

添加評論