【问题标题】:Storing sensitive data in mySql在 mySql 中存储敏感数据
【发布时间】:2013-03-04 01:16:50
【问题描述】:

我希望加强我的一个客户网站的安全性。没有设置支付提供商,因此敏感的直接借记信息需要在 mySql 服务器上。此直接借记信息需要会计部门的用户可读。

测试服务器设置如下:

  1. 目前,主站点位于 wordpress 博客上。
  2. 客户使用 EV SSL 证书填写 HTTPS 加密表格。
  3. 数据存储在与 wordpress 数据库不同的数据库中。
  4. 直接借记详细信息当前以纯文本形式存储

现在第 4 部分让我很困扰......但目前还可以,因为只在测试服务器上!

【问题讨论】:

    标签: https security public-key-encryption encryption-asymmetric


    【解决方案1】:

    这真的很难回答,因为这取决于您需要保护这些数据的程度。

    第一步显然是加密存储在 mysql 中的所有详细信息,以防有人得到你数据库的转储。

    这个解决方案很好,但它引入了漏洞,就好像有人从您的应用服务器获取解密密钥一样,他们无论如何都能够解密数据库的转储。

    这里有很多解决方案需要考虑,我相信通过一些研究你应该能够找到一些不错的解决方案,但我想到的一种方法是:

    您可以使用公钥/私钥加密算法对应用服务器上的数据进行加密。公钥只能用于加密存储在您的应用服务器上的信息。如果这被黑了,他们唯一能做的就是向您的数据库添加更多数据 =/。在这种情况下,私钥将是每次人们需要查看此信息时都需要输入的密码。

    这有一个明显的缺点,即您不能对您的数据进行任何机器处理,因为它的传输一直完全加密,直到显示为止。

    (并且您仍然存在有人访问您的应用程序服务器并简单地将必须临时存储密钥的会话文件/memcache 转储到其中的漏洞)

    说实话,我要做的第一件事就是以某种方式加密整个数据库。仅此一项就增加了一层不错的保护。在大多数情况下,转储数据库比访问服务器的文件系统更容易。

    【讨论】:

    • 我认为您间接击中了头上的钉子 - 在任何情况下都不得从 Web 前端读取直接借记数据库。这是经典的安全隔离。
    • 好点,隔离安全+1。我不倾向于依赖从第一步开始的隔离。通常我会尽我所能散列,因此我在物理上没有拥有数据,如果需要可逆方法,则改为加密和保护密钥。只保护密钥而不是整个数据库更简单
    【解决方案2】:

    您是在谈论银行帐户详细信息/信用卡详细信息还是两者兼而有之?

    请注意,存储信用卡详细信息会附带满足 PCI 要求。

    此外,如果您打算存储机密详细信息,切勿以未加密的方式存储它们。

    有任何问题,请告诉我。

    法比奥 @fcerullo

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-10
      • 2017-09-05
      • 2020-02-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-15
      • 1970-01-01
      相关资源
      最近更新 更多