校验下载软件的方法和相关设备的制作方法

文档序号:7740657阅读:130来源:国知局
专利名称:校验下载软件的方法和相关设备的制作方法
技术领域
本发明涉及一种对从源下载到设备的软件进行校验的方法以及相关设备。具体地,本发明涉及在标准化执行环境(例如移动执行环境(MExE)和Java)中的下载校验。
背景技术
通过无线方式(over the air)将软件下载到便携设备的需要日益增长。这就要求设备能够更新最新发布的软件或者允许在可以获得新的应用程序时就将其添加到设备中。
设备需要检查下载软件的正确性来决定是否,譬如,确实从可信任的发送方接收下载的软件。此外,下载的软件需要限制在指定区域,从而避免违反设备其它的许可。
可以通过安全地存储在设备中的密钥来保证安全性,这样它们就只能在安全校验环境内被应用程序读取或篡改。而且,需要周期性更新密钥,且必须使用安全的方式来完成此项工作。
以前,通常建议在软件或硬件内实现安全算法,并在终端的处理器上通过存储管理单元以硬件控制的方式加以保护。然而,这会增加开销。而且开发独立的安全硬件是没有必要的。
允许软件下载的移动执行环境(MExE)正在进行标准化。在MExE环境中定义了三类标记。分类标号1涉及使用无线应用协议(WAP)的设备;分类标记2涉及诸如个人数字助理(pda)或者使用标准版JAVATM(J2SE)的笔记本等设备;分类标记3涉及小型设备,例如使用简化版本JAVATM(J2ME)的移动电话。
J2ME被提议用于MExE中分类标记3的环境,因为它的较小的尺寸适合于例如可用存储能力、处理能力和文件大小都必须受到限制的移动通信环境等环境。
然而,J2ME的安全模块要求基于服务器的预校验,其中服务器在下载前在软件中加入基本的运行安全信息。然后接收设备才能使用这些运行安全信息来核查下载的安全性和校验发送者。
有必要为软件下载提供更多的安全保证,尤其是在MExE分类标记3的环境中,从而避免基于服务器的校验并且能从更为广泛的源下载软件。

发明内容
依照本发明的第一方面,提供了一种对从源下载到适合接收使用中的智能卡的设备的软件进行校验的方法,其中至少有一个安全密钥存储在智能卡中,该方法包括接收与已接收软件相关的软件和安全信息;在智能卡中利用至少一个安全密钥从安全信息获得第一计算结果;在设备中对已接收的软件计算获得第二计算结果;和在设备中比较第一和第二计算结果,以校验已接收的软件。
依照本发明的第二方面,提供了一种设备,包括接收与已接收软件相关的软件和安全信息的通信装置;和智能卡相连且向智能卡传递安全信息,并且从智能卡接收利用至少一个安全密钥通过智能卡的安全信息获得的第一计算结果的智能卡接口装置;在已接收软件中计算而获得第二计算结果的装置;比较第一和第二计算结果以校验已接收软件的装置。


为了更好地理解本发明,同时描述本发明如何实现,现在将结合附图来举例参考说明图1图解说明的是已知的文件传输校验过程;图2表示的是通信设备;图3图解说明的是依照本发明的下载校验过程;图4图解说明的是依照本发明的传输根密钥的消息产生;图5图解说明的是依照本发明的根密钥的更新。
具体实施例方式
参考使用RSA加密技术来说明本发明。RSA加密技术的算法和原理众所周知,因而本文档中不做详述。对于本领域技术人员而言,显而易见根据本发明可能使用其它的加密技术。
图1图解说明了已知的文件传输校验过程,用以校验从源到接收方的传输文件的正确性。此过程的原理是,在文件1传输的同时,与文件1和源都有关的第二段信息也在源和接收方之间传输,这个信息能确保接收方确认文件来自源。另外,接收方具备第3段信息或者向接收方传送第三段信息,确保接收方确认源值得信任,从而可以安全地执行下载的文件。
如图所示的过程中,源通过在被传输文件1上进行MD5哈希操作(hash operation)10产生MD5哈希结果2作为第2段信息。MD5哈希操作众所周知,这里不做详述。MD5哈希结果2唯一依赖于文件1,从而能用于校验文件1。
接下来源利用源的私钥(AKPRI)3对MD5哈希结果2进行RSA算法操作20,产生签署哈希数(signed hash)(或者数字签名)4。签署哈希数4因此依赖于文件且签署作为源自A的哈希数,从而可以用作上面提及的第2段信息。文件1和签署哈希数4传输给接收方,成为已接收文件5和已接收签署哈希数6。
为了校验已接收文件,接收方独立产生两个MD5哈希结果。第1个MD5哈希结果7由已接收文件5利用MD5哈希操作30生成,第2个MD5哈希结果8由已接收签署哈希数6利用由接收方持有的源A的公钥(AKpub)执行RSA操作40从已接收签署哈希数6获得。第1个MD5哈希结果7和第2个MD5哈希结果8在比较操作50进行对比,如果二者相等,则已接收文件5是正确的且能够执行。
为了实现上述验证机制,接收方必须已经安全地获取源A的公钥(AKpub)。图解过程通过使用授权证明(certification authority)机制实现。接收方信任授权证明,因此接收者方信任由授权证明签署的已接收信息。
因此,如图所示,授权证明利用授权证明的私钥(CAKPRI)12对源的公钥(AKpub)11进行RSA算法操作60,得到源A的签署密钥13。签署密钥13和授权证明的公钥(CAKpub)传送给接收方。如图所示,如果需要,对签署密钥13进行证明链分析(certificate chain)操作70以获得源A的已接收签署公钥15。
如果授权证明CA不为接收方所知,则需要进行证明链分析操作。这种情况下,授权证明需要由更高级别的授权证明利用更高级别的授权证明的私钥来签署公钥。如果接收方信任更高层次的授权证明,接收方就能够利用更高层次签署授权的公钥来校验,签署授权的公钥已经被更高层签署授权的私钥所签署。接收方因此能信任授权证明且能使用已接收的授权证明公钥。如果接收者不信任更高层次的授权证明,则需要使用附加的授权证明。
接收方已经在此存储了根授权证明的公钥。接收方最信任根授权证明,并且最终能使用所存储的根授权证明的公钥来校验证明链中所有其它的授权证明。
接收方利用根授权证明的公钥(RootCAKPub)在源已签署的公钥(AKPub)(15)上进行RSA操作80,获得源的公钥(AKPub)9。接着源的公钥(AKPub)9如上所述用于RSA操作40。
本发明参考诸如移动电话的通信设备描述如下。然而,本领域技术人员清楚,本发明同样适用于其它设备。参考图2,描述了典型的通信设备200。
图2所示的通信设备200包含连接到天线220和处理器230的通信接口210。处理器230和通信接口210还连接到易失性存储器240和非易失存储器250。智能卡260连接到智能卡接口270,智能卡接口270也连接到处理器230。智能卡装备有自己的处理器280和存储器290。
通信接口210包括如下必要组件将由天线220接收的用于通信设备200的射频信号转换为数字信号,以存储在易失性存储器240和/或非易失存储器250和/或由处理器230处理的组件;将存储器240和250和/或处理器230中的数字信号转换成射频信号,以通过天线220传输的组件。因此通信接口210包括诸如射频传输器、接收装置和信号处理装置等。
易失性存储器240和非易失存储器250用于存储通信设备200操作所需的程序和其它数据。
智能卡优选为通信设备200使用的、保留有订户信息的订户智能卡(SIM),例如现在用于移动通信全球系统(GSM系统)和正用于或提议用于其它通信系统的订户身份模块(Subscriber IdentityModule)卡。然而,智能卡260有可能是通信设备中接收的或者优选SIM卡外的其它类型的智能卡,例如电子商务智能卡。
如上所述,智能卡装备有自己的处理器280和存储器290,从而能够存储信息,也能对处理器230通过智能卡接口270接收的数据进行操作或计算,并能通过智能卡接口270提供数据或处理器230的计算结果。
在通信设备中,智能卡优选为可抽取接入的方式,例如在通信设备200的机架中提供插槽。
本领域技术人员将意识到,在本发明的范围内通信设备200可能有其它的组件或者组件的其它排列方式。
参考图3,现在依照本发明说明安全的下载过程。图3中操作或与操作有关的数据或图1的数据具有给定类似的参照标号。
图3图解说明了在MExE环境中从源A下载可执行J2ME文件到例如上面参考图2所示的通信设备200的下载过程。如图3所示,框3260代表如图2所示的通信设备200中智能卡260中执行的操作和存储的数据,其它的操作和数据存储由图2所示的通信设备的其它部分实现。
如图2所示,智能卡260没有直接通信能力。作为替代,通信设备接收的相关数据通过处理器230传送至智能卡260进行存储和操作。
如图3所示的过程,源A对要传送的文件31进行MD5哈希操作310,产生MD5哈希结果32。如上面说明,MD5哈希结果唯一依赖于文件31且能用于校验文件31。
接下来源A对于MD5哈希结果32利用源的私钥(AKPRI)33进行RSA算法操作320,以产生签署哈希数34。签署哈希数34因此依赖于文件且签署为源自A,从而可以用作上面提及的第2段信息。然后,将文件31和签署哈希数34传送给通信设备200,形成已接收文件35和已接收签署哈希数36。文件35通过天线220和通信接口210接收并通过处理器230存储在易失性存储器240。相比之下,签署哈希数34通过天线220和通信接口210接收并由处理器230通过智能卡接口270发送到智能卡260,存储在智能卡存储器290。
如上所述,为了校验接收文件,两个MD5哈希结果必须独立产生并进行比较。第1个MD5哈希结果37由通信设备处理器230利用MD5哈希操作330从已接收文件35中产生。
第2个MD5哈希结果38由智能卡从已接收签署哈希数36获得。智能卡处理器280利用存储在智能卡存储器290的源A的公钥(AKpub)对存储在智能卡存储器390的已接收签署哈希数36进行RSA操作340,如后所述。
第2个MD哈希结果由智能卡处理器280传送到通信设备处理器230,通信设备处理器230通过比较操作350对比第一个MD5哈希结果37和在智能卡260中计算的第二个MD5哈希结果38。如果第一个MD5哈希结果37和第二个MD5哈希结果38相等,则已接收文件35是正确的且能够被执行。
这种情况下,智能卡260必须已经安全地获得源A的公钥(AKpub)。依照图3所示的过程,利用存储在智能卡存储器290中的根授权证明公钥来实现。通信设备信任根授权证明,因此信任由授权证明签署的已接收信息。
在这种情况下,可能存在不止一个根授权证明。例如在移动电话中,制造商和/或操作者都可以作为根授权。另外,有可能指定一个或多个值得信任的第三方作为根授权证明。例如在提供移动电话的SIM卡的过程中,将每一个根授权证明的公钥(例如操作者根公钥(OPRK);制造商根公钥(MPRK);第三方根公钥(TPRK))存储在通信设备200的智能卡中。
为了使智能卡260能够安全地获得源A的公钥(AKpub),如图所示,根授权证明利用授权证明的私钥(RootCAKPRI)312对源A的公钥(AKpub)311进行RSA算法操作360,获得由根授权证明从A签署的证明321。证明321发送至通信设备200,由天线220和通信接口210接收,并经智能卡接口270由处理器230传送至智能卡260,作为证明322存储在智能卡存储器290中。
如上所述,根授权证明的公钥(RootCAKPub)已经存储在智能卡存储器290中。智能卡处理器能利用根授权证明的公钥(RootCAKPub)332对已接收的证明322进行RSA操作380获得源A的公钥(AKpub)39。然后智能卡处理器能利用获得的源A的公钥(AKpub)39和已接收的签署哈希数36进行RSA操作340,以获得智能卡MD5哈希值38,如上面略述。
图3也描述了根授权证明的公钥(RootCAKPub)331传输到通信设备作为根授权证明的公钥(RootCAKPub)332存储在智能卡中。有必要周期性地以安全的方式更新根授权证明密钥,否则会危及系统的安全。
现在参考图4和图5说明利用通信系统消息技术来安全传输根公钥(例如OPRK,MPRK,TPRK)的优选的机制。
图4图解说明了依照本发明传输根密钥至智能卡360的消息产生,例如传输操作者根公钥(OPRK)至智能卡360。尽管可以采用其它的消息技术,在典型实施例中,使用GSM/UMTS系统中提供的SMS消息进行更新。
利用与存储在智能卡360中的旧的OPRK相关的操作者根私钥42,在新的OPRK 41上进行RSA操作。如前所述,旧的OPRK是在提供智能卡360时或者是在根密钥一个早期的更新时存储在卡里面。因而包含已签署的新的操作者根公钥44的SMS消息45发送至通信设备。SMS消息45除签署的新的操作者根公钥44外还包含SMS头部分451和SMS下载命令452。SMS消息发送至通信设备前由通信系统加密。
依照本发明的实施例,图5图解说明了通信设备中根密钥的更新。在发明典型的实施例中,由网络500发送至通信设备200的SMS消息45被传送到智能卡260。一旦智能卡260接收到加密的SMS消息45,智能卡260采取SMS消息分析和存储更新过程51。
在SMS消息分析和存储更新过程51中,首先解密SMS消息,然后对SMS消息进行分析。下载命令452通知智能卡260一个新的OPRK将会传送至智能卡260。智能卡260利用已存储在其中的旧的OPRK在已接收的经过签署的新的OPRK上进行RSA操作,来确认发送方的身份。存储在智能卡中的OPRK随后能用这个新的值进行更新。优选地,通过通信设备200的通信接口210将确认信息52从智能卡260发送到网络。
尽管上面仅描述了操作者根公钥(OPRK)的更新,任何存储在智能卡内的根密钥都可能通过相同的方式更新。
依照本发明可选的实施例,制造商根公钥可能部分存储在智能卡存储器中,部分存储在通信设备存储器中。因为从制造商的角度,这样使用制造商根公钥,通信设备将有助于保证下载的安全,所以这种安排更加可靠。这还有助于防止不可靠的智能卡通过下载授权改变制造商根公钥。
因此,本发明提出了一种保证下载软件至设备的安全性的解决方法,其中智能卡用以存储安全密钥并利用这些安全密钥进行计算。智能卡计算的结果传送至设备,与设备在已下载软件上计算的结果进行对比,从而校验已下载软件。
由于安全密钥存储在智能卡中,且由智能卡完成安全密钥的相关计算,从而能够保证安全密钥的安全性。此外,设备中对已接收文件的计算结果不传送到智能卡。
对于本领域技术人员,很显然本发明可以通过和这里描述的不同的方式实现,因此本发明包含所有在所附权利要求范围内的排列和变种。
权利要求
1.一种对从源下载到设备的软件进行校验的方法,其中所述设备适合接收使用中的智能卡,且至少有一个安全密钥存储在所述智能卡中,所述方法包括接收与已接收软件相关的软件和安全信息;在所述智能卡中利用至少一个安全密钥从安全信息里获得第一计算结果;在所述设备中对已接收文件进行计算以获得第二计算结果;和在所述设备中比较第一和第二计算结果,以校验已接收的软件。
2.如权利要求1所述的方法,进一步包括步骤接收附加的已签署的源密钥信息;在所述智能卡中,利用存储在其中的根安全密钥从接收的签署的源密钥信息中获得源密钥信息;在所述智能卡中,利用所述源密钥信息从所述安全信息中获得所述第一计算结果。
3.如权利要求1所述的方法,其中,存储在所述智能卡中的所述根安全密钥可按如下步骤更新接收一个包含新的根安全密钥的根安全密钥更新信息;利用存储在所述智能卡中已有的根安全密钥校验所述新的根安全密钥;将所述新的根安全密钥存储在所述智能卡中。
4.如权利要求2或权利要求3所述的方法,其中,部分所述根安全密钥存储在所述智能卡中,部分所述根安全密钥存储在所述设备中。
5.如前面任意权利要求所述的方法,其中,所述智能卡是订户身份模块(SIM)卡。
6.一种设备,包括用于接收与已接收软件相关的软件和安全信息的通信装置;和智能卡相连且用于向智能卡传递所述安全信息,并且用于从所述智能卡接收由所述智能卡利用至少一个安全密钥、从所述安全信息中获得的第一计算结果的智能卡接口装置;用于在已接收软件中计算获得第二计算结果的装置;用于比较第一和第二计算结果以校验已接收软件的装置。
7.如权利要求6所述的设备,其中,所述通信装置还接收附加的已签署的源密钥信息;和所述智能卡接口还传送所述附加的已签署的源密钥信息至所述智能卡,所述智能卡利用存储在其中的根安全密钥从接收的已签署的源密钥信息中获得源密钥信息;并且利用所述源密钥信息从所述安全信息中获得所述第一计算结果。
8.如权利要求7所述的设备,其中,所述通信装置还接收包含一个新的根安全密钥的根安全密钥更新消息;和所述智能卡接口传送所述根安全密钥更新消息至所述智能卡,所述智能卡利用存储在所述智能卡中的已有的根安全密钥来校验所述新的根安全密钥;并且将所述新的根安全密钥存储在所述智能卡中。
9.如权利要求7或权利要求8所述的设备,其中,所述设备包含存储装置,部分所述根安全密钥存储在所述智能卡中,部分所述根安全密钥存储在所述存储设备中。
10.如权利要求6至9中任一权利要求所述的设备,其中,所述智能卡为订户身份模块(SIM)卡。
全文摘要
本发明涉及确保向设备下载软件的安全性,其中智能卡用于存储安全密钥并利用密钥进行计算。利用智能卡计算的结果传送至设备,和设备对已下载软件执行的计算结果进行比较,以校验已下载软件。因此保证了密钥和涉及安全密钥的计算的安全性。优选地,存储在智能卡中的根安全密钥可以使用通信系统消息协议来进行更新。
文档编号H04L29/06GK1550115SQ02817076
公开日2004年11月24日 申请日期2002年8月26日 优先权日2001年8月30日
发明者帕斯卡尔·德卢姆, 帕斯卡尔 德卢姆, 普 加拉尼, 普拉迪普·加拉尼 申请人:摩托罗拉公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1