小编Rob*_*yle的帖子

保护Google应用引擎数据存储区中的数据

我们的谷歌应用引擎应用程序存储了大量的个人识别信息(电子邮件,ssn等)来识别用户.我正在寻找有关如何保护这些数据的建议.

我目前的策略

将敏感数据存储为两种形式:

  • 散列 - 使用SHA-2和盐
  • 加密 - 使用公钥/私钥RSA

当我们需要做仰视时:

  • 查看散列数据(在查询中散列PII,将其与数据存储区中的散列PII进行比较).

如果我们需要重新散列数据或以原始形式处理它:

  • 使用我们的私钥解密加密版本.永远不要以原始形式存储它,只需处理它然后重新哈希并重新加密它.

我的担忧

保持哈希盐的秘密

如果攻击者获得数据存储区中的数据,以及我们的哈希盐,我担心他们可能会强行攻击敏感数据.其中一些(如SSN,一个9位数字)没有大的密钥空间,所以即使使用现代哈希算法,我相信如果攻击者知道盐就可以完成.

我目前的想法是将盐保持在源代码控制之外并保存在自己的文件中.该文件在部署期间加载到GAE,应用程序在需要散列传入数据时读取该文件.

在部署之间,salt文件存在于受愤怒的熊(或保险箱)保护的USB密钥上.

盐只生活在两个地方

  1. USB密钥
  2. 部署到谷歌应用程序

并且在永久禁用代码下载的情况下,我无法想到有人在不偷取USB密钥的情况下获取盐的方法.我错过了什么吗?

保密我们的私人RSA密钥

不那么担心这个.我们很少需要解密加密版本(仅当我们更改哈希算法或数据格式时).

私钥永远不必触及GAE服务器,我们可以下载加密数据,在本地解密,处理它,并重新上传加密/散列版本.

我们可以将我们的RSA私钥保存在由熊和老虎守卫的USB记忆棒上,并且只在我们需要它时将它带出来.


我意识到这个问题并不完全是谷歌应用程序,但我认为GAE使情况有点独特.

如果我有完全控制权,我会做一些事情,例如锁定部署访问权限和使用双因素身份验证访问数据存储区查看器,但这些选项目前不可用(拥有GAE特定密码是好的,但我喜欢涉及RSA令牌).

我也不是GAE专家,也不是安全专家,所以如果我有一个漏洞,或者我想不出具体的平台,我很乐意听到.

python security google-app-engine rsa sha

17
推荐指数
1
解决办法
3703
查看次数

标签 统计

google-app-engine ×1

python ×1

rsa ×1

security ×1

sha ×1