我们存储了我们不应该访问的客户信息,并且不想让用户在忘记密码时丢失信息而给他们带来不便,有没有一个好的方法可以解决这个问题,以便有权访问我们的 AWS 的开发人员无法读取客户数据,这样客户就可以重置密码,而不会失去对其数据的访问权限?
答案1
从您对问题的描述来看,您似乎已经考虑使用(派生自?)用户密码作为加密密钥。因此,丢失密码意味着丢失加密密钥意味着无法访问数据。这也意味着只有一个用户可以访问特定数据集。
但是,如果你分配一个随机密钥来加密数据,那么你可以使用不同的用户密钥创建该数据加密的多个副本。即用户访问看起来像
PLAINTEXT = DECRYPT( CIPHERTEXT, DECRYPT ( KEY_DATA[USER], USER_PASSWORD))
剩下的问题是如何恢复访问权限 - 在某些时候,某人或某物需要知道用户的新密码(或用于加密数据密钥的派生等效密码)和备用密钥。此外,它为拒绝服务类型的攻击打开了一扇大门,因为该过程还应该使用忘记的密钥撤销访问权限。如何将出现的风险降至最低是一个操作考虑因素。