Card Brand Mixup Attack(对银行卡的攻击)

Card Brand Mixup Attack

  • 感慨(可略过)
  • 概括
  • 细说
    • 第一部分:Introduction
    • 第二部分:Background
    • 第三部分:通过卡品牌混合绕过 PIN
    • 第四部分:对策
    • **第五部分:Conclusions**

感慨(可略过)

原本以为自己只有快到研究生的时候,才会这么读全是英文的文字,但是没想到老师让我提前了这么多,,不能说看懂了吧,只能一点一点写,别再读着读着忘了哈哈哈

概括

我搜集了一部分资料,因为我光看英文的理解不了 发现,这是一套论文的下半部分,上半部分应该是另一篇论文,跟这个论文是同一个作者,在上一篇文章中,讲述了研究人员构造了一个很巧妙的relay attack,把contactless payment和标准的支付连接起来,但是在中间过程进行了一些交易数据的篡改。也就是说,先借用无感支付来生成一些可信数据,然后把这些数据用在一个恶意的支付过程中就不需要输入PIN码而完成支付了。但是上一篇大多针对的visa卡进行的攻击和实验,因为visa卡要比万事达卡多了一层防御,也就是Visa 协议中的缺陷是缺乏对 CTQ (卡交易限定符)数据对象的身份验证。这种攻击不适用于万事达卡协议,因为与 Visa 协议相比,该卡(缺乏)对消费者设备上持卡人验证的支持受到加密保护,不会被修改。,也就是然后这一篇文章的来源吧可以说是。这一篇就是进一步针对MasterCard开展了攻击。此前针对VISA的攻击里面,攻击者完全可以绕过PIN码,而针对MasterCard的攻击就是一个非常典型的数学家思维模式——先去欺骗交易参与者以为这张卡是一张VISA卡而不是一张MasterCard,然后再利用前一篇论文的方法来绕过MasterCard的PIN码验证

细说

第一部分:Introduction

主要是介绍了一下国外的三大银行卡公司EMV。EMV三个字母分别代表Europay、MasterCard与Visa,是制定该标准最初的三家公司。目前标准由 EMVCo 机构管理,EMVCo最初由EMV三大组织于1999年2月共同成立,目前由Visa、Mastercard、JCB、美国运通、中国银联和Discover共同负责。主要任务系发展制定与主管维护EMV支付芯片卡的规格、标准与认证,监督并确保该标准于全球的安全互通性与其付款环境的可用性。然后大体得介绍了一下用户进行交易时,在用户看不到得地方会发生什么事情,大体流程如下。
Card Brand Mixup Attack(对银行卡的攻击)_第1张图片
涉及四方:(1)支付终端; (2) 商户收单行,即代表商户处理卡支付的银行或金融机构; (3) 连接收单机构和发卡机构的支付网络; (4) 发行者本身。有多种支付网络,例如 Visa 或 Mastercard 网络,收单行选择授权请求发送到的机制称为路由。通常,路由基于支付卡的品牌。例如,如果卡是 Visa 品牌的,则授权请求将路由到 Visa 支付网络。
接着介绍了一下支付终端如何确定卡的品牌,如何对文章的大体内容进行了一个概况

第二部分:Background

这里分为两部分,一个就是visa的中继攻击和pin绕过

visa的中继攻击就是在非接触支付时,近场通信 (非接触式支付使用的通信技术)它允许任何合适的支持 NFC 的设备与非接触式卡进行通信并进行欺诈交易。虽然 NFC 信号的范围通常只有几厘米,但它可以通过中继攻击扩展到更大的范围。中继攻击者使用两个无线连接的移动设备,使受害者的卡与远程支付终端进行交易。

Card Brand Mixup Attack(对银行卡的攻击)_第2张图片
然后简单介绍了一下在技术层面PIN绕过的实现原理,就是在数额较大的时候,会需要PIN进行验证,但是小额的时候可以免密支付,这就造成,攻击者将卡交易限定符 (CTQ,Card Transaction Qualififiers) 设置为值 0x0280,然后就相当于告诉终端不需要PIN验证,在持卡人消费的设备上已经进行验证了从而实现PIN绕过

第二个就是:EMV 非接触式协议
(1)应用选择
使用六个 EMV 非接触式协议之一执行交易。每笔交易都从应用程序选择过程开始,其中终端发出 SELECT 命令,卡为支持的应用程序(也称为内核或协议)提交应用程序标识符 (AID,Application Identififier)。根据收到的 AID,终端激活交易的内核,它是以下之一:

• 用于万事达卡 AID 的内核 2,

• 用于签证援助的内核 3,

• 用于美国运通 AID 的内核 4,

• 用于 JCB AID 的内核 5,

• 用于发现 AID 的内核 6,

• 银联AID 内核7。

与本文工作最相关的内核是万事达卡,工作原理如图

Card Brand Mixup Attack(对银行卡的攻击)_第3张图片

(2)离线数据认证
在内核被激活并通过第二个 SELECT 命令向卡宣布后,卡请求处理数据对象列表 (PDOL,Processing Data Object List),它指示卡为协议所需的一些特定于交易的数据对象。这些数据对象包括但不限于交易金额、终端的国家代码和终端生成的随机数。

使用 GET PROCESSING OPTIONS 命令,终端向卡提供请求的 PDOL 数据。后者使用应用程序交换配置文件 (AIP,Application Interchange Profifile) 和应用程序文件定位器 (AFL,Application File Locator) 进行响应。 AIP 将卡的功能告知终端,而 AFL 是终端用于使用 READ RECORD 命令请求卡的静态数据(也称为记录)的数据对象。

此时,终端对卡进行密码验证。此过程称为离线数据身份验证 (ODA,Offlfline Data Authentication),并使用以下三种方法之一:

1.静态数据认证 (SDA,Static Data Authentication)

2.动态数据认证(DDA,Dynamic Data Authentication)

3.组合动态数据认证(CDA,Combined Dynamic Data Authentication)

(3)持卡人验证
持卡人验证方法 (CVM) 如下:

1.在线PIN:终端将在终端键盘上输入的密码加密后发送给发卡机构进行验证。

2.消费设备CVM:持卡人验证在消费设备上进行。此方法主要用于 Google Pay 和 Apple Pay 等移动支付应用程序,通过指纹或面部识别等生物识别技术验证持卡人。

3.纸质签名:持卡人(用笔)在购买收据上签名,收银员对照银行卡背面的物理签名进行核对。

如果适用,通常当金额高于 CVM 要求的限额时,终端通过选择上述三种方法中的一种(或两种)来验证持卡人。

(4)交易授权
交易授权是通过让卡计算和传输应用密码 (AC,Application Cryptogram) 来实现的。这是一个基于 MAC 的交易加密证明,通过交易细节、AIP 和应用交易计数器(ATC,在每次交易时递增)计算得出。

第三部分:通过卡品牌混合绕过 PIN

威胁场景

1.攻击者可以访问受害者的卡。

2.攻击者在卡和终端之间的无线信道上具有主动(所谓的Dolev-Yao)攻击者的能力。也就是说,攻击者可以在该通道上读取、阻止和注入消息。

该模型在实践中是现实的。攻击者可以访问丢失或被盗的受害者卡。实际上,在实践中,仅在物理上靠近受害者的卡(几厘米内)就足够了。此外,使用支持 NFC 的标准智能手机可以对无线信道进行主动中间人攻击。

攻击方法
建立在中继攻击架构之上的中间人攻击:

1.终端发送选择命令

2.卡片回应,我是一个万事达卡

3.攻击者用我是一个VISA代替响应

4.事务处理将在两个同时进行的会话中继续进行:
Terminal & Attacker running the Visa protocol,攻击者运行Visa协议
Attacker & Card running the Mastercard protocol

5.Attacker applies PIN bypass on Visa

Card Brand Mixup Attack(对银行卡的攻击)_第4张图片
如果往细致的地方讲的话,就是

对于支付终端执行万事达卡内核的交易,无法绕过 PIN 验证。根据该内核的规范,AIP(特别是字节 1 的第 2 位)是唯一指示卡支持设备上持卡人验证的数据对象。因此,修改 AIP 将导致交易被拒绝,因为它是使用卡的 PK 证书、应用程序密码 (AC) 和签名动态身份验证数据 (SDAD) 进行身份验证的。已经用几张卡验证了这一点。

与 AIP 不同,卡的应用标识符 (AID) 不受保护。事实上,AID 仅在 SELECT 命令交换期间使用。这些交换完成后,终端根据从卡上接收到的AID激活相应的内核。例如,如果首选 AID(或第一个,取决于终端的选择方法)是 AIDVisa = 0xA0000000031010,则终端激活 Visa 内核。如果 AID 改为 AIDMastercard = 0xA0000000041010,则终端激活 Mastercard 内核。由于缺乏对 AID 的认证,攻击者可以恶意替换它们,从而在终端上激活所需的内核。这是攻击利用的基本安全缺陷。上图显示了攻击的概述,下面是分步说明:

1.激活Visa内核:终端首先激活Visa内核。为此,攻击者应用了刚才描述的技巧,即用 AIDVisa 替换卡的合法 AID。

2.请求处理选项:在协商 AID 后,攻击者从卡接收处理数据对象列表 (PDOL) 的请求(即标签和长度)。攻击者将此请求转发到终端,并添加对终端交易限定符 (TTQ,Terminal Transaction Qualififiers) 和 Visa 内核指定的所有其他处理数据对象的请求。攻击者的请求中还包括万事达内核指定的First Card Risk Management Data Object List (CDOL1)所引用的数据对象,通常是终端类型(TT,Terminal Type)和持卡人验证方法结果(CVMR,Cardholder Verifification Method Results)。

3.运行万事达卡会话:一旦攻击者从终端接收到 GET PROCESSING OPTIONS,攻击者就会运行与卡的万事达卡会话。该步骤不涉及终端。子步骤如下:

​ (a) 攻击者构建并向卡发送 GET PROCESSING OPTIONS 命令以及卡请求的 PDOL 数据,该数据从终端的命令有效载荷中填充。该卡使用应用程序交换配置文件 (AIP) 和应用程序文件定位器 (AFL) 响应攻击者的命令。

​ (b) 攻击者使用收到的 AFL 继续读取卡的记录。收集的相关记录是 PAN、卡的到期日期、发卡行国家代码、应用程序使用控制以及 CDOL1 标签和长度。

​ © 攻击者构建并向卡发送GENERATE AC 命令,其载荷是CDOL1 数据,其中填充了从终端的GET PROCESSING OPTIONS 命令的载荷中解析出的PDOL 数据。 CDOL1 通常是 PDOL 的超集。如果卡支持 CDA(即 AIP 字节 1 的第 1 位已设置),则该命令应请求 CDA。此外,必须分别清除和设置命令参考控制参数(即字节 3)的第 7 位和第 8 位。这告诉银行卡正在请求 ARQC。

​ (d) 根据卡对 GENERATE AC 命令的响应,攻击者收集 CID、ATC、IAD 以及 AC 或 SDAD,具体取决于是否请求了 CDA。如果发送 SDAD,则攻击者必须使用卡的公钥 (PK) 提取 AC。使用收到的银行卡记录,攻击者使用以下步骤检索银行卡的 PK:

​ i.从 CA 的索引中检索 CA 的 PK,

​ ii.使用 CA 的 PK 从颁发者的 PK 证书中检索颁发者的 PK,

​ iii.使用发行人的 PK 从卡的 PK 证书中检索卡的 PK。

4.PIN绕过:此时对Visa 进行PIN 绕过攻击。也就是说,攻击者注入一个值为 0x0280 的 CTQ 数据对象,它指示终端不需要在线 PIN 验证并且执行了消费设备 CVM。攻击者与 CTQ 一起提供 AIP、值为 0x18010100 的人工 AFL、AC、IAD 以及 Visa 内核指定的所有其他数据对象。

5.传输记录:响应终端的 READ RECORD 命令,由于人工 AFL 为 0x00B2011C00,攻击者回复 PAN、到期日期、应用程序使用控制 (AUC,Application Usage Control) 和发行国。

下面是用图片表示
Card Brand Mixup Attack(对银行卡的攻击)_第5张图片

第四部分:对策

Card Brand Mixup Attack(对银行卡的攻击)_第6张图片

A验证防御对策
对 Visa 的 PIN 绕过攻击提出了两个修复程序。这些修复是:

1.终端必须始终设置终端交易限定符 (TTQ) 字节 1 的第 1 位。

2.终端必须始终验证签名动态认证数据 (SDAD)。

上述修复确保使用 Visa 内核处理的高价值交易使用 Visa 的安全配置(在线授权中的 DDA),其中要求卡提供 SDAD,终端对其进行验证。从结果(上表,第 4 行)中可以看出,已经验证了这种配置以及上面列出的两个修复程序,可以防止将万事达卡变成 Visa 卡。由于卡签名以生成 SDAD 的数据的特定于内核格式,因此修复工作有效。
换句话说,对于需要在线授权的交易,万事达卡生成的 SDAD 不会通过运行 Visa 内核的终端的验证。此外,提出了以下新颖的 EMV 范围对策,内核可以在内部实施这些对策,以保证安全的在线授权交易,而不必依赖 Visa 特定的对策:

1.所有交易必须让卡生成SDAD并由终端验证。

1.选定的 AID 必须是 SDAD 输入的一部分。

第一个对策概括了在原文前面列出的两个修复方法。第二个对策正是针对在本文中描述的银行卡品牌混淆攻击。使用扩展模型为这些对策制作了机器检查的安全证明。这意味着它们可以有效地防止卡品牌混淆攻击以及 PIN 绕过攻击。请注意,第二个对策将是昂贵的,因为它需要重新发行卡。

B.万事达卡的防御对策
作为披露过程的一部分,与万事达卡分享了本研究的对策,并从他们那里了解到以下信息:

1.要求万事达卡收单行在授权数据中包含 AID,允许发卡行根据 PAN 检查 AID。

2.万事达卡在授权请求中还有其他数据点可以用来识别攻击。

作为披露过程的结果,一旦万事达卡了解到并非所有发行人都会检查 AID 或这些其他数据点,他们就会在他们的网络上实施这些检查。与万事达卡的互动还提供了关于某些终端(例如来自 SIX 的终端)如何检测不匹配的 AID 和 PAN 从而从一开始就拒绝交易的更多见解。

完成上述检查后再次尝试攻击。这次失败了:终端请求将卡插入终端并输入 PIN。因此,实验证明,万事达卡现在部署的这些检查可以防止Mastercard-Visa 混合攻击。

第五部分:Conclusions

在 EMV 非接触式协议中发现了一个严重的、容易被利用的漏洞,即应用程序标识符 (AID) 未通过支付终端的身份验证。 AID 定义了必须为事务激活协议的哪个实例(也称为内核)。结果,攻击者可以恶意替换合法的 AID 以欺骗终端激活有缺陷的内核。本文已经展示了如何使用中间人攻击来利用此漏洞,该攻击诱使终端使用万事达卡进行交易,同时相信它是Visa卡。这种卡品牌混合,结合最近开发的针对 Visa 的 PIN 绕过攻击,导致了一种新颖的、关键的攻击,攻击者可以绕过万事达卡的 PIN。该品牌的卡以前假定受 PIN 保护。令人震惊的是,对于终端和发卡机构不同意支付卡品牌的在线授权交易,这甚至是可能的。

为了实现漏洞利用,开发了一个概念验证的 Android 应用程序,并成功地测试了对现实世界支付终端的攻击。例如,在使用 Maestro 借记卡进行 400 瑞士法郎的交易中绕过了 PIN。还扩展了 EMV 的形式化模型,通过对终端发卡行渠道进行建模,即使这些代理在卡品牌上存在分歧,也允许进行通信。使用扩展模型来形式化验证提出的适用于 Visa 内核的准备部署修复程序是对Mastercard-Visa 混合攻击的有效对策。此外还指定并验证了两种新的内核内部对策,它们可以在万事达卡内核上实施,而无需依赖 Visa 的防御。万事达卡已在网络级别实施了一种替代防御机制,已通过实验证实该机制可有效抵御本文攻击。

你可能感兴趣的:(#,论文,c++,python,Linux)