2012-02-15 154 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进行解密。

您需要做的唯一事情就是为每个客户端配置不同的密钥对。这可以通过客户端安装时的某种授权过程来处理。客户端存储其私钥,服务器存储客户端的公钥。如果服务器受到威胁,那么数据仍然是安全的,因为它只能由客户端的私钥解密。如果客户受到影响,那么它的唯一受影响的客户端,而不是所有其他客户端。