Secure-Storage
離線設備中加密密鑰的安全儲存
我正在開發一種設備,我需要在其中儲存客戶上傳到設備的對稱密鑰。該設備始終處於離線狀態,因此 HSM 中的集中儲存不是一種選擇。該設備沒有鍵盤。當設備處於活動狀態時,該密鑰用於數據加密/解密。密鑰不能以明文形式儲存在快閃記憶體中。
我只是在學習密碼學,所以對我來說很裸露:) 我的想法是我需要對對稱密鑰進行密鑰包裝,以將其安全地儲存在快閃記憶體中並在使用時解包到 RAM。為了擁有一個用於密鑰包裝的安全密鑰,我的想法是在設備上使用一個 TPM 2.0 晶片,比如這個。
我的問題是:
- 解決這個問題的常用方法是什麼?
- 如果我的方法可行,它到底有多安全?什麼會阻止攻擊者焊接 TPM 晶片並使用它來解開對稱密鑰?
你的方法很好。但是,您必須確保 TPM 不在設備上的單獨晶片上,因為 TPM 和 CPU 之間的匯流排上的通信以明文形式進行。
另一個類似的解決方案是使用TEE,它就像主 CPU 內的安全迷你 CPU。ARM 將他們的 TEE 稱為“ TrustZone ”,它在大多數 Cortex CPU 上可用,並由 AMD 為其 Ryzen 和 EPYC CPU 授權。
當用於儲存加密密鑰時,TPM 和 TEE 可以使用密鑰在安全子系統中執行加密和解密操作,防止 RAM 中的密鑰洩漏。
某些作業系統(如 Android)提供 API 以使用 TEE 安全地儲存加密密鑰並執行加密操作。
但是,請記住,這不會阻止攻擊者使用非常昂貴的設備和專家工程師直接在晶片中獲取密鑰。那將是對產品的破壞性操作。
您可能會使用帶有“嵌入式 HSM”的設備——現在汽車領域有很多這樣的設備。
這些設備提供了一個單獨的微控制器,該微控制器具有 AES 加速器(以及其他功能)。該微控制器還具有與主微控制器分開的快閃記憶體和 RAM。
您可以查看Evita 項目以了解一些(相當古老的 :) 歷史。