gpt4 book ai didi

mysql - 安全的加密数据库设计

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

我有一个基于网络的 (perl/MySQL) CRM 系统,我需要一个人力资源部分来添加有关纪律处分和薪水的详细信息。

我们存储在数据库中的所有这些信息都需要加密,这样我们开发人员就看不到了。

我正在考虑使用 AES 加密,但我应该使用什么作为 key ?如果我使用人力资源经理的密码,那么如果她忘记密码,我们将丢失所有人力资源信息。如果她更改了密码,那么我们必须解密所有信息并使用新密码重新加密,这似乎效率低下且危险,如果过程中途出现错误,可能会出现可怕的错误。

我有一个想法,我可以有一个加密所有信息的加密 key ,并使用 HR 经理的密码来加密 key 。然后她可以随心所欲地更改密码,我们只需要重新加密 key 即可。 (并且没有人力资源经理的密码,数据是安全的)

但是仍然存在多用户访问加密数据的问题。

我可以将 key 的“纯文本”副本保存在异地,并使用每个新 HR 人员的密码对其进行加密。但后来我知道了万能 key ,这似乎不太理想。

有没有人试过这个并成功了?

最佳答案

GnuPG 允许使用多个公钥加密文档,并使用任何一个对应的私钥解密。这样,您就可以允许使用人力资源部门每个人的公钥对数据进行加密。解密可以由任何拥有私钥之一的人执行。解密需要系统知道私钥和保护 key 的密码。私钥可以保存在系统中,并从用户处获取密码。

数据可能会被 GnuPG 使用大量 key 变得非常臃肿:它必须为有效负载创建一个 session key ,然后使用每个公钥加密该 key 。加密 key 与数据一起存储。

系统的弱点是私钥需要对系统可用(即不受用户控制),密码短语必须通过系统,因此可能会被泄露( ie. logged, stolen) 通过狡猾的代码。最终,原始数据也会通过系统,因此狡猾的代码可能会妥协而不用担心 key 。良好的代码审查和发布控制对于维护安全至关重要。

您最好避免使用 MySQL 的内置加密功能:这些功能会记录在复制、慢速或查询日志中,并且可以在进程列表中可见 - 因此任何有权访问日志和进程列表的人都可以访问数据.

关于mysql - 安全的加密数据库设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2388256/

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