gpt4 book ai didi

security - 在 App Engine 上加密用户数据

转载 作者:太空宇宙 更新时间:2023-11-03 15:27:23 26 4
gpt4 key购买 nike

我正在编写一个网络和 Android 应用程序,允许用户存储和访问一些潜在的私有(private)数据。此数据通过 RPC 的传输已经受到 SSL 的保护。我目前将这段数据存储在 Text 属性中,没有任何加密。我现在正在寻找更好地保护数据存储的方法。

问题 1:在 App Engine 上加密存储数据是否有任何通用的最佳实践或提示?

我的一个想法是将属性切换到 Blob 字段,仅通过网络传输加密数据,并在客户端(在 Javascript 和 Android 中)进行解密和加密。

对于加密 key ,我只考虑使用 UserService 提供的登录用户的电子邮件地址。用户电子邮件地址只有在用户登录时才知道,敏感实体没有引用用户的电子邮件地址——只有用户 ID。

问题 2:用户电子邮件地址作为加密 key 是否有意义?如果不是,还有哪些其他众所周知的加密 key 选项?

最佳答案

我不确定您是否从中获益良多。通过 SSL 传输数据当然是个好主意。如果您以未加密的方式存储用户数据,那么有人在劫持任何内容之前仍然必须获得对您​​的数据存储的访问权限。如果您根据用户对象的属性加密数据,则必须在客户端加密/解密代码中公开该关系,因此这基本上是公开的。获得对您的数据存储和 App Engine 源的访问权限的人仍然可以解密所有内容,只是比较棘手。

一种替代方法是将您的加密 key 存储在服务器端,但采取一些额外的步骤来保护它。 Permanently prohibit code downloads .将您的加密 key 保存在源代码中,而不是数据存储中,但不在源代码管理中。将它贴在 USB key 上,并编写一个自定义部署包装器,在最后一分钟将 key 注入(inject)您的代码、部署,然后删除代码。这样,获得您的应用程序的管理员权限和源代码控制访问权限的人仍然无法解密用户数据。您的部署机器仍然容易受到攻击,但您已经减少了攻击空间。

如果您想更进一步,让用户生成自己的加密 key ,并将它们存储在客户端。切勿将它们传输到服务器。攻击者仍然可以针对一个用户,但包括您在内的任何人都无法解密大量用户数据。如果用户丢失了他们自己选择的 key ,他们的数据将永远丢失。

关于security - 在 App Engine 上加密用户数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6040673/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com