使用pgcrypto而不是分区级加密是否有一些安全优势



此处的文档:http://www.postgresql.org/docs/8.2/static/encryption-options.html描述了使用postgresql时加密数据的几种方法。

我想知道使用pgcrypto加密特定列是否有任何安全优势,而不是简单地加密数据库所在的整个分区。在我看来,pgcrypto使用起来很麻烦(而不仅仅是使用SQL查询,而不必担心事情被加密),所以它的存在应该是有原因的。只是因为人们可能没有能力管理数据库服务器(共享主机等),所以他们只能使用pgcrypto,还是有安全原因?

在我的特定情况下,应用程序代码和数据库位于同一主机上,因此在服务器运行时损害服务器本身会导致数据以任何方式泄漏(在一种情况下,可以在代码中查找加密密钥,或者在另一种情况中,只需从已装入的卷中检索数据)。

编辑:我忘了提一下,在这种特殊情况下,数据是由服务器而不是客户端使用的,即客户端不能在运行时提供密钥,它必须在应用程序代码中的服务器上。

  • 您可以在不影响数据的情况下授予DBA SQL级别的访问权限
  • 您可以为不同的数据使用单独的加密密钥
  • 您的备份(转储)已加密
  • 如果客户端提供加密密钥,则不必信任服务器
  • 如果将应用程序服务器与数据库服务器分离,则加密密钥只能在应用程序服务器上
  • 您只能加密部分数据
  • 最后但并非最不重要的是:pgcrypto比对称单密钥加密有更多的功能,如非对称加密、加密哈希、cryto-safe PRNG、密码哈希

最新更新