白话数字签名(番外篇)——签名EXE文件(上)

摘要:
摘要人家微软的软件都有数字签名,感觉好酷哦,我们写的软件也要弄个签名炫一炫。下面就来演示一下如何使用微软的签名工具SignTool签名这个EXE文件。接下来就可以开始签名EXE文件了。Step3:在“数字签名向导”中点击下一步,来到“文件选择”页,选择需要签名的文件。Step10:看到“数字签名向导已成功完成”信息,说明签名成功了。关于数字证书和根证书的关系可以看我的白话数字签名。
摘要

人家微软的软件都有数字签名,感觉好酷哦,我们写的软件也要弄个签名炫一炫。
带有签名的软件非常酷
在QQ的安装文件上右击,选“属性”,就可以看到QQ的数字签名了。
白话数字签名(番外篇)——签名EXE文件(上)第1张
使用Process ExplorerSREng查看系统中正在运行的程序时,也可以验证程序是否有数字签名,如果我们的程序显示“Unable to verify”,那显得多不专业呀。
白话数字签名(番外篇)——签名EXE文件(上)第2张
给自己的程序加上签名
上图中的那个MathLover121.exe是我在上学的时候用C++ Builder写的一个小软件,不用说,它肯定是没有签名的了。下面就来演示一下如何使用微软的签名工具SignTool签名这个EXE文件。要进行签名,首先要有数字证书才行。如果你的公司已经申请了数字证书,那就再好不过了;但是鉴于很多朋友手中没有数字证书,这里就先介绍一下如何在CA365上申请一个免费的数字证书。
申请免费的数字证书
Step1:登录www.ca365.com,在“免费证书”栏中点击“用表格申请证书”链接。
白话数字签名(番外篇)——签名EXE文件(上)第3张
Step2:填表,基本上可以瞎填的,没人管。
白话数字签名(番外篇)——签名EXE文件(上)第4张
Step3:在上一步按“提交”按钮后稍等一会儿,会自动进入下载证书的页面,点击“下载并安装证书”链接下载并保存证书,默认的文件名是“NewCert.der”。
白话数字签名(番外篇)——签名EXE文件(上)第5张
Step4:安装证书。
在“NewCert.der”文件上右击,选择“安装证书”即可。
白话数字签名(番外篇)——签名EXE文件(上)第6张
接下来就可以开始签名EXE文件了。
使用SignTool签名EXE文件(C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin)
Step1:通过“开始菜单|程序|Microsoft Visual Studio 2005|Visual Studio Tools|Visual Studio 2005 命令提示”打开命令行窗体。
Step2:执行“signtool signwizard”(Windows Vista and earlier)。白话数字签名(番外篇)——签名EXE文件(上)第7张
Step3:在“数字签名向导”中点击下一步,来到“文件选择”页,选择需要签名的文件。注意如果文件放在了桌面下会提示“指定的文件不存在或为只读文件”的错误信息,可能是文件夹权限的问题。白话数字签名(番外篇)——签名EXE文件(上)第8张
Step4:点击“下一步”,来到“签名选项”页,选择“典型”即可。
Step5:点击“下一步”,来到“签名证书”页,点击“从存储区选择...”按钮,然后选择我们刚刚申请并安装的那个证书。白话数字签名(番外篇)——签名EXE文件(上)第9张
Step6:(可选)点击下一步,在“数据描述”页可以填写一些描述信息。
Step7:(可选)点击下一步,在“给数据盖时间戳”页,填写时间戳服务的URL。这里有两个免费的时间戳服务器URL:http://timestamp.verisign.com/scripts/timstamp.dll
http://timestamp.wosign.com/timestamp
白话数字签名(番外篇)——签名EXE文件(上)第10张
Step8:点击“下一步”,在“正在完成数字签名向导”页最后浏览一下所有的设置,确认无误后点击“完成”按钮开始签名。
Step9:在弹出的“正在用您的专用交换密钥签名数据”对话框上按“确定”按钮。白话数字签名(番外篇)——签名EXE文件(上)第11张
Step10:看到“数字签名向导已成功完成”信息,说明签名成功了。白话数字签名(番外篇)——签名EXE文件(上)第12张

现在,在Windows的资源管理器中右击MathLover121.exe选“属性”,就可以看到多了一个“数字签名”页。点击“详细信息”按钮可以查看证书的详细信息。
白话数字签名(番外篇)——签名EXE文件(上)第13张
在Process Explorer里也可以验证签名了。
白话数字签名(番外篇)——签名EXE文件(上)第14张
不过如果把这个已签了名的MathLover121.exe复制到我的同事的计算机上用Process Explorer验证签名,会仍然显示“Unable to verify” _| ̄|○ (好像有砖头飞来的声音,我闪先~~),这是因为 ca365的根证书默认并没有安装在Windows系统的“受信任根证书颁发机构”列表中。在我的机器上能验证成功是因为我事先已经导入了CA365的根证书。关于数字证书和根证书的关系可以看我的白话数字签名(2)
可以在“开始菜单 | 运行...”里执行“certmgr.msc”查看“受信任根证书颁发机构”列表。
白话数字签名(番外篇)——签名EXE文件(上)第15张
所以如果你希望Windows信任你就乖乖的向这个列表中的公司交钱吧,例如QQ的安装文件就是使用的 VeriSign 的代码签名证书。
还有一个奇怪的问题...
但是如果我们在“C:\Program Files\Internet Explorer\IEXPLORE.EXE”上面右击,再点击“属性”,可以看到并没有显示数字签名页,但是在Process Explorer中却可以成功验证签名,这是怎么回事呢?呵呵,先卖个关子,下篇再讲 :)
白话数字签名(番外篇)——签名EXE文件(上)第16张

免责声明:文章转载自《白话数字签名(番外篇)——签名EXE文件(上)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇iOS 学习资料整理集合邻接矩阵和邻接表下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

白话数字签名(番外篇)——签名EXE文件(下)

摘要如果我们在IEXPLORE.EXE上面右击,再点击“属性”,可以看到并没有显示数字签名页,但是在Process Explorer中却可以成功验证签名,这是怎么回事呢?签名EXE文件的两种方法上篇写到如果我们在IEXPLORE.EXE上面右击,再点击“属性”,可以看到并没有显示数字签名页,但是在Process Explorer中却可以成功验证签名,这是怎...

公钥,私钥和数字签名这样最好理解

http://blog.csdn.net/21aspnet/article/details/7249401 一、公钥加密 假设一下,我找了两个数字,一个是1,一个是2。我喜欢2这个数字,就保留起来,不告诉你们(私钥),然后我告诉大家,1是我的公钥。 我有一个文件,不能让别人看,我就用1加密了。别人找到了这个文件,但是他不知道2就是解密的私钥啊,所以他解不...

PHP的openssl加密扩展使用小结

引言 互联网的发展史上,安全性一直是开发者们相当重视的一个主题,为了实现数据传输安全,我们需要保证:数据来源(非伪造请求)、数据完整性(没有被人修改过)、数据私密性(密文,无法直接读取)等。虽然现在已经有SSL/TLS协议实现的HTTPS协议,但是因在客户端上依赖浏览器的正确实现,而且效率又很低,所以一般的敏感数据(如交易支付信息等)还是需要我们使用加密方...

使用SHA1、SHA2双证书进行微软数字签名

微软是第一个宣布了SHA-1弃用计划,在2016年之后Windows和IE将不再信任SHA-1证书。正好我们公司的数字签名也到期了,索性就重新申请了sha256和sha1的新数字证书,用来给产品签名。 这时就要把用了多年的自动签名脚本改为支持sha256和sha1双证书的格式。公司原使用signcode.exe和SignTool.exe两种方式进行签名,其...

密码学——网间数据加密传输全流程(SSL加密原理)

0.导言 昨天写了一篇关于《秘钥与公钥》的文章,写的比较简单好理解,有点儿像过家家,如果详细探究起来会有不少出入,今天就来详细的说明一下数据加密的原理和过程。这个原理就是大名鼎鼎SSL的加密原理,哦,对了,有人说上个月SSL刚爆出本年度最轰动的漏洞“心脏滴血”,可能危及全球好多互联网企业,那这个东西靠谱吗?其实,爆出漏洞的是SSL的一款产品openssl,...

RSA加密和数字签名在Java中常见应用【原创】

相关术语解释: RSA,参考: https://en.wikipedia.org/wiki/RSA_(cryptosystem) 非对称加密算法 ,参考:https://baike.baidu.com/item/%E9%9D%9E%E5%AF%B9%E7%A7%B0%E5%8A%A0%E5%AF%86%E7%AE%97%E6%B3%95/1208...