涉及通信设备的方法和装置的制作方法

文档序号:7942852阅读:148来源:国知局
专利名称:涉及通信设备的方法和装置的制作方法
技术领域
本发明涉及通信设备,特别是涉及在这样的设备上可执行应用的管理。
背景技术
诸如移动电话、PDA等的电子设备的功能可以通过增加用于执行特定指令的应用 而增强或引入附加功能。利用MIDlet (MIDlet是Java环境中的应用的术语),通过允许应用通过接口访问 设备而使能应用。对设备的控制可以取决于应用的源。源由链接到设备中的根证书的签名 和证书来验证和确认。根据应用,制造商或运营商可以是应用的源。MIDlet由例如作者签名的事实证明两个问题1、作者实际创作该MIDlet,2、MIDlet处于原始状态(即,它未经第三方修改)对MIDlet进行签名的目的是1、获得对电话上的安全敏感操作的访问(诸如发送SMS或打开TCP连接)2、保证(恶意的)第三方不能提出与原始MIDlet不同的MIDlet。签名步骤可以包括计算MIDlet的安全散列(也称为消息摘要),并且利用签名 人的私钥将该散列加密。这样来检查签名利用签名人的公钥来解密经过加密的散列,并检 查其是否与计算出的MIDlet的散列相等。如果二者(签名的散列和实际计算的散列)相 等,则表示该MIDlet签名被成功验证。要点是仅私钥的所有者可以对MIDlet签名(因此利用相应的公钥来验证该签 名),并且在签名后对MIDlet的任何修改将导致签名验证失败。用户(S卩,订户)与识别模块(如在蜂窝通信系统中的SIM卡(SIM))关联起来。 SIM通常由移动电信系统的运营商签发给与其签约的订户。运营商希望进行控制,使得在具 有属于该运营商的SIM的电话中仅使能其自己的应用。在MIDP的一个版本(移动信息设备配置文件2. 0)中,通过在SIM中设置根证书 可以解决这个问题。移动电话包含逻辑,使得只有在将具有正确根证书的SIM插入电话中 时才能使能应用。在详细的描述中可以找到对现有技术步骤的更详细的描述。在一些情况 下,运营商将运营商根证书存储在电话中的存储器上。用于移动设备的许多应用由第三方提供。这些应用可以根据制造商、地区、运营商 和设备型号而不同。在许多情况下,例如出于竞争原因,可以将特殊的应用提供给设备的用 户以使产品更具有吸引力。例如,在移动电话的情况下,当利用制造商证书或通过任意其他的域证书来对 Java MIDlet签名时,应用通常可以在具有受信任的根证书的所有电话中工作,签名证书链 接回该根证书。一般而言,这是令人满意的;但是,它可能并不在所有情况中都令人满意,例 如,其中一种情况是当应用开发人员希望将一个或多个应用的使用限于特定的电话型号或 运营商。目前,不存在安全的方式来这样做。

发明内容
本发明解决了将签名的Java MIDlet限制于特定通信设备和/或服务提供商(运 营商)和/或地区的问题。这些和其他目的通过将利用域证书签名的应用与在设备中的预定实体关联起来 的方法来实现,所述设备包括用于读取订户身份的模块读取器;用于运行至少一个应用 的虚拟机;包含根证书的存储器。该方法包括以下步骤使用聚合子数据组的数据组;修 改所述数据组的一部分,使得所述部分包括对所述实体的引用。优选地,所述数据组是 JARQava归档)文件。优选地,所述部分是JAR的清单(manifest)。优选地,所述部分是 JAR文件中的MIDlet证书。根据一个实施方式,所述实体是设备型号、通信网络的运营商或 地区中的一个。优选地,利用新属性扩展JAR文件中的所述清单。所述属性规定了哪一种运营商 定制的或贴牌的设备或哪一种设备型号被允许安装应用。在实施方式中,用于对MIDlet进 行签名的签名人证书可以设置有标识运营商和/或型号的值。具有签名人证书的签名人可 以针对特定运营商和/或设备型号对MIDlet签名。优选地,在安装期间,当对照存储在所述设备和/或与所述设备通信的存储单元 中的根证书来验证所述签名人证书时,验证者可以验证所述设备型号和/或运营商身份是 否与签名人证书相匹配。该方法还包括以下步骤控制证书和JAR文件;处理JAR的清单;访问所述清单中 的扩展属性值;以及针对所述值来设置应用许可。本发明还涉及用于生成前面提到的数据组的应用创建和打包的方法。该方法包括 以下步骤创建对应于所述子数据组的MIDlet ;生成对应于所述数据组的JAD文件;基于 JAD生成MANIFEST. MF文件;打包所述应用;使用jarsigner对所述应用签名;将值添加到 用于对所述MIDlet签名的签名人证书;更新所述JAD中的MIDlet-Jar-Size ;将所述证书 添加到所述JAD ;将所述签名添加到所述JAD。所述添加值的步骤可以按照两种方式执行利用所述新的属性在所述清单中进行 扩展,所述新的属性将由对所述JAR签名的工具来验证,验证所述值是否正确,或者使用针 对每个值的特定签名人证书,除了使用特殊的专用签名人证书以外,此步骤将是与对任何 其他MIDlet签名的步骤相同的步骤。本发明还涉及一种设备,该设备包括用于读取订户身份的模块读取器;用于运 行至少一个应用的虚拟机;包含根证书的存储器;以及处理单元。所述处理单元配置为 访问用于聚合子数据组的数据组;处理并标识所述数据组的一部分,该部分包括对实体的 引用,并将利用域证书签名的应用与设备中的预定实体关联起来。优选地,所述数据组是 JARCJava归档)文件。优选地,所述部分是JAR的清单。优选地,所述部分是JAR文件中的 MIDlet 证书。在优选实施方式中,所述实体可以是设备型号、通信网络的运营商和/或地区身 份。所述设备可以是移动电话终端、通信机、智能电话、PDA或便携式计算机中的任一 种。
5
本发明还涉及一种计算机程序产品,该计算机程序产品包括计算机代码,该计算 机代码将利用域证书签名的应用与设备中的预定实体关联起来。所述计算机代码包括用于 聚合子数据组的第一指令集,所述第一指令集还包括含有对所述实体的引用的部分。在优 选的计算机程序产品中,所述第一指令集是JARCJava归档)文件。在优选的计算机程序 产品中,所述部分是JAR的清单。在优选的计算机程序产品中,所述部分是JAR文件中的 MIDlet证书。在优选的计算机程序产品中,所述实体是设备型号、通信网络的运营商和/或 地区。


下面将参照多个示例性实施方式更加详细地描述本发明,在附图中图1示意性例示在通信设备中安全模型和各种根证书的位置,图2是JAR文件的框图,图3是例示本发明的部分步骤的流程图,图4是例示在根据本发明的设备中执行的部分步骤的流程图。
具体实施例方式下面,将参照在电信网络中操作的移动电话来例示本发明。通常利用作为插入到 电话中的主动(智能)卡的SIM卡将移动电话与订户和特定电话号码联系起来。但是,内 置的特殊存储器也可以用于相同目的。移动电话设置有用于从ISM卡获取信息的读取器, 并且还可以向该卡写入信息(例如,如本领域中已知的那样,使用该卡作为存储电话号码 等的存储器)。应用可以被下载到电话并在特殊平台(所谓的虚拟机,通常实现为Java环 境)上运行。本发明不排除如本机代码(native code)的任何种类的第三方应用,并且电 话可以是基于任何操作系统的开放式电话,其可以实现类似于Java环境的机制。而且,本 发明可以适用于其他移动终端,这可以是通信机、智能电话、PDA、便携式计算机等。总体上,本发明涉及利用域证书签名的诸如音乐应用、程序、视频应用等应用与设 备中的预定实体的关联。最简化的设备包括用于读取订户身份的模块读取器、用于运行至 少一个应用的虚拟机、包含根证书的存储器。因而,通过修改数据组(例如,用于聚合子数 据组的JARCJava归档)文件)的诸如JAR清单或JAR文件中的MIDlet证书的部分,修改 了数据组,使得该部分指向实体。图1例示了包括存储器11和SIM卡12的移动电话10的示例。多个MIDlet 13 配置为在虚拟机14中运行,虚拟机14可以是电话的处理器100的一部分。安全控制器15 控制对MIDlet 13的访问。安全管理器15需要来自根证书16、17、18和19的信息。根证 书可以存储在不同的存储器中。例如,例如可以是RAM(随机存取存储器)或闪存等的存储 器11可以包含制造商根证书16和第一根证书17。SIM卡12可以存储运营商根证书18和 另一个根证书19。当安装或下载MIDlet 12时,通过读取存储在设备中的证书链“.jad”文件而验证 签名。从设备10或从SIM卡12获取根证书。接着,证实证书链并将其链接到特定的根证 书。在下一步骤中,将MIDlet指配给由根证书限定的域。存储器11 (或其他存储器)可以用于存储应用12。
6
移动电话还包括控制和执行电话的不同功能的处理器100、用于与用户通信的用 户接口 120、和包括发射器部和接收器部的收发器110。根据本发明的第一方面,应用的JARCJava归档)文件的清单用于实现本发明的目 的。通常使用JAR文件下载独立Java应用。根据本发明实现的JAR文件可以遵循Sim Microsystem的JAR文件规范(下文为“JAR规范”),同时结合另外的元素以方便根据本发 明的应用限制。遵照该JAR规范,JAR文件包括类文件的集合和执行该应用所必需的任何 扩展。由于在JAR文件内通常将类文件压缩,因此JAR文件适合于打包和交付Java应用。除了其类文件以外,描述的JAR文件20的实施方式(如图2所示)还包括JAR清 单文件21。如在JAR规范中描述的,JAR清单文件21具有主段211,并且可以包括一个或 更多个分段(未示出)和分段212,在JAR规范中对此做出了充分的描述。主段211包含诸 如指示清单文件版本的清单版本信息、指示版本和用于产生清单文件的Java实现的供应 商的供应商/版本信息、和指示启动程序(launcher)在启动时将加载的主应用类的相对路 径的“主类”信息的信息。JAR清单文件还包括JRE兼容性信息。JRE兼容性信息指示JRE供应商的列表和 与该应用兼容的JRE版本(如果应用开发人员未提供应用的JRE兼容性信息,则系统中最 高版本的JRE将是优选的JRE)。在所描述的实施方式中,JRE兼容性信息是兼容的JRE的 优先顺序列表。因而,所描述的JRE兼容性信息的示例包括指示JRE版本和(可选地)供 应商的一组项目。与JAR文件清单中的大多数其他项目相似,每个JRE兼容性项目都被格 式化为名称-取值对。从互联网工程任务组(IETF)RFC 822(ARPA互联网文本消息的格式的标准)得到的名称_取值对是指规定参数值的简 单格式,其中指示参数名称的文本的后面跟随有冒号()、空格、和指示参数值的文本。除 了标识JRE版本号以外,清单项目中的兼容性JRE的标识还可以可选地标识供应商名称、操 作系统名称、或特定架构。JRE兼容性信息包括仅规定JRE版本号的第一个项目。第二个项 目指示JRE版本以及供应商。第三个项目指示JRE版本号、供应商和操作系统。对该示例 的兼容性信息的解释是不考虑供应商和操作系统,该应用与例如JRE版本1. 4. 2的任何实 现兼容并且优先在例如JRE版本1.4. 2的任何实现下执行。如果JRE 1.4. 2不可用,则兼 容性项目指示如果供应商是Sun Microsystem则可以使用JRE 1. 3. 2等。分段限定了 JAR文件中包含的包或文件的各种属性。并不需要在清单中将JAR文 件中的全部文件都列为项目,但必须列出将要被签名的全部文件。一定不能列出清单文件 本身。如果同一文件项存在多个分段,则将这些段中的属性合并。如果特定属性在不同 段中具有不同的值,则认可最后一个。下面是JAR清单的更详细的例子Manifest-Version 1.0MIDlet-Name MyAppCreated-By MIDlet-Push-I MIDlet-I
7
MicroEdition-Configuration Ant-Version MIDlet-Icon MIDlet-Vendor MIDlet-Permission javax. mocroedition...MIDlet-Version 1. 0. 67MicroEdition-Profile :MIDP-2. OMIDlet-Description MyApp MIDlet因而,根据本发明的第一方面,使用新的属性来扩展JAR文件中的清单,这些新的 属性将规定哪一种运营商定制的电话或哪一种设备/电话型号被允许安装应用。这些属性 可以包括 xzy_Access_Model 型号 1、型号 2 ;禾口 xzy_Access_Operator :MyOwnOperator, ^ 中xzy是制造商身份。型号η是设备型号身份,并且MyOwnOperator例如是电信运营商身 份。但是,电话不一定必须是运营商定制的电话,还可以是标识了运营商的电话(即, 它可以是具有SIM的一般的电话,由SIM指示当安装MIDlet的时刻,哪一个运营商控制电 话;当用户更换SIM时,此情况下可以将应用无效)。这意味着运营商定制的电话可以不仅 仅是运营商贴牌的电话。在利用诸如运营商、制造商或第三方证书的核准的签名人的证书对应用签名后, 将不可以改变该应用的清单。因而,由于签名涵盖了全部JAR文件,因此应用可以在未被定 制为特定运营商的设备上运行。参照图4,在移动电话中,上面提到的安全管理器控制401证书402,并且JAR文件 被访问403,JAR文件的清单被处理404。如果证书不正确,则访问许可被拒绝405。扩展的 属性被提取406并且属性值在电话中设置407应用许可。根据本发明的第二方面,通过将值(即,运营商和/或型号标识符)包括在用于对 MIDlet签名的签名人证书中而解决了问题。信息可以添加在证书的主题字段中,或者作为 专用值添加到证书的例如备案的Enhanced Key Usage字段中。按照该方式,已接收到签名 人证书的签名人可以仅针对特定运营商和/或电话型号对MIDlet签名。接着,当在安装期 间对照存储在电话或SIM中的根证书来验证签名人证书时,验证者还将验证电话型号是否 与在签名人证书中规定的电话型号匹配。图3例示应用创建和打包的示例性步骤1、创建 MIDlet2、生成JAD文件3、基于JAD生成MANIFEST. MF文件(例如,利用wtkjad Antennatask可以完成这 两个任务)4、打包应用5、使用jarsigner来对该应用签名,这生成了 JAR文件的签名并验证签名的JAR 文件的签名。将运营商和/或型号标识符的值添加到用于对MIDlet签名的签名人证书中。 这可以通过两种方式来完成i、利用新属性在清单中扩展,新属性将由对JAR签名的工具验证,验证该值是否
8正确。因而,该步骤可以是使用jarsigner或任何其他工具来进行签名步骤的工具。ii、针对各运营商使用特定的签名人证书,除了使用特别的专用的签名人证书以 外,这将是与对任何其他MIDlet进行签名相同的步骤(S卩,根据MIDlet应该为哪一个运营 商工作,将可以使用许多不同的签名人证书。当然,可以利用一个以上的证书来签名。6、更新在 JAD 中的 MIDlet-Jar-Size7、将证书添加到JAD8、将签名添加到JAD在制造工序的结束时,根据电话特征,利用包括互联网、蓝牙或红外或电缆的任意 上传功能,应用被部署并下载到移动电话中。再次参照图1,安全管理器15控制对MIDlet 13的访问。当安装或下载特定应用 的MIDlet 12时,通过读取存储在设备中的“.jad”文件的证书链来验证签名。从设备10或 从SIM卡12获取根证书。接着,证书链被证实并链接到特定的根证书。在下一步骤中,将 MIDlet指配给由根证书限定的域。在安装期间,将在对MIDlet证书签名时使用的值与存储 在电话的存储器中的信息(如,在存储器11中的电话型号(或型号范围)或在SIM(或其 他存储器)12中的运营商id)进行比较,如果该值与存储的值一致,则允许该应用运行。本发明具有许多有益的应用例如,如果第三方公司开发出了电话制造商希望用于一个或若干个国家中的特殊 运营商的应用(可以是如音乐、图形、办公等任何类型的应用),则该可以将该应用锁定到 运营商和/或型号/型号的范围。在另一情况下,制造商可以将第三方公司开发的应用用于一系列电话,而在其它 型号中不能安装该应用。本发明的各个部分可以全部或很大程度上实现为一组计算机可执行指令(计算 机软件)。计算机可执行指令通常存储在诸如硬盘、磁带、CDR0M、闪存设备等永久性存储设 备中。在软件的各部分被执行期间,指令可以驻留在诸如系统存储器或内置或外部的高速 缓冲存储器的动态存储元件中。应当指出,“包括” 一词并不排除那些列出的元件或步骤之外的其他元件或步骤的 存在,并且元件之前的不定冠词并不排除多个这样的元件的存在。还应当指出,任何标号并 不限制本发明的范围,本发明可以至少部分地利用硬件和软件二者来实现,并且若干个“装 置”或“单元”可以由相同的硬件来代表。上面提到并描述的实施方式只作为示例而给出,并且不应当限制本发明。对于本 领域技术人员而言,在下面描述的专利权利要求中要求的本发明的范围内的其他方案、用 途、目的和功能都应该是明显的。
权利要求
一种用于将利用域证书(402)签名的应用(22)与设备(10)中的预定实体关联起来的方法,所述设备包括用于读取订户身份的模块读取器;用于运行至少一个应用的虚拟机(14);包含根证书(16到19)的存储器(11、12),该方法包括以下步骤·使用用于聚合子数据组的数据组;和·修改所述数据组的一部分,使得所述部分包括对所述实体的引用。
2.根据权利要求1所述的方法,其中,所述数据组是JARCJava归档)文件。
3.根据权利要求1所述的方法,其中,所述部分是JAR的清单。
4.根据权利要求1所述的方法,其中,所述部分是JAR文件中的MIDlet证书。
5.根据权利要求1所述的方法,其中,所述实体是设备型号。
6.根据权利要求1所述的方法,其中,所述实体是通信网络的运营商。
7.根据权利要求1所述的方法,其中,所述实体是地区。
8.根据权利要求3所述的方法,其中,利用新属性扩展了所述JAR文件中的所述清单。
9.根据权利要求3所述的方法,其中,所述属性规定哪一种运营商定制或贴牌的设备 或哪一种设备型号被允许安装所述应用。
10.根据权利要求4所述的方法,其中,用于对所述MIDlet签名的签名人证书被设置有 标识运营商和/或型号的值。
11.根据权利要求10所述的方法,其中,具有签名人证书的签名人针对特定运营商和/ 或设备型号来对MIDlet签名。
12.根据权利要求11所述的方法,其中,在安装期间,当对照存储在所述设备和/或与 所述设备通信的存储单元中的根证书来验证所述签名人证书时,验证者验证所述设备型号 和/或运营商身份是否匹配签名人证书。
13.根据权利要求2所述的方法,该方法还包括以下步骤 控制证书和所述JAR文件; 处理所述JAR的清单; 访问所述清单中的扩展属性值;以及 相对于所述值来设置应用许可。
14.一种用于生成权利要求1所述的数据组的应用创建和打包的方法,该方法包括以 下步骤i、创建对应于所述子数据组的MIDlet,ii、生成对应于所述数据组的JAD文件,iii、基于JAD 生成 MANIFEST. MF 文件,iv、打包所述应用,ν、使用jarsigner对所述应用签名,vi、将值添加到用于对所述MIDlet签名的签名人证书,vii、更新在所述JAD 中的 MIDlet-Jar-Size,viii、将所述证书添加到所述JAD,以及ix、将所述签名添加到所述JAD。
15.根据权利要求14所述的方法,其中,所述步骤(vi)按照以下两种方式执行[1、利用新属性扩展所述清单,所述新的属性由对所述JAR签名的工具来验证,验证值是否正确;或者,2、利用针对每个值的特定签名人证书,除了使用了特殊的专用签名人证书以外,此步 骤将是与对任何其他MIDlet签名的步骤相同的步骤。
16.一种设备(10),该设备包括用于读取订户身份的模块读取器;用于运行至少一个 应用(22)的虚拟机(14);包含根证书(16到19)的存储器(11、12);以及处理单元(100), 所述设备的特征在于,所述处理单元(100)被配置为执行以下操作访问用于聚合子数据 组的数据组;处理并标识所述数据组的一部分,所述部分包括对实体的引用;以及将利用 域证书签名的应用与所述设备中预定实体关联起来。
17.根据权利要求16所述的设备,其中,所述数据组是JARCJava归档)文件。
18.根据权利要求16所述的设备,其中,所述部分是JAR的清单。
19.根据权利要求16所述的设备,其中,所述部分是在JAR文件中的MIDlet证书。
20.根据权利要求16所述的设备,其中,所述实体是设备型号。
21.根据权利要求16所述的设备,其中,所述实体是通信网络的运营商。
22.根据权利要求16所述的设备,其中,所述实体是地区。
23.根据权利要求16所述的设备,其中,所述设备是移动电话终端、通信机、智能电话、 PDA或便携式计算机。
24.一种包含计算机代码的计算机程序产品,该计算机代码用于将利用域证书(16到 19)签名的应用与设备(10)中的预定实体关联起来,该计算机程序产品的特征在于,所述 计算机代码包括用于聚合子数据组的第一指令集,所述第一指令集还包括含有对所述实 体的引用的部分。
25.根据权利要求24所述的计算机程序产品,其中,所述数据组是JARCJava归档)文件。
26.根据权利要求24所述的计算机程序产品,其中,所述部分是JAR的清单。
27.根据权利要求24所述的计算机程序产品,其中,所述部分是JAR文件中的MIDlet 证书。
28.根据权利要求24所述的计算机程序产品,其中,所述实体是设备型号。
29.根据权利要求24所述的计算机程序产品,其中,所述实体是通信网络的运营商。
30.根据权利要求24所述的计算机程序产品,其中,所述实体是地区。
全文摘要
本发明涉及一种用于通过将利用域证书(16、17)签名的应用与设备(10)中的预定实体关联起来以处理设备(10)中的应用的方法。所述设备包括用于读取订户身份模块读取器;用于运行至少一个应用的虚拟机(14);包含根证书(16到19)的存储器(11、12),该方法包括以下步骤使用用于聚合子数据组的数据组;和修改所述数据组的一部分,使得所述部分包括对所述实体的引用。本发明还涉及用于实现所述方法的设备。
文档编号H04L29/06GK101981886SQ200880128331
公开日2011年2月23日 申请日期2008年9月10日 优先权日2008年3月28日
发明者斯特凡·安德森, 马克斯·利维尔 申请人:索尼爱立信移动通讯有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1