我有一个网络应用程序(我之前在这里讨论过)。用户可以使用它来保存人们的联系方式。这些联系方式经过加密,以确保在泄露时难以获得。
加密系统的设计也使管理员也无法访问数据。加密密钥基于用户的密码。
我正在研究启用密码恢复的方法。这里的问题是,目前忘记密码也会导致数据全部丢失 - 因为密钥是基于密码的,如果您不知道密码,那么您的密钥就无法计算出来,并且您的数据无法解密。不理想。
我有几种方法可以解决这个问题:
- 存储解密密钥。从安全的角度来看,这似乎是一个糟糕的主意,所以如果可以避免的话,我真的宁愿不这样做。
- 有两个密码。一个用于进入帐户,一个用于加密密钥。这对用户有影响——他们必须记住两个密码。
可能还有其他我想不到的有效方法。这些似乎都不是很安全 - 还是我错了?有什么安全的方法可以做到这一点?
