分类
常见问题

代码签名证书常见应用

代码签名证书主要作用是为各种应用程序做数字签名,通过数字签名确保应用软件来源的真实性并防止篡改,在代码签名证书里会有证书申请公司的详细信息,所以通过该信息来确认软件是否是可信的。

一般常见的代码签名证书包括微软代码签名证书Java代码签名证书,还有宏代码签名证书等等,但是一般常用的代码签名证书为微软代码签名证书,Java代码签名证书于宏代码签名证书还有其他手机应用程序的代码签名证书都已经逐渐不再使用,尤其是Android与IOS手机系统的普及导致像过去的Java,Symbian,等等手机数字签名证书的没落,因为在Android与IOS的系统里都有自己的签名策略供软件商店里的应用做签名,一般都已经不在使用第三方的数字签名证书

现在应用最为广泛的还是微软代码签名证书,下面来具体介绍下微软代码签名证书。

微软认证代码签名证书主要的功能是为在Windows平台下发布的应用程序做数字签名,因为从Vista系统开始,Windows系统的安全性要求更为严格,当用户安装软件是,系统的UAC默认设置都会提示用户该软件是否安全,是否有数字签名等信息,如果没有做数字签名那么会提示该软件未经颁发者等信息提醒用户谨慎安装;还有当用户安装未经数字签名软件时杀毒软件同时也会提示该软件未经数字签名等等安全提示,甚至会提示该软件存在安全风险等提示,所以微软认证代码签名证书主要解决的问题便是这个系统提示,还有杀毒软件的安全提醒。

在Windows平台下所需要用到数字签名的应用程序一般分为,普通应用程序,驱动程序,网页插件程序等,如exe,dll,cab,msi,ocx,sys,cat等文件。

比较特殊的应用可以总结如下:

普通应用程序,普通应用程序只需要使用微软代码签名证书进行普通的签名即可;

驱动应用程序,如果是驱动应用程序的话,需要做微软要求的交叉签名证书,交叉签名证书在签名的时候会把微软的一张证书签到程序里,在验证的时候通过微软的该证书才可通过验证;驱动程序又分为内核驱动程序与硬件驱动程序,如果是内核驱动程序那么只需要简单的交叉签名证书即可,而如果是硬件驱动程序,那么除了需要有内核驱动程序签名还需要有微软徽标认证才可通过系统数字签名验证。

关于内核驱动程序,一个内核驱动程序,即使做了交叉签名,在Vista以上系统安装都可以显示出签名信息,并通过验证,但是在xp下面进行安装,仍然提示未经数字签名,这是因为在xp下面交叉签名证书无法通过验证,除非申请微软徽标认证,但是徽标认证一般只用于硬件驱动程序的申请,用于xp不值得,而且xp也基本被逐渐淘汰,所以xp内核驱动程序与硬件驱动程序只做普通的签名即可,因为即使做了交叉签名可能也没用。

关于硬件驱动程序,在Vista以上版本必须有微软交叉签名,然后在申请微软徽标认证,这样才可以完全消除安装时在客户端出现的各种不友好提示。

微软认证代码签名证书的种类与品牌

各个第三方CA证书颁发机构都有出售微软代码签名证书,其中市场占有率最高的为VeriSign(已被Symantec收购)。

微软代码签名证书的使用,都是使用微软Signtool程序进行数字签名,有命令行与可执行程序,微软网站上也有详细的命令参数。