HCE知识盘点:大事记、NFC卡模拟、与SE兼容

本文探讨了近场通讯(NFC)技术的发展与应用,特别是基于主机的卡模拟(HCE)概念。NFC技术允许在手机、电脑等设备间进行短距离无线通讯。HCE技术通过绕过手机内置的安全元件(SE),在手机上实现卡模拟,支持移动支付等应用。文章详细介绍了HCE技术的关键发展节点、标准对Android系统的支持、以及如何使用HCE技术部署端对端的NFC解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[导读] NFC是“近场通讯”的简称,采用短距离RF(射频)通讯技术。 关键词:

  NFC智能手机

  NFC技术发展

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

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

  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),NFC 控制器从外部读写终端接收到的数据将直接被发送到主机系统上,而不是安全模块。上图描述了这个过程。

  使用基于主机的卡模拟时(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知识盘点:大事记、NFC卡模拟、与SE兼容

  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方案与SE方案的路由和兼容

  支持HCE功能的Android4.4手机,很多也同时支持SWP-SIM或者SWP-SD之类的SE模式实现手机支付功能,因此存在一个应用 AID路由的问题,通常是由CLF芯片中的AID路由表来负责进行相关的路由工作,由手机生产厂商负责开发实现具体的规则。具体系统架构和指令流向如下图:
HCE知识盘点:大事记、NFC卡模拟、与SE兼容

  因为CLF芯片的路由表,是通过读卡终端发送的Select指令中的应用AID来进行区分和路由的,因此对于SE(SWP-SIM)和手机 HOSTCPU中的HCE应用,如果各自支持的具体智能卡应用的AID均不相同,则不会出现任何路由和兼容性的问题,所有的应用均能够被正确识别和分别路由到SE(SWP-SIM)或者HCE应用,并正常完成交易的实现和处理。

  如果SE(SWP-SIM)和手机HOST CPU中的HCE应用,支持的智能卡应用中有相同的AID,则存在一个路由优先级的问题,同时涉及到支持SE(SWP-SIM)的设备升级到Android4.4之后,对于SWP-SIM中原有的应用的兼容问题。

  按照google提供的Android API的要求,HCE APP的路由优先级更高,表示说如果存在相同的AID的应用,则会被优先路由到HCE应用来处理,那么SWP-SIM中的相同AID的应用将无法被调用和使用,会出现系统升级到4.4版本后,无法兼容既有应用使用的问题,除非不安装HCE 应用。

  因此运营商的定制手机,通常会要求修改一下路由的优先级,使SE(SWP-SIM)的路由优先级更好,即如果存在相同的AID的应用,则会被优先路由到SWP-SIM来处理,确保对于旧时发行的支持SE的设备,在系统升级到4.4之后的兼容性。

<think>好的,我需要解决用户关于工作流管理工具与微信朋友圈集成的问题。首先,我得理解用户的需求。用户可能希望将企业内部的工作流程,比如审批、通知等,自动同步到微信朋友圈,或者从朋友圈触发某些工作流操作。不过,微信朋友圈主要是个人社交功能,企业账号的朋友圈功能有限,可能需要通过企业微信来实现。 接下来,我需要参考用户提供的引用内容。引用[1]提到SpringBoot集成微信小程序,引用[2]关于源码管理和协作工具,引用[3]提到低代码平台与企业微信对接,引用[4]是宿舍管理系统使用SpringBoot和Vue。这些可能涉及技术栈和集成方法。 首先,考虑技术可行性。微信朋友圈的API开放程度可能有限,企业微信有更多接口。根据引用[3],使用低代码平台可以快速对接企业微信,或许可以借鉴这种方法。另外,引用[4]中的系统使用SpringBoot和Vue,这可能作为后端和前端的技术参考。 然后,思考集成的具体场景。例如,员工完成审批后自动发到企业微信朋友圈,或者将朋友圈的特定内容触发工作流任务。需要明确哪些操作是允许的,比如企业微信的客户朋友圈功能可能更适合,而非个人朋友圈。 接下来,技术实现步骤可能需要:1. 调用企业微信API,获取权限;2. 构建工作流引擎,如使用Camunda或Activiti,与后端系统集成;3. 设计数据同步机制,如通过Webhook或定时任务;4. 前端展示可能需要小程序或H5页面,引用[4]中的Vue和Axios可以作为参考。 还需要考虑权限和安全问题,确保数据传输加密,用户授权机制完善。引用[2]中的分支管理和代码审查可能对开发过程有帮助,确保协作顺畅。 最后,用户可能还关心实际案例或最佳实践,比如引用[3]中的生物科技公司案例,说明低代码平台在快速集成中的优势。可能需要比较不同方案的优缺点,比如自研开发vs低代码平台的选择。 总结,解决方案应包括技术选型、集成步骤、权限管理、数据同步方式,并参考现有案例。同时,需要提醒用户微信个人朋友圈的限制,建议使用企业微信的客户朋友圈功能,符合企业使用场景。</think>### 工作流管理工具与微信朋友圈集成解决方案 #### 1. **技术可行性分析** - **微信朋友圈接口限制**:微信个人朋友圈未开放企业级API接口,但企业微信的「客户朋友圈」功能支持企业向客户发布内容[^3]。 - **工作流触发机制**:可通过企业微信API实现任务完成后的自动通知或内容推,例如审批结果同步至客户朋友圈[^1][^3]。 - **低代码平台整合**:借助百数低代码平台(如引用[3]案例)快速构建与企业微信的对接模块,减少开发周期。 #### 2. **集成方案设计** **步骤1:权限申请与配置** - 在企业微信后台开通「客户朋友圈」功能,获取`corp_id`、`secret`等凭证。 - 配置OAuth2.0授权,确保工作流系统可调用企业微信API[^3]。 **步骤2:工作流引擎对接** ```python # 示例:使用Python调用企业微信API发布客户朋友圈 import requests def post_to_workwechat(content, access_token): url = f"https://qyapi.weixin.qq.com/cgi-bin/externalcontact/add_moment?access_token={access_token}" payload = { "visible_range": {"external_userid": ["客户ID"]}, "text": {"content": content} } response = requests.post(url, json=payload) return response.json() ``` **步骤3:事件驱动同步** - 通过Webhook监听工作流事件(如审批完成),触发内容推至企业微信朋友圈[^4]。 - 使用SpringBoot构建RESTful API实现事件响应(参考引用[4]技术栈)。 **步骤4:数据安全与权限控制** - 采用HTTPS加密通信,敏感数据存储使用MySQL加密字段(如引用[4]方案)。 - 基于角色(如管理员、员工)限制朋友圈发布权限[^2]。 #### 3. **典型应用场景** - **营销活动同步**:市场部门策划活动后,自动推至客户朋友圈[^3]。 - **客户反馈收集**:朋友圈评论触发工单系统,生成客户服务任务[^1]。 - **内部通知增强**:重要公告通过工作流审批后,一键发布至员工可见的企业朋友圈。 #### 4. **挑战与优化** - **接口限制**:企业微信朋友圈每日发布次数有限,需设计内容聚合策略。 - **用户体验**:结合微信小程序(引用[1][4])构建轻量级管理界面,简化操作流程。 - **协同开发**:采用Remdandmovie的分支管理策略(引用[2]),避免代码冲突。 #### 5. **扩展建议** - 结合低代码平台(如引用[3])实现动态表单配置,适应不同企业需求。 - 集成微信小程序作为移动端入口,支持朋友圈内容预览与数据统计。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值