最近在研究代码签名技术, 花了不少时间, 下面记录一下从了解代码签名到获得一个有效的代码签名证书的过程. 首先说一下什么是”代码签名”:代码签名即软件的所有者使用受全球认可的第三方发放的能证明其真实身份的 “代码签名数字证书” 为其开发的软件添加一个标记, 即所谓的 “签名”, 因而增强了可信度. 代码签名的作用:证明软件在发行和传播过程中未经篡改, 增强安全性. 代码签名的对象:按照不同的系统和文件类型可以为多种文件进行签名. 比如微软常见的 .exe, .dll, .cab, .msi, .ocx, .sys, .cat, .vbs 等文件类型. Android 系统中的 .apk 文件. Java 中的 .jar 文件等. 代码签名需要的工具:代码签名证书: 通过 sn.exe 自制证书或申请免费证书, 稍后重点介绍申请免费证书. 申请代码签名证书:Certum 是一家来自波兰的证书颁发机构, 他们提供免费的开源代码签名证书, 有效期为一年, 到期后可以续延. 使用此证书必须遵守开源协议. 申请地址为 : http://www./certum/cert,offer_en_open_source_cs.xml 点击邮件中的确认链接确认, 这一步将产生一个私钥证书安装到浏览器中, 此时要注意记住你所使用的浏览器, 推荐 firefox 或 ie, 最后一步安装数字证书时仍要使用这一步产生的私钥, 所以要用同一款浏览器. 确认之后会收到另一封邮件, 要求提供可以证明真实身份的证件拷贝, 我这里使用身份证扫描件, 发送到其指定的邮箱, 以提交表单后产生的订单号为标题. 很快就能得到他们的回复, 通过后, 要求在你填写表单时所添的网站中添加一个以一长串base64字符为名字的html文件, 同时在主页 </head> 标签之前加上 XHTML
xxxxxx…. 为那个base64文件名, 不带后缀名. 通过后登录他们的网站, 在 “Certificates’ management” 项中就可以看到申请到的证书内容了, 点击展开此项, 下面有几个按钮. 进行代码签名:代码签名的格式 Shell
例如: Shell
签名之后 dll 的属性标签中就会多出一项 “数字签名” 选项卡, 查看详细内容就会看到代码签名证书, 如果显示 “此数字签名正常” 就表示我们的证书获得认可, 此程序没有被篡改. 证书过期前30天会有邮件通知,证书只能重新申请, 一般再次申请不需要提供身份证明文件, 只需重新验证域名即可. |
|