【问题标题】:Encryption/Decryption key exchange PHP/SQL加密/解密密钥交换 PHP/SQL
【发布时间】:2019-08-02 17:45:27
【问题描述】:

我目前正在升级我使用的其中一个平台的安全性。但是,我无法破解如何安全地存储我的加密/解密密钥。

当前设置:
MySQL 服务器
网络服务器

我需要使用 AES_ENCRYPT/AES_DECRYPT 存储和读取数据库中的所有敏感数据。但是,我想安全地存储数据加密/解密的密钥。因此,如果有人获得了对数据库或网络服务器的访问权限,他们将无法轻易猜出组合键或从配置文件中读取它。

密钥可以根据我需要读/写的数据而改变。

这有可能吗?我想到的第一个选项只是使用基于我需要读取的数据的某些列的组合键。但是,如果有人要同时掌握源代码和数据库,则可以通过查看代码来猜测。

有什么想法吗?

【问题讨论】:

  • 如果你真的想让它变得安全,你可以使用像密钥管理服务这样的东西。它们将加密密钥(例如)存储在特殊驱动器上,并且是存储密钥的行业标准(至少据我所知,如果我错了,请纠正我)。当然它们不是免费的,但我只是想提一下,让你看看这种可能性。
  • @LLJ97 - 我今天正在使用 AWS。我看过aws.amazon.com/kms - 你说的是这样的吗?
  • 完全正确。我其实也在看aws。这是一种非常安全的密钥存储方式。
  • @LLJ97 谢谢。我将使用 AWS KMS :) 随意将其添加为答案,以便我接受它。

标签: php mysql encryption


【解决方案1】:

使用 AWS KMS 等密钥管理服务是一种简单且安全的密钥存储方式。

他们(应该)将密钥存储在经过 FIPS-140-2 验证的硬件安全模块上,这些模块专为存储和加载密钥而设计。

在线密钥管理服务批量执行此操作并提供 API 来使用您的密钥。

它们是行业标准,应该用于安全地存储密钥,因为将它们存储在文件或数据库中可能是安全的,但不能保证。

【讨论】:

    猜你喜欢
    • 2018-02-03
    • 1970-01-01
    • 2012-06-13
    • 1970-01-01
    • 2020-04-23
    • 2012-09-09
    • 2013-02-06
    • 2011-07-11
    • 2023-04-07
    相关资源
    最近更新 更多