软件应用安全方法和系统的制作方法

文档序号:6568487阅读:89来源:国知局
专利名称:软件应用安全方法和系统的制作方法
技术领域
本发明涉及软件启用装置,具体地,本发明涉及验证在该装置 上运行的软件应用程序的安全性。
背景技术
软件和宏签名是基于同样的用于网站和个人数字证书的公共密 钥加密系统。例如,以VeriSign公司为例,代码签名过程(见2005 年 8 月 3 日 所 见 的 网 页http://www.verisign.com/products-services/security-services /code-signing/digital-ids-code-signing/how-it-works, html)首先产生一个专用/公共密钥对。然后,通过提交用以证明密钥的公共 部分以及证明你的身份的文件,申请一个VeriSign的代码签名数字 ID。 一旦VeriSign验证了你的身份,将对你发布一个数字ID。随后, 用你的数字ID对Java程序、插件程序或宏进行签名。当下载了你签 名过的对象和文件时,它们包含你的证书的副本,从而使得收件人可 以将你识别为作者。在你的站点张贴你的签名的代码,使得消费者可 以像平时那样购买和下载它们。消费者下载你的Java程序、代码对 象或宏。他们的浏览器验证代码上的签名。消费者可以查看证书,以 识别编写代码的开发者。对于想要用于操作在Java Micro Edition (JavaME,以前叫做 J2ME)环境的嵌入式产品的MIDlet应用程序来说,存在着与以上过 程类似的过程。JavaME的安全模式(MIDP 2.0)推荐只向产品用户 视觉显示"可信"MIDlets(也就是,已经被认证机构签名的MIDlets)。 由于MIDlet应用程序的特点,由非可信MIDlet也提供这样的视觉显 示是可行的,从而避开了现在的安全模式。发明内容本发明的目的是对已知的现有技术进行改善。按照本发明的第一方面,提供了一种用以向装置的用户验证软 件应用程序的方法,包括以下步骤 接收软件应用程序; 校验与软件应用程序相关的签名;在该签名是由已确认的机构发布的情况下,向用户显示这种状态;确立只为用户和可信实体所知的安全代码; 向可信实体识别该软件应用程序;由可信实体校验软件应用程序的状态;以及 在验证了软件应用程序的状态的情况下 向该装置发送该状态;以及 向该用户显示该安全代码。 有利地,本发明认识到了会将未验证的应用程序向终端用户显 现为可信的危险。为了减少这个危险,本发明采用了一种更进一步的 与诸如管理应用程序操作环境的实体之类的可信实体相结合的独立 验证。另一优点是通常不要求在用户装置上的额外资源一一由可信实 体,特别由安全算法控制独立的验证过程,以产生用户特定的安全代 码。对于移动电话来讲,SMS是一种向终端用户发送安全代码的适当 通信链路。再一优点是在原始算法被危及到或者是作为周期更新过程的一 部分的情况下,安全算法可以随着时间被改变,以更进一步地增强安 全性。随后,作为结果的已更新的安全代码被发送至用户装置。这个 更新过程可以独立于用户例如利用最初被提供的PIN的任何输入。按照本发明的第二方面,提供了一种用以验证软件应用程序的 系统,该系统包括用户装置;软件应用程序服务器;可信实体服务器;可操作地与软件应用程序服务器进行通信的第一通信链路; 可操作地与可信实体的服务器进行通信的第二通信链路; 用户装置还包括处理器、显示器、用户界面、程序存储器、数据存储器以及分别连接到第一和第二通信链路的接口;该处理器可操作地利用第一通信链路从软件应用程序服务器接收软件应用程序; 校验与软件应用程序相关的签名;在签名是由已确认的机构发布的情况下,通过用户界面或显示 器向用户显示这个状态; 利用第二通信链路,确立只为用户和可信实体所知的安全代码;以及向可信实体识别该软件应用程序;以及在软件应用程序被验证的情况下,通过用户界面或显示器,向 用户显示该安全代码;并且 该可信实体服务器可操作地校验软件应用程序状态;并且在软件应用程序状态已被验证的情况下,向该装置发送该状 态。


现在,通过例子,参照附图将对本发明的一个实施例进行描述,其中图1是向装置用户验证软件应用程序的方法流程图;图2是包括移动电话的用以验证软件应用程序的系统框图;图3a和图3b描述了并入了用户指示器的装置显示器的截屏图,该用户指示器用于按照图1所示的方法来验证软件应用程序。
具体实施方式
在下文中,通过参照要在移动电话上的Jave ME环境中运行的 MIDlets软件应用程序,对本发明的示例实施例进行描述。图1示出了向装置用户验证软件应用程序的方法流程图。该方 法开始于100,在102,该装置接收到软件应用程序。示例应用程序 包括MIDlets、 Java应用程序、插件程序和宏等。该装置利用由本领 域技术人员已知的通常方法校验104与软件应用程序相关的签名,在 确认106该签名是由己确认的认证机构发布的情况下,例如,通过显 示通常的诸如挂锁图标之类的确认图标,向用户显示108这个状态。 明显地,某一个嵌入式产品可以使应用程序使用整个显示区域,从而 允许没有证书或从未被确认的认证机构处获得证书的应用程序通过 在显示器上显示通常的确认图标,例如挂锁图标,也潜在地暗示用户 他们是可信的。本发明的方法通过如下所述提供更进一步的可信应用程序的独立验证来克服这个缺点。确立iio仅为用户和可信实体所知的安全代码112,这样的实体可以是装置的软件操作环境的管理授权方,例如, 对于基于Java ME的装置而言,可信实体是Sun Microsystems公司 或它的一个授权机构。在每一次应用程序需要被验证时,可以确立安 全代码,优选地,为了更好地方便用户,在装置的第一次初始化时确 立代码。现在将关于移动电话装置,对确立代码的示例方法进行描述。 用户输入任何合适的PIN码(例如,移动电话的PIN码)。随后,移 动电话将输入的PIN转发至可信实体,该可信实体依赖于PIN计算安 全代码,利用在可信实体控制下的安全算法执行这个计算。有利地是, 如果安全算法泄密,例如,变得为可信实体范围之外的实体所知,那 么,在不必要求用户输入一个另外的PIN的情况下,可以采用一个新 的安全算法,该算法依赖于被提供的PIN,计算新的安全代码。从用 户的观点来看,这使得本发明的解决方案非常方便。 一旦安全代码被 计算出来,那么,它会被发送到在示例情况下是移动电话的装置,由 于SMS是安全的不被上述软件应用程序开发者所访问,所以优选地通 过SMS发送安全代码。随后,该方法以可信实体识别114软件应用程序继续进行。例如,用户装置(例如,移动电话)通过例如SMS消息向可信实体转发软件应用程序的身份。了解了软件应用程序的身份,则可信实体校验116软件应用程序的状态。如果它是一个可信应用程序,则可信实体 将向终端用户装置发送118可信状态,例如利用SMS消息。 一种可替 换的方法是向终端用户装置转发校验的(好的/不好的)结果,然而, 这样的结果在装置处很容易受到恶意的修改。随后,在装置处接收到 的可信状态被用来向终端用户显示120安全代码,例如,作为用户可 确认的显示项目、可听到的报告。该方法结束于122。图2示出了用以验证软件应用程序的包括移动电话的系统的框 图。该系统包括移动电话200、软件应用程序服务器218、可信实体 服务器222、在移动电话和软件应用程序服务器之间通信的通用无线 分组业务(GPRS)链路220、以及在移动电话和可信实体服务器之间 通信的短消息服务(SMS)链路224。提到的链路是逻辑链路,因为 他们可以访问通常的物理媒介,例如GSM无线接口。按照设计偏好或 者他们的使用领域,通常任何合适的有线或无线链路可以被代替使 用,示例包括以太网、IrDA、 RS232、蓝牙、Wi-Fi以及ZigBee。在 前文已经讨论了可信实体,在这个例子中,它被视为负责管理包含在 电话程序存储器208中的JavaME环境的实体,该JavaME环境接下 来控制电话的CPU 202的操作。除了程序存储器208和CPU 202之外, 移动电话200还包括显示器204、用户界面206、数据存储器210以 及分别到SMS链路224和GPRS链路220的接口 212、 214,所有的这 些部件通过本领域己知的数据总线216互相连接。在操作中,移动电话200利用GPRS通信链路220从软件应用程 序服务器218接收软件应用程序。在JavaME环境的控制下,软件应 用程序被CPU 202通过总线216发送来存储在数据存储器210中。随 后,CPU 202校验与软件应用程序相关的签名。如果该签名是由例如 VeriSign的已确认的机构发布的,则CPU安排利用显示器向用户显 示这个事实,例如,通过显示一个挂锁图标。这就完成了验证的第一 个阶段。随后,CPU 202在JavaME环境的控制下,确立(如果还没有确立) 一个与可信实体联合的安全代码。根据提示由用户利用用户界面 206 (例如,数字键盘)输入或利用现存的PIN (例如,移动电话的主PIN)来从用户获得PIN。随后,通过SMS接口 212和链路224将 获得的PIN发送到可信实体服务器222。然后,可信实体服务器222 依次(利用安全算法和PIN)计算安全代码并通过SMS链路224将该 代码返回移动电话。安全代码可以是一个数字代码或其它任何用户可 确认的代码,例如,图标、象形图或其他类似的标示。优选地,代码 对用户是唯一的,例如,从输入的PIN和装置ID (例如,GSM ID, 电话号码等)得出。接下来,CPU再次利用连接到可信实体的链路224,提供从接收 到的软件应用程序获得的识别数据。可信实体校验被识别的软件应用 程序的状态,以及,在软件应用程序的状态被验证的情况下,再次利 用链路224向移动电话200发送该状态。一旦移动电话接受了已验证的状态,CPU 202就指示(例如,在 显示器204上)该安全代码,以通知用户软件应用程序的状态被验证 了。图3a和图3b描述了合并了按照本发明的方法验证软件应用程 序的用户指示器的装置显示器截图。在图3a中所示的显示器A示出 了现有技术的示例实施例,并包括三个部分,该三个部分包含状态工 具条302、应用程序区域304和命令工具条306。现在在装置上执行 的是接收到的名为"Instant Msgr"的软件应用程序,如在状态工具 条302中标题所显示的。另外向用户暗示该名为"Instant Msgr"的 软件应用程序是可信引用程序的挂锁图标312也在状态工具条302 中被显示出来。如上文所讨论的内容,这可能未必是真的。该应用程 序提示308用户访问安全JavaME环境的API (在该例中,GPRS网络 访问)。随后,如果用户通过选择命令工具条上的OK 312确定对实 际上非可信应用程序的访问,那么这是存在风险的。相反地,对于关于显示器A己经描述的同一接收到的软件应用 程序,除了挂锁图标314,显示器B还在状态条中显示了安全代码318。 显示器提示316用户校验安全代码318。 一旦进行了校验,用户可以通过选择命令工具条上的0K 320确定访问,确信该应用程序是已验 证的。可选择地,用户还能够通过选择在命令工具条中的"新代码" 322产生一个新的安全代码,如果选择了,则新的安全代码像上文所 讨论的那样,可以在需要或不需要用户输入PIN的情况下被可信实体 计算出来。前述的方法和实现只是通过示例呈现的,并呈现了方法和实现 的选择范围,该选择范围可以由本领域技术人员确定,以开发本发明 的优点。在上文的描述中和参照图l,提供了一种用以向诸如移动电话之 类的装置的用户验证软件应用程序的方法。装置接收102软件应用程 序,例如,JavaMEMIDlet,并校验104与软件应用程序相关的签名。 在签名被确认的情况下,电话向用户显示108这种状态,例如通过显 示熟悉的挂锁图标。随后,移动电话确立110 —个只为用户和可信实 体所知的安全代码,例如,可信实体是JavaME环境的管理者。装置 向可信实体识别114软件应用程序,随后,该可信实体校验116该软 件应用程序的状态。如果验证了状态,则实体向装置发送118这个状 态,该装置接下来向用户显示120,例如,作为附加显示的号码、象 形图或相似类型的安全代码。
权利要求
1.一种用以为装置用户验证软件应用程序的方法,包括下列步骤接收(102)该软件应用程序;校验(104)与该软件应用程序相关的签名;在签名是由已确认的机构发布的情况下,向用户显示(108)这一状态;确立(110)一个只为用户和可信实体所知的安全代码;向该可信实体识别(114)该软件应用程序;由该可信实体校验(116)该软件应用程序的状态;以及在该软件应用程序的状态被验证的情况下向该装置发送(118)该状态;以及向用户显示(120)该安全代码。
2. 按照权利要求1所述的方法,其中,确立步骤包括 在该装置中输入PIN代码; 向可信实体发送该PIN代码;依赖于该PIN代码来计算所述安全代码,利用在可信实体控制 下的安全算法进行该计算;以及向该装置发送该安全代码。
3. 按照权利要求2所述的方法,其中,该装置是移动电话,并 通过SMS消息向该装置发送所述安全代码。
4. 按照权利要求l-3任何一项所述的方法,其中,所述可信实 体管理该装置的软件操作环境。
5. —种用以验证软件应用程序的系统,该系统包括 用户装置(200);软件应用程序服务器(218); 可信实体服务器(222);第一通信链路(220),其可操作用于与该软件应用程序服务器 进行通信;第二通信链路(224),其可操作用于与可信实体服务器进行通信;用户装置另外还包括处理器(202)、显示器(204)、用户界 面(206)、程序存储器(208)、数据存储器(210)以及分别连接 到第一和第二通信链路(220, 224)的接口 (214, 212);该处理器 可操作用于利用第一通信链路(220)从所述软件应用程序服务器(218) 接收软件应用程序;校验与该软件应用程序相关的签名;在签名是由已确认的机构发布的情况下,通过用户界面(206) 或显示器(204)向用户显示这个状态; 利用第二通信链路(224),确立只为用户和所述可信实体所知的安全代码;以及向所述可信实体识别该软件应用程序;以及在所述软件应用程序被验证的情况下,通过所述用户界面 (206)或所述显示器(204),向用户显示该安全代码;并且 该可信实体服务器可操作用于校验所述软件应用程序的状态;并且在所述软件应用程序的状态已被验证的情况下,向该装置发送该状态。
6. —种用于按照权利要求5所述系统中的用户装置,其中,该 装置是移动电话。
7. —种用于按照权利要求5所述系统中的用户装置,其中,该装置在Java ME的控制下操作。
8. —种用于按照权利要求6所述的用户装置,其中,该装置在 Java ME的控制下操作。
全文摘要
一种用于向诸如移动电话之类的装置用户验证软件应用程序的方法。该装置接收(102)例如Java ME MIDlet的软件应用程序并校验(104)与软件应用程序相关的签名。当识别了签名时,例如,电话通过显示常见的挂锁图标为用户指示(108)这个状态。随后移动电话可以确立(110)一个只为用户和可信实体所知的安全代码,例如,该实体是Java ME环境的管理者。该装置向可信实体识别(114)该软件应用程序,随后,该可信实体校验(116)软件应用程序的状态。如果校验了状态,则该实体向该装置发送(118)状态,该装置接下来向用户显示安全代码,例如,作为附加显示码、象形图等。
文档编号G06F21/51GK101238475SQ200680029094
公开日2008年8月6日 申请日期2006年8月10日 优先权日2005年8月12日
发明者西里尔·恩加里 申请人:Nxp股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1