0

是 8:00,黑客(或PRISM!)已经拥有我的客户数据的完整副本以及个人详细信息。假设数据已经可读,如何保护个人信息?

在当前有关 PRISM 的丑闻之前,我一直在思考如何保护我的客户数据库的某些特定字段(如姓名、电子邮件、密码等)。默认情况下,有一个安全服务器,其中包含用于加密密码的密钥等。但是现在,怎么反过来呢?

我使用 sqlite 将数据存储在 iOS 中。在那里,数据将是可读的(即:在这种情况下,假设客户端具有完全访问权限并被“信任”,但服务器不是。客户端加密也是如此?)。

我想Name= John Doe在客户端和Name=*****服务器中都有。服务器无法解码。只有客户的设备。

客户可以拥有多个访问相同数据的设备。加密服务器中的所有数据是不可行的(因为性能和其他业务逻辑的东西<-主要是这个)加上很大一部分数据是数字的,无论如何都是非个人的。

我明白这里有必要妥协。为最终用户提供合理的易用性并尽可能增加数据保护(我知道对客户端设备的访问将提供对数据的访问,但是,我正在考虑避免使用“流行”的标题服务 X 被黑了,数百万个密码在坏人手中!”,而不是针对单个客户的攻击。

4

1 回答 1

0

如果您希望服务器没有数据,则必须使服务器永远不会获取数据。客户端需要使用仅存在于该客户端上的密钥材料进行加密。(例如,如果密钥被发送到服务器,那么这不会提供任何保护)

如果您希望多个设备能够访问数据,那么您需要将用于加密的密钥基于客户知道并可以告诉设备的信息,例如密码或密码。如果您希望多个设备能够访问数据,那么基于设备标识符或类似的东西显然是行不通的。

密码学是“机械杠杆”——它可以让你使用一个小秘密(密钥)来保护一个大秘密(明文)。

至于性能,如果加密和解密在服务器性能上产生超过百分之几的差异,我会感到非常惊讶,尤其是在支持 AES-NI 的平台上。

(当然,如果攻击者已经有了数据,他们就有了数据。事后你无能为力)

于 2013-06-11T17:16:15.600 回答