重载本机PHP函数以加密HIPAA合规性数据

Lev*_*ith 9 php mysql overloading mcrypt hipaa

背景资料:

我是运行Web应用程序的开发人员团队的一员,该应用程序存储和检索HIPAA(医疗)数据.最近,更新了HIPAA指南以包括一项策略,该策略要求所有识别客户信息在"静止"(存储在数据库中且未被访问)时加密.

最初的问题

我们必须解决的第一个问题是确定以双向加密数据的最佳方式,以便在发生破坏时使数据安全.

最初的解决方案

我们提出的最快的解决方案是在将数据插入数据库之前使用mcrypt加密数据.

新问题

我们正在开发的应用程序已经很老了(就像Web应用程序一样)并且使用了大量的过程编程以及严重依赖mysql_query函数来插入,更新,检索和删除数据.我们没有时间或奢侈地将我们的代码翻译成数据库抽象层.因此,实现此加密/解密系统的唯一方法是手动编辑所有CRUD查询以使用通过mcrypt加密的数据.这是非常低效且极易出错的.

我们提出的解决方案

我们认为解决问题的最快最有效的方法是用我们自己设计的方法覆盖本机mysql_query函数.在我们的新函数中,我们将在将查询发送到服务器/返回结果集之前加密/解密数据值.

你在哪里进来

  1. 这是解决我们最初问题的最佳解决方案吗?
  2. 你如何覆盖现有的核心PHP函数?

qua*_*oup 3

尽管您之前说过您不能/不会将代码转换为数据库抽象层,但我相信这将是理想的解决方案。当然,现在还有很多工作要做,但这是有回报的。您提出的是一种黑客攻击,它可能(并且可能会)在未来导致错误和麻烦。

下一个最好的办法是加密整个数据库,正如评论中所建议的那样。有不同级别的透明加密解决方案,即:这个这个

您可能想要研究的另一件事是 MySQL 的本机加密和解密功能,如果您担心性能,则可以使用它来实现列级加密。