CN115017927B - 卡片模拟方法、电子设备及存储介质 - Google Patents
卡片模拟方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115017927B CN115017927B CN202111348320.2A CN202111348320A CN115017927B CN 115017927 B CN115017927 B CN 115017927B CN 202111348320 A CN202111348320 A CN 202111348320A CN 115017927 B CN115017927 B CN 115017927B
- Authority
- CN
- China
- Prior art keywords
- card
- random sequence
- sector
- key
- electronic device
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/10009—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation sensing by radiation using wavelengths larger than 0.1 mm, e.g. radio-waves or microwaves
- G06K7/10237—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation sensing by radiation using wavelengths larger than 0.1 mm, e.g. radio-waves or microwaves the reader and the record carrier being capable of selectively switching between reader and record carrier appearance, e.g. in near field communication [NFC] devices where the NFC device may function as an RFID reader or as an RFID tag
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/10009—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation sensing by radiation using wavelengths larger than 0.1 mm, e.g. radio-waves or microwaves
- G06K7/10366—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation sensing by radiation using wavelengths larger than 0.1 mm, e.g. radio-waves or microwaves the interrogation device being adapted for miscellaneous applications
- G06K7/10376—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation sensing by radiation using wavelengths larger than 0.1 mm, e.g. radio-waves or microwaves the interrogation device being adapted for miscellaneous applications the interrogation device being adapted for being moveable
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
- G07C9/00—Individual registration on entry or exit
- G07C9/00174—Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys
- G07C9/00817—Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys where the code of the lock can be programmed
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
- G07C9/00—Individual registration on entry or exit
- G07C9/00174—Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys
- G07C9/00817—Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys where the code of the lock can be programmed
- G07C2009/00841—Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys where the code of the lock can be programmed by a portable device
Landscapes
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Toxicology (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Electromagnetism (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本申请实施例公开了一种卡片模拟方法、电子设备及存储介质,涉及模拟门禁卡技术领域。本申请一实施例的卡片模拟方法应用于电子设备,卡片模拟方法包括:响应于用户的第一操作,切换至模拟卡片的界面。在模拟卡片的界面上提示用户进行第二操作。响应于第二操作,使用预设的默认密钥访问卡片的第一扇区,以获取随机序列NT1。根据随机序列NT1确定第一扇区是否认证成功。若第一扇区认证成功,则利用随机序列NT1遍历随机数列表,以确定随机数列表中是否存在随机序列NT1。本申请实施例可使电子设备获取的随机序列NT1不会重复,在利用多次联合算法计算卡片的密钥时可以提供增益信息,提高复制卡片的成功率。
Description
技术领域
本申请实施例涉及模拟门禁卡技术领域,具体涉及一种卡片模拟方法、电子设备及存储介质。
背景技术
电子设备支持模拟未经加密的门禁卡,将实体门禁卡信息复制到电子设备的芯片中,电子设备可当门钥匙使用。对于部分加密卡,存在添加成功但刷卡失败的情形。以MIFARE classic卡(简称M1卡)为例,M1卡是一种加密卡,该类卡片所采用的Crypto1加密算法存在嵌套漏洞,使得复制加密卡成为可能。电子设备发送初始认证指令至卡片,以利用一个默认密钥认证卡片上的第一扇区,如果卡片上的第一扇区认证成功,则说明该默认密钥即为第一扇区的第一密钥。然后,电子设备可以利用第一扇区的第一密钥访问卡片上的第二扇区,卡片会对第二扇区的第二密钥进行认证初始化,并发送加密的第一随机序列至电子设备。电子设备上的随机数生成器基于第一随机序列继续移动生成第二随机序列。电子设备在固定的时间间隔点发送认证指令,可以恢复初始的流密码(Stream Cipher)。采用多次联合算法,根据多次生成的随机序列联合,可以回滚算出卡片上其他扇区的密钥。但是,存在一种类型的卡片,其在接收到初始认证指令后生成的随机序列一直保持不变,使得多次联合算法并不能提供增益信息,导致计算密钥失效,复制卡片失败。
发明内容
本申请实施例公开了一种卡片模拟方法、电子设备及存储介质,以提高复制卡片的成功率。
本申请第一方面公开了一种卡片模拟方法,应用于电子设备,卡片模拟方法包括:响应于用户的第一操作,切换至模拟卡片的界面。在模拟卡片的界面上提示用户进行第二操作。响应于第二操作,使用预设的默认密钥访问卡片的第一扇区,以获取随机序列NT1。根据随机序列NT1确定第一扇区是否认证成功。若第一扇区认证成功,则利用随机序列NT1遍历随机数列表,以确定随机数列表中是否存在随机序列NT1。
其中,第一操作包括触摸或点击电子设备的显示屏上的一预定区域,以触发模拟卡片的控件。第二操作包括开启电子设备的NFC功能,并将卡片贴于电子设备的背面。
在其中一种实施方式中,在利用随机序列NT1遍历随机数列表之后,卡片模拟方法还包括:当随机数列表中不存在随机序列NT1时,电子设备利用卡片上第一扇区的第一密钥访问卡片的第二扇区,以获取随机序列NT3。
在另一种实施方式中,在利用随机序列NT1遍历随机数列表之后,卡片模拟方法还包括:当随机数列表中存在随机序列NT1时,电子设备利用卡片上第一扇区的第一密钥重新访问第一扇区,以获取随机序列NT2。
在另一种实施方式中,在利用卡片上第一扇区的第一密钥访问卡片的第二扇区之前,卡片模拟方法还包括:电子设备将随机序列NT1新增至随机数列表。
在另一种实施方式中,在利用卡片上第一扇区的第一密钥访问卡片的第二扇区之后,卡片模拟方法还包括:电子设备根据第一密钥和随机序列NT3,利用嵌套攻击算法获取卡片上第二扇区的第二密钥。
在另一种实施方式中,在根据第一密钥和随机序列NT3,利用嵌套攻击算法获取卡片上第二扇区的第二密钥之后,卡片模拟方法还包括:电子设备利用第二密钥轮询认证卡片的其他扇区,以确定卡片是否存在密钥未知的扇区。
在另一种实施方式中,在利用第二密钥轮询认证卡片的其他扇区之后,卡片模拟方法还包括:当卡片不存在密钥未知的扇区时,电子设备提示卡片复制成功。
在另一种实施方式中,在利用第二密钥轮询认证卡片的其他扇区之后,卡片模拟方法还包括:当卡片存在密钥未知的第三扇区时,电子设备利用第二密钥访问第三扇区,以获取随机序列NT1。根据随机序列NT1确定第三扇区是否认证成功。若第三扇区认证成功,则利用随机序列NT1遍历随机数列表,以确定随机数列表中是否存在随机序列NT1。
在另一种实施方式中,当卡片存在密钥未知的第四扇区时,在利用随机序列NT1遍历随机数列表之后,卡片模拟方法还包括:当随机数列表中不存在随机序列NT1时,电子设备利用卡片上第三扇区的第三密钥访问卡片的第四扇区,以获取随机序列NT3。
在另一种实施方式中,当卡片存在密钥未知的第四扇区时,在利用随机序列NT1遍历随机数列表之后,卡片模拟方法还包括:当随机数列表中存在随机序列NT1时,电子设备利用卡片上第三扇区的第三密钥重新访问第三扇区,以获取随机序列NT2。
在另一种实施方式中,使用预设的默认密钥访问卡片的第一扇区,包括:向卡片发送第一认证指令,以获取随机序列NT。根据默认密钥和随机序列NT获取并发送随机序列NR和AR至卡片。获取来自于卡片的随机序列NT1。
在本申请实施例中,电子设备利用预设的默认密钥访问卡片的第一扇区,以获取来自于卡片的随机序列NT1。当卡片的第一扇区认证通过后,电子设备通过建立随机数列表,判断接收到的随机序列NT1是否已存储于随机数列表中,以确定是否利用已破解的第一扇区的第一密钥访问卡片上密钥未知的第二扇区,从而使得电子设备获取的随机序列NT1不会重复,在利用多次联合算法计算卡片的密钥时可以提供增益信息,提高复制卡片的成功率。
本申请第二方面公开了一种电子设备,包括存储器、处理器、NFC模块及显示屏,NFC模块用以传输能量和数据至卡片,并接收来自于卡片的数据。显示屏用以显示图形用户界面,处理器运行存储于存储器中的计算机程序或代码,实现本申请实施例的卡片模拟方法。
本申请第三方面公开了一种存储介质,用于存储计算机程序,当计算机程序被处理器执行时,实现本申请实施例的卡片模拟方法。
本申请第二方面至第三方面所带来的技术效果可参见上述第一方面的卡片模拟方法的相关描述,此处不再赘述。
附图说明
图1是本申请一实施方式的模拟卡片的示意图。
图2是本申请一实施方式的模拟卡片的认证示意图。
图3是本申请一实施方式的电子设备的硬件结构示意图。
图4是本申请一实施方式的电子设备的软件结构示意图。
图5是本申请一实施方式的卡片模拟方法的流程图。
图6a-6c是本申请一实施方式的模拟门禁卡的界面示意图。
图7是本申请另一实施方式的卡片模拟方法的流程图。
图8是本申请另一实施方式的卡片模拟方法的流程图。
图9是本申请一实施方式的模拟门禁卡的流程图。
具体实施方式
需要说明的是,本申请实施例中“至少一个”是指一个或者多个,“多个”是指两个或多于两个。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。本申请的说明书和权利要求书及附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不是用于描述特定的顺序或先后次序。
另外需要说明的是,本申请实施例中公开的方法或流程图所示出的方法,包括用于实现方法的一个或多个步骤,在不脱离权利要求的范围的情况下,多个步骤的执行顺序可以彼此互换,其中某些步骤也可以被删除。
图1是本申请一实施方式的模拟卡片的示意图。
可参阅图1,电子设备100启动NFC功能,用户将卡片200贴于电子设备100的背面,当卡片200处于电子设备100的天线辐射范围内时,电子设备100向卡片200发送连接请求(Request),卡片200返回类型码(ATQA码)至电子设备100。电子设备100使用选卡指令选中卡片200,卡片200返回容量信息(SAK码)至电子设备100。电子设备100接收到卡片200的容量信息后,利用预设的默认密钥对卡片200的全部加密扇区进行轮询认证。如果一个加密扇区认证通过,则卡片200允许电子设备100对所述加密扇区进行读写操作。然后,电子设备100利用已经破解的所述加密扇区的密钥和嵌套攻击(Nested Attack)算法,陆续破解卡片200其他加密扇区的密钥。其中,嵌套攻击算法是在已知卡片200任意一个扇区的密钥的情况下,攻击得到其他加密扇区的密钥的一种攻击方法。当卡片200全部加密扇区的密钥都被电子设备100破解后,电子设备100可以成功复制卡片200。
当多张卡片200都处于电子设备100的天线辐射范围内时,每一张卡片200发送自己的唯一标识符(UID)至电子设备100。电子设备100使用选卡指令选中一张卡片200,卡片200返回容量信息(SAK码)至电子设备100。其他未被选中的卡片200处于等待状态,准备与电子设备100进行通信。
图2是本申请一实施方式的模拟卡片的认证示意图。
以MIFARE classic卡(简称M1卡)为例。M1卡中的存储器(EEPROM)被划分成16个扇区,每一个扇区的密钥和存取控制都是独立的。每一个扇区配置有4个块,每一个扇区的尾块用以保存密钥A、密钥B和控制位。M1卡利用Crypto1算法进行认证和加密。Crypto1算法包括一个48bit的线性反馈移位寄存器(LFSR)和一个两层的20bit输入1bit输出的滤波函数。48bit的LFSR根据初始密钥产生密钥流。其中,密钥流是一串用以与明文数据流结合进行加密或解密的数据流。
可参阅图2,电子设备100对卡片200的一个加密扇区进行认证,可以包括以下步骤:
(1)电子设备100利用预设的默认密钥访问卡片200的一个加密扇区,选择密钥A或密钥B,并发送初始认证指令至卡片200。
(2)卡片200接收到初始认证指令后,从所述加密扇区的尾块读取扇区密钥,生成并发送一个随机序列NT至电子设备100。
(3)电子设备100接收到随机序列NT后,利用所述默认密钥和随机序列NT加密生成令牌数据token1,并发送令牌数据token1至卡片200,其中,令牌数据token1包括随机序列NT和电子设备100产生的一个随机序列NR。
(4)卡片200接收到令牌数据token1后,利用所述扇区密钥对令牌数据token1的加密部分进行解密,并校验步骤(2)中发送的随机序列NT是否与令牌数据token1中解密得到的随机序列NT相一致。
(5)如果步骤(4)中校验结果是随机序列NT相一致,则卡片200利用所述扇区密钥、随机序列NT和NR加密生成令牌数据token2,并发送令牌数据token2至电子设备100,其中,令牌数据token2包括随机序列NT和NR。
(6)电子设备100接收到令牌数据token2后,利用所述默认密钥对令牌数据token2的加密部分进行解密,并校验步骤(3)中发送的随机序列NR是否与令牌数据token2中解密得到的随机序列NR相一致,以及校验步骤(2)中接收到的随机序列NT是否与令牌数据token2中解密得到的随机序列NT相一致。
(7)如果步骤(6)中校验结果是随机序列NT和NR相一致,则电子设备100对卡片200的所述加密扇区认证通过,说明所述默认密钥与所述扇区密钥相同。
在上述模拟卡片的过程中,存在一种类型的卡片,如表1所示,其在接收到初始认证指令后生成的随机序列NT一直保持不变,使得多次联合算法并不能提供增益信息,导致无法破解出其他扇区的密钥。
表1模拟卡片的过程中随机序列的变化
认证指令 | 随机序列 |
600B26C5 | 01200145 |
600F0283 | 01200145 |
61171306 | 01200145 |
610BFEDC | 01200145 |
610FDA9A | 01200145 |
61133740 | 01200145 |
603F81B2 | 01200145 |
本申请实施例提供一种卡片模拟方法、电子设备及存储介质,使电子设备获取的随机序列不会重复,以提高复制卡片的成功率。
图3是本申请一实施方式的电子设备100的硬件结构示意图。
可参阅图3,电子设备100可以包括处理器110、存储器120、NFC模块130及显示屏140。其中,NFC模块130用以传输能量和数据至卡片200,并接收来自于卡片200的数据。显示屏140用以显示图形用界面(Graphical User Interface,GUI)。处理器110可以运行存储于存储器120中的计算机程序或代码,实现本申请实施例的卡片模拟方法。
处理器110可以包括一个或多个处理单元。例如,处理器110可以包括,但不限于,应用处理器(Application Processor,AP)、调制解调处理器、图形处理器(GraphicsProcessing Unit,GPU)、图像信号处理器(Image Signal Processor,ISP)、控制器、视频编解码器、数字信号处理器(Digital Signal Processor,DSP)、基带处理器、神经网络处理器(Neural-Network Processing Unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。所述存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用所述指令或数据,可从所述存储器中直接调用。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括,但不限于,集成电路(Inter-Integrated Circuit,I2C)接口、集成电路内置音频(Inter-IntegratedCircuit Sound,I2S)接口、脉冲编码调制(Pulse Code Modulation,PCM)接口、通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,UART)接口、移动产业处理器接口(Mobile Industry Processor Interface,MIPI)、通用输入输出(General-PurposeInput/Output,GPIO)接口、用户标识模块(Subscriber Identity Module,SIM)接口、通用串行总线(Universal Serial Bus,USB)接口等。
可以理解,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
存储器120可以包括外部存储器接口和内部存储器。其中,外部存储器接口可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口与处理器110通信,实现数据存储功能。内部存储器可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(例如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(例如音频数据,电话本等)等。此外,内部存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件或通用闪存存储器(Universal FlashStorage,UFS)等。处理器110通过运行存储在内部存储器的指令,和/或存储在设置于处理器110中的存储器的指令,执行电子设备100的各种功能应用以及数据处理,例如实现本申请实施例的卡片模拟方法。
可以理解,本申请实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
图4是本申请一实施方式的电子设备100的软件结构示意图。
可参阅图4,电子设备100的软件系统可以采用以下任一种架构:分层架构、事件驱动架构、微核架构、微服务架构、云架构。本申请实施例以分层架构的Android系统为例,示例性说明电子设备100的软件结构。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层、应用程序框架层、安卓运行时(Android Runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。例如,应用程序包可以包括,但不限于,运动健康、钱包、相机、图库、日历、通话、地图、导航、WLAN、蓝牙、音乐、视频、短信息等应用程序(app)。
应用程序框架层为应用程序层的应用程序提供应用编程接口(ApplicationProgramming Interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
应用程序框架层可以包括,但不限于,窗口管理器、内容提供器、视图系统、电话管理器、资源管理器、通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,以及截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括,但不限于,视频、图像、音频、拨打和接听的电话、浏览历史和书签、电话簿等。
视图系统包括可视控件,例如显示文字和/或图片的控件等。视图系统可用于构建应用程序。显示界面可以包括一个或多个视图。例如,包括短信通知图标的显示界面,可以包括显示文字和/或图片的视图。
电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,例如本地化字符串、图标、图片、布局文件、视频文件等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。例如,通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android Runtime负责安卓系统的调度和管理。
核心库包括两部分:一部分是Java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的Java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理、堆栈管理、线程管理、安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(Surface Manager)、媒体库(Media Libraries)、三维图形处理库(例如OpenGL ES)、2D图形引擎(例如SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频/视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如,MPEG4、H.264、MP3、AAC、AMR、JPG、PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层可以包括显示驱动、摄像头驱动、音频驱动、传感器驱动等。
可以理解,本申请实施例的电子设备100可以包括,但不限于,智能电话、平板电脑、个人计算机(Personal Computer,PC)、电子书阅读器、个人数字助理(PersonalDigital Assistant,PDA)、便携式多媒体播放器(Portable Multimedia Player,PMP)和穿戴设备中的至少一个。所述穿戴设备包括附件类型(例如,手表、戒指、手镯、脚链、项链、眼镜、隐形眼镜或头戴式设备(Head-Mounted Device,HMD))、织物或服装集成类型(例如电子服装)、身体安装类型(例如皮肤垫或纹身)以及生物可植入类型(例如可植入电路)中的至少一种。
图5是本申请一实施方式的卡片模拟方法的流程图。
可参阅图5,卡片模拟方法可以包括以下步骤:
S101,电子设备100响应于用户的第一操作,切换至模拟卡片的界面。
其中,第一操作包括触摸或点击电子设备100的显示屏140上的一预定区域,以触发模拟卡片的控件。
举例而言,可参阅图6a和图6b,用户可以将一实体卡片复制到一穿戴设备。在一手机的运动健康app中,用户可以选择已蓝牙连接的一穿戴设备,并选择所述穿戴设备的钱包app。在所述穿戴设备的钱包app中,用户可以选择“门禁卡”,切换至门禁卡的界面。门禁卡的界面包括“模拟实体门禁卡”和“创建空白卡”。用户可以选择“模拟实体门禁卡”,切换至模拟门禁卡的界面。
在一些实施例中,用户也可以将实体卡片复制到一手机。在一手机的钱包app中,用户可以选择“门禁卡”,切换至门禁卡的界面。门禁卡的界面包括“模拟实体门禁卡”和“创建空白卡”。用户可以选择“模拟实体门禁卡”,切换至模拟门禁卡的界面。
S102,电子设备100在模拟卡片的界面上提示用户进行第二操作。
其中,第二操作包括开启电子设备100的NFC功能,并将卡片200贴于电子设备100的背面。
举例而言,可再次参阅图6b,在模拟门禁卡的界面上显示“准备读卡”,并提示用户“请确保手机已开启NFC功能,手机背面贴于卡片下半部区域”。
S103,电子设备100响应于第二操作,使用预设的默认密钥访问卡片200的第一扇区,以获取随机序列NT1。
在本实施例中,卡片200包括多个扇区,例如M1卡包括16个扇区密钥。响应于用户的第二操作,使卡片200处于电子设备100的天线辐射范围内,电子设备100使用预设的默认密钥访问卡片200的第一扇区。在其中一种实施方式中,在电子设备100出厂前,工程师可以根据电子设备100支持模拟的卡片类型在电子设备100中预设多个默认密钥,电子设备100依次使用每一个默认密钥轮询认证卡片200的每一个扇区。当电子设备100使用一个默认密钥成功认证卡片200的一个扇区时,说明所述默认密钥与所述扇区的密钥相同,即电子设备100成功破解出所述扇区的密钥。
具体而言,可参阅图7,步骤S103中,电子设备100使用预设的默认密钥访问卡片200的第一扇区,以获取随机序列NT1,可以包括以下步骤:
S201,电子设备100向卡片200发送第一认证指令,以获取随机序列NT。
在本实施例中,第一认证指令是指电子设备100认证卡片200的第一扇区的指令。例如,第一认证指令为[6XYY],即电子设备100访问卡片200的第6扇区第YY块,其中,YY表示区块号,X=0表示电子设备100选择密钥A,X=1表示电子设备100选择密钥B。电子设备100向卡片200发送第一认证指令,卡片200接收到第一认证指令后,利用第一随机数生成器产生随机序列NT,并发送随机序列NT至电子设备100。其中,第一随机数生成器是一种随机数函数,例如第一随机数生成器是伪随机数生成器(Pseudo Random Number Generator,PRNG)。
在本实施例中,卡片200包括第一随机数生成器,电子设备100包括第二随机数生成器。第二随机数生成器的随机数生成机制与第一随机数生成器相同。
在本实施例中,当卡片200生成随机序列NT后,卡片200使用第一扇区的第一密钥、唯一标识符(UID)及随机序列NT对卡片200中的第一加密机进行初始化,以产生密钥流。其中,第一加密机是指包含至少一种加密算法的加密程序,例如第一加密机包含Crypto1算法。
在本实施例中,卡片200包括第一加密机,电子设备100包括第二加密机。第二加密机的加密机制与第一加密机相同。
S202,电子设备100利用预设的默认密钥和随机序列NT获取并发送随机序列NR和AR至卡片200。
在本实施例中,电子设备100接收到随机序列NT后,使用默认密钥、卡片200的唯一标识符(UID)及随机序列NT对第二加密机进行初始化。第二加密机初始化完成之后,一方面,电子设备100利用第二随机数生成器产生随机序列NR,并使用第二加密机加密随机序列NR,产生加密的随机序列NR1。另一方面,电子设备100利用第二随机数生成器对随机序列NT进行处理,获取随机序列AR,并使用第二加密机加密随机序列AR,产生加密的随机序列AR1。电子设备100发送加密的随机序列NR1和AR1至卡片200。
S203,电子设备100获取来自于卡片200的随机序列NT1。
在本实施例中,卡片200接收到加密的随机序列NR1和AR1后,利用第一扇区的第一密钥和第一加密机对加密的随机序列NR1和AR1进行解密。具体地,卡片200一方面对加密的随机序列NR1进行解密,使用第一密钥和第一加密机计算得到随机序列NR。另一方面,卡片200对加密的随机序列AR1进行解密,使用第一密钥和第一加密机计算得到随机序列AR。然后,卡片200利用第一随机数生成器和随机序列AR计算得到随机序列NT,并校验随机序列NT是否与先前产生的随机序列NT相一致。如果校验结果是随机序列NT相一致,则卡片200利用随机序列NR和NT及第一随机数生成器产生随机序列NT1,并使用第一加密机加密随机序列NT1,产生加密的随机序列AT1。卡片200发送加密的随机序列AT1至电子设备100。
电子设备100接收到加密的随机序列AT1后,对加密的随机序列AT1进行解密,使用第二加密机计算得到随机序列NT1。
S104,电子设备100根据随机序列NT1确定第一扇区是否认证成功。若第一扇区认证失败,则执行步骤S105。若第一扇区认证成功,则执行步骤S106。
在本实施例中,电子设备100利用第二随机数生成器和随机序列NT1计算得到随机序列NR和NT,并校验随机序列NR是否与先前产生的随机序列NR相一致,校验随机序列NT是否与先前接收到的随机序列NT相一致。如果校验结果是随机序列NR和NT相一致,则说明电子设备100对卡片200的第一扇区认证成功,即预设的默认密钥即为第一扇区的第一密钥。如果校验结果是随机序列NR和NT不一致,则说明电子设备100对卡片200的第一扇区认证失败,即预设的默认密钥不是第一扇区的第一密钥。
S105,电子设备100利用默认密钥访问卡片200的其他扇区。
在本实施例中,电子设备100对卡片200的第一扇区认证失败,即电子设备100利用默认密钥未能破解出卡片200上第一扇区的第一密钥。此时,电子设备100继续利用默认密钥轮询认证卡片200的其他扇区。如果电子设备100利用默认密钥对卡片200上全部扇区都认证失败,则电子设备100更换默认密钥,继续利用更换后的默认密钥轮询认证卡片200的每一个扇区,直至成功认证一个扇区。
S106,电子设备100利用随机序列NT1遍历随机数列表。
在本实施例中,电子设备100对卡片200的第一扇区认证成功,即电子设备100利用默认密钥成功破解出卡片200上第一扇区的第一密钥。然后,电子设备100利用随机序列NT1遍历随机数列表,以确定随机数列表中是否存在随机序列NT1。
S107,电子设备100确定随机数列表中是否存在随机序列NT1。若随机数列表中存在随机序列NT1,则返回执行步骤S103。若随机数列表中不存在随机序列NT1,则执行步骤S108。
其中,电子设备100存储有随机数列表。随机数列表用以存储历史已使用过的随机序列NT1。在本实施例中,电子设备100遍历随机数列表,以确定随机数列表中是否存在随机序列NT1。当随机数列表中存在随机序列NT1时,电子设备100重新访问卡片200的第一扇区,以更新随机序列NT1。当随机数列表中不存在随机序列NT1时,电子设备100访问卡片200的第二扇区。在电子设备100使用第一扇区的第一密钥和嵌套攻击算法破解卡片200上第二扇区的第二密钥之前,电子设备100对随机数列表进行初始化,将新的随机序列NT1添加到随机数列表,以更新随机数列表。如此,可保证随机数列表中的随机序列NT1不重复。
S108,电子设备100利用卡片200上第一扇区的第一密钥访问卡片200的第二扇区,以获取来自于卡片200的随机序列NT3。
在本实施例中,当随机数列表中不存在随机序列NT1时,说明随机序列NT1为新的随机序列,可以为解密算法提供增益信息。
在本实施例中,电子设备100向卡片200发送第二认证指令,第二认证指令是指电子设备100认证卡片200的第二扇区的指令。卡片200接收到第二认证指令后,利用第二扇区的第二密钥和第一随机数生成器产生随机序列NT3,并使用第一加密机加密随机序列NT3,产生加密的随机序列AT3。然后,卡片200发送加密的随机序列AT3至电子设备100。
电子设备100接收到加密的随机序列AT3后,对加密的随机序列AT3进行解密,使用卡片200上第一扇区的第一密钥和第二加密机计算得到随机序列NT3。
S109,电子设备100根据第一密钥和随机序列NT3,利用嵌套攻击算法获取卡片200上第二扇区的第二密钥。
在本实施例中,电子设备100获取随机序列NT3后,可利用卡片200上第一扇区的第一密钥和嵌套攻击算法破解出第二扇区的第二密钥。
S110,电子设备100利用第二密钥轮询认证卡片200的其他扇区。
在本实施例中,电子设备100破解出卡片200上第二扇区的第二密钥后,利用第二密钥轮询认证卡片200的其他扇区。由于第二密钥可能与其他扇区的密钥相同,利用第二密钥轮询其他扇区,可以筛选出密钥未被破解的扇区。
S111,电子设备100确定是否存在密钥未知的扇区。若存在密钥未知的扇区,则执行步骤S112。若不存在密钥未知的扇区,则执行步骤S113。
在本实施例中,电子设备100利用第二密钥轮询认证卡片200的其他扇区,可确定是否存在密钥未知的扇区。
S112,电子设备100根据密钥未知的扇区重新确定第一扇区和第二扇区,根据破解出的密钥重新确定默认密钥,并返回执行步骤S103。
举例而言,当存在密钥未知的第三扇区和第四扇区时,电子设备100将第三扇区定义为步骤S103中的第一扇区,将第四扇区定义为步骤S108中的第二扇区,将最近破解出的第二扇区的第二密钥定义为默认密钥。当电子设备100返回执行步骤S103时,电子设备100利用最近破解出的第二密钥访问第三扇区。当电子设备100从步骤S103执行到步骤S108时,电子设备100利用最近破解出的第三扇区的第三密钥访问第四扇区。如此循环认证,电子设备100利用最近破解出的一个扇区的密钥认证另一个密钥未知的扇区,可依次破解出全部扇区的密钥。
S113,电子设备100提示卡片200复制成功。
举例而言,可参阅图6c,卡片200复制完成后,电子设备100的模拟门禁卡的界面显示“读卡成功”,并提示用户“请注意保管好您的实体门禁卡,以防被复制”。
在本实施例中,电子设备100成功复制卡片200后,用户可将电子设备100靠近门禁系统的读写感应区,唤醒门钥匙功能。门禁系统验证钥匙成功,控制锁舌完成开门动作。
在本实施例中,当电子设备100利用预设的默认密钥访问卡片200的第一扇区时,电子设备100向卡片200发送第一认证指令,以获取卡片200所产生的随机序列NT1。电子设备100通过建立随机数列表,判断接收到的卡片200所产生的随机序列NT1是否已存储于随机数列表中。当随机数列表中存在随机序列NT1时,电子设备100重新向卡片200发送第一认证指令,重新访问卡片200的第一扇区,以重新获取随机序列NT1,直至卡片200生成的随机序列NT1为随机数列表中未记录的随机序列,从而保证在访问卡片200上另一个扇区时卡片200生成的随机序列不会重复。当随机数列表中不存在随机序列NT1时,电子设备100向卡片200发送第二认证指令,访问卡片200的第二扇区,以获取卡片200所生成的随机序列NT3,然后利用第一扇区的第一密钥和嵌套攻击算法计算出第二扇区的第二密钥。如此,电子设备100可根据一个预设的默认密钥,通过使用默认密钥认证卡片200的第一扇区来破解第一扇区的第一密钥,再使用已知的第一扇区的第一密钥和嵌套攻击算法来获取卡片200上第二扇区的第二密钥,以成功认证卡片200的第二扇区。电子设备100可利用第二扇区的第二密钥和嵌套攻击算法获取卡片200上其他扇区的密钥,直至成功复制卡片200。
图8是本申请另一实施方式的卡片模拟方法的流程图。
可参阅图8,卡片200模拟方法可以包括遍历、重复、嵌套、解密、恢复、回滚及验证等流程。其中,遍历流程可以包括以下步骤:
S301,电子设备100向卡片200发送第一认证指令,以利用预设的默认密钥访问卡片200的第一扇区。
在本实施例中,电子设备100中存储有多个默认密钥,电子设备100向卡片200发送第一认证指令,以利用一个预设的默认密钥访问卡片200的第一扇区。
S302,电子设备100获取来自于卡片200的随机序列NT。
在本实施例中,卡片200接收到第一认证指令后,利用第一随机数生成器生成随机序列NT,并发送随机序列NT至电子设备100。当卡片200生成随机序列NT后,卡片200使用第一扇区的第一密钥、唯一标识符(UID)及随机序列NT对卡片200中的第一加密机进行初始化,以产生密钥流。
S303,电子设备100根据预设的默认密钥和随机序列NT生成并发送随机序列NR和AR至卡片200。
在本实施例中,电子设备100接收到随机序列NT后,使用默认密钥、卡片200的唯一标识符(UID)及随机序列NT对第二加密机进行初始化。第二加密机初始化完成之后,电子设备100利用第二随机数生成器和随机序列NT产生随机序列AR,并利用第二随机数生成器产生随机序列NR,然后对随机序列NR和AR分别进行加密,并发送加密的随机序列NR1和AR1至卡片200。
S304,电子设备100获取来自于卡片200的随机序列NT1。
在本实施例中,卡片200接收到加密的随机序列NR1和AR1后,利用第一扇区的第一密钥和第一加密机对加密的随机序列NR1和AR1分别进行解密,获取随机序列NR和AR,利用第一随机数生成器和随机序列AR计算得到随机序列NT,并校验随机序列NT。校验通过后,卡片200利用随机序列NR和NT及第一随机数生成器产生随机序列NT1,然后对随机序列NT1进行加密,发送加密的随机序列AT1至电子设备100。
电子设备100接收到加密的随机序列AT1后,对加密的随机序列AT1进行解密,获取随机序列NT1。电子设备100利用第二随机数生成器和随机序列NT1计算得到随机序列NR和NT,并校验随机序列NR和NT。校验通过后,说明电子设备100对卡片200的第一扇区认证成功,即预设的默认密钥即为第一扇区的第一密钥。
在上述遍历流程中,电子设备100按照相等的时间间隔发送空口数据至卡片200。
重复流程可以包括以下步骤:
S401,电子设备100第N次向卡片200发送第一认证指令,以利用预设的默认密钥访问卡片200的第一扇区。
其中,N为正整数。在本实施例中,电子设备100第N次利用一个预设的默认密钥访问卡片200的第一扇区。
S402,电子设备100获取来自于卡片200的随机序列NT。
在本实施例中,卡片200第N次接收到第一认证指令后,生成并发送随机序列NT至电子设备100,及使用第一扇区的第一密钥、唯一标识符(UID)及随机序列NT对卡片200中的第一加密机进行初始化。
S403,电子设备100根据随机序列NT生成并发送随机序列NR和AR至卡片200。
在本实施例中,电子设备100第N次接收到随机序列NT后,使用默认密钥、卡片200的唯一标识符(UID)及随机序列NT对第二加密机进行初始化。然后,电子设备100根据随机序列NT产生随机序列AR,并生成随机序列NR,然后对随机序列NR和AR分别进行加密,生成并发送加密的随机序列NR1和AR1至卡片200。
S404,电子设备100获取来自于卡片200的随机序列NT1。
在本实施例中,卡片200第N次接收到加密的随机序列NR1和AR1,利用第一扇区的第一密钥和第一加密机对加密的随机序列NR1和AR1分别进行解密,获取随机序列NR和AR,利用第一随机数生成器和随机序列AR计算得到随机序列NT,并校验随机序列NT。校验通过后,卡片200利用随机序列NR和NT及第一随机数生成器产生随机序列NT1,然后对随机序列NT1进行加密,发送加密的随机序列AT1至电子设备100。
电子设备100接收到加密的随机序列AT1后,对加密的随机序列AT1进行解密,获取随机序列NT1。电子设备100利用第二随机数生成器和随机序列NT1计算得到随机序列NR和NT,并校验随机序列NR和NT。校验通过后,说明电子设备100对卡片200的第一扇区认证成功。
S405,电子设备100第N+1次向卡片200发送第一认证指令,以利用预设的默认密钥访问卡片200的第一扇区。
在本实施例中,电子设备100第N+1次使用一个预设的默认密钥访问卡片200的第一扇区。
S406,电子设备100获取来自于卡片200的随机序列NT2。
在本实施例中,卡片200第N+1次接收到第一认证指令,利用第一随机数生成器产生随机序列NT2,并利用第一加密机对随机序列NT2进行加密,发送加密的随机序列AT2至电子设备100。其中,随机序列NT2与随机序列NT1相同。
S407,电子设备100根据随机序列NT2生成并发送随机序列NR和AR至卡片200。
在本实施例中,电子设备100接收到加密的随机序列AT2,解密后获取随机序列NT2。电子设备100根据随机序列NT2产生随机序列AR,并生成随机序列NR,然后对随机序列NR和AR分别进行加密,生成并发送加密的随机序列NR1和AR1至卡片200。
S408,电子设备100获取来自于卡片200的随机序列NT1。
在本实施例中,卡片200第N+1次接收到加密的随机序列NR1和AR1,对加密的随机序列NR1和AR1分别进行解密,获取随机序列NR和AR,并利用随机序列NR和NT及第一随机数生成器产生随机序列NT1,然后对随机序列NT1进行加密,发送加密的随机序列AT1至电子设备100。
电子设备100接收到加密的随机序列AT1后,对加密的随机序列AT1进行解密,获取随机序列NT1。
在上述重复流程中,电子设备100计算随机序列NT1和NT2之间的周期间隔。
嵌套流程可以包括以下步骤:
S501,电子设备100向卡片200发送第一认证指令,以利用预设的默认密钥访问卡片200的第一扇区。
在本实施例中,电子设备100使用一个预设的默认密钥访问卡片200的第一扇区。
S502,电子设备100获取来自于卡片200的随机序列NT。
在本实施例中,卡片200接收到第一认证指令,生成随机序列NT,并发送随机序列NT至电子设备100。然后,卡片200使用第一扇区的第一密钥、唯一标识符(UID)及随机序列NT对卡片200中的第一加密机进行初始化。
S503,电子设备100根据随机序列NT生成并发送随机序列NR和AR至卡片200。
在本实施例中,电子设备100接收到随机序列NT后,使用默认密钥、卡片200的唯一标识符(UID)及随机序列NT对第二加密机进行初始化。然后,电子设备100根据随机序列NT产生随机序列AR,并生成随机序列NR,然后对随机序列NR和AR分别进行加密,生成并发送加密的随机序列NR1和AR1至卡片200。
S504,电子设备100获取来自于卡片200的随机序列NT1。
在本实施例中,卡片200接收到加密的随机序列NR1和AR1后,利用第一扇区的第一密钥和第一加密机对加密的随机序列NR1和AR1分别进行解密,获取随机序列NR和AR,利用第一随机数生成器和随机序列AR计算得到随机序列NT,并校验随机序列NT。校验通过后,卡片200利用随机序列NR和NT及第一随机数生成器产生随机序列NT1,然后对随机序列NT1进行加密,发送加密的随机序列AT1至电子设备100。
电子设备100接收到加密的随机序列AT1后,对加密的随机序列AT1进行解密,获取随机序列NT1。电子设备100利用第二随机数生成器和随机序列NT1计算得到随机序列NR和NT,并校验随机序列NR和NT。校验通过后,说明电子设备100对卡片200的第一扇区认证成功。
S505,电子设备100向卡片200发送第二认证指令,以利用第一密钥访问卡片200的第二扇区。
在本实施例中,电子设备100获取随机序列NT1后,利用第一扇区的第一密钥访问卡片200的第二扇区。
S506,电子设备100获取来自于卡片200的随机序列NT3。
在本实施例中,卡片200接收到第二认证指令后,利用第一随机数生成器产生随机序列NT3,并利用第一加密机对随机序列NT3进行加密,发送加密的随机序列AT3至电子设备100。其中,随机序列NT3与随机序列NT1不同。
在上述嵌套流程中,电子设备100先利用预设的默认密钥访问卡片200的第一扇区,以破解出第一扇区的第一密钥,再利用第一密钥访问卡片200的第二扇区,以利用嵌套攻击算法破解出第二扇区的第二密钥。
解密、恢复及回滚流程是利用嵌套攻击算法计算出第二扇区的第二密钥。
验证流程可以包括以下步骤:
S601,电子设备100向卡片200发送第二认证指令,以利用破解出的第二密钥访问卡片200的第二扇区。
在本实施例中,电子设备100使用破解出的第二扇区的第二密钥访问卡片200的第二扇区。
S602,电子设备100获取来自于卡片200的随机序列NT。
在本实施例中,卡片200接收到第二认证指令后,利用第一随机数生成器生成随机序列NT,并发送随机序列NT至电子设备100。当卡片200生成随机序列NT后,卡片200使用第二扇区的第二密钥、唯一标识符(UID)及随机序列NT对卡片200中的第一加密机进行初始化,以产生密钥流。
S603,电子设备100根据破解出的第二密钥和随机序列NT生成并发送随机序列NR和AR至卡片200。
在本实施例中,电子设备100接收到随机序列NT后,使用破解出的第二密钥、卡片200的唯一标识符(UID)及随机序列NT对第二加密机进行初始化。第二加密机初始化完成之后,电子设备100利用第二随机数生成器和随机序列NT产生随机序列AR,并利用第二随机数生成器产生随机序列NR,然后对随机序列NR和AR分别进行加密,生成并发送加密的随机序列NR1和AR1至卡片200。
S604,电子设备100获取来自于卡片200的随机序列NT1。
在本实施例中,卡片200接收到加密的随机序列NR1和AR1后,利用第二扇区的第二密钥和第一加密机对加密的随机序列NR1和AR1分别进行解密,获取随机序列NR和AR,利用第一随机数生成器和随机序列AR计算得到随机序列NT,并校验随机序列NT。校验通过后,卡片200利用随机序列NR和NT及第一随机数生成器产生随机序列NT1,然后对随机序列NT1进行加密,发送加密的随机序列AT1至电子设备100。
电子设备100接收到加密的随机序列AT1后,对加密的随机序列AT1进行解密,获取随机序列NT1。电子设备100利用第二随机数生成器和随机序列NT1计算得到随机序列NR和NT,并校验随机序列NR和NT。校验通过后,说明电子设备100对卡片200的第二扇区认证成功,即破解出的第二扇区的第二密钥正确。
在上述验证流程中,电子设备100计算出第二扇区的第二密钥,再使用破解出的第二密钥访问第二扇区,以验证破解出的第二密钥是否正确。
图9是本申请一实施方式的模拟门禁卡的流程图。
本实施例是采用上述卡片模拟方法模拟门禁卡。可参阅图9,模拟门禁卡的流程可以包括以下步骤:
S701,电子设备100请求读取卡片200的门禁信息。
可一并参阅图6a-6c,在电子设备100的钱包app中,用户可以选择“门禁卡”,切换至门禁卡的界面,然后选择“模拟实体门禁卡”,切换至模拟门禁卡的界面。用户开启电子设备100的NFC功能,将卡片200贴于电子设备100的背面。电子设备100通过NFC模块请求读取卡片200的门禁信息。其中,卡片200的门禁信息包括卡类型。卡类型可以包括MIFARE Mini、MIFARE Classic 1k、MIFARE Classic 4k、MIFARE Ultralight、MIFARE DESFire、MIFAREDESFire EV1等。
S702,电子设备100获取来自于卡片200的门禁信息。
在本实施例中,卡片200响应于电子设备100的门禁信息请求,与电子设备100建立无线通讯连接,然后发送门禁信息至电子设备100。
S703,电子设备100确定是否支持模拟卡片200。若支持模拟卡片200,则执行步骤S704。若不支持模拟卡片200,则提示用户不支持。
在本实施例中,电子设备100获取卡片200的信息,可以根据卡类型判断是否支持模拟卡片200。电子设备100所支持模拟的卡类型由应用提供商定义。如果不支持模拟卡片200,则提示用户电子设备100不支持模拟卡片200。如果支持模拟卡片200,则向服务器300发送卡片200的认证请求。
S704,电子设备100向服务器300请求卡片200的应用标识。
其中,应用标识(Application Identifier,AID)用于唯一标识一个应用,由应用提供商定义。电子设备100向服务器300发送认证请求,以请求卡片200的应用标识。
S705,电子设备100获取来自于服务器300的应用标识。
在本实施例中,服务器300接收认证请求后,发送卡片200的应用标识至电子设备100。
S706,电子设备100根据应用标识创建安全域,并向服务器300请求开通卡片200。
在本实施例中,电子设备100接收应用标识后,根据应用标识创建安全域,并向服务器300请求开通卡片200。
S707,服务器300向服务平台400请求开通卡片200。
在本实施例中,服务器300接收开通请求后,向服务平台400(例如SEI-TSM平台)请求开通卡片200。
S708,服务平台400返回下载安装指令至服务器300。
在本实施例中,服务平台400接收开通请求后,向服务器300发送下载安装指令。
S709,电子设备100获取来自于服务器300的下载安装指令。
在本实施例中,服务器300接收下载安装指令后,返回所述下载安装指令至电子设备100。
S710,电子设备100执行下载安装指令,并上传下载安装指令的执行结果至服务器300,以请求应用协议数据单元。
其中,应用协议数据单元(Application Protocol Data Unit,APDU)是卡片与读卡器之间传送的信息单元。电子设备100接收并执行所述下载安装指令,下载并安装卡片200的电子卡片。安装完成之后,电子设备100上传所述下载安装指令的执行结果至服务器300,以向服务器300反馈所述电子卡片安装成功或安装失败。如果所述电子卡片安装成功,则电子设备100继续向服务器300请求应用协议数据单元。如果所述电子卡片安装失败,则电子设备100重新执行所述下载安装指令,下载并安装卡片200的电子卡片,直至所述电子卡片安装成功。
S711,服务器300向服务平台400请求应用协议数据单元。
在本实施例中,服务器300接收到所述电子卡片安装成功的消息和所述应用协议数据单元的请求之后,将其转发至服务平台400。
S712,服务平台400返回应用协议数据单元至服务器300。
在本实施例中,服务平台400接收到所述电子卡片安装成功的消息和所述应用协议数据单元的请求之后,发送所述应用协议数据单元至服务器300。
S713,电子设备100获取来自于服务器300的应用协议数据单元。
在本实施例中,服务器300接收到所述应用协议数据单元之后,发送所述应用协议数据单元至电子设备100。
S714,服务器300记录卡片200的开通状态。
在本实施例中,服务器300接收到所述应用协议数据单元之后,记录卡片200的开通状态。
S715,电子设备100提示卡片200开通成功,并记录卡片200的数据。
在本实施例中,电子设备100接收到所述应用协议数据单元之后,提示用户卡片200开通成功,并记录卡片200的数据。其中,卡片200的数据包括用户身份证明(UID)。
本实施例通过电子设备100、卡片200、服务器300及服务平台400之间的信息交互,电子设备100采用本申请实施例的卡片模拟方法模拟卡片200,可以成功复制卡片200。将卡片200复制到电子设备100之后,电子设备100可以用作门钥匙。
本申请实施例还提供一种存储介质,用于存储计算机程序,当所述计算机程序被处理器执行时,实现本申请实施例的卡片模拟方法。
所述存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其它数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。存储介质包括但不限于随机存取存储器(Random Access Memory,RAM)、只读存储器(Read-OnlyMemory,ROM)、带电可擦可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、闪存或其它存储器、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、数字通用光盘(Digital Versatile Disc,DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其它的介质。
上面结合附图对本申请实施例作了详细说明,但是本申请不限于上述实施例,在所属技术领域普通技术人员所具备的知识范围内,还可以在不脱离本申请宗旨的前提下做出各种变化。
Claims (9)
1.一种卡片模拟方法,应用于电子设备,其特征在于,所述方法包括:
响应于用户的第一操作,切换至模拟卡片的界面;
在所述模拟卡片的界面上提示所述用户进行第二操作;
响应于所述第二操作,使用预设的默认密钥访问卡片的第一扇区,以获取随机序列NT1;
根据所述随机序列NT1确定所述第一扇区是否认证成功;
若所述第一扇区认证成功,则利用所述随机序列NT1遍历随机数列表,以确定所述随机数列表中是否存在所述随机序列NT1;
响应于所述随机数列表中存在所述随机序列NT1,利用所述卡片上第一扇区的第一密钥重新访问所述第一扇区,以更新所述随机序列NT1;
响应于所述随机数列表中不存在所述随机序列NT1,利用所述卡片上第一扇区的第一密钥访问所述卡片的第二扇区,以获取随机序列NT3;所述第一扇区的第一密钥为所述默认密钥;
根据所述第一密钥和所述随机序列NT3,获取所述卡片上第二扇区的第二密钥;
利用所述第二密钥轮询认证所述卡片的其他扇区,以确定所述卡片是否存在密钥未知的扇区;
当所述卡片不存在密钥未知的扇区时,提示所述卡片复制成功。
2.如权利要求1所述的卡片模拟方法,其特征在于,在所述利用所述卡片上第一扇区的第一密钥访问所述卡片的第二扇区之前,所述方法还包括:
所述电子设备将所述随机序列NT1新增至所述随机数列表。
3.如权利要求1或2所述的卡片模拟方法,其特征在于,所述根据所述第一密钥和所述随机序列NT3,获取所述卡片上第二扇区的第二密钥,包括:
所述电子设备根据所述第一密钥和所述随机序列NT3,利用嵌套攻击算法获取所述卡片上第二扇区的第二密钥。
4.如权利要求1所述的卡片模拟方法,其特征在于,在所述利用所述第二密钥轮询认证所述卡片的其他扇区之后,所述方法还包括:
当所述卡片存在密钥未知的第三扇区时,所述电子设备利用所述第二密钥访问所述第三扇区,以获取所述随机序列NT1;
根据所述随机序列NT1确定所述第三扇区是否认证成功;
若所述第三扇区认证成功,则利用所述随机序列NT1遍历所述随机数列表,以确定所述随机数列表中是否存在所述随机序列NT1。
5.如权利要求4所述的卡片模拟方法,其特征在于,当所述卡片存在密钥未知的第四扇区时,在所述利用所述随机序列NT1遍历随机数列表之后,所述方法还包括:
当所述随机数列表中不存在所述随机序列NT1时,所述电子设备利用所述卡片上第三扇区的第三密钥访问所述卡片的第四扇区,以获取随机序列NT3。
6.如权利要求4所述的卡片模拟方法,其特征在于,当所述卡片存在密钥未知的第四扇区时,在所述利用所述随机序列NT1遍历随机数列表之后,所述方法还包括:
当所述随机数列表中存在所述随机序列NT1时,所述电子设备利用所述卡片上第三扇区的第三密钥重新访问所述第三扇区,以获取随机序列NT2。
7.如权利要求1所述的卡片模拟方法,其特征在于,所述使用预设的默认密钥访问卡片的第一扇区,包括:
向所述卡片发送第一认证指令,以获取随机序列NT;
根据所述默认密钥和所述随机序列NT获取并发送随机序列NR和AR至所述卡片;
获取来自于所述卡片的所述随机序列NT1。
8.一种电子设备,包括存储器、处理器、NFC模块及显示屏,所述NFC模块用以传输能量和数据至卡片,并接收来自于所述卡片的数据;所述显示屏用以显示图形用户界面,其特征在于,所述处理器运行存储于所述存储器中的计算机程序或代码,实现如权利要求1至7中任一项所述的卡片模拟方法。
9.一种存储介质,用于存储计算机程序,其特征在于,当所述计算机程序被处理器执行时,实现如权利要求1至7中任一项所述的卡片模拟方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111348320.2A CN115017927B (zh) | 2021-11-15 | 2021-11-15 | 卡片模拟方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111348320.2A CN115017927B (zh) | 2021-11-15 | 2021-11-15 | 卡片模拟方法、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115017927A CN115017927A (zh) | 2022-09-06 |
CN115017927B true CN115017927B (zh) | 2023-04-11 |
Family
ID=83064902
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111348320.2A Active CN115017927B (zh) | 2021-11-15 | 2021-11-15 | 卡片模拟方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115017927B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102542645A (zh) * | 2012-01-13 | 2012-07-04 | 中科华核电技术研究院有限公司 | 一种门禁认证方法及认证系统 |
CN102801730A (zh) * | 2012-08-16 | 2012-11-28 | 厦门市美亚柏科信息股份有限公司 | 一种用于通讯及便携设备的信息防护方法及装置 |
CN113065367A (zh) * | 2021-03-29 | 2021-07-02 | 新疆爱华盈通信息技术有限公司 | Ic卡读取方法、装置、电子设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9009817B1 (en) * | 2013-03-12 | 2015-04-14 | Open Invention Network, Llc | Virtual smart card to perform security-critical operations |
WO2017015698A1 (en) * | 2015-07-24 | 2017-02-02 | Info Wise Limited | Wireless access tag duplication system and method |
-
2021
- 2021-11-15 CN CN202111348320.2A patent/CN115017927B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102542645A (zh) * | 2012-01-13 | 2012-07-04 | 中科华核电技术研究院有限公司 | 一种门禁认证方法及认证系统 |
CN102801730A (zh) * | 2012-08-16 | 2012-11-28 | 厦门市美亚柏科信息股份有限公司 | 一种用于通讯及便携设备的信息防护方法及装置 |
CN113065367A (zh) * | 2021-03-29 | 2021-07-02 | 新疆爱华盈通信息技术有限公司 | Ic卡读取方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115017927A (zh) | 2022-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103765811B (zh) | 用于跨越不受信任的信道安全地共享图像的方法和设备 | |
CN109076072A (zh) | Web服务图片密码 | |
CN107666479A (zh) | 信息加密解密方法、装置、计算机设备和存储介质 | |
CN104919778A (zh) | 将经加密帐户凭证从第一装置提供到第二装置 | |
JP2002229861A (ja) | 著作権保護機能つき記録装置 | |
CN110290146A (zh) | 分享口令的生成方法、装置、服务器及存储介质 | |
CN106778295B (zh) | 文件存储、显示方法、装置及终端 | |
CN106250770B (zh) | 用于对内容加密的电子设备和方法 | |
KR20170084934A (ko) | 전자 장치 및 전자 장치의 식별 정보 인증 방법 | |
JP6649453B2 (ja) | 情報処理システム、情報処理装置、情報処理プログラム、情報処理方法、および、記憶媒体 | |
CN103281375A (zh) | 一种第三方应用的联系人管理方法及装置、系统 | |
WO2019148397A1 (zh) | 分解敏感数据存储在不同应用环境中 | |
JP2018530054A (ja) | モバイル端末のための支払い認証方法及び装置並びにモバイル端末 | |
CN115129332A (zh) | 固件烧录方法、计算机设备及可读存储介质 | |
CN112287376A (zh) | 一种隐私数据的处理方法及装置 | |
CN110874476B (zh) | 数据处理系统、方法、存储介质和处理器 | |
KR20160063793A (ko) | 전자 장치 및 전자 장치에서의 정보 송신 및 수신 방법 | |
US7715560B2 (en) | Systems and methods for hiding a data group | |
CN115017927B (zh) | 卡片模拟方法、电子设备及存储介质 | |
CN114244565B (zh) | 密钥分发方法、装置、设备及存储介质 | |
CN110602689A (zh) | 一种设备安全操作的方法和装置 | |
JP2012118805A (ja) | 情報処理装置、リムーバブルストレージ装置、情報処理方法、及び情報処理システム | |
KR20200088030A (ko) | 암호화될 데이터의 정보량에 기반하여 암호화에 사용될 키를 선택하는 전자 장치 및 전자 장치의 동작 방법 | |
CN115189929A (zh) | 授权认证的方法、装置、计算机设备和存储介质 | |
CN117492636A (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 |