知识总结|【杂记】数字签名概述

1. 公钥私钥

  • 公钥其实是用来加密/验章用的;私钥是用来解密/签章 (信息通讯&数字签名两大应用)
  • 公开的密钥叫公钥,只有自己知道的叫私钥;公钥和私钥成对出现
  • 如果用公钥解密,则必然是对应的私钥加的密;如果用私钥解密,则必然是对应的公钥加的密
知识总结|【杂记】数字签名概述
文章图片
2. 签名功能
  • 保证信息自签发后到收到为止未曾作过任何修改(防篡改)
  • 保证信息是由签名者自己签名发送的,签名者不能否认或难以否认(认证,防抵赖)
知识总结|【杂记】数字签名概述
文章图片

3. 签名算法与CA
  • 签名算法:RSA、DSA、ECDSA
  • 加解密算法:(1)对称加密(私钥加密解密); (2) 非对称加密(公开密钥加密/验章;私钥解密/签秘)
知识总结|【杂记】数字签名概述
文章图片

  • CA的作用
CA是证书的签发机构,它是公钥基础设施核心。CA是负责签发证书、认证证书、管理已颁发证书的机关。CA 拥有一个证书(内含公钥和私钥)。网上的公众用户通过验证 CA 的签字从而信任 CA ,任何人都可以得到 CA 的证书(含公钥),用以验证它所签发的证书。如果用户想得到一份属于自己的证书,他应先向 CA 提出申请。在 CA 判明申请者的身份后,便为他分配一个公钥,并且 CA 将该公钥与申请者的身份信息绑在一起,并为之签字后,便形成证书发给申请者。如果一个用户想鉴别另一个证书的真伪,他就用 CA 的公钥对那个证书上的签字进行验证,一旦验证通过,该证书就被认为是有效的。证书实际是由证书签证机关(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 :二进制文件数字签名工具
参考文献:MakeCert - Windows drivers;windows下如何制作和应用数字签名证书 全流程
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:首次自签名,需要进行证书信任设置
(1)打开签名文件属性,找到数字签名项,安装证书知识总结|【杂记】数字签名概述
文章图片

知识总结|【杂记】数字签名概述
文章图片

(2)设置完成后,重新打开签名文档属性,可以看到数字签名显示为正常
知识总结|【杂记】数字签名概述
文章图片


    推荐阅读