CN111737772A - 一种防御中继攻击的方法及系统 - Google Patents
一种防御中继攻击的方法及系统 Download PDFInfo
- Publication number
- CN111737772A CN111737772A CN202010715003.9A CN202010715003A CN111737772A CN 111737772 A CN111737772 A CN 111737772A CN 202010715003 A CN202010715003 A CN 202010715003A CN 111737772 A CN111737772 A CN 111737772A
- Authority
- CN
- China
- Prior art keywords
- data
- terminal
- card
- preset
- processing time
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/77—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in smart cards
-
- 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/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明公开一种防御中继攻击的方法及系统,涉及通信安全领域。所述终端包括第一接收模块、设置模块、第一发送模块、生成记录模块、解析记录确定模块、验证确定更新模块、验证更新组织模块和验签模块;所述卡片包括第二接收模块、设置获取模块、第二发送模块、确定更新组织模块和确定检查签名模块;所述方法及系统通过定义新的交互防御数据指令结合终端计数数据和卡片计数数据,限制终端和卡片之间通信指令与通信响应的时间来防止中继攻击,增加终端和卡片之间数据通信的安全性。
Description
技术领域
本发明涉及通信安全领域,特别涉及一种防御中继攻击的方法及系统。
背景技术
卡片在非接触数据通信的过程中容易被“中继”攻击袭击;所谓中继攻击,就是在两个合法参与方A和B之间进行的一种攻击,中间人C篡改A的消息发送给B或将B的消息篡改发送给A。C这样做的目的是为了获得A或B的特权,这样C就可以把A的通信数据通过B的中继攻击终端盗走。“中继”攻击能够通过中继攻击终端在卡片和终端之间构成一个双向、无线的通信数据交换通道;在持卡人在不知情时,卡片就已经和终端进行交互通信,完成对卡片的使用,造成持卡人的损失;即中继攻击会窃取通信数据从而使通信数据泄露,同样也会篡改卡片和终端之间的通信数据,降低卡片和终端之间的数据通信安全性。
发明内容
为解决现有技术中的技术缺陷,本发明提出了一种防御中继攻击的方法及系统。
本发明提供的一种防御中继攻击的方法,包括以下步骤:
步骤S01:当终端接收到卡片发送的选择响应时,终端设置终端计数数据;向卡片发送处理选项指令;
步骤S02:所述卡片设置卡片计数数据;获取第一动态数据;向终端发送处理选项响应;
步骤S03:所述终端生成终端随机数据;记录当前时间为第一当前时间;向卡片发送包括终端随机数据的交互防御数据指令;
步骤S04:所述卡片确定卡片计数数据和第三预置数据是否满足第一预置条件,如确定为是则根据卡片计数数据和第一动态数据得到第二动态数据;所述根据卡片计数数据和第一动态数据得到第二动态数据之前或者之后还包括:所述卡片更新卡片计数数据;根据第二动态数据和卡片数据包组织交换防御数据响应,向终端发送交换防御数据响应;所述卡片数据包包括卡片最大处理时间、卡片最小处理时间和卡片预期响应传输时间;
步骤S05:所述终端接收并解析交换防御数据响应得到第二动态数据和卡片数据包;记录当前时间为第二当前时间;根据第一当前时间和第二当前时间确定测量处理时间;根据卡片预期响应传输时间、终端预期响应传输时间、终端预期指令传输时间和测量处理时间确定计算处理时间;根据卡片最大处理时间、最大时间宽限期、卡片最小处理时间和最小时间宽限期得到可接受处理时间;根据可接受处理时间验证计算处理时间,如通过验证则执行步骤S06;如未通过验证则确定终端计数数据和第三预置数据是否满足第二预置条件,如确定满足第二预置条件则返回步骤S03;如确定不满足第二预置条件则更新终端认证结果数据,执行步骤S06;所述确定终端计数数据和第三预置数据是否满足第二预置条件之前,或者如确定满足第二预置条件之后,还包括所述终端更新终端计数数据;
步骤S06:所述终端根据终端认证结果数据、第一标准数据、终端预期响应传输时间、计算处理时间和计算处理时间验证交换防御数据响应;如验证成功则更新终端认证结果数据;根据终端认证结果数据和终端随机数据组织获取密文指令,向卡片发送获取密文指令;
步骤S07:所述卡片确定获取密文指令中终端随机数据是否等于交互防御数据指令中终端随机数据,如确定相等则根据终端认证结果数据检查终端是否已经成功验证交换防御数据响应;如检查终端已经成功验证交换防御数据响应则使用卡片私钥对终端随机数据、第二动态数据和卡片数据包进行签名得到签名结果数据;向终端发送包括签名结果数据的获取密文数据响应;
步骤S08:所述终端使用卡片公钥对获取密文数据响应中签名结果数据进行验签,如验签成功则继续执行其他终端操作,结束;如为否则报错结束。
本发明提供的一种防御中继攻击的系统,所述系统包括终端和卡片:
所述终端包括第一接收模块、设置模块、第一发送模块、生成记录模块、解析记录确定模块、验证确定更新模块、验证更新组织模块和验签模块;
所述卡片包括第二接收模块、设置获取模块、第二发送模块、确定更新组织模块和确定检查签名模块;
所述第一接收模块,用于接收卡片发送的选择响应;
所述设置模块,用于如所述第一接收模块接收到选择响应,设置终端计数数据;
所述第一发送模块,用于向卡片发送处理选项指令;
所述第二接收模块,用于接收所述第一发送模块发送的处理选项指令;
所述设置获取模块,用于如所述第二接收模块接收到处理选项指令,设置卡片计数数据;获取第一动态数据;
所述第二发送模块,用于向所述第一接收模块发送处理选项响应;
所述第一接收模块,还用于接收所述第二发送模块发送的处理选项响应;
所述生成记录模块,用于生成终端随机数据;记录当前时间为第一当前时间;
所述第一发送模块,还用于向卡片发送包括所述生成记录模块生成的终端随机数据的交互防御数据指令;
所述第二接收模块,还用于接收所述第一发送模块发送的交互防御数据指令;
所述确定更新组织模块,用于确定卡片计数数据和第三预置数据是否满足第一预置条件,如确定为是则根据卡片计数数据和第一动态数据得到第二动态数据;
所述确定更新组织模块,还用于更新卡片计数数据;
所述确定更新组织模块,还用于根据第二动态数据和卡片数据包组织交换防御数据响应;所述卡片数据包包括卡片最大处理时间、卡片最小处理时间和卡片预期响应传输时间;
所述第二发送模块,还用于向所述第一接收模块发送交换防御数据响应;
所述第一接收模块,还用于接收所述第二发送模块发送的交换防御数据响应;
所述解析记录确定模块,用于解析所述第一接收模块接收的交换防御数据响应得到第二动态数据和卡片数据包;记录当前时间为第二当前时间;根据第一当前时间和第二当前时间确定测量处理时间;根据卡片预期响应传输时间、终端预期响应传输时间、终端预期指令传输时间和测量处理时间确定计算处理时间;
所述验证确定更新模块,用于根据卡片最大处理时间、最大时间宽限期、卡片最小处理时间和最小时间宽限期得到可接受处理时间;根据可接受处理时间验证计算处理时间,如通过验证则触发所述验证更新组织模块;如未通过验证则确定终端计数数据和第三预置数据是否满足第二预置条件,如确定满足第二预置条件则触发所述生成记录模块;如确定不满足第二预置条件则更新终端认证结果数据,触发所述验证更新组织模块;
所述验证确定更新模块,还用于更新终端计数数据;
所述验证更新组织模块,用于根据终端认证结果数据、第一标准数据、终端预期响应传输时间、计算处理时间和计算处理时间验证交换防御数据响应;如验证成功则更新终端认证结果数据;根据终端认证结果数据和终端随机数据组织获取密文指令;
所述第一发送模块,还用于向卡片发送获取密文指令;
所述第二接收模块,还用于接收所述第一发送模块发送的获取密文指令;
所述确定检查签名模块,用于确定获取密文指令中终端随机数据是否等于交互防御数据指令中终端随机数据,如确定相等则根据终端认证结果数据检查终端是否已经成功验证交换防御数据响应;如检查终端已经成功验证交换防御数据响应则使用卡片私钥对终端随机数据、第二动态数据和卡片数据包进行签名得到签名结果数据;
所述第二发送模块,还用于向终端发送包括所述确定检查签名模块签名得到的签名结果数据的获取密文数据响应;
所述第一接收模块,还用于接收所述第二发送模块发送的获取密文数据响应;
所述验签模块,用于使用卡片公钥对所述第一接收模块接收到的获取密文数据响应中签名结果数据进行验签,如验签成功则继续执行其他终端操作,结束;如为否则报错结束。
采用上述技术方案达到的有益效果如下:本发明提供了一种防御中继攻击的方法及系统;通过定义新的交互防御数据指令结合终端计数数据和卡片计数数据,限制终端和卡片之间通信指令与通信响应的时间来防止中继攻击,增加终端和卡片之间数据通信的安全性。
附图说明
图1是本发明实施例1提供的一种防御中继攻击的方法的流程图;
图2是本发明实施例3提供的一种防御中继攻击的系统的方框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式做进一步地详细描述。
实施例1
本实施例提供了一种防御中继攻击的方法,适用于包括终端和卡片两个执行主体的系统,如图1所示,所述方法包括以下步骤:
步骤101:当终端接收到卡片发送的选择响应时,终端设置终端计数数据;向卡片发送处理选项指令;
步骤102:卡片设置卡片计数数据;获取第一动态数据;向终端发送处理选项响应;
步骤103:终端生成终端随机数据;记录当前时间为第一当前时间;向卡片发送包括终端随机数据的交互防御数据指令;
步骤104:卡片确定卡片计数数据和第三预置数据是否满足第一预置条件,如确定为是则根据卡片计数数据和第一动态数据得到第二动态数据;根据卡片计数数据和第一动态数据得到第二动态数据之前或者之后还包括:卡片更新卡片计数数据;根据第二动态数据和卡片数据包组织交换防御数据响应,向终端发送交换防御数据响应;卡片数据包包括卡片最大处理时间、卡片最小处理时间和卡片预期响应传输时间;
步骤105:终端接收并解析交换防御数据响应得到第二动态数据和卡片数据包;记录当前时间为第二当前时间;根据第一当前时间和第二当前时间确定测量处理时间;根据卡片预期响应传输时间、终端预期响应传输时间、终端预期指令传输时间和测量处理时间确定计算处理时间;根据卡片最大处理时间、最大时间宽限期、卡片最小处理时间和最小时间宽限期得到可接受处理时间;根据可接受处理时间验证计算处理时间,如通过验证则执行步骤106;如未通过验证则确定终端计数数据和第三预置数据是否满足第二预置条件,如确定满足第二预置条件则返回步骤103;如确定不满足第二预置条件则更新终端认证结果数据,执行步骤106;确定终端计数数据和第三预置数据是否满足第二预置条件之前,或者如确定满足第二预置条件之后,还包括终端更新终端计数数据;
步骤106:终端根据终端认证结果数据、第一标准数据、终端预期响应传输时间、计算处理时间和计算处理时间验证交换防御数据响应;如验证成功则更新终端认证结果数据;根据终端认证结果数据和终端随机数据组织获取密文指令,向卡片发送获取密文指令;
步骤107:卡片确定获取密文指令中终端随机数据是否等于交互防御数据指令中终端随机数据,如确定相等则根据终端认证结果数据检查终端是否已经成功验证交换防御数据响应;如检查终端已经成功验证交换防御数据响应则使用卡片私钥对终端随机数据、第二动态数据和卡片数据包进行签名得到签名结果数据;向终端发送包括签名结果数据的获取密文数据响应;
步骤108:终端使用卡片公钥对获取密文数据响应中签名结果数据进行验签,如验签成功则继续执行其他终端操作,结束;如为否则报错结束;
可选地,步骤101之前,还包括:
步骤E01:终端向卡片发送选择指令;
步骤E02:卡片接收选择指令;根据选择指令执行选择操作得到选择响应,向终端发送选择响应;
步骤E03:终端接收卡片发送的选择响应,执行步骤101。
可选地,步骤102中,获取第一动态数据,具体为:卡片更新第三计数数据;根据更新后的第三计数数据、第五预置数据和第六预置数据得到第一动态数据;
进一步地,卡片更新第三计数数据;根据更新后的第三计数数据、第五预置数据和第六预置数据得到第一动态数据,具体为:卡片根据获取第三计数数据,将第三计数数据加上第四预置数据更新第三计数数据;使用预置密钥加密更新后的第三计数数据和第五预置数据得到第一加密数据,使用预置密钥加密更新后的第三计数数据和第六预置数据得到第二加密数据,根据第一加密数据和第二加密数据得到第一动态数据。
可选地,步骤104中,如确定为否则还包括:卡片向终端发送报错响应;终端接收报错响应,报错结束。
可选地,卡片确定卡片计数数据和第三预置数据是否满足第一预置条件,具体为:卡片确定卡片计数数据是否大于或者等于第三预置数据,如确定为否则更新卡片计数数据;根据卡片计数数据和第一动态数据得到第二动态数据;
相应地,确定终端计数数据和第三预置数据是否满足第二预置条件,具体为:终端判断终端计数数据是否小于第三预置数据,如判断为是则满足第二预置条件,返回步骤103;如判断为否则不满足第二预置条件,更新终端认证结果数据,执行步骤106;
相应地,步骤103中或者步骤103之后,判断终端计数数据是否小于第三预置数据之前,还包括:终端更新终端计数数据。
可选地,卡片确定卡片计数数据和第三预置数据是否满足第一预置条件,具体为:卡片确定卡片计数数据是否大于第三预置数据,如确定为否则根据卡片计数数据和第一动态数据得到第二动态数据;
相应地,根据卡片计数数据和第一动态数据得到第二动态数据之后,还包括:卡片确定卡片更新卡片计数数据;
相应地,确定终端计数数据和第三预置数据是否满足第二预置条件,具体为:终端判断终端计数数据是否小于或者等于第三预置数据,如判断为是则满足第二预置条件,返回步骤103;如判断为否则不满足第二预置条件,更新终端认证结果数据,执行步骤106;
相应地,步骤105中,如确定满足第二预置条件,返回步骤103之前,还包括:终端更新终端计数数据。
可选地,步骤104中,根据卡片计数数据和第一动态数据得到第二动态数据,具体为:卡片根据第七预置数据、第八预置数据、第九预置数据、卡片计数数据从第一动态数据中获取第二动态数据;
进一步地,卡片根据第七预置数据、第八预置数据、第九预置数据、卡片计数数据从第一动态数据中获取第二动态数据,具体为:卡片根据第七预置数据、第八预置数据和卡片计数数据确定首位字节数据,根据第九预置数据和卡片计数数据确定末位字节数据,根据首位字节数据和末位字节数据从第一动态数据中获取第二动态数据。
可选地,步骤105中,根据第一当前时间和第二当前时间确定测量处理时间,具体为:终端使用第二预置算法对第一当前时间和第二当前时间进行运算得到测量处理时间。
可选地,步骤105中,根据卡片预期响应传输时间、终端预期响应传输时间、终端预期指令传输时间和测量处理时间确定计算处理时间,包括以下步骤:
步骤E21:终端判断卡片预期响应传输时间是否小于终端预期响应传输时间,是则执行步骤E22;否则执行步骤E23;
步骤E22:终端根据测量处理时间、终端预期指令传输时间和卡片预期响应传输时间确定计算处理时间;
步骤E23:终端根据测量处理时间、终端预期指令传输时间和终端预期响应传输时间确定计算处理时间。
可选地,步骤105中,根据卡片最大处理时间、最大时间宽限期、卡片最小处理时间和最小时间宽限期得到可接受处理时间,具体为:终端根据卡片最大处理时间、最大时间宽限期、卡片最小处理时间和最小时间宽限期得到可接受最大处理和可接受最小处理时间;
进一步地,终端根据卡片最大处理时间、最大时间宽限期、卡片最小处理时间和最小时间宽限期得到可接受最大处理和可接受最小处理时间,具体为:终端根据卡片最大处理时间和预置的最大时间宽限期得到可接受最大处理间;根据卡片最小处理时间和预置的最小时间宽限期得到可接受最小处理时间。
相应地,终端根据可接受处理时间验证计算处理时间,包括以下步骤:
步骤E31:终端判断计算处理时间是否小于可接受最小处理时间,如为是则未通过验证;如为否则执行步骤E32;
步骤E32:终端判断计算处理时间是否大于可接受最大处理时间,如为是则未通过验证;如为否则通过验证,执行步骤106。
可选地,步骤105中,终端根据可接受处理时间验证计算处理时间,具体为:终端判断计算处理时间是否满足可接受处理时间,如为是则通过验证,如为否则未通过验证。
可选地,步骤106中,终端根据终端认证结果数据、第一标准数据、终端预期响应传输时间、计算处理时间和计算处理时间验证交换防御数据响应,包括以下步骤:
步骤E41:终端根据卡片预期响应传输时间、终端预期响应传输时间和第一标准数据判断响应传输时间差值是否过大,根据计算处理时间、卡片最小处理时间和第二标准数据判断处理时间差值是否过大;如全部判断为是则执行步骤E42:如为否则报错结束;
步骤E42:终端验证终端认证结果数据,如验证终端认证结果数据成功则通过交换防御数据响应验证;
进一步地,步骤105中,更新终端认证结果数据,具体为:终端设置终端认证结果数据中第一预置字节数据中第一预置比特数据;
进一步相应地,步骤E41中,报错结束替换为:终端设置终端认证结果数据中第一预置字节数据中第二预置比特数据;
进一步相应地,步骤E42具体为:终端确定终端认证结果数据中第一预置字节数据中第一预置比特数据和第二预置比特数据是否都未被设置,如确定为是则交换防御数据响应验证成功。
进一步地,步骤E41中,终端根据卡片预期响应传输时间、终端预期响应传输时间和第一标准数据判断响应传输时间差值是否过大,包括以下步骤E51和步骤E52:
步骤E51:终端根据卡片预期响应传输时间和终端预期响应传输时间得到第一待比较数据,判断第一待比较数据是否小于第一标准数据,如判断为是则报错结束;如判断为否则执行步骤E52;
步骤E52:终端根据卡片预期响应传输时间和终端预期响应传输时间得到第二待比较数据,判断第二待比较数据是否小于第一标准数据,如判断为是则报错结束;如判断为否则根据计算处理时间和卡片最小处理时间和第二标准数据判断处理时间差值是否过大;
进一步地,步骤E41中,根据计算处理时间和卡片最小处理时间和第二标准数据判断处理时间差值是否过大,具体为:终端使用第三预置算法对计算处理时间和卡片最小处理时间进行计算得到第三待比较数据,判断第三待比较数据是否大于第二标准数据,如判断为是则处理时间差值过大,报错结束;如判断为否则处理时间差值未过大。
可选地,步骤106中,更新终端认证结果数据,具体为:终端设置终端认证结果数据中第一预置字节数据中第三预置比特数据;
相应地,步骤107中,根据终端认证结果数据检查终端是否已经成功验证交换防御数据响应,具体为:卡片从终端认证结果数据中获取第一置字节数据,判断第一置字节数据中第三预置比特数据是否等于第一预置数据,如为是则终端已经成功验证交换防御数据响应;如为否则终端未成功验证交换防御数据响应,向终端发送报错响应;终端接收报错响应,报错结束。
可选地,步骤106中,根据终端认证结果数据和终端随机数据组织获取密文指令,替换为:终端设置不可预期数据等于终端随机数据;根据终端认证结果数据和不可预期数据组织获取密文指令;
相应地,卡片确定获取密文指令中终端随机数据是否等于交互防御数据指令中终端随机数据,替换为:卡片确定不可预期数据是否等于终端随机数据,如为是则根据终端认证结果数据检查终端是否已经成功验证交换防御数据响应。
可选地,S08具体为:终端使用卡片公钥对获取密文数据响应中签名结果数据进行验签,当签名结果数据验签成功时,解析签名结果数据得到终端随机数据、第二动态数据和卡片数据包;分别对签名明文数据中终端随机数据、第二动态数据和卡片数据包进行验证,当全部验证通过时,验签成功,否则报错结束;
进一步地,分别对终端随机数据、第二动态数据和卡片数据包进行验证,包括以下步骤E61至步骤E66:
步骤E61:终端从获取密文数据响应获取签名结果数据,使用卡片公钥对签名结果数据进行验签,如签名结果数据验签成功则执行步骤E62;如签名结果数据验签失败则报错结束;
步骤E62:终端判断生成的终端随机数据是否等于签名结果数据中终端随机数据,如为是则执行步骤E63;如为否则报错结束;
步骤E63:终端判断解析交换防御数据响应得到的第二动态数据是否等于签名结果数据中第二动态数据,如为是则执行步骤E64;如为否则报错结束;
步骤E64:终端判断解析交换防御数据响应得到的卡片最大处理时间是否等于签名结果数据中卡片最大处理时间,如为是则执行步骤E65;如为否则报错结束;
步骤E65:终端判断解析交换防御数据响应得到的卡片最小处理时间是否等于签名结果数据中卡片最小处理时间,如为是则执行步骤E66;如为否则报错结束;
步骤E66:终端判断解析交换防御数据响应得到的卡片预期响应传输时间是否等于签名结果数据中卡片预期响应传输时间,如为是则验签成功;如为否则报错结束。
可选地,S07之前,还包括:卡片判断卡片计数数据是否等于第二预置数据,如为是则根据拒绝通信预置数据组织获取密文数据响应,向终端发送获取密文数据响应;如为否则执行步骤107;
相应地,步骤108之前,还包括:终端接收获取密文数据响应,判断获取密文数据响应是否包括预置签名标签,如为是则执行步骤108;如为否则报错结束;
进一步地,根据拒绝通信预置数据组织获取密文数据响应,向终端发送获取密文数据响应之前,还包括步骤E71至步骤E73:
步骤E71:卡片根据获取密文指令中终端类型数据判断终端是否仅支持脱机通信,如为是则执行步骤E72;如为否则执行步骤E73;
步骤E72:卡片判断应用控制数据中第三预置字节数据中第五预置比特数据是否被设置,如为是则根据拒绝通信预置数据组织获取密文数据响应,向终端发送获取密文数据响应;如为否则执行其他风险管理操作,结束;
步骤E73:卡片判断应用控制数据中第三预置字节数据中第六预置比特数据是否被设置,如为是则执行联机通信操作得到联机操作数据,根据联机操作数据组织获取密文数据响应;如为否则执行其他风险管理操作,结束;
进一步相应地,S06中,获取密文指令还包括终端类型数据。
可选地,S07中,还包括:如检查终端已经成功验证交换防御数据响应,卡片根据获取密文指令和第十预置数据判断是否需要执行签名操作,如为是则使用卡片私钥对终端随机数据、第二动态数据和卡片数据包进行签名得到签名结果数据;如为否则根据拒绝通信预置数据组织获取密文数据响应,向终端发送获取密文数据响应;
相应地,步骤108之前,还包括:终端接收获取密文数据响应,判断获取密文数据响应是否包括预置签名标签,如为是则执行步骤108;如为否则报错结束。
实施例2
本实施例提供了一种防御中继攻击的方法,适用于包括终端和卡片两个执行主体的系统,包括以下步骤:
步骤201:终端向卡片发送选择指令;
例如,终端向卡片发送选择指令0x00A4040007A000000004101000;
步骤202:卡片接收选择指令;根据选择指令执行选择操作得到选择响应,向终端发送选择响应;
例如,卡片接收选择指令0x00A4040007A000000004101000;根据选择指令执行选择操作得到选择响应0x6F258407A0000000041010A51A500A4D6173746572436172649F38039F4005BF0C059F4D020B0A9000,向终端发送选择响应0x6F258407A0000000041010A51A500A4D6173746572436172649F38039F4005BF0C059F4D020B0A9000;
步骤203:终端接收选择响应;设置终端计数数据;向卡片发送处理选项指令;
例如,终端接收选择响应0x6F258407A0000000041010A51A500A4D6173746572436172649F38039F4005BF0C059F4D020B0A9000;设置终端计数数据0x00;向卡片发送处理选项指令0x80A800000783051111000000;
可选地,设置终端计数数据,具体为:终端重置终端计数数据;
进一步地,设置终端计数数据,更具体为:终端重置终端计数数据为默认计数数据;
例如,默认计数数据包括1个字节,为0x00;
可选地,设置终端计数数据,具体为:终端新建终端计数数据,赋值终端计数数据默认计数数据。
例如,默认计数数据包括1个字节,为0x00;
步骤204:卡片接收处理选项指令;设置卡片计数数据;获取第一动态数据;向终端发送处理选项响应;
可选地,本步骤具体为:卡片接收处理选项指令;重置卡片计数数据;更新第三计数数据;根据更新后的第三计数数据、第五预置数据和第六预置数据得到第一动态数据;向终端发送处理选项响应;
进一步地,本步骤具体为:卡片接收处理选项指令;重置卡片计数数据为默认计数数据;获取第三计数数据,根据第四预置数据更新第三计数数据;根据预置密钥对根据更新后的第三计数数据、第五预置数据和第六预置数据进行加密得到第一动态数据,向终端发送处理选项响应;
更进一步地,本步骤具体为:卡片接收处理选项指令;重置卡片计数数据为默认计数数据;根据处理选项指令获取第三计数数据,将第三计数数据加上第四预置数据更新第三计数数据;使用预置密钥加密更新后的第三计数数据和第五预置数据得到第一加密数据,使用预置密钥加密更新后的第三计数数据和第六预置数据得到第二加密数据,根据第一加密数据和第二加密数据得到第一动态数据,向终端发送处理选项响应;
再更进一步地,本步骤具体为:卡片接收处理选项指令;重置卡片计数数据为默认计数数据;获取第三计数数据,将第三计数数据加上1更新第三计数数据;顺序拼接更新后的第三计数数据和第五预置数据得到第一拼接结果,使用预置密钥加密第一拼接结果得到第一加密数据;顺序拼接更新后的第三计数数据和第六预置数据得到第二拼接结果,使用预置密钥加密第二拼接结果得到第二加密数据;拼接第一加密数据和第二加密数据得到第一动态数据,向终端发送处理选项响应;
例如,卡片接收处理选项指令0x80A800000783051111000000;重置卡片计数数据为默认计数数据;获取第三计数数据0x0000,将第三计数数据0x0000加上1更新第三计数数据0x0001;顺序拼接更新后的0x第三计数数据0001和第五预置数据0xFF0000000000得到第一拼接结果0x0001FF0000000000,使用预置密钥0x1F7312B3424B50622D3D802D552111AD加密第一拼接结果得到第一加密数据0x48ECCEB782803BD2;顺序拼接更新后的第三计数数据0x0001和第六预置数据0x000000000000得到第二拼接结果0x0001000000000000,使用预置密钥0x1F7312B3424B50622D3D802D552111AD加密第二拼接结果0x0001000000000000得到第二加密数据0x1ECB378ABBACF438;拼接第一加密数据0x48ECCEB782803BD2和第二加密数据0x1ECB378ABBACF438得到第一动态数据0x48ECCEB782803BD21ECB378ABBACF438,向终端发送处理选项响应0x7716820279809410080101001001040118010500200103019000;
可选地,设置卡片计数数据,具体为:卡片新建终端计数数据。
步骤205:终端根据第四预置数据更新终端计数数据;
例如,终端根据第四预置数据1更新终端计数数据0x0001;
步骤206:终端生成终端随机数据;记录当前时间为第一当前时间;根据终端随机数据组织交互防御数据指令,向卡片发送交互防御数据指令;
例如,终端生成终端随机数据0x70FEEC8F;记录当前时间为第一当前时间8点10分10秒10毫秒;根据终端随机数据0x70FEEC8F组织交互防御数据指令0x80EA00000470FEEC8F,向卡片发送交互防御数据指令0x80EA00000470FEEC8F;
步骤207:卡片接收并解析交互防御数据指令得到终端随机数据;判断卡片计数数据是否大于或者等于第三预置数据,是则向终端发送报错响应,执行步骤C01;否则执行步骤208;
例如,卡片接收并解析交互防御数据指令0x80EA00000470FEEC8F得到终端随机数据0x70FEEC8F;判断卡片计数数据0是否大于或者等于第三预置数据3,是则向终端发送报错响应0x6985,执行步骤C01;否则执行步骤208;
步骤C01:终端接收报错响应,报错结束;
例如,终端接收报错响应0x6985,报错结束;
步骤208:卡片根据第四预置数据更新卡片计数数据;根据第七预置数据、第八预置数据、第九预置数据、卡片计数数据和第一动态数据得到第二动态数据;根据第二动态数据、卡片最大处理时间、卡片最小处理时间和卡片预期响应传输时间组织交换防御数据响应,向终端发送交换防御数据响应;
本实施例中,卡片在出厂时预置卡片最大处理时间、卡片最小处理时间和卡片预期响应传输时间;
可选地,本步骤具体为:卡片根据第四预置数据更新卡片计数数据;根据第七预置数据、第八预置数据、第九预置数据和卡片计数数据从第一动态数据中获取第二动态数据;根据第二动态数据、卡片最大处理时间、卡片最小处理时间和卡片预期响应传输时间组织交换防御数据响应,向终端发送交换防御数据响应;
进一步地,本步骤具体为:卡片根据第四预置数据更新卡片计数数据;根据第七预置数据、第八预置数据和卡片计数数据确定首位字节数据,根据第九预置数据和卡片计数数据确定末位字节数据,根据首位字节数据和末位字节数据从第一动态数据中获取第二动态数据;拼接第二动态数据、卡片最大处理时间、卡片最小处理时间和卡片预期响应传输时间得到交换防御数据响应,向终端发送交换防御数据响应;
更进一步地,本步骤具体为:卡片根据第四预置数据更新卡片计数数据;根据第三预置算法对第七预置数据和卡片计数数据进行计算得到第一计算结果,根据第二预置算法对第一计算结果和第八预置数据进行计算得到首位字节数据;根据第三预置算法对第九预置数据和卡片计数数据进行计算得到末位字节数据;根据首位字节数据和末位字节数据从第一动态数据中截取第二动态数据;顺序拼接第二动态数据、卡片最大处理时间、卡片最小处理时间和卡片预期响应传输时间得到交换防御数据响应,向终端发送交换防御数据响应;
例如,卡片将卡片计数数据加1;根据对第七预置数据4和卡片计数数据1进行乘法计算得到第一计算结果4,根据第二预置算法减法运算对第一计算结果2和第八预置数据3进行计算得到首位字节数据1;根据第三预置算法乘法运算对第九预置数据4和卡片计数数据1进行计算得到末位字节数据4;根据首位字节数据1和末位字节数据4从第一动态数据0x48ECCEB782803BD21ECB378ABBACF438中截取第二动态数据0x48ECCEB7;顺序拼接第二动态数据0x48ECCEB7、卡片最大处理时间0x0064百微秒、卡片最小处理时间0x0032百微秒和卡片预期响应传输时间0013百微秒得到交换防御数据响应0x800A48ECCEB7003200640013,向终端发送交换防御数据响应0x800A48ECCEB7003200640013;
步骤209:终端接收交换防御数据响应;记录当前时间为第二当前时间;解析交换防御数据响应得到第二动态数据、卡片最大处理时间、卡片最小处理时间和卡片预期响应传输时间;根据第一当前时间和第二当前时间确定测量处理时间;根据卡片最大处理时间、最大时间宽限期、卡片最小处理时间和最小时间宽限期得到可接受处理时间;
本实施例中,终端在预先设置置卡片最大处理时间、卡片最小处理时间和卡片预期响应传输时间;
可选地,本步骤包括以下步骤:
步骤C11:终端接收交换防御数据响应;记录当前时间为第二当前时间;解析交换防御数据响应得到第二动态数据、卡片最大处理时间、卡片最小处理时间和卡片预期响应传输时间;
例如,终端接收交换防御数据响应0x800A48ECCEB7003200640013;记录当前时间为第二当前时间8点10分10秒23毫秒;解析交换防御数据响应0x800A48ECCEB7003200640013得到第二动态数据0x8ECCEB7、卡片最大处理时间10毫秒、卡片最小处理时间5毫秒和卡片预期响应传输时间1.9毫秒。
例如,本实施例中,卡片的卡片最大处理时间0x0064、卡片最小处理时间0x0032和卡片预期响应传输时间0x0013是以100百微秒为单位的且为16进制数据;终端进行数据处理时是以毫秒为单位进行计算的并且处理数据是按十进制处理的,所以终端获取到卡片内卡片最大处理时间、卡片最小处理时间和卡片预期响应传输时间时,先将十六进制数据转化为十进制数据,然后将百微秒单位的数据除以十转换成毫秒单位的十进制数据;
步骤C12:终端使用第二预置算法对第一当前时间和第二当前时间进行运算得到测量处理时间;
进一步地,本步骤具体为:终端对第一当前时间和第二当前时间进行减法运算得到测量处理时间;
更进一步地,本步骤具体为:终端使用第二当前时间减去第一当前时间得到测量处理时间。
更进一步地,本步骤具体为:终端使用第一当前时间减去第二当前时间,对得到的减法结果进行绝对值运算得到测量处理时间;
例如,终端使用第一当前时间8点10分10秒10毫秒减去第二当前时间8点10分10秒23毫秒,对得到的减法结果进行绝对值运算得到测量处理时间13毫秒。
步骤C13:终端根据卡片最大处理时间、最大时间宽限期、卡片最小处理时间和最小时间宽限期得到可接受处理时间;
进一步地,本步骤具体为:终端根据卡片最大处理时间、最大时间宽限期、卡片最小处理时间和最小时间宽限期得到可接受最大处理时间和可接受最小处理时间;
更进一步地,本步骤具体为:终端根据卡片最大处理时间和预置的最大时间宽限期得到可接受最大处理时间;根据卡片最小处理时间和预置的最小时间宽限期得到可接受最小处理时间;
又更进一步地,本步骤具体为:终端使用第一预置算法对卡片最大处理时间和预置的最大时间宽限期进行运算得到可接受最大处理间;使用第二预置算法对卡片最小处理时间和预置的最小时间宽限期进行运算得到可接受最小处理时间;
又更进一步地,本步骤具体为:终端使用卡片最大处理时间加上预置的最大时间宽限期得到可接受最大处理间;对卡片最小处理时间和预置的最小时间宽限期进行减法运算得到可接受最小处理时间;
再更进一步地,本步骤具体为:终端使用卡片最大处理时间加上预置的最大时间宽限期得到可接受最大处理间;使用卡片最小处理时间减去预置的最小时间宽限期得到可接受最小处理时间;
再更进一步地,本步骤具体为:终端使用卡片最大处理时间加上预置的最大时间宽限期得到可接受最大处理间;使用预置的最小时间宽限期减去卡片最小处理时间,对得到的减法结果进行绝对值运算得到可接受最小处理时间;
例如,终端使用卡片最大处理时间10毫秒加上预置的最大时间宽限期2毫秒得到可接受最大处理间12毫秒;使用预置的最小时间宽限期2毫秒减去卡片最小处理时间5毫秒,对得到的减法结果进行绝对值运算得到可接受最小处理时间3毫秒;
步骤210:终端判断卡片预期响应传输时间是否小于终端预期响应传输时间,是则执行步骤211;否则执行步骤212;
例如,终端判断卡片预期响应传输时间1.9毫秒是否小于终端预期响应传输时间2.4毫秒,是则执行步骤211;否则执行步骤212。
步骤211:终端根据测量处理时间、终端预期指令传输时间和卡片预期响应传输时间确定计算处理时间,执行步骤213;
可选地,本步骤具体为:终端根据第二预置算法对测量处理时间、终端预期指令传输时间和卡片预期响应传输时间进行计算得到计算处理时间;
进一步地,本步骤具体为:终端根据第一预置算法对终端预期指令传输时间和卡片预期响应传输时间进行计算得到第一中间计算数据,根据第二预置算法对测量处理时间和第一中间计算结果进行计算得到计算处理时间;
进一步地,本步骤具体为:终端根据第二预置算法对测量处理时间和终端预期指令传输时间进行计算得到第二中间计算数据,根据第二预置算法对第二中间计算数据和卡片预期响应传输时间进行计算得到计算处理时间;
例如,终端对测量处理时间13毫秒和终端预期指令传输时间1.1毫秒进行减法计算得到第二中间计算数据11.9毫秒,根据对第二中间计算数据11.9毫秒和卡片预期响应传输时间1.9毫秒进行减法计算得到计算处理时间10毫秒。
步骤212:终端根据测量处理时间、终端预期指令传输时间和终端预期响应传输时间确定计算处理时间,执行步骤213;
可选地,本步骤具体为:终端根据第二预置算法对测量处理时间、终端预期指令传输时间和终端预期响应传输时间进行计算得到计算处理时间;
进一步地,本步骤具体为:终端根据第一预置算法对终端预期指令传输时间和终端预期响应传输时间进行计算得到第三中间计算数据,根据第二预置算法对测量处理时间和第一中间计算结果进行计算得到计算处理时间;
进一步地,本步骤具体为:终端根据第二预置算法对测量处理时间和终端预期指令传输时间进行计算得到第四中间计算数据,根据第二预置算法对第二中间计算数据和终端预期响应传输时间进行计算得到计算处理时间;
步骤213:终端判断计算处理时间是否满足可接受处理时间,是则执行步骤步骤216;否则执行步骤214;
可选地,本步骤包括以下步骤:
步骤C21:终端判断计算处理时间是否小于可接受最小处理时间,是则执行步骤214;否则执行步骤C22;
例如,终端判断计算处理时间10毫秒是否小于可接受最小处理时间3毫秒,是则执行步骤214;否则执行步骤C22。
可选地,执行步骤214替换为:终端终止通信,结束。
步骤C22:终端判断计算处理时间大于可接受最大处理时间,是则执行步骤214;否则执行步骤216;
例如,终端判断计算处理时间10毫秒大于可接受最大处理时间12毫秒,是则执行步骤214;否则执行步骤216。
步骤214:终端判断终端计数数据是否小于第三预置数据,是则返回步骤205;否则执行步骤215;
例如,终端判断终端计数数据1是否小于第三预置数据3,是则返回步骤205;否则执行步骤215。
步骤215:终端设置终端认证结果数据中第一预置字节数据中第一预置比特数据,执行步骤216;
可选地,本步骤具体为:终端将终端认证结果数据中第一预置字节数据中第一预置比特数据设置为第十一预置数据,执行步骤216;
例如,终端将终端认证结果数据0x0000000000中第一预置字节数据第5字节数据0x00中第一预置比特数据第3比特数据0设置为第十一预置数据1,执行步骤216。
步骤216:终端根据卡片预期响应传输时间、终端预期响应传输时间和第一标准数据判断响应传输时间差值是否过大,是则执行步骤218;否则执行步骤217;
可选地,本步骤包括以下步骤:
步骤C31:终端根据卡片预期响应传输时间和终端预期响应传输时间得到第一待比较数据,判断第一待比较数据是否小于第一标准数据,是则执行步骤218;否则执行步骤C32;
例如,终端根据卡片预期响应传输时间1.9毫秒和终端预期响应传输时间2.4毫秒得到第一待比较数据2.4/1.9,判断第一待比较数据2.4/1.9是否小于第一标准数据50%,是则执行步骤218;否则执行步骤C32。
步骤C32:终端根据卡片预期响应传输时间和终端预期响应传输时间得到第二待比较数据,判断第二待比较数据是否小于第一标准数据,是则执行步骤218;否则执行步骤217;
例如,终端根据卡片预期响应传输时间和终端预期响应传输时间得到第二待比较数据1.9/2.4(79%),判断第二待比较数据1.9/2.4(79%)是否小于第一标准数据50%,是则执行步骤218;否则执行步骤217。
可选地,本步骤包括以下步骤:
步骤C41:终端判断卡片预期响应传输时间是否大于或等于终端预期响应传输时间,是则执行步骤C42;否则执行步骤C43;
步骤C42:终端使用第三预置算法对终端预期响应传输时间和卡片预期响应传输时间进行计算得到第一待比较数据,判断第一待比较数据是否小于第一标准数据,是则执行步骤218;否则执行步骤217;
进一步地,本步骤具体为:终端使用终端预期响应传输时间除以卡片预期响应传输时间得到第一待比较数据,判断第一待比较数据是否小于第一标准数据,是则执行步骤218;否则执行步骤217;
步骤C43:终端使用第三预置算法对卡片预期响应传输时间和终端预期响应传输时间进行计算得到第二待比较数据,判断第二待比较数据是否小于第一标准数据,是则执行步骤步骤218;否则执行步骤217;
进一步地,本步骤具体为:终端使用卡片预期响应传输时间除以终端预期响应传输时间得到第二待比较数据,判断第二待比较数据是否小于第一标准数据,是则执行步骤218;否则执行步骤217。
步骤217:终端根据计算处理时间、卡片最小处理时间和第二标准数据判断处理时间差值是否过大,是则执行步骤218;否则执行步骤219;
可选地,本步骤具体为:终端使用第三预置算法对计算处理时间和卡片最小处理时间进行计算得到第三待比较数据,判断第三待比较数据是否大于第二标准数据,是则执行步骤218;否则执行步骤219;
进一步地,本步骤具体为:终端使用计算处理时间减去卡片最小处理时间得到第三待比较数据,判断第三待比较数据是否大于第二标准数据,是则执行步骤218;否则执行步骤219;
例如,终端使用计算处理时间10毫秒减去卡片最小处理时间5毫秒得到第三待比较数据5毫秒,判断第三待比较数据5毫秒是否大于第二标准数据10毫秒,是则执行步骤218;否则执行步骤219。
步骤218:终端设置终端认证结果数据中第一预置字节数据中第二预置比特数据,执行步骤219;
可选地,本步骤具体为:终端将终端认证结果数据中第一预置字节数据中第二预置比特数据设置为第十一预置数据,执行步骤219;
例如,终端将终端认证结果数据0x0000000000中第一预置字节数据第5字节数据0x00中第二预置比特数据第4比特数据0设置为第十一预置数据1,执行步骤219。
步骤219:终端判断终端认证结果数据中第一预置字节数据中第一预置比特数据和第二预置比特数据是否都未被设置,是则执行步骤220;否则执行步骤231;
可选地,本步骤可替换为:终端判断终端认证结果数据中第一预置字节数据中第一预置比特数据和第二预置比特数据是否全部等于第二预置数据,是则执行步骤220;否则执行步骤231。
可选地,本步骤可替换为:终端判断终端认证结果数据中第一预置字节数据中第一预置比特数据和第二预置比特数据是否不全部等于第二预置数据,是则执行步骤231;否则执行步骤220。
步骤220:终端设置终端认证结果数据中第一预置字节数据中第三预置比特数据,执行步骤231;
可选地,本步骤具体为:终端设置终端认证结果数据中第一预置字节数据中第三预置比特数据为第一预置数据,执行步骤231;
例如,终端设置终端认证结果数据0x0000000002中第一预置字节数据第5字节数据0x02中第三预置比特数据低两位比特数据为第一预置数据10(第一预置数据10是一个二进制数据),执行步骤231。
可选地,本步骤具体为:终端置位终端认证结果数据中第一预置字节数据中第三预置比特数据,执行步骤231。
步骤231:终端向卡片发送读记录指令;
例如,终端向卡片发送读记录指令0x00B2010C00。
步骤232:卡片接收读记录指令;根据读记录指令执行读记录操作得到读记录响应;向终端发送读记录响应;
例如,卡片接收读记录指令0x00B2010C00;根据读记录指令执行读记录操作得到读记录响应0x70759F6C0200019F62060000003800009F630600000000E0E0563442353431333333393030303030313531335E202F5E323031323230313333303030333333303030323232323230303031313131309F6401039F6502000E9F66020E709F6B135413339000001513D20122019000990000000F9F6701039000;向终端发送读记录响应0x70759F6C0200019F62060000003800009F630600000000E0E0563442353431333333393030303030313531335E202F5E323031323230313333303030333333303030323232323230303031313131309F6401039F6502000E9F66020E709F6B135413339000001513D20122019000990000000F9F6701039000。
步骤233:终端接收读记录响应,执行终端风险管理操作更新终端认证结果数据,执行步骤241;
例如,终端接收读记录响应0x70759F6C0200019F62060000003800009F630600000000E0E0563442353431333333393030303030313531335E202F5E323031323230313333303030333333303030323232323230303031313131309F6401039F6502000E9F66020E709F6B135413339000001513D20122019000990000000F9F6701039000,执行终端风险管理操作更新终端认证结果数据0x0000000002,执行步骤241。
步骤241:终端根据终端认证结果数据、终端随机数据和终端类型数据组织获取密文指令,向卡片发送获取密文指令;
本实施例中,终端预先设置终端类型数据;
例如,终端根据终端认证结果数据0x0000000002、终端随机数据0x70FEEC8F和终端类型数据0x00组织获取密文指令0x80AE5000420000000000000000000000000056000000000209781806010070FEEC8F00DAC00000000000000000000000120000000000000000000000000000000000000000000000,向卡片发送获取密文指令0x80AE5000420000000000000000000000000056000000000209781806010070FEEC8F00DAC00000000000000000000000120000000000000000000000000000000000000000000000。
步骤242:卡片接收并解析获取密文指令得到终端认证结果数据、终端随机数据和终端类型数据;判断卡片计数数据是否等于第二预置数据,是则执行步骤247;否则执行步骤243;
步骤243:卡片判断交互防御数据指令中终端随机数据是否等于获取密文指令中终端随机数据,是则执行步骤244;否则执行步骤253;
例如,卡片判断交互防御数据指令0x80EA00000470FEEC8F中终端随机数据0x70FEEC8F是否等于获取密文指令0x80AE5000420000000000000000000000000056000000000209781806010070FEEC8F00DAC00000000000000000000000120000000000000000000000000000000000000000000000中终端随机数据0x70FEEC8F,是则执行步骤244;否则执行步骤253。
可选地,步骤241替换为:终端设置不可预期数据等于终端随机数据;根据终端认证结果数据、不可预期数据和终端类型数据组织获取密文指令,向卡片发送获取密文指令;
相应地,步骤242替换为:卡片接收并解析获取密文指令得到终端认证结果数据、不可预期数据和终端类型数据;
相应地,步骤243具体为:卡片判断不可预期数据是否等于终端随机数据,如为是则执行步骤244;如为否则执行步骤253。
步骤244:卡片从终端认证结果数据中获取第一置字节数据,确定第一置字节数据中第三预置比特数据的类型,如为第一预置数据则执行步骤245;如为第二预置数据则执行步骤253;
可选地,本步骤具体为:卡片从终端认证结果数据中获取第一置字节数据,判断第一置字节数据中第三预置比特数据是否置位,是则执行步骤245;否则执行步骤253;
可选地,本步骤具体为:卡片获取终端认证结果数据中第一预置字节数据,判断第一预置字节数据中第三预置比特数据是否等于第一预置数据,是则执行步骤245;否则执行步骤253;
例如,卡片获取终端认证结果数据0x0000000002中第一预置字节数据第5字节数据,判断第一预置字节数据第5字节数据中第三预置比特数据低两位比特位数据是否等于第一预置数据10(第一预置数据10是一个二进制数据),是则执行步骤245;否则执行步骤253。
步骤245:卡片根据获取密文指令和第十预置数据判断是否需要执行签名操作,是则执行步骤252;否则执行步骤246;
可选地,本步骤具体为:卡片从获取密文指令中获取第二预置字节数据,判断第二预置字节数据中签名预置比特数据是否等于第十预置数据,是则需要执行签名操作,执行步骤252;否则不需要执行签名操作,执行步骤246;
例如,卡片从获取密文指令0x80AE5000420000000000000000000000000056000000000209781806010070FEEC8F00DAC00000000000000000000000120000000000000000000000000000000000000000000000中获取第二预置字节数据第3字节数据0x50,判断第二预置字节数据第3字节数据0x50中签名预置比特数据第5比特位数据是否等于第十预置数据1,是则需要执行签名操作,执行步骤252;否则不需要执行签名操作,执行步骤246。
步骤246:卡片判断应用控制数据中第三预置字节数据中第四预置比特数据是否被设置,是则执行步骤253;否则执行其它风险管理流程,结束;
例如,卡片判断应用控制数据0x9C064098F10C中第三预置字节数据第3字节数据0x40中第四预置比特数据第6比特位数据1是否被设置,是则执行步骤253;否则执行其它风险管理流程,结束。
步骤247:卡片根据终端类型数据判断终端是否仅支持脱机通信,是则执行248;否则执行步骤249;
例如,卡片根据终端类型数据0x00判断终端是否仅支持脱机通信,是则执行248;否则执行步骤249。
步骤248:卡片判断应用控制数据中第三预置字节数据中第五预置比特数据是否被设置,是则执行步骤253;否则执行其它风险管理流程,结束;
步骤249:卡片判断应用控制数据中第三预置字节数据中第六预置比特数据是否被设置,是则执行步骤251;否则执行其它风险管理流程,结束;
步骤251:卡片执行联机通信操作得到联机操作数据,根据联机操作数据组织获取密文数据响应,执行步骤254;
步骤252:卡片根据终端随机数据、第二动态数据、卡片最小处理时间、卡片最大处理时间、卡片预期响应传输时间组织签名明文数据,使用卡片私钥对签名明文数据进行签名操作得到签名结果数据,根据签名结果数据组织获取密文数据响应,执行步骤254;
本实施例中,卡片在出厂时预设卡片私钥,终端对应卡片公钥,卡片私钥与卡片公钥一一对应;
例如,卡片根据终端随机数据0x70FEEC8F、0x第二动态数据48ECCEB7、卡片最小处理时间0x0032百微秒、卡片最大处理时间0x0064百微秒、卡片预期响应传输时间0x0013百微秒组织签名明文数据0x6A050134081ECB378ABBACF43840444FC2E3B3E2CBEAEE74F0CD6A0C4E0A81142D94521A153BB4E9972670FEEC8F48ECCEB7003200640013BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBC9822730523BFC4461DE0D23BF248877C271E6BCBC,使用卡片私钥0x<v8201>B8940CF653E0D59DA5EB369242F842EDF35F370B6D719AA77CB193D246AFA0EA87D45BF26465B09A2A37E42766E6C42C8C6174C7DD817D0610C5D92FBC2D8487</v8201><v8202>862D056DFC1CA0E4AF4F938A025C8FB1A066F310870F967ADBECDFCE7A841FECF4B57B8371E5D0DAEAAED4C55FB4E5854459E0E5ECB773D363FA4F0097F12C4F</v8202><v8203>88256F4F0C7E819420EA42E53CAB0203F9EA7AB519688A3261FE0DCB6A1C287C0B5480819A23FF486C71DF5BEB1E6EC5A4814D0BD4DC0ED907BE3F2F7DEB12B7</v8203><v8204>C9438824FA2AF15706F75D4F038AD78A709A6C98CA9761B849E34FB5B7C62FE36F1039452AD8B94860063F280F8F5847E686D158E3132DBD15F77680E3E9C277</v8204><v8205>CC3826F692BDC25E315F6457DB008305F6DFB80FA61CCF4B92FD14B11F2A3CBA10FEC0C26735FEECA2AACF09E0ADA62876C1F391BF4A16458B9D5EC73CE09C13</v8205>
对签名明文数据进行签名操作得到签名结果数据0x5F5C8D2FB3D63F784DEF4D0D54DFA3CC852D43CA9BDC428278D8347D248FB2F75489D17D1B7D522E225EEB9E55A1C944454D9D62FF9FBE963116735A0C4FE0CE795ECCD930637F9130825D80C5BB787B599C38DCBA2A0D83925D7BFD11E2E40299AC588E6601E3FDCFE32DC2996A5EB1B222E7560E2FD5EA7B805D3C6012A3E8
,根据签名结果数据0x5F5C8D2FB3D63F784DEF4D0D54DFA3CC852D43CA9BDC428278D8347D248FB2F75489D17D1B7D522E225EEB9E55A1C944454D9D62FF9FBE963116735A0C4FE0CE795ECCD930637F9130825D80C5BB787B599C38DCBA2A0D83925D7BFD11E2E40299AC588E6601E3FDCFE32DC2996A5EB1B222E7560E2FD5EA7B805D3C6012A3E8组织获取密文数据响应0x7781AC9F2701409F360200019F4B81805F5C8D2FB3D63F784DEF4D0D54DFA3CC852D43CA9BDC428278D8347D248FB2F75489D17D1B7D522E225EEB9E55A1C944454D9D62FF9FBE963116735A0C4FE0CE795ECCD930637F9130825D80C5BB787B599C38DCBA2A0D83925D7BFD11E2E40299AC588E6601E3FDCFE32DC2996A5EB1B222E7560E2FD5EA7B805D3C6012A3E89F101C2210904203220001DAC000000000000000FF00000000000000FF0000,执行步骤254。
步骤253:卡片根据拒绝通信预置数据组织获取密文数据响应,执行步骤254;
步骤254:卡片向终端发送获取密文数据响应;
步骤261:终端接收获取密文数据响应,判断获取密文数据响应是否包括预置签名标签,是则执行步骤262;否则执行步骤263;
可选地,执行步骤263替换为:终端报错结束。
例如,终端接收获取密文数据响应,判断获取密文数据响应是否包括预置签名标签9F4B,是则执行步骤262;否则执行步骤263;
步骤262:终端从获取密文数据响应获取签名结果数据,使用卡片公钥对签名结果数据进行验签,当签名结果数据验签成功时,解析签名结果数据得到终端随机数据、第二动态数据、卡片最小处理时间、卡片最大处理时间、卡片预期响应传输时间;分别对签名明文数据中终端随机数据、第二动态数据、卡片最小处理时间、卡片最大处理时间、卡片预期响应传输时间进行验证,当全部验证通过时,执行步骤263;否则报错结束;
可选地,本步骤包括以下步骤:
步骤D01:终端从获取密文数据响应获取签名结果数据,使用卡片公钥对签名结果数据进行验签,当签名结果数据验签成功时,执行步骤D02;当签名结果数据验签失败时,报错结束;
例如,终端从获取密文数据响应获取签名结果数据0x5F5C8D2FB3D63F784DEF4D0D54DFA3CC852D43CA9BDC428278D8347D248FB2F75489D17D1B7D522E225EEB9E55A1C944454D9D62FF9FBE963116735A0C4FE0CE795ECCD930637F9130825D80C5BB787B599C38DCBA2A0D83925D7BFD11E2E40299AC588E6601E3FDCFE32DC2996A5EB1B222E7560E2FD5EA7B805D3C6012A3E8,使用卡片公钥0xA08DF5E51FE8F5B0BE6F97A30C74888D55E756B342F1BF069199C480709C75F3BAA0D44CC4E7BC9C689F5BF22937F4B542D19D7BB198745BD777E2158EE541128A158E736A884B82C521616EF06F8D267C07B1EF798AB577AAA3C6DD8937C9B2344CECAD5AB8D529BCACA7F9ECEADE85990F1E04FEAE9FA033DF691268F9F2D5对签名结果数据0x5F5C8D2FB3D63F784DEF4D0D54DFA3CC852D43CA9BDC428278D8347D248FB2F75489D17D1B7D522E225EEB9E55A1C944454D9D62FF9FBE963116735A0C4FE0CE795ECCD930637F9130825D80C5BB787B599C38DCBA2A0D83925D7BFD11E2E40299AC588E6601E3FDCFE32DC2996A5EB1B222E7560E2FD5EA7B805D3C6012A3E8进行验签,当签名结果数据验签成功时,执行步骤D02;当签名结果数据验签失败时,报错结束。
步骤D02:终端判断生成的终端随机数据是否等于签名结果数据中终端随机数据,是则执行步骤D03;否则报错结束;
例如,终端判断生成的终端随机数据0x70FEEC8F是否等于签名结果数据中终端随机数据0x70FEEC8F,是则执行步骤D03;否则报错结束。
步骤D03:终端判断解析交换防御数据响应得到的第二动态数据是否等于签名结果数据中第二动态数据,是则执行步骤D04;否则报错结束;
例如,终端判断解析交换防御数据响应0x800A48ECCEB7003200640013得到的第二动态数据0x48ECCEB7是否等于签名结果数据0x5F5C8D2FB3D63F784DEF4D0D54DFA3CC852D43CA9BDC428278D8347D248FB2F75489D17D1B7D522E225EEB9E55A1C944454D9D62FF9FBE963116735A0C4FE0CE795ECCD930637F9130825D80C5BB787B599C38DCBA2A0D83925D7BFD11E2E40299AC588E6601E3FDCFE32DC2996A5EB1B222E7560E2FD5EA7B805D3C6012A3E8中第二动态数据0x48ECCEB7,是则执行步骤D04;否则报错结束。
步骤D04:终端判断解析交换防御数据响应得到的卡片最大处理时间是否等于签名结果数据中卡片最大处理时间,是则执行步骤D05;否则报错结束;
例如,终端判断解析交换防御数据响应0x800A48ECCEB7003200640013得到的卡片最大处理时间10毫秒是否等于签名结果数据0x5F5C8D2FB3D63F784DEF4D0D54DFA3CC852D43CA9BDC428278D8347D248FB2F75489D17D1B7D522E225EEB9E55A1C944454D9D62FF9FBE963116735A0C4FE0CE795ECCD930637F9130825D80C5BB787B599C38DCBA2A0D83925D7BFD11E2E40299AC588E6601E3FDCFE32DC2996A5EB1B222E7560E2FD5EA7B805D3C6012A3E8中卡片最大处理时间10毫秒,是则执行步骤D05;否则报错结束。
步骤D05:终端判断解析交换防御数据响应得到的卡片最小处理时间是否等于签名结果数据中卡片最小处理时间,是则执行步骤D06;否则报错结束;
例如,终端判断解析交换防御数据响应0x800A48ECCEB7003200640013得到的卡片最小处理时间5毫秒是否等于签名结果数据中卡片最小处理时间5毫秒,是则执行步骤D06;否则报错结束。
步骤D06:终端判断解析交换防御数据响应得到的卡片预期响应传输时间是否等于签名结果数据中卡片预期响应传输时间,是则执行步骤265;否则报错结束;
例如,终端判断解析交换防御数据响应得到的卡片预期响应传输时间1.9毫秒是否等于签名结果数据0x5F5C8D2FB3D63F784DEF4D0D54DFA3CC852D43CA9BDC428278D8347D248FB2F75489D17D1B7D522E225EEB9E55A1C944454D9D62FF9FBE963116735A0C4FE0CE795ECCD930637F9130825D80C5BB787B599C38DCBA2A0D83925D7BFD11E2E40299AC588E6601E3FDCFE32DC2996A5EB1B222E7560E2FD5EA7B805D3C6012A3E8中卡片预期响应传输时间1.9毫秒,是则执行步骤265;否则报错结束。
步骤263:终端执行终端风险管理操作,结束;
可选地,本实施例中,终端执行更新终端计数数据顺序和卡片执行更新卡片计数数据顺序是可以改变的;其更新方式有多种方式,现不再一一列举执行方式,只是简单列出几种执行方式:
其中具体执行方式可以为方式1:
终端执行完204之后,直接执行步骤206;
步骤206或者步骤209或者步骤210或者步骤211等步骤中,还包括:终端根据第四预置数据更新终端计数数据;也即是,终端判断终端计数数据是否小于第三预置数据之前,终端设置终端计数数据之后的任意时间,终端都可以根据第四预置数据更新终端计数数据。
其中具体执行方式可以为方式2:
终端执行完204之后,直接执行步骤206;
步骤214替换为:终端判断终端计数数据是否小于或者等于第三预置数据,是则更新终端计数数据,返回步骤206;否则执行步骤215;
相应地,步骤207替换为:卡片接收并解析交互防御数据指令得到终端随机数据;判断卡片计数数据是否大于第三预置数据,是则向终端发送报错响应,执行步骤C01;否则执行步骤208;
相应地,步骤208替换为:卡片根据第七预置数据、第八预置数据、第九预置数据、卡片计数数据和第一动态数据得到第二动态数据;根据第二动态数据、卡片最大处理时间、卡片最小处理时间和卡片预期响应传输时间组织交换防御数据响应,向终端发送交换防御数据响应;
相应地,卡片根据第七预置数据、第八预置数据、第九预置数据、卡片计数数据和第一动态数据得到第二动态数据之后,还包括:卡片根据第四预置数据更新卡片计数数据。
实施例3
本实施例提供了一种防御中继攻击的系统,如图2所示,包括所述系统包括终端30和卡片40两个执行主体;
终端30包括第一接收模块301、设置模块302、第一发送模块303、生成记录模块304、解析记录确定模块305、验证确定更新模块306、验证更新组织模块307和验签模块308;
卡片40包括第二接收模块401、设置获取模块402、第二发送模块403、确定更新组织模块404和确定检查签名模块405;
第一接收模块301,用于接收卡片40发送的选择响应;
设置模块302,用于如第一接收模块301接收到选择响应,设置终端计数数据;
第一发送模块303,用于向卡片40发送处理选项指令;
第二接收模块401,用于接收第一发送模块303发送的处理选项指令;
设置获取模块402,用于如第二接收模块401接收到处理选项指令,设置卡片计数数据;获取第一动态数据;
第二发送模块403,用于向第一接收模块301发送处理选项响应;
第一接收模块301,还用于接收第二发送模块403发送的处理选项响应;
生成记录模块304,用于生成终端随机数据;记录当前时间为第一当前时间;
第一发送模块303,还用于向卡片40发送包括生成记录模块304生成的终端随机数据的交互防御数据指令;
第二接收模块401,还用于接收第一发送模块303发送的交互防御数据指令;
确定更新组织模块404,用于确定卡片计数数据和第三预置数据是否满足第一预置条件,如确定为是则根据卡片计数数据和第一动态数据得到第二动态数据;
确定更新组织模块404,还用于更新卡片计数数据;
确定更新组织模块404,还用于根据第二动态数据和卡片数据包组织交换防御数据响应;卡片数据包包括卡片最大处理时间、卡片最小处理时间和卡片预期响应传输时间;
第二发送模块403,还用于向第一接收模块301发送交换防御数据响应;
第一接收模块301,还用于接收第二发送模块403发送的交换防御数据响应;
解析记录确定模块305,用于解析第一接收模块301接收的交换防御数据响应得到第二动态数据和卡片数据包;记录当前时间为第二当前时间;根据第一当前时间和第二当前时间确定测量处理时间;根据卡片预期响应传输时间、终端预期响应传输时间、终端预期指令传输时间和测量处理时间确定计算处理时间;
验证确定更新模块306,用于根据卡片最大处理时间、最大时间宽限期、卡片最小处理时间和最小时间宽限期得到可接受处理时间;根据可接受处理时间验证计算处理时间,如通过验证则触发验证更新组织模块307;如未通过验证则确定终端计数数据和第三预置数据是否满足第二预置条件,如确定满足第二预置条件则触发生成记录模块304;如确定不满足第二预置条件则更新终端认证结果数据,触发验证更新组织模块307;
验证确定更新模块306,还用于更新终端计数数据;
验证更新组织模块307,用于根据终端认证结果数据、第一标准数据、终端预期响应传输时间、计算处理时间和计算处理时间验证交换防御数据响应;如验证成功则更新终端认证结果数据;根据终端认证结果数据和终端随机数据组织获取密文指令;
第一发送模块303,还用于向卡片40发送获取密文指令;
第二接收模块401,还用于接收第一发送模块303发送的获取密文指令;
确定检查签名模块405,用于确定获取密文指令中终端随机数据是否等于交互防御数据指令中终端随机数据,如确定相等则根据终端认证结果数据检查终端是否已经成功验证交换防御数据响应;如检查终端已经成功验证交换防御数据响应则使用卡片私钥对终端随机数据、第二动态数据和卡片数据包进行签名得到签名结果数据;
第二发送模块403,还用于向终端30发送包括确定检查签名模块405签名得到的签名结果数据的获取密文数据响应;
第一接收模块301,还用于接收第二发送模块403发送的获取密文数据响应;
验签模块308,用于使用卡片公钥对第一接收模块301接收到的获取密文数据响应中签名结果数据进行验签,如验签成功则继续执行其他终端操作,结束;如为否则报错结束。
可选地,卡片40还包括选择指令执行模块;
相应地,第一发送模块303,还用于向卡片40发送选择指令;
相应地,第二接收模块401,还用于接收第一发送模块303发送的选择指令;
相应地,选择指令执行模块,用于根据第二接收模块401接收到的选择指令执行选择操作得到选择响应;
相应地,第二发送模块403,还用于向终端30发送选择响应;
相应地,第一接收模块301,还用于接收卡片40发送的选择响应,触发设置模块302。
可选地,设置获取模块402包括第一获取单元;第一获取单元,用于获取第一动态数据;
相应地,第一获取单元,具体用于更新第三计数数据;根据更新后的第三计数数据、第五预置数据和第六预置数据得到第一动态数据;
进一步地,第一获取单元,更具体用于获取第三计数数据,将第三计数数据加上第四预置数据更新第三计数数据;使用预置密钥加密更新后的第三计数数据和第五预置数据得到第一加密数据,使用预置密钥加密更新后的第三计数数据和第六预置数据得到第二加密数据,根据第一加密数据和第二加密数据得到第一动态数据。
可选地,第二发送模块403,还用于如确定更新组织模块404确定为否,向终端30发送报错响应;
相应地,第一接收模块301,还用于接收报错响应,报错结束。
可选地,确定更新组织模块404包括第一确定单元和第一更新单元;
相应地,验证确定更新模块306包括第二确定单元和第二更新单元;
相应地,第一确定单元,用于确定卡片计数数据和第三预置数据是否满足第一预置条件;
相应地,第一确定单元,具体用于确定卡片计数数据是否大于或者等于第三预置数据,如确定为否则触发第一更新单元;
相应地,第一更新单元,用于更新卡片计数数据;
相应地,第二确定单元,用于确定终端计数数据和第三预置数据是否满足第二预置条件;
相应地,第二确定单元,具体用于判断终端计数数据是否小于第三预置数据,如判断为是则满足第二预置条件,触发生成记录模块304;如判断为否则不满足第二预置条件,更新终端认证结果数据;
相应地,第二更新单元,用于更新终端计数数据。
可选地,确定更新组织模块404包括第三确定单元和第三更新单元;
相应地,验证确定更新模块306包括第四确定单元和第四更新单元;
相应地,第三确定单元,用于确定卡片计数数据和第三预置数据是否满足第一预置条件;
相应地,第三确定单元,具体用于确定卡片计数数据是否大于第三预置数据,如确定为否则根据卡片计数数据和第一动态数据得到第二动态数据;
相应地,第三更新单元,用于更新卡片计数数据;
相应地,第四确定单元,用于确定确定终端计数数据和第三预置数据是否满足第二预置条件;
相应地,第四确定单元,具体用于判断终端计数数据是否小于或者等于第三预置数据,如判断为是则满足第二预置条件,触发生成记录模块304;如判断为否则不满足第二预置条件,更新终端认证结果数据;
相应地,第四更新单元,用于更新终端计数数据。
可选地,确定更新组织模块404包括第二获取单元;第二获取单元,用于根据卡片计数数据和第一动态数据得到第二动态数据;
第二获取单元,具体用于根据第七预置数据、第八预置数据、第九预置数据、卡片计数数据从第一动态数据中获取第二动态数据;
进一步地,第二获取单元,更具体用于根据第七预置数据、第八预置数据和卡片计数数据确定首位字节数据,根据第九预置数据和卡片计数数据确定末位字节数据,根据首位字节数据和末位字节数据从第一动态数据中获取第二动态数据。
可选地,解析记录确定模块305包括第五确定单元;第五确定单元,用于根据第一当前时间和第二当前时间确定测量处理时间;
相应地,第五确定单元,具体用于使用第二预置算法对第一当前时间和第二当前时间进行运算得到测量处理时间。
可选地,解析记录确定模块305包括第六确定单元;第六确定单元,用于根据卡片预期响应传输时间、终端预期响应传输时间、终端预期指令传输时间和测量处理时间确定计算处理时间;
相应地,第六确定单元,具体用于判断卡片预期响应传输时间是否小于终端预期响应传输时间,是则根据测量处理时间、终端预期指令传输时间和卡片预期响应传输时间确定计算处理时间;否则根据测量处理时间、终端预期指令传输时间和终端预期响应传输时间确定计算处理时间。
可选地,验证确定更新模块306,包括得到单元和第一验证单元;
相应地,得到单元,用于根据卡片最大处理时间、最大时间宽限期、卡片最小处理时间和最小时间宽限期得到可接受处理时间;
相应地,得到单元,具体用于根据卡片最大处理时间、最大时间宽限期、卡片最小处理时间和最小时间宽限期得到可接受最大处理和可接受最小处理时间;
相应地,第一验证单元,用于根据可接受处理时间验证计算处理时间;
相应地,第一验证单元,具体用于判断计算处理时间是否小于可接受最小处理时间,如为是则未通过验证;如为否则判断计算处理时间是否大于可接受最大处理时间,如判断计算处理时间大于可接受最大处理时间,则未通过验证;否则通过验证;
进一步地,得到单元,更具体用于根据卡片最大处理时间和预置的最大时间宽限期得到可接受最大处理间;根据卡片最小处理时间和预置的最小时间宽限期得到可接受最小处理时间。
可选地,验证确定更新模块306包括第二验证单元;第二验证单元,用于根据可接受处理时间验证计算处理时间;
相应地,第二验证单元,具体用于判断计算处理时间是否满足可接受处理时间,如为是则通过验证,如为否则未通过验证。
可选地,验证更新组织模块307包括第三验证单元;第三验证单元,用于根据终端认证结果数据、第一标准数据、终端预期响应传输时间、计算处理时间和计算处理时间验证交换防御数据响应;
相应地,第三验证单元包括第一判断子单元、第二判断子单元和所述验证终端认证结果数据子单元;
相应地,第一判断子单元,用于根据卡片预期响应传输时间、终端预期响应传输时间和第一标准数据判断响应传输时间差值是否过大;
相应地,第二判断子单元,用于根据计算处理时间、卡片最小处理时间和第二标准数据判断处理时间差值是否过大;
相应地,验证终端认证结果数据子单元,用于如所述第一判断子单元和所述第二判断子单元判断均为是则验证终端认证结果数据,如验证终端认证结果数据成功则通过交换防御数据响应验证,如为否则报错结束;
进一步地,验证更新组织模块307包括第五更新单元;第五更新单元,用于更新终端认证结果数据;
进一步相应地,第五更新单元,具体用于设置终端认证结果数据中第一预置字节数据中第一预置比特数据;
进一步相应地,第三验证单元,还用于设置终端认证结果数据中第一预置字节数据中第二预置比特数据;
进一步相应地,验证终端认证结果数据子单元,更具体用于确定终端认证结果数据中第一预置字节数据中第一预置比特数据和第二预置比特数据是否都未被设置,如确定为是则交换防御数据响应验证成功。
进一步地,第一判断子单元包括第一验证子单元和第二验证子单元;
进一步相应地,第一验证子单元,用于根据卡片预期响应传输时间和终端预期响应传输时间得到第一待比较数据,判断第一待比较数据是否小于第一标准数据,如判断为是则报错结束;如判断为否则触发第二验证子单元;
进一步相应地,第二验证子单元,用于根据卡片预期响应传输时间和终端预期响应传输时间得到第二待比较数据,判断第二待比较数据是否小于第一标准数据,如判断为是则报错结束;如判断为否则根据计算处理时间和卡片最小处理时间和第二标准数据判断处理时间差值是否过大。
进一步地,第二判断子单元,具体用于使用第三预置算法对计算处理时间和卡片最小处理时间进行计算得到第三待比较数据,判断第三待比较数据是否大于第二标准数据,如判断为是则处理时间差值过大,报错结束;如判断为否则处理时间差值未过大。
可选地,如验证更新组织模块307包括设置单元;设置单元,用于更新终端认证结果数据;
相应地,设置单元,具体用于设置终端认证结果数据中第一预置字节数据中第三预置比特数据;
相应地,确定检查签名模块405包括检查单元;检查单元,用于终端认证结果数据检查终端是否已经成功验证交换防御数据响应;
相应地,检查单元,具体用于从终端认证结果数据中获取第一置字节数据,判断第一置字节数据中第三预置比特数据是否等于第十预置数据,如为是则终端30已经成功验证交换防御数据响应;如为否则终端30未成功验证交换防御数据响应。
可选地,验证更新组织模块307,还用于设置不可预期数据等于终端随机数据;根据终端认证结果数据和不可预期数据组织获取密文指令;
相应地,确定检查签名模块405,还用于确定不可预期数据是否等于终端随机数据,如为是则根据终端认证结果数据检查终端是否已经成功验证交换防御数据响应。
可选地,验签模块308,具体用于使用卡片公钥对签名结果数据进行验签,当签名结果数据验签成功时,解析签名结果数据得到终端随机数据、第二动态数据和卡片数据包;分别对终端随机数据、第二动态数据和卡片数据包进行验证,当全部验证通过时,验签成功,否则报错结束;
进一步地,验签模块308包括验签单元;验签单元,用于分别对签名明文数据中终端随机数据、第二动态数据和卡片数据包进行验证;
进一步相应地,验签单元包括第一验签子单元、第二验签子单元、第三验签子单元、第四验签子单元、第五验签子单元和第六验签子单元;
进一步相应地,第一验签子单元,用于从获取密文数据响应获取签名结果数据,使用卡片公钥对第一接收模块301接收的获取密文数据中签名结果数据进行验签,如签名结果数据验签成功则触发第二验签子单元;如签名结果数据验签失败则报错结束;
进一步相应地,第二验签子单元,用于判断生成的终端随机数据是否等于签名结果数据中终端随机数据,如为是则第三验签子单元;如为否则报错结束;
进一步相应地,第三验签子单元,用于判断解析交换防御数据响应得到的第二动态数据是否等于签名结果数据中第二动态数据,如为是则第四验签子单元;如为否则报错结束;
进一步相应地,第四验签子单元,用于判断解析交换防御数据响应得到的卡片最大处理时间是否等于签名结果数据中卡片最大处理时间,如为是则第五验签子单元;如为否则报错结束;
进一步相应地,第五验签子单元,用于判断解析交换防御数据响应得到的卡片最小处理时间是否等于签名结果数据中卡片最小处理时间,如为是则第六验签子单元;如为否则报错结束;
进一步相应地,第六验签子单元,用于判断解析交换防御数据响应得到的卡片预期响应传输时间是否等于签名结果数据中卡片预期响应传输时间,如为是则验签成功;如为否则报错结束。
可选地,卡片40还包括第一判断模块;终端30还包括第二判断模块;
第一判断模块,用于判断卡片计数数据是否等于第二预置数据,如为是则根据拒绝通信预置数据组织获取密文数据响应;如为否则触发确定检查签名模块405;
相应地,第二发送模块403,还用于向终端30发送第一判断模块组织的获取密文数据响应;
相应地,第一接收模块301,还用于接收第二发送模块发送的获取密文数据响应;
相应地,第二判断模块,用于判断第一接收模块接收的获取密文数据响应是否包括预置签名标签,如为是则触发验签模块308;如为否则报错结束。
进一步地,卡片40还包括第三判断模块、第四判断模块和第五判断模块;
进一步相应地,签名单元,用于使用卡片私钥对终端随机数据、第二动态数据和卡片数据包进行签名得到签名结果数据;
进一步相应地,如第二发送模块403用于向终端发送包括签名结果数据的获取密文数据响应,第二发送模块403具体用于向终端发送包括所述签名单元签名得到的签名结果数据的获取密文数据响应;
进一步相应地,第三判断模块,用于根据获取密文指令中终端30类型数据判断终端30是否仅支持脱机通信,如为是则触发第四判断模块;如为否则触发第五判断模块;
进一步相应地,第四判断模块,用于判断应用控制数据中第三预置字节数据中第五预置比特数据是否被设置,如为是则根据拒绝通信预置数据组织获取密文数据响应,向终端发送获取密文数据响应;如为否则执行其他风险管理操作,结束;
进一步相应地,第五判断模块,用于判断应用控制数据中第三预置字节数据中第六预置比特数据是否被设置,如为是则执行联机通信操作得到联机操作数据,根据联机操作数据组织获取密文数据响应;如为否则执行其他风险管理操作,结束;
进一步相应地,获取密文指令还包括终端30类型数据。
可选地,卡片40还包括第六判断模块;
相应地,第六判断模块,用于如检查终端已经成功验证交换防御数据响应,卡片40根据获取密文指令和第十预置数据判断是否需要执行签名操作,如为是则使用卡片私钥对终端随机数据、第二动态数据和卡片数据包进行签名得到签名结果数据;如为否则根据拒绝通信预置数据组织获取密文数据响应;
相应地,验签模块308,还用于判断获取密文数据响应是否包括预置签名标签,如为是则使用卡片公钥对第一接收模块301接收到的获取密文数据响应中签名结果数据进行验签;如为否则报错结束。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (50)
1.一种防御中继攻击的方法,其特征在于,所述方法包括以下步骤:
步骤S01:当终端接收到卡片发送的选择响应时,终端设置终端计数数据;向卡片发送处理选项指令;
步骤S02:所述卡片设置卡片计数数据;获取第一动态数据;向终端发送处理选项响应;
步骤S03:所述终端生成终端随机数据;记录当前时间为第一当前时间;向卡片发送包括终端随机数据的交互防御数据指令;
步骤S04:所述卡片确定卡片计数数据和第三预置数据是否满足第一预置条件,如确定为是则根据卡片计数数据和第一动态数据得到第二动态数据;所述根据卡片计数数据和第一动态数据得到第二动态数据之前或者之后还包括:所述卡片更新卡片计数数据;根据第二动态数据和卡片数据包组织交换防御数据响应,向终端发送交换防御数据响应;所述卡片数据包包括卡片最大处理时间、卡片最小处理时间和卡片预期响应传输时间;
步骤S05:所述终端接收并解析交换防御数据响应得到第二动态数据和卡片数据包;记录当前时间为第二当前时间;根据第一当前时间和第二当前时间确定测量处理时间;根据卡片预期响应传输时间、终端预期响应传输时间、终端预期指令传输时间和测量处理时间确定计算处理时间;根据卡片最大处理时间、最大时间宽限期、卡片最小处理时间和最小时间宽限期得到可接受处理时间;根据可接受处理时间验证计算处理时间,如通过验证则执行步骤S06;如未通过验证则确定终端计数数据和第三预置数据是否满足第二预置条件,如确定满足第二预置条件则返回步骤S03;如确定不满足第二预置条件则更新终端认证结果数据,执行步骤S06;所述确定终端计数数据和第三预置数据是否满足第二预置条件之前,或者如确定满足第二预置条件之后,还包括所述终端更新终端计数数据;
步骤S06:所述终端根据终端认证结果数据、第一标准数据、终端预期响应传输时间、计算处理时间和计算处理时间验证交换防御数据响应;如验证成功则更新终端认证结果数据;根据终端认证结果数据和终端随机数据组织获取密文指令,向卡片发送获取密文指令;
步骤S07:所述卡片确定获取密文指令中终端随机数据是否等于交互防御数据指令中终端随机数据,如确定相等则根据终端认证结果数据检查终端是否已经成功验证交换防御数据响应;如检查终端已经成功验证交换防御数据响应则使用卡片私钥对终端随机数据、第二动态数据和卡片数据包进行签名得到签名结果数据;向终端发送包括签名结果数据的获取密文数据响应;
步骤S08:所述终端使用卡片公钥对获取密文数据响应中签名结果数据进行验签,如验签成功则继续执行其他终端操作,结束;如为否则报错结束。
2.如权利要求1所述的方法,其特征在于,所述步骤S01之前,还包括:
步骤E01:终端向卡片发送选择指令;
步骤E02:所述卡片接收选择指令;根据选择指令执行选择操作得到选择响应,向终端发送选择响应;
步骤E03:所述终端接收卡片发送的选择响应,执行步骤S01。
3.如权利要求1所述的方法,其特征在于,所述步骤S02中,所述获取第一动态数据,具体为:所述卡片更新第三计数数据;根据更新后的第三计数数据、第五预置数据和第六预置数据得到第一动态数据。
4.如权利要求3所述的方法,其特征在于,所述卡片更新第三计数数据;根据更新后的第三计数数据、第五预置数据和第六预置数据得到第一动态数据,具体为:所述卡片根据获取第三计数数据,将第三计数数据加上第四预置数据更新第三计数数据;使用预置密钥加密更新后的第三计数数据和第五预置数据得到第一加密数据,使用预置密钥加密更新后的第三计数数据和第六预置数据得到第二加密数据,根据第一加密数据和第二加密数据得到第一动态数据。
5.如权利要求1所述的方法,其特征在于,所述步骤S04中,如确定为否则还包括:所述卡片向终端发送报错响应;所述终端接收报错响应,报错结束。
6.如权利要求1所述的方法,其特征在于,所述卡片确定卡片计数数据和第三预置数据是否满足第一预置条件,具体为:所述卡片确定卡片计数数据是否大于或者等于第三预置数据,如确定为否则更新卡片计数数据;根据卡片计数数据和第一动态数据得到第二动态数据;
所述确定终端计数数据和第三预置数据是否满足第二预置条件,具体为:所述终端判断终端计数数据是否小于第三预置数据,如判断为是则满足第二预置条件,返回步骤S03;如判断为否则不满足第二预置条件,更新终端认证结果数据,执行步骤S06;
所述步骤S03中,或者所述步骤S03之后且所述判断终端计数数据是否小于第三预置数据之前,还包括:所述终端更新终端计数数据。
7.如权利要求1所述的方法,其特征在于,所述卡片确定卡片计数数据和第三预置数据是否满足第一预置条件,具体为:所述卡片确定卡片计数数据是否大于第三预置数据,如确定为否则根据卡片计数数据和第一动态数据得到第二动态数据;
所述根据卡片计数数据和第一动态数据得到第二动态数据之后,还包括:所述卡片确定卡片更新卡片计数数据;
所述确定终端计数数据和第三预置数据是否满足第二预置条件,具体为:所述终端判断终端计数数据是否小于或者等于第三预置数据,如判断为是则满足第二预置条件,返回步骤S03;如判断为否则不满足第二预置条件,更新终端认证结果数据,执行步骤S06;
所述步骤S05中,如确定满足第二预置条件,所述返回步骤S03之前,还包括:所述终端更新终端计数数据。
8.如权利要求1所述的方法,其特征在于,所述步骤S04中,所述根据卡片计数数据和第一动态数据得到第二动态数据,具体为:所述卡片根据第七预置数据、第八预置数据、第九预置数据、卡片计数数据从第一动态数据中获取第二动态数据。
9.如权利要求8所述的方法,其特征在于,所述卡片根据第七预置数据、第八预置数据、第九预置数据、卡片计数数据从第一动态数据中获取第二动态数据,具体为:所述卡片根据第七预置数据、第八预置数据和卡片计数数据确定首位字节数据,根据第九预置数据和卡片计数数据确定末位字节数据,根据首位字节数据和末位字节数据从第一动态数据中获取第二动态数据。
10.如权利要求1所述的方法,其特征在于,所述步骤S05中,所述根据第一当前时间和第二当前时间确定测量处理时间,具体为:所述终端使用第二预置算法对第一当前时间和第二当前时间进行运算得到测量处理时间。
11.如权利要求1所述的方法,其特征在于,所述步骤S05中,所述根据卡片预期响应传输时间、终端预期响应传输时间、终端预期指令传输时间和测量处理时间确定计算处理时间,包括:
步骤E21:所述终端判断卡片预期响应传输时间是否小于终端预期响应传输时间,是则执行步骤E22;否则执行步骤E23;
步骤E22:所述终端根据测量处理时间、终端预期指令传输时间和卡片预期响应传输时间确定计算处理时间;
步骤E23:所述终端根据测量处理时间、终端预期指令传输时间和终端预期响应传输时间确定计算处理时间。
12.如权利要求1所述的方法,其特征在于,所述步骤S05中,所述根据卡片最大处理时间、最大时间宽限期、卡片最小处理时间和最小时间宽限期得到可接受处理时间,具体为:所述终端根据卡片最大处理时间、最大时间宽限期、卡片最小处理时间和最小时间宽限期得到可接受最大处理和可接受最小处理时间;
所述根据可接受处理时间验证计算处理时间,包括:
步骤E31:所述终端判断计算处理时间是否小于可接受最小处理时间,如为是则未通过验证;如为否则执行步骤E32;
步骤E32:所述终端判断计算处理时间是否大于可接受最大处理时间,如为是则未通过验证;如为否则通过验证,执行步骤S06。
13.如权利要求12所述的方法,其特征在于,所述终端根据卡片最大处理时间、最大时间宽限期、卡片最小处理时间和最小时间宽限期得到可接受最大处理和可接受最小处理时间,具体为:所述终端根据卡片最大处理时间和最大时间宽限期得到可接受最大处理间;根据卡片最小处理时间和最小时间宽限期得到可接受最小处理时间。
14.如权利要求1所述的方法,其特征在于,所述步骤S05中,所述根据可接受处理时间验证计算处理时间,具体为:所述终端判断计算处理时间是否满足可接受处理时间,如为是则通过验证,如为否则未通过验证。
15.如权利要求1所述的方法,其特征在于,所述步骤S06中,所述终端根据终端认证结果数据、第一标准数据、终端预期响应传输时间、计算处理时间和计算处理时间验证交换防御数据响应,包括:
步骤E41:所述终端根据卡片预期响应传输时间、终端预期响应传输时间和第一标准数据判断响应传输时间差值是否过大,根据计算处理时间、卡片最小处理时间和第二标准数据判断处理时间差值是否过大;如全部判断为是则执行步骤E42:如为否则报错结束;
步骤E42:所述终端验证终端认证结果数据,如验证终端认证结果数据成功则通过交换防御数据响应验证。
16.如权利要求15所述的方法,其特征在于,所述步骤S05中,所述更新终端认证结果数据,具体为:所述终端设置终端认证结果数据中第一预置字节数据中第一预置比特数据;
所述步骤E41中,所述报错结束替换为:所述终端设置终端认证结果数据中第一预置字节数据中第二预置比特数据;
所述步骤E42具体为:所述终端确定终端认证结果数据中第一预置字节数据中第一预置比特数据和第二预置比特数据是否都未被设置,如确定为是则交换防御数据响应验证成功。
17.如权利要求15所述的方法,其特征在于,所述步骤E41中,所述终端根据卡片预期响应传输时间、终端预期响应传输时间和第一标准数据判断响应传输时间差值是否过大,包括:
步骤E51:所述终端根据卡片预期响应传输时间和终端预期响应传输时间得到第一待比较数据,判断第一待比较数据是否小于第一标准数据,如判断为是则报错结束;如判断为否则执行步骤E52;
步骤E52:所述终端根据卡片预期响应传输时间和终端预期响应传输时间得到第二待比较数据,判断第二待比较数据是否小于第一标准数据,如判断为是则报错结束;如判断为否则根据计算处理时间和卡片最小处理时间和第二标准数据判断处理时间差值是否过大。
18.如权利要求15所述的方法,其特征在于,所述步骤E41中,所述根据计算处理时间和卡片最小处理时间和第二标准数据判断处理时间差值是否过大,具体为:所述终端使用第三预置算法对计算处理时间和卡片最小处理时间进行计算得到第三待比较数据,判断第三待比较数据是否大于第二标准数据,如判断为是则处理时间差值过大,报错结束;如判断为否则处理时间差值未过大。
19.如权利要求1所述的方法,其特征在于,所述步骤S06中,所述更新终端认证结果数据,具体为:所述终端设置终端认证结果数据中第一预置字节数据中第三预置比特数据;
所述步骤S07中,所述根据终端认证结果数据检查终端是否已经成功验证交换防御数据响应,具体为:所述卡片从终端认证结果数据中获取第一置字节数据,判断第一置字节数据中第三预置比特数据是否等于第一预置数据,如为是则终端已经成功验证交换防御数据响应;如为否则终端未成功验证交换防御数据响应,向终端发送报错响应;所述终端接收报错响应,报错结束。
20.如权利要求1所述的方法,其特征在于,所述步骤S06中,所述根据终端认证结果数据和终端随机数据组织获取密文指令,替换为:所述终端设置不可预期数据等于终端随机数据;根据终端认证结果数据和不可预期数据组织获取密文指令;
所述卡片确定获取密文指令中终端随机数据是否等于交互防御数据指令中终端随机数据,替换为:所述卡片确定不可预期数据是否等于终端随机数据,如为是则根据终端认证结果数据检查终端是否已经成功验证交换防御数据响应。
21.如权利要求1所述的方法,其特征在于,所述S08具体为:所述终端使用卡片公钥对获取密文数据响应中签名结果数据进行验签,当签名结果数据验签成功时,解析签名结果数据得到终端随机数据、第二动态数据和卡片数据包;分别对签名明文数据中终端随机数据、第二动态数据和卡片数据包进行验证,当全部验证通过时,验签成功,否则报错结束。
22.如权利要求21所述的方法,其特征在于,所述分别对签名明文数据中终端随机数据、第二动态数据和卡片数据包进行验证,包括以下步骤:
步骤E61:所述终端从获取密文数据响应获取签名结果数据,使用卡片公钥对签名结果数据进行验签,如签名结果数据验签成功则执行步骤E62;如签名结果数据验签失败则报错结束;
步骤E62:所述终端判断生成的终端随机数据是否等于签名结果数据中终端随机数据,如为是则执行步骤E63;如为否则报错结束;
步骤E63:所述终端判断解析交换防御数据响应得到的第二动态数据是否等于签名结果数据中第二动态数据,如为是则执行步骤E64;如为否则报错结束;
步骤E64:所述终端判断解析交换防御数据响应得到的卡片最大处理时间是否等于签名结果数据中卡片最大处理时间,如为是则执行步骤E65;如为否则报错结束;
步骤E65:所述终端判断解析交换防御数据响应得到的卡片最小处理时间是否等于签名结果数据中卡片最小处理时间,如为是则执行步骤E66;如为否则报错结束;
步骤E66:所述终端判断解析交换防御数据响应得到的卡片预期响应传输时间是否等于签名结果数据中卡片预期响应传输时间,如为是则验签成功;如为否则报错结束。
23.如权利要求1所述的方法,其特征在于,所述S07之前,还包括:所述卡片判断卡片计数数据是否等于第二预置数据,如为是则根据拒绝通信预置数据组织获取密文数据响应,向终端发送获取密文数据响应;如为否则执行步骤S07;
所述步骤S08之前,还包括:所述终端接收获取密文数据响应,判断获取密文数据响应是否包括预置签名标签,如为是则执行步骤S08;如为否则报错结束。
24.如权利要求23所述的方法,其特征在于,所述根据拒绝通信预置数据组织获取密文数据响应之前,还包括:
步骤E71:所述卡片根据获取密文指令中终端类型数据判断终端是否仅支持脱机通信,如为是则执行步骤E72;如为否则执行步骤E73;
步骤E72:所述卡片判断应用控制数据中第三预置字节数据中第五预置比特数据是否被设置,如为是则根据拒绝通信预置数据组织获取密文数据响应,向终端发送获取密文数据响应;如为否则执行其他风险管理操作,结束;
步骤E73:所述卡片判断应用控制数据中第三预置字节数据中第六预置比特数据是否被设置,如为是则执行联机通信操作得到联机操作数据,根据联机操作数据组织获取密文数据响应;如为否则执行其他风险管理操作,结束;
所述获取密文指令还包括终端类型数据。
25.如权利要求1所述的方法,其特征在于,所述S07中,还包括:如检查终端已经成功验证交换防御数据响应,所述卡片根据获取密文指令和第十预置数据判断是否需要执行签名操作,如为是则使用卡片私钥对终端随机数据、第二动态数据和卡片数据包进行签名得到签名结果数据;如为否则根据拒绝通信预置数据组织获取密文数据响应,向终端发送获取密文数据响应;
所述步骤S08之前,还包括:所述终端接收获取密文数据响应,判断获取密文数据响应是否包括预置签名标签,如为是则执行步骤S08;如为否则报错结束。
26.一种防御中继攻击的系统,其特征在于,所述系统包括终端和卡片:
所述终端包括第一接收模块、设置模块、第一发送模块、生成记录模块、解析记录确定模块、验证确定更新模块、验证更新组织模块和验签模块;
所述卡片包括第二接收模块、设置获取模块、第二发送模块、确定更新组织模块和确定检查签名模块;
所述第一接收模块,用于接收卡片发送的选择响应;
所述设置模块,用于如所述第一接收模块接收到选择响应,设置终端计数数据;
所述第一发送模块,用于向卡片发送处理选项指令;
所述第二接收模块,用于接收所述第一发送模块发送的处理选项指令;
所述设置获取模块,用于如所述第二接收模块接收到处理选项指令,设置卡片计数数据;获取第一动态数据;
所述第二发送模块,用于向所述第一接收模块发送处理选项响应;
所述第一接收模块,还用于接收所述第二发送模块发送的处理选项响应;
所述生成记录模块,用于生成终端随机数据;记录当前时间为第一当前时间;
所述第一发送模块,还用于向卡片发送包括所述生成记录模块生成的终端随机数据的交互防御数据指令;
所述第二接收模块,还用于接收所述第一发送模块发送的交互防御数据指令;
所述确定更新组织模块,用于确定卡片计数数据和第三预置数据是否满足第一预置条件,如确定为是则根据卡片计数数据和第一动态数据得到第二动态数据;
所述确定更新组织模块,还用于更新卡片计数数据;
所述确定更新组织模块,还用于根据第二动态数据和卡片数据包组织交换防御数据响应;所述卡片数据包包括卡片最大处理时间、卡片最小处理时间和卡片预期响应传输时间;
所述第二发送模块,还用于向所述第一接收模块发送交换防御数据响应;
所述第一接收模块,还用于接收所述第二发送模块发送的交换防御数据响应;
所述解析记录确定模块,用于解析所述第一接收模块接收的交换防御数据响应得到第二动态数据和卡片数据包;记录当前时间为第二当前时间;根据第一当前时间和第二当前时间确定测量处理时间;根据卡片预期响应传输时间、终端预期响应传输时间、终端预期指令传输时间和测量处理时间确定计算处理时间;
所述验证确定更新模块,用于根据卡片最大处理时间、最大时间宽限期、卡片最小处理时间和最小时间宽限期得到可接受处理时间;根据可接受处理时间验证计算处理时间,如通过验证则触发所述验证更新组织模块;如未通过验证则确定终端计数数据和第三预置数据是否满足第二预置条件,如确定满足第二预置条件则触发所述生成记录模块;如确定不满足第二预置条件则更新终端认证结果数据,触发所述验证更新组织模块;
所述验证确定更新模块,还用于更新终端计数数据;
所述验证更新组织模块,用于根据终端认证结果数据、第一标准数据、终端预期响应传输时间、计算处理时间和计算处理时间验证交换防御数据响应;如验证成功则更新终端认证结果数据;根据终端认证结果数据和终端随机数据组织获取密文指令;
所述第一发送模块,还用于向卡片发送获取密文指令;
所述第二接收模块,还用于接收所述第一发送模块发送的获取密文指令;
所述确定检查签名模块,用于确定获取密文指令中终端随机数据是否等于交互防御数据指令中终端随机数据,如确定相等则根据终端认证结果数据检查终端是否已经成功验证交换防御数据响应;如检查终端已经成功验证交换防御数据响应则使用卡片私钥对终端随机数据、第二动态数据和卡片数据包进行签名得到签名结果数据;
所述第二发送模块,还用于向终端发送包括所述确定检查签名模块签名得到的签名结果数据的获取密文数据响应;
所述第一接收模块,还用于接收所述第二发送模块发送的获取密文数据响应;
所述验签模块,用于使用卡片公钥对所述第一接收模块接收到的获取密文数据响应中签名结果数据进行验签,如验签成功则继续执行其他终端操作,结束;如为否则报错结束。
27.如权利要求26所述的系统,其特征在于,所述卡片还包括选择指令执行模块;
所述第一发送模块,还用于向卡片发送选择指令;
所述第二接收模块,还用于接收所述第一发送模块发送的选择指令;
所述选择指令执行模块,用于根据所述第二接收模块接收的选择指令执行选择操作得到选择响应;
所述第二发送模块,还用于向终端发送选择响应;
所述第一接收模块,还用于接收卡片发送的选择响应,触发所述设置模块。
28.如权利要求26所述的系统,其特征在于,所述设置获取模块包括第一获取单元;所述第一获取单元,用于获取第一动态数据;
所述第一获取单元,具体用于更新第三计数数据;根据更新后的第三计数数据、第五预置数据和第六预置数据得到第一动态数据。
29.如权利要求28所述的系统,其特征在于,所述第一获取单元,更具体用于获取第三计数数据,将第三计数数据加上第四预置数据更新第三计数数据;使用预置密钥加密更新后的第三计数数据和第五预置数据得到第一加密数据,使用预置密钥加密更新后的第三计数数据和第六预置数据得到第二加密数据,根据第一加密数据和第二加密数据得到第一动态数据。
30.如权利要求26所述的系统,其特征在于,所述第二发送模块,还用于如所述确定更新组织模块确定为否,向终端发送报错响应;
所述第一接收模块,还用于接收报错响应,报错结束。
31.如权利要求26所述的系统,其特征在于,所述确定更新组织模块包括第一确定单元和第一更新单元;
所述验证确定更新模块包括第二确定单元和第二更新单元;
所述第一确定单元,用于确定卡片计数数据和第三预置数据是否满足第一预置条件;
所述第一确定单元,具体用于确定卡片计数数据是否大于或者等于第三预置数据,如确定为否则触发第一更新单元;
所述第一更新单元,用于更新卡片计数数据;
所述第二确定单元,用于确定终端计数数据和第三预置数据是否满足第二预置条件;
所述第二确定单元,具体用于判断终端计数数据是否小于第三预置数据,如判断为是则满足第二预置条件,触发所述生成记录模块;如判断为否则不满足第二预置条件,更新终端认证结果数据;
所述第二更新单元,用于更新终端计数数据。
32.如权利要求26所述的系统,其特征在于,所述确定更新组织模块包括第三确定单元和第三更新单元;
所述验证确定更新模块包括第四确定单元和第四更新单元;
所述第三确定单元,用于确定卡片计数数据和第三预置数据是否满足第一预置条件;
所述第三确定单元,具体用于确定卡片计数数据是否大于第三预置数据,如确定为否则根据卡片计数数据和第一动态数据得到第二动态数据;
所述第三更新单元,用于更新卡片计数数据;
所述第四确定单元,用于确定确定终端计数数据和第三预置数据是否满足第二预置条件;
所述第四确定单元,具体用于判断终端计数数据是否小于或者等于第三预置数据,如判断为是则满足第二预置条件,触发所述生成记录模块;如判断为否则不满足第二预置条件,更新终端认证结果数据;
所述第四更新单元,用于更新终端计数数据。
33.如权利要求26所述的系统,其特征在于,所述确定更新组织模块包括第二获取单元;所述第二获取单元,用于根据卡片计数数据和第一动态数据得到第二动态数据;
所述第二获取单元,具体用于根据第七预置数据、第八预置数据、第九预置数据、卡片计数数据从第一动态数据中获取第二动态数据。
34.如权利要求33所述的系统,其特征在于,所述第二获取单元,更具体用于根据第七预置数据、第八预置数据和卡片计数数据确定首位字节数据,根据第九预置数据和卡片计数数据确定末位字节数据,根据首位字节数据和末位字节数据从第一动态数据中获取第二动态数据。
35.如权利要求26所述的系统,其特征在于,所述解析记录确定模块包括第五确定单元;所述第五确定单元,用于根据第一当前时间和第二当前时间确定测量处理时间;
所述第五确定单元,具体用于使用第二预置算法对第一当前时间和第二当前时间进行运算得到测量处理时间。
36.如权利要求26所述的系统,其特征在于,所述解析记录确定模块包括第六确定单元;所述第六确定单元,用于根据卡片预期响应传输时间、终端预期响应传输时间、终端预期指令传输时间和测量处理时间确定计算处理时间;
所述第六确定单元,具体用于判断卡片预期响应传输时间是否小于终端预期响应传输时间,是则根据测量处理时间、终端预期指令传输时间和卡片预期响应传输时间确定计算处理时间;否则根据测量处理时间、终端预期指令传输时间和终端预期响应传输时间确定计算处理时间。
37.如权利要求26所述的系统,其特征在于,所述验证确定更新模块,包括得到单元和第一验证单元;
所述得到单元,用于根据卡片最大处理时间、最大时间宽限期、卡片最小处理时间和最小时间宽限期得到可接受处理时间;
所述得到单元,具体用于根据卡片最大处理时间、最大时间宽限期、卡片最小处理时间和最小时间宽限期得到可接受最大处理和可接受最小处理时间;
所述第一验证单元,用于根据可接受处理时间验证计算处理时间;
所述第一验证单元,具体用于判断计算处理时间是否小于可接受最小处理时间,如为是则未通过验证;如为否则判断计算处理时间是否大于可接受最大处理时间,如判断计算处理时间大于可接受最大处理时间,则未通过验证,否则通过验证。
38.如权利要求37所述的系统,其特征在于,所述得到单元,更具体用于根据卡片最大处理时间和最大时间宽限期得到可接受最大处理间;根据卡片最小处理时间和最小时间宽限期得到可接受最小处理时间。
39.如权利要求26所述的系统,其特征在于,所述验证确定更新模块包括第二验证单元;所述第二验证单元,用于根据可接受处理时间验证计算处理时间;
所述第二验证单元,具体用于判断计算处理时间是否满足可接受处理时间,如为是则通过验证,如为否则未通过验证。
40.如权利要求26所述的系统,其特征在于,所述验证更新组织模块包括第三验证单元;所述第三验证单元,用于根据终端认证结果数据、第一标准数据、终端预期响应传输时间、计算处理时间和计算处理时间验证交换防御数据响应;所述第三验证单元包括第一判断子单元、第二判断子单元和验证终端认证结果数据子单元;
所述第一判断子单元,用于根据卡片预期响应传输时间、终端预期响应传输时间和第一标准数据判断响应传输时间差值是否过大;
所述第二判断子单元,用于根据计算处理时间、卡片最小处理时间和第二标准数据判断处理时间差值是否过大;
所述验证终端认证结果数据子单元,用于如所述第一判断子单元和所述第二判断子单元判断均为是则验证终端认证结果数据,如验证终端认证结果数据成功则通过交换防御数据响应验证,如为否则报错结束。
41.如权利要求40所述的系统,其特征在于,所述验证更新组织模块包括第五更新单元;所述第五更新单元,用于更新终端认证结果数据;
所述第五更新单元,具体用于设置终端认证结果数据中第一预置字节数据中第一预置比特数据;
所述第三验证单元,还用于设置终端认证结果数据中第一预置字节数据中第二预置比特数据;
所述验证终端认证结果数据子单元,更具体用于确定终端认证结果数据中第一预置字节数据中第一预置比特数据和第二预置比特数据是否都未被设置,如确定为是则交换防御数据响应验证成功。
42.如权利要求40所述的系统,其特征在于,所述第一判断子单元包括第一验证子单元和第二验证子单元;
所述第一验证子单元,用于根据卡片预期响应传输时间和终端预期响应传输时间得到第一待比较数据,判断第一待比较数据是否小于第一标准数据,如判断为是则报错结束;如判断为否则触发所述第二验证子单元;
所述第二验证子单元,用于根据卡片预期响应传输时间和终端预期响应传输时间得到第二待比较数据,判断第二待比较数据是否小于第一标准数据,如判断为是则报错结束;如判断为否则根据计算处理时间和卡片最小处理时间和第二标准数据判断处理时间差值是否过大。
43.如权利要求40所述的系统,其特征在于,所述第二判断子单元,具体用于使用第三预置算法对计算处理时间和卡片最小处理时间进行计算得到第三待比较数据,判断第三待比较数据是否大于第二标准数据,如判断为是则处理时间差值过大,报错结束;如判断为否则处理时间差值未过大。
44.如权利要求26所述的系统,其特征在于,如所述验证更新组织模块包括设置单元;所述设置单元,用于更新终端认证结果数据;
所述设置单元,具体用于设置终端认证结果数据中第一预置字节数据中第三预置比特数据;
所述确定检查签名模块包括检查单元;所述检查单元,用于终端认证结果数据检查终端是否已经成功验证交换防御数据响应;
所述检查单元,具体用于从终端认证结果数据中获取第一置字节数据,判断第一置字节数据中第三预置比特数据是否等于第一预置数据,如为是则终端已经成功验证交换防御数据响应;如为否则终端未成功验证交换防御数据响应。
45.如权利要求26所述的系统,其特征在于,所述验证更新组织模块,还用于设置不可预期数据等于终端随机数据;根据终端认证结果数据和不可预期数据组织获取密文指令;
所述确定检查签名模块,还用于确定不可预期数据是否等于终端随机数据,如为是则根据终端认证结果数据检查终端是否已经成功验证交换防御数据响应。
46.如权利要求26所述的系统,其特征在于,所述验签模块,具体用于使用卡片公钥对所述第一接收模块接收的获取密文数据中签名结果数据进行验签,当签名结果数据验签成功时,解析签名结果数据得到终端随机数据、第二动态数据和卡片数据包;分别对终端随机数据、第二动态数据和卡片数据包进行验证,当全部验证通过时,验签成功,否则报错结束。
47.如权利要求46所述的系统,其特征在于,所述验签模块包括验签单元;所述验签单元,用于分别对终端随机数据、第二动态数据和卡片数据包进行验证;
所述验签单元包括第一验签子单元、第二验签子单元、第三验签子单元、第四验签子单元、第五验签子单元和第六验签子单元;
所述第一验签子单元,用于从获取密文数据响应获取签名结果数据,使用卡片公钥对签名结果数据进行验签,如签名结果数据验签成功则触发所述第二验签子单元;如签名结果数据验签失败则报错结束;
所述第二验签子单元,用于判断生成的终端随机数据是否等于签名结果数据中终端随机数据,如为是则触发所述第三验签子单元;如为否则报错结束;
所述第三验签子单元,用于判断解析交换防御数据响应得到的第二动态数据是否等于签名结果数据中第二动态数据,如为是则触发所述第四验签子单元;如为否则报错结束;
所述第四验签子单元,用于判断解析交换防御数据响应得到的卡片最大处理时间是否等于签名结果数据中卡片最大处理时间,如为是则触发所述第五验签子单元;如为否则报错结束;
所述第五验签子单元,用于判断解析交换防御数据响应得到的卡片最小处理时间是否等于签名结果数据中卡片最小处理时间,如为是则触发所述第六验签子单元;如为否则报错结束;
所述第六验签子单元,用于判断解析交换防御数据响应得到的卡片预期响应传输时间是否等于签名结果数据中卡片预期响应传输时间,如为是则验签成功;如为否则报错结束。
48.如权利要求26所述的系统,其特征在于,所述卡片还包括第一判断模块;所述终端还包括第二判断模块;
所述第一判断模块,用于判断卡片计数数据是否等于第二预置数据,如为是则根据拒绝通信预置数据组织获取密文数据响应;如为否则触发所述确定检查签名模块;
所述第二发送模块,还用于向终端发送所述第一判断模块组织的获取密文数据响应;
所述第一接收模块,还用于接收所述第二发送模块发送的获取密文数据响应;
所述第二判断模块,用于判断所述第一接收模块接收的获取密文数据响应是否包括预置签名标签,如为是则触发所述验签模块;如为否则报错结束。
49.如权利要求48所述的系统,其特征在于,所述卡片还包括第三判断模块、第四判断模块和第五判断模块;所述确定检查签名模块包括签名单元;
所述签名单元,用于使用卡片私钥对终端随机数据、第二动态数据和卡片数据包进行签名得到签名结果数据;
如所述第二发送模块用于向终端发送包括签名结果数据的获取密文数据响应,所述第二发送模块具体用于向终端发送包括所述签名单元签名得到的签名结果数据的获取密文数据响应;
所述第三判断模块,用于根据获取密文指令中终端类型数据判断终端是否仅支持脱机通信,如为是则触发所述第四判断模块;如为否则触发所述第五判断模块;
所述第四判断模块,用于判断应用控制数据中第三预置字节数据中第五预置比特数据是否被设置,如为是则根据拒绝通信预置数据组织获取密文数据响应,向终端发送获取密文数据响应;如为否则触发执行其他风险管理操作,结束;
所述第五判断模块,用于判断应用控制数据中第三预置字节数据中第六预置比特数据是否被设置,如为是则执行联机通信操作得到联机操作数据,根据联机操作数据组织获取密文数据响应;如为否则执行其他风险管理操作,结束;
所述获取密文指令还包括终端类型数据。
50.如权利要求26所述的系统,其特征在于,所述卡片还包括第六判断模块;
所述第六判断模块,用于如检查终端已经成功验证交换防御数据响应,根据获取密文指令和第十预置数据判断是否需要执行签名操作,如为是则使用卡片私钥对终端随机数据、第二动态数据和卡片数据包进行签名得到签名结果数据;如为否则根据拒绝通信预置数据组织获取密文数据响应;
所述验签模块,还用于判断获取密文数据响应是否包括预置签名标签,如为是则使用卡片公钥对所述第一接收模块接收到的获取密文数据响应中签名结果数据进行验签;如为否则报错结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010715003.9A CN111737772B (zh) | 2020-07-23 | 2020-07-23 | 一种防御中继攻击的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010715003.9A CN111737772B (zh) | 2020-07-23 | 2020-07-23 | 一种防御中继攻击的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111737772A true CN111737772A (zh) | 2020-10-02 |
CN111737772B CN111737772B (zh) | 2020-11-24 |
Family
ID=72657343
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010715003.9A Active CN111737772B (zh) | 2020-07-23 | 2020-07-23 | 一种防御中继攻击的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111737772B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016080971A1 (en) * | 2014-11-18 | 2016-05-26 | Empire Technology Development Llc | Relay attack defense support system |
CN110447213A (zh) * | 2017-03-15 | 2019-11-12 | 维萨国际服务协会 | 用于中继攻击检测的方法和系统 |
CN111386688A (zh) * | 2017-11-28 | 2020-07-07 | 维萨国际服务协会 | 用于防范中继攻击的系统和方法 |
-
2020
- 2020-07-23 CN CN202010715003.9A patent/CN111737772B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016080971A1 (en) * | 2014-11-18 | 2016-05-26 | Empire Technology Development Llc | Relay attack defense support system |
CN110447213A (zh) * | 2017-03-15 | 2019-11-12 | 维萨国际服务协会 | 用于中继攻击检测的方法和系统 |
CN111386688A (zh) * | 2017-11-28 | 2020-07-07 | 维萨国际服务协会 | 用于防范中继攻击的系统和方法 |
Non-Patent Citations (1)
Title |
---|
董超 等: "基于安全态势感知在网络攻击防御中的应用", 《网络安全技术与应用》 * |
Also Published As
Publication number | Publication date |
---|---|
CN111737772B (zh) | 2020-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105119939B (zh) | 无线网络的接入方法与装置、提供方法与装置以及系统 | |
CN110298421B (zh) | 一种二维码的在线生成、离线生成和验证方法及装置 | |
CN105553932A (zh) | 智能家电设备的远程控制安全绑定方法、装置和系统 | |
CN100488280C (zh) | 一种鉴权方法及相应的信息传递方法 | |
CN102594555B (zh) | 数据的安全保护方法、网络侧实体和通信终端 | |
CN101969638B (zh) | 一种移动通信中对imsi进行保护的方法 | |
CN109345245B (zh) | 基于区块链的短信验证方法、设备、网络及存储介质 | |
CN104753674B (zh) | 一种应用身份的验证方法和设备 | |
US11159940B2 (en) | Method for mutual authentication between user equipment and a communication network | |
US20150350176A1 (en) | Vehicle network authentication system, and vehicle network authentication method | |
CN105516103A (zh) | 绑定智能家电设备的方法、装置和系统 | |
CN102056077B (zh) | 一种通过密钥进行智能卡应用的方法和装置 | |
CN101378582A (zh) | 用户识别模块、鉴权中心、鉴权方法及系统 | |
CN109348479A (zh) | 电力集抄系统的数据通信方法、装置、设备及系统 | |
CN108366176B (zh) | 一种终端应用的计费方法、装置及系统 | |
CN109151823B (zh) | eSIM卡鉴权认证的方法及系统 | |
CN103905194A (zh) | 身份溯源认证方法及系统 | |
CN104580553A (zh) | 网络地址转换设备的识别方法和装置 | |
CN104185178A (zh) | 一种对移动终端鉴权的方法及装置 | |
CN111065090A (zh) | 一种建立网络连接的方法及无线路由设备 | |
CN105075182A (zh) | 用于通过提供安全性信息来允许合法拦截的方法 | |
CN114466076A (zh) | 普惠金融业务场景下应用的api网关架构及使用方法 | |
US6957061B1 (en) | User authentication in a mobile communications network | |
CN111737772B (zh) | 一种防御中继攻击的方法及系统 | |
WO2018076291A1 (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 |