代码签名证书可以标识软件来源和软件开发者身份,还可以保护软件的完整性。这不管是对软件开发商来说,还是对软件使用者来说,都是百利而无一害的。代码签名证书的工作原理是什么呢?
首先,软件开发商在自己电脑上生成私钥和证书请求文件提交给CA机构,CA机构按国际标准要求验证软件开发商真实身份后签发代码签名证书.
其次,发布者开发出代码后借助代码签名工具,使用MD5或SHA算法产生代码的哈希值,用代码签名证书私钥对该哈希值签名,从而产生一个包含代码签名和软件发布者的签名证书的软件包。
接着,由于根证书的公钥已经嵌入到用户的运行环境的可信根证书库,用户的运行环境访问到该软件包,并检验软件发布者的代码签名数字证书的有效性。
然后,用户的运行环境使用代码签名证书中含有的公钥解密被签名的哈希值,然后使用同样的算法新产生一个原代码的哈希值。
最后,用户的运行环境会比较这两个哈希值。如果两个哈希值相同,将发出代码已验证通过的通知。所以用户可以相信该代码确实由证书拥有者发布,并且未经篡改。
以上就是代码签名证书的工作原理。