CN106663017A - 实现主机卡模拟的方法、终端、数据路由方法及装置 - Google Patents

实现主机卡模拟的方法、终端、数据路由方法及装置 Download PDF

Info

Publication number
CN106663017A
CN106663017A CN201580043877.1A CN201580043877A CN106663017A CN 106663017 A CN106663017 A CN 106663017A CN 201580043877 A CN201580043877 A CN 201580043877A CN 106663017 A CN106663017 A CN 106663017A
Authority
CN
China
Prior art keywords
external data
hce
tee
terminal
sent
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201580043877.1A
Other languages
English (en)
Other versions
CN106663017B (zh
Inventor
李国庆
常新苗
梅敬青
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN106663017A publication Critical patent/CN106663017A/zh
Application granted granted Critical
Publication of CN106663017B publication Critical patent/CN106663017B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices
    • H04B5/72

Abstract

本发明实施例提供一种实现主机卡模拟的方法及装置,本发明中终端根据HCE应用的类型,将所述HCE应用安装至与所述HCE应用的类型对应的终端环境中,终端环境包括可信执行环境TEE和富执行环境REE;终端解析所述HCE应用的第一标识和所述HCE应用中包含的至少一个第二标识,第一标识用于在终端中唯一标识所述HCE应用,第二标识用于标识读卡设备与所述HCE应用之间的消息流;终端将所述HCE应用的路由信息注册到TEE中,路由信息包括第一标识、至少一个第二标识以及HCE应用安装的终端环境。通过本发明能够在终端上实现支持TEE和REE两种不同安全级别的HCE应用。

Description

实现主机卡模拟的方法、终端、数据路由方法及装置 技术领域
本发明涉及通信技术领域,尤其涉及一种实现主机卡模拟的方法、终端、数据路由方法及装置。
背景技术
卡模拟(Card Emulation,CE)功能,是指利用支持近场通信(Near Field Communication,NFC)功能并且具有安全单元(Secure Element,SE)的终端,模拟非接触式芯片卡(Contactless IC Card)。卡模拟应用安装到终端的安全单元中,并在安全单元中运行。安全单元一般允许安装多个卡模拟应用,这使得用户携带一部终端就相当于携带了多张实体卡片,为用户带来了极大便利。
主机卡模拟(Host-based Card Emulation或Host Card Emulation,HCE)是指卡模拟应用无需安装到安全单元中,而是像普通的应用一样直接安装到终端的操作系统中,并运行在终端主机(Device Host,或者称之为设备主机)上。HCE广泛应用于近场通信(Near Field Communication,NFC)中。
目前,HCE应用程序一般运行在终端的富执行环境(Rich Execution Environment,REE)中,通过终端的NFC接口与POS机或者读卡器等读卡设备进行通信。REE是一种安全级别较低的运行环境,即任何来源的应用程序经用户许可都可安装到终端的REE中,并且对于REE中存储的数据的保护也不足以抵御各种恶意软件的威胁,故当HCE应用程序安装和运行在REE中时,其相关的用户账户等机密数据的安全级别较低,容易被窃取。
然而,目前常常需要利用HCE机制来实现一些安全性能要求较高的应用,诸如银行发布的HCE支付应用等,如果将这些安全性能要求较高的HCE应用安装到REE中,HCE应用关联的账户数据很容易被恶意程序的窃取。因此REE中的HCE程序的关联数据处于比较危险的状态。
发明内容
本发明实施例提供一种实现主机卡模拟的方法、终端、数据路由方法及 装置,以在终端上实现不同安全级别的HCE功能。
第一方面,提供一种实现主机卡模拟HCE的方法,包括:
终端根据HCE应用的类型,将所述HCE应用安装至与所述HCE应用的类型对应的终端环境中,其中,所述终端环境包括可信执行环境TEE和富执行环境REE;
所述终端解析所述HCE应用的第一标识和所述HCE应用中包含的至少一个第二标识,所述第一标识用于在所述终端中唯一标识所述HCE应用,所述第二标识用于标识读卡设备与所述HCE应用之间的消息流;
所述终端将所述HCE应用的路由信息注册到TEE中,其中,所述路由信息包括所述第一标识、所述至少一个第二标识以及所述HCE应用安装的所述终端环境。
结合第一方面,在第一种实现方式中,所述方法还包括:
所述终端将获取的外部数据发送至TEE中的路由管理模块;
所述路由管理模块将所述外部数据发送至与所述外部数据对应的HCE应用。
结合第一方面的第一种实现方式,在第二种实现方式中,所述终端将获取的外部数据发送至TEE中的路由管理模块,具体包括:
所述终端通过TEE中的近场通信控制器NFCC或REE中的NFCC获取外部数据;
由TEE中的所述NFCC或REE中的所述NFCC,将路由目标是设备主机的所述外部数据发送至TEE中的路由管理模块。
结合第一方面的第一种实现方式或者第一方面的第二种实现方式,在第三种实现方式中,所述路由管理模块将所述外部数据发送至所述外部数据对应的HCE应用,具体包括:
所述路由管理模块获取所述外部数据中的第二标识;
所述路由管理模块根据所述注册到TEE中的路由信息,确定与所述外部数据中的第二标识对应的外部数据第一标识、以及与所述外部数据第一标识对应的HCE应用安装的终端环境;
所述路由管理模块根据所述确定的终端环境,将所述外部数据发送至与所述外部数据第一标识对应的HCE应用。
结合第一方面的第三种实现方式,在第四种实现方式中,根据所述确定的终端环境,将所述外部数据发送至与所述外部数据第一标识对应的HCE应用,包括:
若所述确定的终端环境为TEE,则通过建立的会话将所述外部数据发送给TEE中的与所述外部数据第一标识对应的HCE应用;
若所述确定的终端环境为REE,则通过TEE中的服务程序或者共享内存将所述外部数据发送给REE中的与所述外部数据第一标识对应的HCE应用。
第二方面,提供一种数据路由方法,包括:
终端将获取的外部数据发送至TEE中的路由管理模块;
所述路由管理模块将所述外部数据发送至与所述外部数据对应的HCE应用。
结合第二方面,在第一种实现方式中,所述终端将获取的外部数据发送至TEE中的路由管理模块,具体包括:
所述终端通过TEE中的NFCC驱动或者REE中的NFCC驱动获取所述外部数据,并将路由目标是设备主机的所述外部数据发送至TEE中的路由管理模块。
结合第二方面或者第二方面的第一种实现方式,在第二种实现方式中,所述路由管理模块将所述外部数据发送至与所述外部数据对应的HCE应用,包括:
所述路由管理模块获取所述外部数据中的第二标识,所述第二标识用于标识读卡设备与一个HCE应用之间的消息流;
根据所述注册到TEE中的HCE应用的路由信息,确定与所述外部数据中的第二标识对应的外部数据第一标识、以及与所述外部数据第一标识对应的HCE应用安装的终端环境,所述第一标识用于在终端中唯一标识一个HCE应用;
根据所述确定的终端环境,将所述外部数据发送至与所述外部数据第一 标识对应的所述HCE应用。
结合第二方面的第二种实现方式,在第三种实现方式中,所述根据所述确定的终端环境,将所述外部数据发送至与所述外部数据第一标识对应的所述HCE应用,包括:
若所述确定的终端环境为TEE,则通过建立的会话将所述外部数据发送给TEE中的与所述外部数据第一标识对应的所述HCE应用;
若所述确定的终端环境为REE,则通过TEE中的服务程序或者共享内存将所述外部数据发送给REE中的与所述外部数据第一标识对应的所述HCE应用。
第三方面,提供一种实现主机卡模拟HCE的终端,包括:
安装单元,用于根据HCE应用的类型,将所述HCE应用安装至与所述HCE应用的类型对应的终端环境中,其中,所述终端环境包括可信执行环境TEE和富执行环境REE;
解析单元,用于解析所述安装单元安装的所述HCE应用的第一标识和所述HCE应用中包含的至少一个第二标识,所述第一标识用于在所述终端中唯一标识所述HCE应用,所述第二标识用于标识读卡设备与所述HCE应用之间的消息流;
注册单元,用于将所述HCE应用的路由信息注册到TEE中,其中,所述路由信息包括所述解析单元解析出的所述第一标识、所述至少一个第二标识以及所述HCE应用安装的所述终端环境。
结合第三方面,在第一种实现方式中,所述终端还包括第一路由单元和第二路由单元,其中,
所述第一路由单元,用于将获取的外部数据发送至TEE中的第二路由单元;
所述第二路由单元,用于将所述外部数据发送至与所述外部数据对应的安装单元安装的HCE应用。
结合第三方面的第一种实现方式,在第二种实现方式中,所述第一路由单元,具体用于按如下方式将获取的外部数据发送至TEE种的第二路由单元:
通过TEE中的近场通信控制器NFCC或REE中的NFCC获取外部数据;
由TEE中的所述NFCC或REE中的所述NFCC将路由目标是设备主机的所述外部数据发送至TEE中的第二路由单元。
结合第三方面的第一种实现方式,或者第三方面的的第二种实现方式,在第三种实现方式中,所述第二路由单元,具体用于按如下方式将所述外部数据发送至所述外部数据对应的HCE应用:
获取所述外部数据中的第二标识;
根据注册到TEE中的信息,确定与所述外部数据中的第二标识对应的外部数据第一标识、以及与所述外部数据第一标识对应的所述HCE应用安装的终端环境;
根据所述确定的终端环境,将所述外部数据发送至与所述外部数据第一标识对应的HCE应用。
结合第三方面的第三种实现方式,在第四种实现方式中,所述第二路由单元,具体用于按如下方式根据所述确定的终端环境,将所述外部数据发送至与所述外部数据第一标识对应的HCE应用:
若所述确定的终端环境为TEE,则通过建立的会话将所述外部数据发送给TEE中的与所述外部数据第一标识对应的HCE应用;
若所述确定的终端环境为REE,则通过TEE中的服务程序或者共享内存将所述外部数据发送给REE中的与所述外部数据第一标识对应的HCE应用。
第四方面,提供一种数据路由装置,包括:
获取单元,用于获取外部数据;
第一路由单元,用于将所述获取单元获取的外部数据发送至TEE中的第二路由单元;
第二路由单元,用于将所述外部数据发送至与所述外部数据对应的HCE应用。
结合第四方面,在第一种实现方式中,所述第一路由单元,具体用于按如下方式将获取的外部数据发送至TEE中的第二路由单元:
通过TEE中的NFCC驱动或者REE中的NFCC驱动获取所述外部数据, 并将路由目标是设备主机的所述外部数据发送至TEE中的第二路由单元。
结合第四方面的第一种实现方式,在第二种实现方式中,所述第二路由单元,具体用于按如下方式,将所述外部数据发送至与所述外部数据对应的HCE应用:
获取所述外部数据中的第二标识,所述第二标识用于标识读卡设备与一个HCE应用之间的消息流;
根据注册到TEE中的所述HCE应用的路由信息,确定与所述外部数据中的第二标识对应的外部数据第一标识、以及与所述外部数据第一标识对应的所述HCE应用安装的终端环境,所述第一标识用于在终端中唯一标识一个HCE应用;
根据所述确定的终端环境,将所述外部数据发送至与所述外部数据第一标识对应的HCE应用。
结合第四方面的第二种实现方式,在第三种实现方式中,所述第二路由单元,具体用于按如下方式,根据所述确定的终端环境,将所述外部数据发送至与所述第一标识对应的HCE应用:
若所述确定的终端环境为TEE,则通过建立的会话将所述外部数据发送给TEE中的与所述外部数据第一标识对应的HCE应用;
若所述确定的终端环境为REE,则通过TEE中的服务程序或者共享内存将所述外部数据发送给REE中的与所述外部数据第一标识对应的HCE应用。
第五方面,提供一种实现主机卡模拟HCE的终端,包括存储器、外设、通信单元和处理器,其中:
所述存储器,包括运行于富执行环境REE的公共随机存取存储器RAM和公共只读存储器ROM,以及运行于可信执行环境TEE的可信RAM和可信ROM,用于存储指令和数据;
所述外设,包括所述REE中的公共外设和所述TEE中的可信外设;
所述通信单元,位于所述REE中;
所述处理器,用于调用存储在所述公共RAM、公共ROM、可信RAM以及可信ROM内的指令以及数据,通过所述可信外设、所述公共外设以及所述 通信单元,实现以下功能:
根据HCE应用的类型,将所述HCE应用安装至与所述HCE应用的类型对应的终端环境中,其中,所述终端环境包括TEE和REE;解析所述HCE应用的第一标识和所述HCE应用中包含的至少一个第二标识,所述第一标识用于在所述终端中唯一标识所述HCE应用,所述第二标识用于标识读卡设备与所述HCE应用之间的消息流;并用于将所述HCE应用的路由信息注册到TEE中,其中,所述路由信息包括所述第一标识、所述至少一个第二标识以及所述HCE应用安装的所述终端环境。
结合第五方面,在第一种实现方式中,所述处理器,还用于:
将获取的外部数据发送至TEE中的路由管理模块,控制所述路由管理模块将所述外部数据发送至与所述外部数据对应的HCE应用。
结合第五方面的第一种实现方式,在第二种实现方式中,所述处理器,具体用于采用如下方式将获取的外部数据发送至TEE中的路由管理模块:
通过TEE中的近场通信控制器NFCC或REE中的NFCC获取外部数据;
由TEE中的所述NFCC或REE中的所述NFCC将路由目标是设备主机的所述外部数据发送至TEE中的路由管理模块。
结合第五方面的第一种实现方式或者第二种实现方式,在第三种实现方式中,所述处理器,具体用于按如下方式控制所述路由管理模块将所述外部数据发送至所述外部数据对应的HCE应用:
控制所述路由管理模块通过所述通信单元以及所述外设获取所述外部数据中的第二标识,并根据所述注册到TEE中的路由信息,确定与所述外部数据中的第二标识对应的外部数据第一标识、以及与所述外部数据第一标识对应的HCE应用安装的终端环境,并控制所述路由管理模块根据所述确定的终端环境,将所述外部数据发送至与所述外部数据第一标识对应的HCE应用。
结合第五方面的第三种实现方式,在第四种实现方式中,所述处理器,具体用于按如下方式控制所述路由管理模块根据所述确定的终端环境,将所述外部数据发送至与所述外部数据第一标识对应的HCE应用:
若所述确定的终端环境为TEE,则通过建立的会话将所述外部数据发送 给TEE中的与所述外部数据第一标识对应的HCE应用;
若所述确定的终端环境为REE,则通过TEE中的服务程序或者共享内存将所述外部数据发送给REE中的与所述外部数据第一标识对应的HCE应用。本发明实施例提供的实现主机卡模拟的方法、终端、数据路由方法及装置,通过不同的应用类型标签,区分HCE应用为TA或CA,进而将TA安装到TEE中,将CA安装到REE中,实现了基于TEE和基于REE两种不同安全级别的HCE应用。
附图说明
图1A至图1B为本发明实施例提供的主机卡模拟方法应用的终端系统架构;
图2为本发明实施例提供的主机卡模拟方法实现流程图;
图3为本发明实施例提供的将HCE应用安装到对应的环境实现流程图;
图4为本发明实施例提供的另一主机卡模拟方法实现流程图;
图5为本发明实施例提供的将获取的外部数据发送至TEE中的路由管理模块的流程图;
图6为本发明实施例提供的路由信息保存过程示意图;
图7为本发明实施例提供的根据应用保存的路由信息进行外部数据路由的过程示意图;
图8为本发明实施例设置的路由表示意图;
图9为本发明实施例提供的在TEE中执行路由过程示意图;
图10为本发明实施例提供的将外部数据转发给TA过程示意图;
图11A至图11B为本发明实施例提供的将外部数据转发给CA过程示意图;
图12A至图12B为本发明实施例提供的实现主机卡模拟的终端构成示意图;
图13为本发明实施例提供的实现主机卡模拟的终端另一构成示意图;
图14为本发明实施例提供的数据路由装置的构成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行 清楚地描述。
可信执行环境(Trusted Execution Environment,TEE)与REE,是共同存在于终端中的两种程序运行环境,TEE和REE可以称为终端环境,其各自包括存储器、处理器等硬件资源和操作系统(Operating System,OS)、框架(Framework)等软件。REE没有严格限定应用的来源,如果用户许可,REE可接受任何来源的软件安装。然而,TEE则不同,TEE内的存储为安全存储,其会受到TEE发行者(如,终端厂商或运营商)的管理,具有一定的限制访问条件;终端收到访问TEE存储的请求时,例如读写安全存储(向TEE中安装程序属于写安全存储操作),需验证是否符合安全访问规则,在符合安全访问规则的前提下,才可访问相应的存储内容。因为TEE的上述特性,恶意程序无法访问安装到TEE中的程序及其数据;安装到TEE环境中的程序,互相之间也无法越界访问不属于自己的数据,因此实现了较高的安全级别。
可信应用(Trusted APPlication,TA)是指运行于TEE中的应用,能够为REE中的客户端应用或者TEE环境中的其他可信应用提供安全相关功能,如密码服务、签名服务和摘要服务等。相应的,客户端应用(Client APPlication,CA)是指运行在REE中,可以通过TEE客户端应用编程接口或共享内存机制与TEE中的某个可信应用TA进行通信并调用TA提供的服务的应用。
为了便于软件开发商(Soft Processor,SP)根据自己的业务需求选择不同安全级别的HCE,本发明实施例提供一种主机卡模拟实现方法,以在包括TEE的终端上实现不同安全级别HCE应用的安装,满足不同业务需求的不同安全级别需求。例如,对安全性能要求较高的金融卡、支付卡应用等高安全级别的业务需求,可实现为TA,并安装到TEE中;类似于超市会员卡,门禁卡等低安全级别的业务需求,可实现为CA,并安装在REE中。
本发明实施例提供的主机卡模拟方法,依据HCE应用业务需求要求安装的终端环境是TEE还是REE,将HCE应用安装到对应的终端环境中。
本发明实施例中可在HCE应用的资源文件中定义用于标识HCE应用安装终端环境的应用类型标签,通过不同的应用类型标签区分HCE应用应该安装的终端环境是TEE还是REE,并将HCE应用安装到TEE或REE中,以在 终端上实现支持TEE和REE两种不同安全级别的HCE应用。
本发明实施例中为了实现在终端上支持TEE和REE两种不同安全级别的HCE应用,即将高安全级别的HCE应用安装到TEE中,将较低安全级别的HCE应用安装到REE中,可应用图1A或图1B所示的终端系统架构,在TEE中实现不同安全级别的HCE应用的路由功能。图1A中,NFC控制器(NFC Controller,NFCC)收到数据后,通过REE操作系统内核中的NFCC驱动(NFCC Driver)和NFCC路由模块发送给上层应用,当支持TEE和REE两种不同安全级别的HCE应用时,NFCC driver将收到的数据发送给TEE环境中的可信NFC服务框架(NFC Service Framework),并由TEE环境中的NFC Service Framework转发给路由管理模块(Routing Management Module,本发明中也记为Route-TA),TEE中的路由管理模块(Route-TA)将数据分发(即路由)给TEE中的TA或者REE中的CA。图1B中,NFC控制器收到数据后,通过TEE中的可信操作系统内核中的可信NFCC驱动将数据发送给TEE中的路由管理模块,由TEE中的路由管理模块将数据分发给TEE中的TA或者REE中的CA。
需要说明的是本发明实施例中NFCC,也可称之为近场通信控制器(Near Field Communication Controller,NFCC),NFCC是NFC论坛(NFC Forum)定义的一种逻辑实体,业界也常用NFCC表示实现了主要NFC功能的NFCC芯片。本发明中,将NFCC芯片、NFCC驱动和NFCC路由模块区分开来,以上三种硬件或软件都是NFCC逻辑实体的一部分。
图2所示为本发明实施例提供的主机卡模拟实现方法流程图,如图2所示,包括:
S101:终端根据HCE应用的类型,将所述HCE应用安装至与所述HCE应用的类型对应的终端环境中。
本发明实施例中安装所述HCE应用的终端环境包括TEE和REE,一个HCE应用只对应一种终端环境,即HCE应用运行的终端环境为TEE或者REE。需要说明的是,本发明实施例中安装HCE应用的终端环境称之为环境、安装环境,当然也可称之为应用运行环境等,本发明实施例不做限定。
具体的,本发明实施例中终端根据HCE应用的类型,将所述HCE应用安装至与所述HCE应用的类型对应的终端环境中,可采用如图3所示的方法流程,包括:
S1011:获取HCE应用的资源文件。
HCE应用安装包中包含有HCE应用的配置文件,终端接收到HCE应用的安装包,检查该安装包中的配置文件,并根据该配置文件中指定的资源文件名及路径,获取HCE应用的资源文件。
S1012:根据获取的资源文件中的应用类型标签,确定所述HCE应用安装的终端环境。
本发明实施例中通过不同的应用类型标签,区分HCE应用安装的终端环境是TEE还是REE。本发明实施例中可通过资源文件中的REE主机卡模拟程序(<host-apdu-service/>)标签标识此HCE应用是一个CA应用,待安装的环境为REE;通过资源文件中的TEE主机卡模拟程序(<TEE-apdu-service/>)标签标识此HCE应用是一个TA,待安装的环境为TEE。故,若获取的资源文件中的应用类型标签为<host-apdu-service/>,则确定待安装所述HCE应用的终端环境为REE,即该应用为CA。若获取的资源文件中的应用类型标签为<TEE-apdu-service/>,则确定待安装所述HCE应用的终端环境为TEE,即该应用为TA。
S1013:将所述HCE应用,安装到确定的所述终端环境中。
本发明实施例中HCE应用安装的终端环境为REE或者TEE,若确定所述HCE应用安装的终端环境为TEE,即该应用为TA,则将所述TA安装到TEE中,若确定所述HCE应用安装的终端环境为REE,即该应用为CA,则将所述CA安装到REE中。
S102:终端解析所述HCE应用的第一标识和所述HCE应用中包含的至少一个第二标识。
每一HCE应用对应一个应用标识(APP ID),一般而言,CA可以使用应用的证书作为应用标识,TA可以使用通用唯一识别符(Universally Unique Identifier,UUID)作为应用标识。每一个HCE应用能处理读卡设备与HCE 之间的若干个消息流,上述消息流由读卡设备发送一个SELECT AID命令开始,HCE应用收到路由管理模块路由给它的SELECT AID后,应以APDU命令应答,此后读卡设备发送其他的数据交换命令,HCE应用需要应答,直到终端再次收到一个SELECT AID命令(一般来说,这个SELECT AID命令中的AID,与上一条SELECT AID命令中的AID不同),则当前的消息流结束,一个新的消息流开始,具体由哪个HCE应用处理消息流,由路由管理模块根据新的SELECT AID命令中的AID来确定。在单次使用终端进行的刷卡交易中,终端也可能会只收到一条SELECT AID命令,命令中的AID由用户选中参与交易的支付卡来确定,此时从收到SELECT AID命令至交易结束,读卡设备与终端之间的交互也可认为是一个消息流。综上,消息流由卡应用标识(APPlication IDentifier,AID)进行标识,AID是ISO/IEC 7816-5定义的用于标识智能卡内安装的卡应用(APPlet)的标识,此标识也用于标识HCE应用可以处理的消息流或称之为HCE应用包含的卡应用,一个HCE应用可以实现一个或多个AID的处理逻辑,每一个AID处理逻辑对应一个卡应用或者说对应一段读卡设备与HCE应用之间的消息流。本发明实施例为描述方便,将标识HCE应用的应用标识称之为第一标识,该第一标识用于唯一标识一个HCE应用。将AID称之为第二标识,所述第二标识用于标识读卡设备与HCE应用之间的消息流。
本发明实施例中所述第一标识用于在终端中唯一标识所述HCE应用,所述第二标识用于标识读卡设备与所述HCE应用之间的消息流。
S103:终端将所述HCE应用的路由信息注册到TEE中。
本发明实施例中终端注册到TEE中的HCE应用的路由信息包括所述第一标识、所述至少一个第二标识以及所述HCE应用安装的终端环境。
本发明实施例中在TEE中安装TA和在REE中安装CA,都需要解析第一标识和所述HCE应用中包含的至少一个第二标识,将解析得到的所述第一标识和所述至少一个第二标识,以及所述HCE应用安装的终端环境注册到所述TEE中。
本发明实施例中将第一标识、第二标识以及所述HCE应用安装的终端环 境注册到TEE中,是完成HCE的安装部署的必要步骤,当然所述安装部署过程还包括其他的必要步骤,本发明实施例在此不作限定。
需要说明的是,本发明实施例中涉及的注册,是指将HCE应用的第一标识,以及HCE应用相关的至少一个第二标识,以及HCE应用所在的终端环境发送给TEE中的路由管理模块,路由管理模块对接收到的信息即HCE应用相关的第二标识进行冲突检测和冲突解决处理之后(可能存在多个HCE应用处理相同的第二标识的情况,路由管理模块需要进行特殊处理,如指定多个HCE应用中的一个来处理某个第二标识),根据第一标识、第二标识、以及HCE应用安装的终端环境的对应关系,生成多条路由项,并保存到TEE路由管理模块的路由表中,后续收到外部数据时依据路由表进行路由,其中,本发明实施例中的路由信息包括第一标识、至少一个第二标识以及HCE应用安装的终端环境,由于一个HCE应用对应一个或多个第二标识,每个第二标识可以生成一条路由项,因此一个HCE应用的路由信息包括至少一条路由项。
本发明实施例中通过资源文件中的两种不同的应用类型标签,终端可以区分HCE应用的安装环境为TEE还是REE,进而终端在接收到HCE应用安装包时,可通过资源文件中的应用类型标签,确定HCE应用安装的终端环境,区分该HCE应用为TA或CA,进而将TA安装到TEE中,将CA安装到REE中,实现了基于TEE和基于REE两种不同安全级别的HCE应用。
进一步的,本发明实施例中,将安装在终端TEE和REE中的HCE应用的路由信息均注册到TEE后,还可包括如下步骤:
S104:终端将获取的外部数据发送至TEE中的路由管理模块。
S105:所述路由管理模块将所述外部数据发送至与所述外部数据对应的HCE应用。
本发明实施例中包括上述S104和S105步骤的实施流程图可参阅图4所示。
本发明实施例中将获取的外部数据发送至TEE的路由管理模块,可采用如图5所示的数据路由方法,如图5所示,包括:
S1041:终端通过TEE中的NFCC或者REE中的NFCC获取外部数据。
终端处于卡模拟工作模式时,终端通过NFC接口,例如NFC天线,与非接触读卡设备,例如非接触POS机或者非接触读卡器,进行通信。终端使用NFCC芯片和NFCC驱动,从NFC天线获取外部数据。
可选的,本发明实施例中可在终端的TEE中加载可信NFCC驱动,TEE环境下的可信操作系统(Trusted OS)获得NFC接口的访问控制权限,进而获取外部数据。
S1042:TEE中的NFCC或者REE中的NFCC将路由目标是设备主机的所述外部数据发送至TEE。
本发明实施例中,终端使用NFCC芯片和NFCC驱动,从NFC天线获取到非接触读卡器或非接触POS机等外部设备发送的外部数据后,将获得的数据发送至NFCC路由模块进行处理,NFCC路由模块为一软件实体(例如,路由模块可以实现为芯片固件),该NFCC路由模块获得外部数据中的第二标识,并根据保存在NFCC中的路由表,将需要发送至TEE中的数据转发给TEE,本发明实施例中需要发送至TEE的数据包括路由目标是设备主机的数据,设备主机(Device Host)一般是指终端的中央处理器CPU,也称之为主机中央处理器(Host Central Processing Unit,Host CPU)。
NFC有卡模拟、P2P和读卡器三种工作模式,为支持以上三种工作模式NFCC芯片会工作在轮询模式(Poll模式,对应P2P和读卡器)和侦听(listen)模式,卡模拟属于侦听模式,故,通过确定NFCC芯片当前工作模式是否为卡模拟可确定是否需要执行路由,进一步地,通过获取到的外部数据中的SELECT AID命令与NFCC中配置的路由表,可以确定是否需要将获取的外部数据发送至TEE。
本发明实施例中通过TEE中的NFCC执行第一次路由,从而将路由目标是设备主机CPU的所述外部数据发送至TEE中的路由管理模块,可参阅图1B所示。通过REE中的NFCC执行第一次路由,从而将路由目标是设备主机的所述外部数据发送至TEE中的路由管理模块,可参阅图1A所示。
其中第一次路由是指将获取的数据发送至TEE中的路由管理模块的过程。
本发明实施例中为实现在TEE中将所述外部数据发送至与所述外部数据对应的HCE应用,可预先进行路由信息保存,即将HCE应用的第一标识与至少一个第二标识及其对应关系进行注册,本发明实施例中可将HCE应用的第一标识与至少一个第二标识注册到TEE中的路由管理模块,然后由TEE中的路由管理模块基于保存的路由信息,将数据路由到对应的环境中的HCE应用。这样使得不同类型的HCE应用能够在不同的终端环境中处理,提高了基于不同HCE应用的安全性。
本发明实施例中预先进行路由信息注册的过程,可参阅图6所示。一个REE中的HCE应用,可以通过静态资源文件,指定此HCE应用对应的第二标识列表,也可以使用动态注册应用程序编程接口(Application Programming Interface,API),指定此HCE应用对应的第二标识列表;无论是使用静态还是动态方法,都需要通过TEE客户端应用编程接口(TEE Client API)或共享内存将第一标识与第二标识的映射关系发送给TEE中的路由管理模块。TEE中的HCE应用,也可以使用上述静态或动态方法声明此HCE应用对应的第二标识,不同之处在于,此时无需使用TEE Client API或共享内存,而是使用TA之间的通信机制即会话(session),将第一标识与第二标识的映射关系发送给TEE中的路由管理模块,路由管理模块会从第一标识中解析得到HCE应用安装的终端环境,进而,HCE应用的第一标识、与第一标识对应的至少一个第二标识以及该HCE应用安装的终端环境作为至少一条路由项保存在路由管理模块中。图6中,对于REE,用户下载CA安装包后,终端进行应用安装配置文件的解析,解析到<host-apdu-service/>标签,获知该HCE应用为CA,进一步进行资源文件解析,读取资源文件中的第二标识,将读取到的第一标识与至少一个第二标识发送到TEE中的路由管理模块。
进一步的,本发明实施例中对于REE中的HCE应用(是一个CA),可通过CA运行时,调用动态第二标识加载API将第一标识与第二标识之间的映射关系发送给TEE中的路由管理模块。本发明实施例中当CA应用更新或者组件更新时,例如软件应用版本升级,或者向HCE应用中增加新的卡应用时,即新增AID时,也需将更新的信息发送到TEE中,以实现准确的路由。图6 中,对于TEE中,用户下载HCE应用(是一个TA)安装包后,终端解析TA应用的第一标识与第二标识,或者调用TA运行时的动态加载第二标识的API,发送第一标识与第二标识的映射关系给TEE的路由管理模块。TEE中的路由管理模块,进行第一标识与第二标识的接收与管理,在TEE中保存或者更新HCE应用的路由信息。
本发明实施例中预先保存了HCE应用的路由信息后,则可等待接收数据,当接收到数据后,NFCC执行第一次路由,将数据路由到TEE中的路由管理模块,由该路由管理模块依据预先保存的路由信息进行第二次路由,将数据转发给CA或TA,如图7所示。
其中,第二次路由是指由路由管理模块接收数据,并将数据转发给CA或TA的过程。
本发明实施例,在TEE的路由管理模块中根据保存的路由信息,设置路由表,路由表中包括:TA和CA的第一标识、第二标识和安装的终端环境,路由管理模块依据该路由表将数据路由到相应的HCE应用。
图8为本发明实施例设置的路由表,如图8所示,针对每一个第二标识及其对应的第一标识,分别设置路由项,例如CA的第二标识1和第一标识1对应路由1,TA的第二标识2和第一标识2对应路由2。
需要说明的是,本发明实施例中通过图6所示的方法,完成了CA和TA及其对应的第一标识与第二标识向TEE的注册,完成路由信息的准备工作,但是在具体实施过程中,由于TA的引入,需要对目前的HCE机制做如下改动:
配置文件的修改:需要增加一个标识TEE中HCE应用的应用类型标签,即第一标识标签,诸如<TEE_apdu_service/>,以在配置文件中指示一个运行于TEE的HCE应用的存在。
资源文件的修改:需要给一个标识TEE中HCE应用的应用类型标签,即第一标签,诸如<TEE-apdu-service/>标签,关联若干个第二标识标签,诸如<AID-filter>标签,以便通知服务框架,TA能够处理的读卡器与HCE应用之间的消息流。
本发明实施例中,将CA安装到REE中,将TA安装到TEE中,完成将HCE应用安装到对应环境后,在终端与非接触读卡设备进行交互时,由相应环境中的HCE进行数据的处理。
本发明实施例,终端在TEE中将所述外部数据发送至所述外部数据对应的HCE应用,或者说由TEE中的路由管理模块执行第二次路由,可采用如图9所示的方法:
S1051:TEE中的路由管理模块获取所述外部数据中的第二标识,所述第二标识用于标识读卡设备与终端上一个HCE应用之间的消息流。路由管理模块仅当收到SELECT AID指令时,才执行获取第二标识的操作;收到其他APDU指令时,如果之前没收到过SELECT AID,则认为是错误;如之前收到过SELECT AID指令,则将指令转发给SELECT AID指令对应的HCE应用。
S1052:TEE中的路由管理模块,根据注册到TEE中的HCE应用的路由信息,确定与所述外部数据中的第二标识对应的外部数据第一标识、以及与所述外部数据第一标识对应的HCE应用安装的终端环境。路由管理模块从外部数据中获得第二标识后,将获得的第二标识与TEE路由管理模块路由表中的AID依次进行比较,直至找到相同的AID,此时将包含相同AID的路由项中的第一标识,作为外部数据第一标识,并找到与该AID对应的HCE应用安装的终端环境。
S1053:TEE中的路由管理模块根据所述确定的终端环境,将所述外部数据发送至与所述外部数据第一标识对应的HCE应用。
本发明实施例中,通过获取外部数据中的第二标识,可根据路由信息确定与该第二标识对应的外部数据第一标识以及HCE应用安装的终端环境。确定了HCE应用安装的终端环境后,则可将获取到的数据路由至相应环境中的HCE应用,完成支持不同安全级别的HCE应用的数据路由。
需要说明的是,本发明实施例中的路由信息中还可以仅包括第一标识、第二标识,通过获取外部数据中的第二标识,确定与该第二标识对应的外部数据第一标识,通过外部数据第一标识的解析,则可确定该HCE应用是TA还是CA,进而可得知该HCE应用的安装环境,若为TA,则安装环境为TEE, 若为CA,则安装环境为REE。
本发明实施例,根据确定的所述HCE应用安装的终端环境,将所述数据发送至与所述外部数据第一标识对应的HCE应用,具体可采用如下方式:
A:若确定的所述HCE应用安装的终端环境为TEE,则通过建立的会话将所述数据发送给TEE中的与所述外部数据第一标识对应的HCE应用。
TEE的路由管理模块根据外部数据中的第二标识在路由表中查找到对应的外部数据第一标识、该HCE应用安装的终端环境,则路由管理模块,即图1A和图1B中的Route-TA,使用TEE内部核心API(TEE Internal Core API)标准定义的内部客户端API(Internal Client API)创建到目标TA的会话(session),将数据转发给TA,如图10所示。因安装TA时,已经将该TA的第一标识、至少一个第二标识和安装的终端环境,注册到TEE中的Route-TA(即路由管理模块),故而Route-TA可以主动的将获取的外部数据发送给TA,故若在建立会话后,如果收到的数据帧不包含选择第二标识命令,则可一直通过当前已经建立的会话转发外部数据给对应的TA。
B:若确定的所述HCE应用安装的终端环境为REE,则通过TEE中的服务程序或者共享内存将所述外部数据发送给REE中的与所述外部数据第一标识对应的HCE应用。
具体的,CA启动时,使用服务程序(REE NFC Service),这里简称作RNS-TA的第一标识UUID,创建一个CA到TA的Session,此session处于等待(pending)状态;而RNS-TA收到来自Route-TA的数据后,路由管理模块已经标注数据应由哪个CA处理,故而RNS-TA可以通过已经建立的Session将数据返回给CA。故本发明实施例中TEE的路由管理模块根据外部数据中的第二标识查找到对应的外部数据第一标识、该HCE应用安装的终端环境,则路由管理模块,即图1A和图1B中的Route-TA,将数据转发给TEE中的服务程序,进而将该外部数据转发给对应的CA,如图11A所示。本发明实施例中,若确定HCE应用的安装环境为REE,则还可直接由路由管理模块将该外部数据通过共享内存发送给CA,如图11B所示。
本发明实施例中,当再次收到外部数据,并且外部数据包含第二标识选 择命令(即SELECT AID命令)时,NFCC将数据帧转发给TEE,由TEE的路由管理模块执行TEE内路由,路由管理模块判断此外部数据第二标识是否由当前已经建立Session的HCE应用进行处理,记为HCE应用1处理,如果是由HCE应用1处理,则路由管理模块直接使用当前的Session将该外部数据发送给HCE应用1;如果是由不同于当前HCE应用的其他HCE应用处理,记为HCE应用2,那么路由管理模块可以选择保持当前Session或者关闭当前的Session,但是一定要根据HCE应用2的第一标识建立第二个Session,通过第二个Session把第二标识选择命令及后续的外部数据发送给HCE应用2。
本发明实施例以下将结合实际应用对上述涉及的数据路由过程进行详细说明。
本发明实施例以非接触POS机与终端之间进行通信为例进行说明。支持TEE的终端作为卡模拟设备,当非接触POS机将交易数据通过近场支付环境NFC通道发送给终端时,终端通过NFCC获取到该交易数据,并通过REE中的NFCC或者TEE中的NFCC,将该交易数据传送至TEE的路由管理模块,TEE的路由管理模块根据该交易数据中的AID即第二标识,查找与该第二标识对应的第一标识,终端根据该第一标识可知该交易数据应该由哪个TA或CA处理,进而建立session,并通过建立的session将交易数据发送AID对应的TA或CA。
需要说明的是,本发明实施例,将CA安装到REE中,将TA安装到TEE中,完成将HCE应用安装到对应环境后,在终端与读卡设备进行交互,由相应环境中的HCE应用进行数据处理时,可采用上述实施例涉及的数据路由的处理流程,即本发明实施例还可提供一种数据路由方法,具体的实施过程,可参阅上述实施例的描述,本发明实施例在此不再赘述。
本发明实施例提供的主机卡模拟方法,通过资源文件中的两种不同应用类型标签,终端可以区分HCE应用安装的终端环境为TEE还是REE,进而终端在接收到HCE应用安装包时,可通过资源文件中的应用类型标签,确定HCE应用安装的终端环境,区分该HCE应用为TA或CA,进而将TA安装到TEE中,将CA安装到REE中,实现支持TEE和REE两种不同安全级别的 HCE应用,以使开发者可以根据需要选择在TEE中实现HCE功能,或者选择在REE中实现HCE功能,以满足不同应用功能的需求。
基于上述实施例提供的实现主机卡模拟的方法,本发明实施例还提供一种实现主机卡模拟HCE的终端100,所述实现主机卡模拟HCE的终端100包括安装单元101、解析单元102和注册单元103,如图12A所示,本发明实施例中:
安装单元101,用于根据HCE应用的类型,将所述HCE应用安装至与所述HCE应用的类型对应的终端环境中。
本发明实施例中,所述终端环境包括可信执行环境TEE和富执行环境REE。
解析单元102,用于解析所述安装单元101安装的所述HCE应用的第一标识和所述HCE应用中包含的至少一个第二标识.
本发明实施例中,所述第一标识用于在所述终端中唯一标识所述HCE应用,所述第二标识用于标识读卡设备与所述HCE应用之间的消息流。
注册单元103,用于将所述HCE应用的路由信息注册到TEE中,其中,所述路由信息包括所述解析单元102解析出的所述第一标识、所述至少一个第二标识以及所述HCE应用安装的终端环境。
本发明实施例提供的实现主机卡模拟的终端100,通过不同的应用类型标签,区分HCE应用为TA或CA,进而将TA安装到TEE中,将CA安装到REE中,实现了基于TEE和基于REE两种不同安全级别的HCE应用。
在第一种实现方式中,本发明实施例提供的实现主机卡模拟的终端100还包括第一路由单元104和第二路由单元105,其中,
所述第一路由单元104,用于将获取的外部数据发送至TEE中的第二路由单元;
所述第二路由单元105,用于将所述外部数据发送至与所述外部数据对应的安装单元101安装的HCE应用。
具体的,所述第一路由单元104,具体用于按如下方式将获取的外部数据发送至TEE中的第二路由单元105:
通过TEE中的近场通信控制器NFCC或REE中的NFCC获取外部数据;由TEE中的所述NFCC或REE中的所述NFCC将路由目标是设备主机的所述外部数据发送至TEE中的第二路由单元105。
进一步的,所述第二路由单元105,具体用于按如下方式将所述外部数据发送至所述外部数据对应的HCE应用:
获取所述外部数据中的第二标识;
根据所述注册到TEE中的信息,确定与所述外部数据中的第二标识对应的外部数据第一标识、以及与所述外部数据第一标识对应的HCE应用安装的终端环境;
根据所述确定的终端环境,将所述外部数据发送至与所述外部数据第一标识对应的HCE应用。
具体的,所述第二路由单元105,具体用于按如下方式根据所述确定的终端环境,将所述外部数据发送至与所述外部数据第一标识对应的HCE应用:
若所述确定的终端环境为TEE,则通过建立的会话将所述外部数据发送给TEE中的与所述外部数据第一标识对应的HCE应用;
若所述确定的终端环境为REE,则通过TEE中的服务程序或者共享内存将所述外部数据发送给REE中的与所述外部数据第一标识对应的HCE应用。
本发明实施例提供的实现主机卡模拟的终端100,用于实现本发明上述实施例涉及的实现主机卡模拟的方法的功能,对于实现的具体过程,可参阅上述实施例的描述,本发明实施例在此不再赘述。
本发明实施例提供的主机卡模拟终端100,通过两种不同应用类型标签,终端可以区分HCE应用的安装环境为TEE还是REE,进而终端在接收到HCE应用安装包时,可通过应用类型标签,确定HCE应用安装的终端环境,区分该HCE应用为TA或CA,进而将TA安装到TEE中,将CA安装到REE中,实现支持TEE和REE两种不同安全级别的HCE应用,以使开发者可以根据需要选择在TEE中实现HCE功能,或者选择在REE中实现HCE功能,以满足不同应用功能的需求。
基于上述实施例提供的实现主机卡模拟的方法,本发明实施例还提供一 种实现主机卡模拟的终端200,如图13所示,实现主机卡模拟的终端200包括有处理器201。实现主机卡模拟的终端200中包括REE和TEE两种运行环境,两种运行环境分别有各自的处理器,即实现主机卡模拟的终端200的处理器201包括公共处理核2011和可信处理核2012,其中,公共处理核2011为REE的处理器,可信处理核2012为TEE的处理器。需要说明的是,本发明中,公共处理核2011与可信处理核2012可以是同一个实体CPU的不同核心,或者也可以是同一个实体CPU的不同CPU时间。
进一步的,本发明实施例中提供的实现主机卡模拟的终端200还包括存储器,所述存储器包括运行在REE中的公共随机存取存储器(Random-Access Memory,RAM)2021和公共只读存储器(read-only Memory,ROM)2041,以及运行在TEE中的可信RAM2022和可信ROM2042。
本发明实施例中公共RAM2021、公共ROM2041、可信RAM2022以及可信ROM2042可用于存储指令和数据。存储指令区可存储操作系统、至少一个功能所需的指令等;所述指令可使处理器201执行本发明上述实施例涉及的实现主机卡模拟的方法。
本发明实施例中终端实现主机卡模拟的终端200还包括有外设,所述外设包括REE中的公共外设2031和TEE中的可信外设2032。当NFCC位于REE中时,NFCC为公共外设;当NFCC位于TEE中时,NFCC为可信外设;
进一步的,本发明实施例中终端实现主机卡模拟的终端200还包括有位于REE中的通信单元2051。
本发明实施例中处理器201是实现主机卡模拟的终端200的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在公共RAM2021、公共ROM2041、可信RAM2022以及可信ROM2042内的指令以及调用存储在公共RAM2021、公共ROM2041、可信RAM2022以及可信ROM2042内的数据,通过可信外设2032、公共外设2031以及通信单元2051,执行实现主机卡模拟的终端200的各种功能和处理数据,从而对实现主机卡模拟的终端200进行整体控制。可选的,处理器201可包括一个或多个处理单元;优选的,处理器201可集成应用处理器和调制解调处理器,其中,应 用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器201中。在一些实施例中,处理器和存储器、可以在单一芯片上实现,在一些实施例中,他们也可以在独立的芯片上分别实现。
本发明实施例提供的实现主机卡模拟的终端200包括的处理器201,用于调用存储在所述公共RAM2021、公共ROM2041、可信RAM2022以及可信ROM2042内的指令以及数据,通过所述可信外设2032、所述公共外设2031以及所述通信单元2051,实现以下功能:
根据HCE应用的类型,将所述HCE应用安装至与所述HCE应用的类型对应的终端环境中,其中,所述终端环境包括TEE和REE;解析所述HCE应用的第一标识和所述HCE应用中包含的至少一个第二标识,所述第一标识用于在所述终端中唯一标识所述HCE应用,所述第二标识用于标识读卡设备与所述HCE应用之间的消息流;并用于将所述HCE应用的路由信息注册到TEE中,其中,所述路由信息包括所述第一标识、所述至少一个第二标识以及所述HCE应用安装的所述终端环境。
进一步的,所述处理器201,还用于:
将获取的外部数据发送至TEE中的路由管理模块,控制所述路由管理模块将所述外部数据发送至与所述外部数据对应的HCE应用。
具体的,所述处理器201,具体用于采用如下方式将获取的外部数据发送至TEE中的路由管理模块:
通过TEE中的NFCC或REE中的NFCC获取外部数据;
由TEE中的所述NFCC或REE中的所述NFCC将路由目标是设备主机的所述外部数据发送至TEE中的路由管理模块。
其中,所述处理器201,具体用于按如下方式控制所述路由管理模块将所述外部数据发送至所述外部数据对应的HCE应用:
控制所述路由管理模块通过所述通信单元以及所述外设获取所述外部数据中的第二标识,并根据所述注册到TEE中的路由信息,确定与所述外部数据中的第二标识对应的外部数据第一标识、以及与所述外部数据第一标识对 应的HCE应用安装的终端环境,并控制所述路由管理模块根据所述确定的终端环境,将所述外部数据发送至与所述外部数据第一标识对应的HCE应用。
具体的,所述处理器201,具体用于按如下方式控制所述路由管理模块根据所述确定的终端环境,将所述外部数据发送至与所述外部数据第一标识对应的HCE应用:
若所述确定的终端环境为TEE,则通过建立的会话将所述外部数据发送给TEE中的与所述外部数据第一标识对应的HCE应用;
若所述确定的终端环境为REE,则通过TEE中的服务程序或者共享内存将所述外部数据发送给REE中的与所述外部数据第一标识对应的HCE应用。
本发明实施例提供的实现主机卡模拟的终端200,具有实现本发明上述实施例涉及的实现主机卡模拟的任意方法的功能,对于具体实现的功能,可参阅上述实施例的描述,本发明实施例在此不再赘述。
本发明实施例提供的主机卡模拟终端200,通过两种不同应用类型标签,终端可以区分HCE应用的安装环境为TEE还是REE,进而终端在接收到HCE应用安装包时,可通过应用类型标签,确定HCE应用安装的终端环境,区分该HCE应用为TA或CA,进而将TA安装到TEE中,将CA安装到REE中,实现支持TEE和REE两种不同安全级别的HCE应用,以使开发者可以根据需要选择在TEE中实现HCE功能,或者选择在REE中实现HCE功能,以满足不同应用功能的需求。
基于上述实施例提供的实现主机卡模拟方法中的数据路由过程,本发明实施例还提供一种数据路由装置300,如图14所示,数据路由装置300包括获取单元301、第一路由单元302和第二路由单元303,其中,
获取单元301,用于获取外部数据。
第一路由单元302,用于将所述获取单元301获取的外部数据发送至TEE;
第二路由单元303,用于将所述外部数据发送至与所述外部数据对应的HCE应用。
在第一种实现方式中,所述第一路由单元302,具体用于按如下方式将获取的外部数据发送至TEE:
通过TEE中的NFCC驱动或者REE中的NFCC驱动获得所述数据,并将路由目标是设备主机的所述外部数据发送至TEE中的第二路由单元303。
在第二种实现方式中,所述第二路由单元303,具体用于按如下方式,将所述外部数据发送至与所述外部数据对应的HCE应用:
获取所述外部数据中的第二标识,所述第二标识用于标识读卡设备与所述HCE应用之间的消息流;
根据注册到TEE中的所述HCE应用的路由信息,确定与所述外部数据中的第二标识对应的外部数据第一标识、以及与所述外部数据第一标识对应的HCE应用安装的终端环境,所述第一标识用于在终端中唯一标识一个HCE应用;
根据所述确定的终端环境,将所述外部数据发送至与所述外部数据第一标识对应的HCE应用。
在第三种实现方式中,所述第二路由单元303,具体用于按如下方式,根据所述确定的终端环境,将所述外部数据发送至与所述外部数据第一标识对应的HCE应用:
若所述确定的终端环境为TEE,则通过建立的会话将所述外部数据发送给TEE中的与所述外部数据第一标识对应的HCE应用;
若所述确定的终端环境为REE,则通过TEE中的服务程序或者共享内存将所述外部数据发送给REE中的与所述外部数据第一标识对应的HCE应用。
本发明实施例提供的数据路由装置300,用于实现本发明上述实施例涉及的实现主机卡模拟方法中的数据路由过程,对于实现的具体过程,可参阅上述实施例的描述,本发明实施例在此不再赘述。
本发明实施例提供的数据路由装置300,通过获取外部数据中的第二标识,可确定与该第二标识对应的外部数据第一标识,通过外部数据第一标识则可确定该HCE应用是TA还是CA,进而可得知该HCE应用的安装环境,若为TA,则安装环境为TEE,若为CA,则安装环境为REE。确定了HCE应用安装环境后,则可将获取到的数据路由至相应环境中的HCE应用,完成支持不同安全级别的HCE应用的数据路由。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令处理器完成,所述的程序可以存储于计算机可读存储介质中,所述存储介质是非短暂性(英文:non-transitory)介质,例如随机存取存储器,只读存储器,快闪存储器,硬盘,固态硬盘,磁带(英文:magnetic tape),软盘(英文:floppy disk),光盘(英文:optical disc)及其任意组合。
本发明是参照本发明实施例的方法和设备各自的流程图和方框图来描述的。应理解可由计算机程序指令实现流程图和方框图中的每一流程和方框、以及流程图和方框图中的流程和方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和方框图一个方框或多个方框中指定的功能的装置。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (23)

  1. 一种实现主机卡模拟HCE的方法,其特征在于,包括:
    终端根据HCE应用的类型,将所述HCE应用安装至与所述HCE应用的类型对应的终端环境中,其中,所述终端环境包括可信执行环境TEE和富执行环境REE;
    所述终端解析所述HCE应用的第一标识和所述HCE应用中包含的至少一个第二标识,所述第一标识用于在所述终端中唯一标识所述HCE应用,所述第二标识用于标识读卡设备与所述HCE应用之间的消息流;
    所述终端将所述HCE应用的路由信息注册到TEE中,其中,所述路由信息包括所述第一标识、所述至少一个第二标识以及所述HCE应用安装的所述终端环境。
  2. 根据权利要求1所述的方法,其特征在于,还包括:
    所述终端将获取的外部数据发送至TEE中的路由管理模块;
    所述路由管理模块将所述外部数据发送至与所述外部数据对应的HCE应用。
  3. 根据权利要求2所述的方法,其特征在于,所述终端将获取的外部数据发送至TEE中的路由管理模块,具体包括:
    所述终端通过TEE中的近场通信控制器NFCC或REE中的NFCC获取外部数据;
    由TEE中的所述NFCC或REE中的所述NFCC将路由目标是设备主机的所述外部数据发送至TEE中的路由管理模块。
  4. 根据权利要求2或3所述的方法,其特征在于,所述路由管理模块将所述外部数据发送至所述外部数据对应的HCE应用,具体包括:
    所述路由管理模块获取所述外部数据中的第二标识;
    所述路由管理模块根据所述注册到TEE中的路由信息,确定与所述外部数据中的第二标识对应的外部数据第一标识、以及与所述外部数据第一标识对应的HCE应用安装的终端环境;
    所述路由管理模块根据所述确定的终端环境,将所述外部数据发送至与 所述外部数据第一标识对应的HCE应用。
  5. 根据权利要求4所述的方法,其特征在于,所述路由管理模块根据所述确定的终端环境,将所述外部数据发送至与所述外部数据第一标识对应的HCE应用,包括:
    若所述确定的终端环境为TEE,则通过建立的会话将所述外部数据发送给TEE中的与所述外部数据第一标识对应的HCE应用;
    若所述确定的终端环境为REE,则通过TEE中的服务程序或者共享内存将所述外部数据发送给REE中的与所述外部数据第一标识对应的HCE应用。
  6. 一种数据路由方法,其特征在于,包括:
    终端将获取的外部数据发送至TEE中的路由管理模块;
    所述路由管理模块将所述外部数据发送至与所述外部数据对应的HCE应用。
  7. 根据权利要求6所述的方法,其特征在于,所述终端将获取的外部数据发送至TEE中的路由管理模块,具体包括:
    所述终端通过TEE中的NFCC驱动或者REE中的NFCC驱动获取所述外部数据,并将路由目标是设备主机的所述外部数据发送至TEE中的所述路由管理模块。
  8. 根据权利要求6或7所述的方法,其特征在于,所述路由管理模块将所述外部数据发送至与所述外部数据对应的HCE应用,包括:
    所述路由管理模块获取所述外部数据中的第二标识,所述第二标识用于标识读卡设备与一个HCE应用之间的消息流;
    根据注册到TEE中的HCE应用的路由信息,确定与所述外部数据中的第二标识对应的外部数据第一标识、以及与所述外部数据第一标识对应的HCE应用安装的终端环境,所述第一标识用于在终端中唯一标识一个HCE应用;
    根据所述确定的终端环境,将所述外部数据发送至与所述外部数据第一标识对应的所述HCE应用。
  9. 根据权利要求8所述的方法,其特征在于,所述根据所述确定的终端环境,将所述外部数据发送至与所述外部数据第一标识对应的所述HCE应用, 包括:
    若所述确定的终端环境为TEE,则通过建立的会话将所述外部数据发送给TEE中的与所述外部数据第一标识对应的所述HCE应用;
    若所述确定的终端环境为REE,则通过TEE中的服务程序或者共享内存将所述外部数据发送给REE中的与所述外部数据第一标识对应的所述HCE应用。
  10. 一种实现主机卡模拟HCE的终端,其特征在于,包括:
    安装单元,用于根据HCE应用的类型,将所述HCE应用安装至与所述HCE应用的类型对应的终端环境中,其中,所述终端环境包括可信执行环境TEE和富执行环境REE;
    解析单元,用于解析所述安装单元安装的所述HCE应用的第一标识和所述HCE应用中包含的至少一个第二标识,所述第一标识用于在所述终端中唯一标识所述HCE应用,所述第二标识用于标识读卡设备与所述HCE应用之间的消息流;
    注册单元,用于将所述HCE应用的路由信息注册到TEE中,其中,所述路由信息包括所述解析单元解析出的所述第一标识、所述至少一个第二标识以及所述HCE应用安装的所述终端环境。
  11. 根据权利要求10所述的终端,其特征在于,还包括第一路由单元和第二路由单元,其中,
    所述第一路由单元,用于将获取的外部数据发送至TEE中的第二路由单元;
    所述第二路由单元,用于将所述外部数据发送至与所述外部数据对应的所述安装单元安装的HCE应用。
  12. 根据权利要求11所述的终端,其特征在于,所述第一路由单元,具体用于按如下方式将获取的外部数据发送至TEE中的第二路由单元:
    通过TEE中的近场通信控制器NFCC或REE中的NFCC获取外部数据;
    由TEE中的所述NFCC或REE中的所述NFCC将路由目标是设备主机的所述外部数据发送至TEE中的第二路由单元。
  13. 根据权利要求11或12所述的终端,其特征在于,所述第二路由单元,具体用于按如下方式将所述外部数据发送至所述外部数据对应的HCE应用:
    获取所述外部数据中的第二标识;
    根据所述注册到TEE中的路由信息,确定与所述外部数据中的第二标识对应的外部数据第一标识、以及与所述外部数据第一标识对应的HCE应用安装的终端环境;
    根据所述确定的终端环境,将所述外部数据发送至与所述外部数据第一标识对应的HCE应用。
  14. 根据权利要求13所述的终端,其特征在于,所述第二路由单元,具体用于按如下方式根据所述确定的终端环境,将所述外部数据发送至与所述外部数据第一标识对应的HCE应用:
    若所述确定的终端环境为TEE,则通过建立的会话将所述外部数据发送给TEE中的与所述外部数据第一标识对应的HCE应用;
    若所述确定的终端环境为REE,则通过TEE中的服务程序或者共享内存将所述外部数据发送给REE中的与所述外部数据第一标识对应的HCE应用。
  15. 一种数据路由装置,其特征在于,包括:
    获取单元,用于获取外部数据;
    第一路由单元,用于将所述获取单元获取的外部数据发送至TEE中的第二路由单元;
    第二路由单元,用于将所述外部数据发送至与所述外部数据对应的HCE应用。
  16. 根据权利要求15所述的装置,其特征在于,所述第一路由单元,具体用于按如下方式将获取的外部数据发送至TEE中的第二路由单元:
    通过TEE中的NFCC驱动或者REE中的NFCC驱动获取所述外部数据,并将路由目标是设备主机的所述外部数据发送至TEE中的第二路由单元。
  17. 根据权利要求15或16所述的装置,其特征在于,所述第二路由单元,具体用于按如下方式将所述外部数据发送至与所述外部数据对应的HCE 应用:
    获取所述外部数据中的第二标识,所述第二标识用于标识读卡设备与一个HCE应用之间的消息流;
    根据注册到TEE中的所述HCE应用的路由信息,确定与所述外部数据中的第二标识对应的外部数据第一标识、以及与所述外部数据第一标识对应的所述HCE应用安装的终端环境,所述第一标识用于在终端中唯一标识一个HCE应用;
    根据所述确定的终端环境,将所述外部数据发送至与所述外部数据第一标识对应的HCE应用。
  18. 根据权利要求17所述的装置,其特征在于,所述第二路由单元,具体用于按如下方式,根据所述确定的终端环境,将所述外部数据发送至与所述第一标识对应的HCE应用:
    若所述确定的终端环境为TEE,则通过建立的会话将所述外部数据发送给TEE中的与所述外部数据第一标识对应的HCE应用;
    若所述确定的终端环境为REE,则通过TEE中的服务程序或者共享内存将所述外部数据发送给REE中的与所述外部数据第一标识对应的HCE应用。
  19. 一种实现主机卡模拟HCE的终端,其特征在于,包括存储器、外设、通信单元和处理器,其中:
    所述存储器,包括运行于富执行环境REE的公共随机存取存储器RAM和公共只读存储器ROM,以及运行于可信执行环境TEE的可信RAM和可信ROM,用于存储指令和数据;
    所述外设,包括所述REE中的公共外设和所述TEE中的可信外设;
    所述通信单元,位于所述REE中;
    所述处理器,用于调用存储在所述公共RAM、公共ROM、可信RAM以及可信ROM内的指令以及数据,通过所述可信外设、所述公共外设以及所述通信单元,实现以下功能:
    根据HCE应用的类型,将所述HCE应用安装至与所述HCE应用的类型对应的终端环境中,其中,所述终端环境包括TEE和REE;解析所述HCE 应用的第一标识和所述HCE应用中包含的至少一个第二标识,所述第一标识用于在所述终端中唯一标识所述HCE应用,所述第二标识用于标识读卡设备与所述HCE应用之间的消息流;并用于将所述HCE应用的路由信息注册到TEE中,其中,所述路由信息包括所述第一标识、所述至少一个第二标识以及所述HCE应用安装的所述终端环境。
  20. 根据权利要求19所述的终端,其特征在于,所述处理器,还用于:
    将获取的外部数据发送至TEE中的路由管理模块,控制所述路由管理模块将所述外部数据发送至与所述外部数据对应的HCE应用。
  21. 根据权利要求20所述的终端,其特征在于,所述处理器,具体用于采用如下方式将获取的外部数据发送至TEE中的路由管理模块:
    通过TEE中的近场通信控制器NFCC或REE中的NFCC获取外部数据;
    由TEE中的所述NFCC或REE中的所述NFCC将路由目标是设备主机的所述外部数据发送至TEE中的路由管理模块。
  22. 根据权利要求20或21所述的终端,其特征在于,所述处理器,具体用于按如下方式控制所述路由管理模块将所述外部数据发送至所述外部数据对应的HCE应用:
    控制所述路由管理模块通过所述通信单元以及所述外设获取所述外部数据中的第二标识,并根据所述注册到TEE中的路由信息,确定与所述外部数据中的第二标识对应的外部数据第一标识、以及与所述外部数据第一标识对应的HCE应用安装的终端环境,并控制所述路由管理模块根据所述确定的终端环境,将所述外部数据发送至与所述外部数据第一标识对应的HCE应用。
  23. 根据权利要求22所述的终端,其特征在于,所述处理器,具体用于按如下方式控制所述路由管理模块根据所述确定的终端环境,将所述外部数据发送至与所述外部数据第一标识对应的HCE应用:
    若所述确定的终端环境为TEE,则通过建立的会话将所述外部数据发送给TEE中的与所述外部数据第一标识对应的HCE应用;
    若所述确定的终端环境为REE,则通过TEE中的服务程序或者共享内存将所述外部数据发送给REE中的与所述外部数据第一标识对应的HCE应用。
CN201580043877.1A 2015-09-02 2015-09-02 实现主机卡模拟的方法、终端、数据路由方法及装置 Active CN106663017B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/088889 WO2017035819A1 (zh) 2015-09-02 2015-09-02 实现主机卡模拟的方法、终端、数据路由方法及装置

Publications (2)

Publication Number Publication Date
CN106663017A true CN106663017A (zh) 2017-05-10
CN106663017B CN106663017B (zh) 2020-01-10

Family

ID=58186475

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580043877.1A Active CN106663017B (zh) 2015-09-02 2015-09-02 实现主机卡模拟的方法、终端、数据路由方法及装置

Country Status (4)

Country Link
US (1) US11138027B2 (zh)
EP (1) EP3333701B1 (zh)
CN (1) CN106663017B (zh)
WO (1) WO2017035819A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111625815A (zh) * 2020-05-26 2020-09-04 牛津(海南)区块链研究院有限公司 一种基于可信执行环境的数据交易方法及装置
CN112416227A (zh) * 2020-11-19 2021-02-26 Oppo(重庆)智能科技有限公司 一种配置方法、移动终端及计算机存储介质
CN114302404A (zh) * 2021-12-23 2022-04-08 汇顶科技(成都)有限责任公司 近场通信方法、配置方法、nfc主机以及电子设备

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11443323B2 (en) * 2018-03-07 2022-09-13 Samsung Electronics Co., Ltd. System and method for secure transactions with a trusted execution environment (TEE)
CN112822722B (zh) * 2020-12-30 2022-09-23 联想未来通信科技(重庆)有限公司 一种数据报文的传输方法和装置
CN114286345B (zh) * 2021-12-27 2024-04-02 无锡融卡科技有限公司 智能终端内的nfc通信装置及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102047223A (zh) * 2008-03-27 2011-05-04 摩托罗拉移动公司 在电子设备中进行自动近场通信应用选择的方法和装置
US20150244718A1 (en) * 2014-02-24 2015-08-27 Mastercard International Incorporated Biometric authentication

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9357332B2 (en) 2012-06-08 2016-05-31 Broadcom Corporation Near field communication application identification routing in card emulation
CN103778395B (zh) * 2012-10-25 2016-12-21 中国移动通信集团公司 近场通信nfc终端上的应用安装方法和nfc终端
CN104636666A (zh) 2013-11-07 2015-05-20 中国移动通信集团公司 一种用于移动终端进行安全地信息处理的方法和安全装置
RU2019111186A (ru) * 2013-12-19 2019-05-07 Виза Интернэшнл Сервис Ассосиэйшн Способы и системы облачных транзакций
US10387219B2 (en) * 2015-03-10 2019-08-20 Oracle International Corporation Enabling multiple secure elements in a card computing device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102047223A (zh) * 2008-03-27 2011-05-04 摩托罗拉移动公司 在电子设备中进行自动近场通信应用选择的方法和装置
US20150244718A1 (en) * 2014-02-24 2015-08-27 Mastercard International Incorporated Biometric authentication

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张亚飞 等: "基于TEE的NFC卡模拟安全方案研究", 《北京电子科技学院学报》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111625815A (zh) * 2020-05-26 2020-09-04 牛津(海南)区块链研究院有限公司 一种基于可信执行环境的数据交易方法及装置
CN111625815B (zh) * 2020-05-26 2023-09-26 牛津(海南)区块链研究院有限公司 一种基于可信执行环境的数据交易方法及装置
CN112416227A (zh) * 2020-11-19 2021-02-26 Oppo(重庆)智能科技有限公司 一种配置方法、移动终端及计算机存储介质
CN114302404A (zh) * 2021-12-23 2022-04-08 汇顶科技(成都)有限责任公司 近场通信方法、配置方法、nfc主机以及电子设备

Also Published As

Publication number Publication date
US11138027B2 (en) 2021-10-05
EP3333701B1 (en) 2022-11-02
EP3333701A4 (en) 2018-09-05
CN106663017B (zh) 2020-01-10
WO2017035819A1 (zh) 2017-03-09
EP3333701A1 (en) 2018-06-13
US20180246742A1 (en) 2018-08-30

Similar Documents

Publication Publication Date Title
CN106663017A (zh) 实现主机卡模拟的方法、终端、数据路由方法及装置
US11741455B2 (en) Systems and methods for providing near field communications
US10657522B2 (en) Apparatus and method for processing card application in electronic device
US9600816B2 (en) Method and system for executing a NFC transaction supporting multiple applications and multiples instances of a same application
BRPI0915117B1 (pt) Método de acessar um aplicativo em um dispositivo de comunicação móvel, dispositivo de comunicação móvel,prestador de serviços e sistema
EP3155554B1 (en) Electronic device, system and method for nfc
CN109766152B (zh) 一种交互方法及装置
KR20160056749A (ko) 결제를 위한 방법 및 장치
CN105723390A (zh) 用于操作无接触移动设备作为低成本安全销售点的方法
JP2018507575A (ja) Nfcによる通信装置及び方法
CN108141732B (zh) 用于在安全元件中管理应用程序的方法
US10122417B2 (en) Communicating via near field communications
US10496981B2 (en) Multi-protocol communication circuit
US20140298411A1 (en) Accessing a secure element through a manageablity engine
US10236937B2 (en) Managing contactless communications
JP6397200B2 (ja) 管理サーバ、およびデータ処理方法、並びにプログラム
EP4134858A1 (en) Management of applications on multiple secure elements
KR20220136307A (ko) Sam을 이용한 카드 결제를 수행하는 카드 단말 및 이의 동작 방법
JP2017097659A (ja) Icカード、データ保護方法、セキュリティ関連プログラム、及び通信システム
JP2010134676A (ja) 設置情報登録システムおよび方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant