gpt4 book ai didi

php - 两种方式的数据库加密甚至对管理员都是安全的

转载 作者:IT老高 更新时间:2023-10-29 00:21:05 25 4
gpt4 key购买 nike

我手头有一个有趣的加密问题。我不知道它是否可以解决,但这里是:

数据库将包含敏感的用户信息。因此,必须对用户信息进行加密(双向加密)。用户有一个登录名/密码,这些可以用于双向加密。现在,加密的设计方式是,即使是查看数据库表的管理员也无法理解用户信息。

但是,设计必须考虑到用户可能忘记密码的情况。如果密码用于加密,忘记密码意味着信息丢失 - 不需要。如果用户密码本身使用双路算法(而不是单路哈希)存储在数据库中,并且在脚本中硬编码了一个 key ,那么管理员可以通过查看脚本来发现硬编码的 key (管理员当然可以访问到脚本)。

有人知道解决办法吗?

PS:这是一个真正的问题。我的公司是一个绝对的安全狂热者(ISO 27001 和所有),我被委托(delegate)设计一个具有上述功能的系统。顺便说一句,我正在使用 PHP 脚本和 MySQL。

编辑:可能之前并不清楚,用户需要每天查看/编辑此用户信息。

最佳答案

您需要的是恢复代理。对所有数据加密两次:一次使用用户 key ,一次使用恢复代理(公共(public)) key ;至少后一个需要是不对称的。使用正式的访问协议(protocol)(例如四眼原则)将恢复代理 key 保存在物理保险箱中。通常,管理员无法访问加密数据,但如果用户丢失了 key ,并且授权恢复,则可以获得恢复 key 。

还有一些方法可以加密恢复代理的 key ,以便 n 人中有 m 人必须同意使用它。

编辑:一种实现策略是对所有内容进行两次加密。或者,对于需要独立恢复的每个数据集,创建一个新的对称 key ,并只对该 key 加密两次;原始数据仅使用 session key 加密。这种方法可以扩展到多个独立的读者;它需要每个读取器的非对称 key (以便您可以使用所有读取器的公钥加密 session key - 一个是恢复代理)。

我从 Microsoft 的 Encrypting File System 中复制了术语,已实现该计划。

关于php - 两种方式的数据库加密甚至对管理员都是安全的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1192485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com