2012-02-15 93 views
0

我們正在設計一個系統,作爲包含敏感信息的郵件的存儲轉發系統。我們的系統定期收集需要傳送給客戶的數據。我們的客戶將使用我們提供的軟件來調用我們的Web服務並獲取他們的消息 - 在這一點上消息將從我們的系統中刪除。加密數據庫字段

我們想要防止的是,在我們的服務器被入侵的情況下,入侵者無法讀取我們系統上的消息。

我們考慮使用公鑰/私鑰加密來加密郵件,然後讓我們的客戶端軟件在收到郵件後解密郵件。然而,這似乎有些倒退,因爲公鑰將存在於我們的服務器上,並且私鑰將與客戶端軟件一起分發。

使用這個,我們猜測,入侵者必須破解我們的服務器,並獲得訪問客戶端軟件中的密鑰才能讀取消息的可能性較低。

這種方法有什麼漏洞?有其他方法嗎?

非常感謝。

MB

+0

你真的要求你的設計安全性審計,或者你有一個編程問題? – Arafangion 2012-02-15 14:55:38

+0

http://stackoverflow.com/questions/70450/is-it-worth-encrypting-email-addresses-in-the-database < - 複製? – Arafangion 2012-02-15 15:02:46

+0

不是重複的,因爲只有公鑰將被存儲在服務器上,因此訪問服務器將不允許您解密信息,除非您擁有私鑰。 – user1211560 2012-02-15 15:46:09

回答

0

只有當您將其視爲客戶端/服務器關係時纔會退步。相反,考慮Alice和Bob,Alice是服務器,Bob是客戶端。

Alice收集一些她想爲Bob存儲的信息。她使用Bob的公鑰對信息進行加密,直到她將信息傳遞給Bob。一旦Bob可用,Alice將加密信息發送給Bob,然後用他的私鑰對Bob進行解密。

您需要做的唯一事情就是爲每個客戶端配置不同的密鑰對。這可以通過客戶端安裝時的某種授權過程來處理。客戶端存儲其私鑰,服務器存儲客戶端的公鑰。如果服務器受到威脅,那麼數據仍然是安全的,因爲它只能由客戶端的私鑰解密。如果客戶受到影響,那麼它的唯一受影響的客戶端,而不是所有其他客戶端。