CN115086072B - 一种智能卡攻击测试方法及装置 - Google Patents
一种智能卡攻击测试方法及装置 Download PDFInfo
- Publication number
- CN115086072B CN115086072B CN202210851372.XA CN202210851372A CN115086072B CN 115086072 B CN115086072 B CN 115086072B CN 202210851372 A CN202210851372 A CN 202210851372A CN 115086072 B CN115086072 B CN 115086072B
- Authority
- CN
- China
- Prior art keywords
- smart card
- authentication
- time
- sending
- instruction
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/263—Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/142—Network analysis or design using statistical or mathematical methods
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Pure & Applied Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了一种智能卡攻击测试方法及装置,利用智能卡通信协议的基本特征,以不同鉴权流程中的发送第二鉴权指令的时刻与发送空闲检测指令的时刻之间的时间差为时间差样本确定目标智能卡在第二鉴权指令的不同字节检测到奇偶校验错误的时间,从而获取目标智能卡的密钥相关的敏感信息,探测攻击目标智能卡的攻击策略,在不需要高精度的电信号测量设备的基础上实现针对智能卡协议的攻击测试,有效验证目标智能卡在面对攻击时的安全性。
Description
技术领域
本发明涉及信息安全技术领域,更具体的,涉及一种智能卡攻击测试方法及装置。
背景技术
随着无线通信技术的发展,越来越多的领域开始使用无线通信技术,如NFC(NearField Communication,近场通信)技术来实现支付、开锁等功能,尤其是低成本智能卡,在酒店门卡,企业员工卡,公交卡等低安全需求的场景有较大的需求和大量的应用。
智能卡出厂前一般都会对智能卡进行功能测试,即从智能卡的常规功能出发,按照通信协议规范进行验证性功能测试,缺乏对智能卡的攻击测试,无法验证智能卡面对攻击时的安全性。
发明内容
有鉴于此,本发明提供了一种智能卡攻击测试方法及装置,实现针对目标智能卡协议的攻击测试,有效验证目标智能卡在面对攻击时的安全性。
为了实现上述发明目的,本发明提供的具体技术方案如下:
第一方面,本发明实施例公开了一种智能卡攻击测试方法,所述方法包括:
在检测到目标智能卡的情况下,向所述目标智能卡发送第一鉴权指令;
在接收到所述目标智能卡反馈的数据之后,依次向所述目标智能卡发送随机生成的预设长度的第二鉴权指令以及空闲检测指令,并记录发送所述第二鉴权指令的时刻与发送所述空闲检测指令的时刻之间的时间差;
若接收到所述目标智能卡反馈的空闲响应信号,重复执行向所述目标智能卡发送第一鉴权指令,按照预设步进值减小发送所述第二鉴权指令的时刻与发送所述空闲检测指令的时刻之间的时间差,直到所述目标智能卡不再反馈空闲响应信号,并记录每次鉴权发送所述第二鉴权指令的时刻与发送所述空闲检测指令的时刻之间的时间差作为时间差样本;
若未接收到所述目标智能卡反馈的空闲响应信号,重复执行向所述目标智能卡发送第一鉴权指令,按照所述预设步进值延长发送所述第二鉴权指令的时刻与发送所述空闲检测指令的时刻之间的时间差,直到接收到所述目标智能卡反馈的空闲响应信号,并记录每次鉴权发送所述第二鉴权指令的时刻与发送所述空闲检测指令的时刻之间的时间差作为时间差样本;
根据所记录的时间差样本,确定所述目标智能卡在所述第二鉴权指令的不同字节检测到奇偶校验错误的时间;
依据所述目标智能卡在所述第二鉴权指令的不同字节检测到奇偶校验错误的时间,确定攻击策略;
采用所述攻击策略对所述目标智能卡进行攻击测试。
在一些实施例中,所述根据所记录的时间差样本,确定所述目标智能卡在所述第二鉴权指令的不同字节检测到奇偶校验错误的时间,包括:
对所记录的时间差样本进行聚类;
若聚类后的类间距离大于第一预设值,类内距离小于第二预设值,且时间差样本分布符合预期,确定所记录的时间差样本为有效样本;
根据聚类结果,确定所述目标智能卡在所述第二鉴权指令的不同字节检测到奇偶校验错误的时间。
在一些实施例中,采用所述攻击策略对所述目标智能卡进行攻击测试,包括:
向所述目标智能卡重复发起多次鉴权流程,其中,每次鉴权流程中所述第二鉴权指令中仅1比特的数据不一致;
通过分析奇偶校验位的正确值是否变化,判断奇偶校验位所依赖的密钥流特定比特是否翻转,并倒推出所述目标智能卡的密钥信息;
根据所述目标智能卡的密钥信息,利用穷举法对所述目标智能卡进行攻击测试。
在一些实施例中,所述通过分析奇偶校验位的正确值是否变化,判断奇偶校验位所依赖的密钥流特定比特是否翻转,并倒推出所述目标智能卡的密钥信息,包括:
多次鉴权流程中相邻两次鉴权流程中所述第二鉴权指令中相同字节仅最后1比特数据不一致,根据校验比特的计算方法,若两次鉴权流程中的校验比特都错误或都正确,确定用于掩码该比特的密钥流比特产生翻转,若两次鉴权流程中校验比特一个错误一个正确,确定用于掩码该比特的密钥流比特未产生翻转;
根据所述第二鉴权指令中每个字节的奇偶校验位所依赖的密钥流特定比特是否翻转,获取所述目标智能卡的移位状态寄存器的内部状态信息。
第二方面,本发明实施例公开了一种智能卡攻击测试装置,所述装置包括:
第一发送单元,用于在检测到目标智能卡的情况下,向所述目标智能卡发送第一鉴权指令;
第二发送单元,用于在接收到所述目标智能卡反馈的数据之后,依次向所述目标智能卡发送随机生成的预设长度的第二鉴权指令以及空闲检测指令,并记录发送所述第二鉴权指令的时刻与发送所述空闲检测指令的时刻之间的时间差;
第一重复鉴权执行单元,用于若接收到所述目标智能卡反馈的空闲响应信号,重复执行向所述目标智能卡发送第一鉴权指令,按照预设步进值减小发送所述第二鉴权指令的时刻与发送所述空闲检测指令的时刻之间的时间差,直到所述目标智能卡不再反馈空闲响应信号,并记录每次鉴权发送所述第二鉴权指令的时刻与发送所述空闲检测指令的时刻之间的时间差作为时间差样本;
第二重复鉴权执行单元,用于若未接收到所述目标智能卡反馈的空闲响应信号,重复执行向所述目标智能卡发送第一鉴权指令,按照所述预设步进值延长发送所述第二鉴权指令的时刻与发送所述空闲检测指令的时刻之间的时间差,直到接收到所述目标智能卡反馈的空闲响应信号,并记录每次鉴权发送所述第二鉴权指令的时刻与发送所述空闲检测指令的时刻之间的时间差作为时间差样本;
奇偶校验错误时间确定单元,用于根据所记录的时间差样本,确定所述目标智能卡在所述第二鉴权指令的不同字节检测到奇偶校验错误的时间;
攻击策略确定单元,用于依据所述目标智能卡在所述第二鉴权指令的不同字节检测到奇偶校验错误的时间,确定攻击策略;
攻击测试单元,用于采用所述攻击策略对所述目标智能卡进行攻击测试。
在一些实施例中,所述奇偶校验错误时间确定单元,具体用于:
对所记录的时间差样本进行聚类;
若聚类后的类间距离大于第一预设值,类内距离小于第二预设值,且时间差样本分布符合预期,确定所记录的时间差样本为有效样本;
根据聚类结果,确定所述目标智能卡在所述第二鉴权指令的不同字节检测到奇偶校验错误的时间。
在一些实施例中,所述攻击测试单元,包括:
重复鉴权执行子单元,用于向所述目标智能卡重复发起多次鉴权流程,其中,每次鉴权流程中所述第二鉴权指令中仅1比特的数据不一致;
密钥信息分析子单元,用于通过分析奇偶校验位的正确值是否变化,判断奇偶校验位所依赖的密钥流特定比特是否翻转,并倒推出所述目标智能卡的密钥信息;
攻击测试子单元,用于根据所述目标智能卡的密钥信息,利用穷举法对所述目标智能卡进行攻击测试。
在一些实施例中,所述密钥信息分析子单元,具体用于:
多次鉴权流程中相邻两次鉴权流程中所述第二鉴权指令中相同字节仅最后1比特数据不一致,根据校验比特的计算方法,若两次鉴权流程中的校验比特都错误或都正确,确定用于掩码该比特的密钥流比特产生翻转,若两次鉴权流程中校验比特一个错误一个正确,确定用于掩码该比特的密钥流比特未产生翻转;
根据所述第二鉴权指令中每个字节的奇偶校验位所依赖的密钥流特定比特是否翻转,获取所述目标智能卡的移位状态寄存器的内部状态信息。
第三方面,本发明实施例公开了一种计算机可读介质,其上存储有计算机程序,其中,所述程序被处理器执行时实现如第一方面中任一实现方式描述的智能卡攻击测试方法。
第四方面,本发明实施例公开了一种处理器,所述处理器用于运行程序,其中,所述程序运行时实现如第一方面中任一实现方式描述的智能卡攻击测试方法。
第五方面,本发明实施例公开了一种电子设备,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如第一方面中任一实现方式描述的智能卡攻击测试方法。
相对于现有技术,本发明的有益效果如下:
本发明公开的一种智能卡攻击测试方法及装置,利用智能卡通信协议的基本特征,以不同鉴权流程中的发送第二鉴权指令的时刻与发送空闲检测指令的时刻之间的时间差为时间差样本确定目标智能卡在第二鉴权指令的不同字节检测到奇偶校验错误的时间,从而获取目标智能卡的密钥相关的敏感信息,探测攻击目标智能卡的攻击策略,在不需要高精度的电信号测量设备的基础上实现针对智能卡协议的攻击测试,有效验证目标智能卡在面对攻击时的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例公开的一种智能卡攻击测试方法的流程示意图;
图2为本发明实施例公开的一种智能卡攻击测试方法的部分方法的流程示意图;
图3为本发明实施例公开的目标智能卡中移位状态寄存器的内容部状态信息示意图;
图4为本发明实施例公开的一种智能卡攻击测试装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
发明人经过研究发现:目前低成本智能卡一般使用14443通信协议,根据这类智能卡的鉴权规则,智能卡在接收到智能卡识别设备的第一鉴权指令的情况下,生成一个随机数,利用密钥对随机数加密,并将加密后的数据发送到智能卡识别设备。智能卡识别设备向智能卡发送第二鉴权指令,智能卡在处理第二鉴权指令时,若发现错误将会终止鉴权流程并进入空闲(idle)状态。
根据此类智能卡的鉴权规则,智能卡处于空闲(idle)状态时,智能卡识别设备可以发送0x60信号,即空闲检测指令检查智能卡是否正常工作,智能卡若状态正常应发送特定返回值(2字节随机数)。根据此类智能卡的鉴权规则和14443通信协议,第二鉴权指令nr具有任意性,但第二鉴权指令nr的校验比特与掩码流乃至密钥相关,因此智能卡在处理该部分命令信息时可能会发现字节校验错误,且“是否发现错误”这一现象与密钥的部分特征直接相关,可根据数学关系以此设计进一步的攻击分析方案。
而如何确知是否有字节校验错误,无法通过协议本身获得,但可以通过观察此类智能卡处理该命令的执行时间来得知。第二鉴权指令nr长度为4字节,从第一字节开始,如果校验比特错误,此类智能卡将终止鉴权流程,若第一字节检验正确而第二字节错误,则会在前两字节都处理完毕后发现错误终止流程,导致运行时间产生变化。而终止之前,卡片处于处理命令的工作状态,此时如果智能卡识别设备下发了其他命令,根据14443协议,智能卡将不予响应,甚至可能导致卡片死机或复位(这与卡片硬件细节有关)。
具有高精度电信号测量功能的设备可以通过测量智能卡是否处于上电状态来获取智能卡在不同字节检测到检验错误的时间,但是由于这类智能卡一般为低成本智能卡,一般不用采用成本较高的具有高精度电信号测量功能的设备对其进行攻击。
在此基础上,本发明提供了一种智能卡攻击测试方法及装置,利用智能卡通信协议的基本特征,以不同的第二鉴权指令与空闲检测指令之间的时间差为时间差样本确定目标智能卡在第二鉴权指令的不同字节检测到奇偶校验错误的时间,从而获取目标智能卡的密钥相关的敏感信息,探测攻击目标智能卡的攻击策略。
本发明公开的一种智能卡攻击测试方法及装置,应用于智能卡识别设备,不需要使用高精度的电信号测量设备,仅需要智能卡识别设备有较高精度的时延测量和设置能力,进一步,即使智能卡识别设备为有一定的线圈功耗测量能力的读卡器,通过观察线圈上功耗值随时间变化曲线由工作状态到idle状态的下跌位置的变化来简化对不同情况的时间差的测量过程,但是该类智能卡识别设备的额外性能要求仍然大大低于专业的高精度的电信号测量设备。
具体的,请参阅图1,本发明公开的一种智能卡攻击测试方法,包括以下步骤:
S101:在检测到目标智能卡的情况下,向目标智能卡发送第一鉴权指令;
目标智能卡即为本次需要进行攻击测试的智能卡,第一鉴权指令的内容与现有智能卡识别设备向智能卡发送的初始鉴权指令的内容一致,这里不再赘述。
S102:在接收到目标智能卡反馈的数据之后,依次向目标智能卡发送随机生成的预设长度的第二鉴权指令以及空闲检测指令,并记录发送第二鉴权指令的时刻与发送空闲检测指令的时刻之间的时间差;
此时目标智能卡反馈的数据为目标智能卡利用密钥对随机数加密后的数据。
第二鉴权指令的长度与现有智能卡识别设备向智能卡发送的第二鉴权指令的长度一致,但是第二鉴权指令的内容为随机生成的。
S103:若接收到目标智能卡反馈的空闲响应信号,重复执行向目标智能卡发送第一鉴权指令,按照预设步进值减小发送第二鉴权指令的时刻与发送空闲检测指令的时刻之间的时间差,直到目标智能卡不再反馈空闲响应信号,并记录每次发送鉴权第二鉴权指令的时刻与发送空闲检测指令的时刻之间的时间差作为时间差样本;
这里的步进值表示在重复执行向目标智能卡发送第一鉴权指令过程中,相邻两次鉴权流程中,发送第二鉴权指令的时刻与发送空闲检测指令的时刻之间的时间差的减小值,以步进值为N为例,第一次执行向目标智能卡发送第一鉴权指令时,发送第二鉴权指令的时刻与发送空闲检测指令的时刻之间的时间差为M,则第二次执行向目标智能卡发送第一鉴权指令时,发送第二鉴权指令的时刻与发送空闲检测指令的时刻之间的时间差为M-N,第三次执行向目标智能卡发送第一鉴权指令时,发送第二鉴权指令的时刻与发送空闲检测指令的时刻之间的时间差为M-2N,以此类推。
S104:若未接收到目标智能卡反馈的空闲响应信号,重复执行向目标智能卡发送第一鉴权指令,按照预设步进值延长发送第二鉴权指令的时刻与发送空闲检测指令的时刻之间的时间差,直到接收到目标智能卡反馈的空闲响应信号,并记录每次鉴权发送第二鉴权指令的时刻与发送空闲检测指令的时刻之间的时间差作为时间差样本;
这里的步进值表示在重复执行向目标智能卡发送第一鉴权指令过程中,相邻两次鉴权流程中,发送第二鉴权指令的时刻与发送空闲检测指令的时刻之间的时间差的延长值,以步进值为N为例,第一次执行向目标智能卡发送第一鉴权指令时,发送第二鉴权指令的时刻与发送空闲检测指令的时刻之间的时间差为M,则第二次执行向目标智能卡发送第一鉴权指令时,发送第二鉴权指令的时刻与发送空闲检测指令的时刻之间的时间差为M+N,第三次执行向目标智能卡发送第一鉴权指令时,发送第二鉴权指令的时刻与发送空闲检测指令的时刻之间的时间差为M+2N,以此类推。
S105:根据所记录的时间差样本,确定目标智能卡在第二鉴权指令的不同字节检测到奇偶校验错误的时间;
S106:依据目标智能卡在第二鉴权指令的不同字节检测到奇偶校验错误的时间,确定攻击策略;
S107:采用攻击策略对目标智能卡进行攻击测试。
其中,智能卡识别设备随机生成的第二鉴权指令的长度符合目标智能卡通信协议,是固定的,包含四字节的nR和四字节的aR,例如0x5a5a5a5a00000000。目标智能卡识别设备在发送完第二鉴权指令后等待d(t)时间,发送空闲检测指令0x26,d(t)即为发送第二鉴权指令的时刻与发送空闲检测指令的时刻之间的时间差。
若时间差d(t)较短,目标智能卡还未得到对第二鉴权指令的校验结果,目标智能卡还在工作状态,不反馈任何信号。智能卡识别设备需要重复执行鉴权流程,按照预设步进值(可以为0.5us)延长发送第二鉴权指令的时刻与发送空闲检测指令的时刻之间的时间差,直到接收到目标智能卡反馈的空闲响应信号,并记录每次鉴权发送第二鉴权指令的时刻与发送空闲检测指令的时刻之间的时间差作为时间差样本,使发送空闲检测指令的时间无限逼近智能卡对第二鉴权指令的校验失败的时间。
若时间差d(t)较长,目标智能卡得到对第二鉴权指令的校验失败的结果,目标智能卡处于空闲状态,反馈空闲响应信号。智能卡识别设备需要重复执行鉴权流程,按照预设步进值(可以为0.5us)缩短发送第二鉴权指令的时刻与发送空闲检测指令的时刻之间的时间差,直到不再能接收到目标智能卡反馈的空闲响应信号,并记录每次鉴权发送第二鉴权指令的时刻与发送空闲检测指令的时刻之间的时间差作为时间差样本,使发送空闲检测指令的时间无限逼近智能卡对第二鉴权指令的校验失败的时间。
其中,在重复执行鉴权流程的过程中,为了使目标智能卡反馈的加密随机数稳定在某一个数值,该数值不需要刻意选取,需要精确控制智能卡识别设备执行鉴权流程的时间。
在重复鉴权流程结束,就得到了n个时间差样本,可以记作d(t[0])~d(t[n]),n的量级以可以明确识别出后续要检查的数据分布为宜。
请参阅图2,本实施例公开了S105的一种可选实现方式,包括:
S201:对所记录的时间差样本进行聚类;
S202:若聚类后的类间距离大于第一预设值,类内距离小于第二预设值,且时间差样本分布符合预期,确定所记录的时间差样本为有效样本;
对所记录的时间差样本进行聚类后,刻意得到多个类。其中:
类间距离(inter-class)表示不同类间的距离。
类内距离(intra-class)表示同一类各个时间差样本间的均方距离。
时间差样本分布符合预期是指时间差样本是否随着数值变大按乘数为1/2的等比分布。
S203:根据聚类结果,确定目标智能卡在第二鉴权指令的不同字节检测到奇偶校验错误的时间。
聚类结果中每个类分别表示目标智能卡在第二鉴权指令的不同字节检测到奇偶校验错误的时间,具体的,对类所对应的时间差按从小到大的顺序进行排序,即可得到目标智能卡在第二鉴权指令的第一个字节、第二个字节、第三个字节、以及第四个字节检测到奇偶校验错误的时间。
在此基础上,采用攻击策略对目标智能卡进行攻击测试具体包括:
1、使用智能卡识别设备对目标智能卡执行常规上电流程。
2、通过上述分析目标智能卡在第二鉴权指令的不同字节检测到奇偶校验错误的时间,建立一个检查某个固定的鉴权流程中,目标智能卡对第二鉴权指令进行验证处理时,在第几字节上发现了校验错误的机制。
3、智能卡识别设备在向目标智能卡发送第一鉴权指令后,接收目标智能卡的返回值nT(四字节,例如0x12345678):
0x12345678<-
通过精确控制智能卡识别设备每次发起鉴权流程时间,即智能卡识别设备发送第一鉴权直流的时间,使得接收到的目标智能卡发送的由伪随机序列控制的返回值nT在反复操作中能稳定在某一个数值(数值本身此时可以不刻意选取)
4、智能卡识别设备生成任意的第二鉴权指令(包含四字节的nR和四字节的aR,例如0x5a5a5a5a00000000)
->0x5a5a5a5a00000000,校验比特任意
确认其第一个校验比特正确与否。
5、智能卡识别设备发送与上述第二鉴权指令仅1比特差异的第二鉴权指令:
->0x5b5a5a5a00000000,校验比特同上一条,不做改变
确认其第一个校验比特正确与否,至此得到一组仅存在1比特差异的第二鉴权指令组成的差分对,如(0x5a5a5a5a00000000,0x5b5a5a5a00000000)。
6、对获取的差分对进行分析,根据校验比特的计算方法,若两次鉴权流程中的校验比特都错误或都正确,则用于掩码该比特的密钥流比特ks[8]产生了翻转,反之若校验比特一个错误一个正确,则ks[8]并未翻转。
如图3所示,破解该类型智能卡的核心是倒推生成密钥流的48比特移位寄存器的状态信息,其中ks[8]即为该寄存器通过图3的逻辑函数计算得来,根据该类型智能卡的鉴权流程,第二鉴权指令全文应该被正确的密钥流加密,且第二鉴权指令本身会影响移位寄存器的状态。
根据该类型智能卡的鉴权流程,计算ks[8]时,若第二鉴权指令第一字节仅最后一比特不一致,则ks[8]的翻转意味着图3中f4a函数的输出翻转,进一步意味着图3中第47号位置的翻转导致了f4a函数的输出翻转,反之则不能确认,因为ks[8]不翻转不能推导出某个输入是否翻转。
根据该类型智能卡的鉴权流程,由于第二鉴权指令第一字节前7比特完全一致,因此第8比特上异或的密钥流(ks[7])也将一致。
因此47号位置的翻转意味着该时刻图3中f4a的输入的原本2*2*2*2=16种可能的情况将被排除掉至少一半,只剩4到8种可能性。
重复上述步骤1到5,修改第二鉴权指令的首字节其他比特,产生不同的差分对,如(0x00,0x02),或(0xf1,0xf5)等,观察其各自的ks[8]翻转情况,可以进一步获取目标智能卡当前状态下的移位状态寄存器的内部状态信息,而该信息即为缩减破解穷举空间的依据,且可根据上述信息获知构建首字节的校验比特必然正确的第二鉴权指令的方法。
重复上述步骤1到5,让第二鉴权指令的首字节和对应的校验比特保持一致并且确保其不会被目标智能卡判断为错,而在第二字节上构建所需的差分对,类似地通过观察其各自的ks[8]翻转情况来获取目标智能卡当前状态下移位状态寄存器的内部状态信息,同样地,该信息具有相同的用途。
以此类推,重复上述操作,直到4字节nr的4四个校验比特完整被如上的方式使用过,理论上可以获得32比特的移位状态寄存器的内部状态信息,至此仅剩16比特穷举空间,已经可以用较小代价进行破解。
事实上,在获得移位状态寄存器的较多信息后,使用其他信息作为辅助,或修改步骤3所稳定住的返回值nT的数值(通过微调时间将其稳定在其他的数值上,如0x87654321或任意)可以用更小的代价缩减剩余的穷举空间,进一步减小最终穷举的代价。
可见,本实施例公开的一种智能卡攻击测试方法,利用智能卡通信协议的基本特征,以不同鉴权流程中的发送第二鉴权指令的时刻与发送空闲检测指令的时刻之间的时间差为时间差样本确定目标智能卡在第二鉴权指令的不同字节检测到奇偶校验错误的时间,从而获取目标智能卡的密钥相关的敏感信息,探测攻击目标智能卡的攻击策略,在不需要高精度的电信号测量设备的基础上实现针对智能卡协议的攻击测试,有效验证目标智能卡在面对攻击时的安全性。
基于上述实施例公开的一种智能卡攻击测试方法,本实施例对应公开了一种智能卡攻击测试装置,请参阅图4,该装置包括:
第一发送单元401,用于在检测到目标智能卡的情况下,向所述目标智能卡发送第一鉴权指令;
第二发送单元402,用于在接收到所述目标智能卡反馈的数据之后,依次向所述目标智能卡发送随机生成的预设长度的第二鉴权指令以及空闲检测指令,并记录发送所述第二鉴权指令的时刻与发送所述空闲检测指令的时刻之间的时间差;
第一重复鉴权执行单元403,用于若接收到所述目标智能卡反馈的空闲响应信号,重复执行向所述目标智能卡发送第一鉴权指令,按照预设步进值减小发送所述第二鉴权指令的时刻与发送所述空闲检测指令的时刻之间的时间差,直到所述目标智能卡不再反馈空闲响应信号,并记录每次鉴权发送所述第二鉴权指令的时刻与发送所述空闲检测指令的时刻之间的时间差作为时间差样本;
第二重复鉴权执行单元404,用于若未接收到所述目标智能卡反馈的空闲响应信号,重复执行向所述目标智能卡发送第一鉴权指令,按照所述预设步进值延长发送所述第二鉴权指令的时刻与发送所述空闲检测指令的时刻之间的时间差,直到接收到所述目标智能卡反馈的空闲响应信号,并记录每次鉴权发送所述第二鉴权指令的时刻与发送所述空闲检测指令的时刻之间的时间差作为时间差样本;
奇偶校验错误时间确定单元405,用于根据所记录的时间差样本,确定所述目标智能卡在所述第二鉴权指令的不同字节检测到奇偶校验错误的时间;
攻击策略确定单元406,用于依据所述目标智能卡在所述第二鉴权指令的不同字节检测到奇偶校验错误的时间,确定攻击策略;
攻击测试单元407,用于采用所述攻击策略对所述目标智能卡进行攻击测试。
在一些实施例中,所述奇偶校验错误时间确定单元405,具体用于:
对所记录的时间差样本进行聚类;
若聚类后的类间距离大于第一预设值,类内距离小于第二预设值,且时间差样本分布符合预期,确定所记录的时间差样本为有效样本;
根据聚类结果,确定所述目标智能卡在所述第二鉴权指令的不同字节检测到奇偶校验错误的时间。
在一些实施例中,所述攻击测试单元407,包括:
重复鉴权执行子单元,用于向所述目标智能卡重复发起多次鉴权流程,其中,每次鉴权流程中所述第二鉴权指令中仅1比特的数据不一致;
密钥信息分析子单元,用于通过分析奇偶校验位的正确值是否变化,判断奇偶校验位所依赖的密钥流特定比特是否翻转,并倒推出所述目标智能卡的密钥信息;
攻击测试子单元,用于根据所述目标智能卡的密钥信息,利用穷举法对所述目标智能卡进行攻击测试。
在一些实施例中,所述密钥信息分析子单元,具体用于:
多次鉴权流程中相邻两次鉴权流程中所述第二鉴权指令中相同字节仅最后1比特数据不一致,根据校验比特的计算方法,若两次鉴权流程中的校验比特都错误或都正确,确定用于掩码该比特的密钥流比特产生翻转,若两次鉴权流程中校验比特一个错误一个正确,确定用于掩码该比特的密钥流比特未产生翻转;
根据所述第二鉴权指令中每个字节的奇偶校验位所依赖的密钥流特定比特是否翻转,获取所述目标智能卡的移位状态寄存器的内部状态信息。
本发明实施例还公开了一种计算机可读介质,其上存储有计算机程序,其中,所述程序被处理器执行时实现如上述实施例中任一实现方式描述的智能卡攻击测试方法。
本发明实施例还公开了一种处理器,所述处理器用于运行程序,其中,所述程序运行时实现如上述实施例中任一实现方式描述的智能卡攻击测试方法。
本发明实施例还公开了一种电子设备,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中任一实现方式描述的智能卡攻击测试方法。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
上述各个实施例之间可任意组合,对所公开的实施例的上述说明,本说明书中各实施例中记载的特征可以相互替换或者组合,使本领域专业技术人员能够实现或使用本申请。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (11)
1.一种智能卡攻击测试方法,其特征在于,所述方法包括:
在检测到目标智能卡的情况下,向所述目标智能卡发送第一鉴权指令;
在接收到所述目标智能卡反馈的数据之后,依次向所述目标智能卡发送随机生成的预设长度的第二鉴权指令以及空闲检测指令,并记录发送所述第二鉴权指令的时刻与发送所述空闲检测指令的时刻之间的时间差;
若接收到所述目标智能卡反馈的空闲响应信号,重复执行向所述目标智能卡发送第一鉴权指令,按照预设步进值减小发送所述第二鉴权指令的时刻与发送所述空闲检测指令的时刻之间的时间差,直到所述目标智能卡不再反馈空闲响应信号,并记录每次鉴权发送所述第二鉴权指令的时刻与发送所述空闲检测指令的时刻之间的时间差作为时间差样本;
若未接收到所述目标智能卡反馈的空闲响应信号,重复执行向所述目标智能卡发送第一鉴权指令,按照所述预设步进值延长发送所述第二鉴权指令的时刻与发送所述空闲检测指令的时刻之间的时间差,直到接收到所述目标智能卡反馈的空闲响应信号,并记录每次鉴权发送所述第二鉴权指令的时刻与发送所述空闲检测指令的时刻之间的时间差作为时间差样本;
根据所记录的时间差样本,确定所述目标智能卡在所述第二鉴权指令的不同字节检测到奇偶校验错误的时间;
依据所述目标智能卡在所述第二鉴权指令的不同字节检测到奇偶校验错误的时间,确定攻击策略;
采用所述攻击策略对所述目标智能卡进行攻击测试。
2.根据权利要求1所述的方法,其特征在于,所述根据所记录的时间差样本,确定所述目标智能卡在所述第二鉴权指令的不同字节检测到奇偶校验错误的时间,包括:
对所记录的时间差样本进行聚类;
若聚类后的类间距离大于第一预设值,类内距离小于第二预设值,且时间差样本分布符合预期,确定所记录的时间差样本为有效样本;
根据聚类结果,确定所述目标智能卡在所述第二鉴权指令的不同字节检测到奇偶校验错误的时间。
3.根据权利要求1所述的方法,其特征在于,采用所述攻击策略对所述目标智能卡进行攻击测试,包括:
向所述目标智能卡重复发起多次鉴权流程,其中,每次鉴权流程中所述第二鉴权指令中仅1比特的数据不一致;
通过分析奇偶校验位的正确值是否变化,判断奇偶校验位所依赖的密钥流特定比特是否翻转,并倒推出所述目标智能卡的密钥信息;
根据所述目标智能卡的密钥信息,利用穷举法对所述目标智能卡进行攻击测试。
4.根据权利要求3所述的方法,其特征在于,所述通过分析奇偶校验位的正确值是否变化,判断奇偶校验位所依赖的密钥流特定比特是否翻转,并倒推出所述目标智能卡的密钥信息,包括:
多次鉴权流程中相邻两次鉴权流程中所述第二鉴权指令中相同字节仅最后1比特数据不一致,根据校验比特的计算方法,若两次鉴权流程中的校验比特都错误或都正确,确定用于掩码该比特的密钥流比特产生翻转,若两次鉴权流程中校验比特一个错误一个正确,确定用于掩码该比特的密钥流比特未产生翻转;
根据所述第二鉴权指令中每个字节的奇偶校验位所依赖的密钥流特定比特是否翻转,获取所述目标智能卡的移位状态寄存器的内部状态信息。
5.一种智能卡攻击测试装置,其特征在于,所述装置包括:
第一发送单元,用于在检测到目标智能卡的情况下,向所述目标智能卡发送第一鉴权指令;
第二发送单元,用于在接收到所述目标智能卡反馈的数据之后,依次向所述目标智能卡发送随机生成的预设长度的第二鉴权指令以及空闲检测指令,并记录发送所述第二鉴权指令的时刻与发送所述空闲检测指令的时刻之间的时间差;
第一重复鉴权执行单元,用于若接收到所述目标智能卡反馈的空闲响应信号,重复执行向所述目标智能卡发送第一鉴权指令,按照预设步进值减小发送所述第二鉴权指令的时刻与发送所述空闲检测指令的时刻之间的时间差,直到所述目标智能卡不再反馈空闲响应信号,并记录每次鉴权发送所述第二鉴权指令的时刻与发送所述空闲检测指令的时刻之间的时间差作为时间差样本;
第二重复鉴权执行单元,用于若未接收到所述目标智能卡反馈的空闲响应信号,重复执行向所述目标智能卡发送第一鉴权指令,按照所述预设步进值延长发送所述第二鉴权指令的时刻与发送所述空闲检测指令的时刻之间的时间差,直到接收到所述目标智能卡反馈的空闲响应信号,并记录每次鉴权发送所述第二鉴权指令的时刻与发送所述空闲检测指令的时刻之间的时间差作为时间差样本;
奇偶校验错误时间确定单元,用于根据所记录的时间差样本,确定所述目标智能卡在所述第二鉴权指令的不同字节检测到奇偶校验错误的时间;
攻击策略确定单元,用于依据所述目标智能卡在所述第二鉴权指令的不同字节检测到奇偶校验错误的时间,确定攻击策略;
攻击测试单元,用于采用所述攻击策略对所述目标智能卡进行攻击测试。
6.根据权利要求5所述的装置,其特征在于,所述奇偶校验错误时间确定单元,具体用于:
对所记录的时间差样本进行聚类;
若聚类后的类间距离大于第一预设值,类内距离小于第二预设值,且时间差样本分布符合预期,确定所记录的时间差样本为有效样本;
根据聚类结果,确定所述目标智能卡在所述第二鉴权指令的不同字节检测到奇偶校验错误的时间。
7.根据权利要求5所述的装置,其特征在于,所述攻击测试单元,包括:
重复鉴权执行子单元,用于向所述目标智能卡重复发起多次鉴权流程,其中,每次鉴权流程中所述第二鉴权指令中仅1比特的数据不一致;
密钥信息分析子单元,用于通过分析奇偶校验位的正确值是否变化,判断奇偶校验位所依赖的密钥流特定比特是否翻转,并倒推出所述目标智能卡的密钥信息;
攻击测试子单元,用于根据所述目标智能卡的密钥信息,利用穷举法对所述目标智能卡进行攻击测试。
8.根据权利要求7所述的装置,其特征在于,所述密钥信息分析子单元,具体用于:
多次鉴权流程中相邻两次鉴权流程中所述第二鉴权指令中相同字节仅最后1比特数据不一致,根据校验比特的计算方法,若两次鉴权流程中的校验比特都错误或都正确,确定用于掩码该比特的密钥流比特产生翻转,若两次鉴权流程中校验比特一个错误一个正确,确定用于掩码该比特的密钥流比特未产生翻转;
根据所述第二鉴权指令中每个字节的奇偶校验位所依赖的密钥流特定比特是否翻转,获取所述目标智能卡的移位状态寄存器的内部状态信息。
9.一种计算机可读介质,其上存储有计算机程序,其中,所述程序被处理器执行时实现如权利要求1-4中任一项所述的智能卡攻击测试方法。
10.一种处理器,所述处理器用于运行程序,其中,所述程序运行时实现如权利要求1-4中任一项所述的智能卡攻击测试方法。
11.一种电子设备,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-4中任一项所述的智能卡攻击测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210851372.XA CN115086072B (zh) | 2022-07-20 | 2022-07-20 | 一种智能卡攻击测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210851372.XA CN115086072B (zh) | 2022-07-20 | 2022-07-20 | 一种智能卡攻击测试方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115086072A CN115086072A (zh) | 2022-09-20 |
CN115086072B true CN115086072B (zh) | 2022-12-16 |
Family
ID=83260598
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210851372.XA Active CN115086072B (zh) | 2022-07-20 | 2022-07-20 | 一种智能卡攻击测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115086072B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115422090B (zh) * | 2022-11-02 | 2023-03-21 | 紫光同芯微电子有限公司 | 一种Pattern生成方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106021117A (zh) * | 2016-06-07 | 2016-10-12 | 公安部第三研究所 | 智能卡系统中间人攻击验证平台及测试方法 |
CN106375301A (zh) * | 2016-08-30 | 2017-02-01 | 成都源知信息技术有限公司 | 一种网络设备认证方法及认证设备 |
CN107707527A (zh) * | 2017-09-01 | 2018-02-16 | 清华大学 | 一种智能卡中继攻击的检测方法、读写终端及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2983990B1 (fr) * | 2011-12-12 | 2014-06-20 | Oberthur Technologies | Lecteur de carte a puce |
US10069822B2 (en) * | 2016-02-23 | 2018-09-04 | Verizon Patent And Licensing Inc. | Authenticated network time for mobile device smart cards |
CN109493488B (zh) * | 2018-11-23 | 2020-11-10 | 北京小米移动软件有限公司 | 智能卡认证方法、智能锁、智能卡、系统及装置 |
WO2020172887A1 (zh) * | 2019-02-28 | 2020-09-03 | 云图有限公司 | 数据处理方法、装置、智能卡、终端设备和服务器 |
-
2022
- 2022-07-20 CN CN202210851372.XA patent/CN115086072B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106021117A (zh) * | 2016-06-07 | 2016-10-12 | 公安部第三研究所 | 智能卡系统中间人攻击验证平台及测试方法 |
CN106375301A (zh) * | 2016-08-30 | 2017-02-01 | 成都源知信息技术有限公司 | 一种网络设备认证方法及认证设备 |
CN107707527A (zh) * | 2017-09-01 | 2018-02-16 | 清华大学 | 一种智能卡中继攻击的检测方法、读写终端及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN115086072A (zh) | 2022-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104320375B (zh) | 一种防止非法注册的方法和装置 | |
US20220286274A1 (en) | Local ledger block chain for secure updates | |
CN109417466A (zh) | 机密密钥估算方法与装置 | |
CN115086072B (zh) | 一种智能卡攻击测试方法及装置 | |
CN108256322B (zh) | 安全测试方法、装置、计算机设备和存储介质 | |
KR20210134054A (ko) | 보안 전자 제어 유닛 업데이트를 위한 로컬 원장 블록 체인 | |
CN109145651B (zh) | 一种数据处理方法及装置 | |
CN112149066A (zh) | 软件的激活验证方法和装置 | |
EP3948619A1 (en) | Run-time code execution validation | |
CN114826946A (zh) | 未授权访问接口的检测方法、装置、设备及存储介质 | |
CN114785567A (zh) | 一种流量识别方法、装置、设备及介质 | |
US7987362B2 (en) | Method and apparatus for using imperfections in computing devices for device authentication | |
CN106203100A (zh) | 一种完整性校验方法和装置 | |
WO2020197775A1 (en) | Over-the-air update validation | |
KR102125133B1 (ko) | 메시지 인증 장치 및 방법 | |
WO2019159809A1 (ja) | アクセス分析システム及びアクセス分析方法 | |
CN112532573B (zh) | 一种认证关联性的认证方法以及安全装置 | |
CN114567456A (zh) | 用于对通信系统中的消息进行检验的方法 | |
CN104052726A (zh) | 访问控制方法和采用访问控制方法的移动终端 | |
US11606195B2 (en) | Method of verifying integrity of a pair of cryptographic keys and cryptographic device | |
CN111459899B (zh) | 日志共享方法、装置及终端设备 | |
CN111988336A (zh) | 访问请求的处理方法、装置、系统和计算机设备 | |
CN112738006B (zh) | 识别方法、设备及存储介质 | |
CN110597557B (zh) | 一种系统信息获取方法、终端及介质 | |
CN108200060B (zh) | 基于web子系统的单点登录验证方法、服务器及存储介质 |
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 |