【问题标题】:Securing sensitive data in a DB,is using H2 worth it?保护数据库中的敏感数据,使用 H2 值得吗?
【发布时间】:2011-11-13 13:54:27
【问题描述】:

我目前正在设计一个 Web 应用程序,其中一项要求是保护用户凭据及其角色。现在 ofc 除了通常的密码哈希 + 盐 +.... 我正在考虑将这些特定表放入加密的 H2 数据库中,并将其余数据放入 MySQL 数据库中。在我的情况下,H2 的优点是:内存存储,因此意味着更快的访问;加密的数据库,以便在服务器受到威胁时提供额外的安全保护。

我的问题:当需要额外的安全层时,这是一种常见的做法吗?这意味着将登录信息(在我的情况下,它是敏感数据)与其他数据分开是个好主意吗?

谢谢

【问题讨论】:

    标签: java mysql security web-applications h2


    【解决方案1】:

    我认为这并没有真正增加相关的安全层。

    如果您的服务器被入侵并且您的服务器可以验证用户的凭据,那么入侵您服务器的人也拥有验证它所需的数据(例如:您需要将加密密钥/密码存储在服务器上以解密数据库,除非您在每次启动时都输入它)。

    而且:它会使您的设置变得相当复杂,这本身会导致很多安全问题(“为什么组件 A 不能读取这个文件?哦,我会让它成为全世界可读的”)。简单可能有利于安全。

    【讨论】:

    • 嗯..我明白你的意思。假设在我的情况下,数据库存储在与 webapp 不同的服务器上,因此使用安全通道从服务器 A 到服务器 B 进行通信。但我同意,这会使设置复杂化......让我这样说吧,如果你正在设计一个数据库并且你知道你必须保护存储在几个表上的特定敏感数据,你会怎么做?
    【解决方案2】:

    如果应用程序非常简单,我认为您只能使用一种类型的数据库,例如mysql。您可以在存储到数据库之前对密码进行哈希处理。请注意,散列与加密不同,因为您无法从散列密码中获取实际密码。当用户尝试登录时,您对用户输入的密码进行哈希处理,并比较已经存储在数据库中的哈希值。如果使用盐值,那么即使黑客可以访问散列密码,黑客也很难获得实际密码。

    对于更复杂的应用程序,我建议使用其中一个 ldap 服务器(例如 openladp)。然后您就可以免费获得密码策略和散列。

    【讨论】:

      【解决方案3】:

      好的,我在安全论坛上得到了答案,有兴趣的人可以点击链接https://security.stackexchange.com/questions/7062/securing-sensitive-data-in-a-db-is-using-h2-worth-it

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-07-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-14
        • 2012-02-16
        • 2011-01-19
        • 2014-07-14
        相关资源
        最近更新 更多