熟悉PIN、PAN、PIN Block、Format标准就了解了PIN传输规范。

1. PIN、PAN、PIN Block

PIN(Personal identification Number):即个人密码。PIN规定为4~12位数字,越长越安全,但是从易用的角度考虑不应该超过6位,所以目前的银行卡密码都是6位。在计算机和网络系统中任何环节不允许PIN以明文的格式出现

PAN(Primary Account Number的缩写): 主账户号码 。ISO 9564中定义:发行者分配的号码,由发行者识别号码、个人账户标识和ISO/IEC 7812-1中规定的校验数字组成,用于识别发卡机构和持卡人。详见银行卡号的编码规则及校验。

PIN Block:填充后的PIN的分组数据块。对pin进行加密时,由于pin长度一般为6位,不符合加密算法的固定分组长度要求,所以需要对pin进行填充使之达到一个分组的长度,然后加密计算从而保证pin的机密性。PINBLOCK一般用于银行卡取款密码的加密传输处理过程中,遵循ANSI X.98规范,该规范被目前主流的卡组织所接受,包括中国银联。

2. PIN Block分类

PIN 格式块:ISO 9564标准中定义了5种格式,Format 0,Format 1, Format 2, Format 3,Format 4。

2.1 Format 0 PIN block

由PIN域 和 PAN域 异或 得到。

PIN域 共64bit,每4bit为1位十六进制数字,共16位十六进制数字。
第1位(1~4bit):固定值0x0(0000)
第2位(5~8bit):PIN长度,取值范围0x4(0100) ~ 0xC(1100)
第3~16位(9~64bit):PIN,不足14位右补0xF(1111),因为PIN最多12位,所以最后2位一定是0xFF(1111,1111)

PAN域 共64bit,每4bit为1位十六进制数字,共16位十六进制数字。
第1~4位(1~16bit):固定值0x0000(0000,0000,0000,0000)
第5~16位(17~64bit):PAN,去掉最右边1位校验数字后,从右边数12位,不足12位左补0x0(0000)

2.2 Format 1 PIN block

用于PAN不可获取的场景,由PIN域 拼接 交易域得到。

交易域:在每次PIN block时应当是唯一的,其来源于交易序列号、时间戳、随机数或其他相似情况,取值范围是0x0(0000) ~ 0xF(1111)。

PIN block上送时,交易域不必上送,因为PIN的长度已经知道了。

PIN block 共64bit,每4bit为1位十六进制数字,共16位十六进制数字。
第1位(1~4bit):固定值0x1(0001)
第2位(5~8bit):PIN长度,取值范围0x4(0100) ~ 0xC(1100)
第3~16位(9~64bit):PIN,不足14位右补交易域。

2.3 Format 2 PIN block

指定IC卡使用,只能用于离线环境,不能用于线上PIN验证。

PIN域 共64bit,每4bit为1位十六进制数字,共16位十六进制数字。
第1位(1~4bit):固定值0x2(0010)
第2位(5~8bit):PIN长度,取值范围0x4(0100) ~ 0xC(1100)
第3~16位(9~64bit):PIN,不足14位右补0xF(1111),因为PIN最多12位,所以最后2位一定是0xFF(1111,1111)

2.4 Format 3 PIN block

由PIN域 和 PAN域 异或 得到。

PIN域 共64bit,每4bit为1位十六进制数字,共16位十六进制数字。
第1位(1~4bit):固定值0x3(0011)
第2位(5~8bit):PIN长度,取值范围0x4(0100) ~ 0xC(1100)
第3~16位(9~64bit):PIN,不足14位右补0xA(1010) ~ 0xF(1111)中随机的或顺序的数字

PAN域 共64bit,每4bit为1位十六进制数字,共16位十六进制数字。
第1~4位(1~16bit):固定值0x0000(0000,0000,0000,0000)
第5~16位(17~64bit):PAN,去掉最右边1位校验数字后,从右边数12位,不足12位左补0x0(0000)

2.5 Format 4 PIN block

PIN域 共128bit,每4bit为1位十六进制数字,共32位十六进制数字。
第1位(1~4bit):固定值0x4(0100)
第2位(5~8bit):PIN长度,取值范围0x4(0100) ~ 0xC(1100)
第3~16位(9~64bit):PIN,不足14位右补0xA(1010)
第17~32位(65~128bit):随机数字,取值范围0x0(0000) ~ 0xF(1111)

PAN域 共128bit,每4bit为1位十六进制数字,共32位十六进制数字。
第1位(1~4bit):PAN长度减12,因为PAN最大19位,所以取值范围0x0(0000) ~ 0x7(0111);PAN长度小于12时,取值0x0(0000)
第2~32位(5~128bit):PAN,不足12位左补0x0(0000),超过12位不足20位右补0x0(0000)

Format 4 与0/1/2/3不同,不是先得到PIN block再加密,而是将 PIN域和PAN域放到加密过程中,最终得到加密的PIN block。加密过程:

  1. 使用密钥K对PIN域加密,得到结果A;
  2. 结果A与PAN域做异或,得到结果B;
  3. 使用密钥K对结果B加密,得到加密的PIN block。
  4. 解密过程(加密过程的逆过程)
  5. 使用密钥K对加密的PIN block解密,得到结果B;
  6. 结果B与PAN域做异或,得到结果A;
  7. 使用密钥K对结果A解密,得到PIN域。
  8. 因Format 4 PIN block涉及密钥加解密过程,此处不提供代码示例,PIN域、PAN域、异或,可参照其他格式PIN block代码示例

3. Format标准

3.1 ANSI X9.8 Format

ANSI - American National Standards Institute,美国国家标准学会

ANS - American National Standards,美国国家标准

ANS X9.8是在ISO 9564-1标准的基础上增加几处笔记形成的,内容可以认为是一致的。指出PIN block只有Format 0和3建议在此标准下使用,Format 3应当在多次PIN加密都使用相同的PIN加密密钥时使用。

ANSI X9.8 个人密码加密标准。

ANSI X3.92 数据加密标准 (DES) 。

ANSI X9.9 金融机构信息验证标准。

3.2 Q/CUP 006.4

中国银联股份有限公司企业标准,Q表示企业,CUP表示中国银联(China UnionPay)。

银联标准定义的ANSI X9.8 Format(不带主账号信息)就是ANSI X9.8 Format(带主账号信息)的简化。

银联标准也定义了互联网支付密码的PIN block计算方式。 1. 互联网支付密码的长度必须在6到20个字符以内; 2. 互联网支付密码均为ASCII码字符,既可以为字符,也可以为数字,或其他符号; 3. PIN block 共24个字节,每个字节使用2位十六进制数字表示,共48位十六进制数字; 前2个字节,互联网支付密码的长度; 剩余22个字节,PIN,6~20位字符,每个字符占1个字节,不足右补0xFF。

4. PIN安全设计建议

1. 给密码加盐后再进行哈希。

2. PIN输错和穷举次数限制。

3. 异地登陆需要校检。

4. 不设置生日、连续数字、重要日期等简单密码。

移动安全规范 — 3 -个人密码(PIN)传输规范相关推荐

  1. 标准规范概览——智能密码钥匙相关规范

    智能密码钥匙是实现密码运算.密钥管理功能的终端密码设备,使用USB接口形态,业内通 用的名称USBKey.UKey.U盾等.  国密标准中智能密码钥匙相关规范 01  |  GMT 0016-2012 ...

  2. 用户登录提交前,密码加密传输

    需求: 因为OA放在外网,为了提高安全性,用户登录时,密码加密传输,数据库密码加密保存. 解决方案: 前台加密用JQUERY MD5插件,这个工具从网上下载的. 后台密码加密,用java的MD5工具类 ...

  3. TF内存卡(SDHC)的传输规范

    针对TF内存卡(SDHC)的传输规范: 传输速度写入速度被定义为 [Class2(2MB/sec).Class4(4MB/sec).Class6(6MB/sec).Class8(8MB/sec).Cl ...

  4. SIM卡的密码PIN与PUK密码PIN

    SIM卡(Subscriber Identity Module) ,即用户识别卡,是全球通数字移动电话的一张个人资料卡.它采用A 级加密方法制作,存储着用户的数据.鉴权方法及密钥,可供GSM系统对用户 ...

  5. 网站密码明文传输解决方案js+java

    解决密码明文传输的方案,基本有两种解决方案 1,将项目网站全站升级为https协议(如果要更谨慎,还需要加密). 2,将密码进行加密后,在后台解密. 因项目升级https时间周期太长.将暂时替代方案改 ...

  6. 浅谈“密码明文传输”

    一:漏洞名称: 密码明文传输 描述: 明文传输一般存在于web网站登陆页面,用户名密码采取明文传输并未采取加密(注意:一些软件如BurpSuite带有可加密的暴力破解!)容易被嗅探软件截取(如果加密方 ...

  7. RSA加密web前端用户名密码加密传输至后台并解密

    RSA加密web前端用户名密码加密传输至后台并解密 编写加解密公共方法类RSAUtils import org.apache.commons.codec.binary.Base64; import j ...

  8. linux c语言 密码,Linux 双因子认证(密码+PIN)C语言版

    Linux 双因子认证(密码+PIN)C语言版.md 关键字 Linux C语言 PAM SSH 2 Two Multi Factor Authentication Login 双因子 多因子 密保 ...

  9. win11取消开机密码pin无法删除怎么办 win11关闭开机密码pin选项灰色怎么办

    很多用户设置默认的开机密码pin,但是由于感觉太麻烦了,想要关闭该功能.结果发现选项变成了灰色,无法直接删除.那么win11关闭开机密码pin选项灰色该怎么办呢?今天小编就给大家具体的解决方法,有需要 ...

最新文章

  1. 传递给系统调用的数据区域太小怎么解决_40张图看懂分布式追踪系统原理及实践...
  2. fileupload java_java组 fileupload
  3. html怎么样取jsp中的路径,jsp中获得路径的两种方法和获得url路径的方法(推荐)
  4. kotlin 类及其成员的可见性
  5. 【渝粤题库】国家开放大学2021春1009离散数学(本)题目
  6. 【学神-RHEL7】1-3-Linux基本命令和配置服务器来电后自动开机
  7. 互联网产品 从设计到运营 这中间提高须要关注的站点
  8. Java数组数字排列
  9. ubuntu HackRF One相关环境搭建
  10. 安全强化你的 Linux 服务器的七个步骤
  11. C++设计模式10--命令模式(二)(Command)--降低请求发送者与接收者耦合
  12. 商场平面 html5,收集50张商场平面图,看购物中心动线规划
  13. python华氏温度和摄氏温度相互转换
  14. 从杭州崩溃小伙说起:我们被灌输的价值观,真的对吗?
  15. ie浏览器使用video标签无法播放mp4文件 完美解决方案
  16. linux系统取消时间同步,Linux系统时间不同步问题
  17. Mysql 给字符串类型字段 加索引方法
  18. Flowplayer基于视频流的免费web视频播放器
  19. lrtimelapse 5.2.1中文版 附安装教程
  20. 饮用水中的硝酸盐超标的解决方案

热门文章

  1. 实例4:树莓派GPIO控制舵机转动
  2. Linux逻辑运算符
  3. 手写一个淘宝、京东的搜索流式布局FlowLayout
  4. 自动拨号程序调试过程
  5. can‘t open/read file: check file path/integrity
  6. ThinkpadT61安装Ubuntu启用Compiz无边框问题的解决
  7. 飞飞影视系统 发布模块如何使用?
  8. 河北2020计算机二级报名时间及考试时间,河北2020年3月计算机二级考试报名时间安排...
  9. 洛谷 [NOIP2012 D1T2] P1080 国王游戏
  10. 项目-OOP版电子词典