【发布时间】:2016-08-11 06:24:18
【问题描述】:
我将 Ruby on Rails 4.2 与 mySql 一起用于我的 HIPAA 合规性应用程序,我需要了解此应用程序的技术数据库要求。
我们真的需要加密所有的数据库值,例如患者姓名等吗?
【问题讨论】:
标签: mysql sql ruby-on-rails hipaa
我将 Ruby on Rails 4.2 与 mySql 一起用于我的 HIPAA 合规性应用程序,我需要了解此应用程序的技术数据库要求。
我们真的需要加密所有的数据库值,例如患者姓名等吗?
【问题讨论】:
标签: mysql sql ruby-on-rails hipaa
HIPAA 要求还不够严格。简而言之,它声明您必须在静止时加密医疗记录,并且您不能使用损坏的原语,这是显而易见的。审核您的系统的人可能喜欢查看 AES。这很容易支持,并且 Amazon RDS MySQL 实例已经通过 aes_encrypt() 和 aes_decrypt() 函数开箱即用地支持此功能。
HIPAA 和 PCI-DSS 的不足之处在于它们没有说明应该使用哪种操作模式。实际上 MySQL 的 aes_encrypt() 使用的是 ECB 模式,这很可怕。此外,在这一层使用加密时,实施安全性存在问题。通过配置 mysql 记录所有查询,aes_encrypt() 很容易破解。 AES 密钥必须嵌入到您的应用程序中,因此如果它被泄露,攻击者可以从配置文件中读取值并访问记录。这是可以通过加密应用程序中的数据然后将密文传输到数据库来避免的两个故障点。但是 HIPAA 并不关心这个问题。 HIPAA 的其他要求(例如要求 CISSP 来分析您的应用程序)更为重要。
我敦促您实施一个安全的系统,但 HIPAA 的设计不够好,无法引起重视。
【讨论】:
是如果您希望您的 Rails 应用程序符合 HIPAA 标准,则必须加密与患者和医生相关的所有详细信息(姓名、电子邮件、电话、地址)。
以下 2 个 Ruby gem 对你很有帮助。
attr_encrypted:https://github.com/shuber/attr_encrypted
paper_trail:https://github.com/airblade/paper_trail
HIPAA 是一项不同寻常的法律,它提出了很多建议(可寻址项)和一些断言(必需项),但最终由每个组织自己决定他们需要做什么才能成为合规性。这创造了很大的灵活性,也带来了很大的不确定性。一般来说,要符合 HIPAA,网站必须至少确保以下所有受保护的健康信息 (ePHI):
传输加密:在通过 Internet 传输时始终加密
备份:永远不会丢失,即应该备份并且可以恢复
授权:只有使用独特的、经过审核的访问控制的授权人员才能访问
完整性:未被篡改或更改
存储加密:在存储或归档时应加密
丢弃:不再需要时可以永久丢弃
综合/HITECH: 位于与您签订 HIPAA 业务伙伴协议的公司的网络服务器上(或者它在内部托管并且这些服务器根据 HIPAA 安全规则得到适当保护要求)。
【讨论】: