Aes

嵌入式設備上的 ECDH/ECDSA 密鑰交換

  • January 13, 2021

兩台設備僅相互通信,並應使用 AES 加密進行通信。兩個設備都處於離線狀態,儲存空間非常有限,並使用能夠執行 AES/ECDH/ECDSA/RNG 的小型加密協處理器。密鑰和證書也可以儲存在其中。任何設備都必須與任何其他設備一起使用,因為預設情況下它們不會以任何方式耦合。

我計劃進行 ECDH 密鑰交換,為 AES 通信創建隨機密鑰。然後我遇到了 MITM 問題,這使得 ECDH 無法在沒有進一步驗證的情況下憑空創建隨機密鑰。

如果我想使用 ECDSA,我需要儲存一個證書,該證書在產品的整個生命週期內都是靜態的,因為我無法更新它。每台設備也一樣,因為每台設備都必須能夠與其他所有設備通信。如果私鑰被洩露,所有設備也會被洩露。

我還可以在設備中儲存工廠密鑰並使用它來傳輸隨機生成的密鑰。為此,我可以直接使用 AES 並完全放棄 ECDH。這裡的問題是,工廠密鑰可能會被洩露,從而暴露使用相同密鑰的所有其他設備。如前所述,我可以使用固定的公鑰/私鑰對,但在這種情況下,我認為與簡單地使用 AES 相比沒有任何優勢。

然後是另一個問題:一個設備可能會停止工作,然後需要更換。然後,新設備必須與舊設備交換新密鑰。需要一個功能,使舊設備放棄其密鑰並接受新設備。如果對手知道工廠密鑰,他可以攔截新密鑰並監聽通信。

我正在尋找有關如何解決此密鑰交換問題並使系統盡可能安全的建議。提前感謝和BR。

您可以為每個設備分配其自己的唯一證書,並在證書上帶有 CA(例如,可能是製造商)頒發的簽名。因此,每個設備都儲存以下內容:其自己的唯一證書(其公鑰)、其相應的密鑰以及 CA 頒發的證書上的簽名。在密鑰交換期間,2 台設備將相互發送各自的證書以及 CA 在這些證書上的簽名,這些簽名可以使用 CA 的公鑰進行驗證。

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