背景技术
“3G”(3rd-generation)是第三代移动通信技术的简称,是指支持高速数据传输的蜂窝移动通讯技术。它能够在全球范围内更好地实现无线漫游,并处理图像、音乐、视频流等多种媒体形式,提供包括网页浏览、电话会议、电子商务等多种信息服务业务。3G业务的安全性是3G业务发展的重要保障。在现有的普通3G业务应用中,各个业务实体的自身安全以及数据交互过程的安全性都需要增强,如用户的身份信息,用户的交易信息以及3G业务传送的内容等等。图1即为3G业务的简单模型,分为终端侧和平台侧。终端侧由(U)SIM卡,操作系统和客户端/浏览器组成,可加载移动支付、安全下载等应用;平台侧由3G业务提供商,3G业务网络运营商和3G业务应用系统组成。由图1可知,普通的3G业务模型缺乏信息安全技术的保障。
目前,PKI(Public Key Infrastructure,公钥基础设施)技术是信息安全保障技术的核心。PKI是支持公开密钥管理并能支持认证、加密、完整性和可追究性服务的基础设施。完整的PKI系统具有权威认证中心(CA)、数字证书库、密钥备份及恢复系统、证书作废系统和应用接口(API)等基本构成部分。其中,认证中心是PKI的核心,负责管理PKI结构下的所有用户(包括各种应用程序)的证书,把用户的公钥和用户的其他信息捆绑在一起,在网上验证用户的身份;数字证书库用于存储已签发的数字证书及公钥,用户可由此获得所需的其他用户的证书及公钥;密钥备份及恢复系统是PKI为避免由于用户丢失用于解密数据的密钥而使数据无法被解密导致合法数据丢失的情况而提供的密钥备份与恢复的机制;证书作废处理系统是PKI为证书在有效期以内需要作废的情况(密钥丢失或用户身份变更)提供的组件;应用接口(API)使用户能够方便地使用加密、数字签名等安全服务。
图2所示为具备业务鉴权模块的3G业务模型。与图1相比,该3G业务模型在终端侧增加了具备业务鉴权模块的(U)SIM卡和安全平台。安全平台供手机客户端或浏览器调用,可以提供密码运算、证书管理等安全服务。(U)SIM卡的业务鉴权模块以PKI为核心,可以保障私钥的生成、存储及操作的安全性,保障数字身份下发的安全,保护用户的重要信息及信息的完整性等。
而目前的Native智能卡内置有业务鉴权模块,其一般只能进行文件的访问操作,并基于文件做一些应用扩展,并不能实现较复杂功能逻辑的扩充和变更。从应用逻辑看,传统智能卡多为单应用卡,卡片发行后其功能就固定下来,后下载应用或者扩充功能几乎不可能实现。因而现有的基于native卡的业务鉴权模块技术只能将业务鉴权模块事先预置在卡中,难以实现业务鉴权模块的升级和优化。一旦发卡,业务鉴权模块已固定,无法通过空中后下载方式对业务鉴权模块进行任何更新。若出现必须进行升级的情况,只能通过换卡来实现。
而传统的OTA(Over-the-Air Technology,空中下载技术)技术,是通过移动通信(GSM或CDMA)的空中接口(如WAP、GPRS、CDMA1X)以及短消息技术等对(U)SIM卡内的数据及应用进行远程管理的技术。目前,较常用的方式是直接利用数据短信(SIM data download)打包的OTA方式。OTA应用平台根据用户请求,以数据短消息的形式将相应的OTA字节码发回给用户手机,于是OTA字节码就透明地被传递到用户的(U)SIM卡中。在(U)SIM卡端对字节码进行重新组织存贮。OTA提供的网上定制功能使系统不可避免地处于因特网的大环境中,随时面临病毒入侵、黑客攻击等威胁。随着(U)SIM卡电子货币类业务的发展,用户对个人信息、银行账户等重要资料的安全保密性要求将大大提高。由此可知OTA下载的安全机制还有待完善。另外,通过OTA下载的字节码难以实现较复杂的逻辑,其应用的扩展性和多样性受到限制。
发明内容
本发明所要解决的技术问题是,提供一种智能卡及其进行业务鉴权的方法,保证在智能卡发卡后进行业务鉴权操作过程中,所调用的智能卡上的业务鉴权功能是经过了升级、添加及删除等维护操作的。
为了解决上述技术问题,本发明公开了一种智能卡进行业务鉴权的方法,包括:
智能卡发卡后,所述智能卡的操作系统通过空中方式或者销售终端(POS)方式下载用于业务鉴权的应用程序(Applet),并将所下载的Applet安装到本智能卡上;
当所述智能卡要进行业务鉴权操作时,所述智能卡的操作系统通过应用标识(AID)调用本智能卡上用于业务鉴权的Applet。
较佳地,上述方法中,所述智能卡的操作系统通过空中方式或者POS方式下载用于业务鉴权的Applet并将所下载的Applet安装到本智能卡上的过程如下:
所述智能卡的操作系统根据收到的指令通过空中方式或者POS方式欲下载用于业务鉴权的Applet时,若欲下载的Applet的AID与本智能卡上已有的业务鉴权的Applet的AID均不相同,则直接下载用于业务鉴权的Applet并安装到本智能卡上;若欲下载的Applet的AID与本智能卡上已有的一个业务鉴权的Applet的AID相同,则先删除本智能卡已有的业务鉴权的Applet,再下载所述用于业务鉴权的Applet并安装到本智能卡上。
较佳地,上述方法还包括:
所述智能卡的操作系统通过用于记录业务鉴权功能的状态的私有文件查询本智能卡上的业务鉴权功能是否启用,根据查询结果控制本智能卡上的业务鉴权功能的状态。
较佳地,所述智能卡的操作系统通过空中方式下载用于业务鉴权的Applet指:
所述智能卡的操作系统通过空中方式从运营商服务器上下载用于业务鉴权的Applet。
较佳地,所述智能卡的操作系统通过POS方式下载用于业务鉴权的Applet指:
所述智能卡的操作系统通过POS方式从POS机、终端或个人计算机(PC)端下载用于业务鉴权的Applet。
本发明还公开了一种智能卡,包括:
下载安装模块,在智能卡发卡后,通过空中方式或者POS方式下载用于业务鉴权的Applet并安装到本智能卡上;
业务鉴权模块,在本智能卡要进行业务鉴权操作时,通过AID调用本智能卡上用于业务鉴权的Applet。
较佳地,上述智能卡中所述下载安装模块分为:
第一子模块,在根据收到的指令通过空中方式或者POS方式欲下载用于业务鉴权的Applet时,若欲下载的用于业务鉴权的Applet的AID与本智能卡上已有的业务鉴权的Applet的AID均不相同,则直接下载用于业务鉴权的Applet并安装到本智能卡上;
第二子模块,在根据收到的指令通过空中方式或者POS方式欲下载用于业务鉴权的Applet时,若欲下载的用于业务鉴权的Applet的AID与本智能卡上已有的一个业务鉴权的Applet的AID相同,则先删除本智能卡已有的业务鉴权的Applet,再下载所述用于业务鉴权的Applet并安装到本智能卡上。
较佳地,上述智能卡还包括控制模块;
所述控制模块,通过用于记录业务鉴权功能的状态的私有文件查询本智能卡上的业务鉴权功能是否启用,并根据查询结果控制本智能卡上的业务鉴权功能的状态。
较佳地,上述智能卡中所述下载安装模块,通过空中方式从运营商服务器上下载用于业务鉴权的Applet。
较佳地,上述智能卡中所述下载安装模块,通过POS方式从POS机、终端或PC端下载用于业务鉴权的Applet。
目前,传统的OTA下载利用数据短信包对OTA字节码进行下载,字节码会透明地传递到用户的(U)SIM卡中,并在(U)SIM卡端被重新组织存贮。另外,通过传统的OTA下载的字节码难以实现较复杂的逻辑,其应用的扩展性和多样性受到限制。由上可知,与OTA下载相比,本发明的实施例采用的后下载方式是通过空中方式或POS(销售终端,point of sale)方式,将Applet的CAP(加密分析程序)包下载到智能卡中并在智能卡上进行安装,其安全性得到了有效的保证。另外,本发明的优选实施例以Javacard的Applet的形式通过Global Platform技术将业务鉴权功能安全部署到智能卡上运行,便于对业务鉴权功能进行升级和优化等操作。本发明的其他一些实施例中智能卡的业务鉴权功能中所涉及的某些鉴权算法,也可以直接调用javacardAPI,这样便于对该鉴权算法进行升级和优化。另外,本发明一些实施例还可以通过安全控制方式实现对智能卡上的业务鉴权功能的启用和停用,例如,具体可通过查询用于记录业务鉴权功能的状态的私有文件,智能卡根据查询结果对本智能卡上的业务鉴权功能进行相应的控制。
具体实施方式
下面结合附图及具体实施例对本发明技术方案做进一步详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
本发明申请人考虑提出的一种智能卡,为javacard,具体地,该智能卡可以是SIM卡(用户识别卡)或者USIM卡(Universal Subscriber Identity Module,全球用户识别卡),可以在发卡后,对智能卡上的业务鉴权功能进行维护操作(例如业务鉴权功能的升级、删除以及新增业务鉴权等),并根据维护操作处理后业务鉴权功能实现业务鉴权操作。其中,可以利用javacard在多应用执行和后下载可行性方面的优势,通过javacard的applet实现智能卡发卡后的业务鉴权功能的维护操作,即发卡后,智能卡的操作系统通过空中方式或者POS方式下载用于业务鉴权的Applet,并将所下载的Applet安装到本智能卡上。
优选地,还可以用GP实现业务鉴权功能的升级更新过程和后续生命周期管理的安全控制等。因为Javacard提供了一个安全的应用管理体系,在对象访问时有严格的安全检查等,而且GP平台可以为应用在加载、安装和运行等各个阶段的安全性提供更有力的保证。另外,用java applet形式实现智能卡发卡后的业务鉴权功能的维护操作,可以实现复杂的逻辑,同时Javacard提供的丰富的API使业务鉴权功能的开发更加灵活便捷。
实施例1
基于上述思想,本实施例提出一种智能卡进行业务鉴权的方法,该方法采用javacard applet的形式实现智能卡发卡后,智能卡上业务鉴权功能的升级更新、删除、新增及控制等维护操作,并在智能卡需要进行业务鉴权操作时,调用智能卡上已经过维护的业务鉴权功能进行业务鉴权。
由于,本实施例中业务鉴权功能采用用applet的形式实现,因此,可以用applet AID来标识智能卡上的Applet,且智能卡上applet的AID不能重复,是唯一的。这样,对智能卡上的业务鉴权功能进行升级时,可以先删除智能卡上原有的业务鉴权Applet,然后下载升级的业务鉴权Applet。
首先介绍智能卡发卡后的业务鉴权功能的升级更新的过程。智能卡发卡后,智能卡的操作系统收到操作指令后,若智能卡的操作系统根据该操作指令欲下载一个用于业务鉴权的applet时,若发现欲下载的用于业务鉴权的applet1的AID与本智能卡上已有的业务鉴权applet的AID相同(此时可认为是对本智能卡上已有的业务鉴权功能的升级更新),则将智能卡上已有的业务鉴权applet删除后,再下载用于业务鉴权的applet1并安装到本智能卡上,如图3所示。若智能卡的操作系统发现欲下载的用于业务鉴权的applet1的AID与本智能卡上已有的业务鉴权applet的AID均不相同(此时可认为是要在本智能卡上新增一个业务鉴权算法或鉴权方法),则直接下载applet1并安装到本智能卡上。
再介绍智能卡发卡后的业务鉴权功能的删除过程,该过程中智能卡的操作系统根据收到的操作指令删除本智能卡上已有业务鉴权功能,具体地,可通过AID来删除智能卡上已有的业务鉴权applet。
以上智能卡均是根据收到的操作指令对业务鉴权功能进行维护的,其中,智能卡收到的操作指令,可以是终端用户向智能卡发起的业务鉴权维护操作指令。例如,用户发起的业务鉴权升级操作指令、新增业务鉴权操作指令和删除已有业务鉴权功能等指令。而用户发起这些业务鉴权维护操作指令也可以是在网络侧运营商服务器提示后发起的。如,网络侧运营商服务器对业务鉴权功能进行了升级后,可以提示终端用户是否对智能卡上的业务鉴权功能进行升级,终端用户则可以根据该提示选择业务鉴权功能升级操作或者不进行任何操作。
另外,智能卡收到的操作指令,也可以是网络侧服务器或者POS机向智能卡发起的业务鉴权维护操作指令。例如,网络侧服务器或者POS机发起的下载用于业务鉴权的applet。
通过上述过程实现智能卡上的业务鉴权功能的升级更新以及删除等维护后,当智能卡需要进行业务鉴权时,调用本智能卡上的业务鉴权功能进行业务鉴权即可,此时所调用的业务鉴权功能是经过了升级更新以及删除等维护操作的业务鉴权功能。
具体地,考虑到,Javacard安全机制设计时在应用之间建立有防火墙机制以限制未经授权的访问,但提供了shareableInterface接口来支持应用之间的互访。因此,本实施例利用这一机制,实现智能卡上业务鉴权功能,即智能卡上的用于业务鉴权的Applet A提供一个shareable的接口,应用C实现该接口,还可实现别的接口,如ClientApplet B根据应用C的AID得到C的实例,即一个shareable Interface Object,来调用应用C实现shareable接口的函数。这样,智能卡的应用通过共享hareable Interface来调用用于业务鉴权的Applet即可,而无需显式地选择用于业务鉴权的Applet。这样对于调用业务鉴权功能的应用而言,其不会获知业务鉴权功能中的鉴权算法参数等细节,因而满足业务鉴权的运行要求和安全要求。
优选方案中,除了上述业务鉴权功能的维护操作外,还可以在智能卡上引入一个属性为透明文件的私有文件,该私有文件可用于记录智能卡上业务鉴权功能的状态,如智能卡上业务鉴权功能已启用或者智能卡上业务鉴权功能未启用。这样,智能卡的操作系统就可以通过该私有文件查询智能卡上业务鉴权功能的状态,并可根据查询结果对智能卡上的业务鉴权进行控制。例如,智能卡的操作系统查询发现智能卡上的业务鉴权功能未启用,则可及时地开启业务鉴权功能。
具体地,用于记录智能卡上业务鉴权功能的状态的私有文件的描述如表1所示。
表1为用于记录智能卡上业务鉴权功能的状态的私有文件描述表
从上表可以看出,假设该私有文件的文件标识符为7FXX,其文件属性为透明文件,更新频率低,文件大小为3+X个字节,访问条件包括两类,其中,对于该私有文件的更新需要通过校验PIN1方式更新,从而保证了该文件的私密性。另外,指示业务鉴权功能的状态的字节的不同值表示业务鉴权功能的不同状态,例如,该字节值为FF时可以表示业务鉴权功能未启用,该字节值为00时可以表示业务鉴权功能已启用。
实施例2
本实施例介绍一种智能卡,为Javacard,该智能卡可以是SIM卡或者USIM卡。
本实施例中,智能卡可包括下载安装模块和业务鉴权模块。
下载安装模块,在智能卡发卡后,通过空中方式或者POS方式下载用于业务鉴权的Applet并安装到本智能卡上。
其中,下载安装模块,通过空中方式从运营商服务器上下载用于业务鉴权的Applet;通过POS方式从POS机、终端或PC端下载用于业务鉴权的Applet。
具体地,智能卡的下载安装模块可用AID来标识智能卡上的Applet,且智能卡上applet的AID均不重复。
下载到智能卡上的applet可由JCRE控制,共有四种状态:1.已安装状态;2.被选择状态(select);3.命令处理状态(process);4.取消选择状态(deselect)。Applet在智能卡内的运行过程如图4所示。
已安装状态:此状态为应用程序安装并在卡上注册后的状态;被选择状态(select):只有在应用程序被选择后,应用程序才能被激活,进入命令处理状态;.命令处理状态(process):在此状态下,Java智能卡与读写器进行通信,执行应用程序中定义的pr方法。通过在应用程序中重载此方法,即可完成不同的智能卡的应用功能;取消选择状态(deselect):此状态为应用程序的非激活状态,直到该应用程序被重新选择为止。
Javacard支持applet后下载,但是从安全性和卡片资源受控角度考虑,不能允许任意角色都能进行应用后下载过程。应用下载操作应该定位成一个安全级别很高的操作。在本实施例中,智能卡上的业务鉴权功能应用即支持下载操作。
另外,GP(GlobalPlatform)通过安全域这个概念架构卡片安全体系。逻辑上卡片可以建立多个安全域,安全域分为主安全域和辅助安全域,通常主安全域是必须的,辅助安全域可选。每个安全域采用不同的安全策略。每个安全域在逻辑上可以理解为一个操作角色,比如主安全域可以理解为发行者,那么向主安全域内下载应用就必须符合发行者的安全控制要求。对于支持GlobalPlatform技术的卡片,应用必须与某个安全域关联,也就是说,一个应用必须从属于某个安全域。部署一个应用,一定要明确通知卡片,本次操作要在哪个安全域下进行。这样做的目的,是为了保证部署过程在该安全域的安全策略之下进行。比如,要在主安全域下部署一个算法应用,如果主安全域要求部署过程必须建立安全信道,那么未经建立安全信道直接发给主安全域的安装指令就会被拒绝。在卡片的GP框架控制下,可以建立SCP01或者SCP02等安全信道来加强算法部署的安全性。比如APDU指令加密等。因此,优选方案中,用于业务鉴权的applet采用GP方式下载。
在本实施例中,下载安装模块又可分为:
第一子模块,在根据收到的指令通过空中方式或者POS方式欲下载用于业务鉴权的Applet时,若欲下载的Applet的AID与本智能卡上已有的业务鉴权的Applet的AID均不相同,则直接下载用于业务鉴权的Applet并安装到本智能卡上;
第二子模块,在根据收到的指令通过空中方式或者POS方式欲下载用于业务鉴权的Applet时,若欲下载的Applet的AID与本智能卡上已有的一个业务鉴权的Applet的AID相同,则先删除本智能卡已有的该业务鉴权的Applet,再下载所述用于业务鉴权的Applet并安装到本智能卡上。
业务鉴权模块,在本智能卡要进行业务鉴权操作时,通过AID调用本智能卡上用于业务鉴权的Applet。
其中,由于Javacard的执行环境不支持多线程,因此业务鉴权模块每次只能执行一个Applet,并且不同的Applet之间有防火墙机制,限制Applet之间的会话与访问;将业务鉴权模块涉及的各个接口用javacard applet方式实现。部分算法核心可直接调用javacard API。
优选方案中,上述智能卡还可以包括控制模块,该控制模块,通过用于记录业务鉴权功能的状态的私有文件查询本智能卡上的业务鉴权功能是否启用,并根据查询结果控制本智能卡上的业务鉴权功能的状态。
从上述实施例可以看出,本发明的优选实施例提出的业务鉴权功能以Javacard的Applet的形式通过GlobalPlatform技术安全部署到智能卡上,因此,在发卡后也可对智能卡上的业务鉴权功能进行及时的升级更新等维护操作,并且既保证了升级的运行兼容性又能实现升级过程的安全控制。还有一些实施例中,业务鉴权功能中涉及的某些鉴权算法,也可以直接调用javacardAPI,以便于对鉴权算法进行升级和优化。
以上所述,仅为本发明的较佳实例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。