我有一个postgres数据库,其中一些表的列包含一些敏感数据,我使用了 PGCRYPTO 扩展名(pgp_pub_encrypt / pgp_pub_decrypt)进行加密,并使用了 gpg 来生成公共和私有数据密钥对。
我有两个问题:
这对密钥应该在哪里存储,因为我知道我应该使用相同的生成的私钥来解密列(我尝试将其放入postgresql.conf文件中,但这是行不通的)
我们可以为每个会话生成密钥对以使系统更安全吗?
公钥可以存储在任何地方。您可以将其存储在数据库中。
私钥属于您的应用程序。它应该存储在应用程序服务器上,以便应用程序可以提供它来解密数据库中的数据。