CN102546721A - 物理智能卡及在其中进行虚拟智能卡通讯的方法 - Google Patents

物理智能卡及在其中进行虚拟智能卡通讯的方法 Download PDF

Info

Publication number
CN102546721A
CN102546721A CN2010106214063A CN201010621406A CN102546721A CN 102546721 A CN102546721 A CN 102546721A CN 2010106214063 A CN2010106214063 A CN 2010106214063A CN 201010621406 A CN201010621406 A CN 201010621406A CN 102546721 A CN102546721 A CN 102546721A
Authority
CN
China
Prior art keywords
smart card
virtual smart
communications protocol
virtual
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2010106214063A
Other languages
English (en)
Other versions
CN102546721B (zh
Inventor
柴洪峰
康建明
鲁志军
孟宏文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Unionpay Co Ltd
Original Assignee
China Unionpay Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Unionpay Co Ltd filed Critical China Unionpay Co Ltd
Priority to CN201010621406.3A priority Critical patent/CN102546721B/zh
Publication of CN102546721A publication Critical patent/CN102546721A/zh
Application granted granted Critical
Publication of CN102546721B publication Critical patent/CN102546721B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本发明提供一种物理智能卡及在其中进行虚拟智能卡通讯的方法。该物理智能卡包括:硬件层,所述硬件层包括物理智能卡的硬件设备;运行在所述硬件层上的操作系统层;运行在所述操作系统层上的虚拟智能卡管理层;以及运行在所述虚拟智能卡管理层上的虚拟智能卡层,所述虚拟智能卡层包括至少二张虚拟智能卡;每一所述虚拟智能卡内设有通讯模块,所述通讯模块包括:硬件虚拟层,包括虚拟化的所述硬件设备;运行在所述硬件虚拟层上的传输层,用于建立所述虚拟智能卡之间的通讯连接通道;运行在所述传输层上的应用层,其设有至少一个通讯协议单元。

Description

物理智能卡及在其中进行虚拟智能卡通讯的方法
技术领域
本发明涉及物理智能卡及在其中进行虚拟智能卡通讯的方法。
背景技术
智能卡已经广泛地应用在多种领域,如移动通讯系统中手机使用的SIM卡、银行存取款使用的借记卡或信用卡、乘坐公共交通工具使用的公交卡、记录社保信息的社保卡等。现有大多的上述智能卡只能作为单一卡种使用,如仅能作为SIM卡或公交卡使用,往往导致个人需要携带大量的智能卡,不但不利于人们携带,也不利于人们对多张智能卡的保存与管理,给人们的使用带来诸多不便。
因此,现有的一些智能卡内设置多个应用文件,每个应用文件存储有不同领域的应用,如一些应用文件对应的程序用于移动通讯,另一些应用文件对应的程序用于保存银行帐号信息等。因此,现有的一些物理智能卡中设置多张虚拟智能卡,该种物理智能卡的层次结构如图1所示:
物理智能卡由下至上设有硬件层11、操作系统层12、虚拟智能卡管理层13以及虚拟智能卡层14,其中虚拟智能卡层14内设有两张虚拟智能卡20′、40′,当然,也可设置更多的虚拟智能卡。
虚拟智能卡管理层13对两张虚拟智能卡20′、40′进行管理,包括给每一虚拟智能卡20′、40′分配单独的存储空间以及单独占用的I/O接口、设置每一虚拟智能卡20′、40′的访问权限,确保虚拟智能卡20′、40′在独占的内存空间内运行,从而确保每一虚拟智能卡20′、40′相互独立地工作,且一张虚拟智能卡内的数据不会被另一张虚拟智能卡篡改。从软件上实现虚拟智能卡的安全隔离,可确保每一虚拟智能卡20′、40′安全独立地运行,从而实现物理智能卡的“一卡多用”。
但是,该物理智能卡内没有设置多张虚拟智能卡之间相互通讯的通讯机制,同一张物理智能卡内的多张虚拟智能卡间不能相互通讯,给物理智能卡的应用带来不便。
例如,一张物理智能卡内的两张虚拟智能卡分别为收单银行发行的SAM(Secure access module,安全存储模块)卡以及发卡银行发行的银行卡,即普通的借记卡或信用卡。由于SAM卡为POS机在进行金融电子支付时为了保证交易安全而使用的安全存储模块,因此人们在使用银行卡进行电子支付时,银行卡需要与SAM卡进行通讯,SAM卡需要对银行卡提供的信息进行安全验证。
若同一张物理智能卡上集成了SAM卡以及银行卡,则需要实现SAM卡与银行卡之间的通讯,也就是同一张物理智能卡内两张虚拟智能卡之间的通讯。由于现有的物理智能卡无法实现这一功能,给虚拟智能卡的使用造成限制。
发明内容
有鉴于此,本发明的目的在于提供一种物理智能卡及在其中进行虚拟智能卡通讯的方法,在物理智能卡中的虚拟智能卡之间实现通讯。
本发明提供一种物理智能卡,包括:
硬件层,所述硬件层包括物理智能卡的硬件设备;运行在所述硬件层上的操作系统层;运行在所述操作系统层上的虚拟智能卡管理层;以及运行在所述虚拟智能卡管理层上的虚拟智能卡层,所述虚拟智能卡层包括至少二张虚拟智能卡;
每一所述虚拟智能卡内设有通讯模块,所述通讯模块包括:
硬件虚拟层,包括虚拟化的所述硬件设备;
运行在所述硬件虚拟层上的传输层,用于建立所述虚拟智能卡之间的通讯连接通道;
运行在所述传输层上的应用层,其设有至少一个通讯协议单元。
优选地,在本发明的物理智能卡中,所述通讯协议单元为APDU通讯协议单元或HTTP通讯协议单元或FTP通讯协议单元。
优选地,在本发明的物理智能卡中,所述传输层包括TCP通讯协议单元和UDP通讯协议单元中的至少一个以及Socket函数单元,其中Socket函数单元存储有通讯使用的函数,以便应用层调用这些函数建立虚拟智能卡之间的通讯连接通道。
本发明还提供一种上述的任一物理智能卡中进行虚拟智能卡通讯的方法,包括以下步骤:
A、在源虚拟智能卡和目标智能卡之间建立通讯连接通道;
B、源虚拟智能卡将需要传送的数据传送至所述应用层(23)的通讯协议单元(33),所述通讯协议单元(33)对接收的数据进行封装后传送至所述传输层(22)的TCP通讯协议单元(31),所述TCP通讯协议单元(31)将所接收的数据再次封装后传送至所述硬件虚拟层(21),所述硬件虚拟层(21)将所接收的数据传送至目标虚拟智能卡;
C、所述目标虚拟智能卡的硬件虚拟层(41)接收数据后,将所接收的数据传送至传输层(42)的TCP通讯协议单元(44),TCP通讯协议单元(44)对所接收的数据进行解析后传送至应用层(43)的通讯协议单元(45),所述通讯协议单元(45)对所接收的数据进行解析并获取源虚拟智能卡所发送的数据。
优选地,在本发明的虚拟智能卡通讯方法中,
步骤B进一步包括:所述源虚拟智能卡的硬件虚拟层(21)接收到数据后,在所接收的数据上增加所述源虚拟智能卡的编号信息及所述目标虚拟智能卡的编号信息;
步骤C进一步包括:所述目标虚拟智能卡的硬件虚拟层(41)接收到所述源虚拟智能卡所发送的数据后,去除所述源虚拟智能卡的编号信息及所述目标虚拟智能卡的编号信息。
优选地,在本发明的虚拟智能卡通讯方法中,步骤A进一步包括:
D、所述源虚拟智能卡首次向所述目标虚拟智能卡发送激活命令与复位命令,所述源虚拟智能卡收到所述目标智能卡返回的复位应答数据后建立与所述目标虚拟智能卡的通讯连接通道;
E、向所述源虚拟智能卡发起协议与参数选择进程以确定所使用的通讯协议,判断所述源虚拟智能卡和所述目标虚拟智能卡中是否均具有应用所确定的通讯协议的通讯单元,如果有共同支持的通讯协议则建立通讯连接通道,否则发送失败消息。
优选地,在本发明的虚拟智能卡通讯方法中,步骤E进一步包括:
确定使用APDU通讯协议;
检测所述源虚拟智能卡及所述目标虚拟智能卡中是否均设有APDU通讯协议单元或HTTP通讯协议单元中的至少一个,以及TCP通讯协议单元,如果是HTTP通讯协议,则必须通过适当的协议转换来支持APDU协议,如果匹配成功则建立通讯连接通道,否则发送失败消息。
优选地,在本发明的虚拟智能卡通讯方法中,步骤E进一步包括:
确定使用HTTP通讯协议;
检测所述源虚拟智能卡及所述目标虚拟智能卡中是否均设有HTTP通讯协议单元或APDU通讯协议单元中至少一个,以及TCP通讯协议单元;如果是APDU通讯协议,则必须通过适当的协议转换来支持HTTP协议,如果匹配失败则发送失败消息:否则进行以下步骤:
所述源虚拟智能卡向所述目标虚拟智能卡发送同步连接请求,所述目标虚拟智能卡接收所述同步连接请求后,向所述源虚拟智能卡发送同步确认数据,所述源虚拟智能卡再次发送同步连接请求并再次确认接收同步确认数据;
建立源虚拟智能卡和目标智能卡之间的通讯连接通道。
优选地,在本发明的虚拟智能卡通讯方法中,进一步包括:
所述源虚拟智能卡确定向所述目标虚拟智能卡发送完需要传送的数据之后,向目标虚拟智能卡发送关闭通讯连接通道的请求,之后关闭通讯连接通道
本发明的技术效果在于:可实现同一物理智能卡中多张虚拟智能卡之间的通讯,减小虚拟智能卡的使用限制。
附图说明
图1为现有技术中的物理智能卡的层次结构图;
图2示出了根据本发明实施方式的物理智能卡中的虚拟智能卡的通讯模块的层级结构;
图3示出了根据本发明的虚拟智能卡通讯方法;
图4示出了根据本发明的虚拟智能卡通讯方法的第一实施方式;
图5示出了根据本发明的虚拟智能卡通讯方法的第二实施方式。
具体实施方式
下面将结合附图详细描述本发明的优选实施例,在附图中相同的参考标号表示相同的元件。
本发明的物理智能卡具有硬件层11、操作系统层12、虚拟智能卡管理层13以及虚拟智能卡层14,其中硬件层11包括物理智能卡的硬件设备,如存储器、I/O接口等。操作系统层12运行在硬件层上,包括物理智能卡的操作系统。
虚拟智能卡管理层13运行在操作系统层上,用于对虚拟智能卡层中的多张虚拟智能卡进行管理,包括设置每一虚拟智能卡的单独占用存储空间、内存空间、I/O接口等,并设置每一虚拟智能卡的访问权限,即设置虚拟智能卡的安全机制。
虚拟智能卡层14运行在虚拟智能卡管理层13上,其设置有多张虚拟智能卡20、40,每一虚拟智能卡分别具有与现有单一物理智能卡相同的功能,可实现各种应用,如通讯、公交计费等。每一虚拟智能卡具有自己的操作系统,并且独立运行自己的应用程序以实现各自的功能。虚拟智能卡20、40之间通过虚拟智能卡管理层13、操作系统层12和硬件层11进行数据传输。
在本发明中,每一虚拟智能卡内设有通讯模块,该通讯模块包括多个层次,虚拟智能卡的通讯模块层次结构图如图2所示。
通讯模块从下至上依次包括硬件虚拟层21、传输层22以及应用层23。硬件虚拟层21包括虚拟化的物理智能卡硬件设备,所谓虚拟化的硬件设备,是对硬件设备进行虚拟化处理,包括对存储器的物理地址进行映射,形成虚拟存储地址,并且将根据虚拟存储地址对存储器进行分区,同时对I/O接口进行编号等。硬件设备虚拟化后,硬件虚拟层21可使用相应的虚拟地址通过虚拟智能卡管理层13对存储器进行管理,也使用编号对I/O接口进行管理与使用。
传输层22运行在硬件虚拟层21上,用于建立虚拟智能卡之间的通讯连接通道,其设有TCP通讯协议单元31以及Socket函数单元32。TCP通讯协议单元31负责为数据传输提供可靠的连接,如数据确认、重传机制等。TCP通讯协议单元31使用TCP/IP通讯协议,并将所接收的数据根据TCP/IP通讯协议进行封装,在数据中增加TCP标记。同时,传输层22中还可以设有UDP通讯协议单元(未示出)。Socket函数单元32存储有通讯使用的函数,以便应用层23调用这些函数建立通讯连接通道。具体而言,Socket函数单元32封装了TCP协议的操作方法,是应用层23使用TCP协议的函数接口。同时Socket函数单元32为应用层23提供独立于具体协议的接口,使得当采用UDP通讯协议时,应用层23仍然调用Socket函数单元32来建立通讯连接通道。
应用层23运行在传输层22上,用于对虚拟智能卡所发送的数据进行封装。应用层23设有至少一个通讯协议单元,如图所示,设置有APDU通讯协议单元33以及HTTP通讯协议单元34。虽然在图2示出包括APDU通讯协议单元33以及HTTP通讯协议单元34,但是本发明并不局限于此,应用层23可以设有APDU通讯协议单元、HTTP通讯协议单元和FTP通讯协议单元中的一个或多个。
虚拟智能卡通讯使用选择其中一个通讯协议单元对数据进行封装,即在数据中增加相应通讯协议特征数据。当然,若虚拟智能卡接收到数据,则根据封装数据的通讯协议对所接收的数据进行解析,也就是将源虚拟智能卡所增加的通讯协议特征数据去除。
例如,虚拟智能卡使用APDU通讯协议单元33对发送的数据进行封装,接收数据的虚拟智能卡的APDU通讯协议单元则根据APDU通讯协议将所增加的APDU特征数据去除,从而获得源虚拟智能卡所发送的数据。
由于每一虚拟智能卡均设有通讯模块,虚拟智能卡之间可通过通讯模块实现相互间的通讯。另外通讯模块内设有通讯协议单元,不同的虚拟智能卡可通过相同类型的通讯协议单元对数据进行封装及解析,实现虚拟智能卡对数据的识别。并且,传输层能建立虚拟智能卡之间的通讯连接通道,确保虚拟智能卡之间的通讯流畅。
这样,同一物理智能卡内的多张虚拟智能卡能相互通讯,可扩宽物理智能卡的使用场合,减少虚拟智能卡的使用限制。
其次,应用层的通讯协议单元为APDU通讯协议单元或HTTP通讯协议单元或FTP通讯协议单元。这样,应用层可使用多种不同的协议对虚拟智能卡所传送的数据进行封装及解析,使虚拟智能卡具有较强的兼容性。
传输层设有TCP通讯协议单元和/或UDP通讯协议单元。虚拟智能卡使用目前通用的TCP通讯协议和UDP通讯协议进行数据传输,不单降低虚拟智能卡的开发难度,还增强虚拟智能卡的通用性。
图3示出了根据本发明的虚拟智能卡通讯方法。如图所示,物理智能卡的虚拟智能卡层设有两张虚拟智能卡,分别是虚拟智能卡20及虚拟智能卡40,其中虚拟智能卡20向虚拟智能卡40发送数据,因此虚拟智能卡20为源虚拟智能卡,虚拟智能卡40为目标虚拟智能卡。
首先,先在虚拟智能卡20与虚拟智能卡40之间建立通讯连接通道。
在虚拟智能卡20与40之间建立通讯连接通道之后,虚拟智能卡20发送数据时,选择使用应用层23中的APDU通讯协议单元33对数据进行封装,即APDU通讯协议单元33根据APDU通讯协议的特性在接收的数据中增加特性数据,如帧头、帧尾等。APDU通讯协议单元33对数据封装完毕后,将封装后的数据传送至传输层22。
传输层22接收到数据后,由TCP通讯协议单元31对所接收的数据进行封装,即根据TCP/IP通讯协议在数据中增加TCP标记。
传输层22将数据封装后传送至硬件虚拟层21,硬件虚拟层21应用虚拟的硬件设备通过虚拟智能卡管理层13、操作系统层12和硬件层11将所接收的数据传送至虚拟智能卡40的硬件虚拟层41中。优选地,在本发明中,硬件虚拟层21不对所接收的数据进行封装处理,因此硬件虚拟层21是将数据“透明”地传送。
虚拟智能卡20的硬件虚拟层21与虚拟智能卡40的硬件虚拟层41之间使用物理智能卡自行定义的虚拟智能卡通讯协议进行通讯,虚拟智能卡的通讯协议由虚拟智能卡管理层设定,如设定虚拟智能卡间数据传送格式、数据传送方式、数据传送通道等。
虚拟智能卡40的硬件虚拟层41接收虚拟智能卡20发送的数据后,将数据传送至传输层42的TCP通讯协议单元44,TCP通讯协议单元44对所接收的数据进行解析,即去除TCP通讯协议单元31所增加的TCP标记。因此,TCP通讯协议单元31与TCP通讯协议单元44之间是使用TCP通讯协议进行通讯的。
传输层42将接收的数据进行解析后,将解析后的数据传送至应用层43的APDU通讯协议单元45,APDU通讯协议单元45对所接收到的数据进行解析,即将APDU通讯协议单元33所增加的特征数据去除,获得虚拟智能卡20所发送的原始数据。这样,完成一次数据发送、接收过程。
虚拟智能卡40接收到数据后,对所接收的数据进行处理并返回相应的数据,其工作过程与上述的工作过程为相反操作。
虽然在图3中示为应用APDU通讯协议单元33,但是同样可以选用HTTP通讯协议单元或FTP通讯协议单元,此时利用相应的通讯协议来对数据进行协议转换。
经过两张虚拟智能卡应用层、传输层以及硬件虚拟层的封装、传送、解析过程能确保目标虚拟智能卡可正确地接收到源虚拟智能卡所发送的数据。
如图3所示,物理智能卡中仅设置两个虚拟智能卡20、40,上述方法可确保虚拟智能卡20、40间的准确通讯。然而若物理智能卡中设有三张或三张以上的虚拟智能卡,源虚拟智能卡的硬件虚拟层发送数据时,需要在数据中增加源虚拟智能卡的编号信息以及目标虚拟智能卡的编号信息,硬件虚拟层可根据目标虚拟智能卡的编号信息将数据准确地发送至相应的目标虚拟智能卡。目标虚拟智能卡接收到数据后,硬件虚拟层可根据源虚拟智能卡的编号信息获知所接收的数据由哪一虚拟智能卡发出。同时,硬件虚拟层需要将源虚拟智能卡以及目标虚拟智能卡的编号信息去除后传送至传输层。
因此,源虚拟智能卡所发送的数据可根据目标虚拟智能卡的编号信息正确找出数据所传送的虚拟智能卡,且目标虚拟智能卡接收到数据后,可通过源虚拟智能卡的编号信息可获知所接收的数据由哪一虚拟智能卡所发送。这样,可确保在多于两张虚拟智能卡的物理智能卡中,多张虚拟智能卡通讯的准确性。
图4示出了虚拟智能卡通讯方法的第一实施方式。在该第一实施方式,虚拟智能卡20与虚拟智能卡40之间的通讯默认应用APDU通讯协议进行通讯。如图所示,本实施例中虚拟智能卡20为源虚拟智能卡,虚拟智能卡40为目标虚拟智能卡。
源虚拟智能卡20与目标虚拟智能卡40通讯时,源虚拟智能卡20作为主机,其发起通讯,目标虚拟智能卡40作为从机,只能等待接收源虚拟智能卡20发送的APDU命令。
源虚拟智能卡20与目标虚拟智能卡40通讯时,首先由源虚拟智能卡20向目标虚拟智能卡40发送激活命令,即执行步骤S1,然后源虚拟智能卡20执行步骤S2,还向目标虚拟智能卡40发送复位命令。目标虚拟智能卡20接收到激活命令与复位命令后,向源虚拟智能卡20返回复位应答数据,即执行步骤S3。
此时,目标虚拟智能卡40不希望使用默认的传输协议,可执行步骤S4,发起协议与参数选择(Protocol and Parameter Select,PPS)进程,决定本次通讯所使用的通讯协议。PPS是智能卡与外部实体通讯时的一个调整性能或参数的过程协议,其运行过程是基于特定的物理接口,例如在ISO7816接口上缺省的是APDU协议,在USB接口上缺省的是HTTP协议等。鉴于如何根据物理接口来判断所使用的通讯协议为本领域的公知常识,所以在此不进行赘述
此时检测源虚拟智能卡20及所述目标虚拟智能卡40中是否均设有使用所要选择的传输协议的通讯协议单元。如果有,则进行步骤S5,即在源虚拟智能卡20与目标虚拟智能卡40之间建立通讯连接通道,否则发送失败消息告之用户。
具体而言,如果确定使用APDU通讯协议;检测所述源虚拟智能卡及所述目标虚拟智能卡中是否均设有APDU通讯协议单元或HTTP通讯协议单元中的至少一个,以及TCP通讯协议单元,如果是HTTP通讯协议,则必须通过适当的协议转换来支持APDU协议,如果匹配成功则建立通讯连接通道,否则发送失败消息。
如果确定使用HTTP通讯协议;检测所述源虚拟智能卡及所述目标虚拟智能卡中是否均设有HTTP通讯协议单元或APDU通讯协议单元中至少一个,以及TCP通讯协议单元;如果是APDU通讯协议,则必须通过适当的协议转换来支持HTTP协议,如果匹配失败则发送失败消息:否则进行以下步骤。
由于对于本利用技术来说,如可通过适当的协议转换来支持APDU协议和HTTP协议为公知常识,因此本文中在此不再赘述。
在图4所示的实施例中,确定了使用APDU通讯协议进行传输,则为判断源虚拟智能卡20与目标虚拟智能卡40是否均具有APDU通讯协议单元或HTTP通讯协议单元中的一个,和TCP通讯协议单元。
在APDU通讯协议下,虚拟智能卡之间的通讯是通过APDU命令与APDU响应实现的,因此在源虚拟智能卡20与目标虚拟智能卡40之间的通讯连接通道建立后,源虚拟智能卡20执行步骤S6,向目标虚拟智能卡40发送APDU命令,目标虚拟智能卡40接收到APUD命令后,执行步骤S7,向目标虚拟智能卡40返回APDU响应,如此不断循环,直至源虚拟智能卡20与目标虚拟智能卡40的通讯结束。
由此可见,通过在每一虚拟智能卡中设置通讯模块,虚拟智能卡即可通过应用层、传输层以及硬件虚拟层将数据传送至另一虚拟智能卡中。并且,虚拟智能卡通过使用常用的通讯协议对发送的数据进行封装或解析,不单可确保数据传送的准确性,还有利于增强虚拟智能卡的兼容性。
图5示出了虚拟智能卡通讯方法的第二实施方式。在该第二实施方式中,源虚拟智能卡50的应用层与目标虚拟智能卡60的应用层之间使用HTTP通讯协议进行通讯。如图所示,本实施例的物理智能卡中设置两张虚拟智能卡,分别是源虚拟智能卡50以及目标虚拟智能卡60。本实施例的物理智能卡的层次结构与第一实施例层次结构相同,且每一虚拟智能卡内均设置通讯模块,通讯模块也包括由下至上设置的硬件虚拟层、传输层以及应用层。
本实施例中,源虚拟智能卡50的应用层使用HTTP通讯协议单元对发送的数据进行封装,目标虚拟智能卡60也使用HTTP通讯协议对接收的数据进行解析。源虚拟智能卡50与目标虚拟智能卡60之间的通讯原理与第一实施例相似,不再赘述。下面将详细介绍在源虚拟智能卡50以及目标虚拟智能卡60之间建立通讯连接通道的过程。在经历过图4中的步骤S1-S3,并且在步骤S4中确定使用HTTP协议且源虚拟智能卡50和目标虚拟智能卡60均具有HTTP通讯协议单元和TCP通讯协议单元之后,执行以下步骤:
首先源虚拟智能卡50向目标虚拟智能卡60发送同步建立请求,即执行步骤S11,目标虚拟智能卡60接收到同步建立请求后,向源虚拟智能卡50返回同步确认数据,即执行步骤S12。然后,源虚拟智能卡50执行步骤S13,再次向目标虚拟智能卡60发送同步连接请求,目标虚拟智能卡60接收到同步连接请求后,执行步骤S14,再次发送同步确认数据。经过两次的同步请求及同步确认后,源虚拟智能卡50与目标虚拟智能卡60即建立同步,并且执行步骤S15,建立通讯连接通道。
建立通讯连接通道后,源虚拟智能卡50与目标虚拟智能卡60均分配TCP缓冲区以及TCP变量,以维护通讯连接通道。随后,源虚拟智能卡50与目标虚拟智能卡60进行数据交换。
源虚拟智能卡50与目标虚拟智能卡60通讯时,目标虚拟智能卡60作为服务端,接收请求信息,而源虚拟智能卡50作为客户端,发起请求信息。因此,建立通讯连接通道后,源虚拟智能卡50首先发送请求信息,即执行步骤S16,目标虚拟智能卡60接收到请求信息后,向源虚拟智能卡50返回响应信息,即执行步骤S17。如此循环,直至通讯结束。
当目标虚拟智能卡60向源虚拟智能卡50发送最后一条响应信息后,执行步骤S18,向源虚拟智能卡50发送关闭通讯连接通道的请求,源虚拟智能卡50与目标虚拟智能卡60随即关闭通讯连接通道,源虚拟智能卡50与目标虚拟智能卡60通讯结束。
通过本发明的方法,同一张物理智能卡内的多张虚拟智能卡可相互通讯,扩大了虚拟智能卡的使用范围,也减少了虚拟智能卡的使用限制,让虚拟智能卡的使用更加方便。
当然,上述实施例仅是本发明较佳的实施方案,实际应用时还可以有更多的变化,例如,当在步骤S4中确定使用FTP通讯协议时,并且源虚拟智能卡和目标虚拟智能卡均具有FTP通讯协议单元和TCP通讯协议单元之后,源虚拟智能卡向目标虚拟智能卡发送FTP命令;源虚拟智能卡向目标虚拟智能卡返回FTP响应,之后建立通讯连接通道。或者可以在硬件虚拟层与传输层之间增设网络层以及数据链路层等,这些改变同样可以实现本发明的目的。
最后需要强调的是,本发明不限于上述实施方式,如虚拟智能卡建立通讯连接通道方式的改变、虚拟智能卡发送数据顺序的改变等变化也应该包括在本发明权利要求的保护范围内。
鉴于这些教导,熟悉本领域的技术人员将容易想到本发明的其它实施例、组合和修改。因此,当结合上述说明和附图进行阅读时,本发明仅仅由权利要求限定。

Claims (9)

1.物理智能卡,其特征在于,包括:
硬件层,所述硬件层包括物理智能卡的硬件设备;运行在所述硬件层上的操作系统层;运行在所述操作系统层上的虚拟智能卡管理层;以及运行在所述虚拟智能卡管理层上的虚拟智能卡层,所述虚拟智能卡层包括至少二张虚拟智能卡;
其特征在于:
每一所述虚拟智能卡内设有通讯模块,所述通讯模块包括:
硬件虚拟层,包括虚拟化的所述硬件设备;
运行在所述硬件虚拟层上的传输层,用于建立所述虚拟智能卡之间的通讯连接通道;
运行在所述传输层上的应用层,其设有至少一个通讯协议单元。
2.根据权利要求1所述的物理智能卡,其特征在于,所述通讯协议单元为APDU通讯协议单元或HTTP通讯协议单元或FTP通讯协议单元。
3.根据权利要求1或2所述的物理智能卡,其特征在于,所述传输层包括TCP通讯协议单元和UDP通讯协议单元中的至少一个以及Socket函数单元,其中Socket函数单元存储有通讯使用的函数,以便应用层调用这些函数建立虚拟智能卡之间的通讯连接通道。
4.在根据权利要求1-3中任一项中所述的物理智能卡中进行虚拟智能卡通讯的方法,其特征在于,包括以下步骤:
A、在源虚拟智能卡和目标智能卡之间建立通讯连接通道;
B、源虚拟智能卡将需要传送的数据传送至所述应用层(23)的通讯协议单元(33),所述通讯协议单元(33)对接收的数据进行封装后传送至所述传输层(22)的TCP通讯协议单元(31),所述TCP通讯协议单元(31)将所接收的数据再次封装后传送至所述硬件虚拟层(21),所述硬件虚拟层(21)将所接收的数据传送至目标虚拟智能卡;
C、所述目标虚拟智能卡的硬件虚拟层(41)接收数据后,将所接收的数据传送至传输层(42)的TCP通讯协议单元(44),TCP通讯协议单元(44)对所接收的数据进行解析后传送至应用层(43)的通讯协议单元(45),所述通讯协议单元(45)对所接收的数据进行解析并获取源虚拟智能卡所发送的数据。
5.根据权利要求4所述的虚拟智能卡通讯方法,其特征在于,
步骤B进一步包括:所述源虚拟智能卡的硬件虚拟层(21)接收到数据后,在所接收的数据上增加所述源虚拟智能卡的编号信息及所述目标虚拟智能卡的编号信息;
步骤C进一步包括:所述目标虚拟智能卡的硬件虚拟层(41)接收到所述源虚拟智能卡所发送的数据后,去除所述源虚拟智能卡的编号信息及所述目标虚拟智能卡的编号信息。
6.根据权利要求4或5所述的虚拟智能卡通讯方法,其特征在于,步骤A进一步包括:
D、所述源虚拟智能卡首次向所述目标虚拟智能卡发送激活命令与复位命令,所述源虚拟智能卡收到所述目标智能卡返回的复位应答数据后建立与所述目标虚拟智能卡的通讯连接通道;
E、向所述源虚拟智能卡发起协议与参数选择进程以确定所使用的通讯协议,判断所述源虚拟智能卡和所述目标虚拟智能卡中是否均具有应用所确定的通讯协议的通讯单元,如果有共同支持的通讯协议则建立通讯连接通道,否则发送失败消息。
7.根据权利要求6所述的虚拟智能卡通讯方法,其特征在于,步骤E进一步包括:
确定使用APDU通讯协议;
检测所述源虚拟智能卡及所述目标虚拟智能卡中是否均设有APDU通讯协议单元或HTTP通讯协议单元中的至少一个,以及TCP通讯协议单元,如果是HTTP通讯协议,则必须通过适当的协议转换来支持APDU协议,如果匹配成功则建立通讯连接通道,否则发送失败消息。
8.根据权利要求6所述的虚拟智能卡通讯方法,其特征在于,步骤E进一步包括:
确定使用HTTP通讯协议;
检测所述源虚拟智能卡及所述目标虚拟智能卡中是否均设有HTTP通讯协议单元或APDU通讯协议单元中至少一个,以及TCP通讯协议单元;如果是APDU通讯协议,则必须通过适当的协议转换来支持HTTP协议,如果匹配失败则发送失败消息:否则进行以下步骤:
所述源虚拟智能卡向所述目标虚拟智能卡发送同步连接请求,所述目标虚拟智能卡接收所述同步连接请求后,向所述源虚拟智能卡发送同步确认数据,所述源虚拟智能卡再次发送同步连接请求并再次确认接收同步确认数据;
建立源虚拟智能卡和目标智能卡之间的通讯连接通道。
9.根据权利要求4或5所述的虚拟智能卡通讯方法,其特征在于,进一步包括:
所述源虚拟智能卡确定向所述目标虚拟智能卡发送完需要传送的数据之后,向目标虚拟智能卡发送关闭通讯连接通道的请求,之后关闭通讯连接通道。
CN201010621406.3A 2010-12-31 2010-12-31 物理智能卡及在其中进行虚拟智能卡通讯的方法 Active CN102546721B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010621406.3A CN102546721B (zh) 2010-12-31 2010-12-31 物理智能卡及在其中进行虚拟智能卡通讯的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010621406.3A CN102546721B (zh) 2010-12-31 2010-12-31 物理智能卡及在其中进行虚拟智能卡通讯的方法

Publications (2)

Publication Number Publication Date
CN102546721A true CN102546721A (zh) 2012-07-04
CN102546721B CN102546721B (zh) 2015-11-25

Family

ID=46352677

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010621406.3A Active CN102546721B (zh) 2010-12-31 2010-12-31 物理智能卡及在其中进行虚拟智能卡通讯的方法

Country Status (1)

Country Link
CN (1) CN102546721B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102629215A (zh) * 2012-02-28 2012-08-08 东信和平智能卡股份有限公司 一种虚拟智能卡的通信方法及装置
CN108347440A (zh) * 2018-02-07 2018-07-31 飞天诚信科技股份有限公司 一种使scsi设备支持智能卡应用的方法及装置
CN110971696A (zh) * 2019-12-04 2020-04-07 楚天龙股份有限公司 一种实现虚拟电子卡通讯的系统和方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030115371A1 (en) * 2001-12-16 2003-06-19 You Sung Kang Method of setting communication environment between smart card and mobile terminal using layered architecture of protocol stack
US20050108571A1 (en) * 2003-09-29 2005-05-19 Axalto Inc. Secure networking using a resource-constrained device
CN1741655A (zh) * 2004-08-28 2006-03-01 乐金电子(中国)研究开发中心有限公司 移动通讯终端的数据访问方法
CN101018363A (zh) * 2007-02-09 2007-08-15 凤凰微电子(中国)有限公司 在智能卡上实现无线增值业务的方法
CN101568191A (zh) * 2009-05-06 2009-10-28 北京创毅视讯科技有限公司 移动终端上主从设备之间的数据通讯方法和移动终端
CN101853416A (zh) * 2010-06-02 2010-10-06 东信和平智能卡股份有限公司 设有虚拟智能卡的物理智能卡及虚拟智能卡的配置方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030115371A1 (en) * 2001-12-16 2003-06-19 You Sung Kang Method of setting communication environment between smart card and mobile terminal using layered architecture of protocol stack
US20050108571A1 (en) * 2003-09-29 2005-05-19 Axalto Inc. Secure networking using a resource-constrained device
CN1741655A (zh) * 2004-08-28 2006-03-01 乐金电子(中国)研究开发中心有限公司 移动通讯终端的数据访问方法
CN101018363A (zh) * 2007-02-09 2007-08-15 凤凰微电子(中国)有限公司 在智能卡上实现无线增值业务的方法
CN101568191A (zh) * 2009-05-06 2009-10-28 北京创毅视讯科技有限公司 移动终端上主从设备之间的数据通讯方法和移动终端
CN101853416A (zh) * 2010-06-02 2010-10-06 东信和平智能卡股份有限公司 设有虚拟智能卡的物理智能卡及虚拟智能卡的配置方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102629215A (zh) * 2012-02-28 2012-08-08 东信和平智能卡股份有限公司 一种虚拟智能卡的通信方法及装置
CN108347440A (zh) * 2018-02-07 2018-07-31 飞天诚信科技股份有限公司 一种使scsi设备支持智能卡应用的方法及装置
CN108347440B (zh) * 2018-02-07 2020-08-18 飞天诚信科技股份有限公司 一种使scsi设备支持智能卡应用的方法及装置
CN110971696A (zh) * 2019-12-04 2020-04-07 楚天龙股份有限公司 一种实现虚拟电子卡通讯的系统和方法

Also Published As

Publication number Publication date
CN102546721B (zh) 2015-11-25

Similar Documents

Publication Publication Date Title
CN205407821U (zh) 近场通信设备
US9462470B2 (en) Dual interface device for access control and a method therefor
US9191813B2 (en) System and method for managing OTA provisioning applications through use of profiles and data preparation
US9654180B2 (en) NFC-enable mobile device, NFC reader and NFC system for supporting a plurality of proximity services
EP2442254A2 (en) Near field communication device and method for near field communication
JP6022083B2 (ja) 決済デバイスの金融チップ制御方法
US20140359714A1 (en) Mobile electronic device with transceiver for wireless data exchange
JP2012010206A5 (zh)
EP1817890B1 (fr) Procede, systeme et carte a microcontroleur pour la communication de services d'application depuis une carte a microcontroleur vers un terminal
EP2779669A2 (en) Method and system for acquiring access rights to conditional access content
CN105447997A (zh) 一种在atm机上无卡取钞的方法及智能终端
EP2174481B1 (en) Method, server and mobile communication device for managing unique memory device identifications
EP2563057B1 (en) Method for data exchange between a secure element and a terminal, secure element, and terminal
JP2000353216A (ja) Icカードシステム、icカード端末、icカード処理方法及び記録媒体
CN102546721B (zh) 物理智能卡及在其中进行虚拟智能卡通讯的方法
CN103236003A (zh) 电子钱包支付方法及电子钱包支付装置
US20160210179A1 (en) Communication Protocol Bridge for Card Computing Devices
EP2753107B1 (en) Method and System for Processing a Data Transfer Related to a Data-Storing Card
Xiao et al. A novel mobile device NFC stack architecture
CN104992134A (zh) 标签快速处理方法
WO2012091348A2 (en) System and method for managing ota provisioning applications through use of profiles and data preparation
JP2020534612A (ja) 情報表示方法及びその、装置、記憶媒体並びに電子機器
KR102525654B1 (ko) 범용 서비스 인증 방법 및 이를 위한 플랫폼
KR101061496B1 (ko) 환전처리방법
WO2020052753A1 (en) Intermediary system for faciliting communication between virtual smart cards and a smart card interface

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant