我正在寻找打包和分发一个 zip 文件,我想知道确保 zip 的内容没有以任何方式更改的最佳方法。
并非 zip 中的所有文件都是我的 - 有些是第三方二进制文件,因此对文件进行数字签名只是部分解决方案。加密 zip 不是一种选择,因为秘密会被发现 - 它需要在其目的地未加密。发布散列是一种选择,但不是理想的选择,因为需要单独的信息来验证 zip(更不用说它不安全 - 如果有人可以拥有您的分发服务器,他们也可以更改已发布的散列)。
一种类似于 ClickOnce 包加密签名的方法是理想的(我有一个可以用于此的代码签名证书)。我可以使用 mage.exe 生成一个在 zip 中附带的任意清单(因此 zip 本身不必是安全的,并且更改/添加/删除文件会破坏加密签名)?如果是这样,我如何(以编程方式)验证目的地的签名?