CN115988464A - 一种智能卡的复制方法 - Google Patents
一种智能卡的复制方法 Download PDFInfo
- Publication number
- CN115988464A CN115988464A CN202211511042.2A CN202211511042A CN115988464A CN 115988464 A CN115988464 A CN 115988464A CN 202211511042 A CN202211511042 A CN 202211511042A CN 115988464 A CN115988464 A CN 115988464A
- Authority
- CN
- China
- Prior art keywords
- authentication
- sector
- unknown
- instructions
- random number
- 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
Links
Images
Landscapes
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请涉及电子产品技术领域,提供了一种智能卡的复制方法,该方法包括:在智能卡的复制过程中,当智能卡的多个扇区中包括未知扇区时协议栈向目标模组聚合发送多条认证指令,目标模组对多条认证指令分别指示的目标扇区连续进行认证得到认证过程中的目标数据;在根据目标数据确定未知扇区的实际密钥时,根据未知扇区的实际密钥从智能卡读取未知扇区中的扇区信息;根据扇区信息复制得到对应智能卡的虚拟卡。在获取破解未知扇区的密钥所需的目标数据的过程中,由目标模组对目标扇区进行认证获取目标数据,由于目标模组与智能卡一次交互所需的时间比较短,因此可以缩短获取目标数据所需的时间,从而可以缩短复制智能卡所需的时间。
Description
相关申请的交叉引用
本申请要求在2022年07月29日提交中国专利局、申请号为202210904551.5、申请名称为“智能卡的复制方法和装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及电子产品技术领域,具体涉及一种智能卡的复制方法。
背景技术
近场通信(near field communication,NFC)是一种近距离无线通讯技术。具备NFC功能的智能卡能够通过NFC协议与电子设备进行数据交互,实现移动支付、电子票务、门禁、防伪等功能。
目前,大多数电子设备都具备NFC功能,电子设备可以从智能卡获取智能卡的扇区中存储的扇区信息,基于扇区信息复制得到对应智能卡的虚拟卡,通过虚拟卡代替智能卡实现对应的功能。当前技术中,电子设备在复制智能卡时需要与智能卡进行较长时间的交互才能获取到扇区信息,导致智能卡的复制需要耗费较长的时间。
发明内容
本申请实施例提供了一种智能卡的复制方法,能够减少智能卡复制所用的时间。
第一方面,提供了一种智能卡的复制方法,应用于电子设备,所述电子设备中包括协议栈,以及用于连接智能卡和所述协议栈的多个模组,所述方法包括:
当所述智能卡的多个扇区中包括未知扇区时,所述协议栈向目标模组聚合发送多条认证指令,所述目标模组为所述多个模组中的任意一个,所述未知扇区的实际密钥与默认密钥不同;
所述目标模组对所述多条认证指令分别指示的目标扇区连续进行认证得到认证过程中的目标数据;
在根据所述目标数据确定所述未知扇区的实际密钥时,根据所述未知扇区的实际密钥从所述智能卡读取所述未知扇区中的扇区信息;
根据所述扇区信息复制得到对应所述智能卡的虚拟卡。
本申请实施例中,在获取破解未知扇区的密钥所需的目标数据的过程中,由目标模组对目标扇区进行认证获取目标数据,由于目标模组与智能卡一次交互所需的时间比较短,使得获取目标数据所需的时间缩短,从而可以缩短复制智能卡所需的时间。
当智能卡的复制时间缩短时,可以提高复制智能卡的效率,提升复制智能卡时的用户体验。
其中,当智能卡中的未知扇区较多时,需要获取的目标数据也较多,获取目标数据所需的时间也会增加,智能卡的复制时间也会增加。而当获取目标数据所需的时间较短时,可以在未知扇区较多时以较短的时间获取到所需的目标数据,从而可以缩短智能卡的复制时间。
可选地,所述多条认证指令中包括用于认证已知扇区的多条第一认证指令,所述已知扇区的实际密钥与所述默认密钥相同;
所述目标模组对所述多条认证指令分别指示的目标扇区连续进行认证得到认证过程中的目标数据,包括:
所述目标模组根据所述多条第一认证指令对所述已知扇区连续进行多次认证得到多个第一随机数,所述多个第一随机数包括所述已知扇区多次均认证通过的过程中所述智能卡发送的随机数;
其中,所述多个模组中包括近场通信控制器,在对所述扇区进行认证的过程中,所述近场通信控制器在计时节点向所述智能卡发送数据,相邻的两个所述计时节点之间的间隔时长根据所述目标模组与所述智能卡之间的交互时间确定。
可选地,所述多条认证指令中还包括对应所述未知扇区的第二认证指令和第三认证指令,所述第二认证指令用于认证辅助扇区,所述第三认证指令用于认证所述未知扇区,所述辅助扇区为任意一个所述已知扇区;
所述目标模组对所述多条认证指令分别指示的目标扇区连续进行认证得到认证过程中的目标数据,包括:
所述目标模组根据所述第二认证指令和所述第三认证指令连续对所述辅助扇区和所述未知扇区进行认证,得到所述智能卡在认证所述辅助扇区时发送的第二随机数,以及所述智能卡在认证所述未知扇区时发送的加密后的第三随机数;
其中,所述未知扇区在所述辅助扇区认证通过后认证。
可选地,所述方法还包括:在所述已知扇区认证未通过时,所述协议栈向所述目标模组重发所述多条第一认证指令;所述目标模组根据重发的所述多条第一认证指令重新对所述已知扇区进行连续认证,以重新获取所述多个第一随机数。
本申请实施例中,在连续对已知扇区进行认证时,若已知扇区认证未通过,协议栈可以向目标模组重发多条第一认证指令,目标模组根据重发的多条第一认证指令可以重复对已知扇区进行连续认证,以再次获取连续的第一随机数。在获取第一随机数的过程中,可以在认证出错时再次获取第一随机数,以根据再次获取的第一随机数破解未知扇区的密钥,可以降低由于第一随机数获取出现异常导致未知扇区破解失败的概率。
可选地,所述方法还包括:在所述辅助扇区认证未通过时,所述协议栈向所述目标模组重发所述第二认证指令和所述第三认证指令;
所述目标模组根据重发的所述第二认证指令和所述第三认证指令重新对所述辅助扇区和所述未知扇区进行连续认证,以重新获取所述第二随机数和所述加密后的第三随机数。
本申请实施例中,在对辅助扇区和未知扇区进行连续认证时,若辅助扇区认证未通过,协议栈可以重发第二认证指令和第三认证指令,目标模组可以根据重发的第二认证指令和第三认证指令重复实施对辅助扇区和未知扇区进行连续认证的过程,以再次获取到第二随机数和加密随机数。在获取第二随机数和加密后的第三随机数的过程中,可以在辅助扇区认证出错时再次对辅助扇区和未知扇区进行认证,以根据再次获取的第二随机数和加密后的第三随机数破解未知扇区的密钥,可以降低由于第二随机数和加密后的第三随机数获取出现异常导致未知扇区破解失败的概率。
可选地,所述多条认证指令中包括多组所述第二认证指令和所述第三认证指令。
本申请实施例中,在获取未知扇区对应的第二随机数和加密后的第三随机数时,可以聚合发送多组第二认证指令和第三认证指令,使目标模组可以根据多组第二认证指令和第三认证指令一次性获取多组第二随机数和加密后的第三随机数,以根据多组第二随机数和加密后的第三随机数一次性确定未知扇区的多组备选密钥,可以在较短的时间内确定未知扇区的多组备选密钥,从而可以提高密钥破解效率,缩短智能卡的复制时间。
可选地,当所述未知扇区为多个时,所述多条认证指令中包括多个所述未知扇区分别对应的所述第二认证指令和所述第三认证指令。
本申请实施例中,当未知扇区为多个时,可以聚合发送多个未知扇区的第二认证指令和第三认证指令,使目标模组可以根据多个未知扇区的第二认证指令和第三认证指令一次性获取多个未知扇区的第二随机数和加密后的第三随机数,以根据多个未知扇区的第二随机数和加密后的第三随机数一次性确定多个未知扇区的备选密钥,可以在较短的时间内确定多个未知扇区的备选密钥,从而提高密钥破解效率,缩短智能卡的复制时间。
可选地,所述根据所述目标数据确定所述未知扇区的实际密钥,包括:
所述协议栈在根据所述目标数据确定所述未知扇区的多个备选密钥后,向所述目标模组聚合发送多条第四认证指令,所述多条第四认证指令中分别包括不同的所述备选密钥;
所述目标模组根据所述多条第四认证指令中的所述备选密钥连续对所述未知扇区进行认证得到第一认证结果;
在所述第一认证结果指示所述未知扇区认证通过时,将所述第一认证结果对应的所述备选密钥作为所述未知扇区的实际密钥。
本申请实施例中,在验证未知扇区的备选密钥时,协议栈向目标模组聚合发送多条认证指令,触发目标模组使用多个备选密钥依次对未知扇区进行认证,从多个备选密钥中确定实际密钥,可以减少协议栈与目标模组之间的交互次数,从而可以缩短验证备选密钥所需的时间,进而可以缩短智能卡的复制时间。
可选地,所述根据所述未知扇区的实际密钥从所述智能卡读取所述未知扇区中的扇区信息,包括:所述协议栈向所述目标模组聚合发送多个待读取扇区的读卡指令,所述多个待读取扇区包括多个所述未知扇区,或者包括已知扇区和所述未知扇区,所述已知扇区的实际密钥与所述默认密钥相同;
所述目标模组根据多个所述读卡指令连续从所述智能卡读取所述多个待读取扇区中的扇区信息。
本申请实施例中,在扇区信息的读取过程中,协议栈可以将多个扇区的读卡指令聚合发送至目标模组,目标模组根据每条读卡指令读取对应扇区中的扇区信息,可以减少协议栈与目标模组之间的交互次数,实现扇区信息的快速读取,缩短扇区信息的读取时间,从而可以缩短智能卡的复制时间。
可选地,在所述协议栈向目标模组聚合发送多条认证指令之前,所述方法还包括:所述协议线向所述目标模组聚合发送多条第五认证指令,所述第五认证指令中包括所述默认密钥;
所述目标模组根据所述多条第五认证指令中的所述默认密钥分别对所述多个扇区进行认证得到每个所述扇区的第二认证结果;
所述目标模组向所述协议栈发送所述第二认证结果,以使所述协议栈根据所述第二认证结果确定所述扇区是否为所述未知扇区。
本申请实施例中,在确定已知扇区和未知扇区的过程中,协议栈将多个扇区的认证指令聚合发送至目标模组,由目标模组根据多条认证指令连续对智能卡中的多个扇区进行认证,得到并向协议栈发送每个扇区的认证结果,减少了协议栈在获取每个扇区的认证结果的过程中与智能卡之间的交互次数,可以缩短确定扇区为已知扇区或未知扇区时所用的时间,以快速确定已知扇区和未知扇区,从而可以缩短智能卡的复制时间。
可选地,所述协议栈向目标模组聚合发送多条认证指令,包括:所述协议栈将所述多条认证指令聚合为一条或多条聚合指令,向所述目标模组发送所述聚合指令;或者,所述协议栈向所述目标模组发送一个或多个指令包,所述指令包中包括多条所述认证指令。
可选地,所述目标模组为近场通信控制器、近场通信驱动程序和近场通信硬件抽象层中的任意一个。
第二方面,提供了一种电子设备,包括:一个或多个处理器和一个或多个存储器;所述一个或多个处理器与所述一个或多个存储器耦合,所述一个或多个存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述一个或多个处理器执行所述计算机指令时,使得所述电子设备执行如第一方面所述的任一种方法。
第三方面,提供了一种可读存储介质,所述可读存储介质中存储有计算机程序产品,所述计算机程序产品中包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如第一方面所述的任一种方法。
第四方面,提供了一种芯片系统,其特征在于,所述芯片系统应用于电子设备,所述芯片系统包括一个或多个处理器,所述处理器用于调用计算机指令以使得所述电子设备执行如第一方面所述的任一种方法。
第五方面,提供了一种计算机程序产品,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如第一方面所述的任一种方法。
附图说明
图1示出了本申请实施例提供的一种智能卡的复制场景示意图。
图2示出了本申请实施例提供的一种NFC实现系统的组成示意图。
图3示出了相关技术中的一种智能卡的认证过程的交互示意图。
图4示出了本申请实施例提供的一种智能卡的复制流程示意图。
图5示出了相关技术中的一种默认密钥的认证流程示意图。
图6示出了相关技术中的一种密钥破解过程中的交互示意图。
图7示出了相关技术中的一种密钥破解过程中的时序图。
图8示出了一种适用于该复制方法的电子设备的硬件系统。
图9示出了本申请实施例提供的一种认证过程中的交互示意图。
图10示出了本申请实施例提供的另一种认证过程中的交互示意图。
图11示出了本申请实施例提供的一种密钥破解过程中的时序图。
图12示出了本申请实施例提供的一种密钥破解过程中的交互示意图。
图13示出了本申请实施例提供的一种读卡过程中的交互示意图。
图14示出了本申请实施例提供的另一种电子设备的结构示意图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
本文中术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本文中术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
为了便于理解本申请实施例中提供的技术方案,首先对相关技术进行简要介绍。
基于NFC的智能卡能够通过NFC协议与终端设备进行通信,实现相应的功能。终端设备例如销售点(point of sales,POS)机,用户可以将具备NFC功能的公交卡靠近公交车上的POS机,完成乘车刷卡,将具备NFC功能的门禁卡靠近门口的POS机,完成门禁刷卡。
目前,大多数电子设备都具备NFC功能,在具备NFC功能的电子设备中可以创建与智能卡等同的虚拟卡,虚拟卡可以使电子设备像智能卡一样通过NFC协议与其他电子设备进行通信,完成开启门禁、乘坐公交地铁、移动支付等业务。例如,用户可以打开手机(电子设备)中的虚拟公交卡,将手机靠近公交车上的POS机,完成乘车刷卡。
针对智能卡,可以将智能卡的卡片信息读取到电子设备中,电子设备可以通过卡片信息复制得到对应的虚拟卡,通过虚拟卡使电子设备实现与智能卡相同的功能。
图1示出了本申请实施例提供的一种智能卡的复制场景示意图,该场景中包括电子设备100和智能卡200,当用户需要使电子设备100实现与智能卡200相同的功能时,可以在电子设备100上复制得到智能卡200对应的虚拟卡。
智能卡200例如具备NFC功能的公交卡,用户将智能卡200置于电子设备100的一定范围内时,电子设备100与智能卡200之间可以通过NFC协议进行通信。电子设备的用户界面(user interface,UI)101中显示有用于复制智能卡的至少一个控件102,当用户触发控件102时,电子设备100可以从智能卡200中获取智能卡200的卡片信息,通过卡片信息复制得到对应的虚拟卡。复制得到的虚拟卡为虚拟公交卡,当用户打开电子设备200中的虚拟公交卡,并将电子设备200靠近公交车上的POS机时,可以实现乘车刷卡。
其中,智能卡中通常包括多个扇区(sector),每个扇区中包括若干个块(block),每个块中可以存储若干个字节(byte)的数据。以现有的一种符合ISO/IEC14443A类标准的智能卡为例,该智能卡的每个扇区中包括4个块,分别为块0、块1、块2和块3,块0、块1和块2为数据块,块3为控制块,数据块中存储数据,控制块中存储扇区的一个或多个密钥。
在智能卡的复制过程中,电子设备需要读取多个扇区中存储的扇区信息,以组合多个扇区中的扇区信息得到智能卡的卡片信息。可以理解的是,部分扇区可能是空扇区,空扇区中并未存储数据,并不需要读取。扇区信息包括数据块中存储的数据和控制块中存储的密钥。
其中,电子设备在对扇区中的扇区信息进行读写时,需要使用与控制块中存储的密钥相同的密钥进行认证,认证通过之后,才能对扇区中的扇区信息进行读写。
扇区中的密钥通常由智能卡的发行方或供应方设置,智能卡的发行方可以为每个扇区设置默认密钥,默认密钥为公知的密钥。智能卡的供应方可以对智能卡进行操作,例如向扇区中写入数据,或者对扇区中存储的默认密钥进行修改,为用户提供更加安全的访问认证。
例如,每个扇区的控制块中可以保存两个6字节的密钥,一个密钥为KeyA,另一个密钥为KeyB。智能卡发行时,所有扇区中的密钥被设置为默认密钥,默认密钥例如0xFFFFFFFFFFFF、0x000000000000和0x111111111111,默认密钥也可以为其他密钥。供应方可以对部分或全部扇区中的默认密钥进行修改,以对扇区中的扇区信息进行有效的保护。
在复制智能卡时,电子设备首先通过默认密钥对智能卡中的扇区进行认证,当某个扇区认证通过时,确定默认密钥与该扇区的实际密钥(实际密钥为扇区的控制块中存储的密钥)相同。而当某个扇区认证未通过时,确定默认密钥与该扇区的实际密钥不同,需要破解得到该扇区的实际密钥。
为便于区分,本实施例将实际密钥与默认密钥相同的扇区称为已知扇区,将实际密钥与默认密钥不同的扇区称为未知扇区,当然也可以用其他名称命名已知扇区和未知扇区,本实施例对此不做限制。
图2示出了本申请实施例提供的一种NFC实现系统的组成示意图。NFC实现系统中包括硬件部分的硬件模组和软件部分的多个软件模组。软件模组安装在电子设备100的操作系统(operating system,OS)中,包括NFC适配器(adapter)、NFC服务(service)、NFC协议栈(stack)、NFC硬件抽象层(hardware abstraction layer,HAL)和NFC驱动程序(driver,DRV),多个软件模组用于实现应用程序(application APP)与NFCC之间的NFC单线协议(single wire protocol,SWP)。硬件模组安装在电子设备的硬件电路中,包括近场通信控制器(near field communication controller,NFCC)。
APP通过NFC适配器和NFC服务与NFC协议栈交互,APP发送的数据经由NFC适配器和NFC服务传递至协议栈,协议栈将数据转换为NFC协议格式的数据。协议栈可以通过NFC硬件抽象层调用NFC驱动程序,将NFC协议格式的数据传递给NFCC。NFCC建立与智能卡之间的NFC连接,NFCC在接收到协议栈发送的数据之后,将数据发送给智能卡。同理,NFCC在接收到智能卡发送的数据之后,通过NFC硬件抽象层和NFC驱动程序将数据上传给协议栈,协议栈将NFC协议格式的数据转换为APP可用的数据格式,经NFC服务和NFC适配器将数据传递给APP。
其中,NFCC与智能卡之间通过空中接口进行交互,一次空口交互的时间为毫秒级,但是由于各软件模组分多层进行操作系统适配,各软件模组将在不同线程或进程间运行,数据从NFCC传递至协议栈需要消耗较长的时间,数据从协议栈传递至NFCC也需要消耗较长时间。在NFCC与智能卡的每次交互过程中,时间主要消耗在协议栈与NFC硬件抽象层之间的数据交互,协议栈与NFC硬件抽象层、NFC驱动程序和NFCC中的任意一个互相发送数据时均需要消耗较长时间。
正常情况下,APP发送指令(例如认证指令或读卡指令)到接收到智能卡发送的反馈结果大概需要20ms。异常情况下,APP发送指令到接收到反馈结果甚至达到50ms,交互过程中的时间大多数消耗在NFCC与协议栈之间。
图3示出了相关技术中的一种智能卡的认证过程的交互示意图,以智能卡的加密算法为crypto1为例,crypto1加密算法采用三轮认证,在对智能卡中的每个扇区进行认证时,电子设备与智能卡之间需要进行多次交互。
如图3所示,认证过程3中包括多个步骤,电子设备首先生成认证指令(authorization_command,AUTH_cmd),然后执行步骤31,向智能卡发送认证指令。
智能卡在接收到认证指令之后,首先生成随机数(智能卡生成的随机数用符号RA表示),然后执行步骤32,向电子设备发送随机数RA。
电子设备在接收到智能卡发送的随机数RA之后,首先生成一个随机数(电子设备生成的随机数用符号RB表示),并采用认证指令中的密钥对随机数RA和随机数RB进行加密。然后执行步骤33,向智能卡发送加密后的随机数RA和随机数RB。
智能卡在接收到加密后的随机数RA和随机数RB之后,使用扇区中存储的密钥行解密,若解密得到的随机数RA与生成的随机数RA相同,则确定电子设备认证通过。然后使用扇区中的密钥对解密得到的随机数RB进行加密,并执行步骤34,将加密后的随机数RB发送给电子设备。
电子设备在接收到加密后的随机数RB之后,使用认证指令中的密钥对加密后的随机数RB进行解密,若解密得到的随机数RB与生成的随机数RB相同,则确定扇区认证通过,反之确定扇区未认证通过。
其中,在对智能卡中的一个扇区连续进行多次认证或者对多个扇区依次进行认证时,在第一次认证时智能卡向电子设备明文发送生成的随机数RA。在第一次认证通过之后,在第二次认证时智能卡会使用扇区中的密钥对随机数RA进行加密得到加密后的随机数RA,并向电子设备发送加密后的随机数RA,加密后的随机数RA以下简称加密随机数。
如图3所示,在对一个扇区连续进行多次认证或者对多个扇区依次进行认证时,需要循环多次进行认证过程3。在第一个认证过程3中,电子设备在步骤32中接收到的为智能卡明文发送的一个随机数RA。在第二个认证过程3中,电子设备在步骤32中接收到的为智能卡发送的加密随机数,加密随机数为使用扇区中的密钥对另一个随机数RA进行加密得到。
由于加密随机数通过扇区中的密钥对随机数RA进行加密得到,因此加密随机数中不仅包括了随机数RA,而且还包括了扇区中存储的实际密钥。若确定了加密随机数中包括的随机数RA,根据随机数RA和加密随机数可以预测得到多个可能的密钥,从多个可能的密钥中可以确定扇区的实际密钥,可能的密钥以下简称备选密钥。
其中,随机数RA由智能卡中内置的随机数生成器生成,随机数生成器例如线性反馈移位寄存器(linear feedback shift register,LFSR)。在智能卡与电子设备建立连接并上电运行之后,随机数生成器在智能卡的每个时钟周期生成一个随机数RA。针对任意的两个随机数RA,后一个随机数RA由前一个随机数RA经过若干次移位之后得到,移位次数为两个随机数RA之间的随机数距离。
基于相邻的两个随机数之间的关系和加密随机数的生成机制,在破解未知扇区的密钥时,可以从至少一个已知扇区中选择一个已知扇区作为辅助扇区,然后连续对辅助扇区和未知扇区进行认证,得到智能卡在认证辅助扇区时发送的第一个随机数RA和认证未知扇区时发送的加密随机数,加密随机数中包括了第二个随机数RA和未知扇区的实际密钥。
确定第一个随机数RA和第二个随机数RA之间的随机数距离,然后根据随机数距离和第一个随机数RA可以预测得到第二个随机数RA。进一步地,可以根据预测得到的第二个随机数RA和加密随机数预测得到未知扇区的多个备选密钥,从备选密钥中确定未知扇区的实际密钥,从而可以实现未知扇区的密钥破解。
示例性地,在破解未知扇区的密钥时,首先启动NFCC按预设的计时时长连续计时,使NFCC在计时节点向智能卡发送数据。连续对一个已知扇区进行多次认证,每条认证指令在其中一个计时节点发送至智能卡,以接收智能卡在每次认证过程中发送的随机数RA,得到连续的多个随机数RA,连续对已知扇区进行多次认证时的随机数RA可以称为第一随机数。
其中,由于相邻的两个计时节点之间的间隔时长固定,因此相邻的两条认证指令的发送时间之间的间隔时长固定,可以使接收到的相邻的两个第一随机数之间的间隔时长固定,该间隔时长对应电子设备接收到的相邻的两个第一随机数之间的随机数距离。
在获取到连续的多个第一随机数之后,可以计算相邻的两个第一随机数之间的随机数距离,得到多个随机数距离。由于相邻的两个第一随机数之间的间隔时长固定,因此多个随机数距离相同或接近,根据多个随机数距离可以计算得到一个较为准确的随机数距离,该随机数距离可以称之为目标随机数距离。可以将目标随机数距离作为NFCC在计时节点向智能卡发送数据时,NFCC接收到的相邻的两个随机数RA之间的随机数距离。
进一步地,可以选择一个已知扇区作为辅助扇区,连续对辅助扇区和未知扇区进行认证,每条认证指令分别在一个计时节点发送至智能卡,获取认证辅助扇区时智能卡发送的随机数RA(对辅助扇区进行认证时的随机数RA称为第二随机数),以及获取认证未知扇区时智能卡发送的加密随机数,加密随机数中包括的随机数RA可以称为第三随机数。
接着,将目标随机数距离作为第二随机数和第三随机数之间的随机数距离,根据第二随机数和目标随机数距离可以预测得到第三随机数,根据预测得到的第三随机数和加密随机数可以预测得到未知扇区的多个备选密钥。最后,从多个备选密钥中确定未知扇区的实际密钥。
其中,由于智能卡的时间与电子设备的时间并不同步,因此计算得到的随机数距离与实际的随机数距离存在一定的偏差。偏差越大时,基于随机数距离预测得到第三随机数的准确性越低,会导致基于第三随机数预测得到的备选密钥的准确性越低。
图4示出了本申请实施例提供的一种智能卡的复制流程示意图。在智能卡的复制过程中,首先执行步骤41,使用默认密钥对智能卡中的每个扇区分别进行认证,得到每个扇区的认证结果,认证结果指示扇区为已知扇区或未知扇区。
在得到每个扇区的认证结果之后执行步骤42,根据每个扇区的认证结果确定智能卡中是否存在未知扇区,若不存在未知扇区则执行步骤44,若存在未知扇区则执行步骤43。
在步骤43中,破解得到每个未知扇区的实际密钥。步骤43包括子步骤431至子步骤438等多个子步骤,具体内容如下:
子步骤431,NFCC开始按预设的计时时长连续进行计时,使得NFCC在接收到协议栈发送的数据时,可以在计时节点将数据发送至智能卡。
子步骤432,从步骤42确定的至少一个已知扇区中选择一个或多个已知扇区,对选择的已知扇区进行连续认证,记录每个认证过程中智能卡发送的第一随机数,得到连续的多个第一随机数。
子步骤433,确定相邻的两个第一随机数之间的随机数距离得到多个随机数距离,根据多个随机数距离计算得到目标随机数距离。
子步骤434,针对未知扇区,从步骤42确定的至少一个已知扇区中选择一个已知扇区作为辅助扇区。
子步骤435,对辅助扇区和未知扇区连续进行认证,得到第二随机数和加密后的第三随机数。
子步骤436,根据第二随机数和目标随机数距离预测得到第三随机数。
子步骤437,根据预测得到的第三随机数和加密后的第三随机数预测得到多个备选密钥。
子步骤438,使用备选密钥对未知扇区进行认证得到认证结果,当认证结果指示认证通过时,将认证时使用的备选密钥作为未知扇区的实际密钥。相反的,当认证结果指示认证未通过时,返回步骤434,重复执行步骤434至步骤438,直至确定未知扇区的实际密钥。
可以理解的是,针对每个未知扇区可以分别执行步骤434至步骤438,确定每个未知扇区的实际密钥。
在步骤44中,根据每个扇区的实际密钥从智能卡获取扇区中的扇区信息,然后执行步骤45,根据每个扇区的扇区信息组成得到卡片信息,根据卡片信息复制得到智能卡对应的虚拟卡。
需要说明的是,以上仅为示例性举例,并不构成对智能卡的复制过程的具体限制。
图5示出了相关技术中的一种默认密钥的认证流程示意图。图5所示的认证流程54为图4中的步骤41。
在使用默认密钥对智能卡中的扇区进行认证的过程中,电子设备首先执行步骤51,获取智能卡的相关信息。相关信息例如智能卡的标识信息、型号、存储空间大小,以及每个扇区的扇区标识等,但不限于此。
在获取到相关信息后,执行步骤52,建立与智能卡之间的NFC连接。在建立NFC连接之后,执行步骤53,从智能卡中获取扇区计数(sector count),扇区计数即扇区数量。在获取到扇区计数之后,循环执行步骤54,循环次数与扇区计数相同,每次循环对应一个扇区。
步骤54中包括子步骤541、子步骤542、子步骤543和子步骤544。以其中一个扇区为例,在执行步骤541时,协议栈使用多个默认密钥依次对扇区进行认证,确定扇区中存储的密钥KeyA与默认密钥是否相同,当某个默认密钥与密钥KeyA相同时,执行子步骤542,记录默认密钥为扇区的实际密钥。
同样的,在执行步骤543时,使用多个默认密钥依次对扇区进行认证,确定扇区中存储的密钥KeyB与默认密钥是否相同,当某个默认密钥与密钥KeyB相同时,执行子步骤544,记录默认密钥为扇区的实际密钥。
协议栈对每个扇区执行一次步骤54,确定默认密钥为扇区中的实际密钥KeyA和/或KeyB。当扇区中存储的实际密钥与每个默认密钥均不同时,确定扇区为未知扇区;当扇区中存储的实际密钥与其中一个默认密钥相同时,确定扇区为已知扇区。
电子设备在对每个扇区进行认证时,电子设备中的协议栈均需要与智能卡进行交互,向NFCC发送认证指令,并接收NFCC向协议栈发送的认证结果,导致每次认证均需要耗费较长时间。
例如,智能卡的扇区数量为40,每个扇区中存储的密钥数量为2,默认密钥为3个。针对每个扇区,协议栈需要执行一次步骤54,在子步骤541中,使用3个默认密钥依次认证扇区中的密钥KeyA,当第一个默认密钥认证通过时,另外两个默认密钥不需要认证,此时子步骤541消耗的时长大概为20ms。当第一个默认密钥认证未通过时,若第二个默认密钥认证通过,则子步骤541消耗的时长大概为70ms,第三个默认密钥不需要认证。当第一个默认密钥和第二密钥认证未通过时,若第三个默认密钥认证通过,则步骤541消耗的时长大概为120ms。子步骤543与子步骤541相同,若多个扇区的认证通过率平均为2次,则40个扇区平均需要耗时为40×2×70=5600ms。也就是说,在确定智能卡中的扇区为已知扇区或未知扇区时,需要耗费较长的时间。
图6示出了相关技术中的一种密钥破解过程中的交互示意图。图6所示的认证过程6为图4所示步骤41和步骤43中的每个认证过程中的交互示意图。
在破解未知扇区的密钥时,由电子设备中的协议栈实施认证过程6,NFCC按固定的计时时长连续计时,可以得到连续的计时节点。在认证过程中,NFCC在接收到协议栈发送的数据时,等待计时节点到来时将数据转发至智能卡。
图7示出了相关技术中的一种密钥破解过程中的时序图。NFCC的计时时长为20毫秒(ms),NFCC按20ms的计时时长连续计时,相邻的两个计时节点之间的间隔时长为20ms,从0ms开始,每隔20ms出现一个计时节点。NFCC在接收到协议栈发送的数据时,在计时节点将数据发送给智能卡。
如图6所示,每个认证过程6中包括多个步骤,在认证时协议栈首先生成认证指令,然后执行步骤61,向NFCC发送认证指令,认证指令中包括待认证扇区(待认证扇区未上述举例中的已知扇区、未知扇区或辅助扇区)的密钥。
NFCC在接收到协议栈发送的认证指令之后,等待计时节点出现时执行步骤62,向智能卡发送认证指令。需要说明的是,NFCC向协议栈发送的认证指令中不包括待认证扇区的密钥,NFCC向协议栈发送的认证指令也可以称为认证请求。
智能卡在接收到认证指令之后,首先生成随机数RA,然后执行步骤63,向NFCC发送随机数RA。
NFCC在接收到智能卡发送的随机数RA之后,执行步骤64,向协议栈转发随机数RA。
协议栈接收到随机数RA之后,首先生成随机数RB,并对随机数RA和随机数RB进行加密,然后执行步骤65,向NFCC发送加密后的随机数RA和随机数RB。
NFCC在接收到加密后的随机数RA和随机数RB之后,在计时节点出现时执行步骤66,向智能卡发送加密后的随机数RA和随机数RB。
智能卡在接收到加密后的随机数RA和随机数RB之后进行解密,若解密得到的随机数RA与生成的随机数RA相同,则确定电子设备认证通过。然后对解密得到的随机数RB进行加密,并执行步骤67,将加密后的随机数RB发送给NFCC。
NFCC在接收到加密后的随机数RB之后,执行步骤68,向协议栈转发加密后的随机数RB。
协议栈在接收到加密后的随机数RB之后,对加密后的随机数RB进行解密,若解密得到的随机数RB与生成的随机数RB相同,则确定待认证扇区认证通过,反之确定待认证扇区未认证通过。
如上所述,数据在NFCC与协议栈之间传输时需要消耗较长的时间,通常会超过15毫秒(ms)。因此,在破解未知扇区的密钥时,NFCC的计时时长需要大于15ms(例如图7所示的20ms)才能使智能卡发送的数据在下一个计时节点出现之前传递至协议栈。在实际实现中,采用折中的20ms作为NFCC的计时时长,而且数据从NFCC发送到协议栈的时间超过20ms的概率约为8%。
在破解未知扇区的密钥时,协议栈需要通过NFCC与智能卡进行多次交互,由于在每次交互过程中协议栈与NFCC之间互相发送数据需要消耗较长的时间,导致每次交互均需要消耗较长的时间,从而导致未知扇区的破解需要消耗较长的时间,进一步地会导致智能卡的复制需要消耗较长时间。
如图7所示,相邻的两个计时节点之间间隔20ms,因此在破解过程中,每次认证过程消耗的时间以20ms为单位成倍增加。20ms的时间间隔不仅使破解一个未知扇区的密钥需要消耗大概9000ms,而且8%的超时概率会导致重试。因此,破解过程需要较长的时间,导致智能卡的复制时间较长,用户体验较差。
同时,由于协议栈与智能卡之间一次交互需要较长时间,导致NFCC的计时时长较长,计时时长较长时,会导致计算得到的随机数距离的偏差较大,从而会导致基于随机数距离预测得到的备选密钥的准确性较低。
而备选密钥的准确性较低时,在预测得到多个备选密钥之后,需要经过较多次数的认证才能从多个备选密钥中确定未知扇区的实际密钥,也会消耗较长的时间,会进一步增加复制智能卡所用的时间。并且,备选密钥的准确性较低时,多个备选密钥中存在实际密钥的概率降低,当多个备选密钥中未包括未知扇区的实际密钥时,需要重新进行破解,也会增加一定的时间。
鉴于上述问题,本申请实施例提供一种智能卡的复制方法,在智能卡的复制过程中,当智能卡中包括未知扇区时,由目标模组对智能卡中的目标扇区进行认证以获取破解密钥所需的目标数据。通过目标模组与智能卡进行交互,由于目标模组与智能卡一次交互所需的时间比较短,使得获取目标数据所需的时间缩短,从而可以缩短复制智能卡所需的时间。
其中,目标模组可以是图2所示的NFC驱动程序、NFC硬件抽象层和NFCC中的任意一个。
需要说明的是,本实施例提供的智能卡的复制方法是在取得相关授权的情况下实施的技术方案,智能卡的复制符合相关法律法规的规定。
图8示出了一种适用于该复制方法的电子设备的硬件系统。电子设备800可以是手机、智慧屏、平板电脑、可穿戴电子设备、车载电子设备、增强现实(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultramobile personal computer,UMPC)、上网本、个人数字助理(personal digitalassistant,PDA)、投影仪等等,本申请实施例对电子设备800的具体类型不作任何限制。
电子设备800可以包括处理器810、无线通信模块820、移动通信模块830、显示屏840、存储模块850、电源模块860、天线1和天线2。电子设备800中还可以包括传感器模块,音频模块,通用串行总线(universal serial bus,USB)接口,充电管理模块,电源管理模块,电池,以及外部存储器接口,内部存储器,扬声器,受话器,麦克风,耳机接口,按键,马达,指示器,以及用户标识模块(subscriber identification module,SIM)卡接口等。
处理器810可以包括一个或多个处理单元。例如,处理器810可以包括以下处理单元中的至少一个:应用处理器(application processor,AP)、调制解调处理器、图形处理器(graphics processing unit,GPU)、图像信号处理器(image signal processor,ISP)、控制器、视频编解码器、数字信号处理器(digital signal processor,DSP)、基带处理器、神经网络处理器(neural network processing unit,NPU)。其中,不同的处理单元可以是独立的器件,也可以是集成的器件。
电子设备800的无线通信功能可以通过天线1、天线2、无线通信模块820、移动通信模块830、调制解调处理器以及基带处理器等器件实现。
其中,无线通信模块820可以提供应用在电子设备800上的无线通信解决方案,例如NFC技术,上述NFCC设置在无线通信模块820中。无线通信模块820还可以提供其他无线通信解决方案。无线通信模块820可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块820经由天线1接收电磁波,将电磁波信号调频以及滤波处理,并将处理后的信号发送到处理器810。无线通信模块820还可以从处理器810接收待发送的信号,对其进行调频和放大,该信号经天线1转变为电磁波辐射出去。
移动通信模块830可以提供应用在电子设备800上的无线通信的解决方案,例如下列方案中的至少一个:第二代(2th generation,2G)移动通信解决方案、第三代(3thgeneration,3G)移动通信解决方案、第四代(4th generation,5G)移动通信解决方案、第五代(5th generation,5G)移动通信解决方案。移动通信模块830可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块830可以由天线2接收电磁波,并对接收的电磁波进行滤波和放大等处理,随后传送至调制解调处理器进行解调。移动通信模块830还可以放大经调制解调处理器调制后的信号,放大后的该信号经天线2转变为电磁波辐射出去。
电子设备800可以通过GPU、显示屏840以及应用处理器实现显示功能。GPU为图像处理的微处理器,连接显示屏840和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器810可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏840可以用于显示图像或视频。显示屏840包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD)、有机发光二极管(organic lightemitting diode,OLED)、有源矩阵有机发光二极体(active matrix organic lightemitting diode,AMOLED)、柔性发光二极管(flex light emitting diode,FLED)、迷你发光二极管(mini light emitting diode,Mini LED)、微型发光二极管(micro lightemitting diode,Micro LED)、微型OLED(Micro OLED)或量子点发光二极管(quantum dotlight emitting diodes,QLED)。
存储模块850用于存储指令和数据,存储模块850例如高速缓冲存储器。存储模块850可以保存处理器810刚用过或循环使用的指令或数据。如果处理器810需要再次使用该指令或数据,可从所述存储模块850中直接调用。避免了重复存取,减少了处理器810的等待时间,因而提高了系统的效率。
上述处理器810可以和存储模块850合成一个处理装置,更常见的是彼此独立的部件。具体实现时,存储模块850也可以集成在处理器810中,或者独立于处理器810。
电源模块860用于给电子设备800中的各种器件或电路提供电源,可以包括充电管理单元、电源管理单元和电池等。
需要说明的是,图8所示的各模块间的连接关系只是示意性说明,并不构成对电子设备800的各模块间的连接关系的限定。可选地,电子设备800的各模块也可以采用上述实施例中多种连接方式的组合。图8所示的结构并不构成对电子设备800的具体限定。电子设备800可以包括比图8所示的部件更多或更少的部件,或者,电子设备800可以包括图8所示的部件中某些部件的组合,或者,电子设备800可以包括图8所示的部件中某些部件的子部件。图8示的部件可以以硬件、软件、或软件和硬件的组合实现。
在实施例提供的智能卡的复制方法中,当智能卡的多个扇区中包括未知扇区时,协议栈向目标模组聚合发送多条认证指令;由目标模组对多条认证指令分别指示的目标扇区连续进行认证得到认证过程中的目标数据;在根据目标数据确定未知扇区的实际密钥时,根据未知扇区的实际密钥从智能卡读取未知扇区中的扇区信息;最后根据扇区信息复制得到对应智能卡的虚拟卡。
如图4所示,电子设备首先执行步骤41和步骤42,确定智能卡的多个扇区中是否包括未知扇区。
可选地,确定智能卡的多个扇区中是否包括未知扇区的步骤可以包括:
协议线向目标模组聚合发送多条第五认证指令,第五认证指令中包括默认密钥;
目标模组根据多条第五认证指令中的默认密钥分别对多个扇区进行认证得到每个扇区的第二认证结果,并向协议栈发送第二认证结果;
协议栈根据第二认证结果确定扇区是否为未知扇区。
在一种实施方式中,在确定智能卡中的已知扇区和未知扇区的过程中,协议栈可以生成每个扇区的认证指令,认证指令中包括默认密钥。为便于区分,本实施例将确定已知扇区和未知扇区时的认证指令称为第五认证指令。
协议栈可以将多条第五认证指令聚合发送至目标模组,由目标模组基于多条第五认证指令依次对每个扇区进行认证,得到每个扇区的认证结果,并向协议栈返回每条第五认证指令对应的认证结果。为便于区分,本实施例将第五认证指令对应的认证结果称为第二认证结果。
其中,聚合发送指的是同时发送。例如,协议栈可以将多条第五认证指令聚合到一条NCI(NFC controller interface,NCI)指令中,向目标模组发送NCI指令,以实现多条第五认证指令的同时发送。或者,协议栈可以将多条第五认证指令打包为一个指令包,向目标模组发送指令包。聚合发送的具体形式可以根据需求设置,本实施例对此不做限制。
以智能卡中的扇区1为例,针对扇区1中的密钥KeyA,协议栈可以生成3条第五认证指令,每条第五认证指令中分别包括一个默认密钥,以及扇区1的扇区标识和密钥KeyA的密钥指示。密钥指示用于指示对扇区1中的密钥KeyA进行认证。第五认证指令中的扇区标识可以从预先获取的相关信息中获取,密钥指示可以是密钥在扇区1中的存储位置,但不限于此。
同理,针对扇区1中的密钥KeyB,可以生成3条第五认证指令,每条第五认证指令中分别包括一个默认密钥,以及扇区1的扇区标识和密钥KeyB的密钥指示。每条第五认证指令中的密钥指示用于指示对扇区中的密钥KeyB进行认证。以此类推,当需要对每个扇区均进行认证时,针对每个扇区可以分别生成6条第五认证指令,包括针对密钥KeyA的3条第五认证指令和针对密钥KeyB的3条第五认证指令,当智能卡中包括40个扇区时,总共可以生成240条第五认证指令。
以目标模组为NFCC为例,在确定已知扇区和未知扇区的过程中,协议栈可以将多个扇区的第五认证指令聚合到一条NCI指令中,将NCI指令下发至NFCC。NFCC在接收到NCI指令后,可以从NCI指令中解析获取多条第五认证指令。
可选地,协议栈在向目标模组发送认证指令时,可以将多条认证指令聚合为一条或多条聚合指令,向目标模组发送聚合指令;或者,协议栈向目标模组发送一个或多个指令包,指令包中包括多条认证指令。
示例性地,协议栈在向目标模组聚合发送多条第五认证指令时,可以一次性向目标模组聚合发送所有第五认证指令,也可以分多次,每次向目标模组聚合发送多条第五认证指令。例如,协议栈可以将所有第五认证指令聚合为一条NCI指令,向NFCC发送NCI指令。协议栈也可以将所有第五认证指令划分为多组,每组中包括多条第五认证指令,将每组第五认证指令聚合为一条NCI指令,向NFCC依次发送每条NCI指令。
或者,协议栈可以将所有第五认证指令打包为一个指令包,向NFCC发送指令包。协议栈也可以将所有第五认证指令划分为多组,每组中包括多条第五认证指令,将每组第五认证指令打包为一个指令包,向NFCC依次发送每个指令包。
其中,协议栈在向目标模组聚合发送认证指令时,可以设置每次聚合发送的认证指令的数量不高于预设数量,预设数量例如为30。
图9示出了本申请实施例提供的一种认证过程中的交互示意图。扇区的认证过程包括步骤91、步骤92和步骤93。在步骤91中,协议栈将多条第五认证指令AUTH_cmd聚合为一条NCI指令,向NFCC发送NCI指令。NFCC在接收到NCI指令后,从NCI指令中解析获取多条第五认证指令,然后循环执行步骤92,每次循环对应一条第五认证指令,对第五认证指令所属的扇区进行认证。
步骤92中包括多个子步骤,以其中一条第五认证指令为例,在子步骤921中,NFCC向智能卡发送步骤92对应的一条第五认证指令。
智能卡在接收到第五认证指令之后,首先生成随机数RA,然后执行子步骤922,向NFCC发送随机数RA。
NFCC在接收到随机数RA之后,首先生成随机数RB,并使用第五认证指令中的默认密钥对随机数RA和随机数RB进行加密,然后执行子步骤923,向智能卡发送加密后的随机数RA和随机数RB。
智能卡在接收到加密后的随机数RA和随机数RB之后,首先根据第五认证指令中的扇区标识确定对应的扇区,并从扇区中确定密钥指示对应的密钥KeyA或KeyB,然后根据确定的密钥对加密后的随机数RA和随机数RB进行解密。当解密得到的随机数RA与生成的随机数RA一致时,确定电子设备认证通过。同时,智能卡可以对随机数RB进行加密,并执行子步骤924,向NFCC发送加密后的随机数RB。
NFCC在接收到加密后的随机数RB之后,对加密后的随机数RB进行解密,若解密得到的随机数RB与生成的随机数RB一致,则确定第五认证指令中的默认密钥与扇区中的密钥相同,扇区为已知扇区。相反的,若解密得到的随机数RB与生成的随机数RB不一致,则确定第五认证指令中的默认密钥与扇区中的密钥不同,扇区为未知扇区。
在使用默认密钥对扇区进行认证之后,NFCC可以将认证结果(authenticateresults,AUTH_rsp)发送至协议栈,通知协议栈扇区为已知扇区或未知扇区。如图9所示,在得到某个扇区的第二认证结果之后,NFCC可以执行步骤93,向协议栈发送第二认证结果,协议栈可以根据第二认证结果确定扇区为已知扇区或未知扇区。
其中,多个第二认证结果可以聚合发送至协议栈,也可以单独发送至协议栈,图9所示为单独发送至协议栈。同时,协议栈可以将第二认证结果发送至APP,以通知APP扇区为已知扇区或未知扇区。
示例性地,第二认证结果中可以包括默认密钥,对应扇区的扇区标识,密钥指示,以及认证结果标记。当默认密钥与扇区中的实际密钥相同时,认证结果标记为第一参数。当默认密钥与扇区中的实际密钥不同时,认证结果标记为第二参数。协议栈可以根据第二认证结果中的扇区标识确定对应的扇区,并根据认证结果标记确定扇区为已知扇区或未知扇区。第二认证结果的具体形式可以根据需求设置,本实施例对此不做限制。
需要说明的是,在确定已知扇区和未知扇区时,可以根据智能卡复制时所需的扇区信息使用默认密钥对智能卡的所有扇区进行认证,从所有扇区中确定已知扇区和未知扇区。也可以根据需求只对部分扇区进行认证,从部分扇区中确定已知扇区和未知扇区。
在相关技术中,在使用默认密钥从智能卡的多个扇区中确定已知扇区和未知扇区时,协议栈针对每个扇区单独进行认证,需要消耗较长的时间。
而本申请实施例中,在确定已知扇区和未知扇区的过程中,协议栈将多个扇区的认证指令聚合发送至目标模组,由目标模组根据多条认证指令连续对智能卡中的多个扇区进行认证,得到并向协议栈发送每个扇区的认证结果,减少了协议栈在获取每个扇区的认证结果的过程中与智能卡之间的交互次数,缩短了确定扇区为已知扇区或未知扇区时所用的时间,可以快速确定已知扇区和未知扇区,从而可以缩短智能卡的复制时间。
在一种实施方式中,目标模组在根据第五认证指令中的默认密钥对扇区进行认证之后,可以向协议栈聚合发送多个扇区的第二认证结果。
如图9所示,在多次执行步骤92得到多个扇区的第二认证结果之后,NFCC可以将多个第二认证结果打包为一个认证结果包,向协议栈发送认证结果包。协议栈可以从认证结果包中解析得到每个扇区的第二认证结果,根据第二认证结果确定扇区为已知扇区或未知扇区。聚合发送多个认证结果的方法可以根据需求设置,本实施例对此不做限制。
其中,目标模组可以在得到所有扇区的第二认证结果之后将所有第二认证结果一次性聚合发送至协议栈,也可以将所有第二认证结果分为多组,每组中包括多个第二认证结果,每次向协议栈聚合发送一组第二认证结果。
本申请实施例中,目标模组在向协议栈发送第二认证结果时,可以向协议栈聚合发送多个扇区的第二认证结果,可以减少协议栈与目标模组之间的交互次数,避免协议栈与目标模组之间频繁发送数据,从而可以缩短智能卡的复制时间。
图10示出了本申请实施例提供的另一种认证过程中的交互示意图,目标模组可以为NFC驱动程序或NFC硬件抽象层。协议栈在确定已知扇区和未知扇区的过程中,首先生成多条第五认证指令,然后执行步骤101,将多条第五认证指令聚合为一条NCI指令,并向NFC驱动程序或NFC硬件抽象层聚合发送NCI指令。
NFC驱动程序或NFC硬件抽象层在接收到第五认证指令之后,循环执行步骤102,每次循环对应一条第五认证指令,对第五认证指令所属的扇区进行一次认证。
步骤102中包括多个子步骤,针对每条第五认证指令,NFC驱动程序或NFC硬件抽象层首先执行子步骤1021,向NFCC发送第五认证指令。
NFCC在接收到第五认证指令之后,执行子步骤1022,向智能卡发送第五认证指令。
智能卡在接收到第五认证指令之后,生成随机数RA,然后执行子步骤1023,向NFCC发送随机数RA。
NFCC接收到随机数RA之后,执行子步骤1024,向NFC驱动程序或NFC硬件抽象层转发随机数RA。
NFC驱动程序或NFC硬件抽象层在接收到随机数RA之后,生成随机数RB,并对随机数RA和随机数RB进行加密,然后执行子步骤1025,向NFCC发送加密后的随机数RA和随机数RB。
NFCC接收到加密后的随机数RA和随机数RB之后,执行子步骤1026,向智能卡发送加密后的随机数RA和随机数RB。
智能卡接收到加密后的随机数RA和随机数RB之后,解密得到随机数RA和随机数RB,若解密得到的随机数RA与生成的随机数RA一致,则确定认证通过,并对随机数RB进行加密。然后执行子步骤1027,向NFCC发送加密后的随机数RB。
NFCC在接收到加密后的随机数RB之后,执行子步骤1028,向NFC驱动程序或NFC硬件抽象层转发加密后的随机数RB。
NFC驱动程序或NFC硬件抽象层在接收到加密后的随机数RB之后,对随机数RB进行解密,若解密得到的随机数RB与生成的随机数RB一致,则可以得到认证通过的第二认证结果,否则得到认证未通过的第二认证结果。
NFC驱动程序或NFC硬件抽象层在得到第二认证结果之后,可以执行步骤103,将第二认证结果发送至协议栈。对NFC驱动程序或NFC硬件抽象层的理解可参考NFCC,本实施例在此不做赘述。
其中,NFCC与协议栈之间互相发送数据时,时间主要消耗在协议栈与NFC硬件抽象层之间,因此当目标模组为NFC驱动程序或NFC硬件抽象层时,可以避免NFCC与协议栈之间频繁发送数据,可以缩短每次认证时所用的时间,从而可以缩短智能卡的复制时间。
如图4所示,在确定智能卡的多个扇区中包括未知扇区后,电子设备首先可以执行步骤43中的子步骤431,控制NFCC开始按预设的计时时长开始计时。
其中,NFCC的计时时长根据目标模组与智能卡之前的交互时间确定。图11示出了本申请实施例提供的一种密钥破解过程中的时序图。当目标模组为NFCC时,NFCC与智能卡之间一次空口交互所需的时间为1ms,可以将NFCC的计时时长设置为1ms,则相邻的两个计时节点之间的间隔时长为1ms。
同样的,当目标模组为NFC驱动程序或NFC硬件抽象层时,NFC驱动程序或NFC硬件抽象层与智能卡之间一次交互所需的时间大概为1.5ms,则NFCC的计时时长可以设置为1.5ms,相邻的两个计时节点之间的间隔时长为1.5ms。
本实施例中,在设置NFCC的计时时长时,协议栈可以向NFCC发送设置指令(设置指令中包括计时时长),NFCC可以响应于设置指令,设置计时时长,并启动计时。设置指令的具体形式可以根据需求设置,本实施例对此不做限制。
或者,也可以由NFC驱动程序或NFC硬件抽象层向NFCC发送设置指令,设置NFCC的计时时长,并使NFCC启动计时。
可以理解的是,当目标模组为NFCC时,NFCC的计时时长可以为1ms或者接近1ms的计时时长,当目标模组为NFC驱动程序或NFC硬件抽象层时,NFCC计时时长可以为1.5ms或者接近1.5ms的计时时长,本实施例对计时时长的具体值不做限制。
如图4所示,在执行步骤431,启动NFCC按预设的计时时长开始计时之后,电子设备可以执行步骤432,对智能卡中的已知扇区连续进行多次认证,得到多个连续的第一随机数。
可选地,步骤432可以包括:
协议栈向目标模组聚合发送多条第一认证指令;
目标模组根据多条第一认证指令对已知扇区连续进行多次认证得到多个第一随机数,多个第一随机数包括已知扇区多次均认证通过的过程中智能卡发送的随机数。
在一种实施方式中,目标数据包括连续多个的第一随机数,目标扇区包括第一认证指令对应的已知扇区,协议栈向目标模组发送的认证指令中包括多条第一认证指令。协议栈可以从至少一个已知扇区中选择一个已知扇区,生成该已知扇区的多条认证指令,为便于区分,该认证指令可以称为第一认证指令。或者,协议栈可以确定多个已知扇区,生成每个已知扇区的一条认证指令,该认证指令也可以称为第一认证指令。
在生成多条第一认证指令后,协议栈向目标模组聚合发送多条第一认证指令。目标模组在接收到多条第一认证指令后,根据多条第一认证指令对已知扇区连续进行多次认证,以获取连续的多个第一随机数。协议栈向目标模组聚合发送多条第一认证指令的过程与聚合发送多条第五认证指令的过程相同,本实施例在此不做赘述。
例如,若扇区1为已知扇区,协议栈可以选择扇区1,生成扇区1的多条第一认证指令,每条第一认证指令中包括扇区1的扇区标识、实际密钥和密钥指示。协议栈可以将多条第一认证指令聚合为一条NCI指令,向目标模组发送NCI指令。
其中,第一认证指令的数量可以根据所需的第一随机数的数量确定。例如,若确定目标随机数距离需要N个第一随机数,则协议栈可以生成扇区1的(N+1)条第一认证指令,将扇区1的(N+1)条第一认证指令聚合为一条NCI指令。协议栈向目标模组发送NCI指令,目标模组可以从NCI指令中解析获取多条第一认证指令,根据每条第一认证指令对扇区1进行一次认证,以对扇区1连续进行(N+1)次认证。
如图9所示,目标模组为NFCC,协议栈首先生成扇区1的多条第一认证指令,然后执行步骤91中,将多条第一认证指令聚合发送至NFCC。NFCC循环执行步骤92,循环次数为(N+1)次,每次循环对应一条第一认证指令,每执行一次步骤92完成对扇区1的一次认证,得到一个认证结果,确定扇区1认证通过或未通过,同时可以接收智能卡发送的一个第一随机数RA。
如图11所示,NFCC的计时时长为1ms,从第0ms开始每隔1ms出现一个计时节点,NFCC在计时节点向智能卡发送数据,因此每条第一认证指令在其中一个计时节点发送至智能卡,并在延迟一定时间后接收到智能卡返回的第一随机数。
例如,若第一个计时节点(0ms)出现时NFCC向智能卡发送第一条第一认证指令,开始对扇区1进行第一次认证,则NFCC在第0ms至1ms之间的某个时间点接收到第一个第一随机数RA。若NFCC在第四个计时节点(3ms)时发送第二条第一认证指令,开始对扇区1进行第二次认证,则NFCC在第3ms至第4ms之间的某个时间点接收到第二个第一随机数。在每次认证时,从发送第一认证指令到接收第一随机数之间的时长基本是固定的,因此第一个第一随机数的接收时间和第二个第一随机数的接收时间之间的间隔时长时固定的,随机数的接收时间对应智能卡生成随机数的时间。
依次类推,NFCC在对扇区1连续进行(N+1)次认证之后,可以得到连续的(N+1)个第一随机数。进一步的,可以确定相邻的两个第一随机数之间的随机数距离,可以得到N个随机数距离。
需要说明的是,在每次认证过程中只有认证通过时获取的第一随机数才是准确的,因此在连续多次认证过程中,当某次认证未通过时,NFCC可以停止认证。当连续多次均认证通过时,可以得到的符合要求的多个第一随机数,而当某次认证未通过时可以停止认证,并丢弃记录的第一随机数。
在本申请实施例中,由于目标模组与智能卡之间一次交互所需的时间较短,因此NFCC可以以较短的计时时长进行计时。在获取连续的多个第一随机数时,相邻的两个计时节点之前的间隔时间减小,可以使相邻的两个第一随机数之间的随机数距离的偏差减小,进而可以使基于随机数距离预测得到的备选密钥的准确性提高。
可选地,该方法还可以包括:
在已知扇区认证未通过时,协议栈向目标模组重发多条第一认证指令;
目标模组根据重发的多条第一认证指令重新对已知扇区进行连续认证,以重新获取多个第一随机数。
结合上述举例,NFCC在对扇区1连续进行(N+1)次认证的过程中,若某次认证时得到的认证结果为认证未通过,NFCC可以停止认证扇区1,丢弃记录的第一随机数,并向协议栈发送第一指令请求。
对应的,协议栈在接收到第一指令请求之后,可以重新选择另一个已知扇区,生成另一个已知扇区的多条第一认证指令,或者再次生成扇区1的多条第一认证指令,向NFCC再次发送多条第一认证指令。
NFCC在接收到多条第一认证指令之后,再次循环执行步骤92,对已知扇区连续进行(N+1)次认证,并记录每次认证时接收到的第一随机数。当连续多次均认证通过时,得到多个第一随机数。
需要说明的是,目标模组向协议栈请求多条第一认证指令的方法可以包括但不限于上述举例。目标模组在对已知扇区进行连续认证时,在认证未通过时向协议栈请求重发多条第一认证指令,直至连续多次认证均通过,得到符合需求的多个第一随机数。
本申请实施例中,在连续对已知扇区进行认证时,若已知扇区认证未通过,协议栈可以向目标模组重发多条第一认证指令,目标模组根据重发的多条第一认证指令可以重复对已知扇区进行连续认证,以再次获取连续的第一随机数。在获取第一随机数的过程中,可以在认证出错时再次获取第一随机数,以根据再次获取的第一随机数破解未知扇区的密钥,可以降低由于第一随机数获取出现异常导致未知扇区破解失败的概率。
如图4所示,在执行步骤431获取到多个第一随机数之后,电子设备可以执行步骤432,根据连续的多个第一随机数确定多个随机数距离,然后根据多个随机数确定目标随机数距离。
如上所述,在连续对已知扇区1进行(N+1)次认证,并且每次认证均通过之后,可以得到连续的N个第一随机数。此时,首先可以确定相邻的两个第一随机数之间的随机数距离,得到N个随机数距离,然后计算N个随机数距离的平均值,得到目标随机数距离。
本申请实施例中,在连续对已知扇区进行多次认证过程中,由于相邻的两个计时节点之前的间隔时间减小,因此相邻的两个第一随机数之间的随机数距离的偏差减小,使得基于多个随机数距离计算得到的目标随机数的准确性提高,从而可以使基于目标随机数距离预测得到的备选密钥的准确性提高。
如图4所示,在执行步骤433之后,电子设备可以执行步骤434和步骤435,选择一个已知扇区作为辅助扇区,并对辅助扇区和未知扇区进行连续认证,得到第二随机数和加密后的第三随机数。
可选地,步骤435可以包括:
协议栈向目标模组聚合发送第二认证指令和第三认证指令;
目标模组根据第二认证指令和第三认证指令连续对辅助扇区和未知扇区进行认证,得到智能卡在认证辅助扇区时发送的第二随机数,以及智能卡在认证未知扇区时发送的加密后的第三随机数;其中,未知扇区在辅助扇区认证通过后认证。
在一种实施例中,目标数据包括第二随机数和加密后的第三随机数,目标扇区包括辅助扇区和未知扇区,协议栈向目标模组发送的多条认证指令中包括第二认证指令和第三认证指令。协议栈可以生成辅助扇区的第二认证指令和未知扇区的第三认证指令,将第二认证指令和第三认证指令聚合发送至目标模组。目标模组在接收到第二认证指令和第三认证指令后,根据第二认证指令和第三认证指令连续对辅助扇区和未知扇区进行认证,以得到第二随机数和加密后的第三随机数。
示例性地,扇区1为已知扇区,扇区2为未知扇区,协议栈可以选择扇区1作为辅助扇区,第二认证指令中包括扇区1的扇区标识、实际密钥和密钥指示。第三认证指令中可以包括扇区2的扇区标识、默认密钥和密钥指示。第三认证指令中的密钥指示对应扇区2中的密钥KeyA或KeyB。协议栈可以将第二认证指令和第三认证指令聚合为一条NCI指令,向目标模组发送NCI指令。
图12示出了本申请实施例提供的一种密钥破解过程中的交互示意图。步骤1221包括图9中步骤92中的各个子步骤,或者包括图10中步骤102的各个子步骤。同样的,步骤1222包括步骤92中的各个子步骤,或者包括步骤102中的各个子步骤。
协议栈在生成第二认证指令和第三认证指令之后,首先执行步骤121,向NFCC聚合发送第二认证指令和第三认证指令。NFCC在接收到第二认证指令和第三认证指令之后,执行步骤122。
在步骤122中,NFCC首先执行子步骤1221,在计时节点出现时向智能卡发送第二认证指令,对辅助扇区进行认证,得到认证结果,并得到认证过程中智能卡发送的第二随机数RA。
在得到辅助扇区的认证结果之后,若辅助扇区认证通过,则执行步骤1222,在计时节点出现时向智能卡发送第二认证指令,对未知扇区进行认证。
智能卡在接收到第二认证指令之后,首先生成第三随机数RA,并采用未知扇区中的实际密钥(该实际密钥与第二认证指令中的密钥指示对应)对第三随机数进行加密,得到加密后的第三随机数,然后向NFCC发送加密后的第三随机数。
在得到第二随机数和加密后的第三随机数之后,NFCC执行步骤123,向协议栈发送第二随机数和加密后的第三随机数。
结合上述举例,在对辅助扇区和未知扇区连续进行认证时,由于NFCC在计时节点向智能卡发送数据,因此第二随机数和第三随机数之间的时间间隔与连续对已知扇区进行多次认证时相邻的两个第一随机数之间的时间间隔接近或相等。
其中,NFCC可以在辅助扇区认证通过后,向协议栈发送第二随机数,在得到加密后的第三随机数后,向协议栈发送加密后的第三随机数,也可以在得到加密后的第三随机数后,将加密后的第三随机数和第二随机数打包发送给协议栈。
本申请实施例中,在对辅助扇区和未知扇区连续进行认证时,协议栈向目标模组聚合发送第二认证指令和第三认证指令,目标模组根据聚合发送的第二认证指令和第三认证指令对辅助扇区和未知扇区连续进行认证得到第二随机数和加密后的第三随机数,可以减少协议栈与目标模组之间的交互次数,避免协议栈频繁向目标模组发送数据,从而可以缩短智能卡的复制时间。同时,可以使第二随机数和加密随机数之间的随机数距离与目标随机数距离相同或接近,以准确预测第三随机数,从而可以更准确的预测备选密钥。
可选地,在辅助扇区认证未通过时,该方法还可以包括:
协议栈向目标模组重发第二认证指令和第三认证指令;
目标模组根据重发的第二认证指令和第三认证指令重新对辅助扇区和未知扇区进行连续认证,以重新获取第二随机数和加密后的第三随机数。
如图12所示,在执行步骤1221的过程中,NFCC在接收到智能卡发送的加密后的随机数RB之后,若解密得到的随机数RB与生成的随机数RB不一致,则确定辅助扇区认证未通过。此时,NFCC可以停止认证过程,向协议栈发送第二指令请求,请求协议栈重新发送第二认证指令和第三认证指令。
对应的,协议栈在接收到第二指令请求之后,可以选择另一个已知扇区作为辅助扇区,重新生成第二认证指令和第三认证指令,然后再次执行步骤121,向NFCC聚合发送第二认证指令和第三认证指令。NFCC可以再次执行步骤122,连续对辅助扇区和未知扇区进行认证,以在辅助扇区认证通过后可以得到第二随机数和加密后的第三随机数。
目标模组向协议栈请求重发第二认证指令和第三认证指令的具体方式可以根据需求设置。目标模组在对辅助扇区进行认证时只要认证未通过即可向协议栈请求发送第二认证指令和第三认证指令,直至辅助扇区认证通过得到第二随机数和加密随机数。
本申请实施例中,在对辅助扇区和未知扇区进行连续认证时,若辅助扇区认证未通过,协议栈可以重发第二认证指令和第三认证指令,目标模组可以根据重发的第二认证指令和第三认证指令重复实施对辅助扇区和未知扇区进行连续认证的过程,直至获取到第二随机数和加密后的第三随机数。
可选地,协议栈在向目标模组发送未知扇区的第二认证指令和第三认证指令时,可以向目标模组聚合发送未知扇区对应的多组第二认证指令和第三认证指令。目标模组可以根据多组第二认证指令和第三认证指令分别对辅助扇区和未知扇区进行多轮认证,以得到多组第二随机数和加密后的第三随机数;协议栈可以根据多组第二随机数和加密后的第三随机数确定未知扇区的多组备选密钥。
在一种实施例中,当需要确定未知扇区的多组备选密钥时,协议栈可以生成未知扇区的多组第二认证指令和第三认证指令,并向目标模组聚合发送多组第二认证指令和第三认证指令。如图12所示,若需要确定扇区2的M组备选密钥,则可以生成扇区2的M组第二认证指令和第三认证指令,协议栈可以将M组第二认证指令和第三认证指令聚合为1条NCI指令,然后执行步骤121,向NFCC发送NCI指令。
NFCC可以从NCI指令中解析得到M组第二认证指令和第三认证指令,针对每组第二认证指令和第三认证指令执行一次步骤122,执行M次之后可以得到扇区2的M组第二随机数和加密后的第三随机数。
其中,协议栈向目标模组聚合发送未知扇区的多组第二认证指令和第三认证指令的方法可以包括但不限于上述举例,本实施例对此不做限制。
可以理解的是M的具体值可以根据NFCC的定时时长确定,NFCC的定时时长较长时,计算得到的目标随机数距离的准确性较低,基于目标随机数距离计算得到的密钥的准确性较低,可以将M设置为较大值。而当NFCC的定时时长较短时,计算得到的目标随机数距离的准确性较稿,基于目标随机数距离计算得到的密钥的准确性较稿,可以将M设置为较小值。本实施例中,计时时长为1ms或1.5ms,可以将M设置为3。
本申请实施例中,在预测未知扇区的备选密钥时,若需要一次性预测多组备选密钥,协议栈可以生成多组第二认证指令和第三认证指令,并向目标模组聚合发送多组第二认证指令和第三认证指令。通过向目标模组聚合发送未知扇区的多组第二认证指令和第三认证指令,可以避免协议栈与目标模组之间频繁发送数据,从而可以缩短智能卡的复制时间。
可选地,当未知扇区为多个时,协议栈可以向目标模组聚合发送多个未知扇区分别对应的第二认证指令和第三认证指令。
在一种实施方式中,当未知扇区为多个时,协议栈可以一次性生成多个未知扇区的第二认证指令和第三认证指令,然后向目标模组聚合发送多个未知扇区的第二认证指令和第三认证指令。例如,协议栈在生成扇区2的M组第二认证指令和第三认证指令和扇区3的M组第二认证指令和第三认证指令后,可以向目标模组聚合发送扇区2和扇区3的第二认证指令和第三认证指令。
对应的,目标模组在接收到NCI指令之后,可以从中解析得到扇区2的M组第二认证指令和第三认证指令和扇区3的M组第二认证指令和第三认证指令。目标模组可以针对每组第二认证指令和第三认证指令执行一次步骤122,得到一组第二随机数和加密后的第三随机数。
本申请实施例中,当未知扇区为多个时,协议栈可以向目标模组聚合发送多个未知扇区的第二认证指令和第三认证指令,可以避免协议栈与目标模组之间频繁发送数据,从而可以缩短智能卡的复制时间。
需要说明的是,针对上述多条第一认证指令、第二认证指令和第三认证指令,协议栈可以将多条第一认证指令、第二认证指令和第三认证指令聚合发送至目标模组。在聚合发送多条第一认证指令、第二认证指令和第三认证指令时,协议栈可以将所有认证指令一次性聚合发送至目标模组,也可以将所有认证指令划分为多组,每组中包括多条认证指令,然后将多组认证指令依次聚合发送至目标模组。
其中,在获取到目标数据之后,可以使NFCC停止计时,NFCC在停止计时之后,可以按正常的通信流程向智能卡发送数据。例如,协议栈在接收到多个第一随机数、第二随机数和加密随机数之后,可以向NFCC发送停止计时指令,NFCC响应于停止计时指令,停止计时。NFCC停止计时的方法可以根据需求设置,本实施例对此不做限制。
如图4所示,在步骤435之后,电子设备可以执行步骤436和步骤437,根据目标随机数距离和第二随机数预测得到第三随机数,根据预测得到的第三随机数和加密后的第三随机数预测得到多个备选密钥。
结合上述举例,在获取第二随机数和加密后的第三随机数时,NFCC在计时节点向智能卡发送数据,因此第二随机数与第三随机数之间的随机数距离与目标随机数距离相同或接近。可以根据第二随机数和目标随机数距离预测得到位于第二随机数之后的第三随机数。进一步地,根据第三随机数和加密随机数可以预测得到未知扇区的多个备选密钥。
其中,根据第二随机数和随机数距离预测第三随机数的方法可以根据随机数生成器的类型具体设置,根据加密后的第三随机数和预测得到的第三随机数预测备选密钥的方法可以根据智能卡的加密方法具体设置,本实施例对此不做限制。
示例性地,在确定扇区2的备选密钥的过程中,若获取到扇区2的M组第二随机数和加密后的第三随机数,则在得到目标随机数距离之后,针对每组第二随机数和加密随机数,可以结合目标随机数距离预测得到一组备选密钥,因此可以得到扇区2的M组备选密钥。同样的,当未知扇区为多个时,针对每个未知扇区可以预测得到一组或多组备选密钥。
如图4所示,在执行步骤437得到未知扇区的多个备选密钥之后,电子设备可以执行步骤438,使用备选密钥对未知扇区进行认证,当认证通过时,确定认证时使用的备选密钥为未知扇区的实际密钥。
可选地,在从多个备选密钥中确定未知扇区的实际密钥的步骤可以包括:协议栈向目标模组聚合发送多条第四认证指令,多条第四认证指令中分别包括不同的备选密钥;目标模组根据多条第四认证指令中的备选密钥连续对未知扇区进行认证得到第一认证结果;在第一认证结果指示未知扇区认证通过时,将第一认证结果对应的备选密钥作为未知扇区的实际密钥。
在一种实施方式中,在得到未知扇区的多个备选密钥之后,协议栈可以从多个备选密钥中选择部分备选密钥,采用选择的备选密钥对未知扇区进行认证,以验证选择的备选密钥是否为未知扇区的实际密钥。
示例性地,在选择部分备选密钥之后,协议栈可以向目标模组发送未知扇区的多条第四认证指令,每条第四认证指令中包括选择的部分密钥中的不同备选密钥。目标模组根据多条第四认证指令中的多个备选密钥依次对未知扇区进行多次认证,以得到并向协议栈发送多个第一认证结果。协议栈在第一认证结果为认证通过时,将第一认证结果对应的备选密钥作为未知扇区的实际密钥。
例如,在确定扇区2的M组备选密钥之后,协议栈可以分别从每组备选密钥中选择若干个备选密钥,共选择L个备选密钥进行验证。协议栈可以生成L条第四认证指令,每条第四认证指令中包括一个备选密钥。并且,每条第四认证指令中可以包括密钥指示,用于指示对扇区2中的密钥KeyA或密钥KeyB进行认证。协议栈可以将L条第四认证指令聚合为一条NCI指令,向目标模组发送NCI指令。目标模组在接收到该NCI指令之后,可以从该NCI指令中解析获取到多条第四认证指令。
结合图9所示,NFCC在获取到多条第四认证指令之后,循环执行步骤92,循环次数等于L。在每次执行步骤92时,NFCC采用对应第四认证指令中的备选密钥对未知扇区进行认证,得到一个第一认证结果。在循环L次执行步骤92之后,可以得到L个第一认证结果,可以将L个第一认证结果发送给协议栈。
对应的,当第一认证结果中包括的认证结果标记为第一参数时,协议栈将第一认证结果对应的第四认证指令中的备选密钥作为扇区2的实际密钥。相反的,当第一认证结果中包括的认证结果标记为第二参数时,确定第一认证结果对应的第四认证指令中的备选密钥不是扇区2的实际密钥。
可选地,目标模组在向协议栈发送第一认证结果时,可以向协议栈聚合发送多个第一认证结果。
结合上述举例,在得到扇区2的L个第一认证结果后,目标模组可以将L个第一认证结果打包为一个认证结果包,将认证结果包发送给协议栈,实现多个第一认证结果的聚合发送。
本申请实施例中,在验证未知扇区的备选密钥时,协议栈向目标模组聚合发送多条认证指令,触发目标模组使用多个备选密钥依次对未知扇区进行认证,从多个备选密钥中确定实际密钥,可以减少协议栈与目标模组之间的交互次数,从而可以缩短验证备选密钥所需的时间,进而可以缩短智能卡的复制时间。
其中,由目标模组与智能卡进行交互,计算得到的随机数距离较为准确,因此预测得到的备选密钥的准确性提高,在验证备选密钥时只需要从多个备选密钥中选择较少数量的备选密钥进行认证,可以缩短备选密钥的验证时间,从而可以缩短智能卡的复制时间。
进一步的,由于预测得到的备选密钥的准确性提高,在预测得到的多个备选密钥中大概率上可以确定未知扇区的实际密钥,可以避免重复获取目标信息,因此可以缩短智能卡的复制时间。
其中,当未知扇区的数量为多个时,协议栈可以将多个未知扇区的第四认证指令聚合发送至目标模组,目标模组可以根据多个未知扇区的第四认证指令,对每个未知扇区依次进行多次认证,并将多个未知扇区的第一认证结果发送至协议栈。
结合上述举例,若未知扇区为T个,每个未知扇区选择L个备选密钥进行验证,则可以将所有未知扇区的所有第四认证指令聚合为一条NCI指令,向目标模组发送NCI指令,以实现所有第四认证指令的聚合发送。或者,可以将每个未知扇区的L条第四认证指令分别聚合为一条NCI指令,得到每个未知扇区分别对应的一条NCI指令,然后将多条NCI指令分别发送至目标模组。
目标模组接收到NCI指令后,可以从NCI指令中获取每个未知扇区分别对应的第四认证指令。目标模组在获取到每个未知扇区的L条第四认证指令后,循环执行步骤92,每次循环对应一条第四认证指令,对未知扇区进行认证,得到对应的一个第一认证结果。以扇区2和扇区3为未知扇区为例,针对扇区2的L条第四认证指令,NFCC循环执行步骤92,每次循环对应扇区2的一条第四认证指令,可以得到扇区2的L个第一认证结果。针对扇区3的L条第四认证指令,NFCC循环执行步骤92,每次循环对应扇区3的一条第四认证指令,可以得到扇区3的L个第一认证结果。在循环结束之后,将扇区2和扇区3的所有第一认证结果打包为一个认证结果包,向协议栈发送认证结果包。
其中,目标模组在采用备选密钥对未知扇区进行认证的过程中,当某条第四认证指令中的备选密钥认证通过时,可以结束对该扇区的认证。例如,未知扇区包括扇区2和扇区3时,目标模组可以根据扇区2的第四认证指令依次对扇区2依次进行多次认证,在对扇区2进行认证的过程中,当某次认证通过时,目标模组可以结束对扇区2的认证,然后根据扇区3的第四认证指令继续对扇区3进行认证。
本申请实施例中,在验证未知扇区的备选密钥时,可以将多条认证指令聚合发送至目标模组,由目标模组依次根据每条认证指令对备选密钥进行验证,得到多个认证结果,并将多个认证结果发送至协议栈,可以减少协议栈与目标模组之间的交互次数,从而可以缩短验证备选密钥所需的时间,进而可以缩短智能卡的复制时间。
如图4所示,在步骤438之后,针对某个未知扇区,若多个备选密钥中未包括该未知扇区的实际密钥,可以返回执行步骤434,重复执行步骤434至步骤438,以重新确定该扇区的备选密钥,并从备选密钥中确定该未知扇区的实际密钥。或者,也可以返回执行步骤432,重复执行步骤432至步骤438,以重新确定该扇区的备选密钥,并从备选密钥中确定该未知扇区的实际密钥。
其中,步骤434可以在步骤436之前的任意步骤实施,步骤432和步骤435可以同时执行,步骤435也可以在步骤432之前执行,本实施例对此不做限制。
如图4所示,在执行步骤43确定未知扇区的实际密钥之后,可以执行步骤44,从智能卡读取扇区中的扇区信息。在从智能卡中读取扇区信息时,可以对已知扇区和未知扇区的扇区信息同时进行读取,也可以分别对未知扇区和已知扇区的扇区信息进行读取。
示例性地,若智能卡中包括40个扇区,则在步骤43之后,协议栈可以确定每个扇区(未知扇区和已知扇区)的实际密钥。针对每个扇区(即目标扇区),协议栈可以生成每个扇区的读卡指令,并向目标模组发送读卡指令。读卡指令中包括扇区的实际密钥、扇区标识和密钥指示。目标模组在接收到读卡指令之后,首先使用读卡指令中的实际密钥对扇区进行认证,认证通过之后,从扇区标识对应的扇区中读取扇区信息,然后向协议栈返回扇区的扇区信息。
在一种实施方式中,在对智能卡中的扇区信息进行读取时,协议栈可以向目标模组聚合发送多个待读取扇区的读卡指令,多个待读取扇区包括多个未知扇区,或者包括已知扇区和未知扇区;目标模组根据多个读卡指令连续从智能卡读取多个待读取扇区中的扇区信息。
图13示出了本申请实施例提供的一种读卡过程中的交互示意图,智能卡中包括40个扇区,若智能卡的复制需要全部扇区中的扇区信息,在读取扇区信息时协议栈可以生成每个扇区的一条读卡指令,共40条读卡指令。协议栈可以将40条读卡指令聚合发送至目标模组。目标模组在接收到多条读卡指令之后循环执行步骤132,循环次数等于读卡指令的数量,每次循环对应一个扇区的读卡指令。
在执行步骤132的过程中,目标模组首先执行子步骤1321,根据读卡指令中的实际密钥和扇区标识,对扇区标识指示的目标扇区进行认证。认证通过之后,目标模组执行子步骤1322从目标扇区中读取扇区信息。
在循环执行每个扇区对应的步骤132之后,可以得到多个扇区中的扇区信息。目标模组可以执行步骤133,将扇区信息发送至协议栈。
其中,协议栈可以将所有扇区的读卡指令一次性聚合发送至目标模组,目标模组可以在获取到每个扇区中的扇区信息之后,执行步骤133,将扇区信息发送至协议栈。或者,协议栈可以将所有扇区的读卡指令划分为多组,每次向目标模组聚合发送一组读卡指令。
可选地,目标模组在向协议栈发送扇区信息时,可以在每得到一个扇区信息之后向协议栈发送扇区信息,也可以在得到多个扇区中的扇区信息之后,将多个扇区信息打包发送至协议栈。
实际应用中,当由目标模组控制从智能卡中读取扇区信息时,目标模组可以直接根据每个扇区的实际密钥,从对应的扇区中读取扇区信息并向协议栈发送。
本申请实施例中,在扇区信息的读取过程中,协议栈可以将多个扇区的读卡指令聚合发送至目标模组,目标模组根据每条读卡指令读取对应扇区中的扇区信息,可以减少协议栈与目标模组之间的交互次数,从而可以缩短扇区信息的读取时间,进而可以缩短智能卡的复制时间。
可以理解的是,针对智能卡中的已知扇区,电子设备可以在步骤45之前的任意一个时间点从智能卡读取已知扇区中的扇区信息。也可以在步骤43之后,从智能卡统一读取未知扇区和已知扇区中的扇区信息。
如图4所示,在执行步骤44获取到扇区信息之后,电子设备可以执行步骤45,根据读取到的扇区信息复制得到虚拟卡。
结合上述举例,在获取到智能卡中每个扇区的扇区信息之后,协议栈将扇区信息发送至APP,APP可以组合多个扇区中的扇区信息得到智能卡的卡片信息,基于卡片信息在电子设备中复制得到对应智能卡的虚拟卡。具体根据卡片信息复制得到虚拟卡的方法可以根据需求设置,本实施例对此不做限制。
其中,在智能卡的复制过程中,当智能卡的多个扇区中不存在未知扇区时,可以直接根据每个扇区的实际密钥从智能卡获取每个扇区的扇区信息,然后根据所有扇区的扇区信息复制得到虚拟卡。
综上所述,在智能卡的复制过程中,当智能卡的多个扇区中包括未知扇区时协议栈向目标模组聚合发送多条认证指令,目标模组对多条认证指令分别指示的目标扇区连续进行认证得到认证过程中的目标数据;在根据目标数据确定未知扇区的实际密钥时,根据未知扇区的实际密钥从智能卡读取未知扇区中的扇区信息;根据扇区信息复制得到对应智能卡的虚拟卡。在获取破解未知扇区的密钥所需的目标数据的过程中,由目标模组对目标扇区进行认证获取目标数据,由于目标模组与智能卡一次交互所需的时间比较短,因此可以缩短获取目标数据所需的时间,从而可以缩短复制智能卡所需的时间。
对图7和图11可知,当NFCC的计时时长从20ms调整为1ms时,在对已知扇区连续进行多次认证的过程中,可以使整个交互时间减少为原来5%。同时,在对辅助扇区和未知扇区连续进行认证时,可以使整个交互时间减少为原来5%。可以使目标数据的获取时间大大缩短,从而可以缩短智能卡的复制时间。
结合图12所示,当未知扇区的数量较多时,步骤122需要执行的次数较多。当计时时长从20ms缩短为1ms时,未知扇区的数量越多时间减少的幅度越大,可以缩短多个未知扇区的破解时间,从而可以缩短智能卡的复制时间。
需要说明的是,根据目标数据确定未知扇区的实际密钥的过程可以由协议栈实施,也可以由目标模组实施,也可以在协议栈将目标数据发送至APP之后由APP实施,本实施例对此不做限制。
图14示出了本申请实施例提供的另一种电子设备的结构示意图。该电子设备14例如图8所示的电子设备,包括:处理器141和存储器142,通信接口143以及总线144。
其中,存储器142用于存储指令,该处理器141用于执行该存储器142存储的指令。处理器141、存储器142和通信接口143通过总线144实现彼此之间的通信连接。
本申请还提供了一种芯片系统,所述芯片系统应用于电子设备,所述芯片系统包括一个或多个处理器,所述处理器用于调用计算机指令以使得所述电子设备执行如上所述的方法。
本申请还提供了一种计算机程序产品,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行如上所述的智能卡的复制方法。
该计算机程序产品也可以固化在芯片中的代码。本申请对计算机程序产品的具体形式不做限定。
本申请还提供了一种可读存储介质,可读存储介质中存储有计算机程序产品,计算机程序产品中包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行如上所述的智能卡的复制方法。
该可读存储介质可以是易失性存储器或非易失性存储器,或者,可以同时包括易失性存储器和非易失性存储器。其中,非易失性存储器可以是只读存储器(read onlymemory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。
本领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和设备的具体工作过程以及产生的技术效果,可以参考前述方法实施例中对应的过程和技术效果,在此不再赘述。
在本申请所提供的几个实施例中,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的方法实施例的一些特征可以忽略,或不执行。以上所描述的装置实施例仅仅是示意性的,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,多个单元或组件可以结合或者可以集成到另一个系统。另外,各单元之间的耦合或各个组件之间的耦合可以是直接耦合,也可以是间接耦合,上述耦合包括电的、机械的或其它形式的连接。
应理解,在本申请的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请的实施例的实施过程构成任何限定。
总之,以上所述仅为本申请技术方案的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (16)
1.一种智能卡的复制方法,其特征在于,应用于电子设备,所述电子设备中包括协议栈,以及用于连接智能卡和所述协议栈的多个模组,所述方法包括:
当所述智能卡的多个扇区中包括未知扇区时,所述协议栈向目标模组聚合发送多条认证指令,所述目标模组为所述多个模组中的任意一个,所述未知扇区的实际密钥与默认密钥不同;
所述目标模组对所述多条认证指令分别指示的目标扇区连续进行认证得到认证过程中的目标数据;
在根据所述目标数据确定所述未知扇区的实际密钥时,根据所述未知扇区的实际密钥从所述智能卡读取所述未知扇区中的扇区信息;
根据所述扇区信息复制得到对应所述智能卡的虚拟卡。
2.如权利要求1所述的方法,其特征在于,所述多条认证指令中包括用于认证已知扇区的多条第一认证指令,所述已知扇区的实际密钥与所述默认密钥相同;
所述目标模组对所述多条认证指令分别指示的目标扇区连续进行认证得到认证过程中的目标数据,包括:
所述目标模组根据所述多条第一认证指令对所述已知扇区连续进行多次认证得到多个第一随机数,所述多个第一随机数包括所述已知扇区多次均认证通过的过程中所述智能卡发送的随机数;
其中,所述多个模组中包括近场通信控制器,在对所述扇区进行认证的过程中,所述近场通信控制器在计时节点向所述智能卡发送数据,相邻的两个所述计时节点之间的间隔时长根据所述目标模组与所述智能卡之间的交互时间确定。
3.如权利要求2所述的方法,其特征在于,所述多条认证指令中还包括对应所述未知扇区的第二认证指令和第三认证指令,所述第二认证指令用于认证辅助扇区,所述第三认证指令用于认证所述未知扇区,所述辅助扇区为任意一个所述已知扇区;
所述目标模组对所述多条认证指令分别指示的目标扇区连续进行认证得到认证过程中的目标数据,包括:
所述目标模组根据所述第二认证指令和所述第三认证指令连续对所述辅助扇区和所述未知扇区进行认证,得到所述智能卡在认证所述辅助扇区时发送的第二随机数,以及所述智能卡在认证所述未知扇区时发送的加密后的第三随机数;
其中,所述未知扇区在所述辅助扇区认证通过后认证。
4.如权利要求2所述的方法,其特征在于,所述方法还包括:
在所述已知扇区认证未通过时,所述协议栈向所述目标模组重发所述多条第一认证指令;
所述目标模组根据重发的所述多条第一认证指令重新对所述已知扇区进行连续认证,以重新获取所述多个第一随机数。
5.如权利要求3所述的方法,其特征在于,所述方法还包括:
在所述辅助扇区认证未通过时,所述协议栈向所述目标模组重发所述第二认证指令和所述第三认证指令;
所述目标模组根据重发的所述第二认证指令和所述第三认证指令重新对所述辅助扇区和所述未知扇区进行连续认证,以重新获取所述第二随机数和所述加密后的第三随机数。
6.如权利要求3所述的方法,其特征在于,所述多条认证指令中包括多组所述第二认证指令和所述第三认证指令。
7.如权利要求3所述的方法,其特征在于,当所述未知扇区为多个时,所述多条认证指令中包括多个所述未知扇区分别对应的所述第二认证指令和所述第三认证指令。
8.如权利要求1-7中任一项所述的方法,其特征在于,所述根据所述目标数据确定所述未知扇区的实际密钥,包括:
所述协议栈在根据所述目标数据确定所述未知扇区的多个备选密钥后,向所述目标模组聚合发送多条第四认证指令,所述多条第四认证指令中分别包括不同的所述备选密钥;
所述目标模组根据所述多条第四认证指令中的所述备选密钥连续对所述未知扇区进行认证得到第一认证结果;
在所述第一认证结果指示所述未知扇区认证通过时,将所述第一认证结果对应的所述备选密钥作为所述未知扇区的实际密钥。
9.如权利要求1所述的方法,其特征在于,所述根据所述未知扇区的实际密钥从所述智能卡读取所述未知扇区中的扇区信息,包括:
所述协议栈向所述目标模组聚合发送多个待读取扇区的读卡指令,所述多个待读取扇区包括多个所述未知扇区,或者包括已知扇区和所述未知扇区,所述已知扇区的实际密钥与所述默认密钥相同;
所述目标模组根据多个所述读卡指令连续从所述智能卡读取所述多个待读取扇区中的扇区信息。
10.如权利要求1-9中任一项所述的方法,其特征在于,在所述协议栈向目标模组聚合发送多条认证指令之前,所述方法还包括:
所述协议线向所述目标模组聚合发送多条第五认证指令,所述第五认证指令中包括所述默认密钥;
所述目标模组根据所述多条第五认证指令中的所述默认密钥分别对所述多个扇区进行认证得到每个所述扇区的第二认证结果;
所述目标模组向所述协议栈发送所述第二认证结果,以使所述协议栈根据所述第二认证结果确定所述扇区是否为所述未知扇区。
11.如权利要求1-10中任一项所述的方法,其特征在于,所述协议栈向目标模组聚合发送多条认证指令,包括:
所述协议栈将所述多条认证指令聚合为一条或多条聚合指令,向所述目标模组发送所述聚合指令;
或者,所述协议栈向所述目标模组发送一个或多个指令包,所述指令包中包括多条所述认证指令。
12.如权利要求1-11中任一项所述的方法,其特征在于,所述目标模组为近场通信控制器、近场通信驱动程序和近场通信硬件抽象层中的任意一个。
13.一种电子设备,其特征在于,包括:一个或多个处理器和一个或多个存储器;所述一个或多个处理器与所述一个或多个存储器耦合,所述一个或多个存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述一个或多个处理器执行所述计算机指令时,使得所述电子设备执行如权利要求1-12中的任一项所述的方法。
14.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序产品,所述计算机程序产品中包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1-12中的任一项所述的方法。
15.一种芯片系统,其特征在于,所述芯片系统应用于电子设备,所述芯片系统包括一个或多个处理器,所述处理器用于调用计算机指令以使得所述电子设备执行如权利要求1-12中的任一项所述的方法。
16.一种计算机程序产品,其特征在于,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1-12中的任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2022109045515 | 2022-07-29 | ||
CN202210904551 | 2022-07-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115988464A true CN115988464A (zh) | 2023-04-18 |
CN115988464B CN115988464B (zh) | 2023-10-20 |
Family
ID=85961475
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211511042.2A Active CN115988464B (zh) | 2022-07-29 | 2022-11-29 | 一种智能卡的复制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115988464B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100153642A1 (en) * | 2008-12-16 | 2010-06-17 | Samsung Electronics Co., Ltd. | Method and system for authenticating storage device connected through intermediate converter |
US20110016275A1 (en) * | 2008-03-04 | 2011-01-20 | Nxp B.V. | Mobile communication device and method for implementing mifare memory multiple sectors mechanisms |
CN106599724A (zh) * | 2016-12-20 | 2017-04-26 | 北京握奇智能科技有限公司 | 一种访问智能卡扇区数据的方法及系统 |
CN111539040A (zh) * | 2020-03-27 | 2020-08-14 | 郑州信大捷安信息技术股份有限公司 | 一种安全智能卡系统及其密码服务方法 |
CN112241633A (zh) * | 2019-07-17 | 2021-01-19 | 杭州海康威视数字技术股份有限公司 | 一种非接触式智能卡的双向认证实现方法及系统 |
CN113065367A (zh) * | 2021-03-29 | 2021-07-02 | 新疆爱华盈通信息技术有限公司 | Ic卡读取方法、装置、电子设备及存储介质 |
CN114172544A (zh) * | 2021-10-20 | 2022-03-11 | 荣耀终端有限公司 | 一种复制智能卡的方法及电子设备 |
-
2022
- 2022-11-29 CN CN202211511042.2A patent/CN115988464B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110016275A1 (en) * | 2008-03-04 | 2011-01-20 | Nxp B.V. | Mobile communication device and method for implementing mifare memory multiple sectors mechanisms |
US20100153642A1 (en) * | 2008-12-16 | 2010-06-17 | Samsung Electronics Co., Ltd. | Method and system for authenticating storage device connected through intermediate converter |
CN106599724A (zh) * | 2016-12-20 | 2017-04-26 | 北京握奇智能科技有限公司 | 一种访问智能卡扇区数据的方法及系统 |
CN112241633A (zh) * | 2019-07-17 | 2021-01-19 | 杭州海康威视数字技术股份有限公司 | 一种非接触式智能卡的双向认证实现方法及系统 |
CN111539040A (zh) * | 2020-03-27 | 2020-08-14 | 郑州信大捷安信息技术股份有限公司 | 一种安全智能卡系统及其密码服务方法 |
CN113065367A (zh) * | 2021-03-29 | 2021-07-02 | 新疆爱华盈通信息技术有限公司 | Ic卡读取方法、装置、电子设备及存储介质 |
CN114172544A (zh) * | 2021-10-20 | 2022-03-11 | 荣耀终端有限公司 | 一种复制智能卡的方法及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN115988464B (zh) | 2023-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5521803B2 (ja) | 通信装置、通信方法、及び、通信システム | |
KR102613422B1 (ko) | 트랜잭션 메시징 | |
KR102205654B1 (ko) | 분산 환경에서의 신원 인증 방법 | |
CN111314274A (zh) | 一种车载终端与中心平台双向认证方法及系统 | |
US20070014397A1 (en) | Storage device and information processing device | |
US12041169B2 (en) | Electronic device and method, performed by electronic device, of transmitting control command to target device | |
CN106156677B (zh) | 身份证读卡方法和系统 | |
CN103501191A (zh) | 一种基于nfc近场通信技术的移动支付装置及其方法 | |
JP2005260676A (ja) | セキュリティ装置、情報処理装置、セキュリティ装置の制御方法、情報処理装置の制御方法、該制御方法を実行させるための装置実行可能なプログラムおよびチケット・システム | |
CN104902138B (zh) | 加密/解密系统及其控制方法 | |
WO2012072001A1 (zh) | 一种安全发卡方法、发卡设备和系统 | |
CN110598429B (zh) | 数据加密存储和读取的方法、终端设备及存储介质 | |
US20100077472A1 (en) | Secure Communication Interface for Secure Multi-Processor System | |
CN114172544B (zh) | 一种复制智能卡的方法、电子设备及存储介质 | |
CN111404706B (zh) | 应用下载方法、安全元件、客户端设备及服务管理设备 | |
CN106027250A (zh) | 一种身份证信息安全传输方法及系统 | |
CN113748698A (zh) | 存取网络时的安全通信 | |
CN111709747B (zh) | 智能终端认证方法及系统 | |
CN106027249B (zh) | 身份证读卡方法和系统 | |
CN107392001A (zh) | 一种授权方法、系统及卡片 | |
CN115988464B (zh) | 一种智能卡的复制方法 | |
CN114844716B (zh) | 数字签名报文处理方法、装置、设备及计算机介质 | |
CN105516182B (zh) | 一种用于智能卡和读写器之间的双向认证方法及其系统 | |
JP3967252B2 (ja) | 暗号通信システム及び暗号通信装置 | |
CN111386513B (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 |