词条 | 代码签名 |
释义 | 软件开发商能对其软件代码进行的数字签名。用户可以通过代码签名服务鉴别软件的发布者及软件在传输过程中是否被篡改。软件开发者和Web管理者,利用代码签名的抗伪造性,可为其商标和产品建立一定信誉。 概述代码签名证书为软件开发商提供了一个理想的解决方案,使得软件开发商能对其软件代码进行数字签名。通过对代码的数字签名来标识软件来源以及软件开发者的真实身份,保证代码在签名之后不被恶意篡改。使用户在下载已经签名的代码时,能够有效的验证该代码的可信度。 要想实现代码签名必须首先获得数字证书才能使用这些功能。并且代码签名证书针对不同的平台,其代码证书品种也不尽相同,因此使用者最好事先咨询正规的代码签名证书的颁发机构。国际上,支持种类和品种最多的是VeriSign代码签名证书。国内的VeriSign代理机构如天威诚信,可以针对不同平台的代码签名应用,提供不同的代码签名证书产品及应用解决方案。 身份认证,可审计 只有经过身份认证(通常需经第三方进行认证),才能获得全球受信的代码签名证书。如果某软件在用户计算机上执行后造成恶性后果,由于经过严格身份认证的代码签名服务具有可审计性,用户可依法向软件发布者索取赔偿,将很好的制止软件开发者发布攻击性代码的行为。 保护发行商身份安全 通过对代码进行数字签名来标识发行商的身份,可保证发行商身份和代码在签名之后不被非法篡改。篡改代码或捆绑木马、恶意程序,修改发行商身份信息等任何对已发行代码进行编辑的操作都将导致软件签名信息失效,失去相应安全应用授权。 在传统的软件采购模式中,购买者通过检查软件外盒包装来确定应用程序的来源及完整性。然而,在互联网下载的软件因为存在着难以确认开发商及发行商的风险,若不慎在互联网中下载到夹有恶意代码的应用程序或软件,不仅会给终端用户带来风险,亦可能使所有用户遭受攻击,并导致服务中断,严重损害应用程序开发业者的声誉。 防止用户下载有害文件 在木马和病毒横行的互联网上,用户经常通过网络下载软件,如何向用户保证您的代码是真实可信的呢?如何防止心怀叵测的黑客修改您发布的代码,植入病毒 或木马,给您的用户造成损失从而毁坏您的声誉呢? 代码签名 (Code Signing) 针对网上发布控件、应用程序、驱动程序,如设备驱动程序、硬件固化程序、病毒更新码、配置文件等代码和内容创建数字“保护膜”,以便在软件发行者和用户通过 Internet 与移动网络下载代码及内容时对他们加以保护。给代码添加数字签名可验证内容的来源及完整性,促进软件的下载使用与分发。减少错误消息和安全警告,增加软件发行、下载 用户在下载已经签名的代码时,计算机会自动验证该代码的可信性,并提示用户可以放心下载和使用。减少或完全消除安全提示,减少客户端软件运行报错,有效提升客户端使用体验,增加软件发行、下载量。系统安全防护软件也会对第三方认证机构颁发的数字证书所签名的软件适当放宽执行权限,避免误报困扰。构建品牌信任 利用可信代码服务,一方面开发者可借助代码签名获取更高级别权限的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)。在获取微软代码签名证书后,对微软Windows Logo 认证的各种软件、硬件驱动程序等进行数字签名,而后将已签名的软件给微软测试认证。从 Windows Vista开始,微软在x64位的系统上强制推行数字签名,没有经过WHDL和RDS认证并数字签名的硬件驱动程序将无法在Vista x64版本上成功安装。在后续的Vista版本上,微软会逐步加强对数字签名的要求,最终要求所有的应用程序必须经过签名才能在Windows系统上运行。 (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 代码。支持高通公司 (Qualcomm)BREW 系统的 BREW 应用代码的数字签名,以确保 BREW 文件的安全应用。 (5) Symbian代码签名证书 (Symbian Siged) :用于数字签名 Symbian S60 操作系统的智能手机下的 sis、sisx 格式文件。 (6) Adobe PDF代码签名证书 (True Credentials® for Adobe) :用于数字签名 Adobe PDF 文档。 (7) Apple 代码签名证书 Code Signing Certificate for Apple 可以让软件开发商使用此签名证书在证书有效期内不限数量的对 Apple操作系统上运行的代码进行数字签名。 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。