HCE关键技术研究与应用文献综述
2020-04-29 15:20:36
1.目的及意义
技术路线
学习Eclipse,了解安卓框架——设计软件各界面样式——学习NDEF协议、官方HCE开发资料——读卡操作、写卡操作java文件编写——卡模拟java文件编写——初步完成Project,安装至手机中——实际测试与修改3. 参考文献
目的与意义
HCE技术是Google于2013年发布Andrioid4.4操作系统中的基于主机的卡模拟技术,属于NFC支付的一种。NFC(近距离无线通讯技术)是由非接触式射频识别(RFID)演变而来,能够通过含有安全单元SE(Secure Element)的芯片实现短距离内与兼容设备进行识别和数据交换的技术。HCE技术通过模拟NFC 和SE 通信的协议,通过本地SE(虚拟卡模式)或虚拟SE(主机卡模式)模拟SE硬件,从而模拟各种主机卡。
传统NFC因为其近距离高速的数据交换和低廉的制造成本的优点,在各种移动设备终端 、消费类电子产品有广泛的运用。但在不同行业需要使用到不同的含有SE的硬件,如SIM、门禁卡等,而且各行业领域中的标准不同,加上卡商、方案商的利益和产业格局博弈,NFC一般在行业闭环内中得到运用[1],在开环产业链中始终没有实现一卡通。而HCE能将这些硬件统统包含于一部移动设备(如具有NFC功能的手机)中。这使得原本通过硬件手机支付NFC中的各产业链(运营商、金融行业、内容服务商、手机厂商等)能够得到很大程度上的缩短[4],同时在行业标准不同的情况下能够实现NFC一卡通。但由于是软件模拟,HCE的安全性比硬件支付低。正因为如此,HCE技术的使用一般仅仅处于试用阶段。
近年来,HCE技术的运用越来越广泛。云闪付便是其中的一个典型例子,通过将银联卡绑定到具有NFC功能的特定设备(手机、可穿戴产品)上,就可以通过线上(扫描二维码等)或传统线下方式进行消费、转账及提现等操作。其采用的模拟方式通过云端服务器传递数据,属于主机卡模拟。虚拟卡模拟方式运用则在一些范围较小的领域,如小米手机的较新机型的MIUI系统中小米钱包中推出的门禁卡功能,只需要将门禁卡接近手机进行识别录入,即可将手机当作门禁卡使用。
HCE技术的发展前景很开阔,本设计运用HCE技术在安卓平台上进行软件开发,能够为类似于校园一卡通的安卓平台打下基础,使在校人员能够使用移动设备充当各种校内卡,为日常生活提供便利,减少多种卡的管理麻烦。另一方面,HCE的安全性问题在校内的封闭环境下也能够做到控制。
国内外研究现状
吕芙蓉,王竞凯[1] 针对HCE技术的出现,分析了其发展前景中的阻碍与其影响力。Android系统由于其更新过程冗长导致市面上系统不能统一,从而在某个系统HCE功能出现问题时需要很长时间解决。另外Android系统的加密性不够强,如果云端体系被攻破,整个HCE支付系统将出现巨大风险。HCE技术同时使银行、运营商、OEM商之间对SE的争夺降低,提供了更低开发成本推出产品的可能。
张博[2]针对HCE技术在Android系统存在的安全威胁提出了几种解决方案。并根据远端SE的HCE应用模型,设计了一种实测在Android系统中可用的远程刷卡系统。
孙福侠[3]针对NFC手机支付易用性设计问题、功耗问题、测试用例不完全问题,以单线通信协议为基础,基于android操作系统对NFC手机支付进行了设计和研究,并提出可行的方案。其测试结果做到了高电流只占用总时间的0.006%,总功耗由24mA降低到了0.5mA的程度。
缪凯[4]针对HCE技术安全级别较低的问题,提出了结合前端和云端模式在封闭环境下的校园HCE的应用方案。可以得出,HCE技术在校园环境适用性较强。
刘超超[5]采用了Diffie-Hellman密钥交换算法,在保证数据的安全性的基础上提出了能使NFC手机模拟成非接触式智能卡(交通卡)的设计方案。此方案是一种一卡通在手机实现的方案。
江中柱[6]采用Eclipse作为开发工具,以SQL Server作为系统数据库、Android系统作为客户端,设计了一种基于Android的NFC的门禁系统。这种方式能够使类似于门禁的刷卡系统向智能化发展。
钱帮全、焦良葆、陈瑞[7]针对HCE技术的安全性不及物理CPU卡的问题,结合TEE的安全解决方案,设计了一个云支付系统,并进行了在用户端、NFC工具、硬件端等的测试。此方案与目前的云闪付技术类似。
赵青娟[8] 在分析了基于Java技术的智能卡也就是Java Card的安全机制及其加密算法的基础上,采用应用广泛的DES和RSA加密算法,针对Android系统的NFC安全架构,提出了基于Java技术的智能卡的安全机制及其加密算法和应用防火墙机制来提高数据的安全性的方法。并开发了能使手持设备与Java Card的安全通信的Java Card安全应用程序。为NFC在Android系统中的应用的安全问题提出了一种解决方法。
刘小海[9] 针对市场上多数手机的NFC功能不完整,卡模拟支持移动快捷支付功能欠缺的问题。设计了一款小型化、高性能、易移植的NFC核心模块,该模块可以方便地移植到预留接口的应用终端上。经测试,可以实现NFC的三大功能:读写常见NFC标签、模拟成14443A卡、通过点对点通信发送文本信息。这为市面上手机NFC功能的支持提供了一种方案。
潘明宇[10] 从技术实现的角度提出了一种基于Android HCE的电子钱包无卡支付解决方案。 并将方案和其他无卡支付方案进行了对比,提出"HCE无卡支付方案更适合城市交通互联互通的应用场景"的理论。此方案为电子钱包的实现提供了的新的一种方式。
彭弼代[11] 针对移动支付系统的特点和现状,结合HCE技术,设计了一个移动支付系统。设计引用了一套对称密钥机制负责系统的通信安全和内容安全。该设计能够实现NFC手机近场交易的消费结算、个人与个人间的转账业务。
孙恒[12]设计了基于 NFC 技术和云服务的手机校园一卡通系统手机端。通过 APP方式登录并与位于学校私有云的手机校园一卡通系统进行数据通讯,达到一APP全校多功能通用。该设计体现了NFC技术在安卓平台与规模较小的校园云端之间运用有良好适用性。
C.Shepherd等人[13]对环境传感器作为基于 NFC非接触式应用的邻近检测机制的适用性进行了评估。他们从Google Android 平台选择了17个传感器,每个传感器都被用来记录四个不同物理位置的1000次非接触式交易的测量结果。并得出结论:选用的传感器中没有一个适用于NFC非接触式应用中的接近检测。这说明NFC的交易时间限制等标准在以目前的传感器作为接近检测可能较难实现。
Anne-Marie Lesas; Serge Miranda[14], 分析了包括HCE模式在Android平台的三种NFC模式的应用程序编程,包括其IDE开发环境。并说明了Android提供的两个声明BroadcastReceiver的解决方案:在manifest文件中静态声明或在处理时进行动态声明。这是NFC在Android平台开发的基础。
Zhang Aobo[15] 介绍了android上的NFC实现框架,并详细描述了关键技术的实现。包括Android系统中应用程序在标签中进行读取NDEF(NFC数据交换格式)的消息格式并进行交互,Android系统中如何识别NFC标签,读取数据之后,如何将Intent消息进行过滤。最后给出了实际测试结果。这是安卓NFC编程的一个整体逻辑。
He, Zhizhou amp; Liu, Yijun[16].针对NFC在移动支付在安卓系统中使用时中继攻击使NFC接口泄漏等缺点,提出了一个新的可以使用现有的规范、技术和硬件实现的使用了NFC shield的NFC支付模型,该模型也能保证NFC移动支付安全便捷和支付过程中的身份认证功能。该设计表明NFC在安卓系统中应用依旧存在较大的安全问题。
{title}2. 研究的基本内容与方案
{title} 设计的基本内容
本设计为Eclipse开发的软件,具体组成如下:
主界面(Activity):显示当前选择模拟的卡,软件使用说明、读卡、卡管理、信息记录功能界面按钮。
读卡界面(Activity):在主界面按下读卡界面按钮跳转至此界面并调用读卡服务,此界面含读取前后提示信息、读取记录界面按钮。
读取记录(Activity):显示以往读取的卡种类、读取时间等。
卡管理界面(Activity):已读取各卡的信息浏览、删除、选择或取消要模拟的卡。
信息记录界面(Activity):设备作为模拟卡使用时的刷卡种类、金额、时间等记录。
读卡服务(Service):由读卡界面调用的服务,使设备在读卡器模式下读取卡,录入完毕后自动关闭。
模拟卡服务(Service):常驻后台服务、使设备在卡模拟模式下模拟正在选择的卡。
设计目标
使用Eclipse软件在Android平台开发一款含NFC功能的手机可用的软件,使手机通过该软件能够模拟一张含有se安全模块的实体卡。
开发的软件能够通过手机NFC模块读取实体卡,可在界面显示与管理已读取的卡,可选定目前手机模拟的是哪一张卡,可使用阅读器(pos终端、门禁等)扫描正在模拟的卡并进行交易等操作,可在扫描后返回交易等数据变更信息。
采用的技术方案
软件各界面的实现:学习Eclipse软件的使用,创建Android Application Project项目,在项目结构的reslayout中建立和编辑xml文件,每一个xml文件对应一个界面。
读写卡服务的实现:阅读书籍了解NFC的技术规范和NDEF、RTD等协议,认识这些协议中的数据结构与数据类型。学习Java语言,使用Android.nfc包和Android.nfc.tech包中的操作函数,在Eclipse项目的Java文件中编写读取NDEF消息和不同的NFC tag的代码。
卡模拟服务的实现:在Eclipse的android开发环境中采用卡模拟-主机卡模式(即HCE技术)并参阅安卓官方开发资料网站的HCE板块进行代码编写。网站地址:https://developer.android.com/guide/topics/connectivity/nfc/hce.html#HceServices
界面(Activity)和后台服务(Service)之间的交互:读写卡拟采用bindService方法,与读卡界面进行绑定,实现同时运行与终止。模拟卡拟采用startService方法,使其能常驻后台,达到手机模拟NFC卡的功能。
软件测试与修改:使用NFC手机进行实际刷卡等操作,与预期效果对比。在此基础上进行错误排查并改正。
需要实现的关键技术:
读取NFC标签、NFC卡时NDEF协议的数据在Android软件中的识别与写入等操作:Eclipse的安卓nfc包中的操作代码。
读取数据数据后如何调度对应的(应用)Activity:NFC Intent过滤(通过Intent调用Acivity )或AAR应用程序信息唯一传递。
学习Eclipse,了解安卓框架——设计软件各界面样式——学习NDEF协议、官方HCE开发资料——读卡操作、写卡操作java文件编写——卡模拟java文件编写——初步完成Project,安装至手机中——实际测试与修改3. 参考文献
[1] 吕芙蓉, 王竞凯. HCE技术及其产业影响力[J]. 金融科技时代, 2015, 第23卷(1):59-60.
[2] 张博. HCE技术在移动支付中的应用研究[D].西安电子科技大学,2014.
[3] 孙福侠. 基于Android的NFC手机支付设计与测试[D].上海交通大学,2014.
[4] 缪凯.HCE的校园应用研究[J].中国新技术新产品,2015(08):18-19.
[5] 刘超超. 基于Android和NFC技术的交通一卡通研究与实现[D].杭州电子科技大学,2017.
[6] 江中柱. 基于ANDROID的NFC门禁系统设计与实现[D].哈尔滨工业大学,2016.
[7] 钱帮全,焦良葆,陈瑞.基于HCE的云支付系统实现[J].信息化研究,2016,42(05):75-78.
[8] 赵青娟. 基于Android的NFC安全架构研究[D].华北理工大学,2015.
[9] 刘小海. 基于Android的NFC模块设计与实现[D].电子科技大学,2015.
[10] 潘明宇.一种基于HCE的电子钱包无卡支付方案[J].交通与港航,2017,4(03):30-33 68.
[11] 彭弼代. 基于HCE技术的移动支付系统研究与实现[D].北京交通大学,2016.
[12] 孙恒.NFC技术和云服务的手机校园一卡通设计[J].实验室研究与探索,2016,35(07):120-126.
[13] C. Shepherd et al., "The Applicability of Ambient Sensors as Proximity Evidence for NFC Transactions," 2017 IEEE Security and Privacy Workshops (SPW), San Jose, CA, 2017, pp. 179-188.
[14] Anne-Marie Lesas; Serge Miranda, "Developing NFC Applications with Android," 2017 in The Art and Science of NFC Programming , 1, Wiley Telecom, , pp.45-105
[15] Zhang A. Implementation and Application of NFC Based on Android[C]. International Conference on Computer Sciences and Automation Engineering. 2016.
[16] He, Zhizhou amp; Liu, Yijun. (2016). Research and design of NFC mobile payment based on Android. 10.2991/icmmct-16.2016.311.
剩余内容已隐藏,您需要先支付 5元 才能查看该篇文章全部内容!立即支付