【具体实施方式】
本发明的详细描述主要通过程序、步骤、逻辑块、过程或其他象征性的描述来直接或间接地模拟本发明技术方案的运作。为透彻的理解本发明,在接下来的描述中陈述了很多特定细节。而在没有这些特定细节时,本发明则可能仍可实现。所属领域内的技术人员使用此处的这些描述和陈述向所属领域内的其他技术人员有效的介绍他们的工作本质。换句话说,为避免混淆本发明的目的,由于熟知的方法和程序已经容易理解,因此它们并未被详细描述。
此处所称的“一个实施例”或“实施例”是指可包含于本发明至少一个实现方式中的特定特征、结构或特性。在本说明书中不同地方出现的“在一个实施例中”并非均指同一个实施例,也不是单独的或选择性的与其他实施例互相排斥的实施例。此外,表示一个或多个实施例的方法、流程图或功能框图中的模块顺序并非固定的指代任何特定顺序,也不构成对本发明的限制。本文中的密钥集是指一组密钥。
下面参考图1A-图2D来介绍本发明的各个实施例。然而,所属领域内的普通技术人员容易理解的是这里根据这些附图列出的细节描述仅仅是解释性的,本发明并不仅限于这些实施例。
当具有近场通信(Near Field Communication,简称NFC)功能的移动电话用于诸如支付服务、交通票务、信用服务、物理访问控制和其他令人兴奋的新服务时,NFC显示出重大的商机。为了支持这种快速演变的商务环境,包括金融机构、各种具有NFC功能的移动电话的制造商(manufacturer,或称制造者)、软件开发商(developer,或称开发者)以及移动网络运营商(Mobile NetworkOperators,简称MNO)的多个实体参与进NFC移动生态系统。由于他们单独角色的特性,这些参与者需要互相交流并以一种可靠的、彼此协作的方式交换信息。
下载至并存储于执行无接触性交易(contactless transactions)的具有NFC功能的手持电话的数据和敏感应用的机密性和安全性的继续提高对于上述各个实体都是同等重要的。在移动电话中提供安全性和机密性以支持各种商业模型的组件可以被称为安全元件(Secure Element,简称SE)。总体来讲,安全元件是一个防篡改平台(比如,单芯片安全微控制器),其能够根据一组被广为认同的可信专家(well-identified trusted authorities)起草的规则和安全需求安全的主管各种应用和他们的保密和加密数据(比如密钥管理)。安全元件的常见形式包括嵌入有安全元件的通用集成电路卡(UICC)和微SD卡(microSD)。UICC和microSD都是可移除的。在本发明的一个实施例中,软件模组可以作为安全元件,通过重写该软件模组的所有组件中的一部分的方式更新该软件模组。不管什么形式,每种形式都会导致不同的商业实现,并满足不同的市场需求。
图1A示出了计算装置100的简单架构。除非特别说明,“计算装置”、“移动装置”、“手持装置”、“移动电话”或“手持电话”将在本文中可互相替代的使用,然而所属领域内的普通技术人员能够理解上述词汇也可以指代其他装置,比如智能电话、笔记本电脑、无接触性智能卡和其他便携式装置。所述移动装置100包括NFC控制器101,该NFC控制器101使得所述移动装置100能够与其它装置无线通信以交换数据。比如,用户可以将所述移动装置100用作电子钱包(e-purse)进行购买支付。在操作时,所述电子钱包由安全元件102来控制。所述安全元件102可以使得这样的一个移动装置100以一种安全的方式来执行金融交易、交通票务、信用服务、物理访问控制和其他令人兴奋的服务。为了提供这样的服务,所述安全元件102可以支持各种Java applet程序、应用或模块(图1A中仅示出了两个实例104和106)。在实现时,这些模块可以是嵌入或插入其内的硬件模块,也可以是通过数据网络从一个或多个服务器上下载的软件模块。
当最早购买移动装置或最早将移动装置交付给客户时,在所述移动装置的安全元件102上安装一组默认密钥(a set of default keys,或称为默认密钥集),比如由安全元件制造者(manufacter)设置的发行者安全域(Issuer SecurityDomain,简称ISD)密钥集(Keyset)。在一个实施例中,所述安全元件102是防篡改芯片,根据需求的安全级别,该芯片可以嵌入智能卡级应用(比如支付、传输)。如图1A所示,所述安全元件102嵌入或配合无接触性NFC相关的应用,并与所述NFC控制器101连接以作为无接触性前端。典型的,符合标准的安全元件与一个发行者安全域(issuer security domain,简称ISD)和一个或多个补充安全域(supplemental security domains,简称SSD)的选择一起供给。每个域中包括一组密钥(a set of key,或称密钥集)。在一个实施例中,所述安全元件102是嵌入所述移动装置100内的或通过卡接口109插入移动装置100的小型卡内的芯片。在另一个实施例中,所述安全元件102是或包括装载入所述移动装置内的安全存储空间107内的软件模组。可以通过所述移动装置100内的网络接口103(比如3G网络或LTE(Long Term Evolution)网络)从指定服务器下载更新组件以更新所述软件模组。
所述安全元件102在使用前需要经过个人化(Personalization或Personalizing)过程。在一个实施例中,所述个人化过程是根据选择的卡发行者(比如所谓的安全元件发行者)的派生个人化密钥集(derived personalized key set)为所述安全元件102装载或更新一密钥集。根据情况,安全元件发行者(SEissuer)和安全元件制造者(SE manufacturer)可以是两个分离的实体,也可以是一个单独的实体。为了方便本发明的描述,安全元件发行者和安全元件制造者在这里被描述为两个分离的实体。进一步的,个人化过程(personalizationprocess)也可以称为配置过程(provisioning process)。根据一个实施例,在安装应用或使能服务(比如应用安装和个人化)时以无线方式(Over the air)执行SE配置过程以个人化所述安全元件。当将所述安全元件关联到一个安全元件发行者时,才执行所述安全元件的个人化。当用户订购或安装应用时,需要为每个应用执行应用安装和配置。
在一个实施例中,在更新或升级所述安全元件102时,为避免从头开始个人化所述安全元件102,只用新的更新替换所述安全元件102中的一个或一些组件。在实现时,可以自动地或手动获取这些新的更新,并将它们装载至所述移动装置100。在一个实施例中,根据相应的安全元件发行者和TSM,具有NFC功能的移动装置可以从服务器或TSM入口或门户(TSM portal)下载应用。
TSM是指可信服务管理(Trusted Service Management),是一种服务集合。所述TSM的一个主要角色是帮助服务提供者(service provider)为他们的使用移动网络的客户安全的发布和管理无接触性服务。所述TSM或它的服务器不必需要参与使用NFC装置的实际无接触性交易(transaction)。这些交易通常由服务提供者和他们的商业合作伙伴提供的系统处理。所述TSM的另一个角色是通过作为商业中间人加速移动NFC应用的成功部署和提升,其有利于合同安排和不同各方之间的商业关系的其它方面,这样使得移动网络商务成为可能。
可以到服务中心执行所述个人化过程,也可以通过TSM服务器的网页入口(web portal)远程执行所述个人化过程。在第一种场景下,客户可以到服务中心,让服务代表个人化移动装置内的安全元件。在位于指定地方(比如服务中心)的连接有NFC读卡器的电脑中,配置管理器(provisioning manager)可以是安装的应用或连接至后端TSM的基于网页的应用。所述配置管理器用来与移动装置的安全元件进行通讯(比如通过读卡器)。这样的个人化过程也可以被称为基于网络(Over the Internet)的过程。
在第二种场景下,客户通过服务器(TSM网页门户)注册他/她的移动电话。所述TSM服务器可以将配置管理器的通用资源识别码(universal resourceidentifier,简称URI)发送至已注册的移动电话。基于所述移动装置的类型,发送方式可以是短信服务推送(Short Message Service Push)或谷歌安卓推送(Google Android Push)。所述客户可以将所述配置管理器下载至所述移动装置中,并开始所述个人化过程。这样的个人化过程被称为基于无线的过程。
在任一个场景下,所述配置管理器作为移动装置的安全元件和TSM服务器之间的代理。现参考图1B所示,其示出了根据本发明的一个实施例的个人化安全元件的流程或过程110。在实现时,所述过程110可以由软件或软件和硬件的结合来实现。当用户收到一个新的NFC装置(比如移动装置的一部分),需要个人化其内的所述安全元件。
在操作112中,确定所述新的NFC装置是否是真正的NFC装置。一个例子是检查与所述NFC装置相关的序列号(serial number)。所述序列号可以通过与TSM服务器相关的数据库进行认证。在NFC移动装置的例子中,所述移动装置的装置序列号可以用来进行认证。现在假设所述NFC装置是一个真正的NFC装置,即可由移动操作者识别的。所述过程110将进入操作114,使所述NFC装置与专用服务器进行通讯。在一个实施例中,所述专用服务器是TSM系统的一部分,并可通过无线网络、互联网或无线和有线的结合(这里称为数据网络或简称为网络)对其进行访问。
在操作116中,使所述NFC装置向所述服务器注册。一旦所述NFC装置成为所述TSM系统的一部分,各种服务和数据可以通过网络与所述NFC装置进行通讯。作为个人化过程的一部分,在操作118中,所述服务器请求所述安全元件的装置信息。在一个实施例中,所述服务器发送数据请求(比如服务信息,WAP PUSH)到所述NFC装置上。响应所述数据请求,所述NFC装置发回从所述安全元件中提取的卡产品寿命周期(Card Product Life Cycle,简称CPLC)信息。所述CPLC信息包括安全元件产品信息(比如智能卡ID、制造者信息和批次号等)。基于所述CPLC信息,所述服务器能够从其制造者、授权代理者(authorized distributor)或服务提供者处提取这个安全元件的对应默认发行者安全域(Issuer Security Domain,简称ISD)信息。在实现时,所述服务器与安全元件制造者有两种通讯方式,具体将在下文的合适部分给予详细描述。
在操作120中,由所述制造者确定是否更新所述装置信息。通常,当一个安全元件由其制造者发出时,所述安全元件嵌入有一些默认装置信息。如果确定所述默认装置信息(比如CPLC数据)需要与所述制造者进行更新,所述过程110进入操作122,所述制造者将相应的更新装置信息上传至所述服务器。在操作124中,将所述更新装置信息传输至所述NFC移动装置,并存储于所述安全元件中。如果确定所述安全元件的默认装置信息不需要与所述制造者进行更新,所述过程110进入操作124,将提取的默认装置信息存储入与TSM服务器相关的数据库中。在一个实施例中,所述服务器包括获取派生密钥集(derived key set)的接口。在一个实施例中,根据所述安全元件的装置信息(比如,ISD)产生所述派生密钥集。当所述安全元件中成功安装上派生ISD密钥集时,通知相应的安全元件发行者所述派生ISD密钥集已经使用。
根据本发明的一个实施例,在操作126中,所述装置信息(默认的或更新的)用来产生密钥集(或称一组密钥)。在一个实施例中,所述服务器用来使用默认ISD在他的硬件安全模块(hardware security module,简称HSM)和所述安全元件之间建立安全通道。所述服务器还用来为所述安全元件计算派生密钥集。基于业务协定,安全元件的发行者的主ISD密钥可以设置于与所述服务器相关的硬件安全模块或所述安全元件发行者的本地硬件安全模块中。所述硬件安全模块是一种安全加密处理器,其用于管理数字密钥,加速加密过程,以及对访问服务器应用的关键密钥提供有效的认证。如果设置于所述服务器中的硬件安全模块内,所述服务器用来指令所述硬件安全模块去计算所述派生密钥集。随后,所述服务器提供一种机制(比如PUT KEY APDU)并使用默认通道,用所述派生密钥集替代在所述安全元件中的默认密钥集。如果所述安全元件发行者(SE issurer)的主ISD密钥在所述安全元件发行者的本地硬件安全模块中,所述服务器还用来与远端的硬件安全模块交互以提取所述主ISD密钥。
在操作128中,将所述密钥集安全的传递至所述安全元件。就这样将密钥集个人化入所述安全元件中,所述密钥集用于利用NFC装置进行的各种安全操作或服务中。在操作130,所述服务器用来将所述安全元件与其发行者或提供者进行同步(比如,将有关安全元件状态的通知发送至所述发行者或提供者)。在个人化后,可以使用所述SE发行者的个人化ISD密钥来访问所述安全元件。基于每个服务提供商的安全需求,所述TSM可以为各个提供者提供额外的SSD以个人化他们的相应应用(比如,图1A中的模块104或106)。
如上文所述,有两种方式可以用来在与所述制造者的交互过程中从所述安全元件中提取相应的默认ISD信息。基于基础架构,制造者可以选择使用实时方式(real-time approach)或批量(或称批处理)方式(batch approach)。
在实时方式中,当所述TSM服务器个人化所述安全元件时,所述服务器被设置用来与制造者(比如它的服务器)进行通讯。这样,所述默认密钥集是经要求从制造者的服务器提取的。在一个实施例中,所述TSM服务器包括与每个制造者进行通讯的插件模组。
在批量方式中,可以以在线模式执行,也可以以离线模式执行。在离线模式下,所述安全元件制造者通过加密媒介为支持的所有安全元件传递默认ISD信息。所述TSM或计算装置的管理器可以被设置用来将所述物理媒介中的信息输入一个计算装置。随后,解密并提取所述默认ISD信息,并存储于一个数据库中。在在线模式下,所述SE制造商通过网络上传其支持的安全元件的默认ISD信息。随后,解密并提取所述默认ISD信息,并存储于一个数据库中。然后,所述TSM只需要在安全元件个人化过程中访问在其自己的硬件安全模块或数据库。图1C展示了在离线和在线模式时SE制造者、TSM管理器、TSM系统之间的关系。根据本发明的一个实施例,图1D示出了NFC装置(比如NFC移动电话)的用户、NFC装置、TSM服务器、相应的SE制造者和SE发行者之间的数据流程图。
一方面,可以认为图1A中的安全元件102是智能卡中的预载操作系统,其提供PIN管理和用于卡个人化(card personalization)的安全通道(或称安全域)的平台。所述安全元件102结合智能卡发行者、供应商、产业组、公共实体和科技公司的兴趣,为运行于智能卡上的多个应用定义需求和技术标准。作为一个例子,作为电子钱包安全的一个模块104定义一组协议,该组协议使得小额支付交易能够通过有线或无线环境执行。对于存储于智能卡的电子钱包,在所述电子钱包被发行后将一组密钥(对称的或非对称的)个人化入所述电子钱包。在交易过程中,为了使所述电子钱包与安全认证模组(Security Authentication Module,SAM)或后端服务器之间的信息通道安全,所述电子钱包使用一组各自的密钥进行加密和MAC计算。对于单功能卡片来说,所述电子钱包安全模块104用来作为保护在单功能卡上执行的实际操作的门。在个人化期间,通过电子钱包交易密钥将所述单功能卡片访问密钥(或他的转换)个人化入所述电子钱包。
图1C示出了在离线和在线模式时安全元件制造者(SE manufacturer)、TSM(Trusted Service Management,可信服务管理)管理器和TSM系统之间的关系。图1D示出了NFC装置(比如NFC移动电话)的用户、NFC装置、TSM服务器、相应的安全元件制造者和安全元件发行者之间的数据流程图。
作为一个例子,假设安装应用、电子钱包已经经由所述安全元件被配置。图1E根据本发明的一个实施例,示出了基于平台的SAM或网络电子钱包服务器152,作为门卫的电子钱包154和单功能标签156,这三个实体之间的个人化数据流程150。所述基于平台的SAM或网络电子钱包服务器152和电子钱包154之间的通信将按照一种类型的命令(比如APDU,应用协议数椐单元)进行,而电子钱包154和单功能标签156之间的通讯将按照另一种类型的命令进行,其中所述电子钱包起到门卫的作用,以保证只有安全可靠且经过授权的数据交互才会被准许进行。
在一个实施例中,电子钱包的物理安全在一个模拟器中实现。这里使用的模拟器是指其他模块期望与其交互的一个硬件装置或一段程序,或自称是另一个特别的装置或程序。所述电子钱包安全是在用于提供电子钱包功能和与支付服务器通讯的一个或多个Java程序applet之间实现的。支持电子钱包的安全元件负责更新安全密钥以在支付服务器和Java程序applet之间建立交互的合适通道,其中电子钱包程序作为门卫去调节或控制所述数据交换。
如上所述,可以理解的是,要对具有NFC功能的手机配置应用程序,独立的TSM是关键所在,这样,这些应用程序才最有可能吸引消费者进行购买。但是,要使得TSM对于涉及的所有各方都保持中立却比较困难。图2A示出了一种系统配置200,其中,TSM中起作用的一部分是在文中被称为可控TSM或CTSM202中实现的,而缺少了这一部分的TSM仍被称为TSM204。应当注意的是,TSM204的实现和架构不应简单地视作上述TSM的一般性分离。CTSM202是配置来向服务提供者提供丰富的、但却不会过多的TSM功能子集,从而对applet程序进行配置并对applet程序和安全元件的寿命周期进行管理。正如下文将要进一步说明的那样,图2A的操作与采用单一TSM的操作是完全不同的。
顾名思义,CTSM由服务提供者进行控制或操作,用于对applet程序进行配置并对服务提供者所发行或支持的applet程序和安全元件的寿命周期进行管理,同时,CTSM仍然执行了许多TSM本应执行的功能。除非明确指明,CTSM和TSM在下文中可以互换地使用。在一个CTSM下,可能存在有许多与该CTSM合作的CTSM。因此,该CTSM对于移动生态系统中所有的业务实体来说都是中立的。
根据一个实施例,图2A中的CTSM202是配置来与TSM204一起至少执行以下功能。CTSM202是由服务提供者进行控制或操作。根据一个实施例,CTSM202是在服务提供者所操作的服务器中实现。出于说明的目的,CTSM202与服务提供者的其他服务器是分开地进行示出。作为一个实例,如图2A所示,CTSM202连接在移动装置206与服务提供者的至少一个服务器208之间,其中,移动装置206通过有线和/或无线网络与CTSM202进行通信。以下是CTSM202具体执行的功能中的其中一些功能。
1.更换补充安全域(SSD)
CTSM102的许多功能都是借助补充安全域(SSD)来实现的。为了使服务提供者能够独立地对指定安全元件上的特定应用程序进行配置,SE发行者或者TSM将不得不为这些安全元件安装至少一个补充安全域。安装了补充安全域之后,服务提供者可以采用其中安装了补充安全域的CTSM102来对安全元件进行管理。可操作地,服务提供者依靠CTSM102来建立CTSM102与安全元件上的卡管理器之间的端对端安全通道。为了进一步消除安全问题,CTSM102配置来使得服务提供者能够采用仅自己知晓的新的值集来更换现有的补充安全域密钥集,其中,初始密钥集至少在相应的服务提供者与SE发行者之间是已知的。在CTSM102更换了密钥集之后,仅服务提供者知晓新的密钥集。
2.Applet程序的个人化
服务提供者提供的applet程序可以在制造过程中预先安装于安全元件上。最终用户还可以通过CTSM202或TSM204来将它们下载并安装至安全元件上。在安全元件207上已安装了补充安全域的情形下,如图2A所示,安全元件TSM202可以采用补充安全域来首先建立安全通道,然后,在最终用户请求对安装好的applet程序进行个人化时,利用该通道对其进行个人化。在一个实施例中,对于各applet程序来说,服务提供者需要实现数据准备插件,将CTSM202集成至现有的基础架构中,进而为所请求的安全元件准备个人化数据。安全元件TSM202将个人化数据构成为一系列存储数据指令,并通过基于补充安全域的安全通道,发送至位于安全元件上的applet程序处。
3.支持多个applet程序
如上所述,CTSM202可配置为服务提供者,发布多种应用程序。对于各应用程序来说,服务提供者可以在平台中维持其多个版本。对于各应用程序来说,服务提供者能够知晓哪个应用程序已经与安全元件相关联以及已经激活了该应用程序的相关移动装置(如SE UID和IMEI)。也可以从多个移动装置所形成的平台处获得各种统计数据,其中包括定制的统计数据模型。根据一个实施例,CTSM202与全球平台(GP)相兼容。该平台既支持嵌入式安全元件(eSE),也支持基于UICC的安全元件。
4.Applet程序和安全元件管理
CTSM202能够与TSM204合作,进行applet程序和安全元件的寿命周期管理。Applet程序的寿命周期管理包括applet程序的删除和applet程序的锁定。安全元件的寿命周期管理包括安全元件的锁定和安全元件的终止。CTSM202提供了用于集成至服务提供者的现有后端系统中的接口。一旦服务提供者验证了请求,它便可以调用CTSM202,通知TSM202执行各种管理功能。
5.插件架构
CTSM202所具有的插件架构能轻松地实现与服务提供者的现有基础架构之间的集成。为了将CTSM202与现有的数据准备相集成,在一个实施例中,服务提供者需要实现数据准备插件接口。CTSM202配置来经过插件,采集为个人化准备的数据。
系统交互
CTSM202可单独地由第三方(如软件公司)提供,但却由服务提供者进行控制或操作。图2A还示出了CTSM202与TSM204进行交互的方式,其中,服务器(统称服务器)208通过服务进行操作并且移动应用程序已经安装于移动装置205上。移动应用程序通过一个或多个部件或接口210(比如,在软件开发工具包(SDK)中提供),与CTSM202和TSM204进行交互。比如,当平台是基于安卓系统时,接口或SDK210将在后台运行并与CTSM202和TSM204进行交互。
根据实施例,CTSM202与TSM204或SDK210之间的交互包括:
●更新补充安全域:在TSM204通过SDK210将补充安全域安装于移动装置205中之后,CTSM202能够请求SDK210开始更换补充安全域的操作。
●Applet程序的个人化:TSM204负责下载applet程序并将其安装于安全元件上。之后,激活CTSM202,对该applet程序进行个人化。
CTSM202与TSM204之间的交互包括:
●CTSM202向TSM204通知安全元件上applet程序的寿命周期事件变动(比如,TSM204向移动装置205推送消息)。
●CTSM202从TSM204处收到关于安全元件的寿命周期事件变动的通知。
●CTSM202和TSM204中的任何一方配置来提供关于安全元件的寿命周期状态和安全元件上applet程序的寿命周期状态的查询。
CTSM202与服务提供者HSM之间的交互包括:
●服务提供者采用安全元件TSM中的HSM接口来开发HSM插件,完成与HSM212之间的集成,进而实现对派生的补充安全域密钥集的计算和敏感个人化数据的数据加密。
CTSM202与业务服务器208之间的交互包括:
●服务提供者开发出数据准备插件,为applet程序的个人化准备数据组。
以下将进一步对插件和接口进行详细说明。
对补充安全域进行更新是整个个人化过程的一部分。如果CTSM202检测到补充安全域必须进行更新或更换,那么便开始对补充安全域进行更新。图2B示出了对补充安全域进行更新的流程图或过程220。过程220可以软件或软硬件结合的形式来实现。原则上来说,在CTSM与安全元件(其采用派生自初始补充安全域主密钥集的密钥集来进行个人化)之间,必须建立安全通道。然后,CTSM202配置来采用新的补充安全域主密钥集,为安全元件计算出新的派生密钥集。在一个实施例中,新密钥集的值包括PUT KEY APDU并发送至安全元件进行更换。服务提供者采用HSM插件来将HSM集成至CTSM中。
不同的实体作出了不同的行为,分别如图2B中所标注。还可结合图2A来对图2B进行进一步的理解。
1.在一个实施例中,移动装置已经安装了可以预先安装或者可以从网络上下载的应用程序。选择订购该应用程序的用户可激活该应用程序的个人化,或者该应用程序的提供者向移动装置推送通知。
2.图2A中的接口或SDK210配置来从移动装置中的安全元件处提取其CPLC信息,并将CPLC信息和所请求的应用程序信息发送至CTSM(比如,CTSM202)。
3.之后,接口或SDK210向CTSM发送请求消息(比如,AppletPersoRequest)。该请求包括移动装置的IMEI和CPLC以及应用程序ID。
4.如果补充安全域不需要进行更换,那么过程220跳到步骤10,继续进行applet程序的个人化。否则,CTSM向服务提供者的HSM提出请求,计算出安全元件的派生补充安全域。
5.CTSM采用该派生补充安全域来建立与安全元件之间的安全通道。本操作应该包括在CTSM202与接口或SDK210之间进行的两轮消息交换,从而完成相互验证(比如,采用INITIAL UPDATE和EXTERNAL AUTHENTICATION)。
6.CTSM202向服务提供者的HSM提出请求,计算出安全元件的新密钥集的派生补充安全域。
7.CTSM202包括一指令(比如,PUTKEY),并将其封装在返回给SDK210的应答消息中。
8.接收到应答消息之后,SDK210提取出PUTKEY APDU并针对安全元件运行。安全元件将采用新的衍生密钥集来更换补充安全域。
9.随后,SDK210再次将applet程序个人化消息(比如,AppletPersoRequest)发送至CTSM202。由于已经更换了补充安全域的密钥集,因此,过程220跳到10。
10.现在,CTSM202继续对applet程序进行个人化。
图2C示出了对applet程序进行个人化的流程图或过程230。作为applet程序个人化的一部分,CTSM202已经采用最新的补充安全域密钥集来建立了安全通道。如果已经更换了密钥集,则必须使用新的密钥集。这样便保证了个人化数据与仅服务提供者知晓的新补充安全域密钥集之间的封装和安全。不同的实体作出了不同的行为。可结合图2A来对图2C进行进一步的理解。
1.在一个实施例中,移动装置已经安装了可以预先安装或者可以从网络上下载的应用程序。选择订购该应用程序的用户可激活该应用程序的个人化,或者该应用程序的提供者向移动装置推送通知。
2.图2A中的接口或SDK210配置来从移动装置中的安全元件处提取其CPLC信息,并将CPLC信息和所请求的应用程序信息发送至CTSM(比如,CTSM202)。
3.之后,接口或SDK210向CTSM发送请求消息(比如,AppletPersoRequest)。该请求包括移动装置的IMEI和CPLC以及应用程序ID。
4.如果还没有完成applet程序的请求,那么将过程230中止并向用户发送通知。否则,CTSM向服务提供者的HSM提出请求,为安全元件计算出衍生的补充安全域。
5.CTSM采用该衍生的补充安全域来建立与安全元件之间的安全通道。本操作应该包括在CTSM202与接口或SDK210之间进行的两轮消息交换,从而完成相互验证(比如,采用INITIAL UPDATE和EXTERNALAUTHENTICATION)。
6.CTSM202调用数据准备插件,以使用指定的服务器来为安全元件准备个人化数据。如果需要对敏感数据进行加密,那么所指定的个人化服务器可能还需要连接至HSM。
7.之后,个人化数据用于构成数据集(比如,一系列STORE DATA APDU)。最终的数据准备脚本封装在应答消息中并返回至SDK210。
8.在从应答消息中提取出了STORE DATA APDU之后,SDK210针对安全元件连续地运行STORE DATA,进而对applet程序进行个人化。
9.SDK210向CTSM202发送应答消息(比如,applet perso completemessage)。该消息将包括所有STORE DATA APDU的状态、安全元件UID、IMEI、应用程序ID以及交易ID。
10.如果服务提供者启用了CTSM202,那么它就采用通知(比如,AppletLifeCycleChange通知)的形式向RHG告知applet程序配置的状态。本通知包括安全元件UID、IMEI、应用程序ID和各自的状态。
11.然后,将结果显示于移动装置上。
图2D示出了对applet程序和安全元件进行管理的流程图或过程250。除了支持配置过程之外,本发明的一个实施例还支持对安全元件和安装应用程序的寿命周期管理。寿命周期管理包括,但可能不限于,安全元件锁定、安全元件解锁和应用程序删除(禁用)。通过来自由服务提供者所控制和操作的CTSM的推送通知,可以启动这些活动。在移动装置的实际使用中,出于某种原因(比如,较长时间内无活动或到期),应用程序需要由其发行者或提供者来禁用或锁定。
根据一个实施例,CTSM202配置来向服务提供者提供applet程序和安全元件的寿命周期管理功能。不同的实体作出了不同的行为,分别如图2D中所标示。还可结合图2A来对图2D进行进一步的理解。
1.服务提供者检测是否存在有请求,并且当请求存在时,对其进行验证。
2.服务提供者所指定的服务器调用CTSM202来获得请求(比如,通过AppletLifeCycleManagement接口),该请求通常包括安全元件UID、IMEI、applet程序ID和行为的参数。
3.接收了该请求之后,CTSM配置来向TSM204发送请求(比如,AppletLifeCycleManagement)。
4.TSM210对该请求进行注册,并推送通知消息,以请求SDK210启动锁定applet程序的过程。
5.接收了该通知之后,SDK210发送消息,以请求TSM204锁定applet程序。
6.之后,TSM204相对于通知注册库来对请求进行验证。如果请求不是来自TSM204,则拒绝该请求。否则,TSM204继续执行锁定过程。
7.TSM204首先在自身与安全元件之间建立安全通道。然后为SDK210形成针对安全元件运行的消息(比如,APDU),以在其中锁定applet程序。
8.TSM204发送应答(比如,AppletLifeCycleManagement),将状态告知CTSM202。反过来,CTSM202可以采用接口(比如,AppletInfo),向TSM204请求安全元件上applet程序的状态。
根据一个实施例,CTSM包括Java SDK,其提供了两种途径,使得服务提供者可实现CTSM自身与现有外部系统之间的集成。第一种途径为一个或多个接口,而第二种途径为一个或多个插件。前者是用来使外部系统利用CTSM所提供的服务,将CTSM的某些特点集成至现有的外部系统中。而后者是用来使CTSM利用外部系统所提供的现有服务,将外部系统的某些特点集成至CTSM中。
在一个实施例中,借助用于外部系统的网络服务接口集,CTSM实现了applet程序的寿命周期管理和安全元件的管理。CTSM为服务提供者提供了各种工作流的插件,以将现有的外部服务集成至CTSM提供的相应工作流中。服务提供者只需要执行小型java程序就能实现插件接口。
示例性的接口包括以下接口:
AppletLifeCycleChange请求
该接口使得服务提供者能够将CTSM集成至现有的客户关系管理(CRM)流程中。一旦完成了针对安全元件的现有程序后,CRM软件就只需要调用本应用程序接口(API),就能请求CTSM来执行applet程序的寿命周期变动行为。
AppletLifeCycleChange通知
该接口是一种回调,使得TSM把安全元件上应用程序的任何寿命周期状态变动都告知CTSM。该接口可用于TSM在安全元件上安装新的applet程序。
SELifeCycleChange通知
该接口是一种回调机制,使得TSM把其上安装有其中一个applet程序的安全元件的任何寿命周期变动都告知CTSM。
CTSM有两个主要的插件接口。数据准备接口和HSM接口。
数据准备
数据准备插件有两个Java接口。其中一个用于Mifare应用程序,而另一个用于JavaCard applet程序。
若要为Mifare应用程序准备数据,该数据准备接口可按照如下方式实现。
若要为JavaCard applet程序准备数据,该接口可按照如下方式实现。
根据一个实施例,物理HSM的提供者需要开发一种插件来实现RFCHSM接口。高级应用程序将该接口用来向相应的HSM请求加密服务。
CTSM针对服务提供者的系统部署提供了一种灵活且简单的方式。服务提供者将采用SDK来完成一些简单的程序编制,从而实现CTSM与现有系统的集成,并且,采用用户友好型网站用户界面(UI),向所有对服务提供者提出订购的用户发布应用程序。
为了向系统发布应用程序,服务提供者执行以下步骤:
1.为应用程序的applet程序实现如上所述的数据准备插件。
2.假如还未进行,可将applet程序管理集成至当前的CRM流程中,(注意:对于所有应用程序,这种集成应只进行一次)。
3.假如之前还未进行,可采用网站UI来加入补充安全域。这对于所有应用程序来说也只能进行一次。
4.采用网络UI来加入应用程序,并提交其需要进行个人化的applet程序。
本发明更适合采用软件形式实现,但也可用硬件或软硬件结合的形式实现。本发明也可被实现为计算机可读媒体上的可被计算机读取的代码。所述计算机可读媒体是任何可以保存能够被计算机系统读取的数据的数椐存储装置。计算机可读媒体的实例包括只读存储器,随机存取存储器,CD光盘(CD-ROM),数字化视频光盘(DVD),磁带,光学数据存储装置,以及载波。所述计算机可读媒体也可分布在通过网络相连的多台计算机系统中,这样所述可被计算机读取的代码将以分布式的方式存储和运行。
上述说明已经充分揭露了本发明的具体实施方式。需要指出的是,熟悉该领域的技术人员对本发明的具体实施方式所做的任何改动均不脱离本发明的权利要求书的范围。相应地,本发明的权利要求的范围也并不仅仅局限于前述具体实施方式。