具体实施方式
本发明实施例提供了一种电信智能卡以及基于电信智能卡的非接触应用管理方法,可以实现对电信智能卡上的多种非接触应用进行统一管理的目的,从而提高了非接触应用的安全性。
本发明实施例提供的电信智能卡包括SIM卡、UIM卡以及USIM卡等符合2G和3G通信标准的电信智能卡,当然也可以包括适用于4G的电信智能卡等。
本发明实施例提供了一种电信智能卡,如图1(a)所示,包括:
接触通信模块11,用于接收非接触应用管理指令,并将所述非接触应用管理指令发送给电信应用模块13;
电信应用模块13,用于解析所述非接触应用管理指令,得到非接触应用标识和操作指令,并将所述非接触应用标识和操作指令发送给非接触应用模块12;
非接触应用模块12,用于根据所述非接触应用标识确定所述非接触应用标识对应的非接触应用,并根据所述操作指令对所述非接触应用标识对应的非接触应用执行所述操作指令对应的操作。
其中,接触通信模块11主要用于和手机进行交互,尤其用于接收用户通过用户识别应用发展工具(SIM Tool Kit,STK)菜单发送的非接触应用管理指令,或者,用于接收用户终端通过短消息中心或其他服务器发送的短消息形式的非接触应用管理指令,其中,非接触应用管理指令包括非接触应用标识和操作指令。较佳的,所述电信智能卡还包括:非接触通信模块14,用于实现所述非接触应用模块与非接触卡读写设备之间的通信,如图1(b)所示,非接触通信模块14,用于和智能卡读写设备进行交互,实现非接触应用,如实现移动支付应用、门禁应用等。这里,接触通信模块11包括但不限于智能卡上的触点,非接触通信模块14包括但不限于感应线圈。
并且,为了便于管理,所述电信智能卡还可以进一步包括:多应用管理模块10,用于将接触通信模块11接收的信息发送给电信应用模块13,尤其是用于将所述接触通信模块11接收的非接触应用管理指令转发给电信应用模块13,同时将电信应用模块13返回的信息发送给接触通信模块11;所述多应用管理模块10还用于将所述非接触通信模块14接收的信息转发给非接触应用模块12,同时将非接触应用模块12返回的信息发送给所述非接触通信模块14。
较佳的,所述非接触应用管理指令为电信命令,其中,电信命令包括用户通过STK菜单发送的命令以及通过短消息等方式发送的命令,则该电信智能卡还包括:电信应用模块13,用于解析接触通信模块11接收到的所述非接触应用管理指令,得到所述非接触应用标识和操作指令,并将所述非接触应用标识和操作指令发送给非接触应用模块。较佳的,所述电信应用模块13包括:接收模块131,用于接收接触通信模块11转发的所述非接触应用管理指令,并将所述非接触应用管理指令发送给STK应用程序模块132;STK应用程序模块132,用于解析所述非接触应用管理指令,得到其中包含的非接触应用标识和操作指令,并将所述非接触应用标识和操作指令发送给非接触应用模块12。
较佳的,该电信智能卡还包括:多应用管理模块10,用于将所述接触通信模块接收的信息转发给电信应用模块,将所述非接触通信模块接收的信息转发给非接触应用模块。
较佳的,所述非接触应用模块还用于确定所述非接触应用管理指令是否符合预设的安全条件,若符合预设的安全条件,则根据所述非接触应用标识和操作指令对所述非接触应用标识对应的非接触应用执行所述操作指令对应的操作。若不符合预设的安全条件,则可以有多种处理方式,例如,可以不予处理,或者,也可以返回提示信息,指示用户输入内容不符合安全条件等。
较佳的,所述非接触应用模块12包括:
验证模块121,用于确定所述非接触应用管理指令符合预设的安全条件;
查找模块122,用于查找保存的非接触应用的属性信息,根据所述操作指令修改所述非接触应用标识对应的非接触应用的属性信息。
较佳的,所述非接触应用管理指令中的的操作指令包括:删除非接触应用指令、添加非接触应用指令、激活非接触应用指令、锁定非接触应用指令、设置非接触应用的应用状态或应用限制条件指令等。较佳的,所述应用状态包括:未激活、已激活且应用未被锁定、激活但应用被锁定等;所述应用限制条件包括:关机状态下使用、开机状态下使用、开机状态下并需要PIN码、指定地域内使用,指定网络下使用等。
通过采用本发明实施例提供的电信智能卡,可以通过各个非接触应用的属性信息设置各个非接触应用的应用条件,从而可以对指定的非接触应用进行限制,以确保该业务的安全。并且,用户可以通过STK菜单或短消息等方式管理非接触应用,操作方便。其中,非接触应用包括但不仅限于:移动支付应用以及身份识别应用,移动支付应用包括但不仅限于公交卡应用、会员卡应用及社保卡应用等,身份识别应用包括门禁应用等。
本发明实施例还提供了一种基于上述电信智能卡的非接触应用管理方法,如图2所示,该方法主要包括以下步骤:
S201:接收非接触应用管理指令;
S202:解析所述非接触应用管理指令,得到非接触应用标识和操作指令;
S203:根据所述非接触应用标识确定所述非接触应用标识对应的非接触应用;
S204:根据所述操作指令对所述非接触应用标识对应的非接触应用执行所述操作指令对应的操作。
较佳的,所述非接触应用管理指令,包括:用户通过STK菜单发送的非接触应用管理指令;或者,用户通过其他手机或PC等终端设备发送的非接触应用管理指令。
较佳的,所述非接触应用管理指令为用户利用其他终端设备通过短消息中心发送的非接触应用管理指令。较佳的,所述根据所述操作指令对所述非接触应用标识对应的非接触应用执行所述操作指令对应的操作之后,还包括:返回操作成功消息或操作失败消息。
较佳的,所述根据所述非接触应用标识和操作指令对所述非接触应用标识对应的非接触应用执行所述操作指令对应的操作,具体为:查找保存的非接触应用的属性信息,根据所述操作指令修改所述非接触应用标识对应的非接触应用的属性信息。其中,操作指令可以为删除指令、添加指令或修改指令等,例如,当操作指令为删除指令时,则删除所述非接触应用标识对应的非接触应用的属性信息;当操作指令为添加指令时,则添加所述非接触应用标识对应的非接触应用的属性信息;当操作指令为修改指令时,则相应修改所述非接触应用标识对应的非接触应用的属性信息。
较佳的,所述根据所述非接触应用标识确定所述非接触应用标识对应的非接触应用之前,还包括:确定所述非接触应用管理指令是否符合预设的安全条件,若符合,则执行后续操作。
下面以一个优选实施例详细描述一下本发明提供的基于上述电信智能卡的非接触应用管理方法,包括以下步骤:
步骤一:电信智能卡中的接触通信模块接收包含非接触应用标识和操作指令的非接触应用管理指令,该管理指令具体可以采用电信命令的形式,并将所述电信命令转发给电信应用模块;电信应用模块接收并解析所述电信命令,得到包含的非接触应用标识和操作指令,并将所述非接触应用标识和操作指令发送给非接触应用模块。
在执行该步骤之前,电信智能卡还应该预先设置所有与非接触应用的相关信息:电信智能卡上的非接触应用功能是基于非接触应用模块实现的,因此,电信智能卡首先要设置非接触应用模块上与非接触应用相关的信息,包括:非接触应用模块的全局属性信息以及各个非接触应用的属性信息。其中,非接触应用模块的全局属性信息可以用一个结构体来表示,在该结构体中可以包括如下内容:系统当前应用,表示当前正在使用的非接触应用标识AID;系统安全状态,表示系统当前的安全状态;系统应用链表指针,指向由所有非接触应用组成的链表的表头。
具体设计时,表示非接触应用模块的全局属性信息的结构体可采用如下定义方式:
Struct SYSENVIRONMENT
{
String SYS_CURRENTPAYMENT;
Int SYS_CURRENTCONDITION;
Struct PAYMENT SYS PAYMENTLIST;
}
其中,SYS_CURRENTPAYMENT即为系统当前应用,SYS_CURRENTCONDITION表示系统安全状态,SYS_PAYMENTLIST表示非接触应用链表的表头。其中,系统安全状态SYS_CURRENTCONDITION的具体取值可按如下方式定义:00表示关机状态;01表示开机状态;02表示开机状态并且验证了PIN码;1X表示地域限制,X代表当前地域;2Y表示网络限制,Y代表当前网络;其他未使用,可扩充。
设置完非接触应用模块的全局属性之后,还需要设置各个非接触应用的属性信息,也就是说,该电信智能卡能够支持多少种非接触应用,就需要设置多少个对应的属性信息,每个非接触应用的属性信息也可以分别采用一个结构体来定义。具体的,每个非接触应用的属性信息可以包括:应用标识AID,表示该非接触应用的名称或者标识;应用状态,表示该非接触应用的状态;应用限制条件,表示该非接触应用的使用条件;应用入口,表示该非接触应用对应的入口函数,也叫API函数;为了方便系统管理多种非接触应用,还需要设置指向下一个非接触应用的指针,从而将所有非接触应用组织成链表形式,以便于查找具体的非接触应用。
例如,可采用如下方式定义每个非接触应用属性信息对应的结构体:
Struct PAYMENT
{
String PAYMENTNAME;
Int PAYMENT STATUS;
Int PAYMENTRUNCONDITION;
Function PAYMENTENTRANCE;
Struct PAYMENT NEXTPAYMENT;
}
其中,PAYMENTNAME表示非接触应用的名称或标识,PAYMENTSTATUS表示应用状态,PAYMENTRUNCONDITION表示应用限制条件,PAYMENTENTRANCE表示应用入口,NEXTPAYMENT表示指向下一个非接触应用的指针。其中,非接触应用的应用状态PAYMENTSTATUS的具体取值可按如下方式定义:00表示未激活使用;01表示已激活且应用未被锁定;02表示已激活但应用被锁定;其他未使用。非接触应用的应用限制条件PAYMENTRUNCONDITION的具体取值可按如下方式定义:00表示关机状态下使用;01表示开机状态下使用;02表示开机状态下并需要PIN码;1X表示地域限制,X代表地区编码;2Y表示网络限制,Y代表网络编码,如代表C网、G网等;其他未使用,可扩充。
上述全局属性以及各个非接触应用属性信息的结构体对应的数据元的存储方式如图3所示。在图3中,各个属性信息的结构体对应的数据元通过链表形式实现了统一管理。通过上述方式就完成了电信智能卡上与非接触应用相关信息的设置。在电信智能卡上,每个非接触应用都对应着一种非接触应用功能,如金融功能、EMV功能等,其中,EMV功能是由EMV标准规定的,EMV标准是由国际三大银行卡组织:Europay,即欧陆卡、MasterCard,即万事达卡和Visa,即维萨共同发起制定的银行卡从磁条卡向智能IC卡转移的技术标准。电信智能卡对非接触应用的管理其实就是对每个非接触应用的管理,它主要体现在移动终端用户通过移动终端与电信智能卡交互,从而对非接触应用进行管理,具体包括:激活应用、设置当前应用、锁定应用、临时锁定应用、删除应用、添加应用、设置当前应用的运行条件等。为了实现上述的管理功能,电信智能卡需要为电信应用提供一些必要的接口。可以利用电信智能卡的非接触应用模块上对电信业务开放的接口来维护和管理各个非接触应用的安装和下载。
下面详细介绍一下接触通信模块接收非接触应用管理指令,该非接触应用管理指令具体可以采用电信命令的形式,将该非接触应用管理指令转发给电信应用模块,以及电信应用模块接收并解析该非接触应用管理指令,得到其中包含的非接触应用标识和操作指令,并将所述非接触应用标识和操作指令发送给非接触应用模块的具体流程。为了便于接收管理指令,电信智能卡内部设置有接触通信模块和非接触通信模块,其中,接触通信模块用于以接触方式实现电信智能卡与手机等移动终端之间的通信,非接触通信模块用于以非接触方式,即射频等方式实现智能卡与非接触终端设备之间的通信。当用户使用电信智能卡完成非接触应用功能时,利用非接触通信模块与非接触终端设备之间的通信来实现非接触应用;当用户通过STK菜单等形式,向电信智能卡发送非接触应用管理指令,也即电信命令时,是通过接触通信模块来实现移动终端和电信智能卡之间通信的。具体的,接触通信模块接收到该非接触应用管理指令后,将其转发给电信智能卡中的多应用管理模块进行处理,多应用管理模块主要用于对接收到的命令进行分发,依据的原则是:接触通信模块接收到的命令传递给电信应用模块,非接触通信模块接收到的命令传递给非接触应用模块。非接触应用模块负责管理所有的非接触应用,依据自身维护的全局属性信息有选择的进行命令分派,并且结合STK应用程序模块通过STK应用程序专用通道过来的一些命令,完成对所有的非接触应用的管理。STK应用程序专用通道是STK应用程序模块与非接触应用模块交互的通道,STK应用程序模块通过这个通道传递命令给非接触应用模块,非接触应用模块有选择的处理这些命令,从而实现通过STK菜单管理非接触应用的目的。因此,用户通过STK菜单等形式向电信智能卡发送的非接触应用管理指令通过接触通信模块转发给电信智能卡中的多应用管理模块后,由多应用管理模块将其转发给电信应用模块中的接收模块,由接收模块转发给STK应用程序模块,然后再由STK应用程序模块对所述非接触应用管理指令进行解析,得到其中包含的非接触应用标识和操作指令,然后通过STK应用程序专用通道将所述非接触应用标识和操作指令发送给非接触应用模块进行处理。
步骤二:电信智能卡中的非接触应用模块确定所述非接触应用管理指令满足预设的安全条件后,根据其中包含的非接触应用标识和操作指令对所述非接触应用进行管理。
非接触应用模块首先要判断该非接触应用管理指令是否满足预设的安全条件,仅对满足安全条件的管理指令进行处理,而对于不满足安全条件的管理指令则不予处理。这里,预设的安全条件可以是由用户事先设置的,也可以是由系统设置的。对于满足安全条件的非接触应用管理指令,则根据其中包含的非接触应用标识和操作指令,根据操作指令对非接触应用标识对应的非接触应用进行管理。其中,操作指令主要包括:非接触应用删除指令、非接触应用添加指令、非接触应用激活指令、非接触应用锁定指令以及设置非接触应用限制条件指令等。
具体的,本发明实施例中通过非接触应用管理指令进行非接触应用的管理时,可分为本地管理和远程管理两种方式,其中,本地管理主要指用户通过对安装有该电信智能卡的移动终端进行操作,从而实现对该电信智能卡上的非接触应用的管理,这里,用户可以通过STK菜单发送非接触应用管理指令,由电信应用模块中的STK应用程序模块对该非接触应用管理指令进行解析,得到其中包含的非接触应用标识和操作指令,然后由非接触应用模块根据非接触应用标识以及对应的非接触应用的API函数查找到保存的该非接触应用的属性信息,并根据操作指令对该非接触应用的属性信息进行修改。图4(a)所示为本地管理的示意图,STK应用程序模块将非接触应用标识和操作指令传送给非接触应用模块,由非接触应用模块根据保存的API函数查找到该非接触应用标识所对应的非接触应用的属性信息,并且,非接触应用模块在调用API函数时需要访问智能卡操作系统。远程管理主要指通过其他终端设备对安装有该电信智能卡的移动终端进行操作,从而实现对该电信智能卡上的非接触应用的管理,如图4(b)所示,这里,其他终端设备通过电信服务器等网络设备向安装有该电信智能卡的移动终端发送管理指令,实现对非接触应用的远程管理。具体实现时,首先由其他终端设备的持有者输入验证信息,如PIN码等,通过身份认证后,即可通过服务器等网络设备向安装有该电信智能卡的移动终端发送短消息形式的管理指令,该移动终端将该短消息形式的管理指令组装成电信命令,通过通信模块发送给智能卡中的电信应用模块,由电信应用模块中的STK应用程序模块对该电信命令进行解析,得到其中包含的非接触应用标识和操作指令,然后由非接触应用模块根据非接触应用标识以及对应的非接触应用的API函数查找到保存的该非接触应用的属性信息,并根据操作指令对该非接触应用的属性信息进行修改。较佳的,在远程管理方式中,电信智能卡会接收到来自其他终端设备的多种电信命令,因此,该短消息形式的管理指令中需要包含特定的标识信息,或采用特定的格式,以使电信智能卡能够识别出该短消息为非接触应用的管理指令,而非其他普通的电信内容,这里,特定的标识信息可以为非接触应用标识和操作指令,也可以采用其他的约定方式,只要能够实现标识该短消息类型的目的即可。并且,在远程管理方式中,移动终端还可以向发送管理指令的其他终端设备返回操作成功消息或操作失败消息,以通知其他终端设备管理操作的结果。其中,其他终端设备可以是PC机或手机等。并且,短消息由其他终端设备的持有者自行编辑,然后可以由短消息中心或其他服务器进行下发。其中,非接触应用包括:移动支付应用以及身份识别应用,移动支付应用包括公交卡应用、会员卡应用及社保卡应用等,身份识别应用包括门禁应用等。
下面具体介绍一下非接触应用模块根据所述操作指令对所述非接触应用进行管理的具体执行过程:
一、设置指定的非接触应用的应用限制条件,如图5所示,先判断命令格式是否正确,以及是否满足设置的权限,若满足,则允许用户通过点击STK菜单等形式查找到指定的非接触应用,输入具体的限制条件,即设置该非接触应用的应用限定条件。例如,设置为00表示关机状态下使用,或,设置为01表示开机状态下使用等。
二、设置系统的当前应用。如图6所示,先判断命令格式是否正确,以及是否满足设置的权限,若满足,则将系统的当前应用设置为指定的非接触应用,多数情况下,该指定的非接触应用即为当前正在使用的应用。
三、设置系统安全状态。具体设置时,可以采用图7所示的方式,首先判断命令格式是否正确,若正确,则进一步验证用户输入的PIN码,验证通过后,即可允许用户设置系统的安全状态。
除了上述介绍的三种设置之外,用户还可以对非接触应用进行添加、删除、激活、锁定、设置密码等操作,具体实现方式类似,例如,当操作指令为删除指令时,则删除所述非接触应用标识对应的非接触应用的属性信息;当操作指令为添加指令时,则添加所述非接触应用标识对应的非接触应用的属性信息;当操作指令为修改指令时,则相应修改所述非接触应用标识对应的非接触应用的属性信息。
下面以添加非接触应用为例描述一下具体的执行过程:首先,用户通过手机键盘按键打开非接触应用的STK菜单,并在STK菜单选项中选择“新增非接触应用”,这时,手机屏幕会显示出所有的非接触应用,用户选择一个指定的非接触应用后,手机则会针对该操作构造一条非接触应用管理指令,其中包含“新增非接触应用”的操作指令以及选择的指定非接触应用的非接触应用标识,电信智能卡中的接触通信模块接收到该非接触应用管理指令后,通过多应用管理模块转发给电信应用模块进行处理,电信应用模块中的STK应用程序模块解析出其中包含的“新增非接触应用”的操作指令以及选择的指定非接触应用的非接触应用标识后,发送给非接触应用模块,由非接触应用模块根据操作指令和非接触应用标识进行相应的处理,即通过预先设置好的程序生成指定非接触应用的相关代码和属性信息,从而实现添加非接触应用的操作,并且,非接触应用模块通过STK应用程序模块以及接触通信模块向用户返回新增成功操作消息或新增失败操作消息。上述方式为用户通过STK菜单实现本地管理的方式,如果用户需要进行远程管理,则可以选择通过电信服务器或短消息中心发送短消息等方式进行,这时,该短消息中即包含“新增非接触应用”的操作指令以及选择的指定非接触应用的非接触应用标识,后续处理流程与本地管理相同。
删除非接触应用、更新非接触应用以及激活非接触应用等操作的操作过程与新增非接触应用的操作过程类似,此处不再赘述。其他操作指令,如锁定非接触应用指令、设置非接触应用的应用状态或应用限制条件指令等也与之类似。
另外,非接触应用模块主要提供了两个对外的接口,即:面向STK应用程序专用通道的接口,用于处理接触通信模块通过多应用管理模块转发给STK应用程序模块的关于非接触应用的管理指令;以及面向多应用管理模块的接口,用于处理非接触通信模块通过多应用管理模块发送的关于实现非接触应用的命令。其中,非接触应用模块与STK应用程序专用通道接口之间的命令交互流程如图8所示,首先,非接触应用模块判断STK应用程序模块传递的命令是否正确,若正确,则解析该命令,并将该命令传递给相应的功能模块处理。非接触应用模块与多应用管理模块之间的命令交互流程如图9所示,首先,根据系统当前应用属性查找当前应用并获取当前非接触应用的状态,当当前非接触应用未被锁定时,进一步判断系统的安全状态与当前应用的限制条件是否匹配,若匹配,则将从多应用管理模块接收到的命令传递给当前非接触应用。如果在上述步骤中,判断当前非接触应用处于锁定状态,或者,发现系统安全状态与当前应用的限制条件不匹配,则直接设置状态字6985表示使用条件不满足,拒绝该命令操作。
通过采用本发明实施例提供的基于电信智能卡的非接触应用管理方法,可以通过各个非接触应用的属性信息对应的结构体来设置各个非接触应用的应用条件,从而可以对指定的非接触应用进行限制,如:限制当前非接触应用的使用条件,或者,还可以提高当前非接触应用的使用门槛:比如使用该非接触应用之前必要先正确输入指定的PIN码,从而确保非接触应用的安全。并且,用户可以通过STK菜单或短消息等方式管理非接触应用,操作过程简便灵活。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。