2014-11-14 49 views
0

我有一個Web服務器應用程序,它接收上傳的文件,使用AES256對它們進行加密和解密。我對它們進行了加密,因此一個潛在的黑客以某種方式進入存儲器,無法對這些文件進行任何操作。目前,每個文件都使用相同的硬編碼密鑰進行加密。在網絡服務器應用程序中管理和存儲AES密鑰

使用存儲在數據庫中的其他隨機密鑰對每個文件進行加密可能更安全嗎?可能是哈希(也可能是醃過的)?這是否甚至提供更高級別的安全性?或者更糟糕的是將這些密鑰存儲在數據庫中?

回答

0

密鑰存儲是一個相當基本的問題,如果沒有比較特殊的硬件,很難解決。

只要您將密鑰與加密數據存儲在同一臺機器上,攻擊者就會同時獲得這兩個密鑰。如果你只有更多的密鑰,這並不會發生根本性的變化。

你也不能散列/加密密鑰,因爲散列是一個單向函數,只有存儲的散列,你自己(或你的應用)將無法計算密鑰,所以這是毫無意義的。

如果可行,您可以在應用程序服務器啓動時手動輸入密鑰,因此密鑰只存在於RAM中,而不是在磁盤上。確保它不會被分頁出來交換分區。

如果你可以在客戶端加密文件(在上傳之前),所以只有用戶有密鑰,那樣會更安全...

相關問題