los*_*rse 8 encryption postgresql pgcrypto postgresql-9.6
我需要加密PostgreSQL 9.6数据库中的一些列.被加密的数据本质上是敏感的; 但是,数据不是密码或其他身份验证凭据.需要对这些数据进行解密,以供用户进行统计分析和消费.
看完几个问题和答案后:
......并考虑以下评论:
...使用pgcrypto模块似乎最大的问题是在同一个数据库中存储密钥.
是否与将密钥存储在不同数据库中并通过外部数据包装器(如Postgresql_FDW)访问它的最佳实践一致?
秘密存储是使用加密机制时的一个常见问题。
pgcrypto 不提供密钥存储,您可以自由地将密钥存储在您想要的位置并尽可能地保护它。
如果由同一个 DBA 管理,将密钥存储在另一个数据库中并不能提供太多的安全性,因为 DBA 可能会以相同的方式访问它。
理想情况下,您可以将密钥存储在安全的保管库中,并从应用程序请求它以构建查询。当请求运行时,DBA 仍然可以看到它select * from pg_stat_activity。
您可以设置 SQL 会话广泛使用的密钥,set session my.vars.cryptokey = 'secret';然后使用以下语法将其用于查询中:current_setting('my.vars.cryptokey')::text
为了从应用程序的角度来看(几乎)透明,PostgreSQL 规则可能有助于转换secure_column为使用会话存储密钥调用解密函数。对于插入,需要预插入触发器。
| 归档时间: |
|
| 查看次数: |
4382 次 |
| 最近记录: |