我正在构建一个用于分发由不同组织创建的程序包(.zip存档)的系统。我想要一种方法来验证软件包的发布者确实是他们声称的身份,并且文件没有被篡改。
要验证发布者,需要一个类似于网络浏览器使用的系统-例如,我的应用程序与验证身份的根证书颁发机构联系。换句话说,“绿色条” :)
我猜想软件包的创建将像这样工作:
打开包装将像这样工作:
这样,我已经验证了身份,还验证了内容(内容本身不需要加密-目标是验证,而不是隐私)。
所以我的问题是:
最后,如果组织没有付费证书,而是决定使用自行发布的证书,我认为我仍然可以验证哈希(出于数据完整性的考虑)而不必在计算机的证书存储中安装内容或任何类似的魔术(在这种情况下,我只会显示:“XYZ Co.发布(未验证)”。对吗?
我已经找到了很多有关如何使用X509和RSACryptoServiceProvider的链接,因此我可能可以弄清楚代码,我想我对该过程更感兴趣,并且知道我在使用正确的技术。
最佳答案
有一个标准的API可创建签名的ZIP包。
System.IO.Packaging命名空间包含必要的类,以使用digital signatures创建符合OPS(开放包装规范)的ZIP包。
关于.net - 通过.NET进行文件数字签名的标准化方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/495675/