HCE基础知识普及

关于HCE——Android手机NFC模拟刷卡成果和心得(下) HCE模拟仅限于IsoDep的APDU交互,M1就是一条死路。。。 阅读详情

NFC技术发展

NFC(Near Field Communication)是“近场通讯”的简称,采用短距离RF(射频)通讯技术。NFC 工作频率为13.56Hz,有效范围为500px 以内,其传输速度有106 Kbit/秒、212 Kbit/秒或者424 Kbit/秒三种,能够应用在手机/平板、电脑/游戏机、印表机、电子产品,甚至家电设备中。

NFC技术已经有十来年历史,在过去的几年里一直被称为很有前景的便利移动支付技术。但即使在NFC手机日渐成为智能机标配的今天,基于NFC的移动支付却没有在消费者群体中形成气候。一个重要的原因在于:所有人都在争着控制NFC 技术的安全元件(the Secure Element)。安全元件,顾名思义,是保证财产信息安全的,控制这个就可以控制每一笔交易的费用。SE导致了金融机构、OEM和运营商之间无休止的争斗,没办法联合起来,这使得NFC移动支付发展缓慢。

NFC与HCE的关系:一般将NFC(近场通讯支付)支付和二维码支付并称为两大支付,而HCE(基于主机的卡模拟)只是实现NFC的技术手段,它绕开了SE的限制。

HCE概念

HCE(host-based cardemulation),即基于主机的卡模拟。

在一部配备NFC功能的手机实现卡模拟,目前有两种方式:一种是基于硬件的,称为虚拟卡模式(Virtual Card Mode);一种是基于软件的,被称为主机卡模式(Host Card Mode)。

在虚拟卡模式下,需要提供安全模块SE(Secure Elemen),SE提供对敏感信息的安全存储和对交易事务提供一个安全的执行环境。NFC芯片作为非接触通讯前端,将从外部读写器接收到的命令转发到SE,然后由SE处理,并通过NFC控制器回复。

在主机卡模式下,不需要提供SE,而是由在手机中运行的一个应用或云端的服务器完成SE的功能,此时NFC芯片接收到的数据由操作系统或发送至手机中的应用,或通过移动网络发送至云端的服务器来完成交互。两种方式的特点都是绕过了手机内置的SE的限制。这一标准的妙处在于,它不需要整个行业为了控制安全元件而争斗。

HCE

使用基于主机的卡模拟时(HCE),NFC 控制器从外部读写终端接收到的数据将直接被发送到主机系统上,而不是安全模块。上图描述了这个过程。

HCE技术的关键大事记

2012/09/19,SimplyTapp在Android第三方CyanogenMod固件中实现主机卡模拟技术HCE;

2013/11/01,Google发布最新的Android4.4操作系统,支持主机卡模拟HCE技术,目前已通过谷歌钱包将HCE应用到Nexus 5手机中,可支持Paypass;

2013/12/13,美国连锁咖啡TimHortons在北美4000多家门店推出基于HCE的NFC支付应用;

2014/02/17,西班牙银行Bankinter发布基于HCE技术的虚拟卡手机钱包;

2014/02/19,Visa和万事达卡同时宣布将基于HCE技术推动云端移动支付;

2014/02/20,全球智能卡制造商ABnote与SimplyTapp合作,将HCE技术加入到其TSM平台中。

NFC标准对Android支持

NFC标准对很多智能卡通讯协议提供了支持,而Android4.4系统也支持包括主流智能卡应用在内的很多非接触智能卡协议,因此使用NFC手机和HCE应用,就可以方便的模拟出不同类型的智能卡应用。

同样市场上很多NFC读卡终端也支持这些协议,包括一部支持NFC的Android设备作为读卡器本身。这样通过HCE技术我们只用Android设备就可以部署一个端对端的NFC解决方案。

Android4.4系统使用NFC论坛制定的的ISO-DEP标准协议(基于ISO/IEC14443-4(ISO-DEP)标准)进行数据传输,传输的数据单元被称为应用协议数据单元(APDUs)。

另外,在数字协议方面(相当于MAC层协议)Android系统只要求对顶层的NFC-A(ISO/IEC 14443-3 Type A)技术提供支持,而对NFC-B技术的(ISO/IEC 14443-3 Type B)的支持则是可选的,这些技术提供了包括初始化、冲突检测等解决方案。

HCE

Android系统上的HCE技术是通过系统服务实现的(HCE服务)。使用服务的一大优势是它可以一直在后台运行而不需要有用户界面。这个特点就使得HCE技术非常适合像会员卡、交通卡、门禁卡这类的交易,当用户使用时无需打开程序,只需要将手机放到NFC读卡器的识别范围内,交易就会在后台进行。当然更推荐为用户提供配套的HCE应用UI界面,这样除了像普通的智能卡片一样刷卡使用以外,还可以通过UI界面为用户提供更多的在线服务功能,包括查询、充值和信息推送等。

当用户将手机放到NFC读卡器的识别范围时,Android系统需要知道读卡器真正想要和哪个HCE服务交互,这样它才能将接收到的数据发送到相应的HCE应用。HCE参考ISO7816规范,定义了一种通过应用程序AID来选择相应应用的方法。因此,如果要为自己的新的读卡设施部署NFC应用,就需要定义自己的AID。

HCE技术实现NFC模拟

在手机上用HCE技术实现NFC卡模拟,首先要创建一个处理交易事务的HCE 服务,Android4.4为HCE服务提供了一个非常方便的基类,我们可以通过继承基类来实现自己的HCE服务。如果要开发已存在的NFC系统,我们只需要在 HCE 服务中实现NFC 读卡器期望的应用层协议。反之如果要开发自己的新的NFC 系统,我们就需要定义自己的协议和APDU 序列。一般而言我们应该保证数据交换时使用很少的APDU包数量和很小的数据量,这样用户就不必花很长时间将手机放在NFC 读卡器上。

HCE 技术只是实现了将NFC 读卡器的数据送至操作系统的HCE 服务或者将回复数据返回给NFC 读卡器,而对于数据的处理和敏感信息的存储则没有具体实现细,所以说到底HCE 技术是模拟NFC 和SE 通信的协议和实现。但是HCE 并没有实现SE,只是用NFC 与SE 通信的方式告诉NFC 读卡器后面有SE的支持,从而以虚拟SE 的方式完成NFC 业务的安全保证。既然没有SE,那么HCE 用什么来充当SE 呢,解决方案要么是本地软件的模拟,要么是云端服务器的模拟。负责安全的SE如何通过本地化的软件或者远程的云端实现,并且能够保障安全性,需要HCE厂商自己考虑和实现。

关于HCE——Android手机NFC模拟刷卡成果和心得(上) 在最近,开始研究了手机模拟NFC刷卡的一些内容,想是自己实现一次手机模拟刷卡 阅读详情

相关推荐

HCE技术实战分析

Google开始放出HCE的支持后,掀起了巨大的反响。 摆脱了SWP-SIM对运营商的依赖,摆脱了eSE对手机厂商的依赖,其对于产业生态的影响不言而喻。网上基于HCE的前景和应用讨论的不亦乐乎,但技术层面的资料却乏善可陈。现我们就通过一个具体的实现来揭秘HCE,同时给出一个技术层面的理解。

邹德强(CaesarZou)的专栏 2万+

HCE移动支付详解

详细介绍HCE技术与卡模拟、主机模拟相关。对整个HCE过程进行详细解答,可对HCE开发提供非常好的帮助

基于HCE的NFC移动支付及云HCE

老师布置的某作业,截取一些,具体想了解请看参考文献一、移动支付简介移动支付也称为手机支付,就是允许用户使用其移动终端(通常是手机)对所消费的商品或服务进行账务支付的一种服务方式。单位或个人通过移动设备、互联网或者近距离传感直接或间接向银行金融机构发送支付指令产生货币支付与资金转移行为,从而实现移动支付功能。移动支付将终端设备、互联网、应用提供商以及金融机构相融合,为用户提供货币支付、缴费等金融业务。

小白菜的博客 5272

HCE基础知识

HCE是什么   “HOST card emulation” 简称HCE, 这个述语用来描述一种软件架构。这种架构为NFC设备与远程主机之间的通讯创造了一个安全的支付环境。利用HCE技术,用户的手机就可以替代他们的支付卡,交通卡,门禁以及通行证这些传统的卡片。 安卓手机内置的NFC 控制器使得它可以与POS终端交互完成一笔交易,这个过程和传统的非接卡与POS交易是一样的,只是把你

fayeyiwang的专栏 6596

Android HCE开发

我们来详细说明一下关于不同模式下的AID响应问题(前提:一个手机,手机上有A、B两个HCE APP,通过读卡器向手机发送APDU选择指令)1、A和B的应用AID设置的都是payment模式,只有手机当前选定的默认支付APP会响应,另外一个APP的AID选择指令是不会响应的。2、A和B的应用AID设置的都是other模式,当A和B的AID是相同的时候系统会弹出对话框,列出A和B,让用户选择。如果A和B的AID不同,那么两个APP之间没有相互影响。

liudong200618的博客 2653

基于C++的MapReduce实现(HCE)

主要研究怎么使用MapReduce实现C++的调用

hit_090420216的专栏 7198

HCE-OS基础介绍

HCE-OS(Huawei Cloud EulerOS)最为华为云原生操作系统发行版,无缝替代CentOS openEuler是一款开源、免费的操作系统,由openEuler社区运作。当前openEuler内核源于Linux,支持鲲鹏及其它多种处理器,能够充分释放计算芯片的潜能,是由全球开源贡献者构建的高效、稳定、安全的开源操作系统,适用于数据库、大数据、云计算、人工智能等应用场景。...

yaoshutong的博客 3646

微信小程序 NFC HCE卡模拟

需要实现带模拟一张智能卡(门禁卡或者其他业务卡),使用带NFC设备根据指定协议进行读取模拟卡数据(效果图如下): 1. 模拟卡设计 这里使用设备自带NFC模拟卡(HCE)模式,模拟出一张虚拟卡,类似华为钱包,applepay钱包等。选择添加的卡,提供读取。 1.1 数据包交互协议 类TLV数据包格式,及Tag Length Value(和银联IC卡返回数据协议类似)。......

lambert_Lei的专栏 3万+

HCE卡模拟开发指南

本文介绍了基于主机的NFC卡模拟技术(HCE)及其应用。HCE技术允许电子设备模拟NFC卡片,实现与读卡器的通信。使用场景分为前台刷卡(需主动打开应用)和后台刷卡(自动匹配应用)。开发HCE应用需满足设备亮屏解锁、声明NFC权限等条件。文章详细说明了HCE核心接口的功能,如启动/停止业务、收发APDU数据等,并提供了前台刷卡场景的开发步骤示例代码,包括权限声明、能力检测、业务启停等关键流程。

RZer的博客 1150

鸿蒙(HarmonyOS NEXT)开发实战:HCE卡模拟开发指南

应用程序模拟NFC卡片,和NFC读卡器通信完成NFC刷卡业务。从使用场景上,可以分成HCE应用前台刷卡,和HCE应用后台刷卡。

wewqeqwrqw的博客 1602

Android HCE技术实战指南:实现手机模拟智能卡

主机卡模拟(Host-based Card Emulation, HCE)是Android 4.4(API level 19)引入的一项关键技术,允许应用在没有物理安全元件(SE)的情况下模拟NFC智能卡。其核心思想是将卡片逻辑迁移至设备主处理器中运行,通过操作系统提供的类拦截并处理来自读卡器的APDU指令。NFC Forum根据调制方式、编码格式和通信特性划分出三种主要的射频接口标准:NFC-A、NFC-B 和 NFC-F。

weixin_42576804的博客 2633

HCE卡模拟开发

HarmonyOS 5.0.3(API 15 Release)版本支持近场通信(NFC)技术,特别是基于主机的卡模拟(HCE)功能,允许应用程序模拟NFC卡片与读卡器通信。HCE应用场景分为前台刷卡和后台刷卡:前台刷卡需用户主动打开应用并进入刷卡页面,后台刷卡则通过匹配应用ID自动完成交易。开发HCE应用时,需在module.json5文件中声明NFC卡模拟权限,并调用相关API实现功能,如start、stop、on和transmit等。开发步骤包括声明权限、判断设备支持、使能前台优先、订阅数据接收与发送等

RZer的博客 1710

android NFC HCE读与模拟卡

通过谷歌官方demo精简而来的模拟卡模式,实现了手机(android4.4以上)模拟卡功能,通过另一个手机安装的Mycardreader.apk读取数据,测试时用的小米3和OPPO手机,小米三使用内置安全模块时无法模拟卡(发不了数据)。代码包括cardEmulatin和cardReader两部分

Android基于HCE实现模拟Ndef格式的标签卡

当前Android NFC手机基本都能支持基于Host的卡模拟(HCE),其实现原理上需要读卡端和模拟端互相通过校验特定AID来实现通信,这个特性就让手机模拟的普通HCE卡无法被其他手机上通用的NFC三方APP直接读取到数据,比如NFC手机通过HCE模拟出一张银行卡,只有对该HCE银行卡AID 支持的POS机或特殊定制APP才可以与该HCE 银行卡通信,完成交易。7.2 另一个支持NFC功能的手机安装NFC tool pro APP,背靠背读取另一台手机的ndef数据。,NFC三方APP基本可以直接读取。

scyangwei的专栏 2593

非线性功率放大器对QAM传输BER性能的影响及补偿

1、线性功率放大器对传输性能的影响 为表述非线性功率放大器对传输性能的影响,以Saleh模型进行观察。具体来说,在QAM调制器之后添加一个非线性模块,使调制后的波形经历AM / AM和AM / PM转换。 在Saleh模型中,转换用四个参数表示,即AM / AM转换为????a和????a,AM / PM转换为????p和????p。 在Saleh模型中,AM / AM和AM / PM方程以输入电压u的大小表示为: 式中,FAM / AM是AM / AM转换的输出电压与输入电压的关系,而FAM

太阳帅帅的博客 2080

从符号到基元:Token的技术演化史与“词元”汉化的术语学

中文摘要:Token概念演化与"词元"译名的确立 本文系统梳理了"Token"概念从信息论符号到AI基元的完整演化史,揭示了"词元"这一中文译名确立的必然性。概念发展经历了三个阶段:早期作为编译原理中的词法单元(1960s),统计NLP时期作为概率空间的原子(1990s-2000s),以及神经时代成为动态语义载体(2010s后)。随着Transformer架构兴起,Token从静态符号转变为上下文相关的语义基元,其定义彻底突破"词&quo

AllenLV的博客 1222
上一篇: NFC移动支付
下一篇: WEB-INF目录与META-INF目录的作用
scnuwilliams
博客等级 码龄10年 32粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值