为何需要代码签名证书?有了代码签名有什么不同?
现在各种间谍软件、黑客程序、流氓软件泛滥,使得用户根本不敢随便在网上下载软件代码,所以,作为真正为用户提供正版自主开发软件的您,一定要让最终用户放心下载您的软件代码,这样才能有利于您的业务发展,而代码签名证书就是让您的用户放心确信此代码确实是您开发的和是没有被非法修改和破坏的。用户在下载之前可以查看到软件开发商的详细信息 ,同时可以看到此代码签名证书是通过权威的第三方(如:WoSign)认证的,是Windows可信任的根证书颁发的,是可信的,这样,您的用户就可以放心下载了。请注意:代码签名并不是加密软件本身,而且在软件上附加一个通过可信任的权威机构认证的数字签名。
下面让您体验一下有代码签名和没有代码签名的不同:
如下图 1 所示,您在页面上放一个增强页面功能的 ActiveX 文件 (.ocx/.cab) ,如果没有代码签名, Windows 2000 IE 缺省是不允许运行的:
如下图 2 所示,如果没有代码签名, Windows XP IE 缺省也是不允许运行的:
而任何 .exe 直接链接下载的话,不管是否已经签名都会提示用户“这类文件如果包含恶意代码,有可能会损害您的计算机”,建议用户不要下载,如下图 3 所示(Windows 2000),测试的 .exe 文件是微软已经签名的 Windows 的根证书升级包:
如果把以上测试 .exe 文件改用 object 方式下载,则会提示此 exe 文件已经签名,是微软的 Windows 根证书升级包,这样,用户才会放心下载,如下图 4 所示:
而把 .ocx 打包成 .cab 后使用 WoSign 全球通用的代码签名证书签名,再以 object 方式放在网站上,就会提示用户该代码已经签名,可以放心下载;如果您已经设置该软件发行商为可信任的发行商则会自动下载安装,如下图 5 (Windows 2000)和图 6 (Windows XP)所示:
代码签名不仅让用户放心下载(软件开发商的身份通过第三方认证),更重要的是,代码签名可以防止您的软件被人非法篡改或被人非法捆绑一些间谍软件后让用户下载(已经发生多起这样的案例),更有效地保护了软件开发商的切身利益和产品品牌。如下图 7 (Windows 2000) 和图 8 (Windows XP)所示, 我们仅仅修改了以上图 5 的代码的其中1个字节的内容,就通不过验证,会提示用户“无法验证内容的可靠性”:
其原因是“内容与签名不符”(Windows 2000),或“因为它没有有效的数字签名”(Windows XP)。因为您在使用证书签名时使用 MD5 或 SHA1 摘要算法计算出签名摘要附在已经签名的代码上, IE 浏览器会重新计算签名摘要并与您的原始签名摘要相比较,如果不符,就说明签名代码已经被篡改,浏览器会提示“内容与签名不符而无法验证内容的可靠性”。只要这样,您的受大家欢迎的好软件才不会被非法利用来捆绑流氓软件,这样,才能保护您的合法权益。
从上面的演示可以看出:没有签名的 ActiveX 根本就不能使用,那您就无法创建多媒体互动页面了。同时,如果您的软件(.exe)放在网上,由于人们担心不安全而不下载,这将大大不利于您的软件的快速发行和市场推广。所以,所有希望在网站上提供下载的软件开发商和硬件开发商都应该为其软件代码签名,这样才能让用户放心下载,才不会被非法篡改,才真正有利于您的业务发展和市场推广。
请注意: 如果您购买的代码签名证书的颁发根证书不是Windows所信任的根证书所颁发,则Windows XP作为没有签名一样对待而被阻止下载运行,如下图8所示,显示“发行者:未知发行商”。所以,一定要购买全球通用的Windows中已经预置了其代码签名目的的根证书的代码签名证书!非常重要!请注意:颁发 WoSign代码签名证书的根证书已经预置在所有浏览器的受信任根证书中!