Dsa

什麼是 TPMFail 攻擊,應對措施有哪些?

  • December 29, 2019

受信任的平台模組 (TPM) 被設計為基於硬體的信任根,以保護加密密鑰,即使是針對基於系統的對手。

儘管英特爾基於韌體的fTPM具有FIPS 140-2和 STMicroelectronics基於硬體的 TPM具有Common Criteria EAL 4+ 認證,但最近在攻擊TPM-FAIL: TPM 滿足Moghimi 等人的時序和點陣攻擊中,他們證明攻擊者可以即使通過遠端恢復伺服器的私人身份驗證密鑰。

  • 攻擊如何運作?
  • 有哪些對策?

簡而言之TPMFail攻擊是對部署在電腦上的 TPM 2.0 設備進行黑盒時序分析。TPMfail 團隊能夠提取TPMS 的 256 位私鑰的私有**身份驗證密鑰,用於 ECDSA 和 ECSchnorr 簽名,甚至通過網路。**此攻擊成功,因為 TPM 中存在導致定時攻擊的秘密相關執行。為了減輕這種攻擊,需要更新英特爾 fTPM 所需的韌體並更換 STMicroelectronics TPM 的硬體。

攻擊如何運作?

攻擊分三個階段進行

  • **階段 1:**攻擊者生成簽名對和時序資訊以描述給定實現 fTPM 或 STM 的配置文件。這是攻擊前階段,攻擊者知道密鑰並使用隨機數。該輪廓可以在現場測量。測量後,他們擁有完整的時序和秘密隨機數相關資訊 $ k $ 用於簽名。偏差與前導零位 (LZB) 有關。
  • 階段 2攻擊者掌握了時間,以具有相同 TPM 設備的系統為目標,並收集簽名對和時間資訊。
  • 階段 3攻擊者應用基於格的密碼分析和過濾簽名來獲得有偏差的隨機數來恢復私鑰。

更多詳情

  • 時序測量通常 Intel fTPMs Linux 核心驅動程序在推送模式下使用命令響應緩衝區。驅動程序在 20 毫秒後檢查狀態,如果計算沒有準備好,驅動程序重新檢查。每次檢查的時間都加倍。該驅動程序不允許完美的時序測量,因此,TPMfail 團隊開發了他們的核心驅動程序來完美地測量時序。他們收集了 40000 個 ECDSA 簽名。他們同樣為 STM 的硬體 TPM 建構了一個驅動程序。
  • **時序分析:**他們發現了一種逐位標量點乘法實現,它跳過了隨機數最高有效零位的計算。因此,具有更多前導零位的隨機數在 TPM 中計算得更快。

下圖是 Intel fTPM 的時序直方圖。右邊是隨機數依賴的軟體實現。比較這些數字可以得出英特爾在Fixed Window Scalar Multiplication期間使用了 4 位固定視窗的資訊。

在此處輸入圖像描述

在左圖中,有 4 個區域,最快的區域有 nonce,12 個最重要的視窗為零,接下來有 8 個,接下來有 4 個,最慢的區域沒有。

基於格的密碼分析

他們使用了隱數問題 格攻擊。他們在Sage上使用了BKZ算法。只要隨機數很短,這種攻擊就會恢復 ECDSA 隨機數和私鑰。由於隨機數是隨機選擇的,其中一半的 MSB 為零,四分之一的 MSB 有兩個零,依此類推。邊通道將有助於選擇較短的隨機數來應用基於格的攻擊。

攻擊模型的密鑰恢復

  • 系統對手具有管理員權限的使用者提取密鑰。ECDSA 的 12、8 和 4 個前導零所需的簽名

$$ \begin{array}{|c|c|c|c|}\hline \text{bias} & \text{need signatures} & \text{total sign operations} & \text{succes rate} \\hline 4-bit & 78 & 1248 & 92\text{%}\ \hline 8-bit & 34 & 8748 & 100\text{%}\ \hline 12-bit & 23 & & 100\text{%} \ \hline \end{array} $$

在 i7-7700 上採集簽名的時間是 385 個簽名/分鐘。收集 8784 個簽名只用了不到 23 分鐘。收集數據後,Lattice 攻擊需要 2 到 3 秒!對於尺寸 30。

對於英特爾 fTPM Schnorr 簽名,在 27 分鐘內收集了 10,204 個簽名,其中包含 8 位前導零。對於 4 位案例,在 1.5 分鐘內從 1.040 簽名中找到 65 個樣本。

STMicroelectronics TPM ECDSA 密鑰恢復

他們能夠在 40,000 個 8 位簽名和 35 個最快簽名後恢復 ECDSA 密鑰。

  • 使用者級如前所述,在使用者級核心驅動程序檢查結果,首先在 20 微秒內。這導致了以下時間測量;

在此處輸入圖像描述

他們收集了 219,000 個簽名,其中包含嘈雜的 855 個 8 位前導零。通過過濾,他們獲得了 53 個高質量的簽名,恢復率為 100%。他們還尋找 4 位的情況。

  • 遠端對手這是能力最弱的對手。他們建立了一個快速的 1G 網路並請求 40,000 個簽名來收集時間資訊。儘管時序直方圖雜訊更大,但它仍然顯示有關具有 4 位和 8 位前導零的隨機數的資訊。對於 4 位的情況;在 4 分鐘內收集了 1,248 個簽名,對於 8 位的情況;在 31 分鐘內收集所需的簽名。

在此處輸入圖像描述

他們對 StrongSwang 使用了這種遠端攻擊,StrongSwang是一種開源 IPsec VPN 實現,受現代作業系統(包括 Linux 和 Microsoft Windows)支持。

有什麼對策。

對策

  • 核心驅動程序可以增加延遲時間,這樣就不會洩漏資訊。但是,這可能需要具有不同 TPM 設備的不同級別。因此,這不是萬無一失的。
  • 恆定時間實施。這是攻擊點的關鍵。通過數據依賴計算,TPMfail 團隊能夠區分計算。一旦在恆定時間內完成計算,側通道將更難。他們已經測試了更新檔並且無法再執行攻擊。
  • 使用雙倍大小的隨機數並將高位設置為 1 *

更新檔

  • CVE-2019-11090。英特爾於 2019 年 11 月 12 日發布了針對英特爾管理引擎 (ME) 的韌體更新,其中包括解決此問題的更新檔。
  • CVE-2019-16863。STMicroelectronics 對其 TPM 產品的更新版本進行驗證並發送給作者。他們測試並看到它是有抵抗力的。由於它是硬體,因此需要更換。

注:來自作者:

由於密鑰生成較弱,TPM 以前曾遭受過漏洞的困擾。然而,人們普遍認為,即使針對系統對手,密碼算法的執行也是安全的。

*感謝評論員。請參閱:為什麼 EdDSA 在對抗 Minerva 時的表現優於 ECDSAMinerva也是智能卡方面的一項類似工作。

引用自:https://crypto.stackexchange.com/questions/75769