在漫游时使用NFC 移动设备访问本地应用的方法和装置
技术领域
本公开一般地涉及漫游服务,更具体地说,涉及用于漫游移动设备的服务模型。
背景技术
在近场通信(NFC)移动设备生态系统中,可信服务管理器(TSM)充当应用或服务提供商、受管网络运营商(MNO)和MNO客户(为NFC移动设备的用户)之间的中介。当用户请求时,只要用户的MNO与TSM共享加密密钥并且允许访问,TSM便在NFC移动设备上安装应用。但是,在其归属MNO之外(例如在另一个国家)旅行的用户将不能利用本地启用NFC的服务,因为本地MNO和TSM将无法对用户的NFC移动设备上的安全元件(SE)进行安全访问。
因此,除了其它方面,希望用户能够在漫游时使用NFC移动设备访问本地应用。
发明内容
根据本发明的一个方面,一种用于在漫游时使用NFC移动设备访问本地应用的方法可以包括:在启用近场通信(NFC)的设备的订户标识模块(SIM)的安全元件(SE)上创建第一分区和第二分区;通过加密分隔所述第一分区和所述第二分区;由第一可信服务管理器(TSM)生成用于所述第二分区的加密密钥,以响应第二TSM的访问所述第二分区的请求;使用所生成的加密密钥,将对所述第二分区的访问从所述第一TSM委托给所述第二TSM;以及重设所生成的加密密钥。
在本发明的另一个方面,可以提供一种用于在漫游时使用NFC移动设备访问本地应用的计算机程序产品。所述计算机程序产品可以包括包含在计算机可读存储介质上的操作系统程序,由此所述操作系统程序包括可由处理器执行以便执行一种方法的代码。相应地,所述方法可以包括:在启用NFC的设备的SIM的SE上创建第一分区和第二分区;通过加密分隔所述第一分区和所述第二分区;由第一TSM生成用于所述第二分区的加密密钥,以响应第二TSM的访问所述第二分区的请求;使用所生成的加密密钥,将对所述第二分区的访问从所述第一TSM委托给所述第二TSM;以及重设所生成的加密密钥。
在本发明的另一个方面,提供一种用于在漫游时使用NFC移动设备访问本地应用的计算机系统。所述计算机系统可以包括一个或多个处理器、一个或多个计算机可读存储设备,以及存储在所述一个或多个存储设备中的至少一个上以便由所述一个或多个处理器中的至少一个执行的多个程序指令。所述多个程序指令可以包括:用于在启用NFC的设备的SIM的SE上创建第一分区和第二分区的程序指令;用于通过加密分隔所述第一分区和所述第二分区的程序指令;用于由第一TSM生成用于所述第二分区的加密密钥,以响应第二TSM的访问所述第二分区的请求的程序指令;用于使用所生成的加密密钥,将对所述第二分区的访问从所述第一TSM委托给所述第二TSM的程序指令;以及用于重设所生成的加密密钥的程序指令。
附图说明
从以下将结合附图阅读的对本发明的示例性实施例的详细描述,本发明的这些和其它目标、特性以及优点将变得显而易见。附图的各种特性不是按比例的,因为例示是为了清晰起见,便于所属技术领域的技术人员结合详细描述理解本发明。在附图中:
图1是示出根据一个示例性实施例的用于在漫游时在NFC移动设备上访问本地应用的方法的概述的流程图;
图2是根据图1中所示的本发明实施例的示例性软件和硬件环境的示意图;以及
图3是根据一个示例性实施例的硬件和软件的框图。
具体实施方式
现在将参考附图描述本发明的各实施例。如在此使用的,“近场通信”(NFC)可以指无线连接性标准和用于在电子设备(例如智能电话和销售点(POS)终端,或者类似的启用NFC的设备)之间实现短距离通信的技术。
“移动网络运营商”(MNO)如在此使用的,可以指无线语音和数据通信服务的提供商。当指MNO为其订户提供的服务时,MNO可以称为“归属(home)”MNO。
“可信服务管理器”(TSM)如在此所称的,在NFC体系架构中执行角色,其可以包括代表MNO向启用NFC的设备提供应用或服务空中激活(OTA)。因此,TSM可以体现为包括利用计算机300(图3)的硬件和软件环境的一个或多个软件模块的计算机系统。尽管MNO还可以包括TSM功能,但TSM可以是可信的独立第三方。
可以安装在NFC移动设备上的软件应用或相关服务的提供商可以称为“应用提供商”(AP)。
一般而言,术语“漫游”可以指用户访问通过用户归属MNO之外的MNO所提供的服务的能力。因此,“漫游”MNO是这样一种MNO:其可以将服务扩展到归属MNO之外的MNO的订户。同样,“漫游”TSM可以代表“漫游”MNO代理例如来自“漫游”AP的服务。对MNO、TSM或AP的引用应分别被解释为“归属”MNO、“归属”TSM或“归属”AP,除非对“漫游”加以区分。
如在此使用的,“订户身份模块”(SIM)可以指嵌入在可拆卸卡上的集成电路,其安全地存储移动电话型设备(例如电话、平板计算机或计算机)的用户的用户身份和认证信息。
“安全元件”也称为SE,可以表示启用NFC的设备(例如移动电话)的防篡改组件,其专用于安全地存储应用和机密数据。尽管示例性SE可以包含在SIM卡上,但SE还可以包含在其它配置中,例如固态设备(SSD)云计算平台、安全数字(SD)卡或移动设备。因此,所属技术领域的普通技术人员可以理解,在SIM卡上示出SE分区(例如在图2中)只是提供可能配置的例示,而不是对SE分区的位置进行限制。
参考图1和2,方法100和系统200为NFC移动设备260(图2)提供漫游MNO215(图2)上的服务和应用。
蜂窝电话购买者还选择从其接收数据和通信服务的MNO205无线服务提供商。TSM220充当中立代理以便安全地分发、供应和管理MNO205客户的NFC移动设备260上的应用。在一个示例性实施例中,当订户购买新的NFC移动设备260时,作为初始化过程的一部分,TSM220代表MNO205或者MNO205直接在该NFC移动设备的SE上创建两个或更多分区。第一SE265表示主分区,其中TSM220安装来自MNO205中的AP210的应用。存储在主分区(SE265)上的数据是永久性的。
在一个示例性实施例中,仅当漫游时保留存储在其它分区(SE270)上的数据。TSM220或漫游TSM221可以使用SIM卡271上的其它分区(例如来宾SE270)存储非永久性数据,例如来自漫游AP211的应用或数据。每个分区与其它分区隔离,并且通过非对称密钥算法(例如可以包括在公钥加密中的那些算法)保护。因此,如果归属服务提供商(MNO205和TSM220)与漫游服务提供商(漫游MNO215和漫游TSM221)之间没有正式协议(示出为网络或OTA连接250(图2)),则用户的NFC移动设备260可能无法例如通过网络或OTA连接250(图2)访问由漫游MNO215或漫游TSM221管理的服务。
在110,用户可能希望使用NFC移动设备260进行POS购买,以便例如购买火车票、下载运输计划或执行类似任务。其中所需的应用可以由NFC移动设备260透明地请求,并且由AP210通过TSM220以中介方式部署,此处在110,漫游TSM221没有用于直接访问NFC移动设备260 上的SIM卡271的安全密钥。因此,在115,漫游AP211首先联系漫游TSM211以便定位TSM220以寻找用于更新来宾SE270的机构。
在120,漫游TSM221联系其伙伴MNO,该MNO是漫游MNO215。一般而言,MNO可以彼此作为业务伙伴协商业务协议,以便协作为到访问订户的服务进行计费和授权。因此,在125,MNO205可以与漫游MNO215具有现有协议,该协议将授权漫游TSM221以允许漫游AP211在来宾SE270上安装所请求的应用。备选地,当发出用于访问漫游服务的初始请求时,可以在MNO205与漫游MNO215之间实时创建协议。
在130,漫游TSM221现在可以请求MNO205在135返回来宾SE270的管理TSM220的身份。在140,漫游TSM221设置访问来宾SE270的请求的格式并将该请求发送到TSM220。作为响应,如果TSM220信任来自漫游TSM221的请求,则在145,TSM220通过交换安全密钥,将对来宾SE270的访问委托给漫游TSM221。例如,TSM220可以将其公钥发送到漫游TSM221。漫游TSM221可以生成随机会话密钥,漫游TSM221在使用漫游TSM221的公钥加密的消息中将该随机会话密钥发送到TSM220。TSM220然后可以使用其私钥对消息进行解密并提取该会话密钥。为了确保安全密钥的完整性,TSM220向漫游TSM221发送使用会话密钥加密的确认消息。通过这种方式,可以使用会话密钥将来宾SE270安全密钥发送到漫游TSM221。此外,通过安全密钥将来宾SE270分区与SE265分隔开可以防止因黑客或对SE265内容的其它损坏而中断服务。
在155,漫游TSM221将所请求的应用、数据或服务安装到来宾SE270,从而使用来宾SE270安全密钥对通信进行签名。此外,漫游TSM221可以继续更新其安装在来宾SE270上的应用、数据或服务,同时NFC移动设备260保持在漫游MNO215中。在160,当NFC移动设备260返回到MNO205时,TSM220可以删除来宾SE270中的任何应用或数据,并且重设安全密钥。
在另一个示例性实施例中,TSM220可以在TSM220处的存储位置中备份存储在来宾SE270中的数据和应用,以便NFC移动设备260随后 重新调用。因此,公务旅行者可以维护频繁访问的国家或地区特定的应用的组合(portfolio),并且根据需要恢复这些应用。此外,具有多个来宾SE270分区可使用户能够在前往预计产生漫游的另一个国家或地区之前,在NFC移动设备260上预先提供应用。
现在参考图3,计算设备300可以包括相应多组内部组件800和外部组件900。每组内部组件800包括在一个或多个总线826上的一个或多个处理器820、一个或多个计算机可读RAM822和一个或多个计算机可读ROM824、一个或多个操作系统828、一个或多个程序829,以及一个或多个计算机可读有形存储设备830。一个或多个操作系统828和程序829存储在一个或多个相应的计算机可读有形存储设备830上,以便经由一个或多个相应的RAM822(通常包括高速缓冲存储器)由一个或多个相应的处理器820执行。在图3中所示的实施例中,每个计算机可读有形存储设备830可以是内部硬盘驱动器的磁盘存储设备。备选地,每个计算机可读有形存储设备830是半导体存储器件,例如ROM824、EPROM、闪存,或者可以存储计算机程序和数字信息的任何其它计算机可读有形存储设备。
每组内部组件800还包括读写驱动器或接口832,以便读取和写入一个或多个便携式计算机可读有形存储设备936,例如CD-ROM、DVD、记忆棒、磁带、磁盘、光盘或半导体存储设备。
每组内部组件800还可以包括网络适配器(或交换机端口卡)或接口836,例如TCP/IP适配器卡、无线WI-FI接口卡,或者3G或4G无线接口卡,或者其它有线或无线通信链路。可以经由网络(例如,因特网、局域网或其它广域网)和相应的网络适配器或接口836,将与计算设备300关联的固件838、操作系统828和程序829从外部计算机(例如,服务器)下载到计算设备300。从网络适配器(或交换机端口适配器)或接口836,将与计算设备300关联的固件838和操作系统828加载到相应的硬盘驱动器830和网络适配器836。所述网络可以包括铜线、光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。
每组外部组件900可以包括计算机显示器920、键盘930和计算机鼠标934。外部组件900还可以包括触摸屏、虚拟键盘、触摸板、指点设备和其它人机接口设备。每组内部组件800还包括设备驱动器840,以便与计算机显示器920、键盘930和计算机鼠标934对接。设备驱动器840、读写驱动器或接口832以及网络适配器或接口836包括硬件和软件(存储在存储设备830和/或ROM824中)。
所属技术领域的技术人员知道,本公开的各个方面可以实现为系统、方法或计算机程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,本公开的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是—但不限于—电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括例如在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括—但不限于—电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令 执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括—但不限于—无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开的各个方面的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言,脚本语言例如Perl、VBS或类似语言,和/或函数语言例如Lisp和ML以及面向逻辑语言例如Prolog。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
将参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其它设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程装置或其它设备上执行一系列 操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
附图1-3中的流程图和框图显示了根据本公开的不同实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。