我正在创建一个应用程序,它将自动使用安全密钥(.key)对代码进行签名。该应用程序将在.NET环境(C#)开发的Windows环境下运行。签名很简单:源代码+键将生成签名的工件。这个已经就位了。我面临的挑战是如何尽可能安全地存储密钥。
我正在考虑的是用像VeraCrypt这样的工具加密密钥。每当应用程序需要对代码进行签名时,对文件进行加密、签名和解密。例如,VeraCrypt为此提供了命令行选项。这就引出了另一个问题:如何在应用程序中安全地存储密码。
既然我不是一个安全专家,你能给我一些建议的解决方案吗?还有哪些选择是合适的,也许更好呢?
发布于 2017-02-03 15:34:21
您遇到了一个非常棘手的问题;在软件中存储密码密钥时,您实际上有三种选择:
幸运的是,Windows和.NET拥有非常好的名为CAPI: Crypto API的密钥管理API。
首先,我会在谷歌上搜索"存储密码密钥的窗口.net“并做一些阅读。特别是这篇文章似乎是一个很好的起点:
如果您正在编写将在您控制的数据中心中运行的are服务,那么您可以考虑使用硬件安全模块。另外,像Amazon和Azure这样的托管提供商提供了API,而不是需要您自己的物理HSM。尽管如此,这些设备的起价为5,000美元,对大多数应用程序来说都是过分的。
https://security.stackexchange.com/questions/150299
复制相似问题