Ksh*_*KJ- 11 php mysql encryption
我手边有一个有趣的加密问题.我不知道它是否可以解决,但这里有:
数据库包含敏感的用户信息.因此,必须加密用户信息(双向加密).用户具有登录/密码,这些可用于双向加密.现在,加密的设计方式使得即使是查看数据库表的管理员也不应该理解用户信息.
但是,设计必须处理用户可能忘记密码的情况.如果密码用于加密,忘记密码意味着信息丢失 - 不想要.如果用户密码本身使用双向算法(而不是单向散列)与脚本中硬编码的密钥存储在数据库中,则管理员可以通过查看脚本来发现硬编码密钥(管理员当然可以访问到脚本).
有人知道出路吗?
PS:这是一个真正的问题.我的公司是一个绝对的安全狂热者(ISO 27001和所有),我受委托设计一个具有上述功能的系统.顺便说一句,我使用的是PHP脚本和MySQL.
编辑:可能之前不清楚,用户需要每天查看/编辑此用户信息.
Mar*_*wis 16
你想要的是一个恢复代理.加密所有数据两次:一次使用用户密钥,一次使用恢复代理(公共)密钥; 至少后者需要是不对称的.使用正式的访问协议(例如四眼原则)将恢复代理密钥保存在pyhsical safe中.通常,管理员无法访问加密数据,但如果用户丢失密钥并且授权恢复,则获取恢复密钥.
还有一些方法可以加密恢复代理的密钥,以便m-out-of-n人必须同意使用它.
编辑:一种实施策略是加密所有内容两次.或者,对于需要独立恢复的每个数据集,创建一个新的对称密钥,并仅加密该密钥两次; 原始数据仅使用会话密钥加密.这种方法可以扩展到多个独立的读者; 它需要每个阅读器的非对称密钥(这样您就可以使用所有阅读器的公钥加密会话密钥 - 一个是恢复代理).
我复制了Microsoft的加密文件系统中的术语,该系统实现了该方案.
| 归档时间: |
|
| 查看次数: |
1125 次 |
| 最近记录: |