MIDlet签名和撤销的制作方法

文档序号:7943431阅读:159来源:国知局
专利名称:MIDlet签名和撤销的制作方法
技术领域
本发明总体涉及一种在通信网络中控制代码段的方法,更具体地,涉及在通信网络中通过对代码段进行数字签名来保护所述代码段的完整性和认证所述代码段的来源和特权的方法。
背景技术
利用有效签名证书对程序安装文件进行数字签名是通常做法,以确保这些文件 (从而程序)包含未以任何方式改变的真实代码以及确保对其负责的一方可以跟踪这些文件的内容。在文件包含小应用(例如在移动电话上运行的Java MIDlet等等)的情况下, 也使用数字签名来授予程序扩展的执行权(如对设备的敏感能力的访问,如发送SMS或读取用户的地址簿)。用于对文件进行数字签名的证书可以从专业提供商以商业方式得到,专业提供商的职责是确保可以对从专业提供商接收证书的一方进行认证和跟踪。提供商用于这一目的的方法之一是仅向注册的公司而不向私人方提供证书。
对于希望能够开始开发、测试和传播其数字签名的应用而无需开立公司和将时间和金钱投入到他们真的不感兴趣的过程中的一长串软件开发者、宿舍创新者、车库创业者等等而言,在使用数字签名时,这种方法表现出较大的组织上和金融上的障碍。
此外,考虑到小程序(例如MIDlet)在个人移动终端(如移动电话)上的快速扩张的利用,存在以下实际需要如果例如这种程序的代码以任何方式被证明是恶意的,及时地控制初始赋予这种程序的特权。
因此,本发明的目的是提供在通信网络中通过对代码段进行数字签名来保护所述代码段的完整性和认证所述代码段的来源的方法,在所述方法中,对于所有感兴趣的方面, 包括个人开发者,将以相对较低的成本容易地得到签名证书。
本发明的另一目的是提供一种在通信网络中及时地控制向数字签名的代码段初始授予的特权的方法。

发明内容
根据本发明,一种在通信网络中通过对代码段进行数字签名来保护所述代码段的完整性和认证所述代码段的来源和特权的方法,其特征在于以下步骤 -提供汇聚器,所述汇聚器是有效签名证书的持有器; -向汇聚器提交开发者材料; -将撤销代码插入开发者材料; -使用开发者材料和撤销代码来构建完整代码段; -使用汇聚器持有的证书来对完整代码段进行数字签名; -使得开发者材料的持有器能够检索数字签名的完整代码段; -提供服务器,所述服务器用于认证数字签名的完整代码段的特权; -执行撤销代码;以及
4 -利用服务器来检查数字签名的完整代码段的特权是否未被撤销。
优选地,本发明的方法还包括以下步骤 -标识向汇聚器提供开发者材料的一方;以及 -向所述一方提供要在签名过程中使用的秘密凭证。
根据本发明,对所述一方的标识优选地包括以下任一方式 -带有有效标识证件亲自出现; -交出所述一方的信用卡详情; -存入特定量的金额。
在优选变型中,本发明的方法包括以下步骤 -在向汇聚器提交开发者材料之前,声明所述代码段的开发者针对所述代码段所寻求的特权。
在这种情况下,尤其优选地,本发明的方法还包括以下步骤 -汇聚器检查开发者材料,以确定开发者材料所请求的特权是否符合所声明的特权。
根据本发明,开发者材料可以包括以下任一项原始代码、可链接库、应用描述符、 软件类、应用标识。优选地,开发者材料包括*. jar文件或*. jad文件。
根据本发明的方法,优选地,可以对开发者材料进行扰乱。
优选地,通过网站将开发者材料提交给汇聚器。
如果通过网站将开发者材料提交给汇聚器,并且已经向提交开发者材料的一方给出了秘密凭证,则优选地使用所给的凭证来提交开发者材料。
根据本发明的方法,优选地,每次启动数字签名的完整代码段时,执行撤销代码。
在本发明方法的优选实施例中,如果特权已被撤销,则终止数字签名的完整代码段的操作。
在该方法的另一优选变型中,数字签名的完整代码段存储撤销特权的信息。在这种情况下,优选地,数字签名的完整代码段一旦被执行,则仅向用户示出与撤销的特权相关的信息。
在本发明方法的另一优选实施例中,如果服务器不能显式地否认特权的撤销,则终止数字签名的完整代码段的操作。
优选地,根据本发明的方法,每个数字签名的完整代码段具有其对服务器的唯一进入点,以用于检查特权是否未被撤销。在这种情况下,优选地,数字签名的完整代码段使用https协议来联系服务器。
在本发明方法的尤其优选的实施例中,数字签名的完整代码段是MIDlet。
本发明方法的优点在于,向较小的第三方开发者提供了一种简单的方式来安全地开发应用(包括敏感能力)。这在当前是不可能的,当前需要建立注册公司以能够对应用 (尤其是Java MIDlet)进行数字签名。本发明方法的另一优点在于,本发明实现了独立于证书的撤销来撤销各个应用的执行特权。这与当前现有结构不同,在现有结构中,一旦证书被撤销(例如为了禁止恶意应用的传播),则利用该证书来签名的所有应用均自动撤销。


附图呈现了根据本发明方法的优选实施例的流程图。
具体实施例方式现在参照附图来解释本发明。
本发明的基本概念是引入汇聚器,所述汇聚器是有效签名证书的持有器。该证书可以由提供/操作汇聚器的注册公司从专业提供商购买。然后,汇聚器承担针对不同企业家(例如个人创业开发者)来对代码段进行签名的责任。
附图呈现了根据本发明方法的优选实施例在3方之间执行的动作的流程图应用开发者A、在用户侧处存储的应用B和汇聚器C。请注意,在所呈现的情况下,汇聚器C具有双重角色,即应用的签名器Cl (因为它是签名证书的持有器)和应用的执行权的确认器 C2。
在图中所示的动作之前,开发者A将其自身注册至汇聚器C,提供合适的个人标识方式。开发者可以亲自出现在操作汇聚器的公司,呈交有效ID卡,并使用其信用卡存入特定量的金额。显然,根据情况,标识可以更强或更弱,并且可以应用不同方式来标识开发者。 在成功完成标识步骤之后,开发者A变为汇聚器的服务的用户,并向开发者A给出密码凭证以在对开发者A将要开发的代码段进行签名的过程中使用。该步骤与图1中标记为1的框相对应。
参照附图,在上述预先执行的标识步骤之后,该过程开始,此时应用开发者A联系汇聚器C (例如经由web接口),请求应用id并包括开发者A针对其应用而寻求的特权的列表(例如读取用户的地址簿或发送消息)。为此,应用开发者A使用先前获得的密码凭证。 在汇聚器C接收到请求时,用作应用的签名器Cl,将新应用id与所请求的能力一起存储在汇聚器侧(图中的框幻。当然,该信息与应用开发者A相关联。然后,将应用id返回给应用开发者A。
显然,根据情况,要签名的应用可能必须符合汇聚器描述和开发者确认的特定策略。例如,这些策略可以是某种软行为规则,应用的行为应当在规则之内以被汇聚器所接受。所述策略也可以涉及针对应用而请求的特权和/或能力。例如,这种特权和/或能力中的一些可以受到约束。
然后,应用开发者A将其应用(在本实施例中为Java MIDlet)开发和测试至在不对其应用进行数字签名的情况下可能的程度。这意味着,应用的进入点必须保留为未构建的(图中的框幻。当开发者A在不对应用进行签名的情况下不能再继续其工作时,根据以下概述,开发者A向汇聚器C提交其应用 a)所有应用,除了主MIDlet类,被构建为可链接库*. jar文件。该* . jar文件可以被完全扰乱至从主MIDlet类调用方法所需的水平以下,以避免汇聚器C得到开发者A的私有代码的内部知识。
b)使用预先接收的秘密凭证,通过网站将主MIDlet类、应用描述符jad文件、 *. jar文件和应用id提交给汇聚器C。
c)合适的(优选为自动的)汇聚器过程检查*. jad文件,以检查所提交的MIDlet 实际使用的特权是否与步骤2中提交的特权相对应(其列表已经存储在汇聚器C侧)。在肯定验证之后,将对汇聚器C的撤销代码的启动调用插入主MIDlet类。该调用包括应用id。然后,使用汇聚器C所持有的签名证书,与用于撤销代码的汇聚器C的*. jar文件一起,构建MIDlet并进行数字签名。该步骤与图中的框4相对应。
d)汇聚器C用作签名器Cl,将针对具有给定id的应用的执行权标记设置为“0K”, 并向确认器C2发送合适的信息。该标记被存储在确认器C2的数据库中。随后,汇聚器C 使得开发者A能够检索完整的数字签名的MIDlet。例如,开发者A可以从汇聚器C的网站检索其MIDlet,并开始使用和/或分发它。
本发明的更重要部分是,如果报告或通过其他方式发现应用的行为未遵守汇聚器 C描述和开发者A确认的策略(例如,如果出于任何原因,应用实际执行的特权超出在签名过程期间声明和验证的特权),汇聚器C能够撤销在对应用进行签名时授予应用的特权。为此,将小段代码(上述撤销代码)和应用id包括在汇聚器C签名的每个应用中。在特定情形下,该代码将联系确认器C2 (可以是属于汇聚器C的服务器)以确认特权尚未被撤销。 显然,根据情况,汇聚器C可以设计和应用不同的联系方案和策略。在应用的特权已被撤销的情况下,关闭应用。此外,可以例如与用户侧的应用B—起,存储关于所撤销的特权的信息,使得下一次启动应用时,仅向用户示出具有合适信息的屏幕。非常重要的是,因为对整个应用进行了数字签名,所以任何人都不可能篡改汇聚器C插入的撤销代码。
以下描述与及时地控制向应用给出的特权相关的动作。这一目的是通过本发明对上述撤销代码的使用来实现的。
本发明的这一部分的基本原理是,确保签名的MIDlet经常联系用作确认器C2的汇聚器C,以检查MIDlet是否仍被授权执行其特权。将对确认器C2的联系点构建入撤销代码。系统的安全性来自以下事实在汇聚器C(用作签名器Cl)对MIDlet进行了数字签名之后,任何人都不能以任何方式改变MIDlet。这是通过Java签名过程来确保的。
因此,在分发之后,将MIDlet的拷贝存储在用户侧B。一旦启动(图中的框5.1), MIDlet中包括的撤销代码根据内建的联系点和应用标识,向确认器C2进行https GET请求 (例如 https:// .javaaRRreRator. com/appidentity 35af87e8120ce3bb76d2eb967aef)。石角认器C2在接收到这种请求之后,在其数据库中检查给定应用id的执行权标记是否为“0Κ”, 即特权是否未被撤销(图中的框5. 2)。如果标记为“0Κ”,确认器利用“200 0Κ”来进行响应,撤销代码允许MIDlet继续操作(图中的框5. 3)。
https请求确保除了确认器C2之外没有人能够给出确认,因为除了 javaaggregator. com SSL证书的所有者之外,不能联系任何人。
这里应当注意,任何人可以从MIDlet中检索应用id和特定的撤销代码,但是该信息对于任何其他人而言没有价值,因为MIDlet的特权不是基于该代码来给出的。相反,这是由对MIDlet进行签名的汇聚器C完成的,代码和应用id仅用于撤销特权。
然而,在一些时候,应用被认为是恶意的。在接收到这种信息时,汇聚器C用作确认器C2,将给定应用的执行权标记改变为“N0”(图中的框6)。
当此后第二次执行MIDlet(图中的框7. 1)并以与5. 1步骤中描述的相同方式来联系确认器C2时,确认器C2在合适的数据库中进行检查(图中的框7. 2)之后利用“N0” 消息来进行响应。这继而导致终止执行并退出MIDlet (图中的框7. 3)。
关于在用户侧存储的应用B应当联系确认器C2的频率、在失败情况下应当向用户给出何种信息等等,可以设计许多不同方案。这里,基本(严格)的策略在于,每次启动MIDlet B时,联系确认器C2。如果MIDlet B由于网络问题而不能联系确认器C2,则关闭 MIDlet B,并向用户给出合适信息。如果MIDlet B不能从确认器C2得到对执行权的撤销的显式否认,则也关闭MIDlet B,并向用户给出合适信息。
仅出于示意性目的来讨论本方法的上述实施例。对于本领域技术人员而言,方法的许多变型和修改是显而易见的,并且落在本发明的范围之内。
权利要求
1.一种在通信网络中通过对代码段进行数字签名来保护所述代码段的完整性和认证所述代码段的来源和特权的方法,其特征在于以下步骤-提供汇聚器,所述汇聚器是有效签名证书的持有器; -向汇聚器提交开发者材料; -将撤销代码插入开发者材料; -使用开发者材料和撤销代码来构建完整代码段; -使用汇聚器持有的证书来对完整代码段进行数字签名; -使得开发者材料的持有器能够检索数字签名的完整代码段; -提供服务器,所述服务器用于认证数字签名的完整代码段的特权; -执行撤销代码;以及-利用服务器来检查数字签名的完整代码段的特权是否未被撤销。
2.根据权利要求1所述的方法,还包括以下步骤 -标识向汇聚器提供开发者材料的一方;以及-向所述一方提供要在签名过程中使用的秘密凭证。
3.根据权利要求2所述的方法,其中,对所述一方的标识包括以下任一方式 -带有有效标识证件亲自出现;-交出所述一方的信用卡详情; -存入特定量的金额。
4.根据权利要求1所述的方法,还包括以下步骤-在向汇聚器提交开发者材料之前,声明所述代码段的开发者针对所述代码段所寻求的特权。
5.根据权利要求4所述的方法,还包括以下步骤-汇聚器检查开发者材料,以确定开发者材料所请求的特权是否符合所声明的特权。
6.根据权利要求1所述的方法,其中,开发者材料包括以下任一项原始代码、可链接库、应用描述符、软件类、应用标识。
7.根据权利要求1所述的方法,其中,开发者材料包括*.jar文件或*. jad文件。
8.根据权利要求1所述的方法,其中,对开发者材料进行扰乱。
9.根据权利要求1或2所述的方法,其中,通过网站将开发者材料提交给汇聚器。
10.根据从属于权利要求2的权利要求9所述的方法,其中,使用所给的凭证来提交开发者材料。
11.根据权利要求1所述的方法,其中,每次启动数字签名的完整代码段时,执行撤销代码。
12.根据权利要求1所述的方法,其中,如果特权已被撤销,则终止数字签名的完整代码段的操作。
13.根据权利要求12所述的方法,其中,数字签名的完整代码段存储撤销特权的信息。
14.根据权利要求13所述的方法,其中,数字签名的完整代码段一旦被执行,则仅向用户示出与撤销的特权相关的信息。
15.根据权利要求1所述的方法,其中,如果服务器不能显式地否认特权的撤销,则终止数字签名的完整代码段的操作。
16.根据权利要求1所述的方法,其中,每个数字签名的完整代码段具有其对服务器的唯一进入点,以用于检查特权是否未被撤销。
17.根据权利要求16所述的方法,其中,数字签名的完整代码段使用https协议来联系服务器。
18.根据权利要求1至17中任一项所述的方法,其中,数字签名的完整代码段是 MIDlet0
全文摘要
本发明涉及一种保护代码段的完整性和认证代码段的来源和特权的方法。根据本发明,一种在通信网络中通过对代码段进行数字签名来保护所述代码段的完整性和认证所述代码段的来源和特权的方法,其特征在于以下步骤提供汇聚器(C),所述汇聚器是有效签名证书的持有器;向汇聚器提交开发者材料;将撤销代码插入开发者材料;使用开发者材料和撤销代码来构建完整代码段;使用汇聚器持有的证书来对完整代码段进行数字签名;使得开发者材料的持有器(B)能够检索数字签名的完整代码段;提供服务器(C2),所述服务器用于认证数字签名的完整代码段的特权;执行撤销代码;以及利用服务器来检查数字签名的完整代码段的特权是否未被撤销。
文档编号H04L9/32GK102187345SQ200880131628
公开日2011年9月14日 申请日期2008年10月20日 优先权日2008年10月20日
发明者约翰·卡尔森, 珀·维拉斯 申请人:艾利森电话股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1