2013-02-20 32 views
1

關於存儲對稱密鑰,我有一個特別令人沮喪的問題。存儲對稱密鑰或替代方法來保護我的數據的好方案

背景:

我具有存儲在其中需要加密/解密數據庫的一些敏感數據。目前我正在使用Rijndael算法。該應用程序是基於Web的(ASP.NET MVC)。密鑰在多個實例間需要保持一致(如果這些實例連接到同一個數據庫)。

問題:

在牢記以上,其中是存儲密鑰的最佳地點?或者也許我應該使用不對稱算法?有人還建議我使用.cer文件。這將如何工作?

回答

0

非對稱加密機制,使用更高的資源比較對稱。對稱加密數據並對密鑰進行不對稱加密(如SSL)是一個好主意。

由於您可能需要有多個實例,如果沒有補充的不對稱解決方案,風險會更高。

你已經完成了第一部分,只保留通過Windows證書管理控制檯的按鍵與非對稱算法的安全(運行=>CertMgr.msc

0

有沒有用於存儲密鑰偉大的解決方案。有很多不好的解決方案,比如對密鑰進行硬編碼,或將其存儲在數據庫中,因此將密鑰存儲在像.cer這樣的文件中比這些文件好得多。

我已經移植谷歌的Keyczar框架to C#,它主要存儲在文件系統上的密鑰。強調複數。

它具有內置到格式中的密鑰旋轉,因此您可以隨時間旋轉對稱密鑰,基本上允許您替換或增加新密文的密鑰強度,而不會失去通過添加解密舊密文的能力密文的一個小密鑰標識符,並使用authenticated encryption

能夠更改您的加密密鑰是構建自己的加密時經常會看到的東西。

0

使用單次使用,隨機生成的對稱密鑰。將此密鑰直接添加到消息中,使用非對稱加密算法對其進行加密。接收機首先解碼對稱密鑰,然後用它來解碼消息的其餘部分;之後,對稱密鑰被丟棄並且從不重用 - 因此不需要存儲。

您將獲得非對稱加密的所有邏輯,並且偶數好的加密密鑰的大小不應該是一個很大的性能問題。