1

我想创建一个使用 PostgreSQL 作为数据库的 Web 应用程序。我希望对数据库进行加密,这样即使是对数据库服务器具有 root 访问权限的攻击者也无法解密数据(或者至少他将不得不处理临时内存中的数据,这很困难)。我不关心架构,只关心表的内容。

我也不想将解密密钥存储在应用程序服务器上的某个位置(既不在配置文件中,也不在硬编码中)。

相反,我的想法是使用用户通过 Web 应用程序提供并在运行时解密的密钥来加密整个数据库(或者只是表和行?)。

PostgreSQL 是否可以实现这种情况,我有哪些选项可以实现这一点?

旁注:这是一个基于 .NET 的应用程序 (ASP.NET MVC3),我使用的是 Npsql 驱动程序。

4

1 回答 1

1

使用pgcrypto进行加密。但是,超级用户可以控制日志文件并告诉数据库记录所有内容,每次查询。这将包括查询,包括您的密码。

您可能想要使用 SELinux 和SEPostgreSQL

于 2012-05-08T18:43:49.663 回答