在会话中安全存储加密密钥?

时间:2019-03-26 09:32:04

标签: php apache encryption mysqli key-storage

我有一个Web应用程序,要求用户注册并输入一些个人数据。

注册时,将生成一个主密钥,然后使用密码派生密钥对其进行加密并存储在数据库中。当用户登录时,主密钥将被解密并用于解密用户的数据。

哪里是存储解密后的主密钥的最佳位置,以使用户不必在每次需要访问其数据时都重新输入密码?

目前我对此的想法是:

  1. 用户登录和用于解密主密钥的密码派生密钥
  2. 生成新的随机密钥并用于加密主密钥
  3. 将新加密的主密钥存储在数据库会话表中
  4. 将新生成的随机密钥存储在用户浏览器中的cookie中,该cookie设置为在会话/注销结束时过期。

该网络应用由第三方托管,因此我无法选择创建加密分区等。

有人可以建议一种更好的方法吗?

谢谢

0 个答案:

没有答案