APP下载

一种可用于移动支付的读卡器设计研究

2013-08-13李文耀

电视技术 2013年5期
关键词:读卡器内置加密

徐 然,李文耀

(武汉邮电科学研究院,湖北 武汉 430074)

当前在手机上的移动支付已有多种方案,然而由于不同厂商的手机都有一些限制,例如:iPhone系列手机没有SD(安全数码卡)卡槽,同时特殊的SIM卡槽设计也使得iPhone无法采用SIMPASS(双界面SIM卡)技术,即无法通过SIMPASS实现近场支付。这导致无法使用现有的一些安全支付方案。然而现在主流手机的音频接口都是3.5 mm的标准4段式插口:GND、左声道、右声道[1]和MIC输入。如果这种通道可以作为和手机通信的信道,那就创造性地解决了不同手机使用相对统一的通路作为通信接口的问题。

在此背景下,提出了多惠拉读卡器(以下简称读卡器)的概念,通过读卡器刷银行卡(磁条卡),获取磁道信息,并在读卡器内置SE(安全芯片)上绑定银行卡,内置SE通过UPCARD(银联卡)应用和CUP Mobile(中国银联移动)支付应用实现近场支付和远程支付功能。

1 多惠拉读卡器概述

1.1 读卡器概念

多惠拉读卡器是一款通过智能手机的音频通道进行数据的双向传输,它是一个稳定、高速、抗干扰的磁条卡读卡器设备。该设备体积小、易于携带、随插随用。该设备内置磁头,支持磁条卡刷卡,符合银行卡规范。

1.2 读卡器使用示意图

如下图1所示,是多惠拉读卡器的使用示意图,通过手机上音频接口(耳机插孔),手机和产品之间可以进行通信。通信正常后,可进行以下步骤。

图1 多惠拉读卡器使用示意图

1)通过音频接口,用户把多惠拉插入所支持的智能手机(本文的智能机是指Android/iOS系统手机),启动多惠拉客户端程序;

2)用户在多惠拉读卡器(内置磁头)卡槽上刷磁条卡,多惠拉读卡器读取磁道2/3的数据,并加密,通过音频接口发送到手机;

3)多惠拉手机客户端程序将加密的数据传递到服务器端进行处理,并转发服务器的加密控制指令,让多惠拉读卡器完成相应的银行业务。

1.3 读卡器功能特点

1)具有安全双界面芯片,能够用于移动支付;

2)提供直径3.5 mm 4段耳机插口(GND/左/右声道/MIC);

3)具有USB接口,能提供读卡器程序升级的功能;

4)由锂电池供电,可充电循环使用;

5)具有2轨磁头,支持磁条卡刷卡,能同时读取磁道2、磁道3的磁道信息;

6)具有计算能力、安全模块、能够进行加解密和数据编解码工作;

7)支持主流的手机操作系统(Android/iOS)。

2 硬件设计方案

2.1 STM32F103C8T6特性说明

多惠拉读卡器采用的MCU是ARM芯片STM32F103-C8T6,图2是MCU芯片原理图。

图2 STM32F103C8T6芯片原理图

STM32F103C8T6芯片,是一款增强型大容量芯片,是32位基于ARM核心的带64 kbyte或者128 kbyte的微控制器,它含有USB、CAN接口、7个定时器、2个ADC、9个通信接口,是一款低功耗的芯片。如图2所示,MCU通过PA3,PA4,PA6接口与磁条卡磁头和解码芯片相连,通过PB13,PB14接口与SE芯片相连,实现对应的功能。

2.2 硬件设计方框图

如图3所示,是读卡器的硬件设计方框图。它的内部由8个模块组成:磁条卡磁头、解码芯片、MCU、LED、锂电池及电源管理、安全芯片、直径3.5 mm音频接口、Micro USB插座。

以下为硬件设计各模块的说明:

1)磁条卡磁头:采用标准双通道磁头,提供磁道2、磁道3的数据;

2)硬件解码芯片:将磁条卡信息转换成标准的数字信号;

3)MCU:提供数据运算和控制,对通信数据数据进行编解码操作;

图3 硬件设计方框图

4)LED:用于产品运行状态的提示;

5)锂电池及电源管理:采用250 mAh容量的锂电池作为电源存储介质,电源提供对锂电池的供电和充电管理;

6)安全芯片:用于数字证书、密码算法等安全应用;

7)直径3.5mm音频接口:采用直径3.5mm—4 PIN标准接口,与手机进行数据通信;

8)Micro USB:为产品提供程序更新端口。

3 软件设计方案

本方案的设计主要是要实现通过读卡器能够刷磁条卡,读取磁条卡中的信息,然后将这些磁道信息进行加密,通过音频接口将这些信息传递给手机,通过网络,手机再将这些信息传递给银行后台,实现磁条卡的绑卡,从而实现移动支付。本文简要介绍了读卡器和智能机通信及磁条卡读卡的工作原理,主要介绍多惠拉读卡器UPCARD(银联卡)绑卡和 SE(安全芯片)功能[2]。

3.1 工作原理

1)读卡器和智能手机通信的工作原理

多惠拉和智能手机之间通信,主要是通过手机上的音频接口来进行通信,该音频接口分为4段,分别是左声道、右声道、MIC输入、地。手机通过左声道将命令数据传递给多惠拉,多惠拉通过MIC口将响应的数据返回给手机,两者之间以这种方式进行数据的交互。

2)读卡器读磁条卡原理

将数据从磁条卡上读出来,就是将磁道上的磁信号转变为电信号,通过编码再将其转变为二进制信号,最终再将该二级制信号还原为原始信号[3]。其具体过程是:磁卡以一定的速度通过装有线圈的工作磁头,磁卡的外部磁力线切割线圈,在线圈中产生感应电动势,从而在磁头上产生电压信号,通过译码将磁条卡上的信息读出来。

3.2 协议栈结构

多惠拉读卡器和智能手机之间的通信从低到高分为:物理层、链路层、数据层、应用层。图4为多惠拉和手机之间通信的协议栈结构。

图4 多惠拉和手机之间通信的协议栈结构图

应用层:应用软件通过接口SDK实现具体多惠拉的功能调用,但是SDK接口不会涉及具体应用系统逻辑,仅仅为应用层和数据层之间做适配和一些通用的接口。

数据层:主要以APDU(应用协议数据单元)命令数据形式为主,为应用层SDK提供支持,通过链路层提供的底层接口进行封装传输,本层仅负责命令的发送和接收。

链路层:为数据层提供底层支持,包括命令数据的CRC校验,同步、等待;命令数据包分成数据帧并使用同步帧和停止帧组成传输帧在物理信道上传输。

物理层:为链路层数据帧进行模拟信号的调制和解调,实现通过音频接口传输数据的目的。

3.3 多惠拉读卡器的UPCARD绑卡流程

如图5所示,是多惠拉读卡器的UPCARD绑卡流程图。

图5 多惠拉读卡器UPCARD绑卡流程图

当用户准备绑卡时,客户端先检查是否有读卡器,若无读卡器则提示插入读卡器。若有读卡器,则按照以下步骤进行:

1)手机客户端请求读卡器主控芯片(以下简称主控芯片)刷磁条卡;

2)主控芯片通过磁头读取磁道信息,并保存磁密信息数据[4](磁道2、磁道3 数据,以下简称 Track-data);

3)主控芯片通知手机客户端读取磁道信息成功;4)手机客户端请求主控芯片密文工作密钥;

5)主控芯片请求内置SE生成16 byte工作密钥WK=RAND(16);

6)内置SE随机生成16 byte工作密钥(WK)并保存,通过内置SE中的RSA公钥(RSAKEY)加密,加密后的工作密钥SK=RSA(WK,RSAKY);

7)加密后的工作密钥SK返回给读卡器主控芯片;

8)主控芯片将SK返回给手机客户端;

9)主控芯片收到手机客户端请求拼装银联报文的部分数据(客户端将银联所需元素做预拼装,以磁密信息位置为界,前后分成两部分(P0,P1)传送给主控芯片),并请求主控芯片将保存的磁道信息(Track-data)等参数拼装成银联报文;

10)主控芯片将保存的磁道信息和手机客户端发送的银联报文部分数据发送给内置SE,并请求拼装并加密。

11)内置SE拼装银联报文格式(P0+Track-data+P1),加密的数据为 eMsg0=3DES(P0+Track-data+P1,WK);

12)内置SE返回主控芯片eMsg0;

13)主控芯片返回密文eMsg0。

客户端收到该密文数据后,按银联相关规范进行封装提交到银联CMSP服务器进行UPCARD绑卡。

3.4 多惠拉读卡器SE功能

多惠拉读卡器内置SE(安全芯片)主要功能概述如下:

1)内置SE能保存RSA公钥并提供更新接口;

2)内置SE能随机生成并保存工作密钥(16 byte随机字符);

3)工作密钥加密方式(RSA加密);

4)使用工作密钥对报文数据加解密(3DES加解密);

5)UPCARD应用;

6)SE上接口设备序列号和密钥的管理。

4 安全机制

多惠拉要获得磁道信息必须通过GET BANKCARD INFO(GBI)命令,GBI返回的磁道信息是加密的;同时为了防止加密的磁道信息被窃取,GBI每次使用过程密钥对磁道信息加密。通过对交易报文进行加密和计算报文MAC来保证移动支付平台和手机间的数据传输安全[5]。

因此,通过多惠拉读卡器获取磁卡中磁道信息,通过音频接口将数据传递给手机,手机再将数据传递给银行后台,从而实现绑卡和支付这个过程是非常安全的。

5 多惠拉和拉卡拉的异同

5.1 相同点

1)体积小,易于携带;

2)内置安全芯片,支持所有银行卡,无需网银,足不出户便可进行安全消费;

3)主要提供信用卡还款、转账汇款、在线支付等服务。

5.2 多惠拉的优势

1)拉卡拉主要支持iPhone、小米、HTC手机等主流手机,而多惠拉支持绝大多数的Android/iOS系统手机;

2)多惠拉的升级版“翼付款”支持Windows Mobile、Symbian、Android/iOS等智能手机及KJava非智能手机操作系统,而拉卡拉只支持部分Android/iOS系统手机;

3)多惠拉读卡器支持银联UPCARD绑卡,一次绑卡多次使用,最多可以绑定10张不同账号的银联磁条卡,而拉卡拉最多只能进行1张银行卡的绑定。

4)多惠拉内置的智能卡芯片和磁条卡有机结合实现磁条卡向智能卡的无缝升级。

5)只要提前将银行卡绑定于多惠拉读卡器中,则消费时不需要刷卡,只需输入银行卡密码即可,而拉卡拉消费时需要每次刷卡。

6 测试与分析

对本文提出的读卡器设计方案进行测试,是对读卡器能否成功读取磁条卡信息、读取磁条卡信息后能否成功地实现磁条卡绑卡的一种验证,也是对提出的方案进行评测的有效保证,现在通过实验进行验证。

6.1 测试准备

如图6和图7所示,测试需要磁条卡1张、智能手机1部、多惠拉读卡器1个,可以清楚的看见该磁条卡帐号是:6228480051149726211。本次所做的测试都是按照图7所提供的方式进行,即将读卡器插上手机,然后将磁条卡在读卡器卡槽中划过,从而得到实验所需要的数据和信息。

6.2 磁条卡刷卡验证

1)验证方式一

当磁条卡在读卡器内置磁头上划过时,将读卡器内某一测试脚USART用飞线引出,连接至PC机器,通过串口调试助手Secure CRT6.0软件对磁道信息进行打印后的数据如图8所示。

图8 磁条卡磁道2和磁道3信息(截图)

根据磁道信息数据格式[6],可以看到磁道2的信息:6228480051149726211=4912120484566000?。其中6228480051149726211为磁条卡的账号,后面的数据是磁道2上其他信息。

2)验证方式二

如图9所示,通过音频接口将读卡器与智能手机相连,打卡智能手机上刷卡软件后,点击刷卡按钮,将磁条卡在读卡器卡槽上划过时,也可以获得磁条卡的账号6228480051149726211。

6.3 磁条卡绑卡验证

图9 磁条卡账号(截图)

通过音频接口将读卡器与智能手机相连,打开智能手机客户端上绑卡软件后,点击绑定银行卡,将磁条卡在读卡器卡槽上划过时,可以将银行卡与读卡器进行绑定。在图10中可以看到“绑定银行卡成功”;在图11中可以看到测试的磁条卡(银行卡)已经存在于多惠拉读卡器,表明磁条卡UPCARD绑卡成功。

6.4 移动支付功能验证

图12和图13是对读卡器能否进行移动支付的验证。通过实验,可以看出,当磁条卡绑卡成功后,磁条卡的信息就存在于多惠拉读卡器中,此时对手机充值就不需要磁条卡,通过读卡器就可以完成充值。

6.5 结果分析

本文设计的读卡器,具有读取磁条卡磁道信息的功能,以智能手机作为载体,通过网络与银行后台进行交互,从而实现移动支付。通过以上的仿真实验,可以看出多惠拉读卡器可以成功地读取磁条卡中磁道信息、可以进行磁条卡的绑定,并且可以用来进行移动支付,与预期的结果基本一致,从而验证了设计方案的可行性。

7 结束语

本为设计出了一款可以读取磁条卡信息的读卡器,通过对磁条卡进行绑定,可以实现近场支付和远程支付。因为该设备内嵌智能安全芯片,具有安全存储和加密机制,银行卡中所有的信息将会保存在读卡器安全芯片中,而不会上传到网络。并且数据传输经过了严格加密,用户使用时需要输入口令,每个用户需要不同的权限等,从而保障了数据传输和用户管理方面的安全性。相对于POS机和网上支付,它体积小、易于携带、安全便捷,只要提前将读卡器与磁条卡进行绑定,不需要携带银行卡,只需随身带着一部智能手机和多惠拉读卡器,就可进行移动支付。相对于拉卡拉,它的优势也非常明显。通过UPCARD绑卡后(不需银行卡),可进行手机充值、电费充值、余额查询、转账等功能,可以说,它继承了POS机和读卡器的双重功能,在未来的移动支付中会有广泛的应用。

[1]GB/T 14197—1993,声系统设备互连的优选配接值[S].1993.

[2]中国银联移动支付技术规范:智能卡支付技术规范[EB/OL].[2012-06-20].http://www.docin.com/p-546413515.html.

[3]龚翔宇,陈俊,任毅.金融终端中磁卡读卡器的实现[J].电脑知识与技术,2007(5):748-749.

[4]ISO/IEC 7811-2:2001,Identification cards—Recording technique Part 2:Magnetic stripe —Low coercivity[S].2001.

[5]CUP Mobile银行卡应用规范[EB/OL].[2012-06-20].http://wenku.baidu.com/view/1b059f1bfc4ffe473368ab77.html.

[6]GB/T 19584—2010,银行卡磁条信息格式和使用规范[S].2010.

猜你喜欢

读卡器内置加密
一种新型离散忆阻混沌系统及其图像加密应用
内置加劲环T型管节点抗冲击承载力计算
与淘汰命运抗争 看懂笔记本的读卡器
一种基于熵的混沌加密小波变换水印算法
加密与解密
基于EMV非接通信规范的非接触读卡器设计
为二维码识别的献礼之作——评测平治二维码门禁读卡器
内置电子游戏的运动鞋
认证加密的研究进展
内置管肠排列术治疗严重粘连性肠梗阻的临床分析