公私钥存储 mysql_php – 在MySQL中使用/存储加密密钥的最佳方法是什么?

本文探讨了使用MySQL与PHP的M_CRYPT扩展进行数据加密的优缺点。建议在服务器启动时输入密码并存储在内存中以增强安全性。方法包括在用户创建时分配随机密钥,加密存储在数据库中,使用主密码加密,以及文件系统中的最小权限存储。这种方法确保即使攻击者获取部分密钥,也只能访问部分文档。然而,主密码的安全性至关重要,一旦泄露,整个系统可能被破坏。
摘要由CSDN通过智能技术生成

我不知道如果使用MySQL构建加密将是您的问题的最佳解决方案.

PHP的M_CRYPT软件包被认为是非常好的,它可以灵活地选择最适合您需求的算法.

将密钥存储在其他服务器上有一个很大的优点:密钥与加密数据不在同一台机器上).所以只要攻击者对受攻击的机器没有足够的控制权,就无法得到钥匙.

如果攻击者对数据进行完全控制,那么他们很有可能会查询该Web服务的密钥.

然而,将密钥从一台机器传输到另一台机器打开了需要保护的整个新区域.可能涉及更多密钥和更多加密层,从而增加错误的机会.

*)另一个选项是在网络服务器启动时输入密码,并将其保存在内存中.

可能的解决方案

如果看到使用的解决方案使用以下方法来加密具有Web访问权限的用户的文件(我不确定您的环境,但可能会有所帮助):

>在用户创建时,为新用户分配一个长随机密钥.

>该随机密钥存储在用户记录中的加密列中.

(只有这个列被加密才能影响其他记录的性能!)

>随机密钥列的加密使用1个主密码,存储在文件或内存中.

(更好的选择是在盯着您的网络服务器时输入密码,并将其存储在内存中.)

(另一种方法是让用户输入密码并将其用于加密/解密随机密钥列,但是我不知道这是否会增加或减少安全性)

>需要加密的每个文档都使用该用户的随机密钥进行加密,然后存储在磁盘上.

>文件以文件系统中的最小权限存储.

这种方法的优点是:

随机密钥在数据库中加密.因此,您还可以与加密列结合使用数据库服务器的附加安全性.

2.文件存储有不同的密钥,如果攻击者持有密钥,则只有部分文档被泄露.

然而:如果攻击者掌握了主密码并对用户表进行了读取访问,则整个系统再次被破坏.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值