CN101300583B - 用于可信赖移动电话的简单可伸缩和可配置安全启动 - Google Patents

用于可信赖移动电话的简单可伸缩和可配置安全启动 Download PDF

Info

Publication number
CN101300583B
CN101300583B CN2006800405232A CN200680040523A CN101300583B CN 101300583 B CN101300583 B CN 101300583B CN 2006800405232 A CN2006800405232 A CN 2006800405232A CN 200680040523 A CN200680040523 A CN 200680040523A CN 101300583 B CN101300583 B CN 101300583B
Authority
CN
China
Prior art keywords
event
certificate
authorized
security context
event certificate
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.)
Active
Application number
CN2006800405232A
Other languages
English (en)
Other versions
CN101300583A (zh
Inventor
L·塔尔卡拉
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.)
Nokia Technologies Oy
Original Assignee
Nokia Oyj
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 Nokia Oyj filed Critical Nokia Oyj
Publication of CN101300583A publication Critical patent/CN101300583A/zh
Application granted granted Critical
Publication of CN101300583B publication Critical patent/CN101300583B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

提供用于使用安全启动框架来启动系统的方法、设备、系统和计算机程序产品。具体地,提供具有不限数量的授权启动配置的安全启动机制(即,强制仅授权的程序和/或事件在特定的平台上执行的机制),同时仅需要最少量的安全的/机密的存储器。安全启动机制进一步提供运行时间和管理功能性的分隔,这允许其他的授权机制被稍后插入。此外,授权的安全启动配置(即,安全启动状态的定义)可以保持在不安全的存储器中,例如系统盘(例如,闪存)。最后,公开的安全启动机制具有其他益处,因为其建立在现有的TCG技术上,这使得其需要最小限度的实现,在该实现中TCG技术被实施。

Description

用于可信赖移动电话的简单可伸缩和可配置安全启动
背景技术
一般地,为了提供安全性,现有的启动框架通常在不可变的存储器内放置公钥和用于强制执行的可信根。接着它们要求系统从其(例如,操作系统)启动的任何映像使用对应于公钥的私钥以数字签名进行了签名。公钥和私钥是全局的。
该系统的缺陷在于其是不灵活的。其不允许启动进程的精细控制,并且不能适应于与第三方管理系统一起工作,因为不能在设备上安全地对新的映像/事件授权。另外,映像不是设备专用的。例如,可将一个映像从一个设备传输到另一个设备并且仍由同一个签名来验证,因为尽管映像已经被授权在一个设备上运行,但签名也将在另一个设备上验证该映像。
由Siani Pearson等人在“Trusted Computing Platforms:TCPATechnology in Context”(ISBN 0-13-009220-7)(“[TPCA]”)中简要地介绍了使用所谓设备完整性寄存器的基于TCG技术的安全启动机制。总体上,在[TPCA]中介绍的机制是受限的,因为其既不可伸缩,也不灵活。该机制既不允许启动对进程的精细控制,也不允许指定大量的安全配置。另外,TCG需要平台识别信息不被放置在平台配置寄存器(PCR)中(以下讨论)。其中当遵照该要求时,在[TCPA]中提出的解决方案不允许将安全启动配置绑定到各个系统。
因此存在这样的一种需要,即一种创建改进的安全启动机制的方法,该机制是可配置的并且简单的。特别地,需要在设置中创建此类安全启动机制,在该设置中使用可信赖计算组织(TCG)技术(例如,可信赖平台模块(TPM))。
发明内容
总体而言,本发明的示例性实施方式提供对公知现有技术的改进,其中通过提供用于向移动设备(例如蜂窝电话、个人数字助理(PDA)、个人计算机(PC)、膝上型计算机、寻呼机等)添加简单、可伸缩、可配置和安全的启动机制的装置,这些移动设备可以已经包含以可信赖的方式来处理敏感信息(例如,密码密钥)和/或测量系统状态和历史的特征。此类特征可包括由TCG在2003年10月的TCG“TPM Main Part 1:Design Principles Version 1.2Revision62”中规定的那些特征,其可在https://www.trustedcomputinggroup.org/downloads/tpmwg-mainrev62 Part1_Design_Principles.pdf(“[TPM1]”)处获得;在2003年10月的TCG“TPM Main Part 2:TPM Structures Specification Version 1.2Revision 62”中规定的那些特征,其可在https://www.trustedcomputinggroup.org/downloads/tpmwg-mainrev62_ Part2_TPM_Structures.pdf;(“[TPM2]”)处获得;以及在2003年10月的TCG“TPM Main Part 3:Commands Specification Version 1.2Revision 62”中规定的那些特征,其可在https://www.trustedcomputinggroup.org/downloads/tpmwg-mainrev62 _Part3_Commands.pdf(“[TPM3]”)处获得。
不像当前已知的安全启动机制,本发明的示例性实施方式提供一种安全启动机制(即,强制仅认证的程序和/或事件运行在特定的平台上的机制),该安全启动机制具有不限数量的授权启动配置,而同时仅需要最小量的安全/机密存储器。示例性实施方式另外提供运行时和管理功能性的分隔,其允许其他的授权机制可以稍后插入。此外,根据示例性实施方式,授权的安全启动配置(即,安全启动状态的定义)可以被保持在不安全的存储器中,例如系统盘(例如,闪存)。本发明的示例性实施方式具有另外的益处,因为它们基于现有的TCG技术构建,使得它们在实施TCG技术中需要最小限度的实现。
根据本发明的一个方面,提供一种用于使用安全启动框架来启动系统的方法。根据一个示例性实施方式,系统包括计算引擎和操作在计算引擎内的安全环境,并且该安全环境与操作在该安全环境外的一个或多个程序、功能和资源隔离。该示例性实施方式的方法可包括:(1)执行位于安全环境外部的安全强制功能,所述安全强制功能被配置成确保仅授权的程序模块在该系统上执行;以及(2)如果在执行之前对至少一个程序模块进行了授权,则使用安全强制功能来执行所述程序模块。
在一个示例性实施方式中,执行安全强制功能可包括创建与安全强制功能的执行关联的事件,该事件包括与执行对应的代码,并且定位与事件关联的事件证书,其中该事件证书包括对事件的指示以及对其中事件被授权的系统状态的指示。执行安全强制功能可另外包括首先确定事件证书是否是可信的,并且接着至少部分地基于事件证书来确定事件是否被授权。最后,根据一个实施方式,如果事件证书被定位并且是可信的,并且事件被授权,则将控制转交给安全强制功能。
在另一个实施方式中,事件证书可另外包括密钥库绑定,其被配置成将事件证书绑定到安全环境,并且特别地,绑定到安全环境内的密钥库。在该示例性实施方式中,确定事件证书是否可信的步骤可包括访问密钥库并且至少部分地基于密钥库绑定来确定事件证书的完整性和真实性。
在另一个示例性实施方式中,方法可进一步包括确定系统的当前状态。根据该示例性实施方式,确定事件是否被授权的步骤可包括至少部分地基于系统的当前状态来确定事件是否被授权。
在一个示例性实施方式中,使用安全强制功能来执行至少一个程序模块的步骤可类似地包括创建与该程序模块的执行关联的事件并且该事件包括与该程序模块的执行对应的代码;定位与事件关联的事件证书,其中事件证书包括对事件的指示以及对其中事件被授权的系统状态的指示;确定事件证书是否是可信的;确定事件是否被授权;以及如果事件证书被定位并且是可信的,并且事件被授权,则执行该程序模块。
根据本发明的另一个方面,提供一种配置成使用安全启动框架来启动的设备。在一个示例性实施方式中,该设备包括计算引擎和操作在计算引擎内的安全环境并且与操作在该安全环境外的一个或多个程序、功能和资源隔离。该设备可另外包括处理器和与该处理器通信的存储器,其中存储器存储可由处理器执行的应用。该示例性实施方式的应用可以在执行时被配置成:(1)执行位于安全环境外部的安全强制功能并且将所述安全强制功能配置成确保仅授权的程序模块在该设备上执行;以及(2)如果在执行之前对至少一个程序模块进行了授权,则使用安全强制功能来执行所述程序模块。
根据本发明的另一个方面,提供一种配置成使用安全启动框架来启动的系统。在一个示例性实施方式中,系统包括操作在系统的安全环境外部的安全强制功能并且该系统被配置成确定程序模块是否被授权在系统上执行并且如果程序模块被授权,则执行该程序模块。
根据本发明的另一方面,提供一种用于使用安全启动框架来启动系统的计算机程序产品。一个示例性实施方式的系统包括计算引擎和操作在计算引擎内的安全环境并且与操作在该安全环境外的一个或多个程序、功能和资源隔离。该示例性实施方式的计算机程序产品包括至少一个计算机可读存储介质,该计算机可读存储介质具有存储在其中的计算机可读程序代码。在一个示例性实施方式中,计算机可读程序代码部分可包括:(1)第一可执行部分,用于执行位于安全环境外部的安全强制功能,所述安全强制功能被配置成确保仅授权的程序模块在该系统上执行;以及(2)第二可执行部分,用于如果在执行之前对至少一个程序模块进行了授权,则使用安全强制功能来执行所述程序模块。
根据本发明的另一个方面,提供一种用于使用安全启动框架来启动的设备。在一个示例性的实施方式中,该设备包括计算引擎和操作在计算引擎内的安全环境并且与操作在该安全环境外的一个或多个程序、功能和资源隔离。该示例性实施方式的设备可另外包括用于执行位于安全环境外部的安全强制功能的装置,所述安全强制功能被配置成确保仅授权的程序模块在该系统上执行;以及用于如果在执行之前对至少一个程序模块进行了授权,则使用安全强制功能来执行程序模块的装置。
附图说明
已经大体地描述了本发明,现在将参考不必按比例绘制的附图,并且在附图中:
图1是根据本发明的示例性实施方式的安全启动框架的框图;
图2是示出根据本发明的示例性实施方式的在实施安全启动进程的第一阶段时可以采取的步骤的流程图;
图3是示出根据本发明的示例性实施方式的在实施安全启动进程的第二阶段时可以采取的步骤的流程图;
图4是根据本发明的示例性实施方式的事件证书和事件授权的框图;
图5是能够根据本发明的示例性实施方式操作的移动设备的框图;
图6是根据本发明的示例性实施方式的与TCG兼容的事件授权和证书的框图;
图7示出根据本发明的示例性实施方式的强制功能的与TCG兼容的启动;以及
图8示出根据本发明的示例性实施方式的在与TCG兼容的环境中操作强制功能中可以采取的步骤。
具体实施方式
以下将参考附图来更全面地描述本发明,其中附图中示出本发明的一些但非所有的实施方式。事实上,这些发明可以以许多不同的形式来实现并且不应认为是对这里所提出的实施方式的限制;相反,提供这些实施方式从而本公开内容将满足可适用的法律要求。通篇,同样的编号指代同样的元件。
部分I:一般性的描述
安全启动框架
图1根据本发明的示例性实施方式提供安全启动框架的主要结构单元的图示,该安全启动框架可以实施在例如移动设备上,以便提供安全启动进程。如图所示,该架构本质上可包括计算引擎,该计算引擎大体上包括具有易失性或非易失性的存储器(例如,只读存储器(ROM)、随机存取存储器(RAM)、电可擦可编程ROM(EEPROM)、闪存存储器、硬盘等)、中央处理单元(CPU)以及本领域技术人员认为必要或有用的任意其他资源的通用计算机。在计算引擎内的是安全环境,其与位于或操作在该安全环境外部的程序、功能或资源隔离。如这里所用,术语“安全”(当用作修饰语时)指示修饰的程序、功能、存储器或其他的对象是不可变的和/或保密的。由TCG创建的安全环境是可信赖平台模块(TPM),其基本上是附加的芯片,该芯片可以与计算设备包括在一起以支持可信赖计算特征。在示例性实施方式中,隔离可以单独基于硬件,单独基于软件,或它们的某种组合。操作在计算引擎内的功能和程序可以调用在安全环境内操作的某些定义的功能,并且安全环境可与计算引擎内的程序共享CPU。然而,在共享CPU的情况下,当该CPU正在执行来自安全环境内的程序代码时,位于安全环境内的资源必须仅可由功能和程序来访问。在这种情况下,当共享CPU时,必须以这样的方式来实施隔离,即位于安全环境外的程序和功能不能够影响该安全环境内的资源和程序,除非通过明确定义的功能。
针对强制的可信根(RTE)被包括在安全环境中。RTE是整个系统内执行的第一个程序并且它必须是可信的,但其不需要是保密的。换句话说,尽管任何人可以看到RTE,但其必须被设置成使得没有人可以对其做出改变。为了确保真实性,应该使RTE是不可变的。在一个示例性实施方式中,这可以通过将RTE程序存储在只读存储器(ROM)中来完成。一般地,RTE的目的是确保在安全环境的外部执行安全强制功能(以下将详细描述)。
安全环境中也包括事件验证器,其基于事件证书和当前系统状态来检查事件是否被允许。一般地,事件是影响启动进程的安全性的事件的描述。特别地,事件是代表可影响布置在系统中的安全性的事件的代码。此类事件的例子可以是程序、设备驱动或操作系统的加载,或将系统置入到调试或维护模式中。在常见的情形中,事件是代码映像的加载和执行的编码代表。例如,事件可以是将要被执行的代码映像的密码散列(例如,安全散列算法1(SHA1)),可能具有例如“加载”的字符串前缀。在其中某些代码段被加载的情形中,代码(并且通常其配置)被包括在事件的语法中。然而,在其他情形中,例如进入到调试模式,事件可以由例如SHA1(“进入调试模式”)来表示。由于例如进入调试模式的事件将被记录在系统历史中,其将造成一组事件证书无法成为有效并且其也将造成加密数据(下面将讨论)不可解密。
事件证书是认证的数据结构,其允许在某个系统状态下执行某个事件,二者都被定义在证书内(参见图4和下面的相关描述)。一般地,期望事件证书绑定于安全环境的单个实例。
为了检查事件证书是否允许事件,事件验证器检查事件证书的真实性并且接着分析当前系统状态(如在系统历史中指示,下面将讨论)、事件和事件证书。如果允许事件,则控制经由事件记录器(下面将讨论)交回给强制功能。当不允许事件时,系统可以被停止(例如,关机)或可以通知强制功能不执行或不允许事件。在一个示例性实施方式中,是否允许事件的判定基于由事件验证器所使用的事件证书。通常以这样的方式来设置事件证书,从而仅允许授权的映像启动。例如,将要发生的未授权事件(即,存在不可信的事件证书)可以代表尝试启动未授权的操作系统或以未授权的方式来启动操作系统。
安全环境另外包括密钥库和系统历史。密钥库可以用于检查事件证书的真实性和完整性以及可能的事件授权。可以使用任何的消息认证机制来检查事件证书的真实性和完整性以及事件授权,该消息机制例如数字签名、消息认证码等,其可以用于认证事件。系统历史包含对当前系统状态和历史的表示。这是由事件记录器(下面将讨论)更新并且在当确定是否允许事件时由事件验证器来使用。
在本发明示例性的实施方式中,事件记录器也包括在安全环境中。事件记录器记录事件验证器已经允许的事件。事件也被记录进系统历史中,并且事件记录器将控制交回给强制功能。
在示例性的实施方式中,强制功能、事件证书仓库和事件管理器每个都位于安全环境的外部,而事件授权器可以位于安全环境内部(如图所示)或安全环境外部(未示出)。强制功能是运行在安全环境外部的程序,其在事件被创建之前确保使用事件验证器对它们进行授权。在将事件和事件证书传送到事件验证器以进行授权前,强制功能可以从事件证书仓库查找正确的事件证书。强制功能也可以处理来自安全环境(即,事件验证器和/或事件记录器)的返回并且遵守任何批准/拒绝的判定。在事件被接受的实例中,强制功能将控制交回给生成事件的调用方。可选地,当事件被拒绝时,强制功能可以确定停止正在生成事件的整个系统或子系统,或其可以与事件生成器一起来确保事件被中止。当生成事件时,可用于强制功能的选项取决于事件生成器和强制功能之间的协作等级。通常假设强制功能、RTE和事件证书确保仅与强制功能正确地协作的那些代码模块被执行。此外,当系统启动时,RTE确保仅正确动作的强制功能被启动。系统可以具有若干个强制功能,例如,一个用于操作系统,而一个用于虚拟机,例如Java。
在一个示例性实施方式中,事件证书仓库包括用于计算引擎内的事件证书的存储器。每个单独的事件证书可以由密钥库来认证,使得其可以存储在安全环境外部。强制功能和RTE可以接着访问事件证书仓库以便获得单独的事件证书。
在一个示例性实施方式中,事件授权器接受来自事件管理器的事件授权,验证它们是来自于可信的源,并且接着将它们传送到事件证书仓库以存储。事件授权器可通过咨询系统历史来检查由认证的事件管理器(例如,使用强制功能和事件证书仓库来批准)提供的事件授权。可选地,事件授权器可以检查已经由某些第三方使用例如数字签名或消息认证码来进行授权的事件授权。可以以这样的方式使密钥库用于将事件认证符绑定到安全环境,即当事件验证器通过RTE或强制功能来检查赋予它的事件时,可以稍后由密钥库来检查真实性和完整性。
根据本发明的示例性实施方式,事件管理器接收事件授权,检查它们是否是可信的,并且如果可信,则将它们传送到事件授权器,以便加入到事件证书仓库。事件管理器可以经由空中下载(OTA)设备管理协议(例如OMA设备管理)来接收事件授权。
尽管事件授权类似于事件证书,但是与事件证书不同,其不绑定到安全环境的单个实例。相比之下,事件授权可以绑定到例如第三方管理代理。在该情形下,事件管理器将检查事件授权并且使用事件授权器将其传输到事件证书。在一些实例中,事件授权也可以是有效的事件证书。
通用启动和管理进程
下面描述根据本发明的示例性实施方式的启动进程,其中使用上面讨论的安全启动机制框架。启动进程可以划分成两个阶段:(1)启动强制功能;和(2)在系统的整个有效期执行强制功能。
启动第一强制功能
参考图2,其提供了流程图,该流程图示出了当在根据本发明的一个示例性实施方式的启动进程的第一阶段内启动强制功能时采取的步骤。如图所示,进程开始于步骤201,其中计算引擎和安全环境加电。在步骤202中,系统历史(SH)被初始化以表示系统已经加电。接下来,在安全环境的上下文中执行RTE功能(步骤203和204)。
特别地,RTE首先检查将要被执行的强制功能,并且接着创建其执行的事件(例如,EF1_BOOT)(步骤203)。在步骤204中,RTE在事件证书仓库(EC)中查找对应于事件(EF1_BOOT)的事件证书(例如,EF1_CRED)。如果在EC中没有找到事件证书(EF1_CRED)(基于在步骤205中所做出的确定),系统启动被中止(步骤206)。相反,当在EC中找到事件证书(EF1_CRED)时,RTE将事件证书(EF1_CRED)传送到密钥库(KS)以确定事件证书是否是可信的(步骤207、208和209)。
如果事件证书(EF1_CRED)不是可信的,则系统启动再次被中止(步骤210)。可选地,当由KS认证了事件证书,事件验证器(EV)确定事件证书(EF1_CRED)是否授权给出在SH中提供的当前系统状态的事件(EF1_BOOT)(步骤211)。当事件(EF1_BOOT)没有被授权(即,其中EF1_CRED不允许EF1_BOOT处于当前的状态),在步骤212中系统启动被中止。可选地,当EF1_CRED(事件证书)是可信的(如在步骤209中所确定)并且允许EF1_BOOT(事件),则将控制交给事件记录器(ER),其将事件(EF1_BOOT)记录在SH中(步骤213)。最后,在步骤214中,ER将控制交给EF,并且安全环境内部的资源是不可访问的,直到执行安全环境。执行强制功能
强制功能,连同上面讨论的安全环境的元素确保仅启动这样的程序,其从强制功能正确地请求用于事件的授权。不执行此的程序必须被隔离,例如由操作系统来隔离,使得它们不能访问到可以影响计算环境的安全性或可信赖性的敏感资源。强制功能和操作系统可以使用标准的技术,例如虚拟存储器和CPU特权级,以确保不与强制功能协作的程序和代码访问不了敏感资源或功能。
当强制功能初始启动时(例如,以上述的方式),以一组程序来配置进行启动(例如,引导程序加载器或启动加载器、操作系统等)。强制功能接着负责针对每个加载生成事件并且执行影响安全启动的代码。图3提供根据本发明的示例性实施方式的流程图,其示出当加载和执行代码模块“X”、或执行事件“X”(例如进入调试模块)时可以采取的步骤。换句话说,图3示出启动进程的第二阶段,其示出在系统的整个有效期如何执行强制功能。
在步骤301中,强制功能(EF)首先生成用于加载和执行模块X的事件(例如,EV_X)。接下来,EF在事件证书仓库(EC)中查找对应于事件(EV_X)的事件证书(例如,X_CRED)(步骤302)。当没有找到事件证书(X_CRED)时,拒绝模块X的执行(步骤304,基于步骤303中做出的确定)。可选地,在EC中找到事件证书(X_CRED),进程进入到步骤305,其中EF将事件证书(X_CRED)传送到密钥库(KS)以确定事件证书是否是可信的(步骤306)。如果事件证书(X_CRED)不是可信的,则再次拒绝模块X的执行(步骤307)。
当KS确定事件证书(X_CRED)是可信的,则事件验证器(EV)检查事件证书是否授权给出在系统历史(SH)中提供的系统状态的事件(即,EV确定X_CRED是否授权给出该系统状态的EV_X)(步骤308)。如果事件证书(X_CRED)不允许给出该状态的事件(EV_X),则X的执行被拒绝(步骤309)。然而,当X_CRED是可信的(如在步骤306中所确定)并且其允许事件EV_X,则将控制交给事件记录器(ER),该事件记录器将事件(EV_X)记录在SH中(步骤310)。
在步骤311中,控制接着被交回给强制功能(EF),强制功能接着加载和执行模块X(步骤312)。EF可接着在另一事件需要授权时重新开始步骤301中的执行。当事件已经被拒绝(例如,步骤304、307或309中),如果EF不具有可用于执行代码的备用,则其将可能没有选择而自行关机,或开始等待未来的事件。当预计没有未来事件,EF可能再次没有选择而自行关机。有效地,这将意味着关闭系统或令其不可用。
管理事件证书
图4是根据本发明的示例性实施方式的事件证书410和事件授权420的框图。如图所示,事件证书410可包括事件先决条件域412、事件域414和密钥库(KS)绑定域416。在一个示例性实施方式中,事件域提供事件的定义。如上所述,事件可以是代码映像的加载和执行的编码表示(例如,将要被执行的代码映像的密码散列)。事件先决条件域描述了事件被允许的条件(例如,该事件仅在某些其他事件已经被执行的情况下才允许),并且在一个示例性实施方式中可以被集成进事件域。KS绑定域将事件证书和其内容绑定到密钥库。如上所讨论,这允许KS来检查事件证书的真实性和完整性。正如本领域技术人员将理解的,任意数量的协议和方法可以用于提供该绑定特征。
事件授权420主要在如何检查结构的真实性和完整性上不同于事件证书410。因为期望任何安全设备管理解决方案可以被部署用于此目的,事件授权的形式主要取决于事件管理器如何具体实现。例如,为了寻址(即,识别移动电话),一个系统可使用国际移动设备标识(IMEI)码来对设备寻址,另一个可使用私有代码。为了保护安全启动配置,一些系统可使用基于公钥基础设施(PKI)的数字签名,而另一个系统可使用存储在防篡改的存储器中的共享秘密。
可包括安全启动框架的移动设备
现在参考图5,其示出将从本发明的实施方式获益的一种类型的移动设备。特别地,图5示出移动设备,在该设备上能够操作上述的安全启动框架。然而,应该理解示出的和以下将描述的移动设备仅仅是将从本发明获益的一种类型的移动设备的示例,并且因此不应被视为限制本发明的范围。尽管示出并且将在下文为了示例而描述移动设备的若干实施方式,但其他类型的移动设备可以轻易地使用本发明的实施方式,例如个人数字助理(PDA)、寻呼机、膝上型计算机和其他类型的电子系统,包括移动、无线设备和固定、有线设备。
移动设备包括用于执行一个或多个根据本发明的示例性实施方式的功能的各种装置,包括在这里特别示出和描述的那些装置。然而,应该理解,在不脱离本发明的精神和范围的情况下,一个或多个实体可以包括用于执行一个或多个类似功能的可选装置。更具体地,例如,如图5中所示,除了天线12、移动设备10还包括发射器204、接收器206和装置,例如处理设备208(例如处理器、控制器等)其分别向发射器204提供信号并且从接收器206接收信号。这些信号包括根据可应用蜂窝系统的空中接口标准的信令信息以及用户语音和/或用户生成的数据。在这点上,可以利用一个或多个空中接口标准、通信协议、调制类型和接入类型操作移动设备。更特别地,移动设备能够根据任何数量的第二代(2G)、2.5G和/或第三代(3G)通信协议等来操作。另外,例如,移动设备能够根据任何数量的不同无线网络互联技术进行操作,这些无线网络互联技术包括蓝牙、IEEE 802.11 WLAN(或)、IEEE 802.16 WiMAX、超宽带(UWB)等。
应该理解,处理设备208(诸如处理器、控制器或其他计算设备)包括实现移动台的视频、音频和逻辑功能所需的电路,并且该处理设备208能够执行用于实现这里讨论的功能性的应用程序。例如,处理设备可以包括各种装置,这些装置包括数字信号处理器设备、微处理器设备以及各种模数转换器、数模转换器以及其他支持电路。移动设备的控制和信号处理功能根据这些设备的各自能力在它们之间进行分配。因此,该处理设备208还包括在调制和传输之前对消息和数据进行卷积编码和交织的功能。该处理设备可以额外地包括内部语音编码器(VC)208A,并且可以包括内部数据调制解调器(DM)208B。而且,处理设备208可以包括操作可以存储在存储器中的一个或多个软件应用的功能性。例如,控制器能够操作连接程序,诸如传统的Web浏览器。接着例如根据HTTP和/或无线应用协议(WAP),连接程序可以允许移动设备发射和接收Web内容。
移动设备还可以包括诸如用户接口的装置,该用户接口包括例如常规耳机或扬声器210、振铃器212、麦克风214、显示器216,所有的这些都连接到控制器208。允许移动设备接收数据的用户输入接口可包括允许移动设备接收数据的多个设备中的任意一个,例如小键盘218、触摸屏(未示出)、麦克风214或其他输入设备。在包括小键盘的实施方式中,小键盘可以包括常规数字(0-9)和相关键(#,*)以及用于操作移动台的其他键,并且可以包括全套的字母键或可以被激活以提供全套字母键的一组按键。尽管没有示出,但是移动台可包括电池,例如震动电池组,从而为操作移动台所需的各种电路提供电源,以及可选地提供机械振动作为可检测的输出。
移动设备还可包括诸如存储器之类的装置,该存储器例如包括订户身份模块(SIM)220、可移除用户身份模块(R-UIM)(未示出)等,其通常存储涉及移动订户的信息元素。除了SIM,移动设备可包括其他存储器。在这点上,移动设备可包括易失性存储器222,以及其他非易失性存储器224,其可以被嵌入和/或可以是可移除的。例如,其他非失性存储器可以被嵌入或可以是可移除的多媒体存储卡(MMC)、如Sony公司制造的存储棒、EEPROM,闪存、硬盘等。存储器可存储多个或大量移动设备所使用的信息和数据中的任意一个以实现移动设备的功能。例如,存储器可存储能够唯一地标识移动设备的标识符,例如国际移动设备识别(IMEI)码、国际移动订户识别(IMSI)码、移动设备综合业务数字网络(MSISDN)码等。存储器还可以存储内容。例如,存储器可以存储用于应用和其他计算机程序的计算机程序代码。例如,在本发明的一个实施方式中,存储器可以存储计算机程序代码,其用于执行事件授权器、事件验证器、事件记录器、针对强制的可信根、事件管理器和/或强制功能的功能性,如上面详细讨论的。
在示例性实施方式中,移动设备可另外包括用于实施这里所述的安全环境的隔离的安全环境。该隔离的安全环境可以使用专用的硬件、软件或硬件和软件的组合来实施。此类环境的例子包括由各个制造商(例如,Infineon和Atmel)构建的TPM或“安全模式”虚拟化技术,例如在ARM TrustZone解决方案中存在的。
主要结合移动通信应用来描述本发明的示例性实施方式的移动设备。然而,应该理解本发明的实施方式的移动设备可以结合移动通信行业内和移动通信行业外的各种其他应用来使用。例如,本发明的示例性实施方式的移动设备可结合有线和/或无线网络(例如,因特网)应用来使用。
部分II:示例性可兼容可信赖工作组织(TCG)的实施方式
下文提供本发明的示例性实施方式的描述,其中上述的安全启动框架实施在具有TCG式的特征的移动设备上,例如TCG可信赖平台模块(TPM)。
TCG定义的系统历史
一般地,TCG TPM使用一组平台配置寄存器(PCR)来测量系统的状态,该寄存器是包含在TPM中的160位寄存器。包含在TPM中的PCR的数目(例如,16或24)取决于实施的TPM的版本。每个PCR包含事件的安全散列算法1(SHA1),其可以使用所谓的TPM_Extend指令来更新。下文提供TPM_Extend指令的描述:
令PCR[]表示存储在TPM内的PCR数组(例如,PCR[0]是PCR寄存器0,PCR[1]是寄存器1并且依次类推)。令SHA1(x)表示比特串x的SHA1散列。令i为有效的PCR索引并且令ev为代表将要被记录的事件的160位值。令old=PCR[i]为PCR寄存器i的当前值。TPM_Extend向PCR[i]分配值SHA1(old‖ev),即,PCR[i]:=SHA1(old‖ev)。
假设SHA1函数是强加密散列函数。基于此,假设下面的两个属性:(1)假设PCR寄存器状态PCR[i]并且160比特值x,找到使得TPM_Extend将x分配给PCR[i]的值ev是不可行的;(2)找到这样的两个事件序列是不可行的,即通过以TPM_Extend()来对它们进行迭代,使得将相同的值分配给PCR寄存器的两个事件序列。
基于上述内容,这意味着一组PCR寄存器按照TPM_Extend操作(即,已经被记录的事件序列)来描述系统状态。意图在于由系统的不同方面生成或涉及系统的不同方面的事件将被扩展到不同的PCR,尽管这取决于系统软件。
与TCG兼容的事件、系统历史和事件证书
假设PCR寄存器的数量是n。安全启动框架内的对象现为:(1)系统历史是一组PCR寄存器(例如16或24);(2)事件是成对的(即,PCR索引i,160比特整数ev);(3)事件证书也是成对的-状态描述符和密钥库(KS)绑定;以及(4)事件授权是成对的,包括状态描述符和认证符。状态描述符是n个PCR寄存器值的数组PCR[]以及n个比较操作定义的数组PCR_CMP[]。PCR_CMP[i]对应于具有索引i的PCR。PCR_CMP[]的值可以是“相等”或“不关心”。
由于对前段落中所述的TPM_Extend()所进行的假设(例如,假设SHA1函数是强加密散列函数),所以没有必要将单独的事件先决条件存储在事件证书或认证符中,因为假设状态描述符标识了系统历史。
图6示出如上所讨论的与TCG兼容的事件证书和授权。
与TCG兼容的RTE、事件验证器和强制功能
事件证书仓库
假设事件包括对<PCR索引,160比特整数>,事件证书包括<状态描述符,KS绑定>,并且状态描述符包括如上所讨论的PCR数组、以及比较操作数组。EC_LOOKUP(事件,系统历史)操作试图找到授权事件证书。本质上,该过程模拟执行在PCR[]数组上的TPM_Extend()操作,并且接着基于PCR_CMP[]数组中的指示将结果与状态描述符PCR值进行比较。
在一个示例性实施方式中,EC_LOOKUP()以下文所述进行。首先,令事件为<i,事件>并且系统历史是大小为n的数组PCR[]。对于事件证书中的每个事件证书EC=<状态描述符,KS绑定>,执行下面的操作:(1)令EC中的状态描述符包括PCR值的数组SD_PCR[]以及比较操作的数组SD_CMP[];(2)创建临时数组TMP_PCR[]:=PCR[]作为当前系统历史的副本;(3)令TMP_PCR[i]:=SHA1(PCR[i]‖事件);(4)对于索引:=0到n-1,如果SD_CMP[索引]=“相等”,并且SD_PCR[索引]!=TMP_PCR[索引],则接着前进到下一个证书并且去往(1);以及(5)如果上述的检查没有造成到(1)的跳转,则返回证书EC。最终,如果没有更多的事件证书要检查并且没有返回匹配的一个,则返回失败。为了清楚,如果SD_CMP[索引]等于“相等”,那么在由事件启动(fire)后,状态描述符要求具有索引“index”的PCR以值SD_PCR[索引]结束。如果SD_CMP[索引]不等于“相等”,则意味着“不关心”的值(由于只有两种选择),并且因此具有索引“index”的PCR可以被略过以便前进到下一个。
强制功能的与TCG兼容的启动
下文根据本发明的一个示例性实施方式描述在TCG兼容方式下RTE可以如何启动强制功能(EF)。在图7中示出进程的步骤。一般地,RTE仅需定位合适的证书并且接着允许启动继续。
更具体地,当计算引擎和安全环境加电时,进程在步骤701中开始。接下来,系统历史(SH)被初始化并且所有的PCR值被设置成0(步骤702)。接着可在安全环境的上下文中执行RTE功能。特别地,在步骤703中,RTE创建代表EF的启动的事件EF 1BOOT。该事件例如可以是PCR索引0和与EF代码映像连接的串“boot”的SHA1散列,例如<0,SHA1(“boot”‖EF代码)>。
下面在步骤704中,RTE从SH查找PCR[]数组并且在步骤705中,查找事件证书EF1_CRED:=EC_LOOKUP(EF1_BOOT,PCR[])。如果EC_LOOKUP返回失败,则系统启动被中止(步骤707)。可选地,当找到EF1_CRED并且允许EF1_BOOT,则密钥库(KS)和KS绑定用于检查EF1_BOOT证书是可信的(步骤708)。如果事件证书是不可信的,则系统启动再次被中止(步骤710),并且RTE可从事件证书仓库(EC)移除该证书。当事件证书是可信的,则基于事件证书和系统状态来确定事件是否被允许(步骤711)。如果事件不被允许或不被授权,则系统启动在步骤712中被中止。然而,当找到的EF1_CRED是可信的时,并且允许EF1_BOOT,则控制被转交给事件记录器(ER),该事件记录器将EF1_BOOT记录在系统历史(SH)中(步骤713)。最后,在步骤714中,ER将控制转交给EF并且安全环境内的资源将不再可访问。
强制功能操作
一般地,本发明的示例性实施方式的强制功能(EF)以直接的方式来操作。然而,两个值得注意的点在于针对真实性的检查可以在事件验证器(EV)内执行,并且状态历史和状态描述符比较可以在安全环境外部(由EF)执行也可以在安全环境内部(由EV)执行。
下文根据本发明的示例性实施方式提供在操作EF中可采取的步骤。首先,在步骤801中,EF创建加载/执行模块X的事件(EV_X)。接下来,在步骤802中,EF从SH查找PCR[]数组。EF接着查找事件证书X_CRED:=EC_LOOKUP(EV_X,PCR[])(步骤803)。如果EC_LOOKUP返回失败,则拒绝X的执行(步骤805)。可选地,当找到X_CRED,EF将X_CRED传送到KS以检查X_CRED是否是可信的(步骤806)。如果X_CRED是不可信的,则X的执行将再次被拒绝(步骤808)。当由KS对X_CRED认证时,事件验证器(EV)检查事件证书是否允许EV_X(步骤809)。
为了检查事件证书(X_CRED)是否允许事件(EV_X),则可以实施下面的操作:令X_CRED中的状态描述符包括PCR值的数组SD_PCR[]以及比较操作的数组SD_CMP[];创建临时数组TMP_PCR[]:=PCR[]作为当前SH的副本;令TMP_PCR[i]:=SHA1(PCR[i]‖事件);对于索引:=0到n-1:如果SD_CMP[索引]=“相等”并且SD_PCR[索引]!=TMP_PCR[索引],则拒绝X的执行。为了清楚起见,因为在安全环境的外部执行EC_LOOKUP操作,除了是可信的以外,EV功能也必须检查事件证书授权事件。这意味着检查系统将从执行事件获得期望的状态。上述的循环如此执行并且基本上是EC_LOOKUP()原语内的功能性副本。假设X_CRED是可信的并且允许EV_X,则将控制转交给事件记录器(ER),其将EV_X记录在系统历史中(步骤811)。最后,ER将控制交回给EF(步骤812),并且EF加载和执行代码模块X(步骤813)。当下一事件需要授权时,EF返回到步骤801。
KS绑定和事件认证符
根据本发明的各种示例性实施方式,下文提供用于实施KS绑定和事件认证符的若干备选方案。
KS绑定
如上所述,假设本发明的示例性实施方式的KS绑定将事件证书仓库(EC)证书绑定到安全环境和密钥库的单个实例。这与事件授权中的认证符相反,其被假设将事件授权绑定到允许管理安全启动功能的具有特权的第三方。
用于提供KS绑定的一个备选方案是使用基于SHA1的密钥散列报文认证码(HMAC)以创建和验证KS绑定。在该示例性实施方式中,令(1)事件证书EC=<状态描述符,KS绑定>;以及(2)EC中的状态描述符包括PCR值的数组SD_PCR[]以及比较操作的数组SD_CMP[]。创建包括SD_PCR[]和SD_CMP[]的比特串。称该先后顺序为汇集MARSHAL(EC)。令HMAC_SHA1(key,string)包括使用比特串string上的密钥key计算的HMAC_SHA1()。令秘密密钥ROOT_EC_KEY是160比特的秘密。该密钥应该被秘密保存。EC的KS绑定现在可以是定义的HMAC_SHA1(ROOT_EC_KEY,MARSHAL(EC))。EC的真实性可以通过计算TMP:=HMAC_SHA1(ROOT_EC_KEY,MARSHAL(EC))并且接着比较TMP和EC中的KS绑定来验证。如果它们相等,则EC是真实的。
备选的KS绑定是基于数字签名的KS绑定。在该示例性实施方式中,令(1)对于任何的安全数字签名方案,Sign{SecretKey}(x)是x上基于公钥的数字签名操作;(2)Verify{PublicKey}(x,signature)是相应的验证操作;以及(3)如先前的段落定义MARSHAL(EC)。KS绑定现在可以被定义为Sign{Secretkey}(MARSHAL(ec))。验证将是Verify{PublicKey}(MARSHAL(ec),ks binding)。
在该方法中,不需要在安全环境内部存储秘密密钥,但公钥操作更为复杂并且昂贵。数字签名也往往在比特长度上比HMAC_SHA1消息认证码更长。
事件认证符
假设事件授权中的认证符将事件授权绑定到允许管理安全启动功能的具有特权的第三方。这与假设将EC证书绑定到安全环境和密钥库的单个实例的KS绑定是不同的。在架构层处的该解耦合是有意的,因为其允许独立于它们的寻址和密钥分发机制来插入任意第三方管理框架。
该段落根据本发明的一个示例性实施方式来描述如何使用该框架和基于TCG TPM的加密来实施任意的第三方机制。
在一个示例性实施方式中,TCG TPM允许将对数据的访问加密到平台的某种状态,其中利用类似于描述的事件证书中的状态描述符的机制来定义平台。加密可以通过令TPM加密数据并且接着将加密的数据绑定到状态描述符来执行。数据仅可在如果PCR[]数组匹配绑定到加密的数据的状态描述符时才可被启封(解密)。
存在有许多种方式来实际地实施管理/配置功能性。一些可能需要事件授权器位于安全环境内部(有效地组合事件管理器和事件授权器),而一些可能不需要。这通常意味着需要什么级别的防篡改来处理密钥库中的密钥。
该段落中的方法描述示例性的情况,其中事件管理器和事件授权器在安全环境的上下文的外部执行,但提供的TCG TPM的加密被用于确保密钥不会泄密。该段落使用术语事件授权器来描述事件管理器和事件授权器二者。在该情况下,安全环境包含在[TPM1][TPM2][TPM3]中所述的加密和密钥管理功能性。
对于每个安全启动管理系统X,假设在平台上存在下列内容:(1)代理AGENT_X,其可验证进入的事件授权和状态,以验证a)它们是否是对代理在其上执行的系统的寻找以及b)事件授权是否是有效的;以及(2)事件证书EV_AGENT_X,用于以定义的配置来执行该代理。另外假设存在仓库(事件授权仓库),其中未决的事件授权可以被放置在其中直到创建相应的事件证书,并且使用基于HMAC_SHA1的KS绑定,尽管其他系统将以类似的方式来工作。
根据一个示例性实施方式,在引导时,RTE必须检查事件授权仓库是否为空。如果其为空,则EF的启动如所述那样继续。如果事件授权仓库不为空,则RTE替代EF来执行事件授权器功能。为了执行事件授权功能,RTE必然需要有效的事件证书。
创建用于事件证书的有效KS绑定所需的秘密密钥(在该情况下为ROOT_EC_KEY)已经加密为(使用TPM_Seal)一组PCR值,这些值在事件授权器功能已经由RTE测量和执行并且所有的管理代理(EV_AGENT_X)已经由事件授权器加载后存在。如此,如果系统处于任意其他的状态,则TPM将不对其进行解密。称该加密对象为SEALED_EC_KEY。
在一个示例性实施方式中,事件授权器功能(EA)如下操作。首先,对于出现在平台上的每个EV_AGENT,EA执行并且加载这些代理。对于加载代理和它们的配置,必须存在有效的事件证书,并且测量每个加载。在该意义上,EA的功能非常类似于EF。安全环境中的PCR[]数组现在应该处于ROOT_EC_KEY被加密到的状态。EA现在使用SEALED_EC_KEY上的TPM_Unseal来启封ROOT_EC_KEY。
对于每个事件授权E_AUTH,下面的情况将发生:(1)EA查找进程E_AUTH所需的EV_AGENT_X;(2)EV_AGENT_X验证E_AUTH;(3)如果EV_AGENT_X返回E_AUTH是可信的并且是有效的,则EA通过以使用ROOT_EC_KEY创建的KS绑定来替代认证符字段,从E_AUTH创建事件证书。EA接着从存储器擦除ROOT_EC_KEY,并且重启系统和执行RTE。
系统允许任何密钥分发和寻址方法使用在EA代理中。事件证书和加密可以用于保护由EV_AGENT_X使用的任何验证密钥。
结论
如上所述,本发明的示例性实施方式提供一种安全启动机制,该安全启动机制是最低限度的、具有鲁棒性的、灵活的、可伸缩的并且简单的。该框架是最低限度的(并且因此具有成本效益),因为仅需要一个秘密(即,针对KS绑定)。此外,安全启动状态的定义可以保存在不安全的存储器中(例如,硬驱动器或闪存),并且秘密可以是针对对称密码的密钥;因此这造成其比基于公钥的方案更快。为了减小成本并且进一步最小化框架,在一个示例性实施方式中,事件授权和事件管理功能可以被保留不实施。结果仅在于不可能更新事件证书。
因为事件证书仓库(EC)位于安全环境外部,EC可以使用常规的备份机制来进行备份,消除了对任何额外的备份机制的需求。至少就这个原因而言,本发明的示例性实施方式的安全启动框架具有鲁棒性。此外,根据上述的示例性实施方式,安全启动框架的管理和运行时行为被解耦合。结果是,独立于安全环境的属性,可以使用任何的寻址和密钥分发框架、以安全的方式来执行管理。这导致框架比现有的框架更为灵活。有利地,示例性实施方式的安全启动框架也是可伸缩的,因为其可以被伸缩至处理任意量的被允许的配置以启动。最后,示例性的实施方式的框架是简单的,因为安全环境内所需的特征是低复杂度的。
启动进程的精细粒度也允许以密钥K来加密单独的事件证书。这将阻止它们的使用直到密钥K被分发到设备。这也可被实施以限制能够启动进入某些配置的人群数量。另外,因为系统允许事件证书本身在设备上是具体实现的,这就允许软件稍后被构建,该软件将允许用户来控制安全启动配置。用户例如可以试图配置系统,使得其不完全启动除非反病毒代理存在。最后,所提出的解决方案允许将单独的事件证书绑定到单个平台,而不需系统历史专用于单个的平台。这意味着在不需要损害匿名或隐私的情况下仍可执行远程证明(例如由在[TPM3]中定义的TPM_QUOTE操作来执行)。
如上所述并且如本领域技术人员将理解的,本发明的实施方式可以被配置成系统、方法、移动设备或其他装置。因此,本发明的实施方式可以包括各种装置,这些装置包括全部硬件、全部软件、或软件和硬件的任何组合。另外,本发明的实施方式可以采用计算机可读存储介质上的计算机程序产品的形式,该计算机可读存储介质具有包括在存储介质中的计算机可读程序指令(例如,计算机软件)。任何合适的计算机可读存储介质可以被使用,包括硬盘、CD-ROM、光学存储设备或磁性存储设备。
已经参考方法、设备(即,系统)和计算机程序产品的框图和流程图来描述了本发明的示例性实施方式。应该理解框图和流程图的每个框以及框图和流程图的框的组合可以分别由包括计算机程序指令的各种装置来实施。这些计算机程序指令可以被加载到通用计算机、专用计算机、或其他可编程数据处理设备以制造出一种机器,使得在计算机或其他可编程数据处理设备上执行的指令创建一种用于实施流程框或多个框中指定的功能的装置。
这些计算机程序指令也可以存储在计算机可读存储器中,该计算机程序指令可引导计算机或其他可编程数据处理设备以特定的方式来工作,使得存储在计算机可读存储中的指令生产出一种产品,其包括用于实施在流程框或多个框中指定的功能的计算机可读指令。计算机程序指令也可以被加载到计算机或其他可编程数据处理设备上以使得一系列操作性步骤在计算机或其他可编程设备上执行,从而生产出计算机实施的处理,使得在计算机或其他可编程设备上执行的指令提供用于实施在流程框或多个框中指定的功能的步骤。
因此,框图和流程图的框支持用于执行指定功能的装置的组合,用于执行指定功能的步骤的组合,以及用于执行指定功能的程序指令装置。还应该理解框图和流程图的每个框,以及框图和流程图中的框的组合可以由基于硬件的专用计算机系统或专用硬件和计算机指令的组合来实施,该基于硬件的专用计算机系统执行指定的功能或步骤。
这些发明所涉及的领域的技术人员在具有上述描述和相关附图所提供的教导下将构思出这里所提出的本发明的许多修改和其他实施方式。因此,应该理解本发明不限于这里所公开的特定实施方式,并且修改和其他实施方式旨在被包括在所附权利要求书的范围内。尽管在这里使用了特定的术语,但是它们仅在一般和描述性意义上使用而不用于限制的目的。

Claims (24)

1.一种使用安全启动框架来启动系统的方法,所述系统包括计算引擎和操作在所述计算引擎内的安全环境,并且所述安全环境与操作在所述安全环境外的一个或多个程序、功能和资源隔离,所述安全环境是不可变的和保密的,所述方法包括:
执行位于所述安全环境外部的安全强制功能,所述安全强制功能被配置成确保仅授权的程序模块在所述系统上执行;以及
如果在执行之前对至少一个程序模块进行了授权,则使用所述安全强制功能来执行所述程序模块。
2.根据权利要求1所述的方法,其中执行所述安全强制功能包括:
创建与所述安全强制功能的执行关联的事件,所述事件包括与所述执行对应的代码;
定位与所述事件关联的事件证书,所述事件证书包括对所述事件的指示以及对其中所述事件被授权的系统状态的指示;
确定所述事件证书是否是可信的;
至少部分地基于所述事件证书来确定所述事件是否被授权;以及
如果所述事件证书被定位并且是可信的,并且所述事件被授权,则将控制转交给所述安全强制功能。
3.根据权利要求2所述的方法,其中定位事件证书包括访问位于所述安全环境外部的事件证书仓库,所述事件证书仓库包括多个事件证书。
4.根据权利要求2所述的方法,其中所述事件证书进一步包括密钥库绑定,其被配置成将所述事件证书绑定到所述安全环境并且绑定到位于所述安全环境内的密钥库。
5.根据权利要求4所述的方法,其中确定所述事件证书是否是可信的包括访问所述密钥库并且至少部分地基于所述密钥库绑定来确定所述事件证书的完整性和真实性。
6.根据权利要求2所述的方法,进一步包括:
确定所述系统的当前状态,其中确定所述事件是否被授权包括至少部分地基于所述系统的所述当前状态来确定所述事件是否被授权。
7.根据权利要求1所述的方法,其中执行安全强制功能包括用于执行所述安全强制功能的强制程序模块的可信根,所述强制程序模块的所述可信根操作在所述安全环境的内部。
8.根据权利要求1所述的方法,其中使用所述安全强制功能来执行至少一个程序模块包括:
创建与所述程序模块的执行关联的事件,所述事件包括与所述程序模块的所述执行对应的代码;
定位与所述事件关联的事件证书,所述事件证书包括对所述事件的指示以及对其中所述事件被授权的系统状态的指示;
确定所述事件证书是否是可信的;
确定所述事件是否被授权;以及
如果所述事件证书被定位并且是可信的,并且所述事件被授权,则执行所述程序模块。
9.根据权利要求8所述的方法,其中定位事件证书包括访问位于所述安全环境外部的事件证书仓库,所述事件证书仓库包括多个事件证书。
10.根据权利要求8所述的方法,其中所述事件证书进一步包括密钥库绑定,其被配置成将所述事件证书绑定到所述安全环境并且绑定到位于所述安全环境内的密钥库。
11.根据权利要求10所述的方法,其中确定所述事件证书是否是可信的包括访问所述密钥库并且至少部分地基于所述密钥库绑定来确定所述事件证书的完整性和真实性。
12.根据权利要求8所述的方法,进一步包括:
确定所述系统的当前状态,其中确定所述事件是否被授权包括至少部分地基于所述系统的所述当前状态来确定所述事件是否被授权。
13.一种配置成使用安全启动框架来启动系统的设备,所述设备包括:
用于执行位于所述安全环境外部的安全强制功能的装置,其中所述安全环境与操作在所述安全环境外的一个或多个程序、功能或资源隔离,所述安全强制功能配置成确保仅授权的程序模块在所述系统上执行,所述安全环境是不可变的和保密的;以及
用于如果在执行之前对至少一个程序模块进行了授权,则使用所述安全强制功能来执行所述程序模块的装置。
14.根据权利要求13所述的设备,其中用于执行所述安全强制功能的装置包括:
用于创建与所述安全强制功能的执行关联的事件的装置,所述事件包括与所述执行对应的代码;
用于定位与所述事件关联的事件证书的装置,所述事件证书包括对所述事件的指示以及对其中所述事件被授权的系统状态的指示;
用于确定所述事件证书是否是可信的装置;
用于至少部分地基于所述事件证书来确定所述事件是否被授权的装置;以及
用于如果所述事件证书被定位并且是可信的,并且所述事件被授权,则将控制转交给所述安全强制功能的装置。
15.根据权利要求14所述的设备,其中用于定位事件证书的装置包括用于访问位于所述安全环境外部的事件证书仓库的装置,所述事件证书仓库包括多个事件证书。
16.根据权利要求14所述的设备,其中所述事件证书进一步包括密钥库绑定,其被配置成将所述事件证书绑定到所述安全环境并且绑定到位于所述安全环境内的密钥库。
17.根据权利要求16所述的设备,其中用于确定所述事件证书是否是可信的装置包括用于访问所述密钥库并且至少部分地基于所述密钥库绑定来确定所述事件证书的完整性和真实性的装置。
18.根据权利要求14所述的设备,进一步包括:
用于确定所述系统的当前状态的装置,其中用于确定所述事件是否被授权的装置包括用于至少部分地基于所述系统的所述当前状态来确定所述事件是否被授权的装置。
19.根据权利要求13所述的设备,其中用于执行安全强制功能的装置包括用于执行所述安全强制功能的强制程序模块的可信根,所述强制程序模块的所述可信根操作在所述安全环境的内部。
20.根据权利要求13所述的设备,其中用于使用所述安全强制功能来执行至少一个程序模块的装置包括:
用于创建与所述程序模块的执行关联的事件的装置,所述事件包括与所述程序模块的所述执行对应的代码;
用于定位与所述事件关联的事件证书的装置,所述事件证书包括对所述事件的指示以及对其中所述事件被授权的系统状态的指示;
用于确定所述事件证书是否是可信的的装置;
用于确定所述事件是否被授权的装置;以及
用于如果所述事件证书被定位并且是可信的装置,并且所述事件被授权,则执行所述程序模块的装置。
21.根据权利要求20所述的设备,其中用于定位事件证书的装置包括用于访问位于所述安全环境外部的事件证书仓库的装置,所述事件证书仓库包括多个事件证书。
22.根据权利要求20所述的设备,其中所述事件证书进一步包括密钥库绑定,其被配置成将所述事件证书绑定到所述安全环境并且绑定到位于所述安全环境内的密钥库。
23.根据权利要求22所述的设备,其中用于确定所述事件证书是否是可信的装置包括用于访问所述密钥库并且至少部分地基于所述密钥库绑定来确定所述事件证书的完整性和真实性的装置。
24.根据权利要求20所述的设备,进一步包括:
用于确定所述系统的当前状态的装置,其中用于确定所述事件是否被授权的装置包括用于至少部分地基于所述系统的所述当前状态来确定所述事件是否被授权的装置。
CN2006800405232A 2005-09-16 2006-09-07 用于可信赖移动电话的简单可伸缩和可配置安全启动 Active CN101300583B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US71826605P 2005-09-16 2005-09-16
US60/718,266 2005-09-16
PCT/IB2006/002472 WO2007031834A2 (en) 2005-09-16 2006-09-07 Simple scalable and configurable secure boot for trusted mobile phones

Publications (2)

Publication Number Publication Date
CN101300583A CN101300583A (zh) 2008-11-05
CN101300583B true CN101300583B (zh) 2013-04-10

Family

ID=37865311

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800405232A Active CN101300583B (zh) 2005-09-16 2006-09-07 用于可信赖移动电话的简单可伸缩和可配置安全启动

Country Status (6)

Country Link
US (1) US8201240B2 (zh)
EP (1) EP1934882B1 (zh)
JP (1) JP5061110B2 (zh)
KR (1) KR100998344B1 (zh)
CN (1) CN101300583B (zh)
WO (1) WO2007031834A2 (zh)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2676450C (en) * 2007-01-26 2014-09-09 Interdigital Technology Corporation Method and apparatus for securing location information and access control using the location information
CN101282258B (zh) * 2007-04-04 2011-12-07 中兴通讯股份有限公司 兼容不同频段Wimax系统的演进系统、帧及其生成方法
US8209550B2 (en) * 2007-04-20 2012-06-26 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for protecting SIMLock information in an electronic device
GB2454641A (en) * 2007-07-05 2009-05-20 Vodafone Plc Security in a telecommunications network
JP4872875B2 (ja) * 2007-09-28 2012-02-08 ブラザー工業株式会社 ログ管理装置、及びログ管理プログラム
EA201070673A1 (ru) * 2008-01-30 2011-02-28 Панасоник Корпорэйшн Безопасная начальная загрузка с помощью способа необязательных компонентов
DE102008029636A1 (de) * 2008-06-23 2009-12-24 Giesecke & Devrient Gmbh Freischalten eines Dienstes auf einem elektronischen Gerät
WO2010113282A1 (ja) * 2009-03-31 2010-10-07 富士通株式会社 構成変更の検証機能を有した情報処理装置及びその制御方法
US8892862B2 (en) 2009-07-01 2014-11-18 Panasonic Corporation Secure boot method for executing a software component including updating a current integrity measurement based on whether the software component is enabled
US8615788B2 (en) * 2009-08-12 2013-12-24 International Business Machines Corporation Method and apparatus for scalable integrity attestation in virtualization environments
US10177934B1 (en) 2009-09-04 2019-01-08 Amazon Technologies, Inc. Firmware updates inaccessible to guests
US8214653B1 (en) 2009-09-04 2012-07-03 Amazon Technologies, Inc. Secured firmware updates
US8887144B1 (en) 2009-09-04 2014-11-11 Amazon Technologies, Inc. Firmware updates during limited time period
US9565207B1 (en) 2009-09-04 2017-02-07 Amazon Technologies, Inc. Firmware updates from an external channel
US8971538B1 (en) 2009-09-08 2015-03-03 Amazon Technologies, Inc. Firmware validation from an external channel
US8300641B1 (en) 2009-09-09 2012-10-30 Amazon Technologies, Inc. Leveraging physical network interface functionality for packet processing
US8959611B1 (en) 2009-09-09 2015-02-17 Amazon Technologies, Inc. Secure packet management for bare metal access
US8381264B1 (en) * 2009-09-10 2013-02-19 Amazon Technologies, Inc. Managing hardware reboot and reset in shared environments
EP2334025A1 (en) * 2009-12-08 2011-06-15 Gemalto SA Proactive commands over secure channel between a mobile equipment and a UICC
CN101765101B (zh) * 2009-12-15 2013-08-21 大唐微电子技术有限公司 一种空中个人化写卡的方法和系统
CN102656592A (zh) * 2010-02-16 2012-09-05 松下电器产业株式会社 信息处理设备、信息处理系统、软件例程执行方法和远程认证方法
US8996851B2 (en) 2010-08-10 2015-03-31 Sandisk Il Ltd. Host device and method for securely booting the host device with operating system code loaded from a storage device
US8782389B2 (en) 2011-07-19 2014-07-15 Sandisk Technologies Inc. Storage device and method for updating a shadow master boot record
US8812830B2 (en) 2011-08-31 2014-08-19 Microsoft Corporation Attestation protocol for securely booting a guest operating system
US9075995B2 (en) 2013-03-11 2015-07-07 Microsoft Technology Licensing, Llc Dynamically loaded measured environment for secure code launch
US9195831B1 (en) 2014-05-02 2015-11-24 Google Inc. Verified boot
WO2016073411A2 (en) * 2014-11-03 2016-05-12 Rubicon Labs, Inc. System and method for a renewable secure boot
US9639700B2 (en) 2015-03-20 2017-05-02 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Unified extensible firmware interface (UEFI) database for secure bootstrap of a computer
CN105578469B (zh) * 2015-04-30 2018-04-10 宇龙计算机通信科技(深圳)有限公司 基于终端的通信方法、通信终端及通信系统
US20160350534A1 (en) * 2015-05-29 2016-12-01 Intel Corporation System, apparatus and method for controlling multiple trusted execution environments in a system
US10482258B2 (en) * 2017-09-29 2019-11-19 Nxp Usa, Inc. Method for securing runtime execution flow
WO2019212547A1 (en) * 2018-05-02 2019-11-07 Hewlett-Packard Development Company, L.P. Executing sotware
EP3929784A1 (de) * 2020-06-23 2021-12-29 Siemens Aktiengesellschaft Booteinrichtung für ein computerelement und verfahren zum booten eines computerelements

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6327652B1 (en) * 1998-10-26 2001-12-04 Microsoft Corporation Loading and identifying a digital rights management operating system

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US53664A (en) * 1866-04-03 Improvement in horse-powers
US172542A (en) * 1876-01-18 Improvement in cheese-cutters
US3288A (en) * 1843-09-28 Improvement in cotton and hay presses
WO1995005876A1 (en) 1993-08-27 1995-03-02 Christopher Russell Byrne Super keno
US6557104B2 (en) 1997-05-02 2003-04-29 Phoenix Technologies Ltd. Method and apparatus for secure processing of cryptographic keys
JP3293760B2 (ja) * 1997-05-27 2002-06-17 株式会社エヌイーシー情報システムズ 改ざん検知機能付きコンピュータシステム
US6185678B1 (en) 1997-10-02 2001-02-06 Trustees Of The University Of Pennsylvania Secure and reliable bootstrap architecture
US6330670B1 (en) * 1998-10-26 2001-12-11 Microsoft Corporation Digital rights management operating system
EP1076279A1 (en) 1999-08-13 2001-02-14 Hewlett-Packard Company Computer platforms and their methods of operation
EP1085396A1 (en) * 1999-09-17 2001-03-21 Hewlett-Packard Company Operation of trusted state in computing platform
US6757824B1 (en) 1999-12-10 2004-06-29 Microsoft Corporation Client-side boot domains and boot rules
GB0020441D0 (en) * 2000-08-18 2000-10-04 Hewlett Packard Co Performance of a service on a computing platform
US6938164B1 (en) * 2000-11-22 2005-08-30 Microsoft Corporation Method and system for allowing code to be securely initialized in a computer
JP2003006027A (ja) 2001-06-21 2003-01-10 Hitachi Ltd アクセス制御ポリシーの自動設定方法およびそのシステム
GB2378272A (en) * 2001-07-31 2003-02-05 Hewlett Packard Co Method and apparatus for locking an application within a trusted environment
JP4023654B2 (ja) 2001-09-28 2007-12-19 日立ソフトウエアエンジニアリング株式会社 アプリケーションの監視方法およびプログラム
US7243230B2 (en) * 2001-11-16 2007-07-10 Microsoft Corporation Transferring application secrets in a trusted operating system environment
GB2382419B (en) 2001-11-22 2005-12-14 Hewlett Packard Co Apparatus and method for creating a trusted environment
JP3863447B2 (ja) 2002-03-08 2006-12-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 認証システム、ファームウェア装置、電気機器、及び認証方法
US20030182561A1 (en) * 2002-03-25 2003-09-25 International Business Machines Corporation Tamper detection mechanism for a personal computer and a method of use thereof
US7082507B1 (en) * 2002-04-18 2006-07-25 Advanced Micro Devices, Inc. Method of controlling access to an address translation data structure of a computer system
US7216369B2 (en) 2002-06-28 2007-05-08 Intel Corporation Trusted platform apparatus, system, and method
JP4007873B2 (ja) 2002-07-09 2007-11-14 富士通株式会社 データ保護プログラムおよびデータ保護方法
JP4226556B2 (ja) * 2002-12-12 2009-02-18 富士通株式会社 プログラム実行制御装置、os、クライアント端末、サーバ、プログラム実行制御システム、プログラム実行制御方法、プログラム実行制御プログラム
JP4067985B2 (ja) 2003-02-28 2008-03-26 松下電器産業株式会社 アプリケーション認証システムと装置
JP2004265286A (ja) 2003-03-04 2004-09-24 Fujitsu Ltd 環境に応じて選択されたセキュリティ・ポリシーに従うモバイル機器の管理
US7530103B2 (en) * 2003-08-07 2009-05-05 Microsoft Corporation Projection of trustworthiness from a trusted environment to an untrusted environment
US7398390B2 (en) 2003-08-08 2008-07-08 Hewlett-Packard Development Company, L.P. Method and system for securing a computer system
US20050091496A1 (en) 2003-10-23 2005-04-28 Hyser Chris D. Method and system for distributed key management in a secure boot environment
US7464406B2 (en) * 2004-04-22 2008-12-09 Lenovo (Singapore) Pte. Ltd. System and method for user determination of secure software
US20050283826A1 (en) 2004-06-22 2005-12-22 Sun Microsystems, Inc. Systems and methods for performing secure communications between an authorized computing platform and a hardware component
US7774619B2 (en) * 2004-11-17 2010-08-10 Broadcom Corporation Secure code execution using external memory
US7725703B2 (en) 2005-01-07 2010-05-25 Microsoft Corporation Systems and methods for securely booting a computer with a trusted processing module
US7908483B2 (en) * 2005-06-30 2011-03-15 Intel Corporation Method and apparatus for binding TPM keys to execution entities

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6327652B1 (en) * 1998-10-26 2001-12-04 Microsoft Corporation Loading and identifying a digital rights management operating system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
US 2004/0003288 A1,说明书第0014-0052段、附图1-3.
同上.

Also Published As

Publication number Publication date
US20070067617A1 (en) 2007-03-22
KR100998344B1 (ko) 2010-12-06
JP2009509373A (ja) 2009-03-05
WO2007031834A2 (en) 2007-03-22
KR20080045757A (ko) 2008-05-23
EP1934882B1 (en) 2019-01-23
EP1934882A2 (en) 2008-06-25
EP1934882A4 (en) 2010-12-22
US8201240B2 (en) 2012-06-12
CN101300583A (zh) 2008-11-05
WO2007031834A3 (en) 2007-05-18
JP5061110B2 (ja) 2012-10-31

Similar Documents

Publication Publication Date Title
CN101300583B (zh) 用于可信赖移动电话的简单可伸缩和可配置安全启动
DK1479187T4 (en) MANAGEMENT OF ACCESS LEVELS IN PHONES USING CERTIFICATES
US8560857B2 (en) Information processing apparatus, a server apparatus, a method of an information processing apparatus, a method of a server apparatus, and an apparatus executable program
JP4689945B2 (ja) リソースアクセス方法
JP4689946B2 (ja) 安全なデータを使用して情報処理を実行するシステム
TWI674533B (zh) 授權將於目標計算裝置上執行之操作的設備
KR101712784B1 (ko) 글로벌 플랫폼 규격을 사용하는 발행자 보안 도메인에 대한 키 관리 시스템 및 방법
TWI648649B (zh) 行動通信裝置及其操作方法
KR101190479B1 (ko) 티켓 인증 보안 설치 및 부트
CN102640160B (zh) 用于控制资源访问的方法和装置
CN109074449A (zh) 在安全飞地中灵活地供应证明密钥
CN113168476A (zh) 操作系统中个性化密码学安全的访问控制
CN101199159A (zh) 安全引导
JP2007512787A (ja) トラステッド・モバイル・プラットフォーム・アーキテクチャ
CN105408912A (zh) 处理认证和资源许可
EP2051181A1 (en) Information terminal, security device, data protection method, and data protection program
KR102013983B1 (ko) 애플리케이션 무결성 인증 방법 및 인증 서버
WO2009090706A1 (ja) 情報処理装置および携帯電話装置
EP2750073A1 (en) Method and apparatus for managing security state
US20120190338A1 (en) Method for changing an operating mode of a mobile device
CN110059489B (zh) 安全电子设备
CN116680755A (zh) Gpu固件的保护方法、装置、电子设备和存储介质
CN117873499A (zh) 基于许可证和安全锁的数字孪生离线服务部署方法及装置
CN116974536A (zh) 一种多方协作的开发处理方法、装置以及设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20160112

Address after: Espoo, Finland

Patentee after: Technology Co., Ltd. of Nokia

Address before: Espoo, Finland

Patentee before: Nokia Oyj