【问题标题】:Is there some security advantage to using pgcrypto instead of partition-level encryption?使用 pgcrypto 代替分区级加密是否有一些安全优势?
【发布时间】:2015-03-20 02:08:48
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: postgresql encryption


    【解决方案1】:
    • 您可以在不影响数据的情况下授予 DBA SQL 级别的访问权限。
    • 您可以为不同的数据使用单独的加密密钥
    • 您的备份(转储)已加密
    • 如果客户端提供加密密钥,则服务器不必信任
    • 如果您将应用服务器与数据库服务器分开,则加密密钥只能在应用服务器上。
    • 您只能加密部分数据。
    • 最后但并非最不重要的一点:pgcrypto 不仅仅是对称单密钥加密,例如非对称加密、加密散列、密码安全 PRNG、密码散列。

    【讨论】:

    • “如果客户端提供加密密钥,则服务器不必受信任” 不完全正确,因为使用 pgcrypto 时密钥被发送到数据库服务器,因此,在数据库服务器(但不是应用程序服务器)被入侵的情况下,在被入侵的范围内。正如他链接的页面所述:“解密的数据和解密密钥存在于服务器上......这提供了一个短暂的时刻,数据和密钥可以被完全访问数据库的人截获服务器,例如系统管理员。”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-27
    • 1970-01-01
    • 2012-01-11
    • 2012-10-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多