移动终端与智能卡通信的方法及装置与流程

文档序号:17441978发布日期:2019-04-17 04:53阅读:176来源:国知局
移动终端与智能卡通信的方法及装置与流程

本发明涉及计算机应用开发技术领域,具体地涉及一种移动终端与智能卡通信的方法及装置。



背景技术:

pc/sc规范由微软公司与世界其它著名的智能卡厂商组成的pc/sc工作组所提出的,pc/sc规范是一个基于windows平台的标准用户接口(api),提供了从个人电脑(personalcomputer)到智能卡(smartcard)的整合环境.smartcardapi允许用户同安全模块进行通讯,而pc/sc则为windows应用同smartcard通讯提供了接口。

随着移动智能终端(包括智能手机等)的兴起以及迅猛发展,移动支付愈加普及,以往基于pc/sc规范的windows平台的智能卡应用也需要适用于android平台。目前相关技术中是提出了如下的设想:既然可以提出一种基于windows平台的标准用户接口(api)规范,那么同样可以提出基于android平台的api规范。

但是,本申请的发明人在实践本申请的过程中发现上述相关技术方案中至少存在如下的缺陷:需要耗费大量的人力物力去重新拟定一份新的api规范,成本耗费巨大且无法实现软件的复用。



技术实现要素:

本发明实施例的目的是提供一种移动终端与智能卡通信的方法及装置,用以至少解决目前相关技术中重新拟定接口规范所导致的研发压力和成本耗费过大的问题。

为了实现上述目的,本发明实施例一方面提供一种终端与智能卡通信的方法,应用于终端,所述终端设置有用于与智能卡通讯的智能卡接口,该方法包括:获取用户操作数据,并将所述用户操作数据封装成对应电脑操作系统的电脑用户操作数据;基于pc/sc接口模块,将所述电脑用户操作数据转换为对应移动终端操作系统的终端智能卡数据,并将所述终端智能卡数据发送至所述智能卡接口;基于所述智能卡接口,将所述终端智能卡数据发送至与所述移动终端通讯的智能卡。

在一些实施方式中,所述电脑操作系统包括windows操作系统,以及所述移动终端操作系统包括安卓操作系统。

在一些实施方式中,所述基于pc/sc接口模块,将所述电脑用户操作数据转换为对应移动终端操作系统的终端智能卡数据包括:基于集成在所述pc/sc接口模块中的pc/sc通信协议,将所述电脑用户操作数据转换为电脑智能卡数据;以及将所述电脑智能卡数据转换为对应移动终端操作系统的终端智能卡数据。

在一些实施方式中,所述pc/sc接口模块还包括符合安卓接口定义语言的aidl接口,其中所述将所述电脑智能卡数据转换为对应移动终端操作系统的终端智能卡数据包括:基于所述aidl接口,将所述电脑智能卡数据转换为对应安卓操作系统的终端智能卡数据。

在一些实施方式中,所述基于所述智能卡接口,将所述终端智能卡数据发送至与所述移动终端通讯的智能卡包括:基于所述智能卡接口,将所述终端智能卡数据发送至移动终端中的安全元件,其中所述安全元件包括以下中的一者或多者的安全模块:sim模块、sam模块以及nfc模块;基于所述安全元件,将所述终端智能卡数据发送至所述智能卡接口。

本发明实施例另一方面提供一种终端与智能卡通信的装置,移动终端包括智能手机,其中所述移动终端与智能卡通信的装置包括:电脑数据封装单元,用于获取用户操作数据,并将所述用户操作数据封装成对应电脑操作系统的电脑用户操作数据;pc/sc接口模块,用于将所述电脑用户操作数据转换为对应移动终端操作系统的终端智能卡数据,并将所述终端智能卡数据发送至智能卡接口;以及所述智能卡接口还用于将所述终端智能卡数据发送至与所述移动终端通讯的智能卡。

在一些实施方式中,所述电脑操作系统包括windows操作系统,以及所述移动终端操作系统包括安卓操作系统。

在一些实施方式中,所述pc/sc接口模块包括:卡数据转换单元,用于基于集成在所述pc/sc接口模块中的pc/sc通信协议,将所述电脑用户操作数据转换为电脑智能卡数据;以及系统数据转换单元,用于将所述电脑智能卡数据转换为对应移动终端操作系统的终端智能卡数据。

在一些实施方式中,所述pc/sc接口模块还包括符合android接口定义语言的aidl接口,用于将所述电脑智能卡数据转换为对应安卓操作系统的终端智能卡数据。

在一些实施方式中,所述智能卡接口用于将所述终端智能卡数据发送至移动终端中的安全元件,其中所述安全元件包括以下中的一者或多者的安全模块:sim模块、sam模块以及nfc模块;以及基于所述安全元件,将所述终端智能卡数据发送至所述智能卡接口。

通过上述技术方案,提出了将用户操作数据封装成对应电脑操作系统的电脑用户操作数据,然后应用pc/sc接口模块将电脑用户操作数据转换为对应移动终端操作系统的终端智能卡数据,并将终端智能卡数据发送至智能卡接口,以实现终端智能卡数据发送至与移动终端通讯的智能卡。由此,将在电脑系统平台上成熟应用的pc/sc智能卡应用通过接口封装技术复用,只需简单的接口方式的修改就能够实现在移动智能终端与智能卡之间的通信,而无需重新拟定接口规范,降低了研发压力和研发成本。

本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:

图1是本发明一实施例的移动终端与智能卡通信的方法的流程图;

图2a是本发明一实施例的移动终端与智能卡通信的方法的原理结构示意图;

图2b是本发明一实施例的移动终端与智能卡通信的方法的原理流程示意图;

图3是本发明一实施例的移动终端与智能卡通信的装置的结构框图。

具体实施方式

以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。

如图1所示,是本发明一实施例的移动终端与智能卡通信的方法,包括:

s11、获取用户操作数据,并将用户操作数据封装成对应电脑操作系统的电脑用户操作数据。

关于本发明实施例方法的执行主体,其可以是移动终端,例如智能手机。需说明的是,目前在电脑系统平台(例如windows)与智能卡之间通讯是采用的pc/sc规范应用已经是目前较为成熟的技术了,而本发明实施例是旨在提供一全新的用于实现在移动终端与智能卡之间进行通信的技术方案。

关于本发明实施例的用户操作数据的获取,可以是通过接收用户对移动终端或移动终端的app的特定操作所产生的数据。关于电脑用户操作数据的封装方式,其可以是直接将电脑应用植入移动终端或移动终端的app,从而用户操作所植入的该电脑应用便可实现电脑用户操作数据的获取,其还可以是基于数据协议将用户操作数据转换而成的,且以上实施方式都属于本发明的保护范围内。

其中,移动终端的类型可以是智能手机等,在其上能够搭建相应的移动终端操作系统平台,例如安卓操作系统等。以及,智能卡接口可以是移动终端所自带的智能卡接口,在android系统中,所有同安全元件(se,secureelement),例如sim,sam,nfc等安全模块,进行的通讯都可以是通过智能卡接口(smartcardapi)进行的。

s12、基于pc/sc接口模块,将电脑用户操作数据转换为对应移动终端操作系统的终端智能卡数据,并将终端智能卡数据发送至所述智能卡接口。

具体的,可以是首先,基于集成在pc/sc接口模块中的pc/sc通信协议,将电脑用户操作数据转换为电脑智能卡数据,该pc/sc通信协议可以是通过复用在电脑中所用的指令、代码或模块所实现的;然后,将电脑智能卡数据转换为对应移动终端操作系统的终端智能卡数据。在一些实施方式中,当移动终端操作平台是安卓时,pc/sc接口模块还包括符合android接口定义语言的aidl接口,由此通过该aidl接口将电脑智能卡数据转换为对应移动终端操作系统的终端智能卡数据。由此,能够将pc/sc接口移植到android操作系统平台上,让基于windows系统平台pc/sc规范的智能卡应用工作在android操作系统上。

s13、基于智能卡接口,将终端智能卡数据发送至与移动终端通讯的智能卡。

具体的,可以是基于智能卡接口,将终端智能卡数据发送至移动终端中的安全元件,其中该安全元件包括以下中的一者或多者的安全模块:sim模块、sam模块以及nfc模块;进而,通过该安全元件,将终端智能卡数据发送至智能卡接口。

在一些实施方式中,考虑到android操作系统以及windows操作系统的内核都是基于linux,本实施例还可以是推荐采用基于linux的pc/sc接口。由此,使得当应用需要在windows操作平台上使用时,可以在该pc/sc接口外部封装一套windows接口;当应用需要工作在android操作系统时,则封装一份android接口。因此,就可以实现接口的平台无关性,只要有需要,可以适用于任何基于linux的平台,且现存的基于windows平台的智能卡应用只需要经过简单的封装操作,就可以顺利的工作在android系统上,从而简单有效地实现在安卓移动终端与智能卡通信。

如图2a和2b,其示出的是本发明一实施例的移动终端与智能卡通信的方法的原理结构和原理流程,在android系统中,所有同secureelement安全元件(比如sim,sam,nfc等安全模块)进行的通讯都是通过智能卡接口smartcardapi进行的。为了在android设备上提供pc/sc接口,因此需要为pc/sc接口提供智能卡读卡器驱动程序(ifdhandler)。ifdhandler控制器负责将智能卡应用(例如opensc)通过pc/sc接口下发的apdu(应用协议数据单元)包路由到smartcardapi,再由smartcardapi负责同secureelement通讯。

关于pc/sc接口的.so库文件集成到system/lib/libpcsclite.so文件中,app层的智能卡应用apk可以直接调用该库文件,所有可用的接口定义在winscard.h文件中。

ifdhandler通过aidl方式同smartcardservice通讯。需要在frameworks层新增smartcardsystemservice.java文件,该service需要实现ifdhandler中的smartcardsystemservice.aidl中的所有接口,且需要在systemserver中启动smartcardsystemservice。在smartcardsystemservice.java的构造方法中,启动smartcardservice,同时需要新增一个pcscsmartcardservice.aidl文件。然后在smartcardservice中实现pcscsmartcardservice.aidl的所有接口。这样的话,就可以实现ifdhandler同smartcardservice通讯。

在本实施例中,android系统中有一套smartcardapi接口可以直接访问sc卡。因此,在pc/sc接口中,添加了一套smartcardservice的aidl接口,然后pc/sc驱动程序通过aidl将应用程序下发的卡接口数据通过smartcardapi下发给卡,从而实现sc卡通讯。

首先,应用程序调用标准的pc/sc接口(wincardapi)。pc/sc接口将这些wincardapi转换成android系统已有的smartcardapi,通过aidl方式发送到smartcardservice,再由smartcardservice同卡进行通讯;然后,待命令执行完成后,再返回给pc/sc,最后上报给应用程序。

通过本发明实施例,可以很方便的实现现有的基于windows平台的智能卡应用移植到android系统中,而不必特意规范一种基于android系统的基于pc/sc规范的api。当然,如果是现阶段新开发的基于android系统的智能卡应用,建议直接使用智能卡api。

如图3所示,本发明一实施例的移动终端与智能卡通信的装置30,移动终端包括智能手机,其中所述移动终端与智能卡通信的装置包括:

电脑数据封装单元301,用于获取用户操作数据,并将所述用户操作数据封装成对应电脑操作系统的电脑用户操作数据;

pc/sc接口模块302,用于将所述电脑用户操作数据转换为对应移动终端操作系统的终端智能卡数据,并将所述终端智能卡数据发送至智能卡接口303;以及

所述智能卡接口303还用于将所述终端智能卡数据发送至与所述移动终端通讯的智能卡。

在一些实施方式中,所述电脑操作系统包括windows操作系统,以及所述移动终端操作系统包括安卓操作系统。

在一些实施方式中,所述pc/sc接口模块302包括:卡数据转换单元,用于基于集成在所述pc/sc接口模块中的pc/sc通信协议,将所述电脑用户操作数据转换为电脑智能卡数据;以及系统数据转换单元,用于将所述电脑智能卡数据转换为对应移动终端操作系统的终端智能卡数据。

在一些实施方式中,所述pc/sc接口模块302还包括符合android接口定义语言的aidl接口,用于将所述电脑智能卡数据转换为对应安卓操作系统的终端智能卡数据。

在一些实施方式中,所述智能卡接口用于将所述终端智能卡数据发送至移动终端中的安全元件,其中所述安全元件包括以下中的一者或多者的安全模块:sim模块、sam模块以及nfc模块;以及基于所述安全元件,将所述终端智能卡数据发送至所述智能卡接口。

关于本发明实施例的移动终端与智能卡通信的装置的细节,可以参照上文移动终端与智能卡通信的方法实施例的描述,从而实现与上述移动终端与智能卡通信的方法实施例相同或相似的技术效果,故在此便不再赘述。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。

本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。

本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。

上述本申请序号仅仅为了描述,不代表实施场景的优劣。

以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1