我正在开发一个控制台应用程序。此应用程序生成一个自签名证书并将其安装在当前机器的证书存储中。涉及的步骤是:-
- 生成证书
- 创建一个 pfx 文件
- 安装 pfx 文件
对于这些步骤,我需要一个密码来保护私钥和 pfx 文件。但是,这些密码仅在执行 exe 期间使用。我应该使用某种随机数生成算法自动生成密码还是接受用户输入的密码?
这两种场景都涉及哪些安全问题?
感谢所有的答复。密码的生命周期仅在生成 pfx 文件之前。程序将 pfx 文件安装到 Windows 证书存储区后将其删除。在这种情况下,我猜从用户那里接受密码不会比自动生成密码提供任何安全优势。
我想进一步补充这个问题。
一旦密码可供程序使用,您如何在其生命周期内保护此密码?我正在使用 .net 并已阅读有关 .net 中的安全字符串的信息。但是必须从不能解决问题的字符串构建安全字符串。
代码片段看起来像
字符串密码 = AutoGenerateOrGetPassword(); GenerateCertificateAndInstall(密码);
如何保护在其生命周期中存储在内存中的密码?