基于RFID的移动小额支付可信交易系统研发
移动支付的安全及可信问题是消费者使用业务的最大疑虑。特别是针对移动小额支付而言,由于交易额小,支付交易频繁,所以要求较高的处理效率,如存储尽量少的信息、处理速度尽量快和通信量尽可能少等,因此有时即使出现交易差错也容易被忽略或遗漏。另一方面,由于移动小额支付应用场合众多、环境恶劣、应用规范、不同厂家的技术水平参差不齐等等,经常曝露出一系列问题:误扣款、丢记录、不平账、数据不安全等。本文提出了一种可信交易的方案。
1 基于RFID的移动小额支付系统组成及原理
本系统的移动小额支付交易系统由RFID移动设备、收费机、后台软件组成。RFID移动设备通过射频感应唤醒与收费机器进行数据交换,智能卡通过射频感应从收费机处获取能量和交换数据;收费机,连接智能卡与应用系统的桥梁,承担信息的识别、传送、处理任务。后台应用软件,负责信息的整理与加工,产生便于人工识别的报表等信息。
2 系统不可信交易原因分析
笔者通过网络,走访用户,以及对不同厂家的收费终端进行测试,归纳出现不可信交易的可能原因,从RFID卡、机具、交易流程、系统,每一个环节的故障都可能带来交易可信度的问题。
(1)关于从卡内扣钱,那就先从卡和设备的数据交换看,可以归结为两步。第1步:刷卡→设备(读到卡内余额);第2步:写卡←设备(计算新余额,从卡片扣款)。
RFID卡的能量来源是由读卡设备向卡发送的固定频率电磁波与卡内LC串联谐振产生的电荷,当卡正在消费机感应临界区进行读写操作时,突然离开感应区而没电了,那肯定会造成读写卡异常。
其中RFID卡经过磁场感应区的典型的运动轨迹有垂直运动和水平运动2种,如图1所示。因为磁场分布的物理特性,RFID卡动态经过磁场区域,可能导致能读卡,但写卡失败,从而出现误写卡,甚至写坏卡的情况。
(2)机具,射频电路的设计不好,也可能容易导致读写卡异常。
硬件的PCB(印制电路板)“体质”是非常重要的,因为很多厂家的产品读卡性能可靠性差,而且这种产品的比率还很大,基本占了市场上80%的份额。主要表现在读卡性能,存在读卡死区,有距离,没有可靠完整读写区域。
(3)从系统的角度看,存在设计漏洞或者缺陷。
整个系统的数据完整性,对系统正常运作是非常重要的。不少的系统存在记录丢失的可能,或者通讯过程存在安全隐患,比如没有加密机制,通讯介质异常缺少冗余机制,数据人为损坏,缺少补采或者记录恢复机制,后台处理没有按流水而时间异常导致统计数据错误等等。
3 实现可信交易应该采取的手段
综合应用针对RFID、硬件、嵌入式软件及后台软件的整体方案,设计系统的硬件、软件和后台管理平台,确保整个小额支付收费系统闭环的流程可靠性、数据安全性,从而实现可信交易的有效结果(如图2)。
1)RFID卡关键数据双备份技术
从RFID卡工作状态机制,分析出现异常的可能原因,采用卡数据组织结构的双备份机制,配合嵌入式软件来达到写卡异常时的处理机制,如下所描述。
(2)可能引起错误写卡的原因分析
RFID卡经过读卡设备基站芯片的磁场感应区时,对RFID卡进行充电,当电压达到2V左右,基站芯片与RFID卡之间进行数据交换通讯,从而实现小额支付的交易过程。
卡进入感应区,执行卡请求,防碰撞,卡认证,读块,写块等过程。其中,卡请求及碰撞,大约需要4ms;卡认证,大约需要2ms;读块,大约需要2.5ms;写块,大约需要6ms。影响卡上数据变化的只有写卡过程,而该过程需要分两步执行,第1步:向M1卡发送待写的块号信息;第2步:向M1卡发送待写的l6字节块数据。当卡执行完第1步后,正在执行第2步的瞬间,已经离开感应区,这时,基站芯片就无从知道是否成功将16字节写成功。
为此,我们采用双备份的方式设计RFID卡上数据存储格式,当系统写卡出现异常时,利用备用区的数据对写卡异常的区块进行恢复,从而实现数据安全。
(3)卡关键数据的双备份格式
常见的M1卡分为16个扇区,每个扇区由4块(块0、块1、块2、块3)组成,我们也将16个扇区的64个块按绝对地址编号为0~63,存储结构如图3所示。
涉及小额支付的关键数据,一般使用其中一个扇区,其数据组织格式的备份方式如表1所描述。
其中,钱包主数据块DataA如在刷卡交易过程受到异常干扰,出现写错,则可以利用钱包备份数据块DataB来进行恢复。而写卡动作标志F用来监控钱包主数据块DataA的读写过程。
2)读写机具的射频电路抗干扰技术
射频电路采用专用集成电路,配合EMC感应线圈设计,增加滤波处理,减少高次谐波的干扰,防止感应存在死区(无法读卡的区域),减少交易过程出现异常的几率(图4)。
(1)射频电路芯片电路设计
天线线圈的电感:
L:天线线圈的长度
N:天线线圈的圈数,一般为4圈
D:天线线圈的直径或者导体的宽度
p:由天线的技术而定的N的指数因子,如表2所描述。
天线的品质因数Qcoil:
一般天线的品质因数 30
实际中,品质因数Qcoil>30的增加量,对RFID卡的操作距离无明显帮助。品质因数必须Qcoil<60,以确保数据通讯的稳定可靠,否则天线的有效工作距离范围内存在死区。
本系统的射频部分关键电阻采用1%精度,关键电容采用NPO材料电容,保证系统温度稳定性和刷卡感应区场强性能的一致性。同时品质因数控制在30~40之间。
3)嵌入式交易控制流程技术
系统根据卡的数据存储格式,设计嵌入式交易控制流程,对异常数据进行自动纠正和恢复处理,实现异常扣款过程的自动恢复。流程如图5所示。
系统根据卡的数据存储格式,设计嵌入式交易控制流程,对异常数据进行自动纠正和恢复处理,实现异常扣款过程的自动恢复。交易控制流程图流程如图6所示。
非接触卡在进入和离开感应区的时间是随机的,当其离开感应区的时刻及其对各数据块和标志的影响情况,如表3。
流程以DataA为基准,对DataA的修改是否有效,由flag来判定。
参照失败原因及系统写卡流程,做如下几点分析:解决了写卡与读卡距离的差异。因为写数据块前,先起用写标志,这样,写数据块的时间,卡已经处于可写卡的感应区范围内;解决了卡运动轨迹不规范带来的写卡异常。一次写卡命令需要6ms。根据流程,完整写一次卡需要3次写卡命令,2次写标志,1次写数据。前面2次写卡失败都可以在流程中得到自动恢复,只要最后一写标志的时间处于感应区就可以完成正确的写卡动作,有效消耗时间是6ms。这样,无论卡从何种空间位置穿过感应区,都可以有效完成正确的写卡动作。
4)网络通讯加密机制
如图6所示。
5)模块化设计技术
系统硬件采用模块化设计,将整体硬件平台分解为读卡基站模块、交互的显示模块、键盘模块、语音模块、数据通讯模块、数据存储模块、以及电源模块组成(图7),确保整个系统的稳定可靠性。
● CPU模块:采用ARM Cortex-M3内核的MCU——STM32F07C,主频最高72MHz,结合FLASH实现数据和字库信息的存储,利用PHY网络接口芯片,实现有线的Ethernet通讯。
● FM1702读卡模块:与IC卡进行数据交互的物理接口芯片,由主MCU进行控制读取IC卡相应信息。
● Txt2wave模块:采用XFS3031CN实现文字转语音,实现全语音的功能。
● GPRS通讯模块:SIM900A专用GPRS通讯技术实现数据无线远传。
● 触摸键盘模块:STC12C5201AD独立处理qt1084实现电容式触摸键盘。
● GPS定位模块:GMS668专用卫星定位模块。
● 电源处理模块:MP24943:最大输入电压 55V,最大负载电流3A。
● LCD显示模块:lcd128x64点阵液晶。
6)流水号分析技术
以“记录流水号”作为可信交易依据,流水号从1开始编码,最大支持65535,不管是消费机刷卡消费,还是用发卡器充值退款,针对任何写卡操作,都会先读出RFID卡中流水号,然后加1写入卡中,最后再次读出卡流水号进行比较验证,确保整个交易写卡过程的准确性。针对交易异常记录,系统提供自动查帐、人工处理方式,系统仅查出交易异常记录,用不同颜色着重标识区分,以便人工纠正。如图8所示。
4 工程应用及结论
本系统通过数据双备份技术,实现交易数据的可靠性;通过嵌入式交易控制流程技术,解决交易过程误写卡问题,保证交易过程的正确性;通过通讯加密机制,解决采集交易记录的准确性;同时采用流水号分析技术,进一步防止错误交易流程的产生,实现交易流程的稳定性。
本系统成功应用于中国电信一卡通系统,运行稳定可靠,交易可信。系统结合NFC (Near Field Communication)及pboc2.0(《中国金融集成电路(IC)卡规范》(JR/T 0025-2005)(业内简称pboc2.0)),应用前景将更广阔。