here
我现在需要安全地存储对称密钥。在回顾选项之后,听起来这可能是一个不错的选择:
设置:
php_key - stores a symmetrically encrypted symmetric key that is used for OTHER tables
php_key_hash - stores a hmac of the symmetric key
其他表格(如其他帖子所述):
last_name - symmetrically encrypted value encrypted with key after being unencrypted from php_key
last_name_hash - hmac of last_name
登录/密钥安全保护:
2) 登录后,用户将看到一个屏幕,在那里他们必须输入另一个密码-该密码将与公司的所有员工共享(只有5名员工很容易记住)。我们称之为键1。
3) 该密码已执行hmac,并与数据库中的php\u key\u散列进行比较。
如果失败了,我可以在这里错误的用户。
4) 如果匹配,则下拉php\u密钥,使用相同的密码解密,并将其存储在session变量中。
我觉得这很安全因为
4) 你必须登录网站基本上两次(一次与你的登录,再次与键1)
5) 使用会话变量意味着key2只存储在内存中,并且只存储在服务器上,并且在会话结束后被销毁
6) 如果我们需要更改密码短语,我可以随时重新输入key1,例如,如果员工离开或者我们认为它被泄露了
潜在问题又名我的问题(最后)
首先,我决不是一个安全专家,因此我只想得到比我更擅长安全的人的意见:)
2) 将对称密钥(key2)存储在会话变量中-人们在RAM上冲浪时可能出现问题?也许将key1存储在会话变量中,然后每次都要经历双重解密(但可能很慢)会更好?我是不是太谨慎了?