代码签字系统及方法

文档序号:6582867阅读:147来源:国知局
专利名称:代码签字系统及方法
技术领域
本发明涉及软件应用程序的安全协议领域。更具体地说,本发明提供代码签字系统及方法,特别适用于移动通信设备的Java 应用程序,例如个人数字助理、蜂窝电话,无线双程通信设备(以下通称为"移动设备"或简称"设备")。
背景技术
包括软件代码签字方案的安全协议是众所周知的,典型地,这种安全协议用来保证从互联网下载的软件应用程序的可靠性。在典型的代码签字方案中,数字签字附于识别软件开发商的软件应用程序。 一旦该软件被用户下载,用户必须只根据对软件开发商信誉的了解来判断该软件应用程序的可靠性。这类代码签字方案不能保证由第三方为移动设备所写的软件应用程序适合与本地应用程序和其它资源交互作用。因为典型的代码签字协议是不安全的,且只依赖于用户的判断,有严重破坏的风险,"特洛伊木马"型软件应用程序可能被下载并安装在移动设备上。 网络工作者还需要一种系统和方法,来控制软件应用程序在移动设备上起动。
还进一步需要2. 5G和3G网络,其中合作客户或网络工作者都喜欢控制在设备上发布给其顾员的软件类型。

发明内容
本发明的目的是提供代码签字系统和方法。 按照本发明的一方面,一种代码签字系统,用于与具有数字签字和签字标识的软件应用程序一起工作,其中,数字签字与签字标识相关,包括
应用平台; 应用编程接口 API,具有关联的签字标识符,设置API将软件应用程序和应用平台链接; 虚拟机,如果签字标识符对应签字标识,则为了控制软件应用程序访问API,虚拟机验证数字签字的真实性, 其中,通过将专用签字密钥应用到软件应用程序的杂乱信号产生数字签字,所述虚拟机通过产生软件应用程序的杂乱信号来获得产生的杂乱信号、并将公用签字密钥应用到数字签字中来获得恢复的杂乱信号、比较产生的杂乱信号和恢复的杂乱信号来验证数字签字的真实性。 优选地,如果数字签字不真实,则虚拟机拒绝软件应用程序访问API。
优选地,如果数字签字不真实,则虚拟机删除软件应用程序。
优选地,代码签字系统装在移动设备上。
优选地,数字签字由代码签字授权机构产生。
优选地,还包括 多个API程序库,每个API程序库包括多个API,其中,虚拟机通过软件应用程序控 制访问多个API程序库。 优选地,至少一个API程序库被分类为敏感的; 访问敏感的API程序库要求将数字签字与签字标识关联,其中,签字标识对应与 敏感的API程序库关联的签字标识符; 软件应用程序包括至少一个数字签字和至少一个关联的签字标识,用于访问敏感 的API程序库; 虚拟机通过验证包括在软件应用程序中的一个数字签字来授权软件应用程序访 问敏感的API程序库,所述软件应用程序具有对应敏感的API程序库的签字标识符的签字 标识。 优选地,敏感的API程序库还包括描述字符串,其中,当软件应用程序试图访问敏
感的API时,显示描述字符串。 优选地,应用平台包括操作系统。 优选地,包括一个或多个移动设备的核心功能。 优选地,包括移动设备上的硬件。 优选地,硬件包括用户身份模块卡。 优选地,软件应用程序是用于移动设备的Java应用程序。
优选地,API与应用平台上的加密流程接口 。
优选地,API与应用平台上的专用数据模块接口。
优选地,虚拟机是安装在移动设备上的Java虚拟机。 按照本发明的另一方面,一种控制在移动设备上访问敏感的应用程序编程接口的 方法,包括下列步骤 把软件应用程序装到移动设备上,所述软件应用程序要求访问具有签字标识符的 敏感的应用程序编程接口 API ; 确定软件应用程序是否包括数字签字和签字标识; 如果签字标识不与签字标识符对应,那么拒绝软件应用程序访问敏感的API ;
如果签字标识与签字标识符对应,那么验证数字签字的真实性,其中,基于数字签 字的真实性的验证,由软件应用程序访问敏感的API, 其中,通过将专用签字密钥应用到软件应用程序的杂乱信号产生数字签字,其中, 验证数字签字的真实性包括步骤 在移动设备上存储对应专用签字密钥的公用签字密钥;
产生软件应用程序的杂乱信号来获得产生的杂乱信号;
将公用签字密钥应用到数字签字中来获得恢复的杂乱信号;
7
比较产生的杂乱信号和恢复的杂乱信号。 优选地,还包括步骤如果签字标识不对应签字标识符,则从移动设备删除软件应 用程序。 优选地,数字签字和签字标识由代码签字授权机构产生。 优选地,还包括步骤如果数字签字不真实,则拒绝软件应用程序访问敏感的 API。 优选地,还包括步骤如果数字签字不真实,则从移动设备上删除软件应用程序。 优选地,当软件应用程序试图访问所述的敏感的API时,向用户显示描述字符串。 优选地,还包括如下步骤显示描述字符串,所述描述字符串通知移动设备的用户 软件应用程序要求访问敏感的API 。 优选地,还包括步骤从用户接收指令,准许或拒绝软件应用程序访问敏感的 API。 按照本发明的另一方面,一种移动设备,包括 应用平台,具有应用编程接口 API ; 虚拟机,用于验证由各个软件应用程序提供的数字签字和签字标识,以便访问
API ; 在软件应用程序提供的数字签字由代码签字协议验证后,虚拟机也允许软件应用
程序访问至少一个API ; 代码签字授权机构向要求访问至少一个API的软件应用程序提供数字签字和签 字标识,通过将专用签字密钥应用到软件应用程序的杂乱信号产生数字签字,其中,提供给 软件应用程序的签字标识包括仅被授权的签字标识,以便允许访问多个移动设备的第一子 设备; 其中,第一数字签字和第一签字标识用于第一种类型的移动设备;
第二数字签字和第二签字标识用于第二种类型的移动设备; 与应用程序关联的第一数字签字和第一签字标识防止使用第二种类型移动设备 上的API的应用程序; 与应用程序关联的第二数字签字和第二签字标识防止使用第一种类型移动设备 上的API的应用程序, 其中,虚拟机通过产生软件应用程序的杂乱信号来获得产生的杂乱信号、并将公 用签字密钥应用到数字签字中来获得恢复的杂乱信号、比较产生的杂乱信号和恢复的杂乱 信号来验证第一数字签字或第二数字签字的真实性。 优选地,虚拟机包括验证系统和控制系统,其中,虚拟机是Java虚拟机,软件应用 程序是Java应用程序。 优选地,控制系统为至少一个API的每个程序库要求一个数字签字和一个签字标 识。 优选地,应用平台的API至少接入执行加密算法的加密模块、数据存储器、专用数 据模型和用户接口之一。 优选地,至少一个API被分类为敏感的,敏感的API还包括描述字符串,其中,当软 件应用程序试图访问敏感的API时,描述字符串被显示给用户。
优选地,第一种类型的移动设备和第二种类型的移动设备是不同类型的移动设 备。 按照本发明的另一方面,一种在移动设备上控制软件开发商开发的软件应用程序
访问具有签字标识符的应用程序编程接口 API的方法,包括如下步骤 从软件开发商接收软件应用程序; 确定软件应用程序是否满足至少一个标准; 如果软件应用程序满足至少一个标准,则把数字签字和签字标识添加到软件应用 程序; 如果签字标识对应签字标识符,则验证添加到软件应用程序的数字签字的真实 性; 如果数字签字是真实的,向软件应用程序提供到API的路径; 把数字签字和签字标识添加到软件应用程序的步骤包括产生数字签字,包括下列 步骤 计算软件应用程序的杂乱信号; 把专用签字密钥应用到软件应用程序的杂乱信号,以产生数字签字; 在移动设备上提供公用签字密钥; 在移动设备上计算软件应用程序的杂乱信号以获得计算的杂乱信号; 把公用签字密钥应用到数字签字,以获得恢复的杂乱信号; 通过比较计算的杂乱信号与恢复的杂乱信号来验证数字签字。 优选地,确定软件应用程序是否满足至少一个标准的步骤由代码签字授权机构执 行。 优选地,使用安全的杂乱信号算法计算软件应用程序的杂乱信号。 优选地,进一步包括,如果数字签字不真实,则拒绝该软件应用程序访问API。 按照本发明的另一方面,一种在移动设备上控制访问具有签字标识符的敏感应用 编程接口 API的方法,包括步骤 注册一个或多个可信的软件开发商,编制访问敏感的API的软件应用程序; 接收软件应用程序的杂乱信号; 确定杂乱信号是否是注册的软件开发商所发送; 产生数字签字,其中, 数字签字和签字标识被添加到软件应用程序; 如果签字标识对应签字标识符,为了控制软件应用程序访问敏感的API,移动设备 验证数字签字的真实性; 产生数字签字的步骤是把专用签字密钥应用到软件应用程序的杂乱信号执行的, 所述杂乱信号由注册的软件开发商所发送; 其中,移动设备执行下列附加的步骤验证数字签字的真实性 在移动设备上提供公用签字密钥; 在移动设备上计算软件应用程序的杂乱信号,以获得计算的杂乱信号; 把公用签字密钥应用到数字签字,以获得恢复的杂乱信号; 通过比较计算的杂乱信号与恢复的杂乱信号,以确定数字签字是否真实;
如果数字签字不真实,则拒绝软件应用程序访问敏感的API。
优选地,产生数字签字的步骤由代码签字授权机构执行。 按照本发明的另一方面, 一种在移动设备上限制访问应用编程接口的方法,包括 如下步骤 把具有数字签字和签字标识的软件应用程序装到要求访问一个或多个具有至少 一个签字标识符的API的移动设备上; 如果签字标识对应签字标识符,则验证数字签字; 如果软件应用程序不包括真实的数字签字,则拒绝软件应用程序访问一个或多个 API ; 其中,如果签字标识与签字标识符对应,则验证数字签字的步骤包括
验证与签字标识符对应的签字标识; 把公用签字密钥存储到移动设备上,该公用签字密钥对应与代码签字授权机构关
联的专用签字密钥,通过将专用签字密钥应用到软件应用程序的杂乱信号产生数字签字; 产生软件应用程序的杂乱信号,以获得产生的杂乱信号; 把公用签字密钥应用到数字签字,以获得恢复的杂乱信号; 将产生的杂乱信号与恢复的杂乱信号进行比较。 优选地,数字签字和签字标识与移动设备的类型有关。 优选地,包括附加的步骤如果软件应用程序不包括真实的数字签字,则从移动设 备上消除该软件应用程序。 优选地,软件应用程序包括多个数字签字和签字标识; 多个数字签字和签字标识分别包括与各不同类型的移动设备有关的数字签字和 签字标识。 优选地,每个数字签字和有关的签字标识是由各相应的代码签字授权机构产生 的。 优选地,通过把与代码签字授权机构有关的各个专用签字密钥应用到软件应用程
序的杂乱信号,由对应的代码签字授权机构产生每个数字签字和签字标识。 按照本发明的另一方面,一种控制软件应用程序访问具有签字标识符的应用编程
接口 API的方法,软件应用程序具有数字签字和签字标识,包括 如果签字标识对应于签字标识符,则验证数字签字的真实性; 如果软件应用程序提供的数字签字是真实的,允许访问至少一个API ; 软件应用程序的数字签字和签字标识由代码签字授权机构产生; 其中,通过将专用签字密钥应用到软件应用程序的杂乱信号产生数字签字; 通过产生软件应用程序的杂乱信号来获得产生的杂乱信号、并将公用签字密钥应
用到数字签字中来获得恢复的杂乱信号、验证产生的杂乱信号和恢复的杂乱信号是否相同
来验证数字签字。 优选地,如果软件应用程序提供的数字签字被验证,则允许访问API的程序库。
优选地,API至少接入执行加密算法的加密模块、数据存储器、专用数据模型和用 户接口之一。 优选地,至少一个API被分类为敏感的,敏感的API还包括描述字符串,其中,当软件应用程序试图访问敏感的API时,向用户显示描述字符串。 优选地,API提供访问至少一个或多个移动设备的核心功能、操作系统和移动设备 上的硬件。 优选地,要求软件应用程序提供全局数字签字的验证,以访问任何API。


图1是根据本发明实施例的代码签字协议图; 图2是图1的代码签字协议的流程图; 图3是在移动设备上的代码签字系统方框图; 图3A是在一组移动设备上的代码签字系统方框图; 图4是图3和图3A代码签字系统的工作流程图; 图5是管理图3A的代码签字真实性的流程图; 图6是移动通信设备的方框图,其中可实现代码签字系统和方法。
具体实施例方式
图1是本发明一个实施例的代码签字协议图。应用程序开发商12产生软件应用程 序14(应用程序Y),用于要访问移动设备上一个或多个敏感的API的移动设备。软件应用 程序Y14可以是Jara应用程序,它工作于安装在移动设备中的Java虚拟机。API能使软件 应用程序Y与应用平台界面连接,该应用平台可包括如设备硬件、操作系统、核心软件和数 据模块这样的资源。为了调用或与这些设备资源交互作用,软件应用程序Y必须访问一个 或多个API,因此API可有效地"桥接"软件应用程序和有关的设备资源。在本说明和附着 的权利要求中,涉及API访问应理解包括以这样方法访问API,即允许软件应用程序Y与一 个或多个相应设备资源交互作用,因此,在提供访问任何API的同时,允许软件应用程序Y 与有关的设备资源交互作用,而否定访问API,则防止软件应用程序与有关资源交互作用。 例如,数据库API可与设备文件或数据储存系统通信,访问数据库API将提供软件应用程序 Y与文件或数据存储系统之间交互作用。用户界面(UI)API可与控制器和/或控制软件通 信,用于像屏幕、密钥盘、和任何其它向用户提供输出或从用户接收输入的设备部件。在移 动设备中,无线电API也可作用界面提供给无线通信资源,例如发射机和接收机。同样,加 密的API可提供与保密模块交互作用,后者在设备上实现保密运算。这些仅仅是可在设备 上提供API的例子。设备可包括任何这些例子的API,或不同的API代替或附加到上面所述 的例子中。 可取的是,任何API可分类成由移动设备制造商、或由API作者,无线网络工作者, 设备拥有或操作者敏感的,或其它实体理解的,后者可由在设备软件应用程序中的病毒或 病毒码影响。例如,移动设备制造商可分成对加密程序,无线通信功能或专用的数据模型 (如地址薄或日历本)互作用敏感。为防备无授权情况下对这些敏感的API访问,要求应用 程序开发商12从移动设备制造商获得一个或多个数字签字,或从其它按敏感分类任何API 的实体中获得一个或多个数字签字,或从影响到制造商利益的代码签字授权机构或其它有 意保护访问敏感的设备API的实体获得数字签字,并把签字添加到软件应用程序Y14。
在一个实例中,对每个要访问的敏感的API或包括API的程序库获得数字签字。在某些情况下,需要多个签字,这就允许服务提供商,公司或网络工作者限制某些或全部软件 应用程序在特定的一组移动设备上加载或更新。在这一多签字方案中,所有API被限制和 锁定,直到对软件应用程序的"全局"签字得到验证。例如,公司可能希望防止它的顾员在 没有首先获得公司信息技术(IT)或计算机服务部准许的情况下,在它们的设备上运行任 何软件应用程序,于是所有这些公司的移动设备可构成在软件应用程序能被执行前,至少 需要全局签字,即使要访问敏感的API和程序库,根据相应数字签字的验证,作出进一步限 制。 二进制可执行的软件应用程序Y的表达可与具体的移动设备类型或移动设备型 号无关。软件应用程序Y14可以是一次写入任何地方可运行的二进制格式,与Java软件应 用程序的情况一样。但是,可能要对每种移动设备类型或型号有数字签字,或代以对每种移 动设备平台或制造商有数字签字。因此,如果软件应用程序把几种移动设备作为对象的话, 软件应用程序Y14可送请几个代码签字授权机构。 软件应用程序Y14从应用程序开发商12送到代码签字授权机构16。在图1所示 的实施例中,代码签字授权机构16检查软件应用程序Y14,如在下面更详细描述那样,设想 代码签字授权机构16也可以或代替考虑应用软件开发商12的身份,以确定是否应对软件 应用程序签字。代码签字授权机构16优先地是一个或多个来自移动设备制造商,任何敏感 的API的作者的代表,或其它具有操作敏感的API知识的人(该API是软件应用程序需访 问的对象)。 如果代码签字授权机构16确定软件应用程序可访问敏感的API并因而要签字, 那么对软件应用程序的签字(未画出)由代码签字授权机构16产生并附加软件应用程序 Y14。然后,经签字的软件应用程序Y22,包括软件应用程序Y14和数字签字,返回应用程序 开发商12,数字签字优先地是一标签,它是用只有代码签字授权机构16保持的专用签字密 钥18产生。例如,根据一种签字方案,用hash算法(如保密杂乱信号(hash)算法SHAI) 可产生软件应用程序14的杂乱信号(hash),然后与专用的签字密钥18 —起用,以建立数字 签字。在某些签字方案中,专用签字密钥用于加密要签字的信息的杂乱信号(hash),例如软 件应用程序Y14,而在其它方案中,专用密钥可以其它方式用于从要签字的信息或该信息的 变换版本产生签字。 然后,把经签字的软件应用程序Y12发送给移动设备28或由移动设备28在无线 网络24上下载,但应当理解,本发明的代码签字协议不限于在无线网上下载的软件应用程 序,例如,在另一实施例中,经签字的软件应用程序Y22可通过计算机网络下载到个人计算 机,并通过串联连接加载到移动设备,或可以任何其它形式从应用程序开发商12获得并加 载到移动设备上。 一旦经签字的软件应用程序Y22装到移动设备28上,每一数字签字,优 先用公司签字密钥20,在软件应用程序Y14准许访问敏感的API程序库之前,进行验证。虽 然经签字的软件应用程序Y22装在设备上,但应理解,即使在设备上可执行的软件应用程 序是软件应用程序Y14。如前面所述,经签字的软件应用程序Y22包括软件应用程序Y14和 一个或多个附加的数字签字(未示出)。当签字被验证时,软件应用程序Y14可在该设备上 执行并访问已验证相应签字的任何API 。 公用签字密钥20相应于由代码签字授权机构16保持的专用签字密钥18,并且优 先与敏感的API—起安装在移动设备上。但是,公用密钥10可用设备28或可能的个人计算机系统替换从公用密钥库获得(未示出),并按需要安装在设备28上。根据签字方案的一 个实施例,移动设备28计算经签字的软件应用程序Y22中的软件应用程序Y14的杂乱信号 (hash),其中使用与代码签字授权机构16相同的散列算法,并用数字签字和公用签字密钥 20来恢复由签字授权机构16计算的杂乱信号(hash),然后把本地算得的杂乱信号(hash) 结果与从数字签字恢复的杂乱信号(hash)进行比较,如果杂乱信号(hash)相同,则签字被 验证。于是,软件应用程序Y14可能在设备28上执行,并访问相应签字已被验证的敏感的 API。如上所述,本发明决不限于这具体说明签字方案的例子,其它签字方案,包括公用密钥 签字方案,也可结合这里描述的代码签字方法和系统使用。 图2是参考图1的上述代码签字协议的流程图30。协议从步骤32开始,在步骤 34,软件开发商为需要访问敏感的API或阵列敏感的API的程序库(API程序库A)的移动 设备写软件应用程序Y。如上所述,移动设备上的一些或全部API可合成敏感性一类,这样, 任何软件应用程序对它的访问都需要数字签字验证,例如软件应用程序Y。在步骤36中,应 用程序Y由软件开发商优先使用设备模拟器来测试,该模拟器中,数字签字验证功能已不 适用。这样,软件开发商可在从代码签字授权机构获得数字签字之前调试软件应用程序Y。 一旦软件应用程序Y写好并调试完毕,则可在步骤38传送给代码签字授权机构。
在步骤40和42,代码签字授权机构检查软件应用程序Y,以确定是否应允许访问 敏感的API,并作出接受或拒绝该软件应用程序的决定。代码签字授权机构可应用一组准则 来确定是否准许软件应用程序访问敏感的API,包括,例如软件应用程序的大小,由API访 问的设备资源,软件应用程序的实用性,与其它软件应用程序的相互作用,包含病毒或其它 破坏性的代码,和开发商是否有合同义务或与移动设备制造商有其它业务安排。更多管理 代码签字授权机构和开发商的细节,参考图5描述如下。 如果代码签字授权机构接受软件应用程序Y,那么在步骤46,数字签字,最好是签 字标识,附加到软件应用程序Y中。如上所述,数字签字可用软件应用程序Y的杂乱信号 (hash)和专用签字密钥18来产生。签字标识参考图3和4描述如下。 一旦数字签字和签 字标识加到软件应用程序Y,得到签了字的软件应用程序,则经签字的软件应用程序在步骤 48返回软件开发商。然后,软件开发商可申请把签字的软件应用程序Y装到移动设备(步 骤50)上的许可证。如果代码签字授权机构拒绝软件应用程序Y,那么把拒绝说明发送给软 件开发商(步骤44),软件应用程序Y将不能访问与该签字有关的任何API。
在另一个实施例中,软件开发商可提供软件应用程序Y的杂乱信号(hash)给代码 签字授权机构,或以某种简化的格式提供软件应用程序Y。如果软件应用程序是Java应用 程序,那么设备有关的二进制*. class文件可用于杂乱信号(hash)工作中,不过,当软件应 用程序想要在特别设备或设备类型上工作时,由本申请的代理人所用的设备有关的文件, 例如*. coa可代替用于杂乱信号(hash)或其它数字签字工作中。借助于只提供软件应用程 序Y的杂乱信号(hash)或简化版本,软件开发商可把没有显示专有代码签字的软件应用程 序给代码签字授权机构。软件应用程序Y的杂乱信号(hash)与专门的签字密钥18—起, 可用来由代码签字授权机构产生数字签字。如果其它简化的软件应用程序Y的版本发送给 代码签字授权机构,那么该简化的版本同样可用来产生数字签字,只要简化的方案或算法, 像杂乱信号(hash)算法一样,对不同的输入产生不同的输出。这就保证了每个软件应用程 序可有不同的简化版本和因此不同的签字,该签字只能在附加到产生简化版本的具体相应的软件应用程序时才能验证。因为这一实施例不能使代码签字授权机构对病毒或其它破坏 性代码来充分评审软件应用程序,因此,也可要求软件开发商和代码签字授权机构之间进 行登记处理。例如,代码签字授权机构可预先同意可信任的软件开发商访问一组有限的敏 感的API。 在另一个实施例中,软件应用程序Y可提交给多于一个签字机构,每个签字机构 可负责对特定敏感的API或特定型号的移动设备上的API或支持由软件应用程序要求的敏 感的API的移动设备组的软件应用程序的签字。制造商,移动通信网络操作员,服务商,或 公司用户可对使用敏感的API有签字权,用于他们特定的移动设备型号,或工作于特定网 络上的移动设备,预订一个或多个具体业务,或分配到公司顾员。经签字的软件应用程序可 包括软件应用程序和至少一个来自每个签字机构的附加数字签字。尽管这些签字机构在本 例中能对同样软件应用程序产生签字,但不同的签字和签字验证方案可与不同的签字机构 有关。 图3是移动设备62上代码签字系统60的方框图。该系统60包括虚拟机64, 一组 软件应用程序66-70, 一组API程序库72-78,和应用平台80。应用平台80最好包括所有移 动设备62上的资源,它们可由软件应用程序访问。例如,应用平台可包括设备硬件82,移动 设备操作系统84,或核心软件和数据模型86。每个API程序库72-78最好包括一组API ,它 与应用平台中的有效资源接口 ,例如, 一个API程序库可包括所有与日历程序和日历项数 据模型接口的API 。另一个API程序库可包括所有与移动设备62的传输线路和功能接口 的API。再另一个API程序库可包括所有能与移动设备操作系统84执行的低级业务接口 的API 。此外, 一组API程序库72-78既可包括阵列敏感的API 74和78的程序库,例如与 保密功能的接口 ,也可包括可被访问而没有阵列敏感的API的程序库72和76。同样, 一组 软件应用程序66-70既可包括签字的软件应用程序66和70,它们要求访问一个或多个敏感 的API,也可包括未签字的软件应用程序,如68。虚拟机64优先地是面向运行时环境的目 标,如Sun Micro系统的J2METM(JaVa2平台,Micro出版),它管理移动设备62上工作的所 有软件应用程序66-70,并把软件应用程序66-70链接到各API程序库72-78。
软件应用程序Y70是经签字的软件应用程序的例子,每个经签字的软件应用程序 优先包括实际的软件应用程序,如包括能在应用平台80上执行的软件代码的软件应用程 序Y, 一个或多个签字标识94和一个或多个相应的数字签字96。在签字的软件应用程序66 或70中,每一数字签字96和相应的签字标识94相应于敏感的API程序库74或78,它是软 件应用程序X或软件应用程序Y要求访问的API 。敏感的API程序库74或78可包括一个 或多个敏感的API。在一个替换的例子中,签字的软件应用程序可包括数字签字96,用于在 API程序库74或78中的每个敏感的API。签字标识94可以是唯一的整数,或某些把数字 签字96与特定API程序库74或78、API、应用平台80或移动设备62的型号相连系的其它 装置。 API程序库A78是阵列敏感的API的API程序库的例子。每个包括敏感的API的 API程序库74和78应优先包括描述字符串88,公用签字密钥20,和签字标识符92。签字 标识符92优先相应于签字的软件应用程序66或70中的签字标识,并能使虚拟机让数字签 字96与API程序库74或78快速匹配。公用密钥20相应于由代码签字授权机构保持的专 用签字密钥18,并用于验证数字签字96的真实性。描述字符串88可以是文本消息,当加载签字的软件应用程序时,它显示在移动设备上,或换句话说,当软件应用程序X或Y要想访 问敏感的API时,它显示在移动设备上。 操作上,当签字的软件应用程序68-70 (分别包括要访问敏感的API程序库74_78 的软件应用程序X, Z,或Y)装到移动设备上时,虚拟机64搜索附加的、与API程序库74或 78有关的数字签字96的符号。优先地,由虚拟机64借助于把API程序库74或78中的签 字标识符92与签字的软件应用程序中的签字标识94相匹配而测出合适的数字签字96。如 果签字的软件应用程序包括合适的数字签字96,那么,虚拟机64用公用密钥20验证其真 实性,然后, 一旦合适的数字签字96被测出并验证,在执行软件应用程序X或Y并访问敏感 的API之前,则描述字符串88显示在移动设备上。例如,描述字符串88可显示这样的消息 "应用程序Y要想访问API程序库A",并借助向移动设备用户提供批准或否定访问敏感的 API的最后控制。 图3A是在一组移动设备62E,62F和62G上的代码签字系统61的方框图。系统61 包括一组移动设备,其中只有三个62E,62F和62G示于图中。还示出了签字的软件应用程 序70,它包括软件应用程序Y,两个相应于签字标识94E和94F的数字签字96E和96F已加 到该软件应用程序上。在作为例子的系统61中,由数字签字和标识组成的每对94E/96E和 94F/96F,相应于移动设备62的型号、API程序库78或有关的平台80。如果签字标识94E 和94F相应于移动设备62的不同型号,那么,当签字的软件应用程序70,它包括要访问敏感 的API程序库78的、经签字的软件应用程序Y装到移动设备62E上时,虚拟机64借助于把 标识94E与签字标识符92相匹配来为与API移动库78有关的数字签字96E搜索签字的软 件应用程序70。同样,当签字的软件应用程序70,它包括要访问敏感的API程序库78的软 件应用程序Y,装到移动设备62上时,在设备62F中的虚拟机64为与API程序库78有关的 数字签字96F搜索软件应用程序70。但是,在要访问敏感的API程序库78的、经签字的软 件应用程序70中的软件应用程序Y装到应用程序开发商未获得数字签字的移动设备的型 号上时,图3中的设备62G,设备64G中的虚拟机64找不到附加于软件应用程序Y的数字签 字,因此否定在设备62G上访问API程序库78。从前面描述应可以理解,像软件应用程序 Y那样的软件应用程序可以有多个规定的设备,规定的程序库,或规定的API签字或加于其 上的这些签字的组合。同样,对不同的设备构成不同的签字验证要求,例如,设备62E可要 求既有全局签字,又有对任何敏感的API的附加签字,为了使该软件应用程序得以执行,软 件应用程序需访问API 。而设备62F可要求只有全局签字的验证,设备62G可要求只对其敏 感的API签字的验证。很明显,通信系统可包括装置(未示出),在该装置上,接收的作为 如70的签字的部分软件程序的软件应用程序Y可以执行而没有任何签字验证。虽然签字 的软件应用程序有一个或多个附加的签字,但软件应用程序Y可能在某些设备上执行而没 有首要的任何签字验证。对软件应用程序的签字最好不与它在没有实现签字验证的设备上 的执行相干涉。 图4是流程图100,表示图3和图4的代码签字系统的工作。在步骤102,软件应 用程序装到移动设备上, 一旦软件应用程序安装完毕,该设备最好用虚拟机来确定该软件 应用程序是否要访问任何阵列敏感的API的API程序库(步骤104)。如果否,那么软件应 用程序与所有它所要求的API程序库连接并执行(步骤118),如果软件应用程序要访问敏 感的API,那么在步骤106-116中,虚拟机验证该软件应用程序包括与任何要访问的敏感的API有关的有效数字签字。 在步骤106,虚拟机从敏感的API程序库查找公用签字密钥20和签字标识符92, 签字标识符92被虚拟机在步骤108中用来确定软件应用程序是否有附加的数字签字与相 应的签字标识94相应。如果没有,则软件应用程序没有被代码签字授权机构批准访问敏感 的API,并最好防止软件应用程序在步骤116中执行。在另一个实例中,没有合适数字签字 96的软件应用程序可以移动设备上消除,或可以否定它访问阵列敏感的API的API程序库, 但可在没有访问API程序库的可能范围内执行。也可想到,当签字验证失效时,用户可以有 输入提醒,供用户控制后续操作从设备中消除该软件应用程序。 如果相应于敏感的API程序库的数字签字96加到软件应用程序并由虚拟机测出, 那么,虚拟机用公用密钥20来验证该数字签字96的真实性(步骤110)。这一步可用上面 描述的签字验证方案或其它替换的签字方案来执行。如果数字签字96不真实,则软件应用 程序最好不被执行、消除或如上所述限制访问敏感的API (参考步骤116)。如果数字签字是 真实的,则描述字符串88最好在步骤112中显示,警告移动设备用户,该软件应用程序要访 问敏感的API,并提示用户授权执行或安装该软件应用程序(步骤114)。当软件应用程序 有多于一个签字要验证时,在112步提示用户之前,最好对每一签字重复步骤104-110。如 果步骤114中的移动设备用户认可该软件应用程序,则它可被执行并连到敏感的API程序 库(步骤118)。 图5是流程图,表示图3A的代码签字授权机构的管理200。在步骤210,应用程序 开发商已开发了新的软件应用程序,它要在一个或多个目标设备型号或类型上执行。目标 设备可包括来自不同制造商的一组设备,来自同一制造商的一组设备模型或类型,或一般 具有特别签字和验证要求的任一组设备。"目标设备"一词涉及有共同签字要求的设备。例 如,对执行所有软件应用程序要求全局签字的一组设备可包括目标设备。既要求全局签字 又要求对敏感的API的进一步签字的设备可以是多于一个目标设备组的部分。软件应用程 序可用至少一个已知的API以与设备无关的状态写成,可在至少一个有API程序库的目标 设备上获得支持。最好是,被开发的软件应用程序要在几个目标设备上执行,其中每个至少 有它自己的一个API程序库。 在步骤220,对一个目标设备的代码签字授权机构从开发商接收目标签字请求,目 标签字请求包括软件应用程序或软件应用程序的杂乱信号(hash),开发商标识符,以及至 少一个目标设备标识符,它识别请求签字的目标设备。在步骤230,签字机构查阅开发商数 据库235或其它记录,以确定是否信任开发商220。这一确定可根据前面讨论的几个准则来 做,例如开发商是否有合同义务或已进入设备制造商,网络工作者,服务供应商安排的某些 其它类型的业务。如果开发商是可信的,则该方法在步骤240开始。但是,如果开发商不可 信,则该软件应用程序被拒绝(250),并不被签字机构签字。假定开发商是可信任的,则在步 骤240,签字机构借助于查询专用密钥存储器,如目标专用密钥数据库来确定它是否有相应 于提交的目标标识符的目标专用密钥245,如果找到目标专用密钥,则在步骤260产生对该 软件应用程序的数字签字,并且该数字签字或经签字的软件应用程序(包括附加到该软件 应用程序的数字签字)返回开发商(步骤280)。但是,如果目标专用密钥在步骤240没有 找到,则该软件应用程序在步骤270被拒绝,并不对该软件应用程序产生数字签字。
方便的是,如果目标签字机构接受图5方法得可兼容的实例,则为了方便管理代码签字授权机构和开发商共同体代码签字过程,可建立目标签字机构的网络,以便对多个 具有毁坏码的低似然性的目标提供经签字的软件应用程序。 当软件应用程序在设备上执行时,一经发现或根据其表现怀疑软件应用程序中有 任何破坏性或其它有问题的码,那么,相应的应用程序开发商与任何或全部签字机构的登 记或特权可被怀疑或取消,因为数字签字提供了检查跟踪,通过它可识别有问题的软件应 用程序的开发商。在这种事件中,设备者借助于配置周期性下载签字取消表通知取消。如 果相应的数字签字已被取消的软件应用程序在设备上运行,那么该设备可停止任何这种软 件应用程序的执行,并合理地从其本地存储器中消除。如果愿意,设备还可配置重新执行签 字验证,例如周期性地或当新的取消表被下载时。 虽然由签字机构产生的数字签字与应用程序开发商的身份验证和确认该应用程 序开发商已确实注册,那么数字签字优先从软件应用程序的杂乱信号(hash)或其它变换 的版本产生,并成为专门的应用,这与已知的代码签字方案不同,其中允许任何来自可信的 应用程序开发商或作者的软件应用程序访问API。在这里描述的代码签字系统和方法中, API的访问是逐个应用的基础上准许的,因而能比较严格地控制或限制。
图6是移动通信设备的方框图,其中可实现代码签字系统和方法。移动通信设备 610最好是双程通信设备,它至少具有声音和数据通信能力。该设备优先具有与互联网上的 其它计算机系统通信的能力。根据由设备提供的功能,设备可称为数据收发设备,双程寻呼 机,有数据收发功能的蜂窝电话,无线互联网设备或数据通信设备(带或不带电话功能)。
在设备能用于双程通信的地方,设备将采用通信分系统611,它包括接收机612, 发射机614,和有关的一个或多个嵌入的或内部的部件,天线单元616和618,本地振荡器 (L0) 613,和处理模块,例如数字信号处理器(DSP) 620。通信领域内的业务人士知道,通信系 统611的具体设计与设备要在其中工作的通信网络有关。例如,北美市场用的设备610可 包括通信分系统611,它设计成在Mobitex 移动通信系统或DataTAC 移动通信系统内工 作,而用于欧洲的设备610可采用通信分组无线业务(GPRS)通信分系统611。
网络访问要求也随网络919的类型而变化,例如,Mobitex和DataTAC网络中,移动 设备610用与每个设备有关的唯一识别数字在网上注册,但在GPRS网络中,网络访问与设 备610的用户有关。因此,GPRS设备为在GPRS网上工作要求用户识别模块(未示出)。通 常称为SIM卡。没有SIM卡,GPRS设备将不能起充分的作用。本地或无网络通信功能(如 果有)可以运作,但设备610不能在网络619上实行任何功能,包括通信,除了像"911"紧 急呼叫那样合法地所要求的工作。 当要求的网络注册或激励过程已完成时,设备610可在网络619上发送和接收通 信信号。由天线616通过通信网络619收到的信号输入接收机612,它可实行普通接收机的 功能,例如信号放大,下变频,滤波,通道选择等等,以及在图6系统所示的例中的模-数变 换。接收信号的模数变换允许比较复杂的通信功能,例如解调和解码可在DSP620中执行。 以同样的状态处理发射信号,包括用DSP620调制和编码,并输入发射机614作数-模变换, 上变频,滤波,放大和通过天线618在通信网络619上传输。 DSP620不仅处理通信信号,也为接收机和发射机提供控制,例如,作用于接收机 和发射机中的通信信号的增益可通过在DSP620中实现的自动增益控制算法进行自适应控 制。
设备610优先包括微处理机638,它控制整个设备的工作。通信功能,至少包括数 据和声音通信,通过通信分系统611实行。微处理器638也与另外的分系统或资源,如显示 器622,闪存624,随机访问存储器(RAM)626,辅助输入/输出(I/O)分系统628,串口 630, 密钥盘632,扬声器634,麦克风636,短距通信分系统640和任何其它的设备分系统(统称 642)互作用。API,包括敏感的API,它要求在准许访问前验证一个或多个数字签字,可安装 在设备610上,提供软件应用程序上图6中的任何资源的接口。 图6中所示的某些分系统执行与通信有关的功能,而其它分系统可提供"常驻的" 或在设备上的功能。要说明的是,某些分系统,例如密钥盘632和显示器622,既可用于与通 信有关的功能,如输入文本消息用于在通信网络上传输,也可用于常驻设备的功能,如计算 器或任务表。 微处理器638所用的操作系统软件和由软件应用程序访问的合理的API,优先存 入永久性存储器,如闪存624,它可替代只读存储器(ROM)或类似的存储单元(未示出)。业 内人士理解,操作系统,专门的设备软件应用程序,或其中的部分,可临时装到易失性存储 器(如RAM626)中。接收和发射的通信信号也可存入RAM620。 微处理器638,除了它的操作系统功能,能优先执行在设备上的软件应用程序。预 定的一组应用程序控制基本的设备操作,包括至少数据和声音的通信应用程序,通常在制 造期间就装在设备610上。可装在设备上的优先应用程序可以是个人信息管理(PM)应用 程序,它具有组织和管理涉及设备用户的数据项目的能力,例如,但不限于电子邮件,日历 事件,语音邮件,约定和任务项。自然,在设备上一个或多个存储器是有用的,以适合PIM数 据项目在设备上储存。这种PIM的应用优先具有通过无线网发送和接收数据项的能力。在 一个优选实施例中,PIM数据项通过无线网络无缝连接地集成、合成和更新,以存储的或与 主计算机系统有关的设备用户相应的数据项在移动设备上建立关于数据项的镜像主计算 机。这对主计算机系统是移动设备用户的办公室计算机系统的情况特别有利。另外的应用 软件,包括上述签字的软件应用程序,也可通过网络619,辅助I/O分系统628,串口 630,短 距离通信分系统640或任何其它合适的分系统642装到设备610上。设备的微处理器638 可验证任何数字签字,包括"全局"设备签字和规定的API签字,这些签字在软件应用程序 由微处理器638执行和/或访问任何有关的敏感的API前加到软件应用程序。安装应用程 序的这种可塑性增加了设备的功能,并提供增强的在设备功能、有关通信功能或两者。例 如,保密通信应用程序可使要用设备610通过保密API和保密模块(其中实现设备上的保 密运算)(未示出)执行的电子商务功能和其它会计事务成为可能。 在数据通信模型中,收到的信号,如下载的文本消息或万维网页,由通信分系统处 理并输入微处理器638,它进一步处理收到的信号,输出到显示器622,或输出到辅助的I/0 设备628。设备610的用户也可用密钥盘632构成数据项,如电子邮件短文密钥盘632是 完全的字母数字密钥或电话型的辅助密钥盘,与显示器622和合理的I/O设备628相结合。 这样构成的数据项可通过通信分系统611在通信网络上传输。 对于声音通信,设备610的整体工作基本上是相同,除了收到的信号优先输出给 扬声器,发射的信号由麦克风636产生之外。可替代的声音或音频1/0分系统,例如声音消 息记录分系统,也可在设备610上实现。虽然声音或音频信号输出主要是通过扬声器634 完成的,但显示器622也可用来提供呼叫方身份,呼叫持续时间,或其它有关信息的语音呼叫。 图6中的串口 630通常是在个人数字助理(PDA)型通信设备中实现的,它可能要 与用户桌面计算机(未画)同步,但是一种可选的部件。这种端口 630使用户能通过外部 设备或软件应用程序设置预定选项,并借助于不通过无线通信网络而提供信息或软件下载 到设备610来扩展设备的能力。这种下载路径可用于把保密密钥直接加载到设备上,这种 可靠和可信的连接使保密设备通信成为可能。 短距通信分系统640是另一可选的部件,它可提供设备624和不同的系统或设备
间的通信,合并不需要是同类设备。例如,分系统640可包括红外设备和有关的电路及元
件,或BluetoorhTM(蓝牙)通信模式,以提供与有相同能力的系统和设备通信。 这里描述的实施例是相应于权利要求中各部件的结构、系统和方法。本说明可使
业内人士能制造和使用相应于权利要求中的可替代的部件。本发明预定的范围包括其它结
构、系统或方法,它们与权利要求书的文字语言没有不同,并进一步包括与权利要求书中的
文字语言有非实质性判别的结构、系统和方法。 例如,当在图5方法中,在步骤250拒绝软件应用程序时,签字机构可要求开发商 签一合同或与设备制造商或签字机构影响其利益的其它实体建立业务关系。同样,如果在 步骤270拒绝软件应用程序,对该软件应用程序签字的签字机构可授权给不同的签字机 构,这种授权签字基本上可如图5所示进行,其中从信任的开发商那里收到最初请求的目 标签字机构(步骤220),根据信任的开发商来自目标签字机构的利益,要求不同的签字机 构对该软件应用程序签字。 一旦代码签字授权机构间建立起信任关系,目标专用代码签字 密钥可在代码签字授权机构间共享,以改善步骤240方法的性能,或设备可配置成从任何 一个信任的签字机构签字。 此外,虽然描述了软件应用程序的上下文,但本发明的代码签字系统和方法也可 用于其它设备有关的部件,包括,但不限于,指令和有关的指令变元系统,和构成与设备资 源接口的程序库。这种指令和程序库可由设备制造商,设备拥有者,网络工作者,服务提供 商,软件应用程序开发商等发送给移动设备。希望根据本权利要求书中描述的代码签字系 统和方法,借助于在指令能在设备上执行之前,要求验证一个或多个数字签字,来控制可能 影响设备工作的任何指令的执行,例如改变设备标识码或无线通信网络地址的指令。
权利要求
一种代码签字系统,用于与具有数字签字和签字标识的软件应用程序一起工作,其中,数字签字与签字标识相关,包括应用平台;应用编程接口API,具有关联的签字标识符,设置API将软件应用程序和应用平台链接;虚拟机验证数字签字的真实性,以便控制软件应用程序访问API,其中,签字标识符对应签字标识,其中,通过将专用签字密钥应用到软件应用程序的杂乱信号产生数字签字,所述虚拟机通过产生软件应用程序的杂乱信号来获得产生的杂乱信号、并将公用签字密钥应用到数字签字中来获得恢复的杂乱信号、比较产生的杂乱信号和恢复的杂乱信号来验证数字签字的真实性。
2. 根据权利要求l所述的代码签字系统,其特征在于(i) 如果数字签字不真实,则虚拟机拒绝软件应用程序访问API ;或(ii) 如果数字签字不真实,则虚拟机删除软件应用程序。
3. 根据权利要求2所述的代码签字系统,其特征在于(iii) 代码签字系统装在移动设备上;或(iv) 数字签字由代码签字授权机构产生。
4. 根据权利要求1所述的代码签字系统,其特征在于还包括多个API程序库,每个API程序库包括多个API,其中,虚拟机通过软件应用程序控制访 问多个API程序库。
5. 根据权利要求l所述的代码签字系统,其特征在于 至少一个API程序库被分类为敏感的;访问敏感的API程序库要求将数字签字与签字标识关联,其中,签字标识对应与敏感的API程序库关联的签字标识符;软件应用程序包括至少一个数字签字和至少一个关联的签字标识,用于访问敏感的API程序库;虚拟机通过验证包括在软件应用程序中的一个数字签字来授权软件应用程序访问敏感的API程序库,所述软件应用程序具有对应敏感的API程序库的签字标识符的签字标识。
6. 根据权利要求3所述的代码签字系统,其特征在于敏感的API程序库还包括当软件 应用程序试图访问敏感的API时,移动显示描述字符串。
7. 根据权利要求1所述的代码签字系统,其特征在于应用平台包括 操作系统;或一个或多个移动设备的核心功能; 或移动设备上的硬件。
8. 根据权利要求7所述的代码签字系统,其特征在于硬件包括用户身份模块卡。
9. 根据权利要求1所述的代码签字系统,其特征在于软件应用程序是用于移动设备的Java应用程序。
10. 根据权利要求l所述的代码签字系统,其特征在于(i) API与应用平台上的加密流程接口 ;或(ii) API与应用平台上的专用数据模块接口。
11. 根据权利要求1所述的代码签字系统,其特征在于虚拟机是安装在移动设备上的Java虚拟机。
12. —种控制在移动设备上访问敏感的应用程序编程接口的方法,包括步骤把软件应用程序装载到移动设备上,所述软件应用程序要求访问具有签字标识符的敏感的应用程序编程接口 API ;确定软件应用程序是否包括数字签字和签字标识;如果签字标识不与签字标识符对应,那么拒绝软件应用程序访问敏感的API ;如果签字标识与签字标识符对应,那么验证数字签字的真实性,其中,基于数字签字的真实性的验证,由软件应用程序访问敏感的API,其中,通过将专用签字密钥应用到软件应用程序的杂乱信号产生数字签字,其中,验证数字签字的真实性包括步骤在移动设备上存储对应专用签字密钥的公用签字密钥;产生软件应用程序的杂乱信号来获得产生的杂乱信号;将公用签字密钥应用到数字签字中来获得恢复的杂乱信号;比较产生的杂乱信号和恢复的杂乱信号。
13. 根据权利要求12所述的方法,其特征在于还包括步骤如果签字标识不对应签字标识符,则从移动设备删除软件应用程序。
14. 根据权利要求12所述的方法,其特征在于数字签字和签字标识由代码签字授权机构产生。
15. 根据权利要求12所述的方法,其特征在于还包括步骤如果数字签字不真实,则拒绝软件应用程序访问敏感的API。
16. 根据权利要求15所述的方法,其特征在于还包括步骤如果数字签字不真实,则从移动设备上删除软件应用程序。
17. 根据权利要求12所述的方法,其特征在于当软件应用程序试图访问所述至少一个敏感的API时,向用户显示描述字符串。
18. 根据权利要求12所述的方法,其特征在于还包括步骤显示描述字符串,所述描述字符串通知移动设备的用户软件应用程序要求访问敏感的API。
19. 根据权利要求18所述的方法,其特征在于还包括步骤从用户接收指令,准许或拒绝软件应用程序访问敏感的API 。
20. —种在移动设备上限制访问应用编程接口的方法,包括如下步骤把具有数字签字和签字标识的软件应用程序装载到要求访问一个或多个具有至少一个签字标识符的API的移动设备上;如果签字标识对应签字标识符,则授权数字签字;如果软件应用程序不包括真实的数字签字,则拒绝软件应用程序访问一个或多个API。
21. 根据权利要求20所述的方法,其特征在于数字签字和签字标识与移动设备的类型 有关。
22. 根据权利要求20所述的方法,其特征在于还包括步骤 如果软件应用程序不包括真实的数字签字,则从移动设备上消除软件应用程序。
23. 根据权利要求20所述的方法,其特征在于 软件应用程序包括多个数字签字和签字标识;多个数字签字和签字标识分别包括与不同类型的移动设备有关的数字签字和签字标识。
24. 根据权利要求23所述的方法,其特征在于每个数字签字和有关的签字标识是由各 相应的代码签字授权机构产生的。
25. 根据权利要求20所述的方法,其特征在于还包括确定软件应用程序是否包括真实 的数字签字,其中,如果签字标识与至少一个签字标识符对应,则验证数字签字的真实性。
26. 根据权利要求24所述的方法,其特征在于通过把与代码签字授权机构有关的各个专用签字密钥应用到软件应用程序的杂乱信 号,由对应的代码签字授权机构产生每个数字签字和签字标识。
27. 根据权利要求20所述的方法,其特征在于所述如果签字标识对应签字标识符则授 权数字签字包括验证与授权数字签字的签字标识符对应的签字标识,其中,签字标识与签字标识符对 应包括在移动设备上存储公用签字密钥,所述公用密钥与产生数字签字的代码签字授权机构 关联的专用签字密钥对应;产生软件应用程序的杂乱信号,获得产生的杂乱信号; 将公用签字密钥应用到数字签字,获得恢复的杂乱信号; 比较产生的杂乱信号和恢复的杂乱信号。
28. 根据权利要求20所述的方法,其特征在于 移动设备包括多个API ;至少一个API被分类为敏感的; 访问任一个API需要真实的全局签字;访问每一个敏感的API需要真实的全局签字和与签字标识符关联的真实的数字签字; 确定软件应用程序包括真实的数字签字和签字标识符包括 确定软件应用程序要求访问的一个或多个API是否包括敏感的API ; 确定软件应用程序是否包括真实的全局签字;确定软件应用程序是否包括真实的数字签字和签字标识符,其中,软件应用程序要求 访问的一个或多个API包括敏感的API,并且软件应用程序真实的全局签字;拒绝软件应用程序访问一个或多个API包括如果软件应用程序不包括真实的全局签字,则拒绝软件应用程序访问一个或多个API ;拒绝软件应用程序访问密感的API,其中,软件应用程序要求访问的一个或多个API包括密感的API,软件应用程序包括真实的全局签字,但软件应用程序不包括要求访问密感的 API的真实的数字签字和签字标识符。
全文摘要
提供了一种代码签字系统和方法。代码签字系统与有数字签字的软件应用程序一起工作,并包括应用平台、应用程序编程接口(API)和虚拟机。API用来把软件应用程序与应用平台相链接。虚拟机验证数字签字的真实性,以控制软件应用程序访问API。
文档编号G06F21/00GK101694687SQ20091020791
公开日2010年4月14日 申请日期2001年9月20日 优先权日2000年9月21日
发明者戴维·P·亚切, 赫伯特·A·利特尔, 迈克尔斯·S·布朗 申请人:捷讯研究有限公司;
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1