1. 公钥私钥
- 公钥其实是用来加密/验章用的;私钥是用来解密/签章 (信息通讯&数字签名两大应用)
- 公开的密钥叫公钥,只有自己知道的叫私钥;公钥和私钥成对出现
- 如果用公钥解密,则必然是对应的私钥加的密;如果用私钥解密,则必然是对应的公钥加的密

2. 签名功能

?3. 签名算法与CA
- 签名算法:RSA、DSA、ECDSA
- 加解密算法:(1)对称加密(私钥加密解密);(2)?非对称加密(公开密钥加密/验章;私钥解密/签秘)

????????CA是证书的签发机构,它是公钥基础设施核心。CA是负责签发证书、认证证书、管理已颁发证书的机关。CA 拥有一个证书(内含公钥和私钥)。网上的公众用户通过验证 CA 的签字从而信任 CA ,任何人都可以得到 CA 的证书(含公钥),用以验证它所签发的证书。如果用户想得到一份属于自己的证书,他应先向 CA 提出申请。在 CA 判明申请者的身份后,便为他分配一个公钥,并且 CA 将该公钥与申请者的身份信息绑在一起,并为之签字后,便形成证书发给申请者。如果一个用户想鉴别另一个证书的真伪,他就用 CA 的公钥对那个证书上的签字进行验证,一旦验证通过,该证书就被认为是有效的。证书实际是由证书签证机关(CA)签发的对用户的公钥的认证。



?参考:1)数字签名及数字证书;2)数字证书及CA详解;3)国内网站都用哪几家CA的SSL证书;4)一篇文章让你搞懂 SSL 证书;5)数字签名是什么? - 阮一峰的网络日志
4. 制作签名
?参考文献:MakeCert - Windows drivers;windows下如何制作和应用数字签名证书 全流程
?4.2 实施过程
makecert.exe -n "CN=Kaspersky Lab" -r -sv ./output/mykey.pvk ./output/mycert.cer
-n: 指定证书的名称,必须符合 X.500 标准
-r: 创建自签署证书
-sv:指定主题的 .pvk私钥文件。 如果该文件不存在,系统将创建1个。
cert2spc.exe ./output/mycert.cer ./output/mycert.spc
pvk2pfx.exe -pvk ./output/mykey.pvk -spc ./output/mycert.spc -pfx ./output/mycert.pfx
#SignTool 对文件进行数字签名并加盖时间戳
signtool.exe sign /f ./output/mycert.pfx /t http://timestamp.digicert.com /fd SHA256 MyFile.exe
#signcode进行代码签名
双击运行signcode.exe,弹出图形界面,按提示选择
详细操作过程如下所示:
(1)双击signcode.exe,打开代码签名工具,并点击next
(2)选择要签名的文件,点击next
?
?(3)选择签名类型,推荐使用自定义,然后点击next
?(4)选择数字证书,然后点击next

?
?
?(5)添加时间戳,点击next

?
?
?????????(1)打开签名文件属性,找到数字签名项,安装证书? ? ? ?

(2)设置完成后,重新打开签名文档属性,可以看到数字签名显示为正常

|