详解标准代码签名证书的签名过程
2021年7月21日
代码签名证书用于签署具有强大数字签名的可执行文件、驱动程序、脚本、应用程序、宏、插件。代码签名证书验证发布者的身份,并确保用户处理的是经过身份验证的软件。代码签名证书由时间戳支持,即使证书已过期,该时间戳也不会让代码过期。用户不会因时间戳而收到任何警告,并且可以下载软件。标准代码签名证书的签名过程如下:
1)使用与代码签名证书关联的私钥将数字签名添加到代码/内容中。添加数字签名时,还会创建一个哈希,用户下载代码时应匹配该哈希。
2)在下载软件代码时,用户系统上的公钥用于对签名进行解码。
3)下载代码时,系统会查找根证书,该证书与身份绑定以验证签名。
4)用户的系统比较两个散列:一个用于签署应用程序,另一个散列在下载应用程序期间使用。
5)如果两个哈希值匹配,则代码已通过身份验证,并开始下载;否则,它将显示“未知发布者”警告。讨厌的警告会降低软件、驱动程序、应用程序的下载率。有效的软件代码使用代码签名证书删除不需要的警告。