logo科技微讯

用户数据避免给开发者看到

作者:科技微讯
日期:2020-08-30
📝 笔记

有人在 stack overflow 提问,把用户数据放在谷歌的 cloud firestore 中,开发者如何看不到用户保存的数据?

一个实现思路是:给前端发放一个 public key,用这个 public key 在前端加密用户数据,之后再发送给数据库,所以保存在数据库的 text 是被加密过的,然后自己安全地保存一个 private key,当用户在前端查询数据库中的数据时,就用 public key 在后端把数据库解密之后发送给用户。

但是这样的话,拥有 private key 的人可以看到这些数据。

Virgil Security 是一个提供 end to end 加密服务的公司,它在一篇博客中表示,常规的 firebase 服务只有在两个阶段加密,一个是传输过程中通过 https 加密,另一个是硬盘加密,硬盘加密的意思是比如有人偷偷进入谷歌的数据中心,把里面的硬盘偷走了,回家后把这个硬盘连入电脑,他也没法读取硬盘中的数据。但是,开发者可以登录他的 firebase 帐号,通过这个帐号可以查看硬盘中的数据,数据是以明文的方式存放在服务器中的。

Virgil 表示,使用端到端加密可以避免数据在传输、存储过程中被除了用户自身之外的任何人看到。

在端到端加密中,private key 和 public key 都在用户端生成,其中 private key 保存在用户端,而不是开发者持有,public key 则发布到网络中。如果一个聊天应用的场景中,当两个用户互发信息时,用户 A 使用 B 的 public key 加密信息后发送给 B,对方拿到被加密的数据后使用 private key 即可解密这个信息,从而可以看到数据。

端到端加密也有不好的地方,比如用户遇到问题了,我们不能查看用户的信息以定位这位用户的问题,再比如这些信息不能用于数据挖掘、数据分析等,此外也会影响用户读取这些数据的速度。

有人建议不要过分关注用户的数据隐私,只要符合 GDPR 就可以。

How To Geek 在一篇文章中详细描述了端到端加密解决了什么问题,为什么需要端到端加密。文章提到聊天应用是端到端加密的常见使用场景,另一个是像 1Password 的密码管理服务。


相关文章:

donation赞赏
thumbsup0
thumbsdown0
暂无评论