发明内容
本发明要解决的技术问题是提供一种利用智能卡处理第三方扩展业务数据的方法与装置,可以突破移动终端传输字节数的限制,从而实现利用智能卡处理第三方扩展业务数据,以提高安全性。
为了解决上述技术问题,本发明提供了一种利用智能卡处理第三方扩展业务数据的方法,包括以下步骤:
A.移动终端判断待处理的第三方扩展业务数据的长度是否大于移动终端限制的预定长度,若大于,将所述第三方扩展业务数据分拆分并重组成多个长度小于或等于移动终端限制的预定长度的通讯录数据段或短信数据段,然后将所述通讯录数据段或短信数据段发送到所述智能卡;
B.所述智能卡将接收到的通讯录数据段或短信数据段合并成完整的第三方扩展业务数据,并对合并后的第三方扩展业务数据进行处理;
C.所述智能卡判断处理后第三方扩展业务数据是否大于移动终端限制的预定长度,若大于,将所述处理后的第三方扩展业务数据分拆分并重组成多个长度小于或等于移动终端限制的预定长度的通讯录数据段或短信数据段,接收到移动终端发送的读取指令后,将与处理后的第三方扩展业务数据对应的通讯录数据段或短信数据段发送给所述移动终端;
D.移动终端将接收到的通讯录数据段或短信数据段合并成完整的处理后的第三方扩展业务数据。
进一步地,所述智能卡对合并后的第三方扩展业务数据进行的处理为数字签名处理。
进一步地,每个所述通讯录数据段或短信数据段包括识别号和实际数据段,所述实际数据段又包括数据长度、段数和实际数据,其中,所述识别号用于标识该通讯录数据段或短信数据段为第三方扩展业务数据,所述数据长度用于说明该通讯录数据段或短信数据段的长度,所述段数表示该通讯录数据段或短信数据段为第几段。
进一步地,所述通讯录数据段或短信数据段中,以预设的电话号码或短信号码作为标识该数据段为第三方扩展业务数据的识别号。
进一步地,所述智能卡由贴片卡和SIM卡组成,所述贴片卡位于所述SIM卡和移动终端之间;所述贴片卡接收来自于所述移动终端的数据,判断该数据是否为第三方扩展业务数据,若是,对该数据进行处理,并根据接收到移动终端发送的读取指令将处理后的数据返回给移动终端;若否,将该数据透传给所述SIM卡。
本发明还公开了一种利用智能卡处理第三方扩展业务数据的装置,包括:
移动终端,用于判断待处理的第三方扩展业务数据的长度是否大于移动终端限制的预定长度,若大于,将所述第三方扩展业务数据分拆分重组成多个长度小于或等于移动终端限制的预定长度的通讯录数据段或短信数据段,然后将所述通讯录数据段或短信数据段发送到所述智能卡;还用于将从智能卡读取的处理后的通讯录数据段或短信数据段合并成完整的处理后的第三方扩展业务数据;
智能卡,用于将接收到的由所述移动终端发送来的通讯录数据段或短信数据段合并成完整的第三方扩展业务数据,并对合并后的第三方扩展业务数据进行处理;还用于判断处理后第三方扩展业务数据是否大于移动终端限制的预定长度,若大于,将所述处理后的第三方扩展业务数据分拆分成多个长度小于或等于移动终端限制的预定长度的通讯录数据段或短信数据段进行缓存,接收到移动终端的读取指令后,将其发送给所述移动终端。
进一步地,所述智能卡对合并后的第三方扩展业务数据进行的处理为数字签名处理。
进一步地,每个所述通讯录数据段或短信数据段包括识别号和实际数据段,所述实际数据段又包括数据长度、段数和实际数据,其中,所述识别号用于标识该通讯录数据段或短信数据段为第三方扩展业务数据,所述数据长度用于说明该通讯录数据段或短信数据段的长度,所述段数表示该通讯录数据段或短信数据段为第几段。
进一步地,所述通讯录数据段或短信数据段中,以预设的电话号码或短信号码作为标识该通讯录数据段或短信数据段为第三方扩展业务数据的识别号。
进一步地,所述智能卡由贴片卡和SIM卡组成,所述贴片卡位于所述SIM卡和移动终端之间,其中:
所述贴片卡,用于接收来自于所述移动终端的数据,判断该数据是否为第三方扩展业务数据,若是,对该数据进行处理,并根据移动终端的读取指令将处理后的数据返回给移动终端;若否,将该数据透传给所述SIM卡。
进一步地,所述贴片卡包括数据接收模块、数据处理模块、数据透传模块和数据发送模块,其中:
数据接收模块,用于接收由移动终端发送来的指令及数据段或完整数据,若接收到的是数据段,将数据段合并成完整数据;判断所述完整数据是否为第三方扩展业务数据,若是,将指令及该第三方扩展业务数据发送给所述数据处理模块;若否,将该完整数据发送给数据透传模块;
数据处理模块,用于对所述数据接收模块发送来的指令及第三方扩展业务数据进行处理,并将处理后的指示标志或第三方扩展业务数据发送到数据发送模块;
数据发送模块,用于判断所述处理后的第三方扩展业务数据长度是否大于移动终端限制的预定长度,若大于,将所述处理后的第三方扩展业务数据分拆分成多个长度小于或等于移动终端限制的预定长度的数据段进行缓存,当接收到数据处理模块发送的读取状态标志后,将所述缓存的数据段发送给所述移动终端;
数据透传模块,用于将所述数据接收模块发送来的数据透传给所述SIM卡,或者将SIM卡上的数据经所述数据发送模块透传给移动终端。
本发明通过将大于移动终端传输长度限制的第三方扩展业务数据进行拆分,突破了移动终端向智能卡读写数据的长度限制,从而使得数字证书等第三方扩展业务数据可以在高安全性的智能卡中进行处理,例如由智能卡进行数据的签名、验签等操作,从而大大提高了移动通讯应用的安全性。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好的理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
如图1所示实施例,在本实施例中,移动应用客户端通过移动通信终端的通讯录管理模块向智能卡发送第三方扩展业务数据,经智能卡进行处理(如数字签名或验签)后,移动应用客户端再通过短信管理模块读取智能卡处理后的第三方扩展业务数据。
如图1所示,本发明中移动客户端与智能卡之间的数据通信方法所涉及的功能模块或部件主要包括:移动用户客户端,通讯录管理模块、***内核模块和智能卡。***内核模块又进一步包括缓存管理子模块和***监控子模块。其中,通讯录管理模块和***内核模块均为现有模块,本发明利用它们的现有工作原理实现本发明的目的。
移动应用客户端,作为本发明整个技术方案的控制模块,位于用户实际操作层面,用户利用该移动应用客户端访问第三方业务,移动应用客户端根据用户的指令生成数据请求信息,并将数据请求信息发送给通讯录管理模块,如果第三方扩展业务数据长度超出了移动终端的限制长度,则将数据拆分后再组合成通讯录联系人的格式进行发送,接收到经过智能卡处理并拆分后的所有数据段后进行重新组合,获得处理后的第三方扩展业务数据。
通讯录管理模块,由手机操作***提供,该模块进一步包括智能卡通讯录和手机通讯录两大部分。
***监控子模块,实时监测***缓存管理模块的变化更新情况,然后将监控情况通知缓存管理子模块,由缓存管理子模块来更新智能卡的数据。整个方案中,只有该模块能直接向智能卡读写数据。
缓存管理子模块:实际是手机***数据库,用于存储通讯录和短信,通讯录管理模块通过该模块来间接访问智能卡。
智能卡,属于硬件层,位于本方案的数据存储区域,也是整个方案的核心部件,用于接收来自移动应用客户端的联系人数据,并进行处理,通过分析、校验、对比、拆分数据后,将数据间接传递给移动应用客户端进行处理,也同时间接接收移动应用客户端的数据处理结果。
参考图1,的各个模块的作用及其关系如下:
移动应用客户端将需要发送给智能卡的待处理的第三方扩展业务数据组合成一个电话簿联系人的存储格式,发送给通讯录管理模块。通讯录管理模块属于常用的移动设备终端内部自带模块,其具体结构和原理在此不作详细介绍。电话簿联系人的存储格式按以下方式进行组合:
其中,对应电话号码的字段就是识别号,可以是一连串***数字,长度通常可以小于或等于11位,也可以灵活设定。作用是便于智能卡识别该数据字段。如在该实施例中,识别号为1234567。
联系人姓名:该部分进一步分为段数值指示位和实际数据段,实际数据段用于存放实际的数据。由于联系人姓名的长度受到移动设备终端的限制,不同的移动设备终端对于联系人姓名的长度限制要求并不相同。因此,如果实际数据长度超过限制长度时,则需要将数据拆分成多个数据段,每个数据段由三部分构成:数据长度、段数和实际数据。其拆分规则如下:
字段 |
长度 |
说明 |
数据长度 |
4 |
该段数据长度,若第一个字节最高位为1,则表示该段为最后数据段 |
段数 |
2 |
该段数据所在原数据中的段数,从0x00开始 |
实际数据 |
N |
实际的数据 |
其中,数据长度:该字段说明实际数据字段和段数字段加起来,一共有多少个字节,可以用1个16进制数进行表示,如0x01,0x0F,0xFF。通过该字段,智能卡便能确定接收的数据大小。
段数:如上,由于实际数据字段受到长度的限制而会进行拆分,因此,用段数字段来表示实际数据是总数据被拆分的第几段,可以用1个16进制数来表示,如被拆分成的实际数据是第二段的,那么表示为0x02。通过该字段,智能卡能够区分出该条电话薄联系人属于第几段,当所有数据都接收完毕后,智能卡将根据该字段从小到大,对数据进行组合。
实际数据:该字段是移动应用客户端向智能卡发送的实际数据。
通讯录管理模块在接收到第三方扩展业务(组成电话簿联系人形式)数据后,将第三方扩展业务数据发送给内核模块,本发明中的内核模块就是现有移动通信终端的***内核模块,不需要做改变,该***内核模块主要由缓存管理子模块和***监控子模块两部分组成,如图1。
通讯录管理模块所发送的构成第三方扩展业务数据的电话簿联系人数据,保存在缓存管理子模块中,由***监控子模块监控缓存管理子模块中的数据变化,当发现缓存管理子模块中有数据写入时,便由***监控子模块判断智能卡的状态,如,判断当前移动设备中智能卡是否存在、该智能卡是否符合手机标准等一系列信息,其判断标准及判断方法由***监控子模块确定。如果状态正常,则通知缓存管理子模块将构成第三方扩展业务的电话簿联系人数据写入智能卡中,由于***内核模块是现有手机***自带模块,详细的判断方法,判断标准依据移动设备终端的不同而有差异,该模块属于移动设备终端现有技术中的方案,故在此不作详细介绍。
当***内核模块将接收到的第三方扩展业务数据保存在智能卡中,智能卡接收到第三方扩展业务数据后,开始对第三方扩展业务数据进行处理,如果是多段数据,首先进行组合,获得完整的实际数据,由该智能卡根据识别号判断业务类别,并根据不同的业务类别对接收到的数据做相应的处理。
例如:如果该段数据的识别号表示需要由智能卡对其进行数字签名处理,则智能卡将接收到的第三方扩展业务数据进行数字签名。
智能卡对接收到的数据进行处理后,将处理获得的数据进行重新拆分,组合成电话簿或短信的格式进行存储。如果移动应用客户端是通过通讯录管理模块读取处理后的数据,则智能卡将处理后的数据重新拆分组合成电话簿联系人的格式进行存储;如果移动应用客户端是通过短信管理模块读取处理后的数据,则智能卡将处理后的数据重新拆分组合成短信的格式进行存储。
当移动应用客户端发送完成所有的数据后,主动暂停预设的一段时间,如0.5秒,然后向移动设备终端的通讯录管理模块发出读取智能卡处理后的第三方扩展业务数据的请求,请求内容为一个标准的通讯录读取请求,意义在于读取出智能卡中的特定的电话簿联系人,特定的区分标识由请求中的相关数据字段去指定。在此特定字段中填入实例中的自建的电话薄的联系号码即可。通讯录读取请求的格式和封装具有详细的公开标准,可以参见GSM11.11和GSM03.04标准。
当通讯录管理模块接收到请求后,将该请求发送给***内核模块,根据上述的通讯录读取请求条件,由***内核模块提取出所有由智能卡处理过的第三方扩展业务数据,并将提取出的数据信息以通讯录的方式发送给通讯录管理模块。再由通讯录管理模块对接收到的数据进行组装,并将组装完成的数据发送给移动应用客户端。这里,数据组装的方法和格式与上述智能卡的操作方式相同。
图2为本发明的移动应用客户端与通讯录管理模块之间通信流程示意图,如图2所示,该过程包括:
步骤S1:用户通过移动应用客户端浏览业务信息,当用户需要通过智能卡进行第三方扩展业务数据处理时,将会给移动应用客户端发送业务数据处理指令,移动应用客户端收到来自用户的业务数据处理指令(如对一段数据进行数字签名的指令,或者对一段数字签名数据进行验签的指令,或者存储一段数据的指令,或者读取一段数据的指令)或者从第三方扩展业务服务***(如金融支付***)接收到数据需要处理时(例如服务***身份验证),生成数据请求信息,该数据请求信息可以为任意格式,如可以是超文本传输协议(HTTP)格式,也可以是短信请求格式、电话簿联系人格式或自定义格式等;
步骤S2:移动应用客户端识别数据请求信息中的操作指令,操作指令共有两种,一种是将数据发送到智能卡,另一种是从智能卡读取数据。如果判断是将数据发送到智能卡,则进入步骤S3;如果判断从智能卡读取数据,则进入步骤S8;
步骤S3:判断数据请求信息的实际数据段长度是否超过了移动终端对于联系人姓名的限制的长度,目前移动终端的对于联系人姓名的长度限制是各个移动终端厂商自定。如果超出预定长度,则进入步骤S4,否则,进入步骤S5;
步骤S4:将需要处理的数据进行拆分处理,处理流程如下:
将需要处理的数据拆分成若干条小于或者等于预定长度的数据段,每个数据段由三部分构成:数据长度、段数和实际数据。若需要处理的数据有多个,则数据段拆分完成后,移动应用客户端为每段被拆分的数据前面加上数据长度和段数,进入步骤S6;
步骤S5:移动应用客户端在数据前面加上数据长度和段数;
步骤S6:对所有添加数据长度和段数的数据段依次进行如下步骤,将其拼装成联系人信息的形式;
a.新建一个联系人,联系人字段内容包括联系人姓名、电话号码;
b.将添加数据长度和段数的数据段写入新建的联系人姓名中;
c.联系人的电话号码写入特殊约定的号码,如9999999,约定的号码在智能卡一端能够正确无误地识别;
步骤S7:将完整联系人信息发送到通讯录管理模块,然后进行下一个联系人信息的生成及发送;也可以完成所有的联系人信息的生成后,再统一发送到通讯录管理模块;
步骤S8:移动应用客户端向通讯录管理模块发出联系人读取请求;
步骤S9:通讯录管理模块读取***内核模块中的联系人;该联系人可以是经过数据处理后的联系人,例如加密、签名等,或者纯粹的数据存储;读取完成后,向移动应用客户端反馈读取完成; 通讯录管理模块将一个特定号码对应的所有联系人姓名读取到一个临时存储区中,临时存储区由移动设备终端自行指定,只需调用移动设备终端所提供的功能接口即可;
步骤S10:移动应用客户端收到来自通讯录管理模块的读取完成的反馈信息后,判断联系人姓名的条数,如果大于1条,进入步骤S11;否则,进入步骤S12;
S11:将多条联系人姓名组合成1条;
S12:移动应用客户端获得结果。
上述方案中,如果只是数据存储,在步骤S7之后,通讯录管理模块11将完整联系人信息发送到智能卡后,由智能卡对上述数据进行存储或者加密等数据处理,处理后重新拆分进行存储;以及拆分后的联系人能够在通讯录管理模块读取该联系人时,将同一号码对应的所有联系人均能读取。确保移动应用客户端能够完整获得所需的数据。
在步骤S8之前还包括:移动应用客户端调用移动设备终端提供的检测功能来检测通讯录管理模块是否正常工作。只有在通讯录管理模块工作正常的情况下,才能通过该模块获取到处理后的数据,如果不正常,向移动应用客户端反馈读取错误。移动设备终端提供的检测功能根据不同的设备终端,***平台的差异而不同,由移动设备终端自行处理,在此不作详细介绍。
在上述实施例中,移动终端向智能读写数据均是以联系人数据的方式完成的。在其它实施例中,移动终端向智能读写数据也可以采用短信息数据的方式完成,或者读写采用不同的方式。例如读数据采用联系人数据而写数据采用短信息数据,反之亦可,只需智能卡将处理后的数据以能够读取的格式进行存储即可。
在本发明中,智能卡可以是专门的具有对第三方扩展业务数据进行处理的能力的单独智能卡,也可以是在普通的SIM卡与移动终端之间增加一个贴片卡,由贴片卡和普通的SIM卡共同构成智能卡。如图3所示,当采用由贴片卡和普通的SIM卡构成的智能卡时,移动终端发送的数据首先由贴片卡拦截,对于需要由智能卡进行处理的第三方扩展业务数据,由贴片卡进行处理,对于其它数据,由贴片卡透传给SIM卡。相应地,当移动终端要从智能卡读取数据时,如果要读取的是智能卡处理后的第三方扩展业务数据,则由贴片卡将处理后的第三方扩展业务数据发送给移动终端;如果移动终端要读取的是SIM卡上的数据,则由贴片卡将SIM卡上的数据透传给移动终端。贴片卡技术是较成熟的现有技术,这里就不再赘述,可以参考中国公开专利文献CN1987901A。
如图4所示,为本发明的贴片卡一实施例的结构框图。该实施例中,贴片卡由数据接收模块、数据处理模块、数据透传模块和数据发送模块构成,其中:
数据接收模块,用于接收由移动终端(移动终端***内核)发送来的指令及完整数据或数据段,若接收到的是数据段,将数据段合并成完整数据;判断完整数据(包括原始的完整数据或合并后的完整数据)是否为第三方扩展业务数据,若是,将指令及该第三方扩展业务数据发送给所述数据处理模块;若否,将该完整数据发送给数据透传模块;
数据处理模块,用于对所述数据接收模块发送来的指令及第三方扩展业务数据进行处理,并将处理后的指示标志或第三方扩展业务数据发送到数据发送模块;
数据发送模块,用于判断所述处理后的第三方扩展业务数据长度是否大于移动终端限制的预定长度,若大于,将所述处理后的第三方扩展业务数据分拆分成多个长度小于或等于移动终端限制的预定长度的数据段,然后将数据段进行缓存,当接收到数据处理模块发送的读取状态标志(包括通讯录数据中的电话号码或者短信数据中的短信号码)后,将所属缓存的数据段发送给所述移动终端;
数据透传模块,用于将所述数据接收模块发送来的数据透传给所述SIM卡,或者将SIM卡发送来的数据透传给移动终端。
其中,数据发送模块一般是根据移动应用客户端的***内核发送来的指令来发送处理后的第三方扩展业务数据的,但本发明不限于此,根据需要数据发送模块也可以主动发送处理后的第三方扩展业务数据。
以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。