# 金融反欺诈-交易基础介绍

Author: 乌云历史资料库 (@wooyun_archive)
Published: 2016-02-19T10:09:00Z
Canonical: https://wepostx.com/topics/81

> 乌云历史资料归档
>
> **原始作者：** 阿里巴巴云誉
> **原始编号：** superkieran-wooyundrops:1045
> **原始发布时间：** 2016-02-19 18:09
> **声明：内容仅用于技术研究和个人使用，版权归 wooyun.org。**

---

Author：[email protected]

# 0x00 前言

### 一、简介
如今，互联网金融比较火热，金融欺诈也变得非常普遍，金融反欺诈也应运而生。本文将主要介绍下金融交易中的一些基本内容，并简单介绍下历史悠久的并且还未淘汰的磁条卡的风险，这些也是了解金融欺诈需要的基本知识。对于具体的黑色产业链、信用卡套现、芯片卡的攻击、金融反欺诈风险防控等本文先不涉及。

### 二、背景
我们先来看几则最近国内银行卡盗刷的新闻报道

- [男子ATM取完钱后被盗刷近17万](http://zz.mnw.cn/news/1090195.html)
“黄先生发现，自己卡里近17万元的存款，被分14次刷走，仅剩下几千元，整个过程只有2分钟左右。黄先生赶紧报警。”
“经警方初步核查，事发前一天晚上，黄先生曾在云霄县江滨路一银行ATM取过款，这部取款机被人安装类似刷卡器的装置”

- [男子假身份应聘服务员 复制50多张顾客银行卡](http://news.sina.com.cn/s/2015-12-07/doc-ifxmhqac0127463.shtml?cre=newspagepc&mod=f&loc=10&r=9&rfunc=12)
“经审讯，严某对其携带并利用测录设备复制他人信用卡信息的犯罪行为供认不讳。据交代，严某为牟取不法钱财，租住快捷酒店作为实施犯罪的落脚点，为掩人耳目，冒用“雷某某”这一“假身份”，通过网上查找门槛较低、管理松散的高档餐饮企业的招聘信息，应聘并获取服务员岗位后，在顾客结账时，趁其不备，利用提前购买的磁条卡测录读写器复制客户银行卡信息，并偷窥和记录刷卡密码。”

- [七浦路市场十余店主银行卡遭盗刷](http://news.sina.com.cn/c/2016-01-27/doc-ifxnuvxe8430854.shtml)
“为了能够找到被盗刷的原因，店主们将消费明细打印出来发现，他们均曾在去年9月份参加过哈根达斯1元换购的活动(伪造的活动)，当时是用移动POS机进行的消费。”
“莹莹向记者出示了2015年9月19日哈根达斯一元换购冰淇淋的促销海报，海报生上称：“为回馈新老客户，哈根达斯特推出1元购活动……”海报上还明确注明：“优惠仅限储蓄卡刷卡消费，不接受信用卡及现金。”

上述三个最近的新闻中都是用户在看似正常的消费或取款后，但自己的卡却被盗刷了，在国内这种现象很常见。而在银行卡欺诈中，国外的已经形成了比较成熟的黑色产业链，借助[匿名网络](http://www.theonionrouter.com/)、[暗网](https://en.wikipedia.org/wiki/Dark_web)、[比特币](https://en.wikipedia.org/wiki/Bitcoin)等变得愈发猖獗。如下是国外的一个银行卡信息交易网站，用户可根据卡的类型等选择购买，购买后再通过线下制卡或线上使用等各种渠道去套现。

![原文图片](/media/2016/06/56099951340b0d0b310bda00cef90a04)

# 0x01 交易基础信息

交易分为线上的交易与线下的交易。线下交易(swiped transaction/card present)，简单点讲就是必须要物理刷卡来消费。线上交易(card not present transaction-CNP)，简单点讲就是不需要线下刷卡，但需要提供账号、密码、手机验证等信息，比如信用卡支付，填写卡号、过期时间、CVV2即可完成支付。
目前银行卡类的欺诈中，线下的主要就是复制卡，线上的主要是盗取你的线上支付的凭证，比如过期时间、CVV2等信息。

### 一、交易角色
在一次消费行为中，主要涉及到五个角色，分别为持卡人、商户、收单行、发卡行、卡组织。其中每个角色对应的描述如下：

- 持卡人(cardholder)
银行卡的合法持有人,即与卡对应的银行账户相联系的客户。

- 发卡银行(issuing bank/card issuer)
发行银行卡的银行，即开户行。比如中国银行、中国招商银行、中国建设银行等各大银行。

- 商家、特约商户(merchant)
与收单机构签有商户协议，受理(可使用)银行卡的零售商、个人、公司或组织。

- 收单行(Acquirer Bank)
负责商户与买家之间的资金结算。收单行需要向卡组织申请，在中国则是向中国银联提交申请。 中国一般各大银行都是中国银联的机构成员，也开展收单业务，同时中国银联卡组织也有自己的专业收单公司为银联商务；同时中国银联还会授权其他第三方公司为收单机构，比如一些第三方支付公司等。

- 卡组织(Card brand)
卡组织负责建设和运营全球或区域统一的支付卡信息交换网络，负责支付卡交易的信息转换和资金清算，制定并推行支付卡跨行交易业务规范和技术标准。
国际上的卡组织，主要有威士国际组织（VISA International）、万事达卡国际组织（MasterCard International）、美国运通国际股份有限公司（America Express）、发现卡(Discover)、大莱信用卡有限公司（Diners Club）、JCB日本国际信用卡公司（JCB)等，中国的则为中国银联(China Unionpay)

中国银联：简单来讲，中国银联通过制定一些标准与规范，构建一个完整支付网络，使得你能跨地区跨行使用银行卡。

### 二、交易流程
在一次消费过程中，各个角色的关系图大致如下

![原文图片](/media/2016/06/dcb246768c74fbc25079da82014c406e)

（一）线下刷卡
比如有如下的消费场景： 本人在西餐店刷卡消费150，其资金是如何流向的呢？

- 商家
首先商家需要刷卡工具，即常见的pos机，其需要向收单机构申请pos机。 收单机构主要有中国银联的成员机构各大银行、中国银联自己的收单公司银联商务、以及第三方支付平台收单机构，比如拉卡拉等。
商家可以根据收单机构的手续费(商家需要给收单行手续费的)、服务费等选择使用哪个收单机构。准备一个对公的账号(用来收钱)以及营业执照等信息向收单机构申请，签署相关协议。 收单机构审核通过后会发放pos机等(像拉卡拉这种可能会发放自己的刷卡器)，并负责安装调通，接入银联网络。 至此商家即可以用pos机进行收款了。

- 客户刷卡消费后，需要在签购单上签字，查看本次消费的签购单如下图

![原文图片](/media/2016/06/109bc1ac4e3053455b2f59b808815c30)

其中主要信息如下：

- 商户编号：用于标识商户

- 操作员：01，pos机默认有管理员、操作员等角色

- 终端编号：终端编号为pos机的编号

- 发卡行：招商银行，我的银行卡为招商银行的，因而发卡行为招商银行

- 卡号：银行卡号

- 卡组织：CUP，即中国银联，我的招商银行卡为银联卡，因而卡组织是中国银联

- 收单行：建设银行，即该pos机是建设银行的，其作为收单机构。负责将买家卡的钱转到商家的对公账号里。

- 交易说明：
商户在向这里是向建设银行，提交pos机申请。申请成功后建设银行负责安装pos机并调通。
刷卡结算时候，首先操作员在pos机设置消费金额，然后在pos机刷卡，并输入pin密码，pos机将卡号、金额、pin密文等通过加密方式发送到收单机构(建设银行)，
收单机构将信息通过卡组织的银联网络将信息转发到发卡行(招商银行)，招商银行校验卡类型以及金额、pin等信息，确认无误将校验结果通过银联网络发送给商家，支付成功。
支付成功后此时发卡行会把用户的卡金额冻结，等待卡组织进行资金清算。而此时买家的钱还未打到商家的账号，收单机构会与商户签订结算周期，比如T+1(第二天钱到账)、T+0(当天到账)的方式，收单机构通过汇总商户的收单信息通过银联网络发送给不同的发卡行请求扣款，各发卡行确认无误后将钱通过银联网络转到商户的对公账号里。至此交易完成。

- 手续费
这次交易的手续费，若商家与收单结构签订的协议中规定手续费为2%，假设发卡行、收单行、卡组织按7:2:1的比例扣费，那么商家缴纳的手续费为150*2%=3元,那发卡行(招商银行)的收益为3*0.7=2.1元、收单机构收益3*0.2=0.6元、卡组织中国银联收益3*0.1=0.3元。而商家最终收到的钱为150-150*2%=147元

（二）线上支付
线上支付与线下支付类似。商户在需要接入在线支付的功能时，需要向银联或相应的收单机构申请，收单机构审核后会提供相关的支付接口。比如其会提供开发包供商户进行调试(注意，用户的敏感信息(卡号、过期时间、cvv2等)是不允许存储的，开发测试时候为方便调试，可能会将敏感信息打到log文件里，从而可产生安全问题)，联调无误了即可线上使用了。
商户接入银联的在线支付网关，分两种情况：

![原文图片](/media/2016/06/1849bf4be84b129a0f2ef71bafa16bfb)

- 商户直联接入：是指商户开发系统直联接入“银联在线支付”网关，“银联在线支付”网关引导持卡人完成支付的形式。这种情况下，交易不经过收单机构的收单平台。

- 商户间联接入（收单机构直联接入）：是指商户系统先接入收单机构系统，由收单机构系统接入“银联在线支付”网关，“银联在线支付”网关引导持卡人完成支付的形式。这种情况下，交易经过收单机构的收单平台，支付过程中是否出现收单机构页面由收单机构选择。
所以通常在线上购物会出现如下的支付页面。

![原文图片](/media/2016/06/4dbf30b1d826726a283cd548598d8562)

中国银联支付平台提供各大银行的综合在线支付收单系统、同时各大银行也会提供自己的收单接口。
线上交易的资金流向以及结算与线下交易的描述类似。

### 三、银行卡信息
（一）银行卡分类

- 银行卡可按卡组织进行分类，比如带有中国银联标志的银行卡称为银联卡，带有Visa标志的为Visa卡。

- 银行卡按使用方式又可以分为借记卡和信用卡：

- 借记卡:简单来讲是必须有存款才能消费，不能预支

- 信用卡:是可以提前预支资金，但需要按时还款

- 银行卡按信息存储方式又可分为磁条卡与芯片卡。

- 磁条卡(magnetic stripe card)是指通过磁条记录了银行卡信息的卡片。

- 芯片卡(IC-integrated circuit card)是指带有IC芯片的，内部封装一个或多个集成电路用于执行处理和存储功能的卡片。

（二）银行卡的制卡标准
金融类的卡片遵循ISO/IEC 7813标准，不同的卡组织可能稍微有差异。
中国银联卡组织，根据ISO相关的标准以及国标的相关标准制定了银行卡卡片规范(Q/CUP 005-2014),该规范了属于中国银联成员机构制作银行卡的标准，制定了银联卡的外形、卡片要素、标识、全息防伪标志、签名条、磁条、芯片、安全要素等。 银联的相关标准可以参考其[官方技术资料](http://corporate.unionpay.com/infoBiz/yewuyujishu/jishuziliao/list_jishuziliao.html)
（三）银行卡的信息
查看一张信用卡的正面信息，如图

![原文图片](/media/2016/06/d56503780ee4541db70277fc77496013)

卡正面主要有发卡行、卡组织、卡号、持卡人姓名、卡过期时间等信息。
查看信用卡的背面信息，如图

![原文图片](/media/2016/06/975e515ba6b308e528fd26525195930d)

卡背面主要有签名条、磁条，卡后四位、CVV2安全码等信息，卡背后信息主要用于线上交易，比如卡后四位、CVV2。
所以银行卡有关的信息主要有如下内容：

- 卡号(Primary Account No)
银行卡号(13-19位的数字)，卡号并不是随意生成的，在中国，中国银联制定了银联卡发卡行标识代码及卡号标准（QCUP 002-2006）。其中卡号的前6位为中国银联指定(若是国际卡，则银联向ISO申请)，之后的(6-12为发卡行自定义)，最后一位为校验位。

- BIN(Bank Identification Number)
发卡行识别码，用来验证发卡银行的，一般是银行卡号的前6位。

- 过期时间(Expiration date)
卡过期时间，格式为YYMM

- 姓名
为字符形式，中文的则为拼音，姓名主要应用在信用卡上。

- 安全码(Security Code)
安全码是用来校验银行卡的合法性的，平时所说的CVV(主要是针对信用卡的)， 其实有两种：
第一种叫CVV(Card Verification Value->Visa),不同的卡组织命名不同，visa卡组织叫CVV，MasterCard卡组织叫 CVC1(Card Validation Code->MasterCard),而在国内，中国银联称之为CVN ，其存储在银行卡的磁条里，主要用于线下刷卡消费中卡的合法性校验。
第二种即平时所说的信用卡的CVV，其真实是叫法为CVV2(Card Verification Value 2->Visa)，也是visa卡组织叫CVV2，MasterCard卡组织叫CVC2(Card Validation Code->MasterCard),在国内，中国银联称之为CVN2。 CVV2的设计是主要用于线上的交易卡的合法性校验，一般是3-4位数字，打印在银行卡的背面。

- PIN(Personal Identification Number)
即平时在ATM机取款所使用的6位数字密码，注意在计算机和网络系统中任何环节都不允许PIN以明文的方式出现。

- 磁条(Magnetic Strip)：
银行卡后的磁条，其包含了3个磁道(Tracks)，每个磁道存储了不同的信息。

- IC芯片
内部封装一个或多个集成电路用于执行处理和存储功能的卡片。

- QuickPass
银联卡带有该标志的表示该卡支持NFC 功能，即可以通过NFC设备读取卡内存储的信息。通常我们使用支持NFC功能的手机或设备去读取带NFC功能的银行卡信息时，会读到银行卡的卡号、最近消费的10笔记录、有时银行卡设计不当还会读取到身份证等信息。

### 四、卡受理终端设备信息
（一）银行卡受理终端是指可以处理银行卡的设备终端，主要有如下分类

- POS机(Point of Sale)
能够接受银行卡信息,具有通讯功能,并接受指令完成金融交易信息和有关信息交换的设备。(有通过电话网络接入、有通过安装SIM卡拨入CDMA网络、有通过以太网接入的)

- ATM机(Automatic Teller Machine)
自动取款机，接入卡组织网络，实时通信的设备。国内的很多是Windows XP的主机

- mPOS
mPOS为整体概念,包括终端设备和相关应用。具体指,通过移动通讯设备(所搭载的支付应用软件)进行商户收银操作,由外接专用受理终端完成银联卡相关信息的采集和加密,通过移动通讯设备与后台处理系统交互完成交易。日常看到的一些个人刷卡器，比如拉卡拉的mini手机刷卡器，其通过NFC等功能读取卡信息，然后通过音频接口发送到手机应用再执行相应的处理。

（二）卡受理终端设备的系统结构图

![原文图片](/media/2016/06/70f7e80dc12d97bc4d3dea536efb09b0)

可以看到，支付设备可以通过PSTN网络、GPRS/CDMA网络、以太网进行通信，所有的通信数据最终流向了POS前置，POS前置部署在内网，用于对所有的收单行发送的支付订单信息进行处理。

# 0x02 磁条卡风险

### 一、磁条卡背景
磁条利用磁性载体记录字符与数字信息。其主要有两种高矫顽磁性(high-coercivity ->HiCo)和低矫顽磁性(low-coercivity ->LoCo)。其中高矫顽磁性的磁条需要更高的磁场能量去编码，因而也较难擦除。高矫顽磁性的卡主要应用在频繁使用的场景，比如银行卡、会员卡等。通常银行卡背后右上角处写有HiCo字母代表的就是高矫顽磁性的卡。低矫顽磁性的磁条易于擦除，使用寿命较短。

### 二、磁条卡标准
ISO/IEC 7813规定了金融交易卡的标准，包括物理特征以及磁条的存储信息结构。中国基于ISO标准制定的金融类卡的标准为GB/T 17552—2008,不同的发卡组织也会基于ISO、国标等指定自己的相关标准，所以有的卡存储数据可能会稍有差异。
银行卡的磁条包括三个磁道(Track)信息，如下

![原文图片](/media/2016/06/9dc25fa911a57504592199df73423850)

其中磁道1是用7个比特位来表示一个字符或数字；磁道2和磁道3采用5个比特位来表示一个数字字符。
磁道1最长可以包含79个字母字符或者数字字符；磁道2最长可以包含40个数字字符；磁道3最长可以包含107个数字字符。

- 磁道1的存储结构如下

![原文图片](/media/2016/06/27fe3bdf217bac46bd033915f0da06b0)

说明：

- SS(开始标记)：为%

- FC(编码格式的编号)：格式代码，一般为B

- FS(分隔符)：为^

- PAN(卡号)：最长为19位数字

- NAME(姓名)：最长26个字母

- ADDITIONAL DATA：该字段里没有字符，为4位卡过期时间(格式为YYMM)，以及3位的服务代码(代码含义参照)

- DISCRETIONARY DATA(自定义数据)：自定义数据里主要有如下内容，

- PVKI(PIN认证的密钥索引)：PVKI是用于PIN密码校验的，其为一个索引，发卡行维护1-16个加密密钥，此索引用于获取密钥。

- PVV(PIN认证值,中国银联的叫PVN)：PVV认证值是用于校验的，即根据PVKI获取的密钥、用户输入的pin密码，按照PIN加密算法(参照下面的银行卡加密算法)算出的值跟该值进行比较，从而确定PIN是否合法。

- CVV(卡安全码,中国银联叫CVN):CVV安全码是用于校验卡的合法性，即该磁道各个信息如果被篡改，通过校验该值即可发现异常。

- ES(结束标记):为?

- LRC(纵向冗余校验):用于数据错误校验

- 磁道2的存储结构如下

![原文图片](/media/2016/06/17e1215deeb3ad5e984145f7437d1406)

说明：
磁道2的信息与磁道1的信息很多都一致，不过磁道2信息都为数字，其中与磁道1不同的信息有如下内容：

- SS(开始标记)：为;

- FS(分隔符)：为=

- 磁道3的存储结构如下

![原文图片](/media/2016/06/e25563b97e88de4a018a19a24937c519)

说明：磁道3也是只能有数字字符，里面记录了过期时间、国家代码等数据，现在使用的还较少。

### 三、银行卡(磁条)的复制
1.读写卡设备
如上述描述，磁条的信息存储都是明文存储的，因而需要可以读取的设备即可。
在eBay或Amazon上搜索MSR等关键字可以搜索到很多这种读卡设备，如图

![原文图片](/media/2016/06/010abf35554cbdda5a5d255fe07f79d8)

其具体技术参数如下

![原文图片](/media/2016/06/c7ce92ee6d45fed04e56261df45831a9)

该设备支持HiCo 和LoCo的磁卡(300 oe -4200 oe)，同时支持读取三个磁道的信息，并且有读、写、擦除磁条的功能。
2.实际测试
我们使用如下的MSR 605设备来读取卡数据，其中白色的卡为空白卡，支持多次擦写数据。

![原文图片](/media/2016/06/474c4ef500e1f8160afd232a13eaac91)

读取一张普通的借记卡(磁条)，查看磁条信息如下

![原文图片](/media/2016/06/f95f26a819d8ca661634c88e06e3aa9d)

该普通磁条卡只在磁道2存储了卡数据，存储了卡号、CVV、过期时间等值。
对于纯磁条卡，我们将读到的数据全部写到一张空白的卡里，即复制出与原卡一模一样的卡，且可在ATM机、POS机等处正常使用。
当然，现在的很多芯片卡也都带有磁条，我们读取一直信用卡(芯片卡)的磁条信息，查看具体的磁条信息如下。

![原文图片](/media/2016/06/363573e36d9a55704a7250bf0d94daf3)

字段说明：
磁道1 的数据

- 存储了卡号

- 姓名拼音、2008为信用卡过期时间，即20年08月

- 服务代码：为201，每一位代表的值不同，2表示是技术上是IC卡，0表示授权处理正常，1表示使用服务无限制，具体参考GB/T 17552

- 密钥索引：为1

- pin校验码：为3128

- cvv码为：749

- 其他信息：为银行自定义的其他数据
磁道2 的数据都可由磁道1的数据推出。
注意，芯片卡的磁条里存储了卡信息，其芯片里也存储着用于交易的磁道信息。若读取芯片卡上磁条的数据，然后将数据写入一张空白的卡里，去取款机里使用，会提示使用芯片功能，如图。

![原文图片](/media/2016/06/e01a996c027880a91c39ca2e1901ab1e)

现在的POS机、ATM机在发现卡是芯片卡的时候交易都会使用芯片，而不会去使用磁条，当拿着芯片卡，在POS机刷磁条结账时会提示请优先使用芯片。
如上面的芯片卡的service code为201，第一位2就表示了是芯片卡。如果我们修改service code为101，即普通磁条卡的，刷卡会提示卡不合法。因为CVV校验出错，即这不是一张合法的卡，若要能修改数据必须知道银行的密钥才可以。

### 四、银行卡的加密算法
简单介绍下三个主要的加密算法，具体可以参考中国银联的相关标准。
1.银行卡的CVN校验算法(参考中国银联的CVN加密算法)
算法描述：该算法主要用于校验卡信息的合法性的。在如上复制卡的过程中我们修改service code重新写卡后，会被识别为非法卡，即通过该算法进行校验。由于密钥并非我们可控，因而不能随意篡改数据。该算法通过卡号、卡失效期、服务代码计算出一个CVN(银联叫CVN，Visa叫CVV)值，与卡里的CVN值进行比较判断卡合法性。
具体算法：

- 计算数据源：主账号（PAN）、卡失效期和服务代码，从左至右顺序编排。

- CVN算法：计算CVN时使用二个64位的验证密钥,KeyA和KeyB。
计算步骤如下:

- 将数据源扩展成128位二进制数据（不足128位右补二进制0);

- 将128位二进制数据分成两个64位的数据块。最左边的64位为Block1，最右边的64位为Block2;

- 使用KeyA对Block1进行加密;

- 将Block1的加密结果与Block2进行异或。使用KeyA对异或结果进行加密;

- 使用KeyB对加密结果进行解密;

- 使用KeyA对解密结果进行加密;

- 从左至右将加密结果中的数字（0－9）抽出，组成一组数字;

- 从左至右将加密结果中的字符（A－F）抽出，减10后将余数组成一组数字，排列在步骤(7)的数字之后;

- 步骤(8)的左边第一组三位数即为CVN值。
2.CVN2加密算法(参考银联标准QCUP 015-2005)
算法描述：CVN2(银联叫CVN2，Visa叫CVV2)的设计就是用于线上交易的，所以我们平时在一些购物网站输入银行卡号、姓名、卡过期时间，CVN2码即可购物，那该算法则通过用户提交的卡号、过期时间、银行的加密密钥计算出CVN2的值与用户提交的值进行对比，从而校验卡是否合法。

- 计算数据源
计算CVN2的数据源包括:

- 主账号(PAN)

- 卡失效期(格式为 YYMM,无卡失效期的借记卡可采用 0000)

- 常数 000(等同于计算 CVN 时的数据元素-服务代码)
示例 : 19 位 PAN、4 位卡失效期和 3 位长常数“000”组成 26 个字符 CVN2 数据源。

- CVN2 算法：计算CVN2时使用二个64位的验证密钥,KeyA和KeyB。

计算步骤如下:

- 将数据源扩展成128位二进制数据(不足128位右补二进制0);

- 将128位二进制数据分成两个64位的数据块。最左边的64位为Block1,最右边的64位为Block2;

- 使用KeyA对Block1进行加密;

- 将Block1的加密结果与Block2进行异或。使用KeyA对异或结果进行加密;

- 使用KeyB对加密结果进行解密;

- 使用KeyA对解密结果进行加密;

- 从左至右将加密结果中的数字(0-9)抽出,组成一组数字;

- 从左至右将加密结果中的字符(A-F)抽出,减10后将余数组成一组数字,排列在步骤(7)的数字之后;

- 步骤(8)的左边第一组三位数即为CVN2值。
3.PIN校验码算法(参考银联标准QCUP 032-2008)
算法描述：该算法主要是校验用户输入的密码是否正确。该算法通过PVK(通过PVKI密钥索引定位到银行的密钥)、用户卡号、用户PIN进行计算，将计算的值与卡里PVN(即PIN校验码，银联的叫PVN，Visa的叫PVV)进行比较，从而校验PIN的正确性。
具体算法：

- 计算数据源
计算PVN的数据源包括:

- 主账号(PAN)右端除校验位以外的11位数字

- KeyA,PVK的左侧64位

- KeyB,PVK的右侧64位

- PVK索引号,取值为1-F(0为保留)

- 持卡人PIN最左的4位数字 KeyA和KeyB组成了PVK,PVK是一组银联与代授权机构之间约定的128位的密钥,最多可15个,该组密钥专为代授权交易计算和验证PVN使用,该组密钥的索引号为1-F(0为保留),可分别用不同的密钥对 不同的卡号或卡号段进行PVN计算。在机构向银联提交/导入代授权信息文件时,应包含索引信息,以便银联用PVK索引号指定的128位长的密钥进行PVN验证。

- PVN算法：计算PVN时使用KeyA和KeyB。

计算步骤如下:

- 取PVK索引号约定的某个128位长的密钥PVK,PVK的左侧64位为KeyA,右侧64位为KeyB。

- 取主账号右端除校验位以外的11位数字、密钥PVK的索引号、PIN明文左端4位数字,依次构成一个16位数字串,每位数字用压缩BCD码表示,形成1个64位长的二进制计算块Block。

- 用KeyA对Block做DES加密运算,得到结果Block1。

- 用KeyB对Block1做DES解密运算,得到结果Block2。

- 用KeyA对Block2做DES加密运算,得到结果Block3。

- 对Block3从左到右抽取出所有的数字(0~9)。

- 对Block3从左到右抽取出所有的十六进制字符(A~F),并对每一个十六进制字符减十进制10,使之变为数字。

- 将步骤6和7得出的数字依次从左至右排列,步骤7得出的数字放在步骤6得出的数字之后。

- 取步骤8结果的前4位数字,即为PVN值。

### 五、磁条卡的攻击场景
（一）盗取卡磁条信息
盗取卡磁条信息，这种主要是线下的风险。

- 在ATM机安装记录仪 通常是在ATM机器上安装卡槽，同时在ATM机上安装针孔摄像头，在插卡过程中记录磁条信息，同时针孔摄像头拍摄用户输入的PIN密码。这种案例还是比较多的，比如新闻1里介绍的。其中磁卡记录器可以做的很小且带电源、无线蓝牙模块，带电源的针孔摄像头也很常见。如下图

![原文图片](/media/2016/06/0c0babf53b7fd06c52053ef4358ff17d)

![原文图片](/media/2016/06/cb5f0e5b2591cbe444af023238015f91)

- 改装POS机
比如在新闻2中出现的改造的POS机(在POS增加自己的记录仪)、或在持卡人不注意时候用设备记录仪盗取。新闻3中利用用户贪图小便宜的心理，用自己的设备记录仪来盗取用户的磁条信息。
磁条卡的信息都是明文存储，因而被复制的风险也一直有，因而出现了芯片卡，但芯片卡也不是完全安全的，其也可能面临一些卡复制、中继攻击、降级攻击等安全问题。

（二）盗取线上交易凭证
盗取线上交易凭证通常涉及到信用卡的CVV2码、网银登陆密码、支付密码等。当然盗取这些线上的交易凭证在线下也可以盗取，比如刷信用卡时候看到了你的CVV2，并记录了你的磁条信息(如前面对于芯片卡磁条的分析，磁条是记录了卡号、姓名和过期时间的)，其实有些在线网站可能不会去校验CVV2，使用磁条里的信息足以用于支付。
再者主要是通过钓鱼邮件、伪基站发送短信、伪造网银登陆的界面记录你的信息。当然其他的像利用漏洞攻击个人电脑、攻击商户、银行机构的案例也是有的。
而对于我们普通用户而言，如何保护自己。即不贪小便宜，去消费刷卡时尽量保证卡在视线内，取款时仔细查看ATM机，尽量使用芯片卡，信用卡背面信息遮挡等。

# 0x02 总结

从上面的分析可以发现，磁条卡的信息都是明文存储，因而可以通过设备随意读写，使得复制卡成为可能。磁条卡存在安全问题，芯片卡可以解决问题。 所以现在很多银行新办理的卡都是芯片卡，通常还会附带磁条。另外银行卡的过期年限通常很长，所以磁条卡完全退出历史舞台还有很长的路要走。
云誉介绍：
云誉反欺诈是基于阿里巴巴的信誉数据，通过领先的行为收集技术和机器学习模型，输出大数据风控服 务能力，解决账号、活动、支付等关键业务环节存在的欺诈威胁，降低企业经济损失。

# 0x03 参考

- [http://www.chinaunicom.com/upload/1351567526157.pdf](http://www.chinaunicom.com/upload/1351567526157.pdf)

- [https://en.wikipedia.org/wiki/ISO/IEC_7813](https://en.wikipedia.org/wiki/ISO/IEC_7813)

- [https://en.wikipedia.org/wiki/Magnetic_stripe_card](https://en.wikipedia.org/wiki/Magnetic_stripe_card)

## Replies
