Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net ClickOnce应用程序的安全性_.net_Security_Clickonce_Publishing - Fatal编程技术网

.net ClickOnce应用程序的安全性

.net ClickOnce应用程序的安全性,.net,security,clickonce,publishing,.net,Security,Clickonce,Publishing,我有一个应用程序(exe),它使用一些强名称dll。如果我理解正确,没有人可以用自己准备好的版本替换dll,因为它们不会被签名。没有人也可以替换exe,因为它是通过对清单进行签名来保护的 但是,如果有人准备了自己的exe并更改了清单文件中的签名怎么办?如果有人可以重新写入清单文件,用他们选择的exe替换,并用他们自己选择的dll替换他们想要的任何dll,那么所有赌注都没有了 记住,唯一能做到的人应该是你。如果其他人可以访问您的私钥,那么他们可以很容易地做到这一点。您的用户确实需要知道,他们应该阅

我有一个应用程序(exe),它使用一些强名称dll。如果我理解正确,没有人可以用自己准备好的版本替换dll,因为它们不会被签名。没有人也可以替换exe,因为它是通过对清单进行签名来保护的


但是,如果有人准备了自己的exe并更改了清单文件中的签名怎么办?

如果有人可以重新写入清单文件,用他们选择的exe替换,并用他们自己选择的dll替换他们想要的任何dll,那么所有赌注都没有了

记住,唯一能做到的人应该是你。如果其他人可以访问您的私钥,那么他们可以很容易地做到这一点。您的用户确实需要知道,他们应该阅读屏幕上显示的任何信息,这些信息说明他们正在运行的应用程序以及签名者。安全性只和链条中最薄弱的环节一样好,可悲的是,通常是用户


您是否考虑过ClickOnce,应用程序每次运行时都会从源代码下载,而不是缓存在用户PC上。这至少是一个部分缓解措施?

在安装之前,应用程序的签名人信息才刚刚开始。之后,在运行已使用ClickOnce安装的应用程序时,没有关于该应用程序的信息。即使有,它也可能已经由更改清单和exe文件的人员准备好了。我说得对吗?用户如何在运行已安装的应用程序之前验证?他们无法验证我是否知道-我想您可以在代码中运行一个检查,但一旦有人替换了
.exe
,恐怕所有赌注都没有了。@Prosynick,感谢您接受的答案,抱歉,如果这不是你想要的答案!=)你有没有想过ClickOnce每次运行时都会从源代码下载应用程序,而不是缓存在用户PC上。这至少是一个部分缓解措施=)是的,我想是这样,但我不确定它是否能满足我的需要。稍后我会投票支持你,因为我错误地点击了两次,现在它被锁定:)@prostynick,我已将该注释添加到我的答案中,因此现在应该可以清楚地进行投票了,因为它已被编辑;=)