1、代码签名证书的作用
代码签名为代码或内容创建一个数字化的“身份证”,这个“身份证”可以向用户证明为发布这些代码或内容(比如 exe 等类型的文件)的公司的身份,以及代码、软件等自上次加上数字签名之后未被恶意篡改,保持了软件文件的原始性。而具有代码签名证书签名的软件在运行的时候,会被系统友好对待,减少拦截以及安全警告,提升用户的信任度和安全感。
2、如何选择代码签名证书?
因为需求不同,需要的代码签名证书的需求也是不同的。代码签名分为两种:EV 代码签名证书和普通型代码签名证书。
我们环度网信推荐 EV代码签名证书,从上面对比表中可以看出EV代码签名证书采用更加严格的扩展验证(Extended Validation:EV验证),并且有严格的证书私钥保护机制–必须采用 USB Key来存贮签名证书的私钥,以防止证书被非法盗用,确保代码签名证书安全。
3、申请代码签名证书需要多长时间?
在代码签名证书申请过程中,CA需要对申请者身份进行确认,这通常需要几个小时甚至几个工作日的时间,根据环度网信的平均签发时间,在用户能够积极配合验证的情况下,一般1-2工作日即可取得代码签名证书。
4、数字签名的有效期是多长时间?
每个代码签名证书都会被指定一个有效期,一般是 1-3 年。软件开发商/发行商可以在证书有效期内随时使用代码签名证书不限次数的签署需要数字签名的文件直到代码签名的有效期结束。使用代码签名证书给文件签名时,我们建议用户加入时间戳,这样即便是代码签名证书过期了,但在有效期内签署的数字签名也会依然有效。如果签名时未加入时间戳信息,当数字证书过期后,基于此数字证书的数字签名都会过期。时间戳选项显示代码是何时被签署的,这可以让用户去查看这个数字签名是在什么时候签署的。
5、代码签名证书的工作原理
代码或者内容的签署基于公钥加密体系。开发者或软件的发布者使用私钥给一段代码或者内容加上一个数字签名。软件平台或者应用程序平台在这些代码或者内容下载过程中使用公钥来解密这个签名,同时比较下载程序的哈希值和程序被签署的时候的哈希值是否一致。通过可信的来源签署过的代码可能会被自动接受,也可能提示用户一个安全警告,让用户决定是否相信并接受这个代码。
6、如果软件开发商的私钥丢失或者泄露了怎么办?
如果软件开发商的私钥丢失、泄露,或者软件开发商的信息有任何改变,软件开发商应该立即申请撤销该代码签名证书,并向CA机构重新申请证书,用新的证书替换原来的证书。
7、怎么确定需要购买几张代码签名证书?
从证书的安全性和管理性方面考虑,环度网信建议不同的开发者/发行者或者部门单独购买,而不是共享代码签名证书。因为每个代码签名证书具有自己单独的序列号,可以更加方便的追踪某个数字签名是由哪张证书签署。同时,如果一张代码签名证书被泄露,那么这张证书必须被撤销,同时所有用这张证书签署的文件都会失效。为方便和安全起见,建议为每个开发平台购买一张代码签名证书。