数字签名
2016-11-27 17:43
393 查看
数字证书:
证明软件开发商身份的一个东西,要向权威机构(他们的证书会嵌到电脑系统中)申请,申请时要有自己的身份证营业执照之类的,申请的证书有效期一年,一年到了会提示更新证书。
内容:
公钥,(私钥申请者的证书会有),上级证书对其(这张证书)的签名, 证书拥有者信息
签名过程:
1. 发布者从CA机构(如VeriSign)申请数字证书;
2. 发布者开发出代码;借助代码签名工具(vs和.net都有)。
发布者将使用MD5或SHA算法产生代码的哈希值,然后用证书的私钥对该哈希值签名,从而产生一个新的hash值--数字签名;
--发给用户环境的东西:
代码,代码数字签名,证书(包含公钥,上级证书对其(这张证书)的签名等)
验证过程:
3. 用户的运行环境访问到该软件包,并检验软件发布者的代码签名数字证书的有效性。由于VeriSign根证书的公钥已经嵌入到用户的运行环境的可信根证书库,所以运行环境可验证发布者代码签名数字证书的真实性;
--如何验证该公钥的有效性:
每张证书都包含上级证书对其的签名,一层一层验证,最终用根证书的公钥(内嵌系统)验证这个证书的合法性。
4. 用户的运行环境使用数字证书(公钥)解数字签名,解出哈希值;
5. 用户的运行环境使用同样的算法新产生一个原代码的哈希值;
6. 用户的运行环境比较两个哈希值。如果相同,将发出通知声明代码已验证通过。所以用户可以相信该代码确实由证书拥有者发布,并且未经篡改。
证明软件开发商身份的一个东西,要向权威机构(他们的证书会嵌到电脑系统中)申请,申请时要有自己的身份证营业执照之类的,申请的证书有效期一年,一年到了会提示更新证书。
内容:
公钥,(私钥申请者的证书会有),上级证书对其(这张证书)的签名, 证书拥有者信息
签名过程:
1. 发布者从CA机构(如VeriSign)申请数字证书;
2. 发布者开发出代码;借助代码签名工具(vs和.net都有)。
发布者将使用MD5或SHA算法产生代码的哈希值,然后用证书的私钥对该哈希值签名,从而产生一个新的hash值--数字签名;
--发给用户环境的东西:
代码,代码数字签名,证书(包含公钥,上级证书对其(这张证书)的签名等)
验证过程:
3. 用户的运行环境访问到该软件包,并检验软件发布者的代码签名数字证书的有效性。由于VeriSign根证书的公钥已经嵌入到用户的运行环境的可信根证书库,所以运行环境可验证发布者代码签名数字证书的真实性;
--如何验证该公钥的有效性:
每张证书都包含上级证书对其的签名,一层一层验证,最终用根证书的公钥(内嵌系统)验证这个证书的合法性。
4. 用户的运行环境使用数字证书(公钥)解数字签名,解出哈希值;
5. 用户的运行环境使用同样的算法新产生一个原代码的哈希值;
6. 用户的运行环境比较两个哈希值。如果相同,将发出通知声明代码已验证通过。所以用户可以相信该代码确实由证书拥有者发布,并且未经篡改。
相关文章推荐
- 制作免费的数字签名证书
- 为通过ClickOnce部署的应用程序进行数字签名
- 非对称加密、数字摘要、数字签名、数字证书、SSL、HTTPS及其他
- 数字签名和数字证书
- java加密和数字签名4 数字签名
- 上传APK到goole play前用Eclipse对APK进行数字签名
- 为什么需要对applet进行数字签名(digital signature)
- 数字签名是什么?
- IE浏览器中的数字签名是什么?
- 数字签名是什么?
- RPM验证与数字签名(Verify/Signature)
- 了解Windows系统驱动程序--数字签名
- 非对称加密算法 数字签名
- CA证书数字签名
- 数字签名遇到的编码问题
- 数字签名是什么
- PE 数字签名
- 基于 CMS 数字签名的 Ticket-based SSO
- 和安全有关的那些事(非对称加密、数字摘要、数字签名、数字证书、SSL、HTTPS及其他)
- JavaGUI应用程序打包及数字签名