2012-08-06 74 views
0

我想加密存儲在我的服務器上的用戶數據,以便在我的服務器遭到入侵時安全。下面是一個好辦法:這是加密用戶數據的好方法嗎?

每個用戶的密碼是GPG密鑰對的密碼。在保存到數據庫之前,所有用戶的數據都使用公鑰進行加密。密碼被丟棄,並且密鑰對僅在會話期間保留,所以只有在提供密碼時才能解密數據。

+0

非對稱密鑰加密不以這種方式通常使用。考慮使用對稱密鑰加密。 – 2012-08-06 20:27:51

回答

3

從危害您服務器的人的角度來看,確保數據安全的唯一方法就是您的方式,當用戶必須提供密鑰時才能解密。

任何其他技術都會留下一些可能被利用的弱點。

但你必須確保其他方式(我的意思是,當用戶提供了密碼)是安全的太,使用HTTPS和對防治會話攻擊,跨腳本等

如果沒有特定的硬件當他們生成基於時間的僞隨機數字(如銀行令牌)或類似的東西時,做一條額外的保護線,最好的辦法是保存鑰匙給用戶或使用第三部分存儲器作爲Azure或Amazon上的SQL,安全性更高。

我用同樣的方法想了很多,在那裏把我的encrytion密鑰,使數據模糊不清,即使我的服務器得到妥協之後。我發現的唯一安全的方式是「與用戶」。

+1

如果用戶忘記密碼,這會使您(或至少您的用戶)出現問題。如果數據與健康記錄類似,則可能不合適。如果只有一個用戶應該看到這些數據,而且您不需要在其他時間看到它,那麼您就可以。 – 2012-08-06 19:48:20

+0

我同意,關於可用性安全的舊問題。如果這些數據不能丟失,則必須採取一些故障切換方法,例如手動將密鑰複製到脫機機器或設備。或者像pendrive一樣爲每個用戶創建一些令牌。這個「哪裏做了我的加密密鑰」問題是一個非常複雜的問題,這取決於系統的應用和使用。 – repeatdomiau 2012-08-06 20:30:00

1

你的方法可以保護你免受只有1次攻擊:竊取您的數據庫(且僅當你正確的加密密鑰)。如果你的服務器得到妥協,他們可以把你的SSL私鑰和傾聽您的網絡流量(與用戶的鍵)