使用.Net对zip文件进行数字签名下载的最佳方式是什么

使用.Net对zip文件进行数字签名下载的最佳方式是什么,.net,asp.net,security,.net,Asp.net,Security,在通过基于asp.Net的网站提供下载之前,使用.Net对文件服务器端进行数字签名的最佳方法是什么 此外,如果没有客户端插件或下载管理器,我如何触发签名检查,从而证明在web浏览器下载过程中没有对文件进行t检查?您无能为力。保护它的最佳方法是使用HTTPS,但如果这不是一个选项,那么确保完整性的通常方法是在站点上提供文件的MD5哈希,最终用户可以根据该哈希进行验证。如果您将其作为文件下载,那么在没有插件的情况下,您无法在客户端真正实现验证的自动化,因为Javascript等将无法访问文件进行验证

在通过基于asp.Net的网站提供下载之前,使用.Net对文件服务器端进行数字签名的最佳方法是什么


此外,如果没有客户端插件或下载管理器,我如何触发签名检查,从而证明在web浏览器下载过程中没有对文件进行t检查?您无能为力。保护它的最佳方法是使用HTTPS,但如果这不是一个选项,那么确保完整性的通常方法是在站点上提供文件的MD5哈希,最终用户可以根据该哈希进行验证。如果您将其作为文件下载,那么在没有插件的情况下,您无法在客户端真正实现验证的自动化,因为Javascript等将无法访问文件进行验证。

如果没有客户端插件或下载管理器,您将无能为力。保护它的最佳方法是使用HTTPS,但如果这不是一个选项,那么确保完整性的通常方法是在站点上提供文件的MD5哈希,最终用户可以根据该哈希进行验证。如果您将其作为文件下载,那么在没有插件的情况下,您无法在客户端真正实现验证的自动化,因为Javascript等将无法访问文件来验证它。

您需要定义您想要保护自己和用户免受的风险。虽然PKWare的appnoteforzip格式将数字签名定义为格式的一部分,但我怀疑是否存在许多解压程序,它们正确地支持ZIP文件中的数字签名验证

如果你担心文件内容可以在中间修改,你有以下选项: 1) HTTPS,如上所述


2) PGP签名包。您可以为分发的现有ZIP存档创建分离的签名,并将签名放在下载链接附近,或者,如果您的目标是Windows,则创建自解压PGP存档。PGP格式也包括压缩。在这两种情况下,您都需要将公共PGP密钥放入站点。但是请注意,如果您以这种方式分发公钥,那么更改文件的人也可以更改公钥

您需要定义您想要保护自己和用户免受的风险。虽然PKWare的appnoteforzip格式将数字签名定义为格式的一部分,但我怀疑是否存在许多解压程序,它们正确地支持ZIP文件中的数字签名验证

如果你担心文件内容可以在中间修改,你有以下选项: 1) HTTPS,如上所述


2) PGP签名包。您可以为分发的现有ZIP存档创建分离的签名,并将签名放在下载链接附近,或者,如果您的目标是Windows,则创建自解压PGP存档。PGP格式也包括压缩。在这两种情况下,您都需要将公共PGP密钥放入站点。但是请注意,如果您以这种方式分发公钥,那么更改文件的人也可以更改公钥

签名不需要包含在ZIP文件中,它可以是“分离的”签名。因此,您可以拥有zip并允许某人在您编写的应用程序的带外验证sig,sig通常只是一系列十六进制或base64字符

在高层,签署步骤包括:

AsymmetricAlgorithm privateKey = certificate.PrivateKey;
byte[] buffer = Encoding.Default.GetBytes(<data from the zip>);
byte[] signature = privateKey.SignData(buffer, new SHA1Managed());

签名不需要包含在ZIP文件中,它可以是“分离的”签名。因此,您可以拥有zip并允许某人在您编写的应用程序的带外验证sig,sig通常只是一系列十六进制或base64字符

在高层,签署步骤包括:

AsymmetricAlgorithm privateKey = certificate.PrivateKey;
byte[] buffer = Encoding.Default.GetBytes(<data from the zip>);
byte[] signature = privateKey.SignData(buffer, new SHA1Managed());

HTTPS将是常规路由。如果您希望将ZIP文件设置为“独立”并在将来的任何时候验证其sig,HTTPS将不起作用。HTTPS将是常规路由。如果您希望将ZIP文件设置为“独立”,HTTPS将不起作用如果您希望将ZIP文件设置为“独立”并在将来的任何时候验证其sig,则HTTPS将不起作用。不要使用MD5,现在知道它很弱,如果您想将ZIP文件设置为“独立”并在将来的任何时候验证它的sig,最小限度地使用SHA1或更强(SHA256等)HTTPS将不起作用。不要使用MD5,现在知道它很弱,最少使用SHA1,或者更强大(SHA256等)