【问题标题】:Encrypt data for multiple user access加密数据以供多用户访问
【发布时间】:2013-11-15 09:57:49
【问题描述】:
我们有一个应用程序,任何注册用户都可以在其中创建自己的公司并将该公司的访问权限授予任何注册用户。
每个公司都由 Postgresql 的模式表示。
有没有一种方法可以在模式中加密/解密用户数据,而无需使用存储在应用程序源代码中的静态密钥进行加密/解密?添加到公司的每个用户都必须有权访问公司的数据。
感谢回答
【问题讨论】:
标签:
ruby-on-rails
security
postgresql
encryption
multi-tenant
【解决方案1】:
这是一个关于哪些书可以写的问题。所以请记住,这是一个难题,您必须对这些问题采取非常复杂、长期的方法。本质上,您不需要静态密钥,并且您不想存储未加密的密钥。您有几个重要的问题需要考虑:
密钥管理和轮换。您可能需要使用公钥加密对每个用户的静态密钥进行加密,并确保他们不会让他们的私钥不受保护!
意外密钥泄露。所以 Pg 端的数据现在是加密的。别人怎么可能拿到钥匙?简而言之,您不能定期记录查询,您可能希望在日志中将错误级别设置为 FATAL 等。PostgreSQL 无法轻松防止这种情况。
意外的明文泄露。例如,出于性能原因,这可以通过创建解密数据的索引来实现.....还需要查看连接窃听等等。