目前市面上有各种形形的刷卡App,以及MPOS刷卡机,为了探秘其中的技术实现流程,我们接下来将以一款普通的蓝牙收款pos结合Android App客户端来给大家讲讲它们的工作流程是怎样的,以及支付的完整链路又是怎样的。
密钥体系:
一般pos等安全硬件上,在出厂的时候,每台pos终端会预装一个离散的传输密钥,该密钥作用主要用于解密请求后端返回的加密密钥,密钥主要存放于pos安全存储区和后台加密机中,Android客户端仅做透传作用。
客户端App上一般会设置密钥管理模块,其中包括“主密钥更新”和工作密钥更新两个模块
主密钥:主要用于解开工作密钥,充当工作密钥加解密的key
工作密钥: 工作密钥大致可分为三组,TDK密钥,TPK密钥和TAK密钥
TDK密钥:主要用于磁道数据的加解密
TPK密钥:主要用于Pin密码数据的加解密
TAK密钥:主要用于mac数据计算
加密安全方案:
磁道加密算法
D.1. 银联磁道加密算法
D.1.1. 数据源构成
D.1.1.1. 二磁道数据源
二磁道数据(35域)从结束标志“?”向左第2个字节开始,再向左取8个字节作为参与加密的二磁道中发卡方信息,记为TDB2。
D.1.1.2. 三磁道数据源
类似二磁道数据源构造方法,三磁道数据(36域,如果存在