C# 加密验证zip文件的内容

C# 加密验证zip文件的内容,c#,digital-signature,signing,C#,Digital Signature,Signing,我期待包装和分发一个zip文件,我想知道最好的方法,以确保zip的内容没有被任何方式改变 并非zip中的所有文件都是我的-有些是第三方二进制文件,因此对文件进行数字签名只是部分解决方案。加密zip不是一个选项,因为机密将被发现-它需要在其目的地被取消加密。发布散列是一种选择,但不是理想的选择,因为验证zip需要单独的信息(更不用说它不安全——如果有人可以拥有您的分发服务器,他们也可以更改发布的散列) 一种类似于ClickOnce包加密签名的方法是理想的(我有一个代码签名证书可以用于此)。我可以使

我期待包装和分发一个zip文件,我想知道最好的方法,以确保zip的内容没有被任何方式改变

并非zip中的所有文件都是我的-有些是第三方二进制文件,因此对文件进行数字签名只是部分解决方案。加密zip不是一个选项,因为机密将被发现-它需要在其目的地被取消加密。发布散列是一种选择,但不是理想的选择,因为验证zip需要单独的信息(更不用说它不安全——如果有人可以拥有您的分发服务器,他们也可以更改发布的散列)


一种类似于ClickOnce包加密签名的方法是理想的(我有一个代码签名证书可以用于此)。我可以使用mage.exe生成zip中附带的任意清单吗(因此zip本身不必是安全的,修改/添加/删除文件会破坏加密签名)?如果是这样,我如何(以编程方式)在目的地验证签名?

存在几种不同的方法

  • PKWare提供了SecureZIP应用程序,允许您使用PKWare的APPNote(ZIP文件格式的标准参考)中定义的格式对ZIP文件进行签名。一些第三方应用程序和库可以验证此类签名。但是,只能使用SecureZIP进行签名(这是一个许可限制)

  • 您可以使用对ZIP存档的内容进行签名

  • 您可以使用新的欧洲格式对ZIP文件中的数据进行签名

  • 我们的SecureBackbox产品支持上述所有选项。不幸的是,我没有其他软件支持他们的信息