【问题标题】:Managing and storing AES keys in a webserver application在 Web 服务器应用程序中管理和存储 AES 密钥
【发布时间】:2014-11-14 22:49:01
【问题描述】:

我有一个网络服务器应用程序,它接收上传的文件,使用 AES256 对其进行加密和解密。我对它们进行了加密,因此潜在的黑客以某种方式进入了存储,无法对文件做任何事情。目前,每个文件都使用相同的硬编码密钥进行加密。

使用存储在数据库中的其他随机密钥加密每个文件是否更安全,也许是散列(和加盐)?这甚至提供更高级别的安全性吗?或者将这些密钥存储在数据库中会更糟吗?

【问题讨论】:

    标签: encryption web-applications aes


    【解决方案1】:

    密钥存储是一个相当基本的问题,如果没有相当特殊的硬件很难解决。

    只要您将密钥与加密数据存储在同一台机器上,攻击者就会同时获得两者。如果您只有更多的键,这不会从根本上改变。

    您也不能对键进行散列/加盐,因为散列是一种单向函数,仅使用存储的散列,您自己(或您的应用程序)将无法计算键,所以这是没有意义的。

    如果可行,您可以在应用服务器启动时手动输入密钥,因此密钥只存在于 RAM 中,而不是磁盘中。确保它不会被调出交换分区。

    如果您可以在客户端加密文件(在上传之前),那么只有用户拥有密钥,那会更安全...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-03
      • 1970-01-01
      • 2012-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多