Encryption

以下非對稱加密方案是否等效?

  • October 2, 2018

考慮您希望機器能夠將每日加密備份發送到儲存伺服器的場景。

您不希望簡單地使用對稱密鑰進行加密,因為如果機器遭到破壞,那麼對稱密鑰將使儲存伺服器上的整個備份歷史記錄能夠被解密。

以下兩種方案是否等效?

在所有方案中,儲存伺服器只允許上傳,不允許下載或刪除。在所有方案中,生成一個永久的 EC 密鑰對(a,A)(其中a是私鑰,A是對應的公鑰)。僅存A放在機器上。

(e, E)方案 1:為每個備份生成一個臨時 EC 密鑰對。使用經過身份驗證的密碼(例如 AES256-GCM 或 ChaCha-Poly1305)使用對稱密鑰加密數據H(eA),其中H()產生均勻分佈的雜湊(例如 SHA2-256)。備份使用對稱密鑰解密H(aE),並E與備份一起儲存。成功解密證明只有知道的機器A才能創建備份。備份將包含時間戳,因此如果攻擊者在以後重新傳輸相同的觀察到的備份,它將被檢測到。

方案2:除了永久加密密鑰對,在機器上(a,A)保留一個永久認證密鑰對。(b,B)然後,方案 2 與方案 1 相同,只是在傳輸之前,加密備份使用b. 解密時,首先驗證簽名。

乍一看,方案 2 似乎更勝一籌,因為它可以防止知道公鑰的攻擊者上傳備份A。但是,認證私鑰b儲存在同一台機器上,因此兩者bA可能一起洩露。我無法看到任何破壞儲存伺服器的人都可以推斷出A在發送每個備份時每次使用的公鑰。

因此,方案 2 看起來並不優於我,除瞭如果懷疑機器被盜用,(b,B)可以替換簽名密鑰對,而不必更換密鑰對(a,A)

這個對嗎?在方案 2 中使用身份驗證密鑰對是否還有其他優勢?有效驗證備份的知識A是否與備份的簽名相同b

一般來說,除非情況阻止您這樣做,否則您應該盡量遵守標準做法。這意味著可能應該使用兩個不同的密鑰對來使用先簽名後加密。

公鑰設計為公開的,您應該牢記這一點。即使您的方案是安全的,系統也可能不安全。例如,公鑰操作可能會通過側通道攻擊洩露公鑰。畢竟沒有必要保護密鑰。密鑰庫可能無法安全地或在正確的訪問級別儲存密鑰。也許您想用安全儲存私鑰的硬體模組替換軟體實現 - 公鑰不會受到此類硬體的保護。

簽名然後加密的一個優點是您可以解密備份,然後檢查簽名的正確性。這使您可以在不失去完整性的情況下將解密的備份儲存在某處。如果需要,它還允許您使用不同的密鑰/方案重新加密包。或者使用更細粒度的結構進行簽名,其中部分備份受到單獨保護。換句話說,使用單獨的簽名密鑰將為您提供更多的靈活性。

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