安全密钥导出功能的制作方法

文档序号:11450698阅读:553来源:国知局
安全密钥导出功能的制造方法与工艺



背景技术:

卡计算设备可以在从移动电话到自动柜员机和驾驶执照的各种系统中提供标识、认证、数据存储和应用处理。java已经变成用于为卡计算设备创建应用的通用开发平台。例如,javacardtm是用于包括卡计算设备的嵌入式设备的小型java实现。此外,网络入侵和攻击一直在增加,常常暴露敏感信息。

传统上,由卡计算设备上的应用(或小应用程序)进行的密码密钥导出一般涉及复制在卡计算设备的存储器(例如,随机存取存储器或ram)中的用作密钥导出和/或其它密码素材的一部分并且该应用可访问的各种数据。例如,随机数据和附加导出数据一般被复制到字节数组中并作为参数传递到密钥导出过程。此外,这些数据在字节数组和内部缓冲区之间复制,作为密钥导出过程的一部分。而且,密钥导出过程的结果一般被传递回应用,诸如在字节数组中。

一般而言,在卡计算设备上执行的应用可访问的正常ram没有受保护的非易失性存储器那么安全(例如,从密码的角度来看)。传统上,通过芯片的ram传递的敏感数据(例如,用作密钥导出过程的一部分的数据)可能容易受到密码攻击,并且攻击者可以频繁地分析芯片行为并获得关于导出的密钥的附加信息以及其它密码数据(例如,由于数据通过芯片的正常、不太安全的ram传递)。



技术实现要素:

在诸如卡计算设备上的虚拟化执行环境内的安全密钥导出可以涉及利用完全在执行环境的平台层内驻留和/或执行的密钥导出模块。在执行环境的应用层内执行的应用可以访问密钥导出模块,以便根据(可能标准化的)密钥导出功能来生成(例如,导出)密码密钥。导出的密钥可以不被返回到应用,而是可以替代地存储在执行环境的安全存储区域内,而无需甚至临时地存储在执行环境的非安全区域中。应用可以接收对由其它密码处理可用的导出密钥的引用。

卡计算设备可以容纳包括多个标准化密钥导出功能的虚拟化执行环境,并且可以提供允许在卡计算设备上执行的应用利用密钥导出功能来安全地生成和存储密码密钥的api。执行环境可以允许密钥导出功能在各种应用之间的共享。

应用可以将密钥引用(诸如经由密钥导出功能获得的密钥引用)传递到密码模块的方法,并且密钥引用可以被密码模块用于从安全存储区域访问导出的密钥,以用于执行各种密码处理(例如,加密、解密、认证等)当中的任何一个。

附图说明

图1是示出根据现有技术的被配置为实现密钥导出功能的系统的逻辑框图。

图2是示出根据如本文所述的一个实施例的被配置为实现安全密钥导出功能的系统的逻辑框图。

图3是示出如本文所述的用于安全密钥导出的方法的一个实施例的流程图。

图4是示出根据一个实施例的密码密钥的导出的逻辑框图。

图5是示出被配置为实现安全密钥导出功能的虚拟执行环境的逻辑框图。

图6是示出根据一个实施例的利用具有导出的密码密钥的密码功能的应用的逻辑框图。

图7是示出根据一个实施例的用于经由密钥引用使用导出的密码密钥的方法的一个实施例的流程图。

图8是示出如本文所述的被配置为实现安全密钥导出模块的卡计算设备的一个实施例的框图。

虽然本文通过若干实施例的示例和说明性附图描述了各种实施例,但是本领域技术人员将认识到,实施例不限于所描述的实施例或附图。应当理解,附图及其详细描述不意在将实施例限制到所公开的特定形式,而是相反,本发明意在覆盖落入本公开内容的精神和范围内的所有修改、等同物和替代方案。本文使用的任何标题仅用于组织目的,而不意味着用于限制描述的范围。如贯穿本申请所使用的,词语“可以”在许可的意义上(即,意味着有可能)而不是在强制的意义上(即,意味着必须)使用。类似地,词语“包括”意味着包括但不限于。

具体实施方式

图1是示出根据现有技术的被配置为实现密钥导出功能的系统的逻辑框图。如图1中所示,卡计算设备100可以被配置为容纳包括平台层110和应用层130的虚拟化执行环境105。在一些实施例中,虚拟化执行环境105可以被配置为在应用层130容纳一个或多个应用的执行,同时在平台层110提供设备级功能以支持应用的执行。例如,虚拟化执行环境可以提供应用编程接口(api),从而允许应用访问设备级(和/或系统级)功能。此外,虚拟化执行环境可以在平台层提供用于管理(例如,加载、安装和/或移除)应用的功能。应用140可以被配置为基于密码素材170来确定和使用一个或多个密码密钥,诸如导出的密钥160。应用140可以包括密钥导出模块150并使用密钥导出模块150以使用密码素材170生成导出的密钥160。

如图1中所示,根据现有技术,在卡计算设备100上执行的应用140在应用层130中执行密钥导出模块150,从而导致导出的密钥160也在应用层130中。传统上,导出的密钥160、密码素材170以及用作生成导出的密钥160的一部分的其它中间数据将必然存在于由卡计算设备100的应用层130使用的正常存储器(例如,ram)中。

传统上,当在安全环境(即,用于tee的javacard或oraclejava)中的与平台无关的面向对象的语言中实现密钥导出功能时,密钥导出功能由应用级(例如,在应用层内)的应用执行。例如,平台层和/或规范可以不提供对密钥导出功能的支持。但是,在应用级实现这种敏感功能可以将所创建的数据和初始长期活动密钥(例如,主密钥)暴露于不必要的风险,因为密钥数据(特别是导出的密码密钥)未保存在芯片的安全部分中。它们将至少短时间保持在芯片的(不太安全的)ram中,这可以将它们(和密码处理)暴露于各种密码攻击中任何一种。

图2是示出根据如本文所述的一个实施例的被配置为实现安全密钥导出功能的系统的逻辑框图。如图2中所示,卡计算设备200可以被配置为实现如本文所述的安全密钥导出功能。

如本文所提到的,卡计算设备可以指具有嵌入式集成电路的各种类型的袖珍卡当中任何一种,包括但不限于智能卡、芯片卡、集成电路卡(icc)、嵌入式安全芯片、智能安全数字(sd)卡(例如,智能microsd卡)或通用集成电路卡(uicc)。卡计算设备可以被配置为在各种系统当中的任何一种中用于各种角色,诸如提供标识、认证、数据存储和/或应用处理。卡计算设备还可以为大型组织内的单点登录(sso)提供强大的安全认证。

在各种实施例中,卡计算设备可以包括(但不限于)信用卡、自动柜员机(atm)卡、移动电话订户身份模块(sim)卡、驾驶执照、付费电视授权卡、预付费卡、高安全性标识卡、门禁卡和电话支付卡。此外,卡计算设备可以被配置为用作电子钱包,诸如通过记录和管理一个或多个金融账户。虽然主要就可移动卡计算设备进行描述,但是本文所述的方法和/或技术还适用于嵌入式卡计算设备,诸如嵌入式sim卡、嵌入式通用集成电路卡(euicc)、可信平台模块(tpm),或其它嵌入式安全芯片。

卡计算设备200可以被配置为经由操作系统或运行时环境(诸如虚拟化执行环境205)来存储和执行一个或多个应用,诸如(一个或多个)应用240。例如,在一个实施例中,卡计算设备可以被配置为存储和执行基于java的运行时环境和诸如根据javacardtm规范的java小应用程序。如本文所使用的,javacardtm可以指允许基于java的应用(例如,小应用程序)在卡计算设备上执行的技术。在一些实施例中,基于javacardtm的卡计算设备可以包括虚拟机(例如,javacardtm虚拟机或javacardtmvm)和运行时库以及一个或多个小应用程序的组合。在一些实施例中,卡计算设备可以被配置为执行具有能够执行安全密钥导出功能的一个或多个模块的javacardtm运行时环境(jcre),诸如在平台层210内。在一些实施例中,虚拟化执行环境205和/或平台层210可以表示在卡计算设备上执行的javacardtm虚拟机实现。

此外,在一些实施例中,卡计算设备可以被配置为利用安全的、受保护的处理环境,诸如可信执行环境(tee)。作为一个示例,移动电话可以包括实现tee的处理器,并且结合到电话中的卡计算设备(例如,sim卡)可以被配置为利用处理器的tee。

如图2中所示,卡计算设备200可以被配置为在平台层210中实现安全密钥导出功能,诸如密钥导出模块250。例如,如下所述,根据一些实施例,虚拟化执行环境可以在平台层提供支持密钥导出功能的功能。根据一些实施例,在应用层230中执行的应用可以访问并利用密钥导出模块250,以便诸如通过利用密码素材270生成导出的密钥260。在一些实施例中,虚拟化执行环境205可以被配置为在应用层230容纳一个或多个应用的执行,同时在平台层210提供支持应用的执行的设备级功能。如图2中所示,密钥导出模块250可以被配置为利用安全存储装置220生成导出的密钥260,安全存储装置220可以表示平台层210可用的虚拟化执行环境205和/或卡计算设备200的执行模式和/或各种类型的密码安全存储器区域当中的任何一种。

在一些实施例中,安全存储装置220可以表示能够确保数据的机密性、完整性、可用性和持久性(例如,至少在执行的持续时间内)的各种形式的存储装置当中的任何一种。在一些实施例中,安全存储装置220可以通过硬件与主操作系统分离,并且可以确保敏感数据的安全存储和处理。

因此,在一些实施例中,密钥导出模块250可以生成导出的密钥260,而不将导出的密钥暴露于应用层。

在一些实施例中,导出密钥的输出数据可以永远不暴露于应用(例如,小应用程序)层。应用可以只获得引用对象,作为密钥导出方法的返回值。因此,根据一个实施例,可以更好地优化和保护将数据馈送到密码中并将用于导出的密钥的输出存储在存储器的安全部分中的处理。

在一些实施例中,密钥导出功能(kdf)可以被认为是提供密钥素材的密码分离的单向功能。例如,kdf可以使用长期活动密码密钥(例如,主密钥)连同从其导出新密钥(诸如导出的密钥260)的密钥导出数据。这个新密钥可以短时间使用和/或仅用于特定目的。可以作为kdf的输入的长期活动密钥可以不用于除导出新密钥之外的任何其它目的。

此外,密钥导出模块250可以被配置为确保导出的密钥260以及密码素材270驻留在安全存储装置220中。根据一些实施例,密钥导出模块250、导出的密钥260以及密码素材270可以永远不存在于应用层230的一般不太安全的应用存储装置225中。因此,在一些实施例中,密钥导出模块250、导出的密钥260以及密码素材270可以不可用于诸如密码攻击的检查和/或分析。

应用240可以被配置为经由密钥导出模块250发起导出的密钥260的生成。密钥导出模块250可以返回应用240可以用于引用导出的密钥260的导出的密钥引用280,诸如密钥对象,如下面将更详细地讨论的。导出的密钥引用280可以返回到应用240并存储在应用层230中的应用存储装置225中。根据一些实施例,导出的密钥引用280可以不包括任何密码敏感的素材或数据,而是替代地可以是允许其它编程模块(诸如可以在平台层210内执行的编程模块)从安全存储装置220访问导出的密钥260的编程对象或引用。

因此,根据一些实施例,导出的密钥数据(诸如导出的密钥260)可以留在运行时环境(例如,虚拟化执行环境205)的安全部分内。可以创建随后可以在密码操作中使用的密钥对象(诸如导出的密钥引用280)。此外,在一些实施例中,可以不需要经由应用层中的存储器将来自导出功能的(安全或密码)数据复制到密钥对象中。

在一些实施例中,密钥导出功能(诸如由密钥导出模块250实现的密钥导出功能)可以在硬件中实现,其可以提供优于仅软件方法的性能和/或安全益处。此外,在一些实施例中,平台层210可以是经认证的平台(或可以是其一部分),因此密钥导出功能也可以是经认证的平台的一部分。

各种标准化密钥导出功能已经由各种行业和/或组织(诸如金融行业、国家标准与技术研究所(nist)、互联网工程任务组(ietf)、欧洲电信标准协会、第三代合作伙伴计划、可信计算组的可信平台模块(tmp)规范等)定义(或推荐)。在一些实施例中,标准化kdf可以在安全环境的安全芯片或硬化os中实现,诸如在卡计算设备200的硬件内或在虚拟化执行环境205的安全部分内。

根据一些实施例,kdf的输出数据(诸如导出的密钥260)可以在这个安全区域中被直接管理,并且因此密钥的内容可以不暴露于芯片的(更不安全的)ram或环境的通用存储器(例如,可经由应用层230访问的存储器)。换句话说,可以在执行环境的安全部分(例如,在平台层的芯片或安全区域内)中创建和初始化导出的密钥。

此外,在平台的安全区域内实现密钥导出功能可以防止应用使用不正确kdf实现以及将导出的密钥的内容(或其一部分)留在不安全的共享缓冲区或存储器的其它部分中(就与平台的安全区域相同的程度而言)。

在一些实施例中,在平台层实现密钥导出功能还可以减小个体应用(或小应用程序)的尺寸以及应用层中应用所需的总尺寸。例如,密钥导出功能可以在应用之间共享,并且每个应用可以不必实现与另一个应用相同的密钥导出功能。在一些实施例中,密钥导出功能可以由卡计算设备的安全域实现为可共享的服务,并且密钥导出功能和主密钥因此可以在若干应用之间共享。

图3是示出如本文所述的用于安全密钥导出的方法的一个实施例的流程图。如方框300中所示,根据一个实施例,用于实现安全密钥导出的方法可以包括在计算设备的平台层根据密钥导出功能导出密码密钥。例如,密钥导出模块250可以在卡计算设备200的平台层210内执行。密钥导出模块250可以在平台层210内导出导出的密钥260。

如本文所使用的,术语“密钥导出功能”可以指用于生成密码密钥的特定方法(即,公式),或者指(在sw和/或hw中实现的)根据这种方法生成密码密钥的计算模块,或两者兼有。因此,密钥导出模块250可以表示当在卡计算设备200上的平台层210中执行时可以根据特定密钥导出功能(例如,用于导出密码密钥的特定方法)生成导出的密钥260的软件模块。

如方框310中所示,根据一个实施例,用于实现安全密钥导出的方法还可以包括在计算设备的密码安全的存储器区域中存储导出的密钥,而不在计算机设备的应用层中甚至临时地存储导出的密钥。例如,密钥导出模块250可以在卡计算设备205的安全存储装置220中存储导出的密钥260,而不在应用层230的不太安全的存储区域(诸如应用存储装置225)中甚至临时地存储导出的密钥260。

图4是示出根据一个实施例的密码密钥的导出的逻辑框图。在一些实施例中,应用(诸如应用240)可以被配置为向密钥导出模块(诸如密钥导出模块250)提供数据(诸如初始数据410),用于生成密码密钥(诸如导出的密钥260)。例如,在一个实施例中,初始数据410可以表示至少部分地用于初始化要由密钥导出模块250使用的随机数生成器(例如随机数生成器460)的数据。因此,应用240可以向密钥导出模块250提供初始数据410,密钥导出模块250又可以将其提供给随机数生成器460,以生成要在导出的密钥260的生成期间使用的随机数据430。

即使初始数据410可以至少临时驻留在应用层230中,并且因此从密码攻击来看可能不是安全的,但是根据一些实施例,随机数生成器460以及随机数据430可以是平台层210的一部分并且可以驻留在平台层210和/或卡计算设备的密码安全特征(诸如安全存储装置220)中或利用该密码安全特征。

在一些实施例中,密钥导出功能可以集成到芯片硬件和芯片操作系统的低级软件层中(或在其中实现)。例如,根据一些实施例,密钥导出模块250可以被配置为利用实现为卡计算机设备200的硬件的一部分(或集成到其中)的密钥导出功能。

如图4中所示,根据一个实施例,密钥导出模块250可以被配置为基于随机数据430和/或主密钥450生成全都可以存储在安全存储装置220中的导出的密钥260。因此,在一些实施例中,在生成密码密钥中使用的一些(或全部)数据可以保留在平台层210中,并且因此可以存储在由平台层210和/或卡计算设备200提供的安全特征中或利用该安全特征。

在一些实施例中,主密钥(诸如主密钥450)以及其它密码素材(诸如随机数据430和/或密码素材270)可以在卡计算设备的生产过程期间(例如,当设备被加载软件时)被加载到安全存储装置220中,并且因此永远不被甚至临时地存储在虚拟化执行环境205的非安全区域内。在其它实施例中,主密钥450、随机数据430和/或密码素材270可以以其它方式或在其它时间存储在安全存储装置220中。

在一些实施例中,可以通过从随机数生成器460检索随机数据430、用主密钥初始化密码加密以及可以对导出数据执行密码加密操作来从主密钥450导出导出的密钥260。在一些实施例中,导出数据可以从随机数据以及一些其它附加数据形成。因此,通过在平台层(的安全区域)内实现随机数生成器和密钥导出功能,不必使用应用层中的存储器来复制随机数据和任何附加导出数据。

例如,在一个实施例中,安全存储装置220可以表示卡计算设备的安全域(sd),并且主密钥450可以存储在这个sd内。此外,sd可以向在设备上执行的其它应用提供共享接口。因此,根据一些实施例,主密钥450可以保留在sd内,同时在多个应用之间共享。

应当指出,图4中所示的特定实施例仅表示一个可能的示例,并且在其它实施例中,密钥导出模块可以使用不同的数据、技术和方法生成密码密钥。

图5是示出被配置为实现安全密钥导出功能的虚拟执行环境的逻辑框图。在一些实施例中,卡计算设备可以包括由在卡计算设备上执行的应用可使用的多个密钥导出模块以及多个密码模块。因此,卡计算设备200可以包括在虚拟化执行环境205内执行的平台层210。平台层210可以包括一个或多个密钥导出模块510,其可以被配置为根据各种密钥导出功能或方法生成(例如,导出)密码密钥,诸如(一个或多个)导出的密钥550。在一些实施例中,在卡计算设备上执行的应用可以被配置为直接访问(一个或多个)密钥导出模块510中的一个或多个,以使得生成密码密钥。

但是,在其它实施例中,平台层210可以被配置为实现密钥导出功能工厂500,密钥导出功能工厂500又可以被配置为在应用请求的情况下生成特定密钥导出模块和/或提供对特定密钥导出模块的访问。例如,密钥导出功能工厂500可以包括并暴露卡计算设备的应用层内的应用可访问的一个或多个工厂api方法。应用可以经由一个或多个工厂api方法访问密钥导出功能工厂500,以请求特定密钥导出模块510。作为响应,密钥导出功能工厂500可以生成被配置为提供对特定密钥导出模块的访问的编程对象。例如,在一个实施例中,密钥导出功能工厂500可以被配置为生成并返回包括用于访问和执行密钥导出模块的一个或多个方法调用的密钥导出功能对象。

(一个或多个)密钥导出模块510可以被配置为生成(例如,导出)密码密钥(诸如(一个或多个)导出的密钥550),密码密钥又可以在一个或多个密码模块530中可用。在一些实施例中,(一个或多个)密钥导出模块510可以被配置为基于单个主密钥(诸如主密钥540)生成多于一个导出的密钥。因此,通过利用安全密钥导出功能,运行时环境的平台层(诸如虚拟化执行环境205的平台层210)可以保护运行时环境中的标准化kdf,并且可以被配置为在若干应用(诸如(一个或多个)应用240)之间共享kdf和主密钥。

但是,在其它实施例中,(一个或多个)密钥导出模块510可以不基于单个主密钥生成多个密钥。一般而言,根据不同实施例,可以使用用于生成或导出密码密钥的各种技术当中的任何一种。

在一些实施例中,(一个或多个)密码模块530可以表示利用(或需要)密码密钥(诸如加密、解密、认证等)的各种方法和/或功能当中的任何一种。

图6是示出根据一个实施例的利用具有导出的密码密钥的密码功能的应用的逻辑框图。如图6中所示,在虚拟化执行环境205的应用层230内执行的应用(诸如应用240)可以从密钥导出功能工厂500获得密钥导出功能对象610。

例如,应用240可以调用密钥导出功能工厂500的方法,并且可以指定(或识别)特定密钥导出功能。作为响应,密钥导出功能工厂500可以创建密钥导出功能对象610并将其配置为提供对特定密钥导出功能的访问(诸如通过能够调用对应密钥导出模块的方法)。

然后应用240可以使用密钥导出功能对象610来访问密钥导出模块510,以便生成导出的密钥260。例如,在一个实施例中,密钥导出功能工厂500的方法可以返回密钥导出功能对象610的实例,并且密钥导出功能对象610可以提供经由密钥导出模块510对一个特定密钥导出功能的访问。此外,根据一些实施例,应用可以能够重用密钥导出功能对象610,以便经由不同的密钥导出模块访问不同的密钥导出功能,诸如通过调用密钥导出功能工厂500的另一个方法。

密钥导出模块510可以向应用240返回密钥引用(诸如导出的密钥引用280)。在一些实施例中,导出的密钥引用280可以表示编程对象,诸如在面向对象的编程语言实现中。在其它实施例中,导出的密钥引用280可以表示引用平台层210内的数据的另一种方法。

然后应用240可以将导出的密钥引用280传递到密码模块530,使得密码模块530可以经由导出的密钥引用280访问安全存储装置220中的导出的密钥260。因此,在一些实施例中,密码模块530可以经由导出的密钥引用280访问导出的密钥260,诸如为了使用导出的密钥260执行一个或多个密码功能(例如,加密、解密、认证等)。

如图6中所示,只有对密码对象的引用(诸如密钥导出功能对象610和导出的密钥引用280)可以驻留在应用层230中。在一些实施例中,密钥导出功能工厂500、(一个或多个)密钥导出模块510、导出的密钥260和(一个或多个)密码模块530可以驻留在平台层210中和/或在其中执行。因此,根据各种实施例,敏感的密码信息(诸如密钥导出功能的细节、导出的密钥和密码模块的细节)以及其它密码敏感素材可以在平台层和/或卡计算设备的一个或多个安全特征内、之下或利用所述安全特征。

换句话说,相比于密码功能和/或数据在应用层230内的情况,攻击者可以更难以定位、获得和/或分析在平台层210内(或者在平台层210内执行)的密码功能和/或数据。例如,密码数据(诸如导出的密钥260)可以存储在安全存储装置220内,安全存储装置220可以表示比分配给应用层230和/或由应用层230使用的(一个或多个)存储器区域更安全(例如,针对密码攻击)的存储器的区域。

图7是示出根据一个实施例的用于经由密钥引用使用导出的密码密钥的方法的一个实施例的流程图。如方框710中所示,根据一个实施例,应用可以执行返回密钥导出功能对象的卡计算设备的平台层的工厂api方法,诸如可以由导出功能工厂500提供的工厂api方法。此外,如方框720中所示,应用可以经由密钥导出功能对象执行平台层的密钥导出功能,该密钥导出功能返回与根据密钥导出功能导出的密钥对应的密钥引用。例如,如上所述,导出功能工厂500可以返回密钥导出功能对象610,其可用于访问密钥导出模块510的一个或多个方法。

导出的密钥可以存储在卡计算设备的密码安全存储器区域中,如在方框720中。例如,在一个实施例中,导出的密钥260可以由密钥导出模块510存储在安全存储装置220中。如方框730中所示,可以执行平台层的密码功能,将密钥引用作为输入传递。例如,应用240可以执行密码模块530的一个或多个方法,并且可以将导出的密钥引用280作为输入传递到所执行的(一个或多个)方法。此外,如方框740中所示,根据一些实施例,密码功能可以经由密钥引用访问安全存储器区域中的导出的密钥。例如,密码模块530的一个或多个方法可以被配置为使用密码密钥来执行一个或多个密码功能(例如,加密、解密、认证等)。因此,密码模块530可以经由导出的密钥引用280访问安全存储装置220中的导出的密钥260。

本文所述的用于安全密钥导出的技术可以在各种各样的计算系统当中的任何一个中实现。图8示出了如本文所述并根据各种实施例的被配置为实现安全密钥导出的卡计算设备。

在一些实施例中,卡计算设备1400可以是具有嵌入式集成电路的各种类型的袖珍卡当中的任何一种,包括但不限于智能卡、芯片卡、集成电路卡(icc)或通用集成电路卡(uicc)、信用卡、自动柜员机(atm)卡、移动电话订户身份模块(sim)卡、付费电视授权卡、预付费卡、高安全性标识卡、接入控制卡和电话支付卡。卡计算设备1400可以被配置为在各种系统当中的任何一个中用于各种角色,诸如为了提供标识、认证、数据存储和/或应用处理。

如本文所述,卡计算设备1400可以被配置为经由各种卡读取设备和/或接口当中的任何一个与外部设备和服务通信。例如,在一些实施例中,卡计算设备1400可以包括一个或多个终端接口1450。在一些实施例中,终端接口1450可以是卡计算设备与用于卡计算设备的主机或终端之间的通信介质。终端接口1450可以被配置为根据各种协议(包括但不限于单线协议(swp)和主机控制器接口(hci)规范)当中的任何一种进行通信。

在一些实施例中,终端接口1450可以包括接触区域,该接触区域包括若干导电接触垫,当插入终端、主机或其它读卡器时,接触垫可以提供电连接。在其它实施例中,终端接口1450可以包括被配置为经由无线电波与终端通信的非接触式通信设备。

虽然本文主要参考较小的(例如,袖珍)集成电路卡来描述,但本文所述的方法和技术也可以在其它计算设备上执行。因此,在一些实施例中,卡计算设备1400可以是各种类型的设备当中的任何一种,包括但不限于移动电话、个人计算机系统、台式计算机、膝上型或笔记本计算机、大型计算机系统、工作站、网络计算机、消费者设备、应用服务器、存储设备、外围设备(诸如交换机、调制解调器、路由器等),或者一般而言任何类型的计算设备。

在一些实施例中,本文所述的方法可以由可包括其上存储有指令的非暂态计算机可读存储介质的计算机程序产品或软件实现,指令可以用于对计算机系统(或其它电子设备)进行编程,以执行本文所述的一些或全部技术。计算机可读存储介质可以包括用于以机器(例如,计算机)可读的形式(例如,软件、处理应用)存储信息的任何机制。机器可读介质可以包括但不限于磁存储介质(例如,硬盘驱动器或软盘);光存储介质(例如,cd-rom);磁-光存储介质;只读存储器(rom);随机存取存储器(ram);可擦可编程存储器(例如,eprom和eeprom);闪存;电的或适于存储程序指令的其它类型的介质。此外,程序指令可以使用光学、声学或其它形式的传播信号(例如,载波、红外信号、数字信号等)来传送。

卡计算设备1400可以包括处理器单元1470(可能包括集成电路、可自编程的单芯片微型计算机(spom)、多处理器、单线程处理器、多线程处理器、多核处理器等),其可以被配置为执行运行时环境,诸如包括一个或多个组件或应用(诸如虚拟化执行环境205、平台层210和密钥导出模块250)的运行时环境1430,这些组件或应用可以存在于存储在运行时环境1430在其上执行的相同卡计算设备1400的存储器1410中的程序指令1420中或者可以存在于存储在类似于或不同于卡计算设备1400的另一个计算机系统的存储器中的程序指令中。

卡计算设备1400可以包括可以是可变或不可变的一个或多个系统存储器1410(例如,高速缓存、sramdram、rdram、edoram、ddrram、sdram、rambusram、eeprom等当中的一个或多个)、系统互连1440(例如,ldt、pci、isa等)和终端接口1450(例如,atm接口、以太网接口、帧中继接口等)。存储介质也可以包括其它类型的存储器,或者其组合。在其它实施例中,卡计算设备1400可以包括比图14所示更多、更少或不同的组件。(一个或多个)处理器1470、终端接口1450和系统存储器1410可以耦合到系统互连1440。

系统存储器1410当中的一个或多个可以包括被配置为实现本文所述的用于建立和管理安全信道通信(根据本文所述的任何实施例)的一些或全部技术的程序指令1420。例如,根据一个实施例,系统存储器1410中的一个或多个可以包括实现和/或执行运行时环境1430、虚拟化执行环境205、平台层210和密钥导出模块250的代码。

在各种实施例中,程序指令1420、运行时环境1430、虚拟化执行环境205、平台层210和密钥导出模块250和/或这些组件的各个子模块可以各自以各种编程语言或方法当中的任何一种来实现。例如,在一个实施例中,虚拟化执行环境205、平台层210和密钥导出模块250可以是基于java的,而在另一个实施例中,它们可以使用c或c++编程语言来编写。类似地,根据各种实施例,运行时环境1430可以使用java、c、c++或另一种编程语言来编写。而且,在一些实施例中,运行时环境1430、虚拟化执行环境205、平台层210和密钥导出模块250以及这些组件的各种子模块可以不使用相同的编程语言来实现。

虽然本文已经参考具体的实施例描述了各种系统和方法,但是应当理解,这些实施例是说明性的,并且本公开内容的范围不限于这些具体的实施例。许多变化、修改、添加和改进是可能的。例如,在描述中识别出的块和逻辑单元是为了理解所描述的实施例,而不意味着限制本公开内容。功能可以在本文所述的系统和方法的各种实现中以不同的方式在方框中分离或组合,或者用不同的术语来描述。

这些实施例意在是说明性而非限制性的。相应地,可以为在本文中描述为单个实例的组件提供多个实例。各种组件、操作和数据存储之间的边界在某种程度上是任意的,并且特定操作在具体说明性配置的上下文中示出。可以想到功能的其它分配,并且这些分配可以落入随后的权利要求的范围内。最后,在示例性配置中作为离散组件给出的结构和功能可以实现为组合的结构或组件。这些和其它变化、修改、添加和改进可以落入如随后权利要求中定义的本公开内容的范围内。

虽然已经详细描述了上述实施例,但是一旦完全理解了上述公开内容,许多变化和修改就将变得显而易见。意在将以下权利要求解释为包括所有此类变化和修改。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1