加密 postgresql 数据库

加密 postgresql 数据库

我正在阅读 postgresql 数据库文档,但我找不到任何有关加密数据库文件以防止有人在没有数据库密码的情况下查看数据的内容。例如,如果有人物理访问服务器,是否有某种方法可以使 postgresql 安全?

我知道 Linux 可以按照文档中的说明加密分区,但这不是我想要的。

答案1

为了保护您的数据免遭对服务器的物理访问,您需要将加密/解密至少部分移出服务器。如果您的服务器可以在没有外部帮助的情况下启动并安装其加密分区,那么它很容易受到攻击。

如果您只关心物理删除(涉及服务器重新启动),那么磁盘加密可能如果加密密钥存储在服务器之外就足够了;例如,使用网络加密(网络上其他地方的密钥解锁服务器,例如唐和U形夹),或作为格罗赫马尔建议在启动时手动输入密钥(但在后一种情况下,您的服务器将无法在无人值守的情况下启动,这可能会带来很大的不便)。

如果您一般关心物理访问,那么您应该使用客户端上存储的信息执行加密和解密,例如使用PG加密,或者甚至仅在客户端上执行加密和解密,并在客户端应用程序中进行编码。在这些情况下,尽管加密的数据不再可用于查询,除非您实施同态加密。其中涉及到很多微妙之处,例如数据表示(NULL特别是值),因此您可能应该与安全专家交谈(无需重新发明轮子......)。

相关内容