数字签名

Posted shinymood

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数字签名相关的知识,希望对你有一定的参考价值。

数字证书:

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

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

 

签名过程:

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

以上是关于数字签名的主要内容,如果未能解决你的问题,请参考以下文章

数字签名和数字证书

WHQL的数字签名是怎么回事

Go-数字签名详解与Rsa数字签名代码

如何验证PDF文档中的数字签名

怎么给PDF文件添加数字签名

如何将程序进行数字签名?