Raymond's Notebook
日拱一卒无有尽,功不唐捐终入海
智能卡简介与设计概要
credit-card

一,什么是智能卡
智能卡也称为身份识别卡,来源于英文词组:Identification Cards,它本身是一套国际标准,由ISO国际标准化组织制定,主要目的是让智能卡在遵守一套通用标准的前提下能够在各个国家之间流通或者交易。
目前世界上(国际间)流通的智能卡,主要根据 ISO/IEC7812 设计而来,该标准由如下两个部分组成:

我们先来看编码系统,总的来说智能卡是由一串数字组成,编码系统规定了这些数字的格式,它们被分成了三个部分:

  • IIN 发卡机构识别码,用来识别发行该卡的机构 (目前IIN的注册机构为美国银行家协会);IIN 当前标准由6位数字组成,首位数字是行业标识符(MII),后面跟着5位数字。其中 MII 的含义如下:

    MII数值发行行业
    0ISO/TC68 和其它行业的分配
    1航空公司
    2航空公司、金融和其他的未来产业的分配
    3交通和娱乐
    4银行和金融
    5银行和金融
    6商品推广和银行/金融
    7石油和其他的未来产业的分配
    8医疗保健、电信和其他的未来产业的分配
    9由各国国内管理机构自行分配

    注意 2015年,业内开始着手实施对 ISO7812 的更改,将IIN的长度增加到8位数;该标准的2017年修订版定义了新的八位数IIN,并规定了将现有六位数转换为八位数IIN的时间表。这意味着,以后会出现IIN为8位数字的智能识别卡。

  • Account Number 个人账户识别码 智能卡的使用者,最终都是个人,因此 Account Number 主要用于发行机构确定使用者的身份,为使用者分配一个唯一编码。 一般智能卡数字的最大长度为19位,所以当与六位数IIN结合使用时,个人识别码最大长度为12位数字;当使用八位数IIN时,个人账户标识符的最大长度将仅为10位数。

  • 校验码 智能卡最后一位是校验位,它使用ISO / IEC 7812-1附录B中定义的Luhn算法计算,关于Luhn算法可以参考我之前的文章

以上 IIN(6位或者8位) + 个人账户识别码 + 单个数字校验位 构成了整个智能卡编码系统。

二,智能卡与信用卡的关系
智能卡和我们日常中使用最频繁的信用卡之间有什么关系呢?其实他们之间是包含的关系,一句话,信用卡只是智能卡的一种;但是智能卡可以包含其他非信用卡,比如某些国家发行的社保卡,其卡号也符合智能卡的编码规则。

三,信用卡详述
我们知道信用卡其实就是一种智能卡,那么其卡号编码规则必然符合智能卡编码系统;当我们谈论信用卡时,其IIN的含义就代表发卡银行识别码,所以又称BIN码;
因此信用卡的编码就是由:
BIN(6位或者8位,需要向银行家协会申请)+ 个人账户识别码(由银行自行定义)+ 1位校验码 组成。

一张信用卡除了卡号之外,还有 Expire Date 失效日期CVV 这两个关键信息;
其中失效日期比较好理解,就是这张卡只在该日期之前有效,过期就需要重新申请一张卡;
那么 CVV 是什么?
有点像密码,但是又不是密码;CVV 其实也称为 CSC,简称:信用卡安全码。 它是信用卡在进行网络交易和电话交易时的一个安全特征码。它通常是印刷在信用卡上面的3位或4位数字,用于证实付款人在交易时,是该卡的拥有者,从而防止信用卡诈骗或盗用。不过这种保护力度,确实不高,所以某些国家或者地区,为了对付日益增加的信用卡盗刷问题,会强制该地区用户在进行信用卡交易时,开启3DS验证,也就是在线付款时,需要输入银行分配给你的一段密码,从而提高信用卡交易的安全性。
CVV 在信用卡发卡时生成,发卡银行使用信用卡验证密钥将信用卡卡号、有效期、服务编号进行加密,最后生成的CVV理论上只有发卡银行(及卡持有者)才知道。
不同的发卡组织其信用卡安全码的名称和印刷位置不同:

  • Visa 的安全码叫做CVV2(Card Verification Value 2),有3位数字,平印在信用卡背面签名栏上卡号后4位处。
  • MasterCard 的安全码叫做CVC2(Card Validation Code 2),有3位数字,平印在信用卡背面签名栏上卡号后4位处。
  • Discover Card 的安全码叫做Cardmember ID,有3位数字,平印在信用卡背面签名栏上。
  • American Express 的安全码叫做CID(Card Identification Number),有4位数字,平印在信用卡正面信用卡卡号上方。
  • China UnionPay 的安全码叫做CVN2(Card Validation Number 2),有3位数字,平印在信用卡背面签名栏上卡号后4位处之后。
  • JCB(Japan Credit Bureau) 的安全码叫做CAV2( Card Authentication Value 2),有3位数字,平印在信用卡背面签名栏上卡号后4位处。

CVV号码在交易中的作用和安全性
信用卡交易会自动验证CVV号码以确认卡本身已激活并且当前由授权持卡人持有。
即使商家或者企业已经取得PCI证书(关于PCI认证我会在另外一篇Blog中详细介绍)也不得记录CVV信息;因此,如果黑客设法渗透到他们的数据库或网站,他们将无法窃取您的 CVV 号码。
并非所有在线零售商都需要您的CVV。如果他们要求你输入,通常只适用于首次购买,在后续交易中一般不会再次要求输入CVV。如果您是该网站的常客,这会增加身份盗用的风险。

信用卡编码和发卡机构的关系
当前全世界流行的信用卡,其卡BIN大多数都是6位数字,但是随着申请IIN编码的机构增多,目前6位的编码已经不太够用;因此后面新的标准制定出了8位的编码。那么从6位的卡BIN编码中,我们可以获取那些信息呢?其实鉴于安全性的考虑,普通用户从BIN码中能够获取的信息是非常有限的,因为官方的”发行人识别号码(IIN) 的ISO登记册“,不向公众开放,它只适用于持有登记权的金融公司和可以申请IIN的机构。也就是除了满足条件的金融机构,普通用户无法从卡BIN中得知更多信息。但是由于IIN号采用号段区块分配的方式,下发给各个机构,从目前已经掌握的号段来看,至少可以知道那些数字开头的编码分配给了那些发卡机构,如下表所示,就是目前某些号段与发卡机构的对应关系。

发卡机构IIN区间使用中长度校验方式
Bankcard5610, 560221-560225No16Luhn算法
大来卡 Carte Blanche300-305Yes14Luhn算法
大来卡 enRoute2014, 2149No15
大来卡36Yes14Luhn算法
大来卡 北美54, 55Yes16Luhn算法
发现卡6011, 622126-622925, 644-649, 65Yes16Luhn算法
InstaPayment637-639Yes16Luhn算法
JCB3528-3589Yes16Luhn算法
镭射卡6304, 6706, 6771, 6709No16-19Luhn算法
Maestro5018, 5020, 5038, 6304, 6759, 6761, 6762, 6763Yes12-19Luhn算法
美国运通34, 37Yes15Luhn算法
Solo6334, 6767No16, 18, 19Luhn算法
Switch4903, 4905, 4911, 4936, 564182, 633110, 6333, 6759No16, 18, 19Luhn算法
环球航空旅行计划公司1Yes15Luhn算法
Visa4Yes16Luhn算法
Visa Electron4026, 417500, 4508, 4844, 4913, 4917Yes16Luhn算法
万事达卡51-55Yes16Luhn算法
中国交通通信信息中心20,31Yes19Luhn算法
中国银联62Yes16-19Luhn算法

一旦了解了这层关系,其实对于伪造卡BIN提供了些许方便。

信用卡安全与风控
信用卡安全性历来都是信用卡金融机构最为关注的地方,为了防止信用卡欺诈的发生,催生了许多从事信用卡风控的公司;
其中风控的第一步就是验证卡号的有效性, 简单验证方式一般包括如下两步:

  • 检查卡BIN第一位是否属于主流发卡机构,验证卡号是否符合Luhn算法;
  • 通过IIN数据库查询卡BIN数字属于的国家,如果信用卡卡BIN表示的发卡国家与客户的账单地址不在同一个国家,那么就标记该交易存在风险,转入其他流程进行审核;

风控是一个非常庞大的业务,我这里只对卡验证做了一些介绍,如果感兴趣可以阅读相关的文章和书籍,限于自己当前的能力,就不再继续风控方面的介绍了 :(

四,如何设计一张信用卡/智能卡
经过上面的介绍后,你会发现其实设计一张信用卡非常简单,大致分为如下几步:

  • 选择所处行业的识别码,即 MII数值;然后向国际 SA - 保荐机构,提出申请,申请IIN/BIN识别码;一般申请分为两种,一种是,申请单一的IIN码,另外一种是申请IIN码的区块段(号码段);
  • IIN码申请下来后,发卡行再根据发卡的数量,为用户生成 Account Number,在该过程中根据 Luhn 算法决定最末一位校验码;
  • 最后发卡行可以根据自身情况为信用卡分配 CVV,3DS 验证密码;

经过以上过程生成的信用卡,就可以满足跨国间交易的条件,可以通过卡组织在国际间进行结算。

参考资料:
https://zh.wikipedia.org/wiki/ISO/IEC_7812
https://zh.wikipedia.org/wiki/%E5%8F%91%E5%8D%A1%E8%A1%8C%E8%AF%86%E5%88%AB%E7%A0%81