Ale*_*ene 5 security encryption
我们想为数据库添加额外的安全层,并且我们希望确保即使DB文件泄漏给公众-任何人都无法访问其中的实际数据。
另外,我们希望确保即使加密密钥泄漏,它也只允许解密一行或几行,而其他行仍然无法访问。
最佳做法是什么?
如果很重要-我们正在使用rails(5.1)+ postgres(9.6),并且我们的数据库正在AWS RDS中运行。
从你提出问题的方式来看,你根本还没有准备好,如果你试图解决它,你就会走向一个痛苦的世界。再次,应用大量推论,您似乎对从哪里开始感到困惑,这让我认为您还没有采取很多其他安全措施。这些措施可能会以更少的成本和风险为您带来更大的收益。
有几种不同的传统模型可对静态数据应用加密。您提出的附加要求将需要一个极其复杂的应用程序层来管理许多加密密钥。大多数专家会对尝试实施这一前景感到震惊。你要把所有的钥匙存放在哪里?您没有问到的问题也很能说明问题 - 您认为不透明数据对查询性能有什么影响?
是的,如果您的应用程序位于 AWS 中,则直接文件访问存在与专用设备上不同的潜在风险 - 但您可以通过使用文件系统或块级加密或 DBMS 的本机功能来处理该风险(了解后者对系统的影响)您的数据访问)。