2011-02-07 91 views
6

我們有一個網站,用戶將在其中保存極其個人和敏感的數據到我們的數據庫中。加密數據以存儲在數據庫中

我們當然需要在將數據存儲在數據庫中並使用SSL之前對其進行加密。這是一個將使用表單身份驗證的MVC應用程序。確保這些數據在我們保存之前就被加密的最好方法是什麼,直到解密後才顯示在他們的個人頁面上。

我們還需要確保即使我們的開發人員和dba在應用程序上工作也是安全的。

處理這種情況的最佳方法是什麼?

+0

你想要保護數據的人是誰? – 2011-02-07 18:18:11

+0

任何人可能想要得到它。基本上我們只需要能夠確保用戶只有他們才能看到數據。 (儘管我知道無法保證它是100%,但我們需要儘可能接近它) – twal 2011-02-07 18:26:18

+3

然後,您基本上需要使用用戶在運行時提供的密鑰進行加密。當然,如果用戶丟失了這個密鑰(記住,這是我們正在討論的用戶),請告訴數據。 – 2011-02-07 18:27:54

回答

1

除非您使用公鑰加密,並且最終用戶必須控制此數據,否則無法將數據庫管理員保留在數據之外。如果最終用戶丟失了密鑰,他們將丟失所有數據。

您可以有一個單獨的數據庫,您可以在其中存儲密鑰,而您的DBA將無法訪問此數據庫。

您將不得不擁有兩個DBA,一個用於數據,一個用於密鑰。

這是假設你不信任你的DBA,但你不應該僱用他們。

如果你信任你的數據庫管理員,那麼你讓他們有權訪問這兩個數據庫,但要求他們有單獨的帳戶,所以如果一個帳戶被盜用,他們(黑客)將無法訪問所有內容。

通常,在一個設計良好的系統中,DBA /管理員爲他們的個人工作有單獨的帳戶,並且有高級帳戶用於工作。

我假設程序員只能訪問測試環境。如果他們有權訪問生產環境,則他們可以訪問密鑰和數據。