1. 公钥私钥
- 公钥其实是用来加密/验章用的;私钥是用来解密/签章 (信息通讯&数字签名两大应用)
- 公开的密钥叫公钥,只有自己知道的叫私钥;公钥和私钥成对出现
- 如果用公钥解密,则必然是对应的私钥加的密;如果用私钥解密,则必然是对应的公钥加的密
文章图片
2. 签名功能
- 保证信息自签发后到收到为止未曾作过任何修改(防篡改)
- 保证信息是由签名者自己签名发送的,签名者不能否认或难以否认(认证,防抵赖)
文章图片
3. 签名算法与CA
- 签名算法:RSA、DSA、ECDSA
- 加解密算法:(1)对称加密(私钥加密解密); (2) 非对称加密(公开密钥加密/验章;私钥解密/签秘)
文章图片
- CA的作用
文章图片
文章图片
文章图片
参考:1)数字签名及数字证书;2)数字证书及CA详解;3)国内网站都用哪几家CA的SSL证书;4)一篇文章让你搞懂 SSL 证书;5)数字签名是什么? - 阮一峰的网络日志
4. 制作签名 4.1 工具下载&准备数据标签制作所需要的软件文件-其它文档类资源-CSDN下载
- 【知识总结|【杂记】数字签名概述】makecert.exe、cert2spc.exe、pvk2pfx.exe、signtool.exe
- makecert.exe:证书创建工具,生成仅用于测试目的的X509证书;pvk存私,cer存公钥
- cert2spc.exe :公钥证书格式转换成SPC(软件发行者证书)
- pvk2pfx.exe :将公钥证书和私钥合并成一个PFX格式的证书文件
- signtool.exe :二进制文件数字签名工具
4.2 实施过程
- 步骤1:生成一个自签名的根证书(issuer,签发者)
makecert.exe -n "CN=Kaspersky Lab" -r -sv ./output/mykey.pvk ./output/mycert.cer
-n: 指定证书的名称,必须符合 X.500 标准
-r: 创建自签署证书
-sv:指定主题的 .pvk私钥文件。 如果该文件不存在,系统将创建1个。
- 步骤2:输入口令用私钥(.pvk文件中)来给公钥(.cer文件中)加密,公钥证书格式转换成SPC
cert2spc.exe ./output/mycert.cer ./output/mycert.spc
- 步骤3:将公钥证书和私钥合并成一个PFX格式的证书文件
pvk2pfx.exe -pvk ./output/mykey.pvk -spc ./output/mycert.spc -pfx ./output/mycert.pfx
- 步骤4:签名文件
#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
文章图片
文章图片
文章图片
- 步骤5:首次自签名,需要进行证书信任设置
文章图片
文章图片
(2)设置完成后,重新打开签名文档属性,可以看到数字签名显示为正常
文章图片
推荐阅读
- 知识总结|【Shell】编程之文本处理工具sed(7)
- 知识总结|【Shell】编程之文本处理工具awk(8)
- 歌谣-java-语法|java93-线程的创建方法二
- Linux|初识 - Linux
- linux|【linux】服务器巡检项(常用)
- 笔记|openstack——4、开启虚拟机
- linux|windows远程linux主机
- linux|Linux 软链接 和 硬链接
- 华为网络|详解 TCP 连接的“ 三次握手 ”与“ 四次挥手 ”