Lev*_*evi 5 php security encryption administration
我正在编写一个接受敏感客户数据的php应用程序,因此我需要先将其加密,然后再将其存储在mysql数据库中.我将使用mysql的内置AES功能来进行列级加密.
我想避免在服务器上存储加密密钥,因此我将为管理员提供登录的网页,并输入加密密钥.我希望在应用程序运行时将此密钥存储在内存中,但永远不会永久存储到磁盘.
做这个的最好方式是什么?
我可以修改$ _SERVER数组以在请求之间存储信息吗?我可以用某种方式存储带有apache的密钥吗?也许共享内存?
而不是依靠MySQL AES进行加密,为什么不使用PHP的本机openssl加密方案(PECL扩展).这需要私钥和公钥,public需要加密,私有解密,密钥可以保存在不同的位置.
我最终将加密密钥存储在内存表中。所有对数据库的访问都是通过一组存储过程完成的;存储过程包括进行密钥管理(即将密钥插入内存表、更改密钥、检查密钥是否已输入等)以及存储/检索应用程序数据的能力。
通过这种设计,留在应用服务器上的数据库凭证仅具有通过一组定义的过程进行查询的授权,而无法直接读取加密密钥。
我喜欢这种方法,因为: