代码签名证书原理和作用

什么是代码签名证书?代码签名证书是软件开发商用来给自主开发的软件签名的证书,通过对代码的数字签名来标识软件来源以及软件开发者的真实身份,保证代码在签名之后不被恶意篡改。使用户在下载已经签名的代码时,能够有效的验证该代码的可信度。

代码签名证书的作用

1、保护发行商身份安全

通过对代码进行数字签名来标识发行商的身份,可保证发行商身份和代码在签名之后不被非法篡改。篡改代码或捆绑木马、恶意程序,修改发行商身份信息等任何对已发行代码进行编辑的操作都将导致软件签名信息失效,失去相应安全应用授权。

在传统的软件采购模式中,购买者通过检查软件外盒包装来确定应用程序的来源及完整性。然而,在互联网下载的软件因为存在着难以确认开发商及发行商的风险,若不慎在互联网中下载到夹有恶意代码的应用程序或软件,不仅会给终端用户带来风险,亦可能使所有用户遭受攻击,并导致服务中断,严重损害应用程序开发业者的声誉。

2、防止用户下载有害文件

代码签名 针对网上发布控件、应用程序、驱动程序,如设备驱动程序、硬件固化程序、病毒更新码、配置文件等代码和内容创建数字“保护膜”,以便在软件发行者和用户通过 Internet 与移动网络下载代码及内容时对他们加以保护。给代码添加数字签名可验证内容的来源及完整性,促进软件的下载使用与分发。减少错误消息和安全警告,增加软件发行、下载。

用户在下载已经签名的代码时,计算机会自动验证该代码的可信性,并提示用户可以放心下载和使用。减少或完全消除安全提示,减少客户端软件运行报错,有效提升客户端使用体验,增加软件发行、下载量。系统安全防护软件也会对第三方认证机构颁发的数字证书所签名的软件适当放宽执行权限,避免误报困扰。构建品牌信任。
代码签名证书的原理

代码签名的基础是PKI安全体系。代码签名证书由签名证书私钥和公钥证书两部分组成。私钥用于代码的签名,公钥用于私钥签名的验证和证书持有者的身份识别。

发布者从CA机构(GDCA)申请数字证书;

发布者开发出代码;借助代码签名工具,发布者将使用MD5或SHA算法产生代码的哈希值,然后用代码签名证书私钥对该哈希值签名,从而产生一个包含代码签名和软件发布者的签名证书的软件包;

用户的运行环境访问到该软件包,并检验软件发布者的代码签名数字证书的有效性。由于GDCA根证书的公钥已经嵌入到用户的运行环境的可信根证书库,所以运行环境可验证发布者代码签名数字证书的真实性;

用户的运行环境使用代码签名数字证书中含有的公钥解密被签名的哈希值;

用户的运行环境使用同样的算法新产生一个原代码的哈希值;

用户的运行环境比较两个哈希值。如果相同,将发出通知声明代码已验证通过。所以用户可以相信该代码确实由证书拥有者发布,并且未经篡改。

版权所有: https://www.sslcer.com 转载请注明出处
时间:2019-3-8 作者:SSLcer