燃气是目前跟老百姓生活密切相关的主要能源,而现在燃气表的管理主要采用卡式预付费方式,这种管理方式存在步骤繁琐、费时费力等弊端,很有必要将近场通信 NFC 技术、移动终端、3G、移动支付等技术应用到燃气费付费过程,以满足方便快捷的付费需求。
NFC(Near Field Communication,近场通信) 是在无线射频识别 (RFID) 和互联技术的基础上融合演变而来的新技术,是一种短距离无线通信技术标准。这种技术是由飞利浦公司发起,由诺基亚、索尼等著名厂商联合主推的一项近距离无线通信技术,它在单一芯片上集成了非接触式读卡器、非接触式智能卡和点对点通信的功能,运行在 13.56 MHZ的频率范围内,能在大约 10 cm范围内建立设备之间的连接,传输速率可达 106 Kb/s212Kb/s、424Kb/s,未来可提高到 848Kb/s 以上。它提供了一种简单、触控式的解决方案,可以让客户简单直观地交换信息、访问内容与服务。
1基于 RFID模拟接口的移动支付
燃气表的 RFID 模拟接口中集成了微处理器,只读存储器,随机存储器,电可擦除存储器,I/O 驱动几大部分。其中微处理器是整个芯片的核心,完成计算任务;只读存储器用于存放预置的程序代码,一般为微操作系统:随机存储器是作为运算时的暂存数据,存放如命令参数、返回结果、临时工作密钥等数据:电可擦除存储器则完成用户数据的存储,如用户私钥等。具有快速运算、存储量大、安全性高以及难以破译和伪造等特点。
RFID 模拟接口将采用自主研发的"一卡一密"措施,以加强系统的安全性。该技术方案能对每一张智能卡提供一个唯一密码,不仅保证不同客户的 RFID卡读写机具相互不可串用,即使某张智能卡或某台智能卡读写机具有的访问密码被意外泄露或被恶意破译,仍然无法知道其它智能卡的访问密码。
非接触 CPU智能卡与非接触逻辑加密卡相比,拥有独立的 CPU处理器和芯片操作系统所以可以更灵活的支持各种不同的应用需求,更安全的设计交易流程。但与非接触逻辑加密卡系统相比,非接触 CPU 智能卡的系统更为复杂,需要进行更多的系统改造,比如密钥管理交易流程、PSAM 卡以及卡片个人化等。密钥通常分为充值密钥(ISAM卡),减值密钥(PSAM 卡),身份认证密 (SAM卡)。
非接触 CPU 智能卡可以通过内外部认证的机制,例如电子钱包的交易流程,高可靠地满足不同的业务流程对安全和密钥管理的需求。对电子钱包圈存可以使用圈存密钥,消费可以使用消费密钥,清算可以使用 TAC 密钥,更新数据可以使用卡片应用维护密钥,卡片个人化过程中可以使用卡片传输密钥、卡片主控密钥、应用主控密钥等,真正做到一钥一用。
2应用场景
在采用本项目所研究的技术之后,用户有望更加方便地获得移动支付的便利。
用户通过下载相应智能手机客户端的支付中间件,可直接在手机上进行操作,随时随地完成对自己用气的充值、余额查询、详单查询等功能,足不出户办理燃气费缴纳业务。
另外,在指定的地点,通过自助终端(手机)的方式,用户也可以将银行账户的资金转入到 NFC 手机中,用于到家中向电表进行充值。
综合实现以上两点之后,下一步可以研究使用 NFC 手机实现手机支付随时随地从银行划款购水电气,支付成功之后加密数据自动存入手机;然后将手机靠近燃气表(带 RFID 模拟接口),实现预付费储值。
3系统设计
3.1系统整体结构
基于移动支付的 NFC 燃气表系统整体结构。系统正常运行时,燃气表的 MCU将燃气表燃气量信息写入到 ST33 芯片已经定义好的燃气表信息文件中。当用手机靠近燃气表时,ST33 芯片进入 NFC 适配器的磁场,接收手机发出的射频信号,凭借感应电流所获得的能量发送出存储在燃气表信息文件中的信息,再通过我们编写的移动支付终端软件通过 Web 将燃气表信息发送到燃气公司后台进行处理。燃气公司后台收到手机传来的信息并解密后会主动将解密的燃气表信息回传给手机,用户也可以通过手机终端软件主动发送查询并得到燃气公司后台的响应。用户、银行、燃气公司之间还可以建立安全支付的通信信道,满足用户的远程支付需求。
3.2NFC燃气表的内部结构
NFC 燃气表在原有预付费燃气表的基础上,增加了一个 NFC 通信接口,去掉了原来的卡座。
NFC 单元包括 NFC 控制器和 NFC 安全单元。NFC 控制单元的主要功能是通过天线与外界的NFC 手机通信,负责控制与 NFC 手机、NFC 安全单元和主控 MCU之间的信息交互。NFC安全单元主要负责执行与安全相关的算法,存储关键数据,并输出计算结果给 NFC 控制单元。通信接口主要包括 SWP、I2C、7816 接口。
3.3移动支付终端系统的结构模块
移动支付终端系统主要包括 NFC 手机接口调用、RFID 卡识别、移动终端与 RFID卡的数据传输、燃气公司对用户 RFID 燃气表的管理、用户的远程支付等结构模块。
手机接口调用模块主要用来实现移动支付终端软件与手机 NFC 适配器的连接与数据通信。通过对 Android 系统提供的 android.nfc package 和android.nfctech package 两个 API的调用实现移动支付终端客户端软件和手机 NFC 适配器之间的连接与访问。我们所使用燃气表中的 RFID 电子标签支持的是 ISO-DEP (ISO 14443-4) 技术标准,因此可以先通过对android.nfc package 的调用实现客户端与适配器之间的连接。再调用 android.nfc.tech package 提供的相应的 IsoDep 类创建相应的对象,以实现对该 tag 即燃气表中 RFID 电子标签的访问。
认证的流程可以分成以下几个步骤:
(1)应用程序通过 RFID 读写器向 RFID 电子标签发送认证请求;
(2) RFID 标签收到请求后向读写器发送一个随机数 B;
(3)读写器收到随机数 B 后向 RFID 电子标签发送使用要验证的密加密 B 的数据包其中包含了读写器生成的另一个随机数 A;
(4)RFID 电子标签收到数据包后,使用芯片内部存储的密钥进行解密,解出随机数 B并校验与之发出的随机数 B 是否一致;
(5)如果是一致的,则 RFID 使用芯片内部存储的密对 A进行加密并发送给读写器;
(6) 读写器收到此数据包后,进行解密,解出 A 并与前述的 A比较是否一致;
如果上述的每一个环节都成功,则验证成功:否则验证失败。这种验证方式可以说是非常安全的,破解的难度也非常大。
出处 物联网技术
原标题 基于移动支付的NFC 燃气表设计
作者 何荣誉 肖志华
参考资料