CN110366161B - 开卡方法、装置、相关设备及存储介质 - Google Patents

开卡方法、装置、相关设备及存储介质 Download PDF

Info

Publication number
CN110366161B
CN110366161B CN201810319863.3A CN201810319863A CN110366161B CN 110366161 B CN110366161 B CN 110366161B CN 201810319863 A CN201810319863 A CN 201810319863A CN 110366161 B CN110366161 B CN 110366161B
Authority
CN
China
Prior art keywords
card
writing
terminal
smart card
message format
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.)
Active
Application number
CN201810319863.3A
Other languages
English (en)
Other versions
CN110366161A (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 Mobile Communications Group Co Ltd
China Mobile Communications Ltd Research Institute
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Communications Ltd Research Institute
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 Mobile Communications Group Co Ltd, China Mobile Communications Ltd Research Institute filed Critical China Mobile Communications Group Co Ltd
Priority to CN201810319863.3A priority Critical patent/CN110366161B/zh
Publication of CN110366161A publication Critical patent/CN110366161A/zh
Application granted granted Critical
Publication of CN110366161B publication Critical patent/CN110366161B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/18Processing of user or subscriber data, e.g. subscribed services, user preferences or user profiles; Transfer of user or subscriber data
    • H04W8/183Processing at user equipment or user record carrier
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/18Processing of user or subscriber data, e.g. subscribed services, user preferences or user profiles; Transfer of user or subscriber data
    • H04W8/20Transfer of user or subscriber data
    • H04W8/205Transfer to or from user equipment or user record carrier
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/26Network addressing or numbering for mobility support
    • H04W8/265Network addressing or numbering for mobility support for initial activation of new user

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Telephonic Communication Services (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种开卡方法、装置、终端、智能卡及存储介质。其中,所述方法包括:终端通过调用所述终端操作***的对应原生应用程序编程接口(API),并基于应用协议数据单元(APDU)命令中的case2类型的消息格式,从智能卡获取认证信息;将所述认证信息发送至平台;所述认证信息用于对所述智能卡进行认证;接收所述平台发送的卡数据;所述卡数据是所述平台对所述智能卡认证成功后发送的;通过调用所述API,并基于APDU命令中的case3类型的消息格式,向所述智能卡发送所述卡数据;发送的卡数据用于供所述智能卡进行写卡操作;其中,所述终端能够通过调用所述API与所述智能卡建立安全连接;所述终端与智能卡的交互通过建立的安全连接实现。

Description

开卡方法、装置、相关设备及存储介质
技术领域
本发明涉及通信中的智能卡领域,尤其涉及一种开卡方法、装置、终端、智能卡及存储介质。
背景技术
用户识别模块卡(包括UIM(User Identity Module)卡和SIM(SubscriberIdentity Module)卡),是用户移动身份的重要物理标识,也是运营商掌握的重要资源。用户识别模块卡是一个独立的安全载体,其上可承载安全相关的卡应用,如卡盾((即将U盾的功能在卡片上实现)等。
目前,用户自助开卡的方式主要有以下两种:
第一种,利用智能卡(可以是UIM卡或SIM卡)的用户识别应用发展工具(STK)功能进行写卡,然而这种方式存在安全风险。
第二种,利用Open Mobile API进行写卡,然而这种方式需要终端集成有OpenMobile API,然而大部分终端是没有集成Open Mobile API的,因此不利于推广。
综上所述,相关技术的开卡方式均存在一定缺陷。
发明内容
为解决现有存在的技术问题,本发明实施例提供一种开卡方法、装置、终端、智能卡及存储介质。
本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种开卡方法,应用于终端,所述方法包括:
通过调用所述终端操作***的对应原生应用程序编程接口(API,ApplicationProgramming Interface),并基于应用协议数据单元(APDU,Application Protocol DataUnit)命令中的case2类型的消息格式,从智能卡获取认证信息;
将所述认证信息发送至平台;所述认证信息用于对所述智能卡进行认证;
接收所述平台发送的卡数据;所述卡数据是所述平台对所述智能卡认证成功后发送的;
通过调用所述API,并基于APDU命令中的case3类型的消息格式,向所述智能卡发送所述卡数据;发送的卡数据用于供所述智能卡进行写卡操作;其中,
所述终端能够通过调用所述API与所述智能卡建立安全连接;所述终端与智能卡的交互通过建立的安全连接实现。
上述方案中,所述基于APDU命令中的case2类型的消息格式,从智能卡获取认证信息,包括:
基于APDU命令中的case2类型的消息格式,向所述智能卡发送初始化写卡指令;所述初始化写卡指令用于指示所述智能卡进入写卡初始化状态,并获取所述智能卡的认证信息;
接收所述智能卡发送的认证信息。
上述方案中,所述通过基于APDU命令中的case3类型的消息格式,向所述智能卡发送所述卡数据,包括:
基于APDU命令中的case3类型的消息格式,向所述智能卡发送携带所述卡数据的写卡报文指令。
上述方案中,所述方法还包括:
接收所述智能卡返回的写卡执行状态;所述智能卡返回的写卡执行状态是基于APDU命令中的case3类型的消息格式生成的;
当所述写卡执行状态表征所述智能卡写卡成功时,基于APDU命令中的case2类型的消息格式,向所述智能卡发送获取写卡状态命令;
接收所述智能卡基于所述获取写卡状态命令返回的写卡状态。
本发明实施例还提供了一种开卡方法,应用于智能卡,所述方法包括:
基于APDU命令中的case2类型的消息格式,为终端提供认证信息;所述认证信息用于对所述智能卡进行认证;
基于APDU命令中的case3类型的消息格式,接收所述终端发送的卡数据;
利用所述卡数据,进行写卡操作。
上述方案中,所述基于APDU命令中的case2类型的消息格式,为终端提供认证信息,包括:
基于APDU命令中的case2类型的消息格式,接收所述终端发送的初始化写卡指令;
响应所述初始化写卡指令,进入写卡初始化状态,并向所述终端返回所述认证信息。
上述方案中,所述基于APDU命令中的case3类型的消息格式,接收所述终端发送的卡数据,包括:
基于APDU命令中的case3类型的消息格式,接收所述终端发送的携带所述卡数据的写卡报文指令。
上述方案中,所述方法还包括:
基于APDU命令中的case3类型的消息格式,向所述终端返回写卡执行状态;所述写卡执行状态表征所述智能卡写卡成功;
基于APDU命令中的case2类型的消息格式,接收所述智能卡发送的获取写卡状态命令;
响应所述获取写卡状态命令,向所述终端返回写卡状态。
本发明实施例又提供了一种开卡装置,包括:
获取单元,用于通过调用所述终端操作***的对应原生API,并基于APDU命令中的case2类型的消息格式,从智能卡获取认证信息;将所述认证信息发送至平台;所述认证信息用于对所述智能卡进行认证;并接收所述平台发送的卡数据;所述卡数据是所述平台对所述智能卡认证成功后发送的;
第一写卡单元,用于通过调用所述API,并基于APDU命令中的case3类型的消息格式,向所述智能卡发送所述卡数据;发送的卡数据用于供所述智能卡进行写卡操作;其中,
所述终端能够通过调用所述API与所述智能卡建立安全连接;所述终端与智能卡的交互通过建立的安全连接实现。
上述方案中,所述获取单元,具体用于:
基于APDU命令中的case2类型的消息格式,向所述智能卡发送初始化写卡指令;所述初始化写卡指令用于指示所述智能卡进入写卡初始化状态,并获取所述智能卡的认证信息;
接收所述智能卡发送的认证信息。
上述方案中,所述第一写卡单元,具体用于:
基于APDU命令中的case3类型的消息格式,向所述智能卡发送携带所述卡数据的写卡报文指令。
上述方案中,所述第一写卡单元,还用于:
接收所述智能卡返回的写卡执行状态;所述智能卡返回的写卡执行状态是基于APDU命令中的case3类型的消息格式生成的;
当所述写卡执行状态表征所述智能卡写卡成功时,基于APDU命令中的case2类型的消息格式,向所述智能卡发送获取写卡状态命令;
接收所述智能卡基于所述获取写卡状态命令返回的写卡状态。
本发明实施例还提供了一种开卡装置,包括:
提供单元,用于基于APDU命令中的case2类型的消息格式,为终端提供认证信息;所述认证信息用于对所述智能卡进行认证;
第二写卡单元,用于基于APDU命令中的case3类型的消息格式,接收所述终端发送的卡数据;以及利用所述卡数据,进行写卡操作。
上述方案中,所述提供单元,具体用于:
基于APDU命令中的case2类型的消息格式,接收所述终端发送的初始化写卡指令;
响应所述初始化写卡指令,进入写卡初始化状态,并向所述终端返回所述认证信息。
上述方案中,所述第二写卡单元,具体用于:
基于APDU命令中的case3类型的消息格式,接收所述终端发送的携带所述卡数据的写卡报文指令。
上述方案中,所述第二写卡单元,还用于:
基于APDU命令中的case3类型的消息格式,向所述终端返回写卡执行状态;所述写卡执行状态表征所述智能卡写卡成功;
基于APDU命令中的case2类型的消息格式,接收所述智能卡发送的获取写卡状态命令;
响应所述获取写卡状态命令,向所述终端返回写卡状态。
本发明实施例又提供了一种终端,包括:第一处理器和用于存储能够在所述第一处理器上运行的计算机程序的第一存储器,
其中,所述第一处理器用于运行所述计算机程序时,执行:
通过调用所述终端操作***的对应原生口API,并基于APDU命令中的case2类型的消息格式,从智能卡获取认证信息;
将所述认证信息发送至平台;所述认证信息用于对所述智能卡进行认证;
接收所述平台发送的卡数据;所述卡数据是所述平台对所述智能卡认证成功后发送的;
通过调用所述API,并基于APDU命令中的case3类型的消息格式,向所述智能卡发送所述卡数据;发送的卡数据用于供所述智能卡进行写卡操作;其中,
所述终端能够通过调用所述API与所述智能卡建立安全连接;所述终端与智能卡的交互通过建立的安全连接实现。
上述方案中,所述第一处理器,用于运行所述计算机程序时,执行:
基于APDU命令中的case2类型的消息格式,向所述智能卡发送初始化写卡指令;所述初始化写卡指令用于指示所述智能卡进入写卡初始化状态,并获取所述智能卡的认证信息;
接收所述智能卡发送的认证信息。
上述方案中,所述第一处理器,用于运行所述计算机程序时,执行:
基于APDU命令中的case3类型的消息格式,向所述智能卡发送携带所述卡数据的写卡报文指令。
上述方案中,所述第一处理器,还用于运行所述计算机程序时,执行:
接收所述智能卡返回的写卡执行状态;所述智能卡返回的写卡执行状态是基于APDU命令中的case3类型的消息格式生成的;
当所述写卡执行状态表征所述智能卡写卡成功时,基于APDU命令中的case2类型的消息格式,向所述智能卡发送获取写卡状态命令;
接收所述智能卡基于所述获取写卡状态命令返回的写卡状态。
本发明实施例还提供了一种智能卡,包括:第二处理器和用于存储能够在所述第二处理器上运行的计算机程序的第二存储器,
其中,所述第二处理器用于运行所述计算机程序时,执行:
基于APDU命令中的case2类型的消息格式,为终端提供认证信息;所述认证信息用于对所述智能卡进行认证;
基于APDU命令中的case3类型的消息格式,接收所述终端发送的卡数据;
利用所述卡数据,进行写卡操作。
上述方案中,所述第二处理器,用于运行所述计算机程序时,执行:
基于APDU命令中的case2类型的消息格式,接收所述终端发送的初始化写卡指令;
响应所述初始化写卡指令,进入写卡初始化状态,并向所述终端返回所述认证信息。
上述方案中,所述第二处理器,用于运行所述计算机程序时,执行:
基于APDU命令中的case3类型的消息格式,接收所述终端发送的携带所述卡数据的写卡报文指令。
上述方案中,所述第二处理器,还用于运行所述计算机程序时,执行:
基于APDU命令中的case3类型的消息格式,向所述终端返回写卡执行状态;所述写卡执行状态表征所述智能卡写卡成功;
基于APDU命令中的case2类型的消息格式,接收所述智能卡发送的获取写卡状态命令;
响应所述获取写卡状态命令,向所述终端返回写卡状态。
本发明实施例又提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述终端侧任一方法的步骤,或者实现上述智能卡侧任一方法的步骤。
本发明实施例提供的开卡方法、装置、终端、智能卡及存储介质,终端通过调用所述终端操作***的对应原生API,并基于APDU命令中的case2类型的消息格式,从智能卡获取认证信息;所述终端将所述认证信息发送至平台;并接收所述平台发送的卡数据;这里,所述卡数据是所述平台对所述智能卡认证成功后发送的,所述终端通过调用所述API,并基于APDU命令中的case3类型的消息格式,向所述智能卡发送所述卡数据;所述智能卡收到卡数据后,利用卡数据进行写卡操作。本发明实施例提供的方案,借助终端操作***的原生API来实现与智能卡的交互,且这种交互过程有安全机制的保护,如此,能够保证写卡过程的信息不给其它应用获取、篡改及删除,提高写卡的安全性,且利用广泛推广。同时,通过case2和case3类型指令的组合实现写卡流程,而case2和case3类型指令能够被终端的基带芯片准确识别,进而使得APP能够从智能卡准确获取执行结果,如此,能够大大提高写卡的成功率。
附图说明
图1为本发明实施例终端侧开卡方法流程示意图;
图2为本发明实施例智能卡侧开卡方法流程示意图;
图3为本发明实施例开卡方法流程示意图;
图4为本发明应用实施例开卡流程示意图;
图5为本发明应用实施例智能卡状态示意图;
图6本发明实施例一种开卡装置结构示意图;
图7为本发明实施例另一种开卡装置结构示意图;
图8为本发明实施例终端结构示意图;
图9为本发明实施例智能卡结构示意图;
图10为本发明实施例开卡***结构示意图。
具体实施方式
下面结合附图及实施例对本发明再作进一步详细的描述。
利用智能卡(可以是UIM卡或SIM))的STK功能进行写卡的过程包括:利用智能卡上STK的通讯录功能,终端的应用程序(APP)在STK的通讯录中写入写卡指令,然后智能卡获取该写卡指令并执行写卡操作,并在写卡完成后把写卡结果写到通讯特定区域;APP再从该区域获取写卡结果。该方法中,写卡和获取结果是异步处理,APP需要定期获取,而且STK的通讯录容许其他APP访问,存在其他应用获取、删除和篡改写卡指令和写卡结果的风险。也就是书存在安全风险。
利用Open Mobile API进行写卡的过程主要包括:
Open Mobile API提供的智能卡(可以是UIM卡或SIM卡)发送APDU指令的接口,可以提供给第三方应用调用,通过调用Open Mobile API发送写卡指令,完成写卡过程;但是Open Mobile API是开源的第三方方案,需要在终端出厂前在***中集成,也就是说,终端出厂前需要预制Open Mobile API。当前市场上除近场通信(NFC,Near FieldCommunication)终端,大部分终端没有Open Mobile API,因此这种开卡方式不利于广泛推广。
另一方面,一些操作***自带的API能够提供访问智能卡((可以是UIM卡或SIM卡)等)的接口,这样,第三方应用可以通过调用这些标准的API向智能卡发送APDU指令实现与卡的交互操作,如此,能够解决Open Mobile需要终端出厂预制的问题和STK的异步交互操作。
同时,这些接口能够提供强制访问控制(ACE,Access Control Enforce)机制,即提供安全机制,这种机制中,只有在智能卡上授权的APP才能通过该API访问智能卡,如此,能够解决STK存在的被其他应用在写卡过程中获取、删除和篡改指令和结果的风险,也就是说,通过这种机制能够提高写卡的安全性。
第三方面,需要考虑提高写卡的成功率,可以使用APDU命令来实现写卡。其中,APDU命令有四种类型的格式,分别是:case1、case2、case3及case4。下面对这四种类型命令进行分析。
case1类型的命令中没有数据送到智能卡,也没有数据从智能卡中返回终端,然而,在写卡的过程中,终端与智能卡之间有数据交互,所以这种类型的命令不适用于写卡过程中。
case2类型的命令中没有数据送到智能卡中,有数据从智能卡中返回,且终端的基带芯片平台可以正确的处理case2类型的APDU指令。
case3类型的命令中有数据送到智能卡中,没有数据从智能卡中返回,且终端的基带芯片平台可以正确的处理case3类型的APDU指令。
Case4类型的命令中既有数据送到智能卡卡中,也有数据从智能卡中返回终端。对于这种类型的命令,由于终端的基带芯片在处理case4类型的命令时,各厂商的基带芯片存在个体差异,有的基带芯片不能够正确处理该类型的命令,从而使得APP无法按预制从智能卡上获取指令执行结果,进而导致使用case4类型的指令无法完成写卡操作。
基于上述分析,在本发明的各种实施例中:采用能够提供安全机制的操作***的API去与智能卡进行交互,通过case2和case3类型指令的组合实现写卡流程。
本发明实施例提供的方案,采用能够提供安全机制的操作***的API与智能卡进行交互,如此,能够保证写卡过程的信息不给其它应用获取、篡改及删除,提高写卡的安全性,且利用广泛推广。同时,通过case2和case3类型指令的组合实现写卡流程,而case2和case3类型指令能够被终端的基带芯片准确识别,进而使得APP能够从智能卡准确获取执行结果,如此,能够大大提高写卡的成功率。
本发明实施例提供了一种写卡方法,应用于终端,如图1所示,该方法包括:
步骤101:通过调用所述终端操作***的对应原生API,并基于APDU命令中的case2类型的消息格式,从智能卡获取认证信息;
具体地,基于APDU命令中的case2类型的消息格式,向所述智能卡发送初始化写卡指令;所述初始化写卡指令用于指示所述智能卡进入写卡初始化状态,并获取所述智能卡的认证信息。
接收所述智能卡发送的认证信息。
也就是说,所述初始化写卡指令的格式是case2类型的消息格式。
这里,由于所述终端发送给智能卡的命令的格式是case2类型的消息格式,因此,所述智能卡发送的认证信息的数据结构也是与case2类型的消息格式相对应的,也可以理解为相匹配的。
所述终端与所述智能卡的通信途径是:所述终端调用自身操作***的对应原生API,由原生API与所述终端的基带芯片交互,而基带芯片与所述智能卡通信。
所述原生API可以理解为所述操作***自带的(已有的)API。
其中,实际应用时,所述操作***可以是安卓(Android)、或iOS等。
实际应用时,所述智能卡为空白卡。
步骤102:将所述认证信息发送至平台;
这里,所述认证信息用于对所述智能卡进行认证。
实际应用时,所述认证信息可以包含所述智能卡的空卡序列号、写卡随机数等。
步骤103:接收所述平台发送的卡数据;
这里,所述卡数据是所述平台对所述智能卡认证成功后发送的。
实际应用时,所述平台返回的卡数据是加密的,所述终端将加密的卡数据发送给智能卡,由智能卡对卡数据进行解密,并进行写卡操作。
步骤104:通过调用所述API,并基于APDU命令中的case3类型的消息格式,向所述智能卡发送所述卡数据。
这里,发送的卡数据用于供所述智能卡进行写卡操作。
需要说明的是:所述终端能够通过调用所述API与所述智能卡建立安全连接;所述终端与智能卡的上述交互过程通过建立的安全连接实现。
实际应用时,只要操作***能够提供安全访问机制即可。实际应用时,这种安全机制可以是多种多样的,比如:当调用所述API时,终端的操作***将调用所述API的APP的验证信息发送给智能卡,智能卡利用验证信息对相应的APP进行验证,验证成功后,操作***允许相应的APP调用所述API。
再比如:智能卡上存储有访问控制规则,操作***从智能卡获取访问控制规则,当调用所述API时,操作***利用获取的访问控制规则,判断调用所述API的相应APP是否有对智能卡的访问权限,当根据访问控制规则确定所述相应APP有对智能卡的访问权限时,允许所述相应APP调用所述API。
对于上述两种例子,当操作***允许相应APP调用所述API时,表明终端与智能卡之间的安全连接已经建立。
需要说明的是:实际应用时,安全机制还可以是其它方式实现,本发明实施例对此不作限定。
在一实施例中,所述终端基于APDU命令中的case3类型的消息格式,向所述智能卡发送携带所述卡数据的写卡报文指令,以向所述智能卡发送卡数据。
也就是说,所述写卡报文指令的格式是case3类型的消息格式。
实际应用时,所述智能卡会向所述终端反馈写卡执行状态,以通知所述终端是否写卡成功。
基于此,在一实施例中,该方法还可以包括:
所述终端接收所述智能卡返回的写卡执行状态;所述智能卡返回的写卡执行状态是基于APDU命令中的case3类型的消息格式生成的;
当所述写卡执行状态表征所述智能卡写卡成功时,所述终端基于APDU命令中的case2类型的消息格式,向所述智能卡发送获取写卡状态命令;
所述终端接收所述智能卡基于所述获取写卡状态命令返回的写卡状态。
这里,所述智能卡返回的写卡状态的数据结构也是与case2类型的消息格式相对应的。
对应地,本发明实施例还提供了一种写卡方法,应用于终端,如图2所示,该方法包括:
步骤201:基于APDU命令中的case2类型的消息格式,为终端提供认证信息;
具体地,基于APDU命令中的case2类型的消息格式,接收所述终端发送的初始化写卡指令;
响应所述初始化写卡指令,进入写卡初始化状态,并向所述终端返回所述认证信息。
也就是说,所述智能卡收到初始化写卡指令后,进入写卡初始化状态,以便等待所述终端发送的卡数据对应的命令,入股接收到其它命令,则所述智能卡则进入空闲(idle)状态。
这里,所述认证信息用于对所述智能卡进行认证。
步骤202:基于APDU命令中的case3类型的消息格式,接收所述终端发送的卡数据;
具体地,基于APDU命令中的case3类型的消息格式,接收所述终端发送的携带所述卡数据的写卡报文指令。
实际应用时,所述智能卡接收的卡数据是加密的,需要对加密的卡数据进行解密,然后再进行写卡操作。
步骤203:利用所述卡数据,进行写卡操作。
实际应用时,所述智能卡会向所述终端反馈写卡执行状态,以通知所述终端是否写卡成功。
基于此,在一实施例中,该方法还可以包括:
基于APDU命令中的case3类型的消息格式,向所述终端返回写卡执行状态;所述写卡执行状态表征所述智能卡写卡成功;
基于APDU命令中的case2类型的消息格式,接收所述智能卡发送的获取写卡状态命令;
响应所述获取写卡状态命令,向所述终端返回写卡状态。
本发明实施例还提供了一种写卡方法,如图3所示,该方法包括:
步骤301:终端通过调用所述终端操作***的对应原生API,并基于APDU命令中的case2类型的消息格式,从智能卡获取认证信息;
换句话说,所述智能卡基于APDU命令中的case2类型的消息格式,为终端提供认证信息。
步骤302:所述终端将所述认证信息发送至平台;
这里,所述认证信息用于对所述智能卡进行认证。
步骤303:所述终端接收所述平台发送的卡数据;
这里,所述卡数据是所述平台对所述智能卡认证成功后发送的。
步骤304:所述终端通过调用所述API,并基于APDU命令中的case3类型的消息格式,向所述智能卡发送所述卡数据;
步骤305:所述智能卡收到卡数据后,利用卡数据进行写卡操作。
其中,所述终端能够通过调用所述API与所述智能卡建立安全连接;所述终端与智能卡的交互通过建立的安全连接实现。
需要说明的是:终端与智能卡的具体处理过程已在上文详述,这里不再赘述。
本发明实施例提供的开卡方法,终端通过调用所述终端操作***的对应原生API,并基于APDU命令中的case2类型的消息格式,从智能卡获取认证信息;所述终端将所述认证信息发送至平台;并接收所述平台发送的卡数据;这里,所述卡数据是所述平台对所述智能卡认证成功后发送的,所述终端通过调用所述API,并基于APDU命令中的case3类型的消息格式,向所述智能卡发送所述卡数据;所述智能卡收到卡数据后,利用卡数据进行写卡操作。本发明实施例提供的方案,借助终端操作***的原生API来实现与智能卡的交互,且这种交互过程有安全机制的保护,如此,能够保证写卡过程的信息不给其它应用获取、篡改及删除,提高写卡的安全性,且利用广泛推广。同时,通过case2和case3类型指令的组合实现写卡流程,而case2和case3类型指令能够被终端的基带芯片准确识别,进而使得APP能够从智能卡准确获取执行结果,如此,能够大大提高写卡的成功率。
另外,在整个过程中,智能卡只有收到特定的指令才去进行相应的操作,如此,进一步保证了写卡的安全性。
下面结合一个应用实施例对本发明进行更详细的描述。
在本应用实施例中,以Android***(Android5.1以上)为例来说明。本发明实施例的方案是通过软件的方式实现的,在本应用实施例中,称之为APP。智能卡可以是SIM卡,也可以是UIM卡等。
需要说明的是:在进行写卡之前,APP已经通过Android***的API与智能卡建立安全连接,也就是说,该APP是智能卡上授权的APP,即具有访问权限的APP,Android***允许APP调用API。
本应用实施例写卡的流程,如图4所示,包括以下步骤:
步骤401:APP向智能卡发送case2类型格式的初始化写卡指令;
其中,case2类型格式的初始化写卡指令(APDU指令)-B5010000指令格式定义如表1所示:
表1
Figure BDA0001624979330000141
步骤402:智能卡收到该指令后,进入写卡初始化状态,并向APP返回写卡需要的卡片信息;
这里,写卡需要的卡片信息即为认证信息。
实际应用时,所述卡片信息可以包括:空卡序列号、写卡随机数等。
智能卡相应返回卡片信息的数据结构如表2所示:
表2
Figure BDA0001624979330000151
这里,实际应用时,智能卡会利用空卡序列号和写卡随机数这两个分散因子、及卡片的skey生成写卡包名加密的写卡会话秘钥,用于后续解密卡数据。
步骤403:APP收到卡片信息后,向写卡平台发送智能卡的卡片信息;
步骤404:写卡平台收到卡片信息后,根据空卡序列号找到该智能卡的skey,并利用空卡序列号和写卡随机数两个分散因子及该智能卡的skey生成会话秘钥,利用回话秘钥加密写卡报文,然后发送给APP;
步骤405:APP收到加密写卡报文后,向智能卡发送case3类型格式的写卡报文指令;
这里,发送写卡报文指令后,表明智能卡进入写卡状态。
其中case3类型格式的写卡报文指令-A50000XX+Data格式定义如表3所示:
表3
代码 值(Hex)
INS 0xA5
P1 0x00
P2 0x00
P3 0xXX:XX是Data数据的长度
数据(Data) 加密生成的写卡报文
步骤406:智能卡收到写卡报文指令后,根据该指令下发的卡数据完成写卡操作;
具体地,智能卡会判断该指令中Data的长度是否为P3的0xXX字节,如果写卡报文长度正确,用生成的会话秘钥解密命令中Data部分的卡数据,把卡数据写入智能卡中,完成写卡操作。
步骤407:智能卡完成写卡操作后,向APP返回写卡执行状态;
这里,相应写卡执行状态数据结构表4所示:
表4
Figure BDA0001624979330000161
步骤408:当APP收到9E0X后,APP向智能卡发送case2类型格式的获取写卡状态命令;
这里,case2类型格式的获取写卡状态指令-A900000X,其中X就是指9E0X中的X,代表卡返相应返回的字节数。
步骤409:智能卡收到获取写卡状态命令后,向APP返回写卡状态。
这里,相应的写卡状态数据结构如表5所示:
表5
返回值 含义
0x00+MAC校验值 写卡成功
0x02+MAC校验值 写卡数据MAC错
0x03+MAC校验值 写卡数据异常(tag错等)
至此,完成写卡流程。在这个过程中,APP通过调用Android***的API,与智能卡进行交互。
另外,在这个过程中,如图5所示,智能卡具有三个状态,具体地,
第一个状态,上电启动后,智能卡进入IDLE状态;
第二个状态,在IDLE状态智能卡收到特定的指令(写卡初始化状态指令,具体为B5010000指令)且执行完成后,进入写卡初始化状态;
进入写卡初始化状态后,当接收写卡报文指令(即A50000XX+Data指令)时,进行写卡操作,完成后进入第三个状态。
如果收到其他指令,智能卡回到IDLE状态。
第三个状态,在写卡初始化状态时收到特定的指令(写卡报文指令,即A50000XX+Data指令),执行完成后进入写卡完成状态。
其中,在写卡完成状态收到特定的指令(获取写卡状态命令,即A900000X指令)时,可以获取到写卡结果。当智能卡掉电重启后写卡结果丢失。
从上面的描述可以看出,本发明实施例提供的方案,通过case2和case3命令组合的方式实现写卡流程;在这个过程中,利用操作***提供的安全机制保证APP与智能卡交互过程中信息的安全性,不需要在终端出厂前预置其它第三方方案,就可以实现二者的安全交互,避免了信息的篡改、删除等,如此,利用广泛推广。而且通过case2和case3命令组合的方式实现写卡,整个写卡过程有严谨的交互过程和智能卡的状态保护机制,如此,大大提高了写卡的成功率。
为实现本发明实施例的方法,本发明实施例还提供了一种开卡装置,设置在终端上,如图6所示,所述装置包括:
获取单元61,用于通过调用所述终端操作***的对应原生API,并基于APDU命令中的case2类型的消息格式,从智能卡获取认证信息;将所述认证信息发送至平台;所述认证信息用于对所述智能卡进行认证;并接收所述平台发送的卡数据;所述卡数据是所述平台对所述智能卡认证成功后发送的;
第一写卡单元62,用于通过调用所述API,并基于APDU命令中的case3类型的消息格式,向所述智能卡发送所述卡数据;发送的卡数据用于供所述智能卡进行写卡操作;其中,
所述终端能够通过调用所述API与所述智能卡建立安全连接;所述终端与智能卡的交互通过建立的安全连接实现。
其中,所述终端与所述智能卡的通信途径是:所述终端调用自身操作***的对应原生API,由原生API与所述终端的基带芯片交互,而基带芯片与所述智能卡通信。
所述原生API可以理解为所述操作***自带的(已有的)API。
在一实施例中,所述获取单元61,具体用于:
基于APDU命令中的case2类型的消息格式,向所述智能卡发送初始化写卡指令;所述初始化写卡指令用于指示所述智能卡进入写卡初始化状态,并获取所述智能卡的认证信息;
接收所述智能卡发送的认证信息。
也就是说,所述初始化写卡指令的格式是case2类型的消息格式。
在一实施例中,所述第一写卡单元,具体用于:
基于APDU命令中的case3类型的消息格式,向所述智能卡发送携带所述卡数据的写卡报文指令。
也就是说,所述写卡报文指令的格式是case3类型的消息格式。
实际应用时,所述智能卡会向所述终端反馈写卡执行状态,以通知所述终端是否写卡成功。
基于此,在一实施例中,所述第一写卡单元62,还用于:
接收所述智能卡返回的写卡执行状态;所述智能卡返回的写卡执行状态是基于APDU命令中的case3类型的消息格式生成的;
当所述写卡执行状态表征所述智能卡写卡成功时,基于APDU命令中的case2类型的消息格式,向所述智能卡发送获取写卡状态命令;
接收所述智能卡基于所述获取写卡状态命令返回的写卡状态。
实际应用时,所述获取单元61、第一写卡单元62可由开卡装置中的处理器实现。
需要说明的是:上述实施例提供的开卡装置在进行开卡时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的开卡装置与开卡方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
为实现本发明实施例的方法,本发明实施例还提供了一种开卡装置,设置在智能卡上,如图7所示,所述装置包括:
提供单元71,用于基于APDU命令中的case2类型的消息格式,为终端提供认证信息;所述认证信息用于对所述智能卡进行认证;
第二写卡单元72,用于基于APDU命令中的case3类型的消息格式,接收所述终端发送的卡数据;以及利用所述卡数据,进行写卡操作。
在一实施例中,所述提供单元71,具体用于:
基于APDU命令中的case2类型的消息格式,接收所述终端发送的初始化写卡指令;
响应所述初始化写卡指令,进入写卡初始化状态,并向所述终端返回所述认证信息。
在一实施例中,所述第二写卡单元72,具体用于:
基于APDU命令中的case3类型的消息格式,接收所述终端发送的携带所述卡数据的写卡报文指令。
实际应用时,所述智能卡会向所述终端反馈写卡执行状态,以通知所述终端是否写卡成功。
基于此,在一实施例中,所述第二写卡单元72,还用于:
基于APDU命令中的case3类型的消息格式,向所述终端返回写卡执行状态;所述写卡执行状态表征所述智能卡写卡成功;
基于APDU命令中的case2类型的消息格式,接收所述智能卡发送的获取写卡状态命令;
响应所述获取写卡状态命令,向所述终端返回写卡状态。
实际应用时,所述提供单元71、第二写卡单元72可由开卡装置中的处理器实现。
需要说明的是:上述实施例提供的开卡装置在进行开卡时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的开卡装置与开卡方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
基于上述装置的硬件实现,且为了实现本发明实施终端侧的方法,本发明实施例还提供了一种终端,如图8所示,该终端80包括:
第一通信接口81,能够与其它设备进行信息交互;
第一处理器82,与第一通信接口81连接,以实现与其它设备进行信息交互,用于运行计算机程序时,执行上述终端侧一个或多个技术方案提供的方法。而能够在所述第一处理器82上运行的计算机程序存储在第一处理器81上。
具体地,所述第一处理器82用于运行所述计算机程序时,执行:
通过调用所述终端操作***的对应原生口API,并基于APDU命令中的case2类型的消息格式,从智能卡获取认证信息;
将所述认证信息发送至平台;所述认证信息用于对所述智能卡进行认证;
接收所述平台发送的卡数据;所述卡数据是所述平台对所述智能卡认证成功后发送的;
通过调用所述API,并基于APDU命令中的case3类型的消息格式,向所述智能卡发送所述卡数据;发送的卡数据用于供所述智能卡进行写卡操作;其中,
所述终端能够通过调用所述API与所述智能卡建立安全连接;所述终端与智能卡的交互通过建立的安全连接实现。
在一实施例中,所述第一处理器82,用于运行所述计算机程序时,执行:
基于APDU命令中的case2类型的消息格式,向所述智能卡发送初始化写卡指令;所述初始化写卡指令用于指示所述智能卡进入写卡初始化状态,并获取所述智能卡的认证信息;
接收所述智能卡发送的认证信息。
在一实施例中,所述第一处理器82,用于运行所述计算机程序时,执行:
基于APDU命令中的case3类型的消息格式,向所述智能卡发送携带所述卡数据的写卡报文指令。
在一实施例中,所述第一处理器82,还用于运行所述计算机程序时,执行:
接收所述智能卡返回的写卡执行状态;所述智能卡返回的写卡执行状态是基于APDU命令中的case3类型的消息格式生成的;
当所述写卡执行状态表征所述智能卡写卡成功时,基于APDU命令中的case2类型的消息格式,向所述智能卡发送获取写卡状态命令;
接收所述智能卡基于所述获取写卡状态命令返回的写卡状态。
所述第一处理器82的具体处理过程可参照方法来理解,这里不再赘述。
当然,实际应用时,所述终端80还可以包括:用户接口84。所述终端80中的各个组件通过总线***85耦合在一起。可理解,总线***85用于实现这些组件之间的连接通信。总线***85除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图8中将各种总线都标为总线***85。
其中,所述第一处理器82的个数为至少一个。
用户接口84可以包括按钮、触感板或者触摸屏等。
本发明实施例中的第一存储器83用于存储各种类型的数据以支持终端80的操作。这些数据的示例包括:用于在终端80上操作的任何计算机程序。
上述本发明实施例揭示的方法可以应用于所述第一处理器82中,或者由所述第一处理器82实现。所述第一处理器82可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过所述第一处理器82中的硬件的集成逻辑电路或者软件形式的指令完成。上述的所述第一处理器82可以是通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。所述第一处理器82可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于第一存储器83,所述第一处理器82读取第一存储器83中的信息,结合其硬件完成前述方法的步骤。
在示例性实施例中,终端80可以被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,ProgrammableLogic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)、通用处理器、控制器、微控制器(MCU,Micro Controller Unit)、微处理器(Microprocessor)、或者其他电子元件实现,用于执行前述方法。
基于上述装置的硬件实现,且为了实现本发明实施智能卡侧的方法,本发明实施例还提供了一种智能卡,如图9所示,该智能卡90包括:
第二处理器91和用于存储能够在所述第二处理器上运行的计算机程序的第二存储器92,
其中,所述第二处理器91用于运行所述计算机程序时,执行:
基于APDU命令中的case2类型的消息格式,为终端提供认证信息;所述认证信息用于对所述智能卡进行认证;
基于APDU命令中的case3类型的消息格式,接收所述终端发送的卡数据;
利用所述卡数据,进行写卡操作。
在一实施例中,所述第二处理器91,用于运行所述计算机程序时,执行:
基于APDU命令中的case2类型的消息格式,接收所述终端发送的初始化写卡指令;
响应所述初始化写卡指令,进入写卡初始化状态,并向所述终端返回所述认证信息。
在一实施例中,所述第二处理器91,用于运行所述计算机程序时,执行:
基于APDU命令中的case3类型的消息格式,接收所述终端发送的携带所述卡数据的写卡报文指令。
在一实施例中,所述第二处理器91,还用于运行所述计算机程序时,执行:
基于APDU命令中的case3类型的消息格式,向所述终端返回写卡执行状态;所述写卡执行状态表征所述智能卡写卡成功;
基于APDU命令中的case2类型的消息格式,接收所述智能卡发送的获取写卡状态命令;
响应所述获取写卡状态命令,向所述终端返回写卡状态。
所述第二处理器91的具体处理过程可参照方法来理解,这里不再赘述。
当然,实际应用时,所述智能卡90还可以包括第二通信接口93,与终端进行交互。所述智能卡90中的各个组件通过总线***94耦合在一起。可理解,总线***94用于实现这些组件之间的连接通信。总线***94除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图9中将各种总线都标为总线***94。
本发明实施例中的第二存储器92用于存储各种类型的数据以支持智能卡90的操作。这些数据的示例包括:用于在智能卡90上操作的任何计算机程序。
上述本发明实施例揭示的方法可以应用于所述第二处理器91中,或者由所述第二处理器91实现。所述第二处理器91可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过所述第二处理器91中的硬件的集成逻辑电路或者软件形式的指令完成。上述的所述第二处理器91可以是通用处理器、DSP,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。所述第二处理器91可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于第二存储器92,所述第二处理器91读取第二存储器92中的信息,结合其硬件完成前述方法的步骤。
在示例性实施例中,智能卡90可以被一个或多个ASIC、DSP、PLD、CPLD、FPGA、通用处理器、控制器、MCU、Microprocessor、或者其他电子元件实现,用于执行前述方法。
可以理解,本发明实施例的存储器(第一存储器83和第二存储器92)可以是易失性存储器或者非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,ProgrammableRead-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically ErasableProgrammable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic randomaccess memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random Access Memory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,StaticRandom Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static RandomAccess Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,Synchronous Dynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic RandomAccess Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced SynchronousDynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLinkDynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct RambusRandom Access Memory)。本发明实施例描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
为实现本发明实施例的方法,本发明实施例还提供了一种开卡***,如图10所示,该***包括:
终端101,用于通过调用所述终端操作***的对应原生API,并基于APDU命令中的case2类型的消息格式,从智能卡102获取认证信息;将所述认证信息发送至平台;所述认证信息用于对所述智能卡进行认证;接收所述平台发送的卡数据;所述卡数据是所述平台对所述智能卡认证成功后发送的;以及通过调用所述API,并基于APDU命令中的case3类型的消息格式,向所述智能卡102发送所述卡数据;
所述智能卡102,用于收到卡数据后,利用卡数据进行写卡操作。
需要说明的是:终端101和智能卡102的具体处理过程已在上文详述,这里不再赘述。
在示例性实施例中,本发明实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的第一存储器83,上述计算机程序可由终端80的第一处理器82执行,以完成前述方法所述步骤。再比如包括存储计算机程序的第二存储器92,上述计算机程序可由智能卡90的第二处理器91执行,以完成前述方法所述步骤。计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、或CD-ROM等存储器。
需要说明的是:本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (25)

1.一种开卡方法,其特征在于,应用于终端,所述方法包括:
通过调用所述终端操作***的对应原生应用程序编程接口API,并基于应用协议数据单元APDU命令中的case2类型的消息格式,从智能卡获取认证信息;
将所述认证信息发送至平台;所述认证信息用于对所述智能卡进行认证;
接收所述平台发送的卡数据;所述卡数据是所述平台对所述智能卡认证成功后发送的;
通过调用所述API,并基于APDU命令中的case3类型的消息格式,向所述智能卡发送所述卡数据;发送的卡数据用于供所述智能卡进行写卡操作;其中,
所述终端能够通过调用所述API与所述智能卡建立安全连接;所述终端与智能卡的交互通过建立的安全连接实现。
2.根据权利要求1所述的方法,其特征在于,所述基于APDU命令中的case2类型的消息格式,从智能卡获取认证信息,包括:
基于APDU命令中的case2类型的消息格式,向所述智能卡发送初始化写卡指令;所述初始化写卡指令用于指示所述智能卡进入写卡初始化状态,并获取所述智能卡的认证信息;
接收所述智能卡发送的认证信息。
3.根据权利要求1所述的方法,其特征在于,所述通过基于APDU命令中的case3类型的消息格式,向所述智能卡发送所述卡数据,包括:
基于APDU命令中的case3类型的消息格式,向所述智能卡发送携带所述卡数据的写卡报文指令。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述智能卡返回的写卡执行状态;所述智能卡返回的写卡执行状态是基于APDU命令中的case3类型的消息格式生成的;
当所述写卡执行状态表征所述智能卡写卡成功时,基于APDU命令中的case2类型的消息格式,向所述智能卡发送获取写卡状态命令;
接收所述智能卡基于所述获取写卡状态命令返回的写卡状态。
5.一种开卡方法,其特征在于,应用于智能卡,所述方法包括:
基于APDU命令中的case2类型的消息格式,为终端提供认证信息;所述认证信息用于对所述智能卡进行认证;
基于APDU命令中的case3类型的消息格式,接收所述终端发送的卡数据;
利用所述卡数据,进行写卡操作。
6.根据权利要求5所述的方法,其特征在于,所述基于APDU命令中的case2类型的消息格式,为终端提供认证信息,包括:
基于APDU命令中的case2类型的消息格式,接收所述终端发送的初始化写卡指令;
响应所述初始化写卡指令,进入写卡初始化状态,并向所述终端返回所述认证信息。
7.根据权利要求5所述的方法,其特征在于,所述基于APDU命令中的case3类型的消息格式,接收所述终端发送的卡数据,包括:
基于APDU命令中的case3类型的消息格式,接收所述终端发送的携带所述卡数据的写卡报文指令。
8.根据权利要求5所述的方法,其特征在于,所述方法还包括:
基于APDU命令中的case3类型的消息格式,向所述终端返回写卡执行状态;所述写卡执行状态表征所述智能卡写卡成功;
基于APDU命令中的case2类型的消息格式,接收所述智能卡发送的获取写卡状态命令;
响应所述获取写卡状态命令,向所述终端返回写卡状态。
9.一种开卡装置,其特征在于,所述装置包括:
获取单元,用于通过调用终端操作***的对应原生API,并基于APDU命令中的case2类型的消息格式,从智能卡获取认证信息;将所述认证信息发送至平台;所述认证信息用于对所述智能卡进行认证;并接收所述平台发送的卡数据;所述卡数据是所述平台对所述智能卡认证成功后发送的;
第一写卡单元,用于通过调用所述API,并基于APDU命令中的case3类型的消息格式,向所述智能卡发送所述卡数据;发送的卡数据用于供所述智能卡进行写卡操作;其中,
所述终端能够通过调用所述API与所述智能卡建立安全连接;所述终端与智能卡的交互通过建立的安全连接实现。
10.根据权利要求9所述的装置,其特征在于,所述获取单元,具体用于:
基于APDU命令中的case2类型的消息格式,向所述智能卡发送初始化写卡指令;所述初始化写卡指令用于指示所述智能卡进入写卡初始化状态,并获取所述智能卡的认证信息;
接收所述智能卡发送的认证信息。
11.根据权利要求9所述的装置,其特征在于,所述第一写卡单元,具体用于:
基于APDU命令中的case3类型的消息格式,向所述智能卡发送携带所述卡数据的写卡报文指令。
12.根据权利要求9所述的装置,其特征在于,所述第一写卡单元,还用于:
接收所述智能卡返回的写卡执行状态;所述智能卡返回的写卡执行状态是基于APDU命令中的case3类型的消息格式生成的;
当所述写卡执行状态表征所述智能卡写卡成功时,基于APDU命令中的case2类型的消息格式,向所述智能卡发送获取写卡状态命令;
接收所述智能卡基于所述获取写卡状态命令返回的写卡状态。
13.一种开卡装置,其特征在于,所述装置包括:
提供单元,用于基于APDU命令中的case2类型的消息格式,为终端提供认证信息;所述认证信息用于对智能卡进行认证;
第二写卡单元,用于基于APDU命令中的case3类型的消息格式,接收所述终端发送的卡数据;以及利用所述卡数据,进行写卡操作。
14.根据权利要求13所述的装置,其特征在于,所述提供单元,具体用于:
基于APDU命令中的case2类型的消息格式,接收所述终端发送的初始化写卡指令;
响应所述初始化写卡指令,进入写卡初始化状态,并向所述终端返回所述认证信息。
15.根据权利要求13所述的装置,其特征在于,所述第二写卡单元,具体用于:
基于APDU命令中的case3类型的消息格式,接收所述终端发送的携带所述卡数据的写卡报文指令。
16.根据权利要求13所述的装置,其特征在于,所述第二写卡单元,还用于:
基于APDU命令中的case3类型的消息格式,向所述终端返回写卡执行状态;所述写卡执行状态表征所述智能卡写卡成功;
基于APDU命令中的case2类型的消息格式,接收所述智能卡发送的获取写卡状态命令;
响应所述获取写卡状态命令,向所述终端返回写卡状态。
17.一种终端,其特征在于,所述终端包括:第一处理器和用于存储能够在所述第一处理器上运行的计算机程序的第一存储器,
其中,所述第一处理器用于运行所述计算机程序时,执行:
通过调用所述终端操作***的对应原生口API,并基于APDU命令中的case2类型的消息格式,从智能卡获取认证信息;
将所述认证信息发送至平台;所述认证信息用于对所述智能卡进行认证;
接收所述平台发送的卡数据;所述卡数据是所述平台对所述智能卡认证成功后发送的;
通过调用所述API,并基于APDU命令中的case3类型的消息格式,向所述智能卡发送所述卡数据;发送的卡数据用于供所述智能卡进行写卡操作;其中,
所述终端能够通过调用所述API与所述智能卡建立安全连接;所述终端与智能卡的交互通过建立的安全连接实现。
18.根据权利要求17所述的终端,其特征在于,所述第一处理器,用于运行所述计算机程序时,执行:
基于APDU命令中的case2类型的消息格式,向所述智能卡发送初始化写卡指令;所述初始化写卡指令用于指示所述智能卡进入写卡初始化状态,并获取所述智能卡的认证信息;
接收所述智能卡发送的认证信息。
19.根据权利要求17所述的终端,其特征在于,所述第一处理器,用于运行所述计算机程序时,执行:
基于APDU命令中的case3类型的消息格式,向所述智能卡发送携带所述卡数据的写卡报文指令。
20.根据权利要求17所述的终端,其特征在于,所述第一处理器,还用于运行所述计算机程序时,执行:
接收所述智能卡返回的写卡执行状态;所述智能卡返回的写卡执行状态是基于APDU命令中的case3类型的消息格式生成的;
当所述写卡执行状态表征所述智能卡写卡成功时,基于APDU命令中的case2类型的消息格式,向所述智能卡发送获取写卡状态命令;
接收所述智能卡基于所述获取写卡状态命令返回的写卡状态。
21.一种智能卡,其特征在于,所述智能卡包括:第二处理器和用于存储能够在所述第二处理器上运行的计算机程序的第二存储器,
其中,所述第二处理器用于运行所述计算机程序时,执行:
基于APDU命令中的case2类型的消息格式,为终端提供认证信息;所述认证信息用于对所述智能卡进行认证;
基于APDU命令中的case3类型的消息格式,接收所述终端发送的卡数据;
利用所述卡数据,进行写卡操作。
22.根据权利要求21所述的智能卡,其特征在于,所述第二处理器,用于运行所述计算机程序时,执行:
基于APDU命令中的case2类型的消息格式,接收所述终端发送的初始化写卡指令;
响应所述初始化写卡指令,进入写卡初始化状态,并向所述终端返回所述认证信息。
23.根据权利要求21所述的智能卡,其特征在于,所述第二处理器,用于运行所述计算机程序时,执行:
基于APDU命令中的case3类型的消息格式,接收所述终端发送的携带所述卡数据的写卡报文指令。
24.根据权利要求21所述的智能卡,其特征在于,所述第二处理器,还用于运行所述计算机程序时,执行:
基于APDU命令中的case3类型的消息格式,向所述终端返回写卡执行状态;所述写卡执行状态表征所述智能卡写卡成功;
基于APDU命令中的case2类型的消息格式,接收所述智能卡发送的获取写卡状态命令;
响应所述获取写卡状态命令,向所述终端返回写卡状态。
25.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4任一项所述方法的步骤,或者实现权利要求5至8任一项所述方法的步骤。
CN201810319863.3A 2018-04-11 2018-04-11 开卡方法、装置、相关设备及存储介质 Active CN110366161B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810319863.3A CN110366161B (zh) 2018-04-11 2018-04-11 开卡方法、装置、相关设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810319863.3A CN110366161B (zh) 2018-04-11 2018-04-11 开卡方法、装置、相关设备及存储介质

Publications (2)

Publication Number Publication Date
CN110366161A CN110366161A (zh) 2019-10-22
CN110366161B true CN110366161B (zh) 2023-01-03

Family

ID=68214346

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810319863.3A Active CN110366161B (zh) 2018-04-11 2018-04-11 开卡方法、装置、相关设备及存储介质

Country Status (1)

Country Link
CN (1) CN110366161B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116170794B (zh) * 2023-04-25 2023-08-08 深圳市微付充科技有限公司 一种用于智能卡在线空发***及其方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104918230A (zh) * 2014-03-11 2015-09-16 ***通信集团内蒙古有限公司 一种写卡方法、设备和***
CN106856465B (zh) * 2015-12-08 2019-06-28 中国电信股份有限公司 用于实现移动认证的方法、装置和***
CN105825134A (zh) * 2016-03-16 2016-08-03 中国联合网络通信集团有限公司 智能卡处理方法、智能卡管理服务器及终端
CN106709727A (zh) * 2016-12-07 2017-05-24 深圳市久和久科技有限公司 智能卡管理方法和***、终端、卡业务管理装置
CN107613487A (zh) * 2017-11-07 2018-01-19 恒宝股份有限公司 一种eSIM卡及其工作方法

Also Published As

Publication number Publication date
CN110366161A (zh) 2019-10-22

Similar Documents

Publication Publication Date Title
KR102242218B1 (ko) 사용자 인증 방법 및 장치, 및 웨어러블 디바이스 등록 방법 및 장치
US9775024B2 (en) Method for changing MNO in embedded SIM on basis of dynamic key generation and embedded SIM and recording medium therefor
KR101511460B1 (ko) 제1 단말의 sim 애플리케이션을 제2 단말로 송신하기 위한 방법
US9516019B2 (en) Method, system and terminal for encrypting/decrypting application program on communication terminal
US20140134981A1 (en) Method for changing mno in embedded sim on basis of special privilege, and embedded sim and recording medium therefor
US9390259B2 (en) Method for activating an operating system in a security module
US10511965B2 (en) Method and system for downloading software based on mobile terminal
US9250930B2 (en) Configuration method for an electronic entity
US20160036587A1 (en) Secure Key Derivation Functions
CN111191252A (zh) 一种智能卡操作***加解密方法、装置及存储介质
US9058498B2 (en) Runtime environment management of secure communications on card computing devices
CN110366161B (zh) 开卡方法、装置、相关设备及存储介质
US9665414B2 (en) Communication protocol bridge for card computing devices
CN111093190B (zh) 写入关键数据的方法、装置、***、电子设备及存储介质
CN110851881B (zh) 终端设备的安全检测方法及装置、电子设备及存储介质
KR20110005615A (ko) 사용자 매체를 이용한 무선 오티피 운영 방법 및 시스템과 이를 위한 무선단말 및 기록매체
CN108990046B (zh) 移动网络的连接方法
US10489775B2 (en) Integrated circuit card adapted to transfer first data from a first application for use by a second application
EP2996368B1 (en) Mobile electronic device
JP2023046168A (ja) Icカード,icチップおよび認証結果の記録方法
US12022294B2 (en) Access control for Near Field Communication functions
US20210176629A1 (en) Access control for near field communication functions
WO2023093140A1 (zh) Nfc卡片数据的读写方法、装置、电子设备及存储介质
US11533620B2 (en) Method of managing a tamper-proof device comprising a plurality of software containers
CN114386111A (zh) 一种芯片电路及访问控制方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant