2. 宁波水表股份有限公司, 浙江 宁波 315032
2. Ningbo Water Meter Company Limited, Ningbo Zhejiang 315032, China
近场通信(Near Field Communication,NFC)技术是一种工作频率为13.56 MHz,通信距离在10 cm以内的近距离无线通信技术。NFC设备由于具有简单易用、价格低廉、携带方便和支付便捷的特点,可用于数据交换、连接服务、电子支付以及票务系统等环境中,特别是被用来替代信用卡、门禁卡以及会员卡等智能卡。随着NFC技术的发展和应用普及,Juniper研究预测,全球NFC移动支付市场规模在2017年将增加到1800亿美元[1]。
目前,卡式预付费水表在智能水表领域占有很大比例,该类水表通过智能卡或逻辑加密卡来传递预存数据以实现水费的预付费功能。文献[2]指出了传统IC卡表降低了管理者和用户间人性化服务的程度。用户只能充值水费而无法方便地获知水表信息,并且充值水费需要去指定营业点购买水费[3],耗费时间精力,即使是使用第三方支付软件购买水费也会造成用户获取信息不全面,用户体验差等影响。水表的监督使用一直是水务管理的重要环节[4],而用水公司目前无法及时掌握用户水表的状态和用量信息,管理方式存在步骤繁琐、费时费力等弊端,造成许多管理上的漏洞。文献[5]中也特别强调了智能水表的发展趋势包括管理使用功能的拓展。用户和水司都迫切需要一种能快速交流、传递信息的智能水表,来满足方便快捷安全的水费移动支付以及数据管理等多方面的需求。
本文将NFC技术应用于智能水表中,结合系统潜在的安全性问题充分利用NFC协议安全、快速连接等特点设计并实现了一个具有移动支付和信息查询功能的NFC智能水表系统,即水表具有近场通信能力可与用户手机直接交互,实现水费预支付、退费和用水量查询等操作,同时也能满足用水公司数据管理需求。移动支付NFC智能水表已由合作方宁波水表股份有限公司组织专家进行了验收,经检测,各项功能指标达到企业设计要求,已开始组织小批量生产,在近期可能会上市。
1 系统架构移动支付NFC智能水表系统主要由四个部分组成:用户、用水公司、第三方支付公司以及银行,彼此之间建立安全支付的通信信道,并由金融业务、金融逻辑或业务逻辑相联系,如图 1所示。金融业务和金融逻辑用于银行、第三方支付系统和用水公司系统三者之间的资金交易。业务逻辑指用户通过手机客户端以及支付中间件进行的水费充值、退款、余额查询、用水查询等与用水公司后台的交互。
使用时,用户下载手机客户端以及支付中间件,点击相应命令发起请求后,用水公司后台收到手机传来的请求后将响应用户请求并回传相应信息至用户手机。用户再将手机靠近NFC智能水表实现数据交换,随时可以完成水费充值/退费的支付功能以及查询余额、用水信息和检测水表状态等数据查询功能。充值时可将银行账户的资金通过第三方支付公司转入到NFC手机中,支付成功之后加密数据自动存入手机,然后用户将手机靠近水表实现水费充值。为降低水表功耗,让水表端作为目标设备工作在被动态,采用负载调制响应手机请求,手机作为发起设备提供射频场。当手机靠近水表时,水表中的NFC模块接收手机发出的射频信号,凭借感应电流所获得的能量发送出存储在水表当中的信息,再由手机客户端通过网络将水表信息上传到用水公司后台进行处理。
2 系统设计 2.1 NFC智能水表硬件设计NFC智能水表内部结构如图 2所示。主控制单元(Microcontroller Unit,MCU)通常情况下使用低功耗工作模式,必要时通过中断唤醒控制芯片,中断处理后又进入休眠状态;流量检测采用两个干簧管计量叶轮转动圈数,MCU以中断方式按照阶梯水价或阶梯水量计算流量和费用;存储模块用于记录用户用水量的历史数据以及水表信息;LCD显示模块用于显示用水信息或提示水表工作状态;防拆干扰检测用于防止用户恶意拆卸、破坏水表或者产生磁干扰影响水表正常运行;NFC接口部分包含NFC模块和安全单元SE。NFC模块集成了13.56 MHz下的各种主动/被动式非接触通信方法和协议,又包括NFC控制器和天线,负责控制与NFC手机、安全单元和主控MCU之间的信息交互。安全单元则执行与安全相关的算法加密数据,并存储关键数据及时输出给NFC模块。系统硬件或上电复位时须从存储单元中恢复之前的重要数据,而且水表正常工作中需要及时检测系统缺电、破坏或干扰信号,并发出相应提醒信号。当系统缺电、表被拆开、受磁干扰、表内金额小于最低金额时,水表关闭阀门。另外,每月至少执行一次阀门开关,以防止阀门长期不动导致阀门生锈。
主控MCU与NFC模块接口电路连接如图 3所示,NFC模块与主控MCU通信模式由模式控制设置,本系统采用串口连接。水表内NFC模块在无需产生磁场的情况下检测潜在外部NFC设备:当磁场达到阈值时NFC模块IRQ中断引脚返回标志信号,MCU继续控制NFC模块与手机交换通信参数和信息;若磁场未达到阈值时,MCU保持休眠状态。这将大大降低系统待机功耗并且能及时响应用户操作,减小系统响应时间,为用户带来良好的交互体验。
Android系统提供了两个包用于NFC开发,分别是android.nfc包和android.nfc.tech包。其中android.nfc包含6个类和3个接口,提供了NFC设备读写NFC交换数据格式(NFC Data Exchange Format,NDEF)的消息操作函数以及数据交换函数,可用来与本地NFC适配器交互。其中NfcAdapter.CreateNdefMessageCallback接口主要用于当前NFC设备获取其他NFC设备NDEF消息,NfcAdapter.OnNdefPushCompleteCallback接口主要用于当前NFC设备将开发者应用层的数据发送到其他NFC设备成功后的回调接口。android.nfc.tech包含10个类,主要提供对不同目标设备的读写操作以及进行I/O操作[6]。通过对这两个NFC包中的类和接口的调用,即可实现手机与NFC适配器的数据交互,从而实现与水表的数据通信。
2.2.2 数据交换格式移动支付NFC智能水表系统数据交换格式采用NDEF标准。在进行NFC通信时,NDEF消息都以数据包的形式封装在每一个通信帧当中。NDEF消息交换的信息由一系列记录(Record)组成。每条记录包含一个有效载荷(Payload),记录内容可以是文本、网址、邮件或者NFC自定义的数据类型,可将用户水费余额信息以及用水量等信息采用文本格式记录。一条NDEF消息结构如图 4所示,交换信息可以包含单个或多个记录,每条记录的数据类型(Type)可以相同也可以不同。使用NFC定义的数据类型,载荷内容必须被定义在一个NFC记录类型定义文档中。记录中的数据类型和大小由记录载荷的头部(Header)注明[7]。
移动支付NFC智能水表近场通信功能的实现,如图 5所示,包括系统初始化阶段和传输协议阶段。系统初始化包括底层规范规定的近场通信模块初始化、传输协议参数的选择以及上层协议规定的帧格式、请求/响应通信方式的实现。系统初始化完成后使模块处于休眠状态,当检测到发起设备后且无超时的情况下,激活水表的NFC通信模块,系统进入传输阶段。
操作人使用手机发起相应功能的连接请求,水表端接收命令后,将按照手机发起的通信模式选择传输速率及通信参数,并利用面向连接的数据传输服务以请求/响应的方式与手机进行数据交换。数据交换过程为首先判别用户权限,按照功能命令的种类执行相应操作,最后水表端响应手机命令并返回数据或操作状态信息。其中在交换数据协议里包含了有关NFC通信安全协议的内容。
3 安全性分析窃听、数据篡改和重放是本系统主要的威胁,事实上通过使用一个接收器、合适的天线,射频信号译码器就可以窃听信息[8]。攻击者可以在较远距离使用一个高容量强大的天线拦截NFC设备之间的通信。攻击者在理想状态下,对主动设备的窃听距离最大为10 m,对被动设备的窃听距离最大只有1 m[9]。所以系统需要使用安全通信信道,将用户的数据经过加密再传输,既可以很容易地传播数据而免受窃听,同时也避免数据被篡改。
目前,NFC安全标准[10-11]定义了数据交换格式、标签类型和安全协议,其中规定了用户之间的秘密通信需要密钥协商机制。NFC安全标准主要分为两个部分:共享密钥服务(Shared Secret Service,SSE)和安全信道服务(Secure Channel Service,SCH)。SSE生成一个用于NFC设备之间的安全通信的密钥:在这个过程中,执行密钥协商和密钥认证过程;共享密钥服务保证NFC设备通信的机密性和完整性。SCH指在密钥协商阶段需使用Diffie-Hellman椭圆曲线加密算法(Elliptic Curves Diffie-Hellman,ECDH)[12]。而在数据传输阶段结合消息认证码(Message Authentication Code,MAC)传输加密数据(Encrypted data,EncData),数据的加解密算法为高级加密标准(Advanced Encryption Standard,AES)加解密算法,由安全单元实现数据的加解密。
手机和NFC智能水表间的密钥协商、认证流程以及数据交换流程如图 6所示,符号说明如表 1所示。手机在通信前产生随机数NA,并发送NA和公钥QA给水表,水表接收后生成随机数NB,并和公钥QB一起发送给手机。通信双方利用对方的公钥和自己的私钥计算得到z,接着使用密钥推导函数(Key Derivation Function,KDF)生成的共享密钥(Master Key,MK)。为验证双方生成的MK相同,双方使用MK、ID和公钥生成密钥认证标签MacTag并相互发送。验证通过后在两个设备间就建立了一个共享密钥,然后共享密钥可以用于提供保密、完整、认证的数据传输安全信道,并且在手机和水表端事先协商一个初始序列号(Sequence Number Variable,SNV),并协商递增方法,如SNV每次加1或以一定规律递增,通过消息中的序列号来判断消息的新鲜性来抗击重放攻击。
本文结合近场通信技术的安全通信协议和唤醒机制设计了具有移动支付功能和数据查询功能的NFC智能水表系统。首先介绍了系统架构,包括用户使用NFC手机实现移动支付水费和读取NFC智能水表数据并上传到用水公司的过程;其次,系统设计包括NFC智能水表的软硬件设计以及手机客户端的NFC功能实现,并利用NFC安全协议解决了系统潜在的安全问题,使得水表能与NFC手机安全便捷地进行信息交换,用户在家即可实现水费移动支付和用水量查询等操作,具有广阔的应用前景。
[1] | NFC mobile payments & retail marketing-business models & forecasts 2012-2017[EB/OL].[R]. Juniper Research, 2012.([2016-03-20] . http://www.docin.com/p-449930064.html. |
[2] | 韩树屏, 李煊. 智能水表的应用现状及前景展望[J]. 机械制造与自动化, 2008, 37 (4) : 88-90. ( HAN S P, LI X. Application and development of intelligent water meter[J]. Machine Building & Automation, 2008, 37 (4) : 88-90. ) |
[3] | 苗苗, 李德宁, 武雪燕. IC卡预付费智能水表在供水行业的应用与推广[J]. 自动化仪表, 2014 (3) : 52-54. ( MIAO M, LI D W, WU X Y. Application and popularization of the prepaid IC card intelligent water meter in water supply industry[J]. Process Automation Instrumentation, 2014 (3) : 52-54. ) |
[4] | 何锦, 郭颂明, 钟华, 等. 借力RFID创新水务客户服务管理[J]. 中国给水排水, 2014 (22) : 162-164. ( HE J, GUO S M, ZHONG H, et al. Bring innovations to water customer service management with RFID technology[J]. China Water & Wastewater, 2014 (22) : 162-164. ) |
[5] | 王宗辉, 张世豪, 姚灵. 智能水表技术及发展趋势[J]. 仪表技术, 2014 (6) : 45-48. ( WANG Z H, ZHANG S H, YAO L. Smart water meter technology and its development trend[J]. Instrumentation Technology, 2014 (6) : 45-48. ) |
[6] | 赵波. Android NFC开发实战详解[M]. 北京: 人民邮电出版社, 2014 : 62 -66. ( ZHAO B. Android NFC Development:Practical Explanation[M]. Beijing: Post & Telecommunication Press, 2014 : 62 -66. ) |
[7] | 王淼. NFC技术原理与应用[M]. 北京: 化学工业出版社, 2014 : 21 -23. ( WANG M. NFC Technology Principle and Application[M]. Beijing: Chemical Industry Press, 2014 : 21 -23. ) |
[8] | MADLMAYR G, LANGER J, KANTNER C, et al. NFC devices:security and privacy[C]//ARES 08:Proceedings of the Third International Conference on Availability, Reliability and Security. Piscataway, NJ:IEEE, 2008:642-647. |
[9] | LIANG B, HU A Q, QIN Z Y. Trends and brief comments on anti-collision techniques in radio frequency identification system[C]//ITST 2006:Proceedings of the 6th International Conference on ITS Telecommunications. Piscataway, NJ:IEEE, 2006:241-245. |
[10] | ISO/IEC.13157-1:2010, Information technology telecommunications and information exchange between systems-NFC security-Part 1:NFC-SEC NFCIP-1 security service and protocol[S].[S.l.]:ISO/IEC, 2010. |
[11] | ISO/IEC.13157-2:2010, Information technology telecommunications and information exchange between systems-NFC security-Part 2:NFC-SEC cryptography standard using ECDH and AES[S].[S.l.]:ISO/IEC, 2010. |
[12] | ISO/IEC.15946-1:2008, Information technology-security methods-cryptographic methods based on elliptic curves-Part 1:General[S].[S.l.]:ISO/IEC, 2008. |