签署自动下载的exe

时间:2012-05-14 23:56:47

标签: c# .net certificate exe auto-update

我有一个应用程序,最初将由用户下载并安装。 要更新应用程序,应用程序本身将

  1. 检查是否存在新版本
  2. 如果有,请下载新版本(与vs2010捆绑的installshield le创建的setup.exe文件)
  3. 应用程序然后启动一个新的System.Diagnostics.Process来安装新软件(当前运行的软件已关闭,已卸载且Installshield安装了新版本)
  4. 我希望能够确保exe被信任以防止任何网络服务黑客攻击 实现这一目标的最佳方法是什么?我需要在我的c#.net wpf应用程序中进行验证。

3 个答案:

答案 0 :(得分:3)

你需要从一个受信任的机构购买一个authenticode代码签名证书(我们使用的是godaddy,但那里有很多其他人),并用它来签署所有executables in your installer (作为一个后期构建)任务与signtool.exe)see here了解详情)和the installshield generated installer在您构建安装程序包时。

当您的更新过程下载新的安装程序包时,您可以在部署之前选择check that the signature is trusted

答案 1 :(得分:1)

有关签署程序集的信息,请参阅http://msdn.microsoft.com/en-us/library/xc31ft41.aspx

本文对您也很有用:http://www.c-sharpcorner.com/uploadfile/puranindia/signing-an-assembly-in-C-Sharp/

保留用于对程序集进行安全签名的私钥。另请参阅C#: why sign an assembly?

答案 2 :(得分:1)

从已知的HTTPS位置下载可能就足够了。您可以检查服务器证书以确保您是否正在谈论正确的证书。

考虑使用ClickOnce deployment而不是自定义的...