CN103649964A - 安全寄存执行体系架构 - Google Patents

安全寄存执行体系架构 Download PDF

Info

Publication number
CN103649964A
CN103649964A CN201280031783.9A CN201280031783A CN103649964A CN 103649964 A CN103649964 A CN 103649964A CN 201280031783 A CN201280031783 A CN 201280031783A CN 103649964 A CN103649964 A CN 103649964A
Authority
CN
China
Prior art keywords
application
here
sere
volatile storage
storage image
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
CN201280031783.9A
Other languages
English (en)
Other versions
CN103649964B (zh
Inventor
T·P·瓦奥莱尤
T·S·拉维沙卡
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.)
Oracle International Corp
Original Assignee
Oracle International Corp
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 Oracle International Corp filed Critical Oracle International Corp
Publication of CN103649964A publication Critical patent/CN103649964A/zh
Application granted granted Critical
Publication of CN103649964B publication Critical patent/CN103649964B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2147Locking files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2153Using hardware token as a secondary aspect

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Retry When Errors Occur (AREA)

Abstract

总的来说,一方面,本发明涉及用于执行应用的方法。该方法包括经包括计算机处理器的主机设备访问安全存储元件;由计算机处理器执行在主机设备上的托管的执行运行时环境(HERE);识别安全存储元件中HERE的持久性存储器图像;由计算机处理器利用HERE执行应用;及,基于应用的执行,对持久性存储器图像应用第一组变化。

Description

安全寄存执行体系架构
背景技术
随着现代计算设备的能力已经增长以满足日益增加的需求,设计人员努力修改现有的软件平台以适应全新的应用。这种设备横跨从纯嵌入式和混合嵌入式系统到通用计算机系统的范围。某些应用,诸如医疗设备、智能电话、笔记本和膝上型计算机,被设计成满足严格的硬件和软件兼容性需求。这些应用中许多都需要兼容性与安全性考虑之间不断变化的平衡。
当与兼容硬件耦合时,现有的软件平台可以提供广泛的安全性特征。例如,数据封装和密码术是利用安全微控制器的移动操作系统中常见的特征。当与兼容软件耦合时,硬件组件也会有助于设备的安全性。但是,与这种专用体系架构关联的设计与开发成本会相当大。
除了成本的考虑,安全性特征也会限制设备的功能性和/或效率。同时,在常见电子设备中使用的许多嵌入式系统被修改成结合更多通用计算机的功能性。例如,预期启用Web-2.0的智能电话和上网本可以模拟由台式个人计算机提供的在线体验,但没有相关联的安全性风险。当设计人员在这些设备的设计当中包括更大的开放性和功能性时,它们也增加了引入弱点的可能性,这些弱点会被恶意软件、木马、病毒和其它攻击采用。因此,设计人员面临着平衡安全性考虑与那些成本和功能性考虑的艰巨任务。
发明内容
总的来说,一方面,本发明涉及一种用于执行应用的方法。该方法包括经包括计算机处理器的主机设备访问安全存储元件;通过计算机处理器,执行在主机设备上的托管的执行运行时环境(HERE);识别HERE在安全存储元件中的持久性存储器图像;通过计算机处理器,利用HERE执行应用;及,基于执行该应用,对持久性存储器图像应用第一组变化。
总的来说,一方面,本发明涉及一种用于执行应用的系统。该系统包括包括计算机处理器的主机设备;可操作地连接到主机设备并且配置为认证主机设备的用户以访问该安全存储元件的安全存储元件;及在计算机处理器上执行的托管的执行运行时环境(HERE)并且HERE配置为:识别HERE在安全存储元件中的持久性存储器图像;及执行应用,其中基于执行该应用对HERE的持久性存储器图像应用第一组变化。
总的来说,一方面,本发明涉及存储用于执行应用的指令的非暂时性计算机可读存储介质。指令包括以下功能性:经主机设备访问安全存储元件;执行在主机设备上托管的执行运行时环境(HERE);识别HERE在安全存储元件中的持久性存储器图像;利用HERE执行应用;及,基于执行该应用,对持久性存储器图像应用第一组变化。
本发明的其它方面将从以下描述和所附权利要求变得显然。
附图说明
图1示出了根据本发明一种或多种实施例的示意图。
图2和3示出了根据本发明一种或多种实施例的流程图。
图4示出了根据本发明一种或多种实施例的移动设备。
图5示出了根据本发明一种或多种实施例的计算机系统。
具体实施方式
现在将参考附图具体地描述本发明的具体实施例。为了一致,各个图中相同的元件用相同的标号指示。
在以下对本发明实施例的具体描述中,阐述了众多具体的细节,以便提供对本发明更加透彻的理解。但是,对本领域普通技术人员来说将很显然,本发明没有这些具体细节也可以实践。在其它情况下,为了避免不必要地使描述复杂化,众所周知的特征没有具体描述。
总的来说,本发明的实施例提供了利用托管的执行运行时环境(HERE)执行应用的方法和系统。总的来说,本发明的实施例通过可操作地连接到安全存储元件的主机设备执行HERE。安全存储元件包括HERE的持久性存储器图像,这可以作为执行应用的结果被更新。
图1示出了根据本发明一种实施例的系统(199)。如图1中所示,系统(199)包括多个组件,诸如主机设备(100)、托管的执行运行时环境(HERE)(105)、持久性存储器高速缓存(110)、安全存储元件(115)、安全元件运行时环境(SERE)(120)及持久性存储器图像(125)。该系统的组件可以位于同一个设备上(例如,服务器、大型机、台式个人计算机(PC)、膝上型计算机、个人数字助理(PDA)、电话、移动电话、信息站、有线电视机顶盒,及任何其它设备)或者可以位于通过网络(例如,互联网)连接的独立设备上,其中网络具有有线段和/或无线段。本领域技术人员将认识到,在本发明的给定实施例中,可以有在一个设备上运行的多于一个的每种独立组件,及这些组件的任意组合。
主机设备(100)可以是个人计算机(PC)、个人数字助理(PDA)、移动电话、智能电话、移动互联网设备(MID)、超移动个人计算机(UMPC)、膝上型计算机、上网机、上网本、平板电脑、家庭影院个人计算机(HTPC)、手持式计算机、GPS导航设备、汽车计算机系统、移动信息设备简介(MIDP)兼容设备、连接的有限设备配置(CLDC)兼容设备,和/或能够执行应用的任何其它计算设备。
在本发明的一种或多种实施例中,安全存储元件(115)是存储器设备或者分配的存储器片段。安全存储元件(115)的例子包括安全令牌、订户身份模块(SIM)卡、安全数字(SD)卡、IronkeyTMUSB卡(Ironkey是位于加州Sunnyvale的Ironkey公司的商标)、可信任的嵌入式环境(TEE)中的安全位置,及能够被主机设备(100)读取的任何持久性存储器。
在本发明的一种或多种实施例中,安全存储元件(115)包括执行硬件数据加密和解密、认证、凭证管理和/或访问控制的功能性。安全存储元件(115)还可以包括封锁功能性、生物测定认证、防篡改打包/检测,和/或根据本发明各种实施例的各种其它硬件与软件安全性机制。
在本发明的一种或多种实施例中,安全存储元件(115)包括HERE(105)的持久性存储器图像(125)。持久性存储器图像(125)可以是在安全存储元件(115)中存储HERE(105)的任何形式的持久性存储器(例如,电可擦除可编程只读存储器(EEPROM))。
继续图1的讨论,根据本发明的一种或多种实施例,持久性存储器高速缓存(110)是驻留在主机设备(100)上的持久性存储器图像(125)的高速缓存。持久性存储器高速缓存(110)可以驻留在主机设备(100)中和/或可操作地连接到主机设备(100)的一个或多个持久性或非持久性(即,易失性)存储器设备(例如,随机存取存储器)上。在本发明的一种或多种实施例中,SERE(120)配置为经安全通信会话把持久性存储器图像(125)的拷贝发送到HERE(105),以便用作持久性存储器高速缓存(110)。
托管的执行运行时环境(HERE)(105)可以是能够在主机设备(100)上执行应用的任何软件。HERE(105)的例子可以包括Oracle公司的JavaTM运行时环境(JRE)、Oracle公司的JavaCardTM运行时环境(JCRE)、Nokia公司的Symbian操作系统、Apple公司的iOSTM、Google公司的Android操作系统,和/或能够执行应用的任何操作系统或运行时环境。
在本发明的一种或多种实施例中,HERE(105)配置为在预定的时刻创建持久性存储器高速缓存(110)。例如,持久性存储器高速缓存(110)可以在主机设备(100)启动时或者在HERE(105)在主机设备(100)中执行时创建。根据本发明的各种实施例,HERE(105)可以配置为在任何时候创建、同步和/或删除持久性存储器高速缓存(110)。
在本发明的一种或多种实施例中,HERE(105)配置为同步持久性存储器图像(125)和持久性存储器高速缓存(110)。同步可以被执行,以便允许对持久性对象的单项原子变化和提交事务的持久化。在本发明的一种或多种实施例中,在任何事务之外对持久性对象的单项原子变化是对持久性存储器图像(125)和持久性存储器高速缓存(110)两者立即执行的。
在本发明的一种或多种实施例中,HERE(105)维护一个或多个变化日志,包括还没有应用到持久性存储器图像(125)的、对持久性存储器高速缓存(110)的改变。最初,正在进行的事务的范围内的变化可以对持久性存储器高速缓存(110)执行并且记录在变化日志中。在本发明的一种或多种实施例中,当事务提交时,变化日志应用到持久性存储器图像(125)。根据本发明的一种或多种实施例,HERE(105)可以针对每个运行的应用、每个事务、每个会话和/或对持久性存储器高速缓存(110)的每次更新来维护变化日志。在本发明的一种或多种实施例中,SERE(120)在安全存储元件(115)中存储(一个或多个)变化日志。
在本发明的一种或多种实施例中,HERE(105)配置为绕过主机设备(100)的高速缓存机制,以便维护持久性存储器高速缓存(110)并且应用对持久性存储器图像(125)应用变化的一种或多种方法,如本文所公开的。在本发明的一种或多种实施例中,HERE(105)配置为利用主机设备(100)的高速缓存机制,以便强制持久性存储器高速缓存(110)和持久性存储器图像(125)的同步。
继续图1的讨论,根据本发明的一种或多种实施例,HERE(105)配置为检测持久性存储器图像(125)的损坏和/或失步条件。损坏和/或失步条件可能是由于HERE(105)的中断、SERE(120)的中断、主机设备(100)的操作系统的中断、用户突然除去安全存储元件(115)和/或与维护高速缓存、高速缓存日志、会话高速缓存日志和/或持久性存储器图像(125)的完整性关联的过程或组件的任何中断造成的。在本发明的一种或多种实施例中,HERE(105)和/或主机设备(100)配置为在启动时执行同步检查。作为同步检查的结果,如果识别出持久性存储器图像(125)的损坏和/或失步条件,则阻止安全存储元件(115)被进一步访问,直到可以执行一个或多个预定义的安全性验证和/或恢复过程。
在本发明的一种或多种实施例中,HERE(105)配置为响应于检测到中断而回滚部分应用到持久性存储器高速缓存(110)的事务变化和/或变化日志。HERE(100)还可以配置为当检测到持久性存储器高速缓存(110)的损坏时重新创建持久性存储器高速缓存(110)。在本发明的一种或多种实施例中,SERE(120)配置为跟踪对持久性存储器高速缓存(110)的同步操作并且检验上次的变化日志被正确记录。
在本发明的一种或多种实施例中,HERE(105)配置为从安全存储元件(115)检索上一次的会话变化日志并且在下一次平台复位时应用它。作为替代,根据本发明的一种或多种实施例,SERE(120)可以与HERE(105)的执行并发地把变化日志直接应用到持久性存储器图像(125)。
在本发明的一种或多种实施例中,当与主机设备(100)耦合时,HERE(105)包括一个或多个安全性特征。安全性特征的例子包括数据封装、应用防火墙、密码术和/或由HERE(105)提供的任何其它安全性特征。在本发明的一种或多种实施例中,为了被HERE(105)认为是安全的(即,保证安全性特征中一个或多个的完整性或者对其的支持),主机设备(100)必须满足一组兼容性标准。兼容性标准的例子包括硬件加密支持(例如,程序和/或数据存储器加密、加密密钥的自动生成)、防止访问、拷贝/锁保护、嵌入式软件安全性(例如,固件/存储器安全性、可信任的嵌入式环境(TEE)支持,等等)、硬件组件需求、性能需求(例如,CPU、微控制器、微处理器基准需求、随机存取存储器(RAM)、SRAM、ROM、EPROM、EEPROM或者其它存储器能力需求)、存储器寻址需求、体系架构设计需求(例如,分离的地址和数据总线)、硬件/存储器自析构能力、防篡改、数据与程序存储器的分离,等等。
兼容性标准还可以包括与由标准化组织定义的一个或多个标准的兼容。标准的例子包括由JEDEC固态技术协会(JEDEC Solid StateTechnology Association)维护的JEDEC标准100B.01和JESC21-C。
继续图1的讨论,根据本发明的一种或多种实施例,主机设备(100)不满足HERE(105)的兼容性标准中的一个或多个。以这种方式,主机设备(100)可以被认为关于以上提到的安全性特征中的一个或多个是不安全的。换句话说,如果主机设备(100)被认为是不安全的,则安全性特征中的一个或多个有可能被损害或不可操作。
在本发明的一种或多种实施例中,HERE(105)配置为识别应用的敏感部分。敏感部分可以是或者(1)被这么划分或者(2)匹配预定义标准的任何代码段、函数、过程、库、对象和/或应用的其它可识别部分(包括HERE(105)本身的部分)。敏感部分可以利用用于创作该应用的编程语言中一组预定义的注释来划分。例如,JavaCardTM3安全性注释可以用于划分JavaTM代码的敏感部分。Java和Java Card是位于加州Redwood City的Oracle公司的商标。敏感部分可以是完整性敏感的、机密性敏感的和/或根据任何其它预定义的安全性标准敏感的。
在本发明的一种或多种实施例中,HERE(105)配置为基于预定义的标准识别应用的敏感部分。(除了以上讨论的明确划分)预定义的标准可以识别任何操作类型、语句和/或用于识别部分代码的任何标准。例如,HERE(105)可以配置为把密码计算识别为敏感的并且把它们委托给SERE(120)来执行。在本发明的一种或多种实施例中,HERE(105)包括加密并在主机设备(100)的存储器设备(例如,RAM)中存储应用的敏感部分的功能性。因而,敏感部分的加密和解密可以根据正在执行的应用的需要而执行。
在本发明的一种或多种实施例中,HERE(105)包括生产远端代理的功能性,以便允许部署在安全存储元件(115)上的敏感部分的启用。
在本发明的一种或多种实施例中,HERE(105)配置为计算在主机设备(100)上执行的HERE(105)的校验值并且对照之前计算出的校验值检验该校验值。根据本发明的各种实施例,校验值可以存储在主机设备(100)或者安全存储元件(115)上。如果校验值存储在安全存储元件(115)上,则校验值可以经安全通信会话发送。以这种方式,整个HERE(105)可以被周期性地检验。
在本发明的一种或多种实施例中,HERE(105)配置为周期性地从SERE(120)断开并且重启主机设备(100)和/或重启其自己的执行。
在本发明的一种或多种实施例中,HERE(105)包括识别应用的特定于HERE的部分和应用的特定于安全元件(特定于SE)二者都的部分的功能性。特定于HERE的部分和特定于SE的部分可以由该应用的开发人员划分。在本发明的一种或多种实施例中,特定于HERE的应用包括设计成由HERE(105)执行的web和扩展applet应用,而特定于SE的应用包括设计成由SERE(120)执行的经典applet。
在本发明的一种或多种实施例中,HERE(105)包括与正在执行的应用的特定于HERE的部分(例如,与HERE(105)的一个或多个安全性特征兼容的部分)兼容的一个或多个安全性特征。在本发明的一种或多种实施例中,HERE(105)包括加密、解密和/或把应用的特定于HERE的部分传输到SERE(120)以便作为原始二进制对象存储的功能性。然后,在应用执行过程中,该原始二进制对象可以由SERE(120)传递回HERE(105)并且被HERE(105)解密。在本发明的一种或多种实施例中,HERE(105)和SERE(120)利用带外通信协议,以便传输存储加密的特定于HERE的部分的原始二进制对象。
继续图1的讨论,根据本发明的一种或多种实施例,HERE(105)配置为对最初设计成由安全存储元件(120)执行的应用利用远端代理,所述应用是在HERE(105)中执行的。这些远端代理可以用于把对存储在安全存储元件(115)中的安全性敏感部分的调用委托给SERE(120)。在本发明的一种或多种实施例中,开发人员可以采用远端代理来加强最初设计成由SERE(120)执行、由HERE(105)执行的应用的安全性。
在本发明的一种或多种实施例中,HERE(105)包括或者可操作地连接到托管的执行(HE)卡管理器。HE卡管理器可以包括执行和/或方便HERE(105)与安全存储元件(115)和/或SERE(120)之间的通信的功能性。因而,HE卡管理器可以配置为建立安全通信会话、处理凭证管理、执行密码计算和/或启动安全存储元件(115)或者其组件的一个或多个功能。在本发明的一种或多种实施例中,特定于HERE的应用或者一个应用的部分可以委托给HE卡管理器来访问(即,读和写)安全存储元件(115)。在本发明的一种或多种实施例中,HE卡管理器把凭证管理委托给安全元件(SE)卡管理器。
在本发明的一种或多种实施例中,HERE(105)配置为通过执行应用来约束由主机设备(100)的操作系统提供的库的使用。因而,HERE(105)可以识别主机设备(100)上可用库的子集并且允许这个已核准的子集的使用,以便减少系统(199)的可能弱点。
在本发明的一种或多种实施例中,HERE(105)包括建立与SERE(120)的安全通信会话的功能性。安全通信会话可以是由HERE(105)或SERE(120)启动的安全(例如,加密的)连接并且能够在HERE(105)和SERE(120)之间发送数据。安全通信会话可以使用HERE(105)和SERE(120)支持的带外通信协议和/或任何安全通道协议。例如,全球平台(Global Platform)的SCP03安全通道协议可以用于建立安全通信会话。根据本发明的一种或多种实施例,可以通过主机设备(100)的操作系统和/或可以利用一个或多个操作系统调用来促进安全通信会话。
继续图1的讨论,根据本发明的一种或多种实施例,HERE(105)配置为在安全通信会话故障之后重启。SERE(120)可以配置为对故障保持跟踪并且可以在预定义的失败尝试次数之后锁定安全存储元件或者其一部分。
在本发明的一种或多种实施例中,HERE(105)配置为利用带外通信协议与SERE(120)通信。带外通信协议的例子可以包括与主机设备(100)使用的通用大容量存储接口不同的任何协议。带外通信协议的一个例子是应用协议数据单元(APDU)。
在本发明的一种或多种实施例中,在分层体系架构中,安全存储元件(115)包括SERE(120)。SERE(120)可以是控制对持久性存储器图像(125)的访问的任何过程,其中持久性存储器图像(125)包括运行时环境(即,执行环境)、固件应用、固件数据结构、操作系统,和/或能够控制对持久性存储器图像(125)的访问的任何软件代码、应用或运行时环境。
在本发明的一种或多种实施例中,SERE(120)是软件应用,当其被主机设备(100)执行时,提供用于在一个或多个外部应用(例如,HERE(105))和持久性存储器图像(125)之间通信的接口。SERE(120)的例子可以包括Oracle公司的JavaTM运行时环境(JRE)、Oracle公司的Java CardTM运行时环境(JRE)、TrueCrypt Foundation的TrueCrypt应用、Sarah Dean的FreeOTFE应用,及任何管理/加密/认证应用。在本发明的一种或多种实施例中,SERE可以实现为包括SERE的一个或多个功能而没有运行时环境的功能性的安全元件应用。
继续图1的讨论,根据本发明的一种或多种实施例,SERE(120)对存储在安全存储元件(115)(或者其一个片段)上的数据执行加密和/或解密。SERE(120)可以配置为使用任何加密方法,包括对称密钥(例如,数据加密标准(DES)、高级加密标准(AES)和公钥加密(例如,RSA加密)。
在本发明的一种或多种实施例中,在不分层体系架构中,安全存储元件(115)不包括SERE(120)。根据本发明的各种实施例,在不分层体系架构中,可以利用各种其它的软件和/或硬件安全性机制。
在本发明的一种或多种实施例中,SERE(120)包括随机生成暂时密钥作为用于安全通信会话的双方会话密钥的功能性。双方会话密钥可以在从安全存储元件(115)检索到要在主机设备(100)上执行的HERE(105)代码的时候生成。作为替代,在本发明的一种或多种实施例中,安全存储元件(115)配置为在从安全存储元件(115)检索到要在主机设备(100)上执行的HERE(105)代码的时候生成唯一的会话密钥。
在本发明的一种或多种实施例中,SERE(120)配置为:
·在从安全存储元件(115)检索出的HERE(105)代码中插入会话密钥
·对于非常短的时间间隔,把该会话密钥放到安全存储元件(115)上已知的位置
·对于非常短的时间间隔,响应于对SERE(120)的请求而检索该会话密钥
在本发明的一种或多种实施例中,代替密钥,可以使用一个时间口令。根据本发明的各种实施例,密钥或口令只能使用一次。
在本发明的一种或多种实施例中,SERE(120)配置为把变化(例如,变化日志、对持久性对象的单项原子变化)提交到安全存储元件(115)中的会话变化日志。然后,SERE(120)可以在下一次平台复位时、在一个或多个预定义的时刻和/或响应于一个或多个事件而把会话变化日志应用到持久性存储器图像(125)。例如,SERE(120)可以配置为在检测到持久性存储器图像(125)必须进行磁盘碎片重组时应用会话变化日志。在本发明的一种或多种实施例中,HERE(105)包括把以上提到的任何变化直接应用到安全存储元件(115)的功能性,而不需要SERE(120)(例如,在不分层体系架构中)。
继续图1的讨论,根据本发明的一种或多种实施例,SERE(120)配置为对安全存储元件(115)和/或持久性存储器图像(125)执行一种或多种周期性的维护操作。周期性维护操作的例子包括磁盘碎片重组和垃圾收集。SERE(120)可以按需或者在一个或多个预定义的时刻执行周期性的维护操作。例如,维护操作可以在平台复位时执行。在本发明的一种或多种实施例中,HERE(105)包括直接对安全存储元件(115)执行一种或多种周期性的维护操作的功能性,而不需要SERE(120)(例如,在不分层体系架构中)。
在本发明的一种或多种实施例中,SERE(120)配置为创建持久性存储器图像(125)(或者其任何片段)的拷贝。然后,SERE(120)可以把会话变化日志应用到持久性存储器图像(125)的拷贝(或者,作为替代,应用到原始的持久性存储器图像(125))。SERE(120)可以配置为在会话变化日志成功应用之后用该拷贝替换原始的持久性存储器图像(125)。在本发明的一种或多种实施例中,在把会话变化日志应用到拷贝之后,会话变化日志和原始的(即,未更改的)持久性存储器图像(125)被删除。在本发明的一种或多种实施例中,HERE(105)包括在安全存储元件(115)中创建持久性存储器图像的拷贝并且把变化日志直接应用到安全存储元件(115)的功能性,而不需要SERE(120)(例如,在不分层体系架构中)。
在本发明的一种或多种实施例中,变化日志被组织成一连串幂等条目,使得变化可以在不丢失信息的情况下多次应用。在应用变化日志的时候发生中断的情况下,这可能比删除持久性存储器图像(125)的整个拷贝并重启该过程更有效。
在本发明的一种或多种实施例中,不是创建整个持久性存储器图像(125)的拷贝,而是,SERE(120)配置为创建持久性存储器图像(125)中一个或多个改变了的页面的拷贝。因而,来自变化日志的变化可以个别地应用到这些页面。在应用变化日志的时候发生中断的情况下,这有可能只对受影响的页面(而不是整个持久性存储器图像(125))重新应用变化。
在本发明的一种或多种实施例中,SERE(120)配置为在安全存储元件(115)中存储应用的对应敏感部分的校验值。校验值可以用于执行错误检测并且识别被损坏或危及的敏感部分。校验值可以是基于敏感部分的数学函数计算出的任何数字、字母数字、二进制或者其它值。例如,SERE(120)可以使用循环冗余校验(CRC)来生成校验值并且执行错误检测。
在本发明的一种或多种实施例中,SERE(120)配置为计算敏感部分的校验值并且对照存储在安全存储元件(115)中的之前记录的校验值来验证它。HERE(105)可以把敏感部分提交给SERE(120),然后SERE(120)执行验证。作为替代,HERE(105)可以从SERE(120)请求所存储的校验值,以便执行验证。在一个例子中,HERE(105)执行应用并且,在执行过程中,识别该应用中的敏感对象。在第一次访问对象时,HERE(105)把该对象提交到SERE(120)。SERE(120)为该对象计算第一校验值并且把该对象存储在安全存储元件(115)中。继续这个例子,HERE(105)识别对敏感对象的第二次访问并且再次把该对象提交到SERE(120)。SERE(120)基于该对象计算第二校验值并且通过确认第一校验值和第二校验值相等来验证对象。
继续图1的讨论,根据本发明的一种或多种实施例,SERE(120)配置为在安全存储元件(115)的私有分区中存储校验值。私有分区可以用于防止对校验值的非法修改和/或可以进一步分成用于在主机设备(100)上执行的每个应用的部分。在本发明的一种或多种实施例中,HERE(105)包括以上提到的直接存储、计算和/或验证应用在安全存储元件(115)中的对应敏感部分的校验值的所有功能性,而不需要SERE(120)(例如,在不分层体系架构中)。
作为替代,在本发明的一种或多种实施例中,SERE(120)配置为加密并在安全存储元件(115)上存储应用的敏感部分。然后,SERE(120)可以在有来自HERE(105)的请求时解密该敏感部分。
在本发明的一种或多种实施例中,SERE(120)包括与正在执行的应用的特定于SE的部分兼容的一个或多个安全性特征。在本发明的一种或多种实施例中,特定于SE的部分(例如,与SERE(120)的一个或多个安全性特征兼容的部分)被加密、存储在安全存储元件(115)中和/或被SERE(120)解密。因而,根据本发明的一种或多种实施例,当执行应用时,HERE(105)可以配置为把特定于SE的敏感部分的访问和安全性委托给SERE(120)。
在本发明的一种或多种实施例中,SERE(120)包括识别应用的特定于SE的部分和应用的特定于HERE的部分的功能性。特定于SE的部分和特定于HERE的部分二者都可以被应用的开发人员划分。
继续图1的讨论,根据本发明的一种或多种实施例,SERE(120)配置为计算HERE(105)的校验值并且对照之前计算出的校验值检验该校验值。根据本发明的各种实施例,校验值可以存储在主机设备(100)或者安全存储元件(115)上。在本发明的一种或多种实施例中,不是发送并检查HERE(105)的完整代码,而是代码的一部分可以用于计算校验值。根据本发明的各种实施例,这部分可以由HERE(105)或SERE(120)随机确定。因而,在本发明的一种或多种实施例中,SERE(120)可以从HERE(105)请求HERE(105)代码的一部分来检验或者可以请求HERE(105)为要检验的这部分计算校验值。相应地,HERE(105)可以周期性地被检验。
在本发明的一种或多种实施例中,HERE(105)和/或SERE(120)配置为生成对安全性敏感部分和/或对象的新计算出的校验值与存储在安全存储元件中的登记的校验值的比较。基于这种比较(例如,校验值相等),HERE(105)和/或SERE(120)可以验证要执行的代码的安全性敏感部分。在本发明的一种或多种实施例中,登记的校验值周期性地或者响应于一个或多个预定义的事件而被更新。
在本发明的一种或多种实施例中,SERE(120)配置为触发HERE(105)代码的一种或多种安全性检查。安全性检查可以包括检验HERE(105)的完整性的任何方法,包括本文所公开的错误检查方法中的一种或多种。安全性检查可以在与HERE(105)交互的同时在开始时、退出时、及时地和/或在某些条件下执行。在本发明的一种或多种实施例中,SERE(120)配置为检测安全性检查的失败并且响应于该失败而锁定持久性存储器图像(125)和/或结束与HERE(105)的通信。在本发明的一种或多种实施例中,HERE(105)包括以上提到的为HERE(105)直接存储、计算和/或验证校验值并且触发HERE(105)的一种或多种安全性检查的所有功能性,而不需要SERE(120)(例如,在不分层体系架构中)。
继续图1的讨论,根据本发明的一种或多种实施例,SERE(120)包括或者可操作地连接到SE卡管理器。SE卡管理器可以包括执行和/或方便SERE(120)和安全存储元件(115)之间通信的功能性。因而,如本文所公开的,根据本发明的各种实施例,SE卡管理器可以配置为控制对安全存储元件(115)的访问和/或管理。在本发明的一种或多种实施例中,特定于SE的应用或者应用的一部分被委托给SE卡管理器,用于访问(即,读和写)安全存储元件(115)。在本发明的一种或多种实施例中,SE卡管理器执行对HERE(105)的安全更新。
在本发明的一种或多种实施例中,系统(199)利用以下,或者以下信任链的任何变体:1)SERE(120)→2)HERE(105)→3)安全性对策→4)主机设备(100)上执行的应用。对策可以包括确保应用的敏感部分或者HERE(105)、SERE(120)、持久性存储器图像(125)和/或持久性存储器高速缓存(110)的真实性和/或完整性的任何方法,如本文所公开的。在该信任链识别出的任何两个实体之间存在冲突的情况下,系统对链中等级更高的实体授予占优势的特权。例如,来自SERE(120)的请求被赋予比来自HERE(105)的冲突请求更高的优先权。
在一个例子中,SERE是Java CardTM2运行时环境,而HERE(105)是Java CardTM3连接运行时环境。在这个例子中,开发人员把应用的代码分成两部分:(1)“.jar”文件中特定于HERE的代码和(2)“.cap”文件中特定于SE的代码。该应用包括以下组成部分:
·Transit POS web应用
·Transit Admin web应用
·Transit Turnstile扩展applet应用
·Wallet Assist扩展applet应用
·Wallet Classic applet应用
继续这个例子,Transit POS web应用、Transit Admin web应用、Transit Turnstile扩展applet应用和Wallet Assist扩展applet应用都部署到HERE(105)。Wallet Classic applet应用和所需的远端代理对应物(程序框架)将部署到SERE(120)。
图2示出了用于在主机设备上执行托管的执行运行时环境(HERE)的方法的流程图。主机设备连接到具有HERE的持久性存储器图像的安全存储元件。虽然这个流程图中的各个步骤是按顺序给出并进行描述的,但是本领域普通技术人员将认识到,这些步骤中的一些或全部可以按不同的次序执行或者这些步骤中的一些或全部可以并行地执行。另外,在本发明的一种或多种实施例中,以下所述的一个或多个步骤可以略去、重复和/或以不同的次序执行。相应地,图2中所示步骤的具体安排不应当被认为是限定本发明的范围。
在步骤200,在本发明的一种或多种实施例中,安全存储元件经主机设备被访问。安全存储元件可操作地连接到主机设备。访问安全存储元件可能涉及认证主机设备的用户以访问该安全存储元件的任何方法。安全存储元件可以配置为从用户获得口令、密钥和/或授权,以便提供访问。授权的例子可以包括由安全存储元件进行的生物测定授权。
在步骤205,在本发明的一种或多种实施例中,驻留在安全存储元件中的安全元件运行时环境(SERE)被执行。在安全存储元件连接到主机设备时,SERE就可以作为启动或连接例程的一部分被执行。作为替代,SERE可以响应于授权主机设备的用户和/或响应于任何预定义的触发器或事件而执行。
在步骤210,在本发明的一种或多种实施例中,托管的执行运行时环境(HERE)在主机设备上执行。在本发明的一种或多种实施例中,HERE代码是从安全存储元件安全地检索的。HERE代码可以由SERE响应于来自主机设备的请求而检索。
根据本发明的各种实施例,在分层体系架构中,SERE可以启动或请求HERE的执行。作为替代,在本发明的一种或多种实施例中,在获得对安全存储元件的访问之后,HERE可以响应于任何预定义的事件或触发器而执行。
在本发明的一种或多种实施例中,在步骤215,安全通信会话在HERE和SERE之间启动。安全通信会话可以利用带外通信协议或者任何预定义的通信协议。根据本发明的各种实施例,安全通信会话可以方便HERE和SERE之间的数据传输并且可以提供加密、完整性检查和/或其它安全性机制。
在本发明的一种或多种实施例中,在步骤220,HERE的持久性存储器图像在安全存储元件中被识别。持久性存储器图像可以是存储在安全存储元件上的HERE代码的EEPROM图像或者任何其它类型的安全图像。SERE可以在任何预定义的时刻或者响应于任何预定义的事件而识别和/或验证持久性存储器图像的完整性。例如,SERE可以在主机设备启动时执行涉及识别持久性存储器图像的任何数量的安全性和/或启动例程。
在步骤225,利用SERE执行应用。在本发明的一种或多种实施例中,在分层体系架构中,HERE启动应用的执行并且把该应用特定于SE的部分委托给SERE来执行。在本发明的一种或多种实施例中,HERE执行应用特定于HERE的部分并且可以利用安全存储元件用于该应用的敏感部分(在分层或者不分层的体系架构中)。根据本发明的各种实施例,应用的安全性敏感部分可以委托给SERE和/或从安全存储元件存储并检索。
在步骤230,一组变化基于应用的执行而应用到持久性存储器图像。在本发明的一种或多种实施例中,这组变化存储在变化日志中并且在预定义的时刻或者响应于预定义的事件(例如,主机设备的启动/停机)而应用到持久性存储器图像。在本发明的一种或多种实施例中,变化可以写到驻留在安全存储元件上的会话变化日志并且在随后某个时间应用到持久性存储器图像。例如,事务变化日志和单项原子变化可以立即写到会话变化日志。继续这个例子,随后SERE创建持久性存储器图像的拷贝并且把所有变化都应用到该拷贝。一旦会话变化日志成功地应用到拷贝,SERE就用该拷贝替换持久性存储器图像。
图3示出了由驻留在安全存储元件上的安全元件运行时环境(SERE)执行应用的安全性敏感部分的方法的流程图。虽然这个流程图中的各个步骤是按顺序给出并进行描述的,但是本领域普通技术人员将认识到,这些步骤中的一些或全部可以按不同次序执行并且这些步骤中的一些或全部可以并行执行。另外,在本发明的一种或多种实施例中,以下所述的一个或多个步骤可以略去、重复和/或以不同次序执行。相应地,图3中所示的步骤的具体安排不应当被认为是限定本发明的范围。
在步骤300,由在主机设备上执行的托管的执行运行时环境(HERE)执行应用。该应用可以包括一个或多个可划分或可识别的安全性敏感代码部分,这些部分与驻留在安全存储元件上的SERE的一个或多个安全性特征兼容。
在步骤305,在HERE和驻留在可操作地连接到主机设备的安全存储元件中的SERE之间启动安全通信会话。在本发明的一种或多种实施例中,该安全通信会话可以由HERE或SERE启动,并且可以遵循各种通信协议中的任何一种。
在步骤310,识别应用的安全性敏感部分。安全性敏感部分可以用用于编写应用的编程语言划分和/或可以是由HERE识别的一个或多个预定义的安全性敏感语句。HERE可以在应用执行过程中通过在执行它们之前扫描应用的程序指令来识别安全性敏感部分。
在步骤315,由SERE对照存储在安全存储元件中的登记的校验值来验证安全性敏感部分。为了验证安全性敏感部分,登记的校验值必须存在于用于安全性敏感部分的安全存储元件中。因而,HERE可以计算用于安全性敏感部分的校验值并且经安全通信会话把校验值发送到SERE。一旦接收到校验值,SERE就可以比较该校验值与登记的校验值。如果这两个值相等,则SERE可以通过经安全通信会话向HERE发送验证消息来验证安全性敏感部分。
在本发明的一种或多种实施例中,如果登记的校验值在用于安全性敏感部分的安全存储元件中还不存在,则计算并存储新登记的校验值。首先,HERE可以为安全性敏感部分计算新的校验值并且把该校验值经安全通信会话发送到SERE。接下来,SERE可以在安全存储元件中登记并存储新的校验值并且把一个消息发送回到HERE,以便确认登记。在本发明的一种或多种实施例中,新的校验值是在应用执行过程中当退出安全性敏感部分时登记的。
在本发明的一种或多种实施例中,在分层体系架构中,校验值可以由SERE计算和/或可以基于安全性敏感部分中经安全通信会话发送到SERE的子部分来计算。以这种方式,可以对照新登记的校验值来执行对安全性敏感部分和/或通过安全性敏感部分访问的安全性敏感对象的后续验证。
在步骤320,在验证之后执行安全性敏感部分。根据本发明的各种实施例中,安全性敏感部分的执行可以由SERE或HERE执行。如果安全性敏感部分包括任何特定于SE的代码,则SERE可以用于执行这种代码。相反,特定于HERE的代码可以由HERE执行。
在一个例子中,移动设备的用户把订户识别模块(SIM)卡插入移动设备中。一旦通电,移动设备就执行驻留在SIM卡上的JavaCardTM2运行时环境(JC2RE)。在这个时候,直到到从用户获得口令,SIM卡都是锁定的并且不能从在移动设备上执行的应用访问。
继续这个例子,随后主机设备提示用户输入口令,以便解锁SIM卡。一旦解锁了SIM卡,SIM卡上的JC2RE就生成口令或者独立的一次性密钥值并且把它存储在要执行的HERE的(SIM卡上的)代码中。然后,主机设备从SIM卡检索要执行的HERE的代码。在这个例子中,在启动之后,主机上(正在执行的)HERE随后从其自己的代码中检索(具有有限可用时间的)一次性密钥值并且用它来协商与JC2RE的会话密钥,以便在HERE和JC2RE之间启用安全通信会话。
继续这个例子,HERE请求驻留在SIM卡中的HERE的加密地EEPROM图像的拷贝。该加密的EEPROM图像经安全通信会话从JC2RE发送到在移动设备上执行的HERE。加密的EEPROM图像高速缓存在移动设备的RAM中并且执行平台复位。
继续这个例子,在平台复位后,安全通信会话重新建立并且一组应用由HERE在主机设备上执行。在应用执行过程中,高速缓存的解密和加密由HERE执行。HERE还执行以下任务:
a.它把对密码API、Java Card2兼容的对象的调用委托给JC2RE
b.当进入敏感部分(安全注解的对象或方法)时,它把该部分发送到JC2RE,用于对照登记的CRC/摘要校验值进行检查
c.当退出敏感部分(安全注解的对象或方法)时,它把该部分发送到JC2RE,用于进行CRC/摘要校验值登记
d.当执行单项原子更新或者提交关于持久性对象的事务时,它把对应的变化日志发送到JC2RE
e.在预先确定的安全性检查点或者在有JC2RE请求时,它可以发送预先确定或随机确定的HERE代码或应用代码的部分,用于对照SIM卡上所存储的EEPROM图像或校验值进行错误检查。
继续这个例子,在退出之前,HERE经安全通信会话把EEPROM图像的高速缓存(或者对高速缓存的一组变化)发送到JC2RE。然后,JC2RE检查高速缓存的EEPROM图像的所有敏感性部分并且在SIM卡上加密并存储高速缓存的EEPROM图像(或者对现有的EEPROM图像应用变化)。如果在移动设备下次启动时EEPROM图像被标记为失步,则SIM卡被阻塞。
不管所使用的平台如何,本发明的实施例实际上可以在任何类型的移动设备上实现。在本发明的一种或多种实施例中,移动设备(400)包括提供用户界面的任何便携式设备。移动设备的例子可以包括,但不限于,蜂窝电话、个人数字助理、个人通信器、寻呼机、智能电话或者任何其它计算设备。例如,如图4中所示,移动设备(400)包括处理器(402)、存储器(404)、存储设备(406)、订户识别模块(SIM)卡(408)、扬声器(429)、接收器(428)、键盘(424)、声音记录器(426)、显示设备(420)、照相机(422)和天线(419)。
移动设备(400)包括一个或多个处理器(402)(诸如中央处理单元(CPU)、集成电路、硬件处理器等)、关联的存储器(404)(例如,RAM、高速缓存存储器、闪存存储器等)、存储设备(406)(例如,硬盘、诸如光盘驱动器或数字视频盘(DVD)驱动器的光盘驱动器、闪存记忆棒等)、SIM卡(408)及当今移动设备(未示出)典型的许多其它元件和功能性。移动设备(400)可以包括输入装置和输出装置,诸如键盘(424)、接收器(428)和/或显示设备(例如,液晶显示屏)(420),该显示设备允许用户输入和/或显示包括数字、字母和其它字符、图像或其它媒体类型的击键。其它的输入设备可以包括照相机(422)、声音记录器(426)和/或其它数据记录机制。本领域技术人员将认识到,这些输入和输出装置可以采取现在已知或以后开发的其它形式。利用本发明的实施例,消费者可以利用移动设备(400)启动电子资金转账。
移动设备(400)可以经天线(419)或其它网络接口连接(未示出)连接到网络(例如,局域网(LAN)、诸如互联网的广域网(WAN)或者其它相似类型的网络)。在本发明的一种或多种实施例中,网络连接可以通过无线基础设施(未示出)来促进,包括合作的一个或多个收发器,以方便到无线设备的无线通信。无线基础设施可以包括一个或多个路由器、交换机、微波链路、基站、光纤或者其它相似的联网硬件或软件组件。例如,无线基础设施可以是寻呼网络、蜂窝网络等。在本发明的一种或多种实施例中,无线基础设施可以关联从移动设备(400)接收到的任何消息和移动设备(400)的移动设备标识符。
在本发明的一种或多种实施例中,网络连接可以由硬连线的或其它类似的连接来促进。例如,网络连接可以涉及与另一个移动设备、打印机制、扫描仪或记录系统的硬连线连接或者短程无线连接技术。
不管所使用的平台,本发明的实施例实际上可以在任何类型的计算机上实现。例如,如图5中所示,计算机系统(500)包括一个或多个处理器(502)(诸如中央处理单元(CPU)、集成电路、硬件处理器等)、关联的存储器(504)(例如,RAM、高速缓存存储器、闪存存储器等)、存储设备(506)(例如,硬盘、诸如光盘驱动器或数字视频盘(DVD)驱动器的光盘驱动器、闪存记忆棒等)及当今的计算机(未示出)典型的许多其它元件和功能性。计算机系统(500)还可以包括输入装置,诸如键盘(508)、鼠标(510)或者麦克风(未示出)。另外,计算机系统(500)可以包括输出装置,诸如监视器(512)(例如,液晶显示器(LCD)、等离子显示器或者阴极射线管(CRT)监视器)。计算机系统(500)可以经网络接口连接(未示出)连接到网络(514)(例如,局域网(LAN)、诸如互联网的广域网(WAN)或者任何其它类型的网络)。本领域技术人员将认识到,存在许多不同类型的计算机系统,并且以上提到的输入和输出装置可以采取其它形式。总的来说,计算机系统(500)包括至少实践本发明实施例必需的最低限度的处理、输入和/或输出装置。
另外,在本发明的一种或多种实施例中,以上提到的计算机系统(500)的一个或多个元件可以位于远端位置并且经网络连接到其它元件。另外,本发明的实施例可以在具有多个节点的分布式系统上实现,其中本发明的每一部分(例如,以上讨论过的图1的安全存储元件(115)、主机设备(100)、托管的执行运行时环境(105)、持久性存储器图像(125)等)可以位于分布式系统中的不同的节点上。在本发明的一种实施例中,节点对应于计算机系统。作为替代,节点可以对应于具有关联的物理内存的处理器。作为替代,节点可以对应于具有共享内存和/或资源的处理器或者处理器的微内核。另外,执行本发明实施例的计算机可读程序代码形式的软件指令可以暂时或永久性地存储在非暂时性计算机可读存储介质上,诸如致密盘(CD)、磁盘、磁带、存储器或者任何其它有形的计算机可读存储设备。
本发明的一种或多种实施例具有以下一个或多个优点。通过在连接到安全存储元件的非安全主机设备上执行托管的执行运行时环境,有可能利用安全存储元件或者驻留在安全存储元件中的SERE的一个或多个安全性特征。因而,可以让设计人员获得对主机设备更大程度的选择,其中由安全存储元件提供附加的安全性。
此外,通过利用驻留在安全存储元件上的SERE执行主机应用的安全性敏感部分,可以利用一个或多个特定于SE的安全性特征。因而,非安全主机设备的处理能力可以在不危及SERE的一个或多个特定于SE的安全性特征的情况下被使用。
此外,通过在会话变化日志中维护对持久性存储器高速缓存的变化并且在预定义的时刻(例如,当平台复位时)把该变化应用到持久性存储器图像,系统可以减少在变化应用期间中断发生并损坏持久性存储器图像的可能性。
此外,在会话变化日志中记录事务变化日志和单项原子变化而不是立即应用它们可以减少对持久性存储器图像的访问次数并且可以提高性能。
虽然本发明已经参考有限数量的实施例进行了描述,但是受益于本公开内容的本领域技术人员将认识到可以设计不背离本文所公开的发明范围的其它实施例。相应地,本发明的范围应当只由所附权利要求来限定。

Claims (23)

1.一种用于执行应用的方法,包括:
经包括计算机处理器的主机设备访问安全存储元件;
由计算机处理器执行在主机设备上的托管的执行运行时环境HERE;
识别HERE在安全存储元件中的持久性存储器图像;
由计算机处理器利用HERE执行应用;及
基于应用的执行,对持久性存储器图像应用第一多个变化。
2.如权利要求1所述的方法,还包括:
执行驻留在安全存储元件中的安全元件运行时环境SERE;及
启动HERE和SERE之间的安全通信会话,其中执行应用进一步由SERE执行,并且其中对持久性存储器图像应用第一多个变化是由SERE执行的。
3.如权利要求2所述的方法,还包括:
由HERE并且经安全通信会话,从安全存储元件获得持久性存储器图像;及
在执行应用之前在主机设备中创建持久性存储器图像的高速缓存,其中在应用的执行期间对高速缓存做出第一多个变化。
4.如权利要求3所述的方法,其中对持久性存储器图像应用第一多个变化包括:
维护对应于高速缓存的变化日志;
在应用的执行期间,在变化日志中存储对所述高速缓存的第一多个变化;
经安全通信会话并且在执行应用之后,把变化日志发送到SERE;及
由SERE把第一多个变化应用到持久性存储器图像。
5.如权利要求3或4所述的方法,还包括:
在把第一多个变化应用到持久性存储器图像之后重新执行应用;
在重新执行应用的同时,把对高速缓存的第二多个变化存储到驻留在安全存储元件中的会话变化日志中,其中第二多个变化作为一系列幂等条目存储在会话变化日志中;
在安全存储元件中创建持久性存储器图像的拷贝;
启动把第二多个变化应用到持久性存储器图像的拷贝的过程;
检测该过程的中断;及
响应于检测到中断,把第二多个变化重新应用到持久性存储器图像的拷贝。
6.如权利要求3或4所述的方法,还包括:
在把第一多个变化应用到持久性存储器图像之后重新执行应用;
在重新执行应用的同时,把对高速缓存的第二多个变化存储到驻留在安全存储元件中的会话变化日志中,
在安全存储元件中创建持久性存储器图像的多个页的拷贝;
把第二多个变化应用到所述多个页的拷贝;及
在应用第二多个变化之后,删除会话变化日志和所述多个页的拷贝。
7.如权利要求2至6中任何一项所述的方法,其中执行应用还包括:
识别应用的安全性敏感部分;
为安全性敏感部分计算校验值;
生成该校验值与安全存储元件中所存储的登记的校验值的比较,其中该校验值与登记的校验值相等;
由SERE基于比较来验证安全性敏感部分;及
在验证安全性敏感部分之后执行该安全性敏感部分。
8.如权利要求7所述的方法,其中安全性敏感部分包括密码计算。
9.如前面任何一项权利要求所述的方法,还包括:
为应用指定持久性存储器图像的一部分,其中第一多个变化应用到指定的部分。
10.如前面任何一项权利要求所述的方法,其中第一多个变化包括对持久性对象的单项原子变化,并且其中第一多个变化存储在驻留在安全存储元件中的会话变化日志中。
11.如前面任何一项权利要求所述的方法,其中访问安全存储元件包括:
从主机设备的用户获得安全性凭证;及
基于安全性凭证来认证用户。
12.一种计算机程序,包括用于由一个或多个处理器执行的机器可读指令,其中所述指令使一个或多个处理器执行前面任何一项权利要求所述的方法。
13.一种计算机可读存储介质,包含权利要求12所述的计算机程序。
14.一种系统,配置为执行权利要求1至11中任何一项所述的方法。
15.一种用于执行应用的系统,包括:
包括计算机处理器的主机设备;
安全存储元件,可操作地连接到主机设备并且配置为认证主机设备的用户以访问安全存储元件;及
托管的执行运行时环境HERE,其在计算机处理器上执行并且配置为:
识别HERE在安全存储元件中的持久性存储器图像;及
执行应用,其中第一多个变化基于应用的执行而应用到HERE的持久性存储器图像。
16.如权利要求15所述的系统,还包括:
驻留在安全存储元件中并且在计算机处理器上执行的安全元件运行时环境SERE,其中应用是利用SERE执行的并且其中对持久性存储器图像应用第一多个变化是由SERE执行的,
其中HERE进一步配置为:
在认证用户之后,启动HERE和SERE之间的安全通信会话。
17.如权利要求16所述的系统,其中HERE进一步配置为:
经安全通信会话,从安全存储元件获得持久性存储器图像;及
在执行应用之前在主机设备中创建持久性存储器图像的高速缓存,其中在应用的执行期间对高速缓存做出第一多个变化。
18.如权利要求17所述的系统,其中HERE进一步配置为:
维护对应于高速缓存的变化日志;
在应用的执行期间,把对高速缓存的第一多个变化存储到变化日志中;及
经安全通信会话并且在执行应用之后,把变化日志发送到SERE,其中第一多个变化由SERE应用到持久性存储器图像。
19.如权利要求17或18所述的系统,其中HERE进一步配置为重新执行应用,并且其中SERE进一步配置为:
在重新执行应用的同时,把对高速缓存的第二多个变化存储到驻留在安全存储元件中的会话变化日志中;
在安全存储元件中创建持久性存储器图像的拷贝;
启动把第二多个变化应用到持久性存储器图像的拷贝的过程;
检测该过程的中断;及
响应于检测到中断,删除持久性存储器图像的拷贝。
20.如权利要求17或18所述的系统,其中HERE进一步配置为重新执行应用,并且其中SERE进一步配置为:
在重新执行应用的同时,把对高速缓存的第二多个变化存储到驻留在安全存储元件中的会话变化日志中,
在安全存储元件中创建持久性存储器图像的拷贝;
把第二多个变化应用到持久性存储图像的拷贝;及
在把第二多个变化应用到持久性存储器图像的拷贝之后,删除会话变化日志和持久性存储器图像的拷贝。
21.如权利要求15至20中任何一项所述的方法,其中执行应用进一步包括:
识别应用的安全性敏感部分;
为安全性敏感部分计算校验值;
生成该验值与安全存储元件中所存储的登记的校验值的比较,其中校验值与登记的校验值相等;
由SERE基于比较来验证安全性敏感部分;及
在验证安全性敏感部分之后执行安全性敏感部分。
22.一种存储用于执行应用的多条指令的非暂时性计算机可读存储介质,这多条指令包括以下功能性:
经主机设备访问安全存储元件;
在主机设备上执行托管的执行运行时环境(HERE);
识别安全存储元件中HERE的持久性存储图像;
利用HERE执行应用;及
基于应用的执行,把第一多个变化应用到持久性存储器图像。
23.如权利要求22所述的非暂时性计算机可读存储介质,其中所述多条指令进一步包括以下功能性:
执行驻留在安全存储器元件中的安全元件运行时环境SERE;及
启动HERE和SERE之间的安全通信会话,其中执行应用进一步由SERE执行,并且其中对持久性存储器图像应用第一多个变化是由SERE执行的。
CN201280031783.9A 2011-06-30 2012-06-20 安全寄存执行体系架构 Active CN103649964B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/174,508 US8543841B2 (en) 2011-06-30 2011-06-30 Secure hosted execution architecture
US13/174,508 2011-06-30
PCT/US2012/043204 WO2013003131A1 (en) 2011-06-30 2012-06-20 A secure hosted execution architecture

Publications (2)

Publication Number Publication Date
CN103649964A true CN103649964A (zh) 2014-03-19
CN103649964B CN103649964B (zh) 2016-10-19

Family

ID=46466867

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280031783.9A Active CN103649964B (zh) 2011-06-30 2012-06-20 安全寄存执行体系架构

Country Status (5)

Country Link
US (1) US8543841B2 (zh)
EP (1) EP2727040B1 (zh)
JP (1) JP5777810B2 (zh)
CN (1) CN103649964B (zh)
WO (1) WO2013003131A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107567629A (zh) * 2015-03-19 2018-01-09 英特尔公司 在可信执行环境容器中的动态固件模块加载器
CN108040507A (zh) * 2015-06-10 2018-05-15 迈可菲有限责任公司 物联网领域中的哨兵装备

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8543841B2 (en) * 2011-06-30 2013-09-24 Oracle International Corporation Secure hosted execution architecture
US20130166448A1 (en) * 2011-12-27 2013-06-27 Infosys Limited Financial transfers from mobile devices
US10891599B2 (en) * 2012-09-12 2021-01-12 Microsoft Technology Licensing, Llc Use of state objects in near field communication (NFC) transactions
FR3002398B1 (fr) * 2013-02-18 2015-04-03 Oberthur Technologies Procede de creation d'un profil dans un domaine de securite d'un element securise
US10055253B2 (en) * 2014-03-25 2018-08-21 Mellanox Technologies, Ltd. Reducing processor loading during housekeeping operations
CN104077533B (zh) * 2014-07-17 2017-09-15 北京握奇智能科技有限公司 一种操作敏感数据的方法和设备
CN106919494B (zh) * 2015-12-25 2020-07-17 阿里巴巴集团控股有限公司 安卓应用日志的实现方法和装置
EP3293656A1 (en) * 2016-09-13 2018-03-14 Gemalto Sa Method for controlling access to a trusted application in a terminal
CN109670728B (zh) * 2018-12-29 2021-03-16 武昌船舶重工集团有限公司 一种基于数据库的船舶设计质量信息管理系统
US11513815B1 (en) 2019-05-24 2022-11-29 Hiro Systems Pbc Defining data storage within smart contracts
US10699269B1 (en) * 2019-05-24 2020-06-30 Blockstack Pbc System and method for smart contract publishing
US11657391B1 (en) 2019-05-24 2023-05-23 Hiro Systems Pbc System and method for invoking smart contracts

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004003861A1 (en) * 2002-07-01 2004-01-08 Sospita As Process for compiling and executing software applications in a multi-processor environment
US6954754B2 (en) * 2001-04-16 2005-10-11 Innopath Software, Inc. Apparatus and methods for managing caches on a mobile device
EP2015212A1 (en) * 2007-06-29 2009-01-14 Axalto SA Portable mass storage device with hooking process
US20100235647A1 (en) * 2009-03-12 2010-09-16 Broadcom Corporation Hardware Security for Software Processes
CN102035877A (zh) * 2009-10-07 2011-04-27 捷讯研究有限公司 管理由一组移动设备共享的列表中的项的系统和方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1303802B1 (en) 2000-07-25 2013-01-16 Rovi Solutions Corporation System and method of verifying the authenticity of dynamically connectable executable images
US20020156863A1 (en) * 2001-04-23 2002-10-24 Luosheng Peng Apparatus and methods for managing caches on a gateway
US7406699B2 (en) * 2003-04-02 2008-07-29 Microsoft Corporation Enhanced runtime hosting
US7900200B1 (en) * 2006-06-16 2011-03-01 Oracle America, Inc. Persistence system for servlet-based applications on resource-constrained devices
US8782801B2 (en) 2007-08-15 2014-07-15 Samsung Electronics Co., Ltd. Securing stored content for trusted hosts and safe computing environments
US8595491B2 (en) * 2008-11-14 2013-11-26 Microsoft Corporation Combining a mobile device and computer to create a secure personalized environment
KR101049718B1 (ko) * 2008-12-29 2011-07-19 에스케이 텔레콤주식회사 소프트웨어 분리 실행 방법, 장치 및 컴퓨터로 읽을 수 있는 기록매체
US8543841B2 (en) * 2011-06-30 2013-09-24 Oracle International Corporation Secure hosted execution architecture

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6954754B2 (en) * 2001-04-16 2005-10-11 Innopath Software, Inc. Apparatus and methods for managing caches on a mobile device
WO2004003861A1 (en) * 2002-07-01 2004-01-08 Sospita As Process for compiling and executing software applications in a multi-processor environment
EP2015212A1 (en) * 2007-06-29 2009-01-14 Axalto SA Portable mass storage device with hooking process
US20100235647A1 (en) * 2009-03-12 2010-09-16 Broadcom Corporation Hardware Security for Software Processes
CN102035877A (zh) * 2009-10-07 2011-04-27 捷讯研究有限公司 管理由一组移动设备共享的列表中的项的系统和方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107567629A (zh) * 2015-03-19 2018-01-09 英特尔公司 在可信执行环境容器中的动态固件模块加载器
CN107567629B (zh) * 2015-03-19 2022-01-18 英特尔公司 在可信执行环境容器中的动态固件模块加载器
CN108040507A (zh) * 2015-06-10 2018-05-15 迈可菲有限责任公司 物联网领域中的哨兵装备
US10742624B2 (en) 2015-06-10 2020-08-11 McAFEE, LLC. Sentinel appliance in an internet of things realm
CN108040507B (zh) * 2015-06-10 2022-12-02 迈克菲有限责任公司 物联网领域中的哨兵装备

Also Published As

Publication number Publication date
WO2013003131A1 (en) 2013-01-03
EP2727040A1 (en) 2014-05-07
US20130007470A1 (en) 2013-01-03
CN103649964B (zh) 2016-10-19
EP2727040B1 (en) 2018-11-28
JP5777810B2 (ja) 2015-09-09
JP2014524088A (ja) 2014-09-18
US8543841B2 (en) 2013-09-24

Similar Documents

Publication Publication Date Title
CN103649964B (zh) 安全寄存执行体系架构
US10742427B2 (en) Tamper-proof secure storage with recovery
CN112074836A (zh) 通过可信执行环境保护数据的设备和方法
CN1801091B (zh) 用可信处理模块安全地引导计算机的系统和方法
US7389536B2 (en) System and apparatus for limiting access to secure data through a portable computer to a time set with the portable computer connected to a base computer
JP4981051B2 (ja) ライセンスに従う製品の挙動変更
Altuwaijri et al. Android data storage security: A review
CN107679393B (zh) 基于可信执行环境的Android完整性验证方法和装置
CN107003866A (zh) 来自加密模板的加密虚拟机的安全创建
EP3610607B1 (en) Cryptographic key management based on identity information
CN108604274A (zh) 安全片上系统
EP2759955A1 (en) Secure backup and restore of protected storage
CN107004080A (zh) 环境感知安全令牌
CN105453102A (zh) 用于识别已泄漏的私有密钥的系统和方法
JP5981035B2 (ja) ハードウェアによるアクセス保護
KR20180013854A (ko) 전자 디바이스의 무결성을 검증하기 위한 시스템 및 방법
WO2013107362A1 (zh) 一种保护数据的方法和系统
US9258119B2 (en) Trusted tamper reactive secure storage
CN101983375A (zh) 将密码模块绑定到平台
US20080278285A1 (en) Recording device
US11228421B1 (en) Secure secrets to mitigate against attacks on cryptographic systems
Ling et al. Secure boot, trusted boot and remote attestation for ARM TrustZone-based IoT Nodes
CN102650944A (zh) 一种操作系统安全引导装置及引导方法
CN107292176A (zh) 用于访问计算设备的可信平台模块的方法和系统
CN113168480A (zh) 基于环境因子的可信执行

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1192037

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1192037

Country of ref document: HK