随笔 - 60  文章 - 24 评论 - 1560 trackbacks - 29

.net asp web c# vb VS2005 VS2008 VS2003

    姓名 景春雷
    网名 1-2-3
    生日 1980.2.29
    城市 沈阳
[生活]昨晚看了变形金刚2。场面火爆,观众也火爆,居然买不到7:30的票,只好等9:30那场。PS:高中以后就没去过电影院了。

与我联系

搜索

 

常用链接

我参与的团队

我的标签

随笔分类(59)

随笔档案(57)

文章分类(23)

相册

收藏夹(2)

积分与排名

  • 积分 - 207441
  • 排名 - 223

最新评论

阅读排行榜

评论排行榜

摘要

人家微软的软件都有数字签名,感觉好酷哦,我们写的软件也要弄个签名炫一炫。

带有签名的软件非常酷

在QQ的安装文件上右击,选“属性”,就可以看到QQ的数字签名了。

使用Process ExplorerSREng查看系统中正在运行的程序时,也可以验证程序是否有数字签名,如果我们的程序显示“Unable to verify”,那显得多不专业呀。


给自己的程序加上签名

上图中的那个MathLover121.exe是我在上学的时候用C++ Builder写的一个小软件,不用说,它肯定是没有签名的了。下面就来演示一下如何使用微软的签名工具SignTool签名这个EXE文件。要进行签名,首先要有数字证书才行。如果你的公司已经申请了数字证书,那就再好不过了;但是鉴于很多朋友手中没有数字证书,这里就先介绍一下如何在CA365上申请一个免费的数字证书。

申请免费的数字证书

Step1: 登录www.ca365.com,在“免费证书”栏中点击“用表格申请证书”链接。


Step2: 填表,基本上可以瞎填的,没人管。


Step3: 在上一步按“提交”按钮后稍等一会儿,会自动进入下载证书的页面,点击“下载并安装证书”链接下载并保存证书,默认的文件名是“NewCert.der”。


Step4: 安装证书。
在“NewCert.der”文件上右击,选择“安装证书”即可。


接下来就可以开始签名EXE文件了。

使用SignTool签名EXE文件

Step1: 通过“开始菜单|程序|Microsoft Visual Studio 2005|Visual Studio Tools|Visual Studio 2005 命令提示”打开命令行窗体。
Step2: 执行“signtool signwizard”。
Step3: 在“数字签名向导”中点击下一步,来到“文件选择”页,选择需要签名的文件。注意如果文件放在了桌面下会提示“指定的文件不存在或为只读文件”的错误信息,可能是文件夹权限的问题。
Step4: 点击“下一步”,来到“签名选项”页,选择“典型”即可。
Step5: 点击“下一步”,来到“签名证书”页,点击“从存储区选择...”按钮,然后选择我们刚刚申请并安装的那个证书。
Step6: (可选)点击下一步,在“数据描述”页可以填写一些描述信息。
Step7: (可选)点击下一步,在“给数据盖时间戳”页,填写时间戳服务的URL。这里有两个免费的时间戳服务器URL:http://timestamp.verisign.com/scripts/timstamp.dll
http://timestamp.wosign.com/timestamp
Step8: 点击“下一步”,在“正在完成数字签名向导”页最后浏览一下所有的设置,确认无误后点击“完成”按钮开始签名。
Step9: 在弹出的“正在用您的专用交换密钥签名数据”对话框上按“确定”按钮。
Step10: 看到“数字签名向导已成功完成”信息,说明签名成功了。

现在,在Windows的资源管理器中右击MathLover121.exe选“属性”,就可以看到多了一个“数字签名”页。点击“详细信息”按钮可以查看证书的详细信息。


在Process Explorer里也可以验证签名了。


不过如果把这个已签了名的MathLover121.exe复制到我的同事的计算机上用Process Explorer验证签名,会仍然显示“Unable to verify”  _| ̄|○ (好像有砖头飞来的声音,我闪先~~),这是因为 ca365的根证书默认并没有安装在Windows系统的“受信任根证书颁发机构”列表中。在我的机器上能验证成功是因为我事先已经导入了CA365的根证书。关于数字证书和根证书的关系可以看我的白话数字签名(2)
可以在“开始菜单 | 运行...”里执行“certmgr.msc”查看“受信任根证书颁发机构”列表。


所以如果你希望Windows信任你就乖乖的向这个列表中的公司交钱吧,例如QQ的安装文件就是使用的 VeriSign 的代码签名证书。

还有一个奇怪的问题...

但是如果我们在“C:\Program Files\Internet Explorer\IEXPLORE.EXE”上面右击,再点击“属性”,可以看到并没有显示数字签名页,但是在Process Explorer中却可以成功验证签名,这是怎么回事呢?呵呵,先卖个关子,下篇再讲 :)


posted on 2007-11-27 08:13 1-2-3 阅读(3808) 评论(24)  编辑 收藏 网摘 所属分类: 白话数字签名系列

FeedBack:
#1楼 2007-11-27 08:38 迭戈      
学习一下。继续关注。比较喜欢图文并茂的文章
  回复  引用  查看    
#2楼 2007-11-27 08:56  Enzo      
呵呵,给自己的程序签名。
  回复  引用  查看    
#3楼 2007-11-27 10:13 BlackCat      
老乡,我又来挺你来了,嘎嘎
  回复  引用  查看    
#4楼[楼主] 2007-11-27 10:24 1-2-3      
@万一
请教个问题,你是怎么引用文章的?是添加个链接就可以么?问什么我在文章里添加别的园子里的文章并没有形成TrackBack?

  回复  引用  查看    
#5楼[楼主] 2007-11-27 10:30 1-2-3      
@BlackCat
我加了群了,群里挺热闹的,没事就飚图,那天还来了个MM,以为是时尚群就进来了,一直问什么是DropDownList?开始我还以为她是在开玩笑,后来好多兄弟都显出身来,有一个哥们感叹曰:“群里好久没这么热闹了...”。可惜你都在晚上才现身,那MM已经被吓跑了。

  回复  引用  查看    
#6楼 2007-11-27 10:37 病毒 - - 小春      
一大早,什么事没做,
先把兄台的文章(四篇)都看完了,经典啊

——没有经典的MM,就没有动力啊

  回复  引用  查看    
#7楼 2007-11-27 10:52 装配脑袋      
ca365是什么机构,可以信任吗?
  回复  引用  查看    
#8楼[楼主] 2007-11-27 11:04 1-2-3      
@装配脑袋
ca365是一个网友介绍的(在《白话数字签名(1)》里),我也没深入了解过,总之可以申请免费的数字证书,作个练习什么的还是挺方便的。

  回复  引用  查看    
#9楼 2007-11-27 11:22 A1[未注册用户]
@1-2-3
客户的机器上还是需要安装ca365的根证书才能进一步信任你的签名吧?在签名中指定证书链?
我很想能免费获得机器里已安装其根证书的机构给我颁发的证书。但是目前免费都是只证明个人身份,不能用于软件。

呵呵,再说个笑话,刚刚听说山东大学的教授破解SHA、MD5等算法的时候,有一天我做梦说还有更牛的中国数学家,连MS根证书的根证书的私钥都破解了,结果被个不良的学生拿去外国卖了几亿美刀。最后全世界的机器中了他们的木马,因为签名是MS的,大家都不知道补丁包被人篡改了。醒来狂笑不止,不过如果真发生这样的事情,那真是如同世界末日。

  回复  引用    
#10楼[楼主] 2007-11-27 11:31 1-2-3      
@A1
是啊,没错,客户一定要先导入ca365的根证书才行。要是能搞到MS信任的免费证书就好了。
A1,你是专门作签名技术的么?能作这样的梦也是很强的呀。

  回复  引用  查看    
#11楼 2007-11-27 11:39 A1[未注册用户]
@1-2-3
不是,只是工作需要接触过.

  回复  引用    
#12楼 2007-11-27 14:09 BlackCat      
@1-2-3
恩,本周末群主老K,要在他公司做一个讲课式的聚会,详细信息你看群的公告,在沈阳有时间就去看看吧,我这工作太忙,天天加班,我要是在沈阳就过去了,呵呵

  回复  引用  查看    
#13楼[楼主] 2007-11-27 14:19 1-2-3      
@BlackCat
刚刚看到群里有人在议论,没弄明白是咋回事,还好老K给出了EMail,我给他写封信问问吧。

  回复  引用  查看    
#14楼 2007-11-27 15:52 neoragex2002      
山大Prof. 王小云找到的是一种相对于目前方式而言更快的寻找碰撞(就是说,已知一个md5,求取明文,令其md5值与目标md5相同)的方法,但其貌似依然还是基于搜索探测方式来提高尝试成功概率的,而非以分析方式直接快速的求取结果。

所以结论就是,破解MD5,虽说现在强度已经降低了,但并不意味不是没有代价的,而只要这个代价是高于被保护信息本身价值的,那么用MD5加密就是安全的。so 看是什么场合吧。

数字签名、加密、鉴别、认证、授权、防伪这些dd其实应用起来只是繁琐而已,概念上理解理解非对称加解密基本过程、知道哪些可以做到哪些不可做到即可。其实对于工程技术人员而言没太多深究的价值。不建议花精力在这上面。

  回复  引用  查看    
#15楼 2007-12-14 16:54 马可香蕉      
学习一下。继续关注。比较喜欢图文并茂的文章

呵呵,我也是

  回复  引用  查看    
#16楼[楼主] 2007-12-14 17:09 1-2-3      
@马可香蕉
“马可香蕉”这ID好有趣呀。最近我总觉得1-2-3这ID不像人名。

  回复  引用  查看    
#17楼 2008-02-21 21:44 _Neek[未注册用户]
@1-2-3
你太搞笑了

  回复  引用    
#18楼[楼主] 2008-02-22 09:35 1-2-3      
@_Neek
吼吼,恶搞是我的最爱。

  回复  引用  查看    
吼吼
  回复  引用    
#20楼 2008-05-16 12:40 zbb[未注册用户]
这个免费的数字证书 有公钥没有私钥啊。。。。
  回复  引用    
#21楼 2008-05-16 14:37 zbb[未注册用户]
怎么没有私钥呢。。。
  回复  引用    
#22楼[楼主] 2008-05-17 09:14 1-2-3      
@zbb
下载的那个“NewCert.der”文件里面是包含公钥和私钥的。

  回复  引用  查看    
这个私钥和公钥不分开吗 不是公钥和私钥要分开的吗???
  回复  引用    



发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 968370




相关文章:

相关链接: