试图从我的网络应用程序对可下载的exe文件进行签名时存在安全问题

本文关键字:文件 问题 安全 存在 exe 我的 网络 应用程序 下载 | 更新日期: 2023-09-27 18:27:20

让我解释一下我的困境。我正在编写一个ASP.NET web应用程序,它应该让登录的用户下载我的客户端Windows可执行文件。在下载此类文件之前,web应用程序会更改.exe文件中的一些字符串(通过用户选择修改exe文件图像)。

我现在正在研究一种方法,用我的代码签名证书对这个可执行文件进行数字签名。问题是,要做到这一点,我需要通过Microsoft的签名工具运行它,该工具需要在运行web应用程序的服务器上安装数字证书,或者我提供包含私钥的.pfx文件。

这带来了两个问题:

  1. 如果我在服务器上安装我的数字证书,那么任何人都可以使用它来签署该服务器上的任何可执行文件(我宁愿避免这种情况。)

  2. 如果我选择为我的证书上传导出的个人信息交换(PFX文件),我可以用密码来保护它,但signtool需要该密码来签署我的exe文件,它需要以纯文本形式进行签名。所以我需要将密码存储在某个地方,这也不那么安全。

有什么建议吗?我该如何克服这些问题?

试图从我的网络应用程序对可下载的exe文件进行签名时存在安全问题

如果您计划使用数字2,您可以考虑使用SecureString来加密您的密码。您仍然需要使用普通密码初始化SecureString,您有两个安全选项。

  1. 通过网页手动提供字符串(使用SSL保护此页面免受MITM攻击)。这是最安全的选项,但它有一个折衷方案,即每次启动应用程序时都必须提供密码。或者
  2. 在另一台服务器上创建一个web服务,该服务将返回此纯密码(再次通过SSL进行通信)。这并不能完全证明,因为如果web服务的服务器被破坏,你的密码就会消失。然而,通过将风险分散到多个服务器中,黑客更难破坏系统的安全性