基于NFC的通信方法和装置

申请号 CN201510215296.3 申请日 2015-04-30 公开(公告)号 CN105591672A 公开(公告)日 2016-05-18
申请人 中国银联股份有限公司; 发明人 陈成钱; 周钰; 郭伟;
摘要 本 发明 涉及基于NFC的通信方法和装置,并且尤其涉及在SE内的基于NFC的通信方法和装置、在智能终端内的基于NFC的通信方法、安全单元和智能终端。本发明提出一种新的与NFC设备的连接方式来达到让TEE应用使用NFC能 力 的目的。
权利要求

1. 一种在SE内的基于NFC的通信方法,其特征在于,包括:
从TEE中的通信模接收第一消息,
向NFC设备转发所述第一消息,
从所述NFC设备接收第二消息,
向所述通信模块转发所述第二消息。
2. 根据权利要求1所述的通信方法,其特征在于,包括用于建立TEE应用和所述NFC设备之间的通信通道的过程,在该过程中,
从所述通信模块接收源自所述应用的创建通道命令,
向所述NFC设备转发所述创建通道命令,
从所述NFC设备接收包含通道号的返回消息,该通道号用于标识所述应用,向所述通信模块转发所述包含通道号的返回消息。
3. 根据权利要求2所述的通信方法,其特征在于,包括用于所述应用和所述NFC设备之间的数据交互的过程,在该过程中,
从所述NFC设备接收包含所述通道号和交互数据的消息,该交互数据来自NFC通信实体,
向所述通信模块转发包含所述通道号和交互数据的消息,所述通道号用于供所述通信模块确定所述应用,
从所述通信模块接收源自所述应用的针对所述NFC通信实体的响应消息,向NFC设备转发所述响应消息。
4. 根据权利要求1所述的通信方法,其特征在于,
与所述通信模块的消息传递和与所述NFC设备的消息传递使用相同的通信协议。
5. 一种在SE内的基于NFC的通信装置,其特征在于,包括:
第一模块,用于从TEE中的通信模块接收第一消息,
第二模块,用于向NFC设备转发所述第一消息,
第三模块,用于从所述NFC设备接收第二消息,
第四模块,用于向所述通信模块转发所述第二消息。
6. 根据权利要求5所述的通信装置,其特征在于,该装置被配置成用于建立TEE应用和所述NFC设备之间的通信通道,其中,
所述第一模块被配置成从所述通信模块接收源自所述应用的创建通道命令,所述第二模块被配置成向所述NFC设备转发所述创建通道命令,
所述第三模块被配置成从所述NFC设备接收包含通道号的返回消息,该通道号用于标识所述应用,
所述第四模块被配置成向所述通信模块转发所述包含通道号的返回消息。
7. 根据权利要求6所述的通信装置,其特征在于,该装置还被配置成用于收发所述应用和所述NFC设备之间的交互数据,其中,
所述第三模块被配置成从所述NFC设备接收包含所述通道号和交互数据的消息,该交互数据来自NFC通信实体,
所述第四模块被配置成向所述通信模块转发包含所述通道号和交互数据的消息,所述通道号用于供所述通信模块确定所述应用,
所述第一模块被配置成从所述通信模块接收源自所述应用的针对所述NFC通信实体的响应消息,
所述第二模块被配置成向NFC设备转发所述响应消息。
8. 根据权利要求6所述的通信装置,其特征在于,
与所述通信模块的消息传递和与所述NFC设备的消息传递使用相同的通信协议。
9. 一种在智能终端内的基于NFC的通信方法,其特征在于,该方法包括:
当所述智能终端运行在TEE时,
经由SE,向NFC设备发送第一消息,
经由该SE,从所述NFC设备接收第二消息。
10. 根据权利要求9所述的通信方法,其特征在于,包括用于建立TEE应用和所述NFC设备之间的通信通道的过程,在该过程中,
经由所述SE,向所述NFC设备发送源自所述应用的创建通道命令,经由所述SE,从所述NFC设备接收包含通道号的返回消息,该通道号用于标识所述应用。
11. 根据权利要求10所述的通信方法,其特征在于,包括用于所述应用和所述NFC设备之间的数据交互的过程,在该过程中,
经由所述SE,从所述NFC设备接收包含所述通道号和交互数据的消息,该交互数据来自NFC通信实体,
根据通道号确定所述应用,
经由所述SE,向NFC设备发送针对所述NFC通信实体的响应消息。
12. 根据权利要求9所述的通信方法,其特征在于,
基于所述SE与所述NFC设备之间的通信协议与所述SE通信消息。
13. 一种在智能终端内的基于NFC的通信装置,其特征在于,该装置被配置成:
当所述智能终端运行在TEE时,
经由SE,向NFC设备发送第一消息,
经由该SE,从所述NFC设备接收第二消息。
14. 根据权利要求12所述的通信装置,其特征在于,该装置被配置成建立TEE应用和所述NFC设备之间的通信通道,该装置进一步被配置成,
经由所述SE,向所述NFC设备发送源自所述应用的创建通道命令,经由所述SE,从所述NFC设备接收包含通道号的返回消息,该通道号用于标识所述应用。
15. 根据权利要求13所述的通信装置,其特征在于,该装置被配置成实现所述应用和所述NFC设备之间的数据交互,该装置进一步被配置成,
经由所述SE,从所述NFC设备接收包含所述通道号和交互数据的消息,该交互数据来自NFC通信实体,
根据通道号确定所述应用,
经由所述SE,向NFC设备发送针对所述NFC通信实体的响应消息。
16. 根据权利要求13所述的通信装置,其特征在于,
该装置被配置成基于所述SE与所述NFC设备之间的通信协议与所述SE通信消息。
17. 一种包含根据权利要求5至8的任意一项所述的装置的SE。
18. 一种包含根据权利要求13至16的任意一项所述的装置的智能终端。

说明书全文

基于NFC的通信方法和装置

技术领域

[0001] 本发明涉及基于NFC的通信方法和装置,并且尤其涉及在SE内的基于NFC的通信方法和装置、在智能终端内的基于NFC的通信方法、安全单元和智能终端。

背景技术

[0002] 可信执行环境TEE(Trusted Execution Environment)技术能够为诸如移动电话等智能终端提供受到硬件隔离保护的可信执行环境/操作系统。智能终端上的与安全相关的应用,即TEE应用可以在TEE执行以保证安全性。
[0003] 近场通信NFC(Near Field Communication)是一种近距离无线通信技术,其基于射频识别 RFID(Radio Frequency Identification)技术,利用磁场感应来实现智能终端间的近距离通信。
[0004] 通常在诸如安卓、IOS等多媒体执行环境REE(Rich Execution Environment)中实现REE中的应用的NFC功能。当TEE应用需要实现NFC功能时,存在以下的技术方案。
[0005] 通过REE中的服务代理实现TEE应用的NFC功能,如图1所示。该方案利用智能终端上REE与NFC设备连接的能,在REE中设置NFC服务代理为TEE应用提供NFC能力。这里,NFC设备可以是NFC控制器(NFC Controller),例如是设置在智能终端内的NFC芯片。
图1示出REE下的NFC服务代理与在TEE中设置的NFC客户基于预定的协议来实现TEE应用的NFC功能。具体地,NFC服务代理经由NFC客户接收来自TEE应用的消息并调用NFC协议栈来操作NFC设备以执行具体的NFC功能,例如卡模拟、读卡器功能等。由于TEE应用和NFC设备之间的数据交互需要通过不安全的REE,TEE应用难以被安全地执行。例如,对于TEE下的交易应用,经由REE传输的支付信息可能会被窃取。
[0006] 在其它方案中,通过在TEE中设置NFC驱动、实现NFC协议栈来为TEE应用提供NFC能力,如图2所示。为了兼容REE应用的NFC功能,该方案需要在REE中额外设置NFC虚拟驱动与实际的TEE中的NFC驱动对接。由于TEE中的NFC驱动需要协调NFC协议栈、NFC虚拟驱动与NFC设备之间的通信,这将不可避免地增加在TEE的复杂性。另一方面,由于REE内核并不包含NFC虚拟驱动,将REE内核的原有NFC驱动改成NFC虚拟驱动也会增加REE的复杂性,尤其是随着新的NFC设备的增加和REE内核的升级,NFC虚拟驱动需要独立地被维护。

发明内容

[0007] 本发明提出一种新的基于NFC的通信架构,该架构使用新的连接路径让TEE应用具备NFC能力。本发明通过利用安全单元SE(Security Element)作为TEE应用和NFC设备的通信中介来实现TEE应用的NFC能力。这里,SE是具有计算和存储功能的独立模(例如SIM卡、智能SD卡等),其提供安全机制保护在其中存储的数据以及与外部设备通信的安全。 SE和NFC设备之间可以通过基于单线协议SWP(Single Wire Protocol)协议的主机控制接口HCI(Host Controller Interface)进行通信。SE与TEE之间可以通过SE支持的接口(例如7816接口、SPI接口)通信。
[0008] 本发明公开以下技术方案。
[0009] 一种在SE内的基于NFC的通信方法,包括:从TEE中的通信模块接收第一消息,向NFC设备转发所述第一消息,从所述NFC设备接收第二消息,向所述通信模块转发所述第二消息。
[0010] 优选地,包括用于建立TEE应用和所述NFC设备之间的通信通道的过程,在该过程中,从所述通信模块接收源自所述应用的创建通道命令,向所述NFC设备转发所述创建通道命令,从所述NFC设备接收包含通道号的返回消息,该通道号用于标识所述应用,向所述通信模块转发所述包含通道号的返回消息。
[0011] 优选地,包括用于所述应用和所述NFC设备之间的数据交互的过程,在该过程中,从所述NFC设备接收包含所述通道号和交互数据的消息,该交互数据来自NFC通信实体,向所述通信模块转发包含所述通道号和交互数据的消息,所述通道号用于供所述通信模块确定所述应用,从所述通信模块接收源自所述应用的针对所述NFC通信实体的响应消息,向NFC设备转发所述响应消息。
[0012] 优选地,与所述通信模块的消息传递和与所述NFC设备的消息传递使用相同的通信协议。
[0013] 一种在SE内的基于NFC的通信装置,包括:第一模块,用于从TEE中的通信模块接收第一消息,第二模块,用于向NFC设备转发所述第一消息,第三模块,用于从所述NFC设备接收第二消息,第四模块,用于向所述通信模块转发所述第二消息。
[0014] 优选地,该装置被配置成用于建立TEE应用和所述NFC设备之间的通信通道,其中,所述第一模块被配置成从所述通信模块接收源自所述应用的创建通道命令,所述第二模块被配置成向所述NFC设备转发所述创建通道命令,所述第三模块被配置成从所述NFC设备接收包含通道号的返回消息,该通道号用于标识所述应用,所述第四模块被配置成向所述通信模块转发所述包含通道号的返回消息。
[0015] 优选地,该装置还被配置成用于收发所述应用和所述NFC设备之间的交互数据,其中,所述第三模块被配置成从所述NFC设备接收包含所述通道号和交互数据的消息,该交互数据来自NFC通信实体,所述第四模块被配置成向所述通信模块转发包含所述通道号和交互数据的消息,所述通道号用于供所述通信模块确定所述应用,所述第一模块被配置成从所述通信模块接收源自所述应用的针对所述NFC通信实体的响应消息,所述第二模块被配置成向NFC设备转发所述响应消息。
[0016] 优选地,与所述通信模块的消息传递和与所述NFC设备的消息传递使用相同的通信协议。
[0017] 一种在智能终端内的基于NFC的通信方法,该方法包括:当所述智能终端运行在TEE时,经由SE,向NFC设备发送第一消息,经由该SE,从所述NFC设备接收第二消息。
[0018] 优选地,包括用于建立TEE应用和所述NFC设备之间的通信通道的过程,在该过程中,经由所述SE,向所述NFC设备发送源自所述应用的创建通道命令,经由所述SE,从所述NFC设备接收包含通道号的返回消息,该通道号用于标识所述应用。
[0019] 优选地,包括用于所述应用和所述NFC设备之间的数据交互的过程,在该过程中,经由所述SE,从所述NFC设备接收包含所述通道号和交互数据的消息,该交互数据来自NFC通信实体,根据通道号确定所述应用,经由所述SE,向NFC设备发送针对所述NFC通信实体的响应消息。
[0020] 优选地,基于所述SE与所述NFC设备之间的通信协议与所述SE通信消息。
[0021] 一种在智能终端内的基于NFC的通信装置,该装置被配置成:当所述智能终端运行在TEE时,经由SE,向NFC设备发送第一消息,经由该SE,从所述NFC设备接收第二消息。
[0022] 优选地,该装置被配置成,建立TEE应用和所述NFC设备之间的通信通道的过程,该装置进一步被配置成,经由所述SE,向所述NFC设备发送源自所述应用的创建通道命令,经由所述SE,从所述NFC设备接收包含通道号的返回消息,该通道号用于标识所述应用。
[0023] 优选地,该装置被配置成实现所述应用和所述NFC设备之间的数据交互的过程,该装置进一步被配置成,经由所述SE,从所述NFC设备接收包含所述通道号和交互数据的消息,该交互数据来自NFC通信实体,根据通道号确定所述应用,经由所述SE,向NFC设备发送针对所述NFC通信实体的响应消息。
[0024] 优选地,该装置被配置成基于所述SE与所述NFC设备之间的通信协议与所述SE通信消息。附图说明
[0025] 在参照附图阅读了本发明的具体实施方式以后,本领域技术人员将会更清楚地了解本发明。本领域技术人员应当理解的是,附图仅仅用于配合具体实施方式说明本发明的技术方案,而并非意在对本发明的保护范围构成限制。
[0026] 图1是示出通过REE中的服务代理实现TEE应用的NFC功能的框图
[0027] 图2是示出通过在TEE下设置NFC驱动、实现NFC协议栈为TEE应用提供NFC能力的框图。
[0028] 图3是示出根据一个实施例在SE内的基于NFC的通信方法的消息传递的示意图。
[0029] 图4是出示出了图3中的通信模块、SE、NFC的示意图。
[0030] 图5是示出根据一个实施例在SE内的基于NFC的通信方法的消息传递的示意图。

具体实施方式

[0031] 下面参照附图,对本发明的具体实施方式作进一步的详细描述。应当理解的是,可对所描述的实施例进行结构和功能修改。另外,可针对任何给定的或特定的应用,组合一个实施例的一个或多个特征与另一个实施例的一个或多个特征。
[0032] 图3是示出根据一个实施例在SE内的基于NFC的通信方法的消息传递的示意图。如图3所示,该通信方法包括以下步骤:SE从TEE中的通信模块接收第一消息,SE向NFC设备转发第一消息,SE从NFC设备接收第二消息,以及SE向通信模块转发第二消息。这里,第一消息源自TEE应用,第二消息可以源自NFC设备或者外部NFC通信实体(例如POS终端、移动通信终端)。通过上述步骤,TEE应用与NFC设备之间的数据交互不通过不安全的REE,由此TEE应用可以被安全地执行。
[0033] 优选地,SE与通信模块的消息传递和SE与NFC设备的消息传递可以使用相同的通信协议,例如HCI协议。由于SE与NFC设备之间的HCI协议并不复杂,在TEE中实现HCI协议栈不会增加TEE的复杂度。
[0034] 现参考图4,其示出了图3中的通信模块、SE、NFC设备的示意图。如图4所示,通信模块被设置在能够运行REE和TEE两种操作系统的智能终端中,NFC设备可以被设置在智能终端中或者附接到智能终端上,SE可以被设置在智能终端中或者附接到智能终端上。TEE应用与通信模块耦合,利用SE驱动通过通信模块与SE交互。NFC设备还与NFC通信实体交互。由此,经由SE,实现了TEE应用与NFC通信实体的交互。
[0035] 继续参考图4,通信模块被用于实现HCI协议栈,由此来自TEE应用的消息由通信模块包含按照HCI协议的数据包中被发送至SE。相似地,通信模块接收来自SE的按照HCI协议的数据包,并从该数据包中获得针对TEE应用的消息,然后将该消息发送给TEE应用。由于通信信息按照TEE、SE、NFC设备形成的可信环境的通信路径传送,TEE应用可以被安全地执行。
[0036] 现在描述通信模块、SE、NFC设备之间的通信路径。如上所述,在TEE中设置了包含HCI协议栈的通信模块,由此,SE与TEE之间的按照HCI协议消息的传送可以通过在SE与TEE之间的应用协议数据单元APDU(Application Protocol Data Unit)通道进行。SE与NFC设备之间的按照HCI协议消息的传送,可以通过SE与NFC设备之间的SWP通道进行。
[0037] 以下描述建立TEE应用和NFC设备之间的通信通道的过程。重新参考图3,在该过程中,从通信模块接收源自应用的作为第一消息的创建通道命令,向NFC设备转发创建通道命令,从NFC设备接收作为第二消息的包含通道号的返回消息,该通道号用于标识应用,向通信模块转发包含通道号的返回消息。
[0038] 以下是一个实例:(1)由TEE应用生成创建通道命令,指定NFC设备的接口;
(2)由通信模块将该创建通道命令转换HCI数据包,以及将该HCI数据包通过APDU通道发送给SE的HCI模块;
(3)由SE的HCI模块接收该HCI数据包,并将其转换成SWP数据包,通过SWP通道发送到NFC设备;
(4)由NFC设备的HCI模块接收该HCI数据包,处理该数据包中的创建通道命令,生成通道号,然后将包含通道号的消息以HCI数据包的格式返回给SE;
(5)由SE的HCI模块解析该HCI数据包,获得其中的通道号,并将该通道号与TEE应用的对应关系记录在通道表中,然后将HCI数据包通过APDU通道发送到TEE;
(6)由TEE的通信模块对该HCI数据包进行解包,获得其中的通道号,并记录该通道号与TEE应用的对应关系,由此,完成TEE应用和NFC设备之间的通信通道的创建。
[0039] 在完成通道创建后,智能终端可以开始与NFC通信实体交互。以下描述实现应用和NFC设备之间的数据交互的过程。参考图5,图5是示出根据一个实施例在SE内的基于NFC的通信方法的消息传递的示意图。在该过程中,从NFC设备接收作为第二消息的包含通道号和交互数据的消息,该交互数据来自NFC通信实体,向通信模块转发包含通道号和交互数据的消息,通道号用于供通信模块确定应用,从通信模块接收源自应用的作为第一消息的针对NFC通信实体的响应消息,向NFC设备转发响应消息。
[0040] 以下是一个实例:(1)由NFC设备从NFC通信实体获得交互数据,并将该交互数据以HCI数据包格式发送给SE;
(2)由SE解析该HCI数据包,获取其中的通道号,并根据通道表判断该通道号对应的是TEE应用还是SE应用,若是SE应用,则将交互数据发送至SE上的具体应用;若是TEE应用,则把该HCI数据包通过APDU通道发送至TEE中的通信模块;
(3)TEE中的通信模块解包该HCI数据包,获取交互数据,并根据其中的通道号,找到指定的TEE应用,将交互数据发往TEE应用。
[0041] 如此,TEE应用利用NFC设备和SE与外部NFC通信实体完成数据收发。应当理解的是,可以按照具体的命令使用NFC的具体能力,包括卡模拟和读卡器能力等。
[0042] 再参考图4,在该实施例中,NFC设备与REE连接,由REE控制。NFC设备保持原有的实现架构和功能,REE也按照原有的方式控制NFC设备并为REE应用提供NFC能力。因此,该方案不需要对REE、NFC设备进行任何软件或者硬件方面的改动。
[0043] 通过以上实施方式的描述,本领域中的普通技术人员能够理解,在不偏离本发明的精神和范围的情况下,还可以对本发明的具体实施方式作各种变更和替换。这些变更和替换都落在本发明权利要求书所限定的范围内。
QQ群二维码
意见反馈