簡體   English   中英

存儲AES加密密鑰的最佳方法是什么?

[英]What is the best way to store an AES encryption key?

我們將Tomcat用於我們的java Web應用程序。 WEB-INF文件夾下有一個屬性文件。

AES加密將用於生成密鑰和加密密碼。 加密的密碼將存儲在屬性文件中。 應該在哪里存儲加密密鑰? 將密鑰和加密密碼放在同一屬性文件中是一個好主意嗎? 或者密鑰是否應存儲在'webapps'目錄之外?

在Windows上,您可以使用Registry和DPAPI。 使用注冊表確實很糟糕,但如果您想要獲得絕對的安全性並利用操作系統存儲有價值的數據,那么這是一個必要的痛苦。

在其他OS X上,您可以使用Keychain。

在linux上,我會使用文件權限來保護文件。

你在提議什么:

將密鑰和加密密碼放在同一屬性文件中是一個好主意嗎?

就像把錢存放在保險箱里一樣,然后將組合書寫在一個簡介上,然后將便條貼在保險箱上。 你所做的一切都是對小偷的不滿,但沒有增加任何有意義的安全級別。

如果屬性文件足夠安全以容納加密密鑰,那么您可以用純文本格式將密碼存儲在其中。

您是否考慮過Java API中的KeyStore類。 它是Sun Java加密體系結構的一部分。

我有以下建議,

  1. 不要將密鑰存儲在WAR中。 我們負責確保每個安裝的密鑰。 在生產中,我們可以通過將密鑰文件存儲在智能卡上來實際保護它。

  2. 確保您的按鍵已經過版本控制,以便您可以定期旋轉它。

  3. 存儲密碼短語以生成密鑰,而不是原始密鑰材料。 這樣可以更輕松地添加新密鑰(您不必擔心算法或密鑰大小等)。 它也增加了一些默默無聞。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM