Encryption 在Web服务器应用程序中管理和存储AES密钥

Encryption 在Web服务器应用程序中管理和存储AES密钥,encryption,web-applications,aes,Encryption,Web Applications,Aes,我有一个Web服务器应用程序,它接收上传的文件,并使用AES256对其进行加密和解密。我对它们进行了加密,这样一个不知何故进入存储的潜在黑客就不能对这些文件做任何事情。目前,每个文件都使用相同的硬编码密钥进行加密 使用存储在数据库中的其他随机密钥加密每个文件是否更安全,也可能是散列和盐析的?这是否提供了更高级别的安全性?或者在数据库中存储这样的密钥会更糟糕吗?密钥存储是一个非常基本的问题,如果没有非常特殊的硬件,很难解决 只要您将密钥与加密数据存储在同一台计算机上,攻击者就会同时获得这两个密钥。

我有一个Web服务器应用程序,它接收上传的文件,并使用AES256对其进行加密和解密。我对它们进行了加密,这样一个不知何故进入存储的潜在黑客就不能对这些文件做任何事情。目前,每个文件都使用相同的硬编码密钥进行加密


使用存储在数据库中的其他随机密钥加密每个文件是否更安全,也可能是散列和盐析的?这是否提供了更高级别的安全性?或者在数据库中存储这样的密钥会更糟糕吗?

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

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

您也不能对密钥进行哈希/加盐,因为哈希是单向函数,仅使用存储的哈希,您自己或您的应用程序将无法计算密钥,因此这是毫无意义的

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

如果你可以在上传之前加密客户端文件,这样只有用户才有密钥,那会更安全