目录
windows签名资料
windows程序签名原理
签名机制与原理
软件厂商签名流程
软件签名完整流程
windows机器验证软件签名流程
浏览器验证
windows验证
windows签名工具
windows签名资料
签名相关资料:
数字签名和数字证书究竟是什么p>
白话数字签名系列
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
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!