首页 > 代码库 > 数字签名

数字签名

数字证书:

  证明软件开发商身份的一个东西,要向权威机构(他们的证书会嵌到电脑系统中)申请,申请时要有自己的身份证营业执照之类的,申请的证书有效期一年,一年到了会提示更新证书。

  包括公钥,(私钥申请者的证书会有)证书拥有者信息

 

签名过程:

  1. 发布者从CA机构(如VeriSign)申请数字证书;
  2. 发布者开发出代码;借助代码签名工具(vs和.net都有),发布者将使用MD5或SHA算法产生代码的哈希值,然后用代码签名证书私钥对该哈希值签名,从而产生一个新的hash值;
 
验证过程:
  3. 用户的运行环境访问到该软件包,并检验软件发布者的代码签名数字证书的有效性。由于VeriSign根证书的公钥已经嵌入到用户的运行环境的可信根证书库,所以运行环境可验证发布者代码签名数字证书的真实性;
 
  4. 用户的运行环境使用代码签名数字证书中含有的公钥解出哈希值;
  5. 用户的运行环境使用同样的算法新产生一个原代码的哈希值;
  6. 用户的运行环境比较两个哈希值。如果相同,将发出通知声明代码已验证通过。所以用户可以相信该代码确实由证书拥有者发布,并且未经篡改。

数字签名