加密数据库字段

时间:2012-02-15 14:52:59

标签: .net encryption

我们正在设计一个系统,作为包含敏感信息的邮件的存储转发系统。我们的系统会定期收集需要路由到客户端的数据。我们的客户将使用我们提供的软件来调用我们的Web服务并获取他们的消息 - 此时消息将从我们的系统中删除。

我们想要防止的是,在我们的服务器遭到入侵的情况下,入侵者无法读取我们系统上的消息。

我们考虑使用公钥/私钥加密在将消息存储到我们的数据库之前加密消息,然后让我们的客户端软件在收到消息后解密消息。然而,这看起来有点倒退,因为公钥将在我们的服务器上,私钥将随客户端软件一起分发。

使用这个,我们推测,入侵者必须攻击我们的服务器并获得对客户端软件中密钥的访问才能阅读消息 - 这种情况的可能性要小得多。

这种方法有哪些漏洞?有没有其他方法?

非常感谢。

MB

1 个答案:

答案 0 :(得分:0)

当您将其视为客户端/服务器关系时,它才会倒退。而是考虑Alice和Bob,其中Alice是服务器而Bob是客户端。

Alice收集了她想要为Bob存储的一些信息。她使用Bob的公钥来加密信息,直到她可以将信息传递给Bob。一旦Bob可用,Alice就会将加密信息发送给Bob,Bob然后用他的私钥对其进行解密。

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