一种实现智能卡应用部署的方法及系统的制作方法

文档序号:6366933阅读:228来源:国知局
专利名称:一种实现智能卡应用部署的方法及系统的制作方法
技术领域
本发明涉及智能卡技术,尤其涉及实现智能卡应用部署的方法及系统。
背景技术
Java Card是一种可以运行java程序的智能卡,它以对多应用的支持、良好的安全特性、面向对象的编程环境以及应用程序动态下载等诸多优点而成为智能卡技术在网络时代的主流应用。Java Card智能卡产品已经在全世界得到了广泛的应用,领域包括无线通信、医疗/健康保险、金融银行、政府机构、军队、身份认证、电子商务以及系统安全等各个方面。其中,应用于无线通信领域的大容量SIM(或USIM)卡是智能卡的一种,该大容量卡上除了有普通智能卡使用的flash,还会内置高密度、低功耗、低成本且可升级的nandflash器件,常用作电子数码产品的大容量存储区。
Java Card的概念是由斯伦贝谢公司在1996年提出的,当时的想法是在智能卡的操作系统里加入一个轻量级的java字节码解释器,然后把*. class文件转换成一种结构更加小巧并为智能卡专门定制的文件,下载到智能卡上执行。这种卡操作系统的最初功能是下载、管理和执行应用程序代码及其数据,但其还存在一些限制。接下来的几年里,在几大智能卡制造商、SunMicroSystems公司以及国际标准化组织的共同努力下,Java Card技术日臻完善。Java Card提供了一种多应用技术,可以在卡片发行后,提供应用的二次开发机制和支持后下载应用的平台,并支持后下载应用的安全运行。Java Card充分利用了 Java技术在安全以及平台兼容等方面的特性。传统智能卡的卡片资源非常有限。由于受到空间限制的影响,用户不可能同时安装足够多的应用在智能卡上。虽然智能卡本身提供了应用部署功能,可以使用户自由而灵活地选择安装或删除一些应用,解决了用户按需更换应用的问题;但是从目前来看,用户若想更新卡内应用,一般采用的还是前往营业厅求助于客服人员或使用空中下载(OTA,OverThe Air)方式来进行,这必然会给用户带来了许多不便。大容量智能卡的出现,很好地解决了上述问题。这种卡片的大容量区域好比是一块“移动硬盘”,不但可以存储较多文件,还可以通过USB的方式和普通PC机连接,实现文件拷贝等操作。这样用户就可以通过互联网下载各种智能卡应用安装文件并存储在大容量区域,当有需求时就可以进行本地应用部署。由于本地应用部署脱离了和应用平台服务器的通信,这就使得它的一些安全隐患凸显了出来,一般来讲存在以下安全问题(I)应用来源不能得到保证存储在大容量区域的应用安装文件是通过拷贝文件的方式存放在大容量卡上的,安装文件是否来源于合法渠道(如运营商或第三方应用提供商)不得而知。这样的应用安装到卡上可能会给智能卡带来很多不确定的安全隐患。(2)应用完整性不能得到保证安装文件存储在大容量区域时并不会进行完整性检查,因此应用是否包含完整以及是否未被恶意篡改也不得而知。这样的应用安装在卡上可能会导致安装失败,或者造成用户信息被不法分子非法窃取等风险。(3)应用授权安装不能得到保证有些应用并非完全免费提供给用户使用的,需要用户预先申请得到授权后方可使用。一旦被授权的应用安装文件被拷贝到了其它未经授权的大容量卡上,就有可能出现未 经授权的用户能够成功安装应用的情况,由此会对应用提供商的利益造成极大的损害。因此需要对现有的本地应用部署技术加以改进,使得这种部署能够确保应用来源的合法性,能够检查应用文件是否完整以及是否被恶意篡改,同时能够对安装的应用进行授权检查,以确保应用提供商的利益不受损害。

发明内容
本发明所要解决的技术问题是提供一种实现智能卡应用部署的方法及系统,能够确保应用来源的合法性。为了解决上述技术问题,本发明提供了一种实现智能卡应用部署的方法,包括在发布应用时,将应用安装文件与校验文件一起打包成应用安装文件包发布;在安装应用吋,若检查应用安装文件包内不具备校验文件包,或者计算出的摘要值与从校验文件验签出的校验数据明文中的摘要值不符,或者,检查需经授权的用户未经授权,则禁止应用安装;否则,允许进行安装。进ー步地,在发布应用时,将应用安装文件与校验文件一起打包成应用安装文件包发布,具体包括按照智能卡定义格式形成用于在智能卡上执行应用安装的应用安装文件;采用应用发行方私钥以及用非対称密钥算法对校验数据进行签名,形成校验文件; 将应用安装文件与校验文件一起打包成应用安装文件包发布。进ー步地,应用发行方私钥由应用提供商持有,用于验签校验文件的应用发行方公钥由卡商持有,并在所述智能卡发行时写入卡内。进ー步地,将校验数据采用应用发行方私钥以及用非対称密钥算法进行签名对于免费提供下载的应用,签名的数据域为该应用的安装文件采用摘要值算法计算的摘要值;对于需要授权下载的应用,签名的数据域为该应用的安装文件的所述摘要值和智能卡的集成电路卡识别码值组合在一起的值。进ー步地,若检查应用安装文件包内不具备校验文件,或者计算出的摘要值与从校验文件解密出的校验数据明文中的摘要值不符,或者,检查需经授权的用户未经授权,则禁止应用安装;否则,允许进行安装;具体包括智能卡检查应用安装文件包中是否存在校验文件,若不存在,则拒绝安装;若存在校验文件,则从中读取经签名的校验数据密文,并使用本地存储的应用发行方公钥对该密文进行验签,得到应用安装的校验数据明文;智能卡对应用的安装文件采用MD5算法作为摘要值算法来计算MD5值作为摘要值;并将计算结果与从校验数据明文读出的MD5值进行比对,比对相同则认为安装应用完整且来源合法,比对不相同则拒绝安装;智能卡若检查校验数据明文中存在集成电路卡识别码的域,则通过读取本地文件来确定要安装该应用的用户身份,并进行集成电路卡识别码的数据匹配,若匹配成功则允许并为已经过授权的用户完成应用安装,否则禁止安装;若检查校验数据明文中不存在集成电路卡识别码的域,则允许并完成不需经授权的应用的安装。为了解决上述技术问题,本发明提供了一种实现智能卡应用部署的系统,包括应用发布装置和安装于智能卡中的应用安装装置,其中 应用发布装置,用于在发布应用时,将应用安装文件与校验文件一起打包成应用安装文件包发布;应用安装装置,用于在安装应用时,若检查应用安装文件包内不具备校验文件,或者计算出的摘要值与从校验文件验签出的校验数据明文中的摘要值不符,或者,检查需经授权的用户未经授权,则禁止应用安装;否则,允许进行安装。进ー步地,应用发布装置包括安装文件模块、校验文件模块以及打包发布模块,其中安装文件模块,用于按照智能卡定义格式形成执行应用安装的应用安装文件,并输出给打包发布模块;校验文件模块,用于采用应用发行方私钥及以非対称密钥算法对校验数据签名生成校验文件,并输出给打包发布模块;打包发布模块,将输入的应用安装文件与所述校验文件一起打包成应用安装文件包发布。进ー步地,校验文件模块签名生成的校验文件采用的应用发行方私钥由应用提供商持有;对该校验文件验签采用的应用发行方公钥由卡商持有,并在智能卡发行时写人智倉泛ー进ー步地,校验模块进行所述校验文件的所述签名,对于免费提供下载的应用签名的数据域为该应用的安装文件采用摘要值算法计算的摘要值;对于需要授权下载的应用签名的数据域为该应用的安装文件的摘要值和智能卡的集成电路卡识别码值组合在一起的值。进ー步地,应用安装装置包括应用合法性检查模块和安装模块,其中应用合法性检查模块,当检查应用安装文件包中不存在校验文件吋,向安装模块输出拒绝安装指令;当检查存在校验文件,则使用本地存储的应用发行方公钥对校验文件里经过签名的校验数据密文进行验签得到校验数据明文;若检查校验数据明文中存在集成电路卡识别码域,则通过读取本地文件确定要安装该应用的用户身份,并进行集成电路卡识别码的数据匹配,若匹配成功则向安装模块输出允许安装指令,若匹配不成功则向安装模块输出拒绝安装指令;安装模块,用于根据允许安装指令完成对应用的安装,或根据拒绝安装指令向用户发出禁止应用安装的警告。本发明与现有技术相比,第一能够验证应用来源的合法性,拒绝所有非法来源应用的安装,从而可有效地保证应用提供商的合法利益;第二能够验证应用本身的完整性,防止应用数据缺失或被篡改,禁止所有不完整或被篡改的应用的安装,从而一方面可保证用户的信息不被非法窃取,另ー方面可有效地保证应用发布方的合法利益;第三能够支持有授权前提的应用安装,防止非授权用户非法安装应用,从而可同时有效地保证应用提供商和授权用户的合法利益。


图I为本发明的实现智能卡应用部署的方法实施例的流程图;图2为图I中所示的方法实施例流程中应用安装发布实施例的流程图;图3为图I中所示的方法实施例流程中应用安装实施例的流程图。
具体实施例方式以下结合附图和优选实施例对本发明的技术方案进行详细地阐述。应该理解,以下列举的实施例仅用于说明和解释本发明,而不构成对本发明技术方案的限制。如图I所示,是本发明的实现智能卡应用部署的方法实施例,其流程包括如下步骤110 :在发布应用时,将应用安装文件与校验文件一起打包成应用安装文件包发布;应用提供商或运营商在发布应用吋,同时要发布两个文件—个是应用安装文件(· cap),该安装文件满足智能卡(例如Java Card)定义格式,用于执行在智能卡上的应用安装;另ー个是应用安装校验文件(.acf),用于存放校验数据,该校验数据作为应用安装前必要的安全检查的ー个手段,以确保校验数据的安全性。对校验数据采用应用发行方私钥并以非対称密钥算法进行签名;对签名的校验数据采用应用发行方公钥进行验签。本发明例如采用RSA加解密算法(是1977年由Ron Rivest、Adi Shamirh和LenAdleman在美国麻省理工学院开发的。RSA取自这三位开发者名字)进行加密。或者,可以考虑使用安全强度更高的椭圆曲线密码编码学(ECC, Elliptic Curves Cryptography)算法对校验数据进行加密,此算法的加解密速度和密钥长度均优于RSA算法。应用发行方私钥由应用提供商持有,应用发行方公钥由卡商持有,并在智能卡发行时写入卡内。根据不同应用的安全需求,签名的数据域也有所不同(I)免费提供下载的应用对于免费提供下载的应用,签名的数据域为该安装文件采用摘要值算法计算摘要值。本发明在计算摘要值的算法选择上例如采用MD5算法计算摘要值(简称该安装文件的MD5值),或者使用美国国家安全局(NSA)设计的安全散列算法(SHA,Secure Hash Algorithm)的系列算法(如 SHA-1、SHA-256、SHA-512)计算摘要值。对于不需要授权的应用,用户可以登录网络直接进行应用下载。(2)需要授权下载的应用对于需要授权下载的应用,签名的数据域为该安装文件的MD5值和智能卡的集成电路卡识别码(ICCID, Integrate Circuit Card Identity)值组合在一起的值。
针对需要进行授权的应用在用户下载应用前,应提交自己使用智能卡的手机号码,由应用提供商或运营商将安装校验文件制作好后提供给用户进行应用下载。120 :在安装应用时,若检查应用安装文件包不具备校验文件,或者计算出的摘要值与解密出的校验数据明文中的摘要值不符,或者,需经授权的用户未经授权,则禁止应用安装;否则,允许并进行安装。当用户选择进行应用安装时,智能卡首先检查应用安装文件包中是否存在校验文件,若不存在,则拒绝安装;若存在,则读取该校验文件里经签名的校验数据密文,并使用本地存储的应用发行方公钥对该密文进行验签,得到应用安装的校验数据明文。按照上述发布方案中确定的数据格式,前20字节为安装文件的MD5值,此时智能卡对应用的安装文件使用MD5算法计算摘要值,并将计算结果与从校验数据明文读出的MD5值进行比对,比对相同则认为安装应用完整且来源合法,反之拒绝安装。当完成应用文件校验后,将校验数据明文的数据长度作为判断该应用是否需进行用户授权的依据,即若校验数据明文中存在ICCID域,说明应用的使用者需经授权,则智能卡通过读取卡上文件来确定要安装此应用的用户身份,并进行ICCID数据匹配,匹配成功则认为身份验证通过,则允许并完成需经授权应用的安装,否则认为身份验证不合格而不允许进行安装;若检查校验数据明文中不存在ICCID域,则允许并完成不需经授权应用的安装。如图2所示,为图I中所示的应用安装发布步骤110的具体实施流程,包括如下步骤210 :针对应用安装文件将用摘要算法计算的摘要值作为校验数据;对于免费提供下载的应用,签名的数据域为该安装文件采用MD5算法计算的摘要值,即安装文件的MD5值。220 :判断应用使用是否需经授权,是则执行步骤230,否则执行步骤250 ;230 :通过智能卡用户使用的手机号码确定卡标识;卡标识即智能卡的ICCID。240 :将卡标识值与计算出的摘要值拼接成校验数据;对于需要授权下载的应用,签名的数据域为该安装文件的MD5值和智能卡的ICCID值组合在一起的值。250 :使用应用发行方私钥对校验数据签名生成校验文件;260 :将应用安装文件和校验文件打包成应用安装文件包;270 :发布应用安装文件包。如图3所示,为图I中所示的应用安装步骤120的具体实施流程,包括如下步骤310 :检查是否可读取到应用校验文件包,是则执行下一步骤,否则禁止安装应用;检查是否能从应用安装文件包中读取到应用校验文件,如果能读取到,视为合法应用来源,否则视为非法应用而禁止安装。320 :计算应用安装的摘要值;
例如采用MD5算法计算出摘要值,即安装文件的MD5值。330 :使用应用发行方公钥对校验文件验签,获取校验数据明文;
340:判断校验数据明文中的摘要值是否与计算的摘要值一致,是则执行下一歩骤,否则禁止安装应用;亦即判断校验数据明文中的MD5值是否与计算的MD5值一致,一致则说明应用来源合法可靠,不一致则说明应用来源不合法或不可靠,禁止安装。350 :判断应用是否需经授权,是则执行下一步骤,否则执行步骤380 ;
将校验数据明文的数据长度作为判断该应用是否需进行用户授权的依据,即若校验数据明文中存在ICCID域,说明应用的使用者需经授权。360 :读取智能卡标识值;370:判断校验数据明文中标识值是否与读取的标识值一致,是则执行下一步骤,否则禁止安装应用;380 :完成应用安装。本发明针对上述方法实施例,相应地还提供了实现智能卡应用部署的系统实施例,包括应用发布装置和安装于智能卡中的应用安装装置,其中应用发布装置,用于在发布应用时,将应用安装文件与校验文件一起打包成应用安装文件包发布;应用安装装置,用于在安装应用时,若检查应用安装文件包不具备校验文件,或者计算出的摘要值与解密出的校验数据明文中的摘要值不符,或者,需经授权的用户未经授权,则禁止应用安装;否则,允许并进行安装。在上述系统实施例中,应用发布装置包括安装文件模块、校验文件模块以及打包发布模块,其中安装文件模块,按照智能卡(例如Java Card)定义格式形成执行应用安装的应用安装文件(.cap),并输出给打包发布模块;校验文件模块,用于形成存放校验数据应用安装校验文件(.acf),并将校验数据采用应用发行方私钥及以非対称密钥算法(RSA)签名生成校验文件,然后将校验文件输出给打包发布模块;打包发布模块,用于将输入的应用安装文件与校验文件一起打包成应用安装文件包发布。在上述系统实施例中,校验文件模块进行校验文件签名采用的应用发行方私钥由应用提供商持有,该校验文件的验签采用的应用发行方公钥由卡商持有,并在智能卡发行时写入智能卡。在上述系统实施例中,校验模块对于免费提供下载的应用进行签名的数据域为该安装文件采用MD5算法计算的MD5值;对于需要授权下载的应用进行签名的数据域为该安装文件的MD5值和智能卡的ICCID值组合在一起的值。在上述系统实施例中,应用安装装置包括应用合法性检查模块和安装模块,其中应用合法性检查模块,若检查应用安装文件包中不存在校验文件,则向安装模块输出拒绝安装指令;若检查存在校验文件则使用本地存储的应用发行方公钥对校验文件里经过签名的校验数据密文进行验签得到校验数据明文;若检查所述校验数据明文中存在ICCID域,则通过读取卡上文件来确定要安装此应用的用户身份,并进行ICCID数据匹配,匹配成功则认为授权验证通过,则向安装模块输出允许安装指令,匹配不成功则向安装模块输出拒绝安装指令;安装模块,用于根据允许安装指令完成对应用的安装,或根据拒绝安装指令向用户发出禁止应用安装的警告。本发明通过采用应用安装文件和安装校验文件配对的应用发布模式,使得智能卡在进行应用安装前通过MD5算法的摘要计算和比对来保护应用的完整性,并通过非対称RSA算法加密来保护安装校验数据的安全性,由此使得智能卡应用部署的安全性可靠性大大加强。以上说明仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换, 都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权カ要求书的保护范围为准。
权利要求
1.一种实现智能卡应用部署的方法,其特征在于,包括 在发布应用时,将应用安装文件与校验文件一起打包成应用安装文件包发布; 在安装应用时,若检查应用安装文件包内不具备校验文件包,或者计算出的摘要值与从所述校验文件验签出的校验数据明文中的摘要值不符,或者,检查需经授权的用户未经授权,则禁止应用安装;否则,允许进行安装。
2.按照权利要求I所述的方法,其特征在于,所述在发布应用时,将应用安装文件与校验文件一起打包成应用安装文件包发布,具体包括 按照智能卡定义格式形成用于在智能卡上执行应用安装的应用安装文件; 采用应用发行方私钥以及用非対称密钥算法对校验数据进行签名,形成校验文件; 将应用安装文件与校验文件一起打包成应用安装文件包发布。
3.按照权利要求2所述的方法,其特征在干, 所述应用发行方私钥由应用提供商持有,用于验签所述校验文件的应用发行方公钥由卡商持有,并在所述智能卡发行时写入卡内。
4.按照权利要求3所述的方法,其特征在干,所述采用应用发行方私钥以及用非対称密钥算法对校验数据进行签名 对于免费提供下载的应用,签名的数据域为该应用的安装文件采用摘要值算法计算的摘要值; 对于需要授权下载的应用,签名的数据域为该应用的安装文件的所述摘要值和智能卡的集成电路卡识别码值组合在一起的值。
5.按照权利要求4所述的方法,其特征在于,所述若检查应用安装文件包内不具备校验文件,或者计算出的摘要值与从所述校验文件验签出的校验数据明文中的摘要值不符,或者,检查需经授权的用户未经授权,则禁止应用安装;否则,允许进行安装;具体包括 智能卡检查所述应用安装文件包中是否存在所述校验文件,若不存在,则拒绝安装;若存在所述校验文件,则从中读取经签名生成的校验数据密文,并使用本地存储的所述应用发行方公钥验签所述校验数据密文,得到应用安装的校验数据明文; 智能卡对应用的所述安装文件采用MD5算法作为所述摘要值算法来计算MD5值作为所述摘要值;并将计算结果与从所述校验数据明文读出的MD5值进行比对,比对相同则认为安装应用完整且来源合法,比对不相同则拒绝安装; 智能卡若检查所述校验数据明文中存在所述集成电路卡识别码的域,则通过读取本地文件来确定要安装该应用的用户身份,并进行所述集成电路卡识别码的数据匹配,若所述匹配成功则允许并为已经过授权的用户完成应用安装,否则禁止所述安装;若检查所述校验数据明文中不存在所述集成电路卡识别码的域,则允许并完成不需经授权的应用的安装。
6.一种实现智能卡应用部署的系统,其特征在于,包括应用发布装置和安装于智能卡中的应用安装装置,其中 应用发布装置,用于在发布应用时,将应用安装文件与校验文件一起打包成应用安装文件包发布; 应用安装装置,用于在安装应用时,若检查应用安装文件包内不具备校验文件,或者计算出的摘要值与从所述校验文件验签出的校验数据明文中的摘要值不符,或者,检查需经授权的用户未经授权,则禁止应用安装;否则,允许进行安装。
7.按照权利要求6所述的系统,其特征在于,所述应用发布装置包括安装文件模块、校验文件模块以及打包发布模块,其中 所述安装文件模块,用于按照智能卡定义格式形成执行应用安装的应用安装文件,并输出给打包发布模块; 校验文件模块,用于采用应用发行方私钥以及非対称密钥算法对校验数据签名生成校验文件,并输出给打包发布模块; 打包发布模块,将输入的所述应用安装文件与所述校验文件一起打包成应用安装文件包发布。
8.按照权利要求7所述的系统,其特征在干, 所述校验文件模块签名生成所述校验文件采用的所述应用发行方私钥由应用提供商持有;该校验文件的验签采用的应用发行方公钥由卡商持有,并在智能卡发行时写入智能卡。
9.按照权利要求8所述的系统,其特征在干, 所述校验模块签名生成所述校验文件,对于免费提供下载的应用签名的数据域为该应用的安装文件采用摘要值算法计算的摘要值;对于需要授权下载的应用签名的数据域为该应用的安装文件的所述摘要值和智能卡的集成电路卡识别码值组合在一起的值。
10.按照权利要求9所述的系统,其特征在于,应用安装装置包括应用合法性检查模块和安装模块,其中 应用合法性检查模块,当检查所述应用安装文件包中不存在所述校验文件吋,向安装模块输出拒绝安装指令;当检查存在所述校验文件,则使用本地存储的所述应用发行方公钥对所述校验文件里经签名的校验数据密文进行验签得到校验数据明文;若检查所述校验数据明文中存在所述集成电路卡识别码域,则通过读取本地文件确定要安装该应用的用户身份,并进行所述集成电路卡识别码的数据匹配,若所述匹配成功则向安装模块输出允许安装指令,若所述匹配不成功则向安装模块输出拒绝安装指令; 安装模块,用于根据所述允许安装指令完成对应用的安装,或根据所述拒绝安装指令向用户发出禁止应用安装的警告。
全文摘要
本发明披露了一种实现智能卡应用部署的方法及系统,其中方法包括在发布应用时,将应用安装文件与校验文件一起打包成应用安装文件包发布;在安装应用时,若检查应用安装文件包内不具备校验文件包,或者计算出的摘要值与从校验文件解密出的校验数据明文中的摘要值不符,或者,检查需经授权的用户未经授权,则禁止应用安装;否则,允许进行安装。本发明能够有效地保证应用提供商的合法利益,通过验证应用本身的完整性,禁止所有不完整或被篡改的应用的安装;支持有授权前提的应用安装,从而能够同时保证应用提供商和授权用户的合法利益。
文档编号G06F21/00GK102663292SQ20121008241
公开日2012年9月12日 申请日期2012年3月26日 优先权日2012年3月26日
发明者史伟, 张靖, 王建, 谷思庭 申请人:大唐微电子技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1