远程实现IC卡业务控制的方法及系统和IC卡读写器 【技术领域】
本发明涉及电子应用领域,尤其涉及一种远程实现IC卡业务控制的方法及系统和IC卡读写器。
背景技术
集成电路(IC)卡具有存储容量大、安全性高、操作速度快、使用寿命长等基本特点,在各种行业得到广泛应用。IC卡读写器作为对IC卡操作的必备设备,按照一定的协议,与IC卡建立通信关系,对IC卡进行读写操作。目前IC卡读写器主要采用两种方式实现IC卡的读写操作:第一种是通过IC卡读写器提供IC卡操作指令,安装在本地计算机或控制器上的本地应用软件通过IC卡读写器的通讯接口与IC卡读写器进行连接通讯并通过编程接口(API)调用IC卡操作指令来完成各种操作功能。在这种应用模式下,应用软件负责实现所有业务逻辑。如果业务逻辑发生变化,必须升级应用软件,重新完成应用软件的开发和部署工作。采用这种模式的设备主要包括各种与计算机或控制器连接的IC卡读写器。第二种是,该IC卡读写器除了完成IC卡操作外,还负责实现所有业务逻辑。在这种应用模式下,IC卡读写器可独立完成各种业务功能。如果业务逻辑发生变化,必须升级IC卡读写器的固件,重新完成固件的开发和下载工作。采用这种模式的设备主要包括公共交通车载收费机、停车咪表等,操作过程中不需要计算机或控制器进行控制。
但现有的业务逻辑处理流程由本地应用软件或IC卡读写器内部固件实现,当业务逻辑处理流程做出调整时,需要对IC卡读写器上的应用软件或读写器固件重新进行开发设计,也不是很方便IC卡读写器上进行升级工作,这些重新设计开发和升级工作都会对IC卡制作商和设计商带来大量的工作,不方便IC卡其他相关业务的展开,缺乏业务灵活性。
【发明内容】
鉴于上述现有技术所存在的问题,本发明供了一种远程实现IC卡业务控制的方法及系统和IC卡读写器,远程计算机系统和IC卡读卡器通过对称密钥对业务数据加密进行通过,从而解决了在面对业务逻辑改作时,不用对IC卡读卡器进行相应的软件升级或硬件改造等。
为了解决上述问题,本发明提出了一种远程实现IC卡业务控制的方法,包括如下步骤:
接收远程计算机系统发送的远程IC卡业务指令,所述IC卡业务指令已通过对称密钥进行了加密;
对所述远程IC卡业务指令进行解密,获取IC卡操作指令;
根据获取的IC卡操作指令对IC卡进行控制操作。
相应的,本发明实施例还提出了一种IC卡读写器,其特征在于,包括:
第一接收单元,用于接收远程计算机系统发送的远程IC卡业务指令,所述IC卡业务指令已通过对称密钥进行了加密;
解密单元,用于对所述第一接收单元接收的IC卡业务指令进行解密,获取IC卡操作指令;
控制单元,用于根据所述解密单元获取的IC卡操作指令对IC卡进行控制操作。
相应的,本发明实施例还提出了一种远程实现IC卡业务控制的系统,所述系统包括远程计算机系统和IC卡读写器,其中:
所述远程计算机系统与IC卡读卡器进行远程IC卡业务指令的信息交互,且通过对称密钥对所述交互的IC卡业务指令信息进行加密或者解密;
所述IC卡读写器用于与远程计算机系统进行远程IC卡业务指令的信息交互,且通过对称密钥对所述交互的IC卡业务指令信息进行加密或者解密,并在对所述IC卡业务指令信息进行解密后获取IC卡操作指令;根据获取的IC卡操作指令对IC卡进行控制操作。
实施本发明实施例,具有如下有益效果:通过远程读写器系统提供IC卡操作指令的远程执行功能,采用对称密钥对交互的数据进行加密,从而保证远程通讯的安全性。这种实现方式由远程读写器系统来实现所有业务逻辑处理流程,IC卡读写器负责执行由远程计算机系统下发的具体IC卡操作指令。因此,业务逻辑处理流程的调整或升级只需要在远程计算机系统中完成,IC卡读写器可自动适应新的业务逻辑处理流程,可降低开发、部署和升级的工作量和复杂度;而且IC卡读写器与具体的业务类型无关,不同的远程计算机系统可实现不同的业务功能,IC卡读写器可以通过与不同的远程计算机系统连接而实现各种不同的业务功能,进一步增强了业务的灵活性。
【附图说明】
图1为本发明实施例中远程实现IC卡业务控制的系统的结构示意图;
图2为本发明实施例中远程实现IC卡业务控制的方法流程图;
图3为本发明实施例中IC读卡器操作流程图;
图4为本发明实施例中IC读卡器的结构示意图。
【具体实施方式】
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1示出了本发明实施例中的远程实现IC卡业务控制的系统,该系统包括远程计算机系统和IC卡读写器,其中:IC卡读写器和远程计算机系统之间采取数据加密(对称密钥)方式进行通讯,保证远程通讯的安全性。具体的,该远程计算机系统与IC卡读卡器进行远程IC卡业务指令的信息交互,且通过对称密钥对交互的IC卡业务指令信息进行加密或者解密;该IC卡读写器用于与远程计算机系统进行远程IC卡业务指令的信息交互,且通过对称密钥对所述交互的IC卡业务指令信息进行加密或者解密,并在对所述IC卡业务指令信息进行解密后获取IC卡操作指令;根据获取地IC卡操作指令对IC卡进行控制操作。
在首次通讯交互时,或者满足某些条件下时,IC卡读写器和远程计算机系统采用基于PKI的认证协议在两者间交换对称密钥,IC卡读写器和远程计算机系统端之间的数据通讯采用对称密钥进行加密。对称密钥由远程计算机系统产生,通过认证协议下发到IC卡读写器。IC卡读写器将对称密钥保存在读写器内部可读写的存储区域,远程计算机系统将对称密钥保存在内存/磁盘文件或者数据库系统中;对称密钥具有一定的生存时限,超出时限后必须重新进行基于PKI认证来交换新的对称密钥。IC卡读写器和远程计算机系统在数据通讯中包含通讯计数器。通讯计数器的初始值也由远程计算机系统产生,在交换对称密钥的过程中进行同步交换,保存方式与对称密钥一致。IC卡读写器每次和远程计算机系统建立新的通讯连接时,对通讯计数器进行累加,将通讯计数器包含在通讯数据中上传;远程计算机系统按照与IC卡读写器同样的规则对通讯计数器进行同步变更,远程计算机系统在与IC卡读写器进行连接时检查两者的通讯计数器是否相等,来决定是否继续通讯,从而可有效防止重放报文攻击。
这里的PKI认证过程如下,IC卡读卡器向远程计算机系统发送包括有IC卡读写器编号的认证数据;在远程计算机系统根据IC卡读写器编号找到IC卡读写器的公钥后,接收远程计算机系统发送过来的使用IC卡读写器公钥加密的包括有随机生成的对称密钥、通讯计数器和认证随机数的认证数据;使用保存的私钥对所述使用公钥加密的认证数据进行解密获得对称密钥;使用对称密钥将包括有所述的认证随机数的认证数据加密后反馈至远程计算机系统;以使远程计算机系统使用前述的对称密钥对接收到的认证数据进行解密,并根据收到的认证随机数与生成的认证随机数是否相等来确定所述IC卡读写器的合法性。
IC卡读写器定义由多个单一IC卡操作指令和数据组成的复合操作指令,提高远程执行效率。IC卡读写器除了定义对IC卡进行各种标准操作的指令外,将多个比较常用的、具有特定操作顺序的IC卡操作指令和数据定义成一个或多个复合操作指令。通过定义复合操作指令,在需要读写较大量IC卡数据或者经常执行特定指令序列的情况下,可减少IC卡读写器和远程计算机系统之间的数据交换次数,提高远程执行效率。
IC卡读写器负责IC卡操作指令的远程执行,本地客户端负责IC卡读写器和远程计算机系统之间数据的转发和必要的数据显示和输入输出处理,所有业务逻辑处理流程由远程计算机系统实现,降低开发和部署工作量,增强业务灵活性。
IC卡读写器负责执行由远程计算机系统下发的具体IC卡操作指令,不包含具体的业务逻辑处理流程;所有业务逻辑处理流程由远程计算机系统根据IC卡读写器上送的IC卡操作数据和操作状态完成。所有业务逻辑处理流程由远程计算机系统实现,因此业务逻辑处理流程的调整或升级只需要在远程计算机系统中完成,IC卡读写器可自动适应新的业务逻辑处理流程,可降低开发、部署和升级的工作量和复杂度;而且IC卡读写器与具体的业务类型无关,不同的远程计算机系统可实现不同的业务功能,IC卡读写器可以通过与不同的远程计算机系统连接而实现各种不同的业务功能,包括IC卡的查询、增值、减值及认证、读写等,进一步增强了业务的灵活性。
本发明实施例中远程实现IC卡业务控制的方法,主要是由IC卡读写器接收远程计算机系统发送的远程IC卡业务指令,该IC卡业务指令已通过对称密钥进行了加密;以及对远程IC卡业务指令进行解密,获取IC卡操作指令;并根据获取的IC卡操作指令对IC卡进行控制操作。
在进行该方法时,如果IC卡读写器首次与远程计算机系统建立通讯时,需要与远程计算机系统进行基于公开密钥体系PKI的认证,在PKI认证通过之后,与控制系统端进行远程IC卡业务指令的信息交互。该与远程计算机系统进行基于公开密钥体系PKI的认证实现包括:向远程计算机系统发送包括有IC卡读写器编号的认证数据;接收远程计算机系统发送过来的使用IC卡读写器公钥加密的包括有随机生成的对称密钥、通讯计数器和认证随机数的认证数据;使用保存的私钥对所述的使用公钥加密的认证数据进行解密获得对称密钥;使用对称密钥将包括有前述的认证随机数的认证数据加密后反馈至远程计算机系统;以使远程计算机系统使用前述的对称密钥对接收到的认证数据进行解密后判断收到的认证随机数与先前生成的认证随机数是否相等来确定所述IC卡读写器的合法性。在PKI认证通过后,将所述对称密钥和通讯计数器存储在本地存储介质中。
在IC卡读写器与远程计算机系统建立通讯后,还需要接收远程计算机系统对对称密钥的时效验证,如果该对称密钥的时效过期,需要重新与远程计算机系统进行基于PKI的认证。
在与控制系统端进行远程IC卡业务指令的信息交互过程中,还需要在每次与远程计算机系统进行通信的过程中累加通讯计数器,并判断通讯计数器与远程控制端上的通讯计数器是否保持一致。
需要说明的是,这里的IC卡操作指令为:IC卡的密钥管理指令、或者IC卡的文件管理指令、或者IC卡的认证指令、或者IC卡的加解密指令、或者IC卡的安全控制指令、或者IC卡的初始化指令、或者IC卡的数据传输指令、或者IC卡的读写指令、或者IC卡的查询指令、或者IC卡的增值指令、或者IC卡的减值指令及IC卡的其他操作指令等等。
需要说明的是,这里的IC卡读写器如果不具有与远程计算机进行通讯的网络接口时,需要借助于一个客户端进行交互数据,该客户端相当于一个数据传输中介,负责在远程计算机系统与IC卡读写器之间转发数据。远程计算机系统负责处理所有业务逻辑,IC卡读写器负责具体操作,由于IC卡读写器不一定具有网络接口,所以与远程计算机系统之间的数据需要由客户端进行转发。在此过程中客户端还可以负责执行输入和输出操作。在完成具体业务的过程中,需要用户提供一定的输入数据,以及需要将操作的结果显示或打印输出等方式提示给用户,由于IC卡读写器不一定具有输入键盘和显示屏等输入和输出界面,而且这部分工作与具体的业务没有什么逻辑关系,对不同的业务而言实现方式是通用的,所以可以由客户端负责实现。IC卡读写器也可以直接实现或包括客户端的功能。
具体的,图2示出了本发明实施例中的远程实现IC卡业务控制的方法流程图,该IC卡与远程计算机系统进行通讯,包括如下步骤:
S201:IC卡读写器与远程计算机系统开始建立通讯连接;
S202:IC卡读写器检查存储区域是否存在通过认证获得的对称密钥和通讯计数器,如果不存在,则进行S203,否则进行S207;
S203:IC卡读写器使用基于PKI的认证协议与远程计算机系统进行认证,主要通过向远程计算机系统发送包括有IC卡读写器编号的认证数据;接收远程计算机系统发送过来的使用IC卡读写器公钥加密的包括有随机生成的对称密钥、通讯计数器和认证随机数的认证数据;使用保存的私钥对所述的使用公钥加密的认证数据进行解密获得对称密钥;使用对称密钥将包括有前述的认证随机数的认证数据加密后反馈至远程计算机系统;以使远程计算机系统使用前述的对称密钥对接收到的认证数据进行解密后判断收到的认证随机数与先前生成的认证随机数是否相等来确定所述IC卡读写器的合法性并完成认证工作。
S204:判断该认证是否成功,如果该认证成功,则进行S204,否则转S206;
S205:IC卡读写器保存认证过程中从远程计算机系统获得的对称密钥和通讯计数器;
S206:显示错误代码,通讯连接失败,本次通讯连接异常结束;
S207:IC卡读写器累加通讯计数器,用对称密钥加密初始通讯数据后,并初始通讯数据发送远程计算机系统;
S208:远程计算机系统累加该IC卡读写器对应的通讯计数器,判断对应的对称密钥是否过期,如果已过期,转到S212;否则进行S209;
S209:远程计算机系统使用对应的对称密钥解密收到的数据,判断数据中包含的通讯计数器与远程计算机系统保存的对应通讯计数器是否同步(即相等),如果通讯计数器不同步,转到S212,否则进行S210;
S210:远程计算机系统对解密的数据进行处理并生成返回数据,使用对称密钥加密后发送至IC卡读写器;
S211:IC卡读写器使用对称密钥解密数据,并判断通讯计数器是否同步;
S212:向IC卡读写器返回错误代码,要求重新认证,进行S203;
S213:IC卡读写器对解密的数据进行处理,并判断通讯流程是否结束,如果需要结束通讯流程,则进行S215;否则转到步骤214;
S214、IC卡读写器将需要返回给远程计算机系统的数据使用对称密钥加密后发送给远程计算机系统,继续进行S209;
S215、本次通讯连接流程正常结束。
相应地,图3示出了本发明实施例中IC读卡器操作流程图,该流程图包括:
S301:IC卡读写器与远程计算机系统建立通讯连接,连接成功后将初始状态数据(使用对称密钥加密)上送远程计算机系统;
S302、远程计算机系统收到通讯数据(使用对称密钥解密)后,根据业务功能对应的业务逻辑处理流程对接收的操作状态和结果数据进行计算和处理,依次向IC卡读写器下发需要执行的输入输出指令或者IC卡操作指令(使用对称密钥加密);
S303:IC卡读写器收到通讯数据后发送给IC卡读写器使用对称密钥解密,IC卡读写器判断指令类型,如果属于输入输出指令,转到S304;否则转到S307;
S304:本地客户端执行输入输出指令,完成对应的输入输出操作;
S305:本地客户端判断输入输出指令是否属于流程结束指令,即指令是否用于流程结束前对成功或失败信息进行输出操作,如果属于流程结束指令,转到S309,否则转到步骤S306;
S306:IC卡读写器将操作结果使用对称密钥加密后上送远程计算机系统,转到S302;
S307、IC卡读写器执行IC卡操作指令;
S308、IC卡读写器将操作结果使用对称密钥加密后上送远程计算机系统;
S309:本次操作处理流程结束。
相应地,图4示出了本发明实施例中的IC卡读写器的结构示意图,该IC卡读卡器包括:
第一接收单元,用于接收远程计算机系统发送的远程IC卡业务指令,所述IC卡业务指令已通过对称密钥进行了加密;
解密单元,用于对所述第一接收单元接收的IC卡业务指令进行解密,获取IC卡操作指令;
控制单元,用于根据所述解密单元获取的IC卡操作指令对IC卡进行控制操作。
相应地,该IC卡读卡器还包括认证单元,用于与远程计算机系统进行基于公开密钥体系PKI的认证,所述认证单元通过向远程计算机系统发送包括有IC卡读写器编号的认证数据;接收远程计算机系统发送过来的使用IC卡读写器公钥加密的包括有随机生成的对称密钥、通讯计数器和认证随机数的认证数据;使用保存的私钥对所述的使用公钥加密的认证数据进行解密获得对称密钥;使用对称密钥将包括有前述的认证随机数的认证数据加密后反馈至远程计算机系统;以使远程计算机系统使用前述的对称密钥对接收到的认证数据进行解密后判断收到的认证随机数与先前生成的认证随机数是否相等来确定所述IC卡读写器的合法性。
获得单元,用于在认证单元通过所述PKI认证过程中,从远程计算机系统获得对称密钥和通讯计数器;
存储单元,用于存储所述获得单元获得的对称密钥和通讯计数器。
时效验证单元,用于接收远程计算机系统根据通讯计数器对所述对称密钥的时效验证;
计数器判断单元,用于在每次与远程计算机系统进行通信的过程中累加通讯计数器,并判断通讯计数器与远程控制端上的通讯计数器是否保持一致。
加密单元,用于根据获得的对称密钥对数据进行加密,并将加密后的数据返回至远程计算机系统。
需要说明的是,这里的IC卡操作指令为:IC卡的密钥管理指令、或者IC卡的文件管理指令、或者IC卡的认证指令、或者IC卡的加解密指令、或者IC卡的安全控制指令、或者IC卡的初始化指令、或者IC卡的数据传输指令、或者IC卡的读写指令、或者IC卡的查询指令、或者IC卡的增值指令、或者IC卡的减值指令及IC卡的其他操作指令等等。
综上所述,实施本发明实施例,通过远程读写器系统提供IC卡操作指令的远程执行功能,采用对称密钥对交互的数据进行加密,从而保证远程通讯的安全性。这种实现方式由远程读写器系统来实现所有业务逻辑处理流程,IC卡读写器负责执行由远程计算机系统下发的具体IC卡操作指令。因此,业务逻辑处理流程的调整或升级只需要在远程计算机系统中完成,IC卡读写器可自动适应新的业务逻辑处理流程,可降低开发、部署和升级的工作量和复杂度;而且IC卡读写器与具体的业务类型无关,不同的远程计算机系统可实现不同的业务功能,IC卡读写器可以通过与不同的远程计算机系统连接而实现各种不同的业务功能,进一步增强了业务的灵活性。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。