代码签名证书常见问题

发布时间:2018/8/20 21:44:47 打印 字号:

1、什么是代码签名证书?为什么需要代码签名证书?

代码签名为代码或内容创建一个数字化的“身份包装”,这个“包装”可以向用户证明为这些代码或内容负责的公司的身份,并且确认这些代码或内容自被签名起从未被修改过。在传统的软件销售中,用户可以通过检查产品的包装来确认其所购买的程序的来源和完整性。现在,用户越来越多的在线下载软件,安装插件,使用各种基于Web的应用程序。在这过程中,恶意代码或者不完善的代码使得用户面临着极大的安全风险。Gworg代码签名可帮助软件开发商开发的软件代码进行加密。防止被他人伪造和篡改,从而保护软件开发商的品牌和知识产权。

QQ截图20180820145729-768x345.png

2、需要哪种代码签名证书?

因为代码加密的需求不同,需要的代码签名证书的需求也是不同的。Gworg根据用户的需求提供两种代码前面证书:EV 代码签名证书和标准型代码签名证书。其中标准代码签名证书是按照Gworg的标准审查、私钥存储在开发人员工作站本地;而EV 代码签名证书是扩展验证代码签名证书,具有标准代码签名证书的所有功能,能签名内核代码。EV代码签名证书与标准代码签名证书不同的是采用更加严格国际标准扩展验证(Extended Validation:EV验证),并且有严格的证书私钥保护机制–必须采用 USB Key来保护签名证书的私钥,以防止证书被非法盗用,确保代码签名证书安全。

3、购买一个代码签名证书需要多长时间?

在代码签名证书申请过程中,Gworg会收集代码开发商(个人)的相关信息用以确定开发商的身份。确认过程可能会需要几个小时,有时候甚至需要几天,这取决于代码开发商所提供的信息是否充分。

4、数字签名的有效期是多长时间?

软件开发商购买的每张代码签名证书都会被指定一个有效期。软件开发商可以在证书有效期内使用自主的代码签名证书反复签署自主研发的代码。但是当数字证书过期后,所有基于此数字证书的数字签名都会过期,除非签名中包含时间戳。时间戳选项显示代码是何时被签署的,这可以让用户去验证这个数字签名是在代码签名证书有效的时候被签署的。

 

5、代码签名证书是如何工作的?

代码或者内容的签署基于公钥加密体系。开发者或软件的发布者使用私钥给一段代码或者内容加上一个数字签名。软件平台或者应用程序平台在这些代码或者内容下载过程中使用公钥来解密这个签名,同时比较下载程序的哈希值和程序被签署的时候的哈希值是否一致。通过可信的来源签署过的代码可能会被自动接受,也可能提示用户一个安全警告,让用户决定是否相信并接受这个代码。

 

6、其他人如何能信任代码开发商的签名?

由于证书的申请者必须经过严谨的身份验证过程,所以第三方CA(Gworg)签发的证书比自签发证书更受信任。当软件平台或者应用程序平台验证数字签名的时候,它们通过“根证书”来决定是否信任该CA颁发的证书。代码开发商也可以自签署自己开发的代码,但必须确保所有获得代码的使用者都已获得了自签证书的根证书。否则,使用者无法识别开发者自签的证书。Gworg所颁发的根证书已经通过Webtrust认证,已获得绝大部分信任。

7、如果软件开发商的私钥丢失或者泄露了怎么办?

如果软件开发商的私钥丢失、泄露,或者软件开发商的信息有任何改变,软件开发商应该立即撤销自主的代码签名证书,并向CA机构重新申请证书,用新的证书替换原来的证书。

 

8、软件开发商需要签署 cab 包里面的所有文件,还是只需要签署 cab 包本身?

对于 Microsoft Windows® 应用程序,开发者只需要用相应的代码签名证书签署 .cab 文件即可。对于 Windows Mobile® 应用程序,所有的可执行文件都必须签署。VeriSign® Flexible Signing Account 可以在签署 .cab 文件的时候自动签署其中所包含的所有可执行文件。

9、需要几张代码签名证书?

基于安全性和可管理性考虑,Gworg建议开发者另外购买,而不是共享代码签名证书。如果一张代码签名证书被泄露,这张证书必须被撤销,同时所有用这张证书签署的程序都会失效。为方便使用起见,建议为每个开发平台购买一张代码签名证书。可以通过一个平台的代码签名证书签署其他平台的代码。然而,不同平台的数字证书格式是不一样的。要跨平台使用代码签名证书需要使用另外的工具来转换证书格式。