windows应用签名相关问题

mac2025-05-31  48

目录

windows签名资料

windows程序签名原理

签名机制与原理

软件厂商签名流程

软件签名完整流程

windows机器验证软件签名流程

浏览器验证

windows验证

windows签名工具


windows签名资料

签名相关资料:

数字签名和数字证书究竟是什么?

白话数字签名系列

windwos代码数字签名基本原理

注意事项:

从证书机构拿到证书一定要记得备份,因为证书完全依赖私钥,如果电脑的私钥没有了,或者重装系统了,就必须要重新申请一个证书。备份证书注意导出pfx证书,带有私钥的。只有cer证书是不可以给程序做签名的。在已经有此证书的机器上,导入时如果没有选中“允许导出含私钥的证书”,这一选项。在导出时需要使用工具才能将私钥一起导出。https://www.digicert.com/util/

windows程序签名原理

签名机制与原理

RSA算法:通过公钥与私钥来判断私钥的合法。 公钥与私钥具有对称性,既可以通过私钥加密,公钥解密,以此来论证私钥持有者的合法身份。也可以通过公钥加密,私钥解密,来对私钥持有者发信息而不被泄露。

由于在交换公钥时免不了遭遇中间人劫持,故需要第三方权威机构的认证,例如赛门铁克。

软件厂商签名流程

生成私钥key,与证书请求文件csr。证书的颁发:厂商将私钥和证书请求文件(csr)发给wosign/symantec,wosign/symantec确认后将公钥发给软件厂商。软件厂商颁发证书,生成cer 或者 pem的证书给用户。用户在本机导入这个证书,导入后即可使用证书签名。厂商用签名工具 signcode.exe/signtool.exe/诚天信威 给软件签名:1. 生成hash 2. 私钥加密hash产生摘要 3. 将其与认证公钥和代码一同打包发布。用户下载程序并验证,验证后使用。(具体参考最后)如果需要导出给别的电脑使用,那即导出带有私钥的证书文件pfx格式,即可。

软件签名完整流程

 

*注意:开发商的私钥不需要提供给证书机构


windows机器验证软件签名流程

浏览器验证

浏览器从签名代码中读出公钥 和 Hash表摘要

与windows 受信任的根证书比较,检查公钥证书的合法性。

验证通过,即可确认下载此程序的真是来源

windows验证

  系统UAC功能开启(用户账户控制功能,默认开启,windows vista之后引入的一个机制)程序启动时,去CA校验程序签名 使用同样算法对软件产生Hash表使用公钥产生一个Hash表认证摘要比较程序的Hash表认证摘要 与 自己生成的Hash表认证摘要是否一致。程序执行

windows签名工具

签名工具下载,二者选一:

诚天信威,下载链接:http://down-ww3.newasp.net/pcdown/soft/soft1/itrussigntool.exe (推荐) 或者使用windows SDK 8.1/10 以上自带签名工具,signtool.exe ,只安装windowsSDK 即可。(占用空间比较大)

vs_Community.exe(自行去微软官网下载)


诚天信威使用:

在“签名规则”页,新建签名规则,在SHA256中选择使用的证书。(前提是已将证书成功导入)添加时间戳,时间戳选择Symantec,其他默认规则即可。在“代码签名”页,添加需要签名的文件。点击“数字签名”,选择“应用签名”  

signtool.exe的使用:

使用此脚本比对脚本中signtool.exe目录,脚本中目录是windows SDK8.1的目录,如果安装了SDK10的话,改一下目录。将需要签名程序拖动到此脚本中即可。sign.bat
最新回复(0)