我创建了一个将解密密钥存储在文件中的程序,但是当我运行它时,密钥被解密并存储在公共类中,程序可以在所有实例中使用它,但我担心这种方法的安全性,因为很容易在系统内存中搜索并获取密钥。
我不是安全和密码学方面的专家,但我想知道是否有一种方法可以保护密钥免受系统内存中未经授权的访问。
答案1
在这种情况下,您无能为力 - 如果您的程序可以从文件中解密密钥,并且该程序在客户端的计算机上运行,那么客户端可以浏览您的程序,对其进行反汇编,并准确找出它解密密钥的方式 - 更不用说在内存中找到它了。我不是这方面的专家,但 TPM 模块是为了帮助解决这个问题而创建的 - 它们据称可以防止客户端篡改,但正如 Scott Chamberlain 提到的那样,如果您需要特定的密钥,那么问题就变成了如何将密钥安全地放入 TPM。