我有一个网络服务器应用程序,它接收上传的文件,使用AES256加密和解密它们。我加密了它们,所以潜在的黑客,不知何故进入存储,无法对文件做任何事情。目前,每个文件都使用相同的硬编码密钥进行加密。
使用存储在数据库中的其他随机密钥加密每个文件是否更安全,可能是哈希(也是盐渍)?这甚至提供更高级别的安全性吗?或者将这些密钥存储在数据库中会更糟糕吗?
答案 0 :(得分:0)
密钥存储是一个相当基本的问题,如果没有相当特殊的硬件,很难解决。
只要您将密钥存储在与加密数据相同的计算机上,攻击者就可以同时获得这两种密钥。如果你有更多的钥匙,那根本不会发生变化。
你不能散列/加密密钥,因为散列是一种单向函数,只有存储的散列你自己(或你的应用程序)无法计算密钥,所以这是没有意义的
如果可行,您可以在应用服务器启动时手动输入密钥,因此密钥只能存储在RAM中,而不是磁盘上。确保它没有被分页到交换分区。
如果您可以加密文件客户端(上传前),那么只有用户才能拥有密钥,这样会更安全......