王朝百科
分享
 
 
 

代码签名

王朝百科·作者佚名  2009-12-28  
宽屏版  字体: |||超大  

代码签名证书为软件开发商提供了一个理想的解决方案,使得软件开发商能对其软件代码进行数字签名。通过对代码的数字签名来标识软件来源以及软件开发者的真实身份,保证代码在签名之后不被恶意篡改。使用户在下载已经签名的代码时,能够有效的验证该代码的可信度。

要想实现代码签名必须首先获得数字证书才能使用这些功能。并且代码签名证书针对不同的平台,其代码证书品种也不尽相同,因此使用者最好事先咨询正规的代码签名证书的颁发机构。国际上,支持种类和品种最多的是VeriSign代码签名证书。国内的VeriSign代理机构如天威诚信,可以针对不同平台的代码签名应用,提供不同的代码签名证书产品及应用解决方案。

从用户角度,可以通过代码签名服务鉴别软件的发布者及软件在传输过程中是否被篡改。如果某软件在用户计算机上执行后造成恶性后果,由于代码签名服务的可审计性,用户可依法向软件发布者索取赔偿,将很好的制止软件开发者发布攻击性代码的行为。

从软件开发者和Web管理者的角度,利用代码签名的抗伪造性,可为其商标和产品建立一定信誉。利用可信代码服务,一方面开发者可借助代码签名获取更高级别权限的API,设计各种功能强大的控件和桌面应用程序来创建出丰富多彩的页面,另一方面用户也可以理性地选择所需下载的软件包。并且利用代码签名技术,还可以大大减少客户端防护软件误报病毒或恶意程序的可能性,使用户在多次成功下载并运行具有代码签名的软件后,和开发者间的信任关系得到巩固。

代码签名证书功能实现原理

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

1. 发布者从CA机构(如VeriSign)申请数字证书;

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

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

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

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

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

整个过程对用户完全透明,用户将可以看到软件发布者提示信息,并可以选择是否信任该软件发布者。在选择信任软件发布者之后,运行所有该软件发布者签名的程序时将可以不再收到任何提示信息。

不同数字认证公司提供的代码签名分类不同,以下分类按照代码签名证书产品类型划分。

VeriSign 作为国际顶级的认证机构(CA),支持以下所有产品并且兼容性最好。其中微软徽标认证证书、微软移动代码签名证书、Brew代码签名证书是 VeriSign 专有的产品。其他代码签名证书产品则可以有更多的选择余地。

(1) 代码签名数字 ID(Code Signing Digital IDs): 主要包括:微软代码签名证书 (Microsoft Authenticode Digital ID) :数字签名 .exe, .dll, .cab, .msi, .ocx, .sys, .cat, .vbs;火狐控件(FireFox Extension)签名证书:数字签名 .xpi; Java 代码签名证书 (Sun Java Signing Digital ID) :数字签名 Sun J2SE/J2EE 的 Java Applet 文件,以及数字签名 J2ME MIDlet Suite 文件,支持业界最多型号和最多品牌的手机。 Office宏代码签名证书 (Microsoft® Office and VBA):数字签名 Office VBA 及宏代码;Adobe AIR代码签名证书 (Adobe® AIR™);数字签名 .AIR 桌面应用程序;Shockwave代码签名证书 (Macromedia Shockwave®);数字签名使用Macromedia® Director® 8 Shockwave Studio创建的应用程序。

(2) 微软产品徽标认证证书 ("Designed for Windows logo" Digital IDs) :用于数字签名微软 Windows Logo 认证的各种软件、硬件驱动程序等,提交已经签名的软件给微软测试认证,还包括微软 Windows Hardware Quality Labs (WHQL) testing programs(Windows 硬件质量实验室测试计划 ) 认证。用户在向微软提交注册申请前,必须首先获取一张微软代码签名证书 (Microsoft Authenticode Digital ID)。

(3) 微软移动代码签名证书 (Authenticated Content Signing for Microsoft Windows Mobile)(简称ACS,现已更名为Code Signing Account for Microsoft® Mobile2Market):支持使用微软 Windows Mobile 的 SmartPhone 和 Pocket PC 的移动终端操作系统的移动应用软件的非特权签名和特权签名,以确保移动下载的软件代码在移动终端 ( 如智能手机和 PDA) 的安全。

(4) Brew代码签名证书 (Authentic Document IDs for BREW) :用于数字签名高通公司推出的无线二进制运行开发操作环境下的 基于CDMA网络 "无线互联网发射平台" 上增值业务开发运行的 Brew 代码。

(5) Symbian代码签名证书 (Symbian Siged) :用于数字签名 Symbian S60 操作系统的智能手机下的 sis、sisx 格式文件。

(6) Adobe PDF代码签名证书 (True Credentials® for Adobe) :用于数字签名 Adobe PDF 文档。

。。。。。。

(10) Apple 代码签名证书

Code Signing Certificate for Apple

可以让软件开发商使用此签名证书在证书有效期内不限数量的对 Apple操作系统上运行的代码进行数字签名。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
如何用java替换看不见的字符比如零宽空格​十六进制U+200B
 干货   2023-09-10
网页字号不能单数吗,网页字体大小为什么一般都是偶数
 干货   2023-09-06
java.lang.ArrayIndexOutOfBoundsException: 4096
 干货   2023-09-06
Noto Sans CJK SC字体下载地址
 干货   2023-08-30
window.navigator和navigator的区别是什么?
 干货   2023-08-23
js获取referer、useragent、浏览器语言
 干货   2023-08-23
oscache遇到404时会不会缓存?
 干货   2023-08-23
linux下用rm -rf *删除大量文件太慢怎么解决?
 干货   2023-08-08
刀郎新歌破世界纪录!
 娱乐   2023-08-01
js实现放大缩小页面
 干货   2023-07-31
生成式人工智能服务管理暂行办法
 百态   2023-07-31
英语学习:过去完成时The Past Perfect Tense举例说明
 干货   2023-07-31
Mysql常用sql命令语句整理
 干货   2023-07-30
科学家复活了46000年前的虫子
 探索   2023-07-29
英语学习:过去进行时The Past Continuous Tense举例说明
 干货   2023-07-28
meta name="applicable-device"告知页面适合哪种终端设备:PC端、移动端还是自适应
 干货   2023-07-28
只用css如何实现打字机特效?
 百态   2023-07-15
css怎么实现上下滚动
 干货   2023-06-28
canvas怎么画一个三角形?
 干货   2023-06-28
canvas怎么画一个椭圆形?
 干货   2023-06-28
canvas怎么画一个圆形?
 干货   2023-06-28
canvas怎么画一个正方形?
 干货   2023-06-28
中国河南省郑州市金水区蜘蛛爬虫ip大全
 干货   2023-06-22
javascript简易动态时间代码
 干货   2023-06-20
感谢员工的付出和激励的话怎么说?
 干货   2023-06-18
 
>>返回首页<<
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有