CN101542494A - 保护处理器体系结构上的接口 - Google Patents
保护处理器体系结构上的接口 Download PDFInfo
- Publication number
- CN101542494A CN101542494A CNA2007800420665A CN200780042066A CN101542494A CN 101542494 A CN101542494 A CN 101542494A CN A2007800420665 A CNA2007800420665 A CN A2007800420665A CN 200780042066 A CN200780042066 A CN 200780042066A CN 101542494 A CN101542494 A CN 101542494A
- Authority
- CN
- China
- Prior art keywords
- hardware signal
- software
- trustworthiness
- state
- benchmark
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/32—User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/629—Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/80—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in storage media based on magnetic or optical technology, e.g. disks with sectors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/84—Protecting input, output or interconnection devices output devices, e.g. displays or monitors
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Debugging And Monitoring (AREA)
Abstract
公开了一种方法、装置和计算机程序产品,用于验证装置中软件的可信赖性,并且当所述软件不可信赖时,将所述装置中的硬件信号切换到第一状态中。
Description
技术领域
本发明涉及一种用于验证装置中软件的可信赖性的方法、装置和计算机程序产品。
背景技术
普通移动电话是围绕既含有通用处理组件又含有包含大的GSM/3G堆栈部分的组件的单个处理器核心而设计的。
其它既有接口假定连接到能量管理、SIM接口、无线电模块等。这些附加的核心通过I/O地址、共享存储器等被映射到执行环境,以便与像用于发起/终止呼叫、接收SMS等的电话软件(SW)相连。
开源(open source)(许可)模型是用于软件的术语,尤为明显的是在一些Unix变体如Linux或BSD中,以及在很多常用应用库和SW堆栈中。举例来说,开源SW可以用于电话SW。
很多开源许可(open source licenses)要求在该平台上构造的任何设备的源代码应当按需可用。
因而,如果通过许可而在上述单个处理器核心上应用开源操作系统(OS),则有可能OS源代码(其可能包括驱动)必须被公开。另外,也许大众将可以修改和改进SW平台,并且替换设备上的OS。此外,因为这些体系结构的通用性,所以众多调试和检验工具是可用的,由此,技术熟练的用户可以监控OS如何控制设备/与设备通信,甚至“逆向工程”经常关闭进程中的二进制堆栈。
这些调试和检验工具适于暴露处理器核心的既有接口。大多数接口没有安全性,并且可能暴露相当关键并且低级别的应用编程接口。
这引入了以下风险:误用那些接口不仅可能造成对电话本身的伤害,而且还(例如通过增加的辐射)有害于网络和用户。
此外,对接口的使用还是一种在授权情况下的许可颁发,以便在许可带上操作,HW和SW都被包括在许可过程中。
因而,这些接口需要被保护免受黑客的有害使用,但是还必须确定仅是有权利的(被许可的)SW堆栈可以用于操作这些接口。
发明内容
鉴于上述问题,其中,本发明的目的是提供一种用于保护装置的接口免受黑客的有害使用的方法、计算机程序、计算机程序产品、设备、系统和协议。
公开了一种方法,其包括:验证装置中软件的可信赖性,以及当所述软件不可信赖时,将所述装置中的硬件信号切换到第一状态。
根据本发明,验证了所述装置中软件(其例如可以由用户借助于用户接口而加载到所述装置中)的可信赖性。软件的可信赖性可以例如意味着所述装置中的软件对应于由所述装置的制造商所证明的软件,从而使得当所述装置包括不同于经证明的软件的软件(例如在所述装置中由黑客上传)时,可以不给予可信赖性。
该验证可以通过以下来实现:测量所述软件的至少一个指纹,以及将所述至少一个所测量的指纹与至少一个基准完整性指纹相比较,其中所述至少一个基准完整性指纹可以对应于经证明的软件,并且其中所述至少一个基准完整性指纹可以被存储在所述装置中的非易失性存储器中。例如,所述验证可以使用符合或基于可信计算(TCG)标准的算法和/或技术,但也可以使用其它验证算法。
例如,所述装置可以包括用于实现可信赖性验证的处理组件,其可以被称为可信计算组件。例如,所述处理组件可以使用符合或基于可信计算组(TCG)标准的技术,但是它还可以使用其它验证技术。所述处理组件可以是硬件处理单元,并且所述硬件处理组件或至少部分所述硬件处理组件可以是受保护的。
所述软件可以是在所述装置中使用的任何软件,如用于操作系统的软件、BIOS软件、固件软件、任何种类的驱动软件和其它种类的软件。因而,对所述装置的所述验证可以允许验证所述装置的系统的可信赖性。
当所述软件被验证并且被确定为不可信赖时,硬件信号被切换到第一状态。此外,如果所述软件被确定为可信赖,则所述硬件信号可以被切换到第二状态,或者所述硬件信号可以不被改变并且保持其状态。此外,例如,如果确定没有给予软件的可信赖性,那么所述硬件信号可以被切换到第一状态,直到所述装置被重置。
所述硬件信号可以是在所述装置中的至少一个硬件信号线路上的信号,其中所述至少一个硬件信号线路可以被连接到用于实现可信赖性验证的处理组件。所述至少一个硬件信号线路可以在所述装置中被布线,并且除了用于实现可信赖性的处理组件之外,所述装置没有其它组件可以改变在所述至少一个硬件信号线路上的所述硬件信号。由于所确定的可信赖性信息被提供到所述硬件信号,因此所确定的可信赖性信息可以从所述装置的操作系统中解耦,从而使得黑客无法通过使用软件来破坏该硬件信号。因而,该硬件信号表示关于所述装置上软件的可信赖性的可靠信息,因为所确定的可信赖性信息可以从所述装置的操作系统中解耦而被传输。根据本发明的使用硬件信号的该解决方案避免了所确定的可信赖性信息可以经由软件(例如,如果通过使用协议,经由所述装置的内部总线来传输所确定的可信赖性信息,则其可以用于破坏所确定的可信赖信息)而被破坏。因而,所述硬件信号可以表示通过所述装置的操作系统的软件无法影响的信号。因此,所述硬件信号在保护免受软件攻击方面非常有效。在验证了可信赖性之后,所确定的可信赖性信息(如所述硬件信号的第一状态)可以仅通过硬件攻击来篡改,而无法借助于软件来篡改。
所述装置可以表示可包括通用处理组件(例如,数字信号处理器)的处理器核心,并且其可以由操作系统操作,并且其中所述装置能够例如通过使用用户接口来加载软件,其中所述软件可以被加载到通用处理组件或存储器组件中,并且其中所述软件可以用于替换所述装置的操作系统。所述装置可以包括用于将处理器核心连接到外部电子模块的至少一个接口,例如用于将所述装置连接到网络的接口。因而,当所述硬件信号处于第一状态时,所述硬件信号可以用于禁用所述至少一个接口中的至少一个,从而使得当没有给予软件的可信赖性时,所述处理器核心可以从所述至少一个外部电子模块中的至少一个断开连接。此外,当硬件信号处于第一状态时,可以借助于所述硬件信号来禁用所述处理器核心的一个或多个处理组件。
所述软件的可信赖性的所述验证可以被应用于验证所述处理器核心的操作系统的软件的可信赖性,并且因而可以验证所述操作系统的可信赖性。
例如,所述处理器核心可以是单片处理器核心,并且所述硬件信号可以经由该单片内的至少一个硬件信号线路而被传输到至少一个处理组件和/或至少一个接口。例如,所述至少一个硬件信号线路可以在处理器硅中被布线,并且因而最小化篡改所述硬件信号的风险。
例如,所述处理器核心可以表示用于无线设备(像移动电话或WLAN或设备,或者任何其它无线设备)的处理器核心,其中所述处理器核心可以包括通用处理组件和用于无线系统的专门操作的处理组件,例如,像GSM/3G核心这样的用于GSM和/或3G功能/处理的处理组件。当所述硬件信号处于第一状态时,所述硬件信号可以用于禁用用于无线系统的专门操作的所述处理组件,因而,在没有给予所述软件的可信赖性的情况下,可以禁用所述处理器核心的无线功能,这也使得降低了所述处理器核心的功率消耗。
此外,当所述硬件信号处于第一状态时,可以禁用所述处理器核心的接口中的至少一个,如用于将所述处理器核心连接到高频无线电模块的无线电接口。因而,在确定所述处理器核心中的软件不可信赖的情况下,防止了对所述无线电接口的误用,并且对网络和对用户来说,防止了无线设备本身(例如,通过增加的辐射)的伤害。
根据本发明,可以确定仅是有权利的(许可的)软件可以用于操作所述装置。
根据本发明的实施例,所述装置包括至少一个处理组件,其中所述方法包括:当所述硬件信号处于第一状态时,禁用所述至少一个处理组件中的至少一个。
例如,所述至少一个处理组件中的所述至少一个可以是用于计算将所述装置互连到网络的信号的处理组件,其中所述处理组件可以例如是无线电核心(在所述装置表示用于无线系统的处理器核心的情况下)。因而,在确定所述处理器核心中的软件不可信赖的情况下,可以防止对所述网络的误用。
根据本发明的实施例,所述装置包括至少一个接口,其中所述方法包括:当所述硬件信号处于第一状态时,禁用所述至少一个接口中的至少一个。
因而,在没有给予软件的可信赖性的情况下,所述至少一个接口被禁用。所述至少一个接口中的至少一个可以是用于将所述装置连接到网络的接口,例如,像GSM或UMTS网络的无线电网络。因此,在被破坏的软件(其可以是被黑客破坏的所述装置的操作系统的软件组件)的情况下,所述硬件信号禁用所述至少一个接口,从而使得所述装置从所述网络断开连接,并且可以避免网络的破坏。例如,在所述装置是用于无线系统的处理器核心的情况下,所述至少一个接口中的至少一个可以是用于将所述处理器核心连接到高频无线电模块的无线电接口。此外,可以防止(例如,由于增加的辐射)对用户本身的伤害。
根据本发明的实施例,所述方法包括:提取所述软件的至少一个数字指纹,以及将所述至少一个数字指纹中的至少一个与用于验证所述软件的可信赖性的至少一个基准完整性指纹相比较。
所述至少一个基准完整性指纹可以表示经证明的软件和/或经证明的软件的组件的至少一个指纹。因而,如果所述至少一个所提取的数字指纹中的所述至少一个对应于基准完整性指纹,那么可以假定:对应于所述至少一个所提取的数字指纹中的所述至少一个的软件/软件组件无论如何都没有被破坏,因为可以假定其与经证明的软件/软件组件相同。
所述至少一个基准完整性指纹可以被存储在所述装置的存储器组件中,其中所述存储器组件可以是受保护的,例如免受黑客攻击,并且其中所述存储器组件可以表示非易失性存储器。
通过密码散列函数可以生成所述至少一个数字指纹,其中所述散列函数计算软件或软件的组件的散列值。例如,所述密码散列函数可以表示具有特定附加安全特性的散列函数,以使其适于用作各种信息安全应用(例如认证和消息完整性)中的基元(primitive)。散列函数可以采用任何长度的长串(或消息)作为输入,并且产生固定长度的串作为可以对应于数字指纹的输出。所述密码散列函数应当使得能够有良好的碰撞抵抗性(collision resistance),从而使得应当难以找到两个不同的消息m1和m2来让所散列的值hash(m1)和hash(m2)相等。
因而,所提取的数字指纹可以表示所提取的散列值,并且基准完整性指纹可以表示已经利用经证明的软件/软件组件的相同的散列函数而计算的散列值。散列函数的基本特性是:如果(根据相同函数的)两个散列值不同,那么两个输入在某些方面不同。
根据本发明的实施例,所述装置包括可信平台模块,所述可信平台模块包括寄存器组和散列函数,并且所述方法包括:散列所述软件的至少一个基准度量,将所述至少一个度量扩展到所述寄存器组的至少一个寄存器中,以及将所述至少一个寄存器中的至少一个的内容与用于验证所述软件的可信赖性的至少一个基准完整性度量证书相比较。
所述至少一个基准完整性度量证书可以表示从经证明的软件和/或经证明的软件的组件散列得到的至少一个基准完整性度量,其中所述散列函数对应于由所述可信平台模块用于散列所述至少一个基准度量的散列函数。例如,所述基准完整性度量证书可以由制造商签署,并且它们可以绑定于用于新鲜度(freshness)的计数器。
例如,所述可信平台模块(TPM)可以遵守可信计算组的移动TPM规范,并且所述可信平台模块可以表示TPM核心,其中所述TPM核心可以是受保护的核心。
所述寄存器组可以通过至少一个平台配置寄存器(PCR)来表示,其中所述至少一个PCR可以被配置以便保持关于平台特征(即,所述装置的特征)的信息,其中所述平台特征可以是所述装置的不同组件的软件的散列,像BIOS、固件、操作系统、驱动等。
所述被散列的至少一个基准度量可以对应于在前面的实施例中提及的所述至少一个数字指纹。例如,当新软件组件被加载到所述装置中时,所述软件组件的基准度量被散列,并且所述基准度量被扩展到所述PCR组的第一PCR中。该扩展可以包括:将基准度量与所述PCR组的PCR的内容连接,以及计算所述被连接的基准度量和PCR内容的散列值,并且将该散列的连接值存储在所述PCR组的第一PCR中。然后,所述第一PCR的内容可以与至少一个基准完整性度量证书相比较,以便验证所述软件组件的可信赖性。即,存储在第一PCR中的被扩展的基准度量与至少一个基准完整性证书相比较。举例来说,该验证在执行所加载的软件组件之前进行,从而使得所加载的软件组件仅当所述软件组件的可信赖性被确定时才被执行。
可信平台模块可以包括微控制器,以便实现散列、扩展和验证操作。此外,所述微控制器可以被连接到至少一个硬件信号线路,其中所述微控制器生成硬件信号,并且将其应用于所述至少一个硬件信号线路。可选地,与所述硬件信号相关联的所述至少一个硬件信号线路可以被连接到所述PCR组的PCR,其中所述PCR的内容可以对应于在所述至少一个硬件信号线路上的硬件信号的状态,从而使得当没有给予可信赖性时,所述PCR被设置成第一状态,例如由最低有效位来指示,或者当给予可信赖性时,所述PCR可以被设置成另一状态,如第二状态。
用于测量的核心可信根(CRTM,Core Root of Trust forMeasurement)可以根据TPM规范来建立,以便提供安全测量功能。该CRTM可以使TPM核心中的可信根(trust root)依赖于制造商,并且它可以被视为可信的最终根(ultimate root)。例如,当所述装置被重置时,CRTM可以通过以下方式来测量所述装置中的所有可执行固件:测量所述可执行固件的软件的散列值(即,第一基准度量),以及将该基准度量存储在所述PCR组的第一PCR中。然后,该基准度量可以与基准完整性度量证书相比较,以便验证所述可执行固件的所述软件的可信赖性,并且仅当确定了可信赖性时,所述可执行固件才被执行,以便启动引导过程。所述第一PCR的内容可以通过与另外的软件组件的另外测量的基准度量相连接而被扩展到所述PCR组中的另外的PCR,以便验证所述另外的软件组件的可信赖性。如果没有确定可信赖性,那么所述硬件信号被切换到第一状态。
根据本发明的实施例,所述寄存器组中的另外的寄存器仅可以通过基准完整性度量证书来更新,其中所述另外的寄存器的至少一个位(bit)被布线到至少一个硬件信号线路,其中所述至少一个硬件信号线路传输所述硬件信号,并且其中所述方法进一步包括:在验证所述软件的可信赖性之前,将所述另外的寄存器设置成第一值,所述第一值将所述至少一个硬件信号线路上的硬件信号切换到第一状态中;以及在所述至少一个寄存器的所述至少一个中的所述至少一个的内容与用于验证可信赖性的至少一个基准完整性度量证书的所述比较的结果是成功的情况下,通过所述基准完整性度量证书将所述另外的寄存器更新成第二值,其中所述第二值将所述至少一个硬件信号上的硬件信号切换到指示所述软件的可信赖性的第二状态中。
所述另外的寄存器不同于含有所述至少一个扩展的基准度量的所述至少一个寄存器。此外,所述另外的寄存器适于被锁定,从而使得其仅可以通过所述基准完整性度量证书来更新。例如,所述另外的寄存器是PCR寄存器,并且所述锁定功能可以通过TPM特征来提供。
所述基准完整性度量不仅可以含有用于检查在所述至少一个寄存器的至少一个中的所述至少一个扩展的基准度量的至少一个的有效性的基准值,它还可以含有位置来用于可被设置到给定寄存器(例如,所述另外的寄存器)中的值。仅当所述基准完整性度量与所测量的基准度量相比的完整性验证成功时(例如,通过将所述基准完整性度量与所述至少一个寄存器中的所述至少一个扩展的基准度量的至少一个相比较),在所述基准完整性度量中的所述值才被设置到所述给定寄存器中。
因此,所述基准完整性度量可以含有在所述位置中的所述第二值,从而使得当通过由所述基准完整性度量来检查所述至少寄存器中的所述至少一个扩展的基准度量而检测到可信赖性时,所述第二值于是被更新到所述另外的寄存器中,从而使得所述另外的寄存器将硬件信号切换到所述第二状态中。否则,即,当没有给予可信赖性时,所述另外的寄存器于是将保持所述第一值,其保持将硬件信号切换在第一状态中。
例如,在引导序列期间,所测量的基准度量被扩展到所述至少一个寄存器中,以及之后,通过所述基准完整性度量验证了所述扩展的基准度量是否指示可信赖性,并且在给予可信赖性的情况下,所述基准完整性度量于是将所述第二值更新到所述另外的寄存器中,以便将硬件信号切换到第二状态中。
例如,所述至少一个硬件信号线路被布线到所述另外的寄存器的最低位,其中所述第一值是偶数值并且所述第二值是奇数值。
因而,如果通过在所述位置中含有第二值(即,奇数值)的所述基准完整性度量检测到可信赖性,那么所述另外的寄存器在最低位被设置成1,并且在所述至少一个硬件信号线路上的硬件信号相应地被设置成值1,其中在所述至少一个硬件信号线路上的所述值1对应于所述硬件信号的所述第二状态。由于所述第一值是偶数,因此在验证可信赖性之前,所述另外的寄存器的最低位被设置成值0对应于所述硬件信号的第一状态,从而使得当没有给予可信赖性时,所述另外的寄存器和所述硬件信号保持值0。
根据本发明的实施例,在所述装置的引导序列期间验证所述可信赖性。
例如,所述装置的所述引导序列可以包括相继地加载和执行若干软件组件,如固件、BIOS、操作系统加载器以及操作系统和其它组件。
因而,当开始引导序列时,验证所述若干软件组件(例如,固件)的第一软件组件的可信赖性,并且仅当确定了所述第一软件组件的可信赖性时,才执行第一软件组件,否则,将所述硬件信号切换到第一状态中,以便指示没有给予软件的可信赖性。如果确定了所述第一软件组件的可信赖性,那么在所述第一软件组件的执行之后,验证所述引导序列的下一软件组件的可信赖性,从而使得每个软件组件在执行之前被验证。
任何上述验证方法都可以应用于在引导序列期间实现该可信赖性验证。
例如,包括平台配置寄存器(PCR)组的所述可信平台模块可以被应用于通过下列方式来实现上述验证:散列引导序列的所述若干软件组件中的软件组件的基准完整性度量,将其扩展到所述PCR组的PCR,以及通过将所述PCR的内容与至少一个基准完整性度量证书相比较来验证可信赖性。
例如,在开始对引导软件的验证之前,初始化PCR组中的任何PCR,并且将硬件信号切换到第一状态。
例如,如上所述,CRTM可以测量引导序列的所述若干软件组件的第一软件组件,其中通过测量所述第一软件组件的软件的散列值(即,第一基准度量)并且将该基准度量存储在所述PCR组的第一PCR中,所述第一软件组件可以对应于在所述装置中的固件。然后,将第一PCR中的该基准度量与至少一个基准完整性度量证书相比较,以便验证第一软件组件的可信赖性,并且仅当确定了第一组件是可信赖的时,才执行所述第一软件组件,以便启动引导序列,否则,将硬件信号切换到第一状态中,并且可以停止引导过程。然后,如果给予了第一软件组件的可信赖性,则从引导序列的相继(successive)软件组件来散列第二基准度量,并且将第二基准度量与第一PCR的内容相连接,并且在所述PCR组的第二PCR中扩展该连接的散列值,以便验证第二软件组件的可信赖性。在该迭代方式中,可以验证引导序列的软件组件的可信赖性,其中从引导序列的下一软件组件来散列基准度量,将该基准度量与对应于前面的软件组件的PCR的内容相连接,并且在所述PCR组中的下一PCR中对其进行扩展,以便验证可信赖性。如果引导序列正确,即,如果验证了引导序列的最后的软件组件的被扩展的基准度量(其取决于所有前面的PCR的内容)是正确的,那么可以将硬件信号切换到第二状态中,以便指示引导序列的软件的可信赖性。
例如,至少一个硬件信号线路可以被布线到所述PCR组的PCR,并且当验证了引导序列可信赖时,所述PCR被设置成预置值,例如被设置成值1,从而使得在所述至少一个硬件信号线路上具有值1的信号对应于在第二状态中的硬件信号,并且例如通过使用基准完整性度量证书(其含有位置用于如上所解释的可被设置到所述PCR中的值)来指示引导软件的可信赖性。如果没有给予可信赖性,那么所述PCR的内容是0,并且其对应于硬件信号的第一状态。
可选地,可信平台模块的微计算机可以连接到所述至少一个硬件信号线路,并且当给予了引导序列的软件的可信赖性时,可以将所述至少一个硬件信号线路上的信号切换到对应于第二状态(其指示引导软件是可信赖的)的所述预置值,否则,所述微计算机可以将所述至少一个硬件信号线路上的信号切换到对应于所述硬件信号的第一状态的另一预置值。
例如,所述至少一个硬件信号线路被连接到所述装置的至少一个接口,和/或被连接到所述装置的至少一个处理单元。然后,如上所述,在所述至少一个硬件信号线路上的硬件信号可以用于控制至少一个接口和/或控制至少一个所述处理单元,从而使得在引导的开始处,可以根据在所述至少一个硬件信号线路上的硬件信号的第一状态来禁用所述至少一个接口和/或所述至少一个处理单元,并且当硬件信号切换到第二状态时,可以启用所述至少一个接口和/或所述至少一个处理单元。
根据本发明的实施例,在所述装置的运行时操作期间验证所述可信赖性。
任何上述验证方法都可以被应用于在所述装置的运行时操作期间实现该可信赖性验证。
例如,在让用户将软件加载到装置中之前,将所述硬件信号切换到第一状态中,从而使得禁用例如所述装置的至少一个接口和/或所述装置的至少一个处理组件,并且然后加载所述软件和验证软件的可信赖性。如果所述软件可信赖,那么将所述硬件信号切换到第二状态中以指示所述软件的可信赖性,从而使得例如启用所述装置的所述至少一个接口和/或所述装置的所述至少一个处理组件。
例如,如果确定了没有给予软件的可信赖性,那么硬件信号可以切换到第一状态中直到所述装置被重置。
此外,在运行时操作期间可以重复进行所述可信赖性验证。
根据本发明的实施例,在验证所述软件的可信赖性之前,所述硬件信号被切换到第二状态中,其中在不重启所述装置的情况下,所述硬件信号无法从所述第一状态切换到不同的状态中。
所述第二状态可以指示给予了软件的可信赖性。
因而,在确定了软件不可信赖并且所述硬件信号从所述第二状态切换到所述第一状态的情况下,不可能将硬件信号切换回用于指示软件可信赖的第二状态中。如果确定软件不可信赖,那么所述硬件信号将保持所述第一状态直到关闭所述装置。这允许在已经确定软件不可信赖之后篡改硬件信号。
根据本发明的实施例,所述硬件信号经由至少一个硬件信号线路传输,并且其中所述硬件信号通过单向开关来切换,其中在不重启所述装置的情况下,所述单向开关无法将硬件信号从所述第一状态切换到不同的状态中。
所述单向开关可以连接到用于实现可信赖性验证的所述处理组件,其中所述处理组件可以由所述TPM模块表示。例如,当接通所述装置时,单向开关将所述至少一个硬件信号线路上的硬件信号切换到所述第二状态中。然后,如果确定软件不可信赖,则单向开关将硬件信号切换到第一状态中。由于所述单向开关无法将硬件信号切换回第二状态中,因此,所述硬件信号将永久指示没有给予可信赖性并且无法被篡改。
当具有如上所述的安全引导序列时,这允许使得用于实现可信赖性验证的处理组件的所有接口保持公开和开放,因为硬件信号无法从所述第一状态切换回第二状态中。
根据本发明的实施例,所述装置是单片处理器核心,并且所述硬件信号经由在所述单片处理器核心内部布线的至少一个硬件信号线路来传输。
所述至少一个硬件信号线路可以在允许非常有效地防止篡改所述硬件信号线路和硬件信号的芯片硅中布线。
根据本发明的实施例,所述单片处理器核心是用于移动电话的处理器核心。
所述至少一个硬件信号线路可以在允许非常有效地防止篡改所述硬件信号线路和硬件信号的芯片硅中布线。
例如,所述单片处理器核心可以包括通用处理组件和用于无线系统的专门操作的处理组件,例如,像用于GSM和/或3G功能/处理的处理组件,如GSM/3G核心。此外,所述单片处理器核心可以包括至少一个存储器以加载软件,其中所述软件还可以被加载到通用处理组件中。此外,所述单片处理器核心可以包括用于验证软件的可信赖性的可信平台模块,如在本发明的上述实施例中所解释的。
当硬件信号处于第一状态中时,所述硬件信号可以用于禁用用于GSM和/或3G功能的所述处理组件。
此外,所述单片处理器核心可以包括用于将处理器核心连接到射频模块的无线电接口。例如,所述硬件信号可以被反馈到该无线电接口,用于当硬件信号处于第一状态中时禁用所述无线电接口。
因而,当确定所述单片处理器中的软件不可信赖时,所述硬件信号可以禁用用于GSM和/或3G功能的处理组件,和/或可以禁用所述无线电接口,从而使得可以确定仅是有权利的(被许可的)软件才可以用于操作处理器核心的所述无线电接口和/或用于GSM和/或3G功能的处理组件。因而,防止了误用无线电接口,并且防止了电话本身例如通过增加的辐射而对网络以及对用户的伤害。此外,所述禁用可以使得降低移动电话的功率消耗。
此外,还公开了一种装置,其中所述装置包括:被配置以便存储软件的存储器;被配置以便验证软件的可信赖性的第一处理组件;连接到所述第一处理组件的至少一个硬件信号线路,并且其中,当所述软件不可信赖时,所述第一处理组件能够将所述至少一个硬件信号线路上的信号切换到第一状态中。
所述至少一个硬件信号线路上的所述信号对应于上述硬件信号。此外,关于所述方法及其实施例的上述解释对于所公开的装置及其以下实施例也是成立的。
根据本发明的实施例,所述装置包括至少一个另外的处理组件,并且所述至少一个硬件信号线路中的至少一个连接到所述至少一个另外的处理组件中的至少一个,并且在第一状态中,所述至少一个硬件信号线路上的所述信号禁用了所述至少一个处理组件中的所述至少一个。
根据本发明的实施例,所述装置包括至少一个接口,并且所述至少一个硬件信号线路中的至少一个连接到所述至少一个接口中的至少一个,并且在第一状态中,所述至少一个硬件信号线路上的所述信号禁用了所述至少一个接口中的所述至少一个。
根据本发明的实施例,所述第一处理组件被配置以便:提取所述软件的至少一个数字指纹,以及将所述至少一个数字指纹中的至少一个与用于验证所述软件的可信赖性的至少一个基准完整性指纹相比较。
根据本发明的实施例,所述第一处理组件是包括寄存器组和散列函数的可信平台模块,其中所述可信平台模块被配置以便:散列所述软件的至少一个基准度量,以及将所述至少一个基准度量扩展到所述寄存器组的至少一个寄存器中,并且将所述至少一个寄存器中的至少一个的内容与用于验证所述软件的可信赖性的至少一个基准完整性度量证书相比较。
根据本发明的实施例,所述第一处理组件被配置以便在所述装置的引导序列期间验证可信赖性。
根据本发明的实施例,所述第一处理组件被配置以便在所述装置的运行时操作期间验证可信赖性。
根据本发明的实施例,所述装置是单片处理器核心,并且所述至少一个硬件信号线路在该处理器内部布线。
根据本发明的实施例,所述装置是用于移动设备的单片处理器核心。
根据本发明的实施例,所述装置是用于移动设备的单片处理器核心。
此外,还公开了一种电子设备,其包括所公开的装置。例如,所述电子设备可以是移动电话。
最后,公开了一种计算机程序产品,其中程序代码被存储在计算机可读介质中。该程序代码当由处理器执行时实现了所公开的方法。
所述计算机程序产品可以例如是分离的存储设备,其可以例如是受保护的。此外,所述分离的存储设备可以被集成在上述可信平台组件中。
根据以下结合附图的详细描述,本发明的其它目的和特征将变得显而易见。然而,应当理解,附图仅是出于图示的目的而设计的,并且不作为对本发明的限制的定义,为此应当参照所附的权利要求。进一步应当理解,附图并未按比例绘制,并且它们仅旨在从概念上图示文中所描述的结构和过程。
附图说明
在附图中示出了:
图1a:根据本发明的示例性装置的示意框图;
图1b:包括根据本发明的装置的电子设备的示意框图;
图2a:用于根据本发明的可信计算组件的第一示例性设备;
图2b:用于根据本发明的可信计算组件的第二示例性设备;
图2c:用于根据本发明的可信计算组件的第三示例性设备;
图3:图示了根据本发明的第一示例性方法的流程图;
图4:图示了根据本发明的第二示例性方法的流程图;以及
图5:图示了根据本发明的第三示例性方法的流程图。
具体实施方式
图1a图示了示例性装置的示意框图,其中该装置表示可用于像移动电话这样的无线设备的处理器核心100。在下面的描述中,假设该处理器核心被配置用于GSM和/或3G移动电话,但是所述处理器核心可以被用于任何其它的无线系统,如WLAN等。
所述处理器核心100包括通用核心110、无线电核心120、可信计算组件130、至少一个存储器140、至少一个系统总线150,以及一组接口(包括SIM接口195、红外接口190、用于将处理器核心连接到射频模块的无线电接口170、音频接口180和至少一个另外的接口185)。所述处理器核心100可以包括另外的组件,如RAM或ROM,或者其它接口、或者至少一个石英振荡器等。
处理器核心100通过软件来操作,其中所述操作软件可以被存储在存储器140中或者被存储在通用核心110中的存储器中或者图1a中未示出的处理器核心中的任何其它的存储器中。此外,处理器核心100的组件经由所述至少一个系统总线150连接到一起。当然,这些组件可以通过超过一个的图示的系统总线150来连接。此外,通用核心可以通过使用协议来控制系统总线150及其业务。
所述无线电核心120可以包括无线系统的专门功能,如GSM和/或3G堆栈和/或用于GSM和/或3G系统的数字信号处理。
所述至少一个另外的接口185可以被用于将软件加载到处理器核心100,例如用于操作系统的软件、或者用于替换处理器核心中的固件软件的软件、或者驱动软件或处理器核心中的任何其它软件。这一加载的软件可以被加载到存储器140中或通用核心110中的存储器中。此外,所述至少一个另外的接口185可以用于将处理器核心100连接到移动设备的显示器或键板以及其它组件。
可信计算组件130(其可以对应于在以上发明内容中所提到的第一处理组件的示例性实现)被配置以便验证存储在处理器核心100的存储器中的软件的可信赖性,其中所述存储器可以是存储器140、通用核心110中的存储器,或者在图1a中未示出的处理器核心的任何其它存储器。例如,在处理器核心中任何新加载的软件在执行之前均可以通过可信计算组件130来验证。在发明内容中所解释的任何方法及其实施例都可以通过可信计算组件130来实现,以便验证所述软件的可信赖性。在下面的描述中,将解释用于验证软件的可信赖性的若干示例性方法。至少一个硬件信号线路162经由连接器161连接到可信计算组件。所述至少一个硬件信号线路162携带有根据本发明的硬件信号,并且当可信计算组件130确定软件不可信赖时,可信计算组件130将所述至少一个硬件信号线路162上的所述硬件信号切换到第一状态中。
所述至少一个硬件信号线路162可以经由连接器121连接到无线电核心120,并且其可以经由连接器171连接到无线电接口170,从而使得当所述至少一个硬件信号线路162上的硬件信号被切换到第一状态中时,禁用无线电核心120和/或无线电接口170。因而,在没有给予处理器核心中的软件的可信赖性的情况下(例如,其可以是由于将用于操作系统的黑客软件加载到处理器核心的黑客所造成的),禁用无线电接口170,以便防止误用该无线电接口,以及防止电话本身(例如通过增加的辐射)而对网络和对用户的伤害。这也可以通过禁用无线电核心120来实现。此外,无线电核心120的禁用导致降低移动电话的功率消耗。
此外,图1a中未示出,所述至少一个硬件信号线路162可以连接到处理器核心100的其它组件/接口,以便当所述至少一个硬件信号线路162上的硬件信号处于第一状态时,禁用这些组件/接口。例如,所述至少一个硬件信号线路162可以连接到SIM接口195,以便当可信计算组件130确定软件不可信赖时,禁用SIM接口195。
所述至少一个硬件信号线路162在处理器核心100中布线。只有可信计算组件130能够经由连接器161来改变在所述至少一个硬件信号线路162上的硬件信号。由于从可信计算组件130确定的可信赖性信息被提供到所述至少一个硬件信号线路162上所携带的硬件信号,因此,所确定的可信赖性信息可以从处理器核心的操作系统解偶,从而使得黑客不可以通过使用软件来破坏该硬件信号。因而,在所述至少一个硬件信号线路162上的该硬件信号表示关于所述装置上软件的可信赖性的可靠信息,因为所确定的可信赖性信息可以从所述装置的操作系统中解耦而被传输。使用根据本发明的硬件信号的该解决方案避免了所确定的可信赖性信息可经由软件(例如,当通过使用协议经由系统总线150来传输所确定的可信赖性信息时,该软件可以用于破坏所确定的可信赖性信息)来破坏。
例如,处理器核心100是单处理器核心。对于这种情况来说,所述至少一个硬件信号线路162可以在单处理器核心中(即在单处理器核心硅中)布线,以便非常有效地防止对所述至少一个硬件信号线路162的篡改以及由此对所述至少一个硬件信号线路162上的所述硬件信号的篡改。
图1b图示了包括图1a中所示的示例性处理器核心100的设备的示例性实施例,其中仅示出了该设备的经选择的组件,如连接到处理器核心100的无线电接口170的输出/输入172的射频模块174和天线175、连接到音频接口180的输出/输入181的音频组件182、连接到红外接口190的输出/输入191的红外组件192,以及连接到SIM卡控制器195的输出/输入196的SIM卡197。例如,所述设备可以是移动电话,其中,其它组件可以连接到处理器核心100的所述至少一个另外的接口180的输入/输出181。所述设备的另外的组件(如显示器、键板等)可以经由连接器186连接到处理器核心100的所述至少一个接口185。例如,所述设备可以是移动电话。
根据本发明,当确定处理器核心中的软件不可信赖时,将所述硬件信号切换到第一状态中,并且然后可以禁用处理器核心的无线电接口170,从而使得无线电接口模块174不反馈信号并且天线175不辐射。因而,在将未证明的软件加载到处理器核心的情况下,可以防止例如通过增加的辐射而对网络和对用户的伤害。
图3图示了用于根据本发明验证软件的可信赖性的第一示例性方法。该方法可以通过图1a中所示的可信计算组件130来实现,其中所述可信计算组件130可以通过图2a和2b中所示的可信平台模块200、210来实现。
根据该第一示例性方法,在步骤310,从处理器核心100中的所述软件中提取数字指纹,并且在步骤320,将所述数字指纹与至少一个基准完整性指纹相比较,用于在步骤330验证所述软件的可信赖性。
所述至少一个基准完整性指纹可以表示经证明的软件和/或经证明的软件的组件的至少一个指纹。因而,如果所述至少一个所提取的数字指纹中的所述至少一个对应于基准完整性指纹,那么可以假定:与所述至少一个所提取的数字指纹中的所述至少一个相对应的软件/软件组件无论如何都没有被破坏,因为可以假定其与经证明的软件/软件组件相同。
所述至少一个基准完整性指纹可以被存储在处理器核心100的存储器组件中,其中所述存储器组件可以是受保护的,例如防止黑客,并且其中所述存储器组件可以表示非易失性存储器。例如,所述存储器组件处于可信计算组件130中。
所述至少一个数字指纹可以通过散列函数来生成,其中所述散列函数计算软件或软件的组件的散列值。因而,所提取的数字指纹可以表示所提取的散列值,并且基准完整性指纹可以表示已经利用经证明的软件/软件组件的相同散列函数所计算的散列值。
如果所提取的数字指纹对应于数字基准完整性指纹,那么在步骤330中,确定软件或软件组件是可信赖的,并且然后在步骤340中,可以将硬件信号切换到第二状态中。该步骤340不是强制性的,例如当给予可信赖性时,可以不改变硬件信号。此外,在步骤330中,如果确定软件或软件组件不可信赖,那么在步骤350中,将硬件信号切换到第一状态中。
例如,根据图3所示的第一示例性方法的软件的可信赖性的所述验证可以遵守可信计算组的移动TPM规范,其中所述所提取的数字指纹可以对应于软件的散列值,并且所述数字基准完整性指纹可以对应于基准完整性度量证书。
图2a、2b和2c图示了可信计算组件200、210、215的第一、第二和第三示例性实施例,其可以被用于图1a中所示的可信计算组件130,并且其可以被应用来实现图3-5中所示的所述示例性方法。
在第一和第二示例性实施例中,所述可信计算组件通过可信平台模块(TPM)200、210来表示,所述可信平台模块(TPM)200、210包括微控制器240、平台配置寄存器(PCR)组220、存储器230、用于将TPM 200、210连接到总线系统(如图1a中所示的总线系统150)的输入/输出接口250,以及连接到连接器211(如图1a的连接器161)的硬件信号线路241,以便传输硬件信号(如图1a的信号162)。根据第一示例性实施例,所述连接器211可以被连接到微控制器240,从而使得微控制器可以将所述硬件信号线路241上的硬件信号切换到第一状态或第二状态中,或者,可选地,根据第二示例性实施例,所述硬件连接器211可以被连接到所述寄存器组220的寄存器,或者被连接到所述寄存器组220的寄存器的特定位。当所述TPM 200、210被用作图1a所示的装置100中的可信计算组件150时,连接器211于是类似于图1a的连接器161,用于经由图1a所示的连接器161提供所述至少一个硬件信号线路162。
例如,所述可信平台模块(TPM)200、210可以遵守可信计算组的移动TPM规范,并且所述可信平台模块可以表示TPM核心,其中所述TPM核心可以是受保护的核心。
此外,例如,包括平台配置寄存器(PCR)组220的所述可信平台模块200、210可以被应用于实现如在发明内容中所解释的对软件和/或软件组件的验证,其中基准完整性度量证书被存储在存储器230中,并且微控制器被用于:散列软件或软件组件的至少一个基准完整性度量,以及进行可信赖性验证。
图2c中所示的可信计算组件215的第三示例性实施例包括用于验证软件的可信赖性的处理组件260,其中,该可信计算组件215基本上可以对应于图2a中所示的第一或第二示例性实施例的可信平台模块200、210,从而使得处理组件260可以包括所述微控制器240、所述平台配置寄存器(PCR)组220,以及所述存储器230,而且任何其它的实现均可以被应用于合并到所述处理组件260中。
处理组件260连接到单向开关270,并且单向开关270连接到用于传输硬件信号的至少一个连接器211。所述单向开关270无法将硬件信号从所述第一状态切换到不同的状态中。
例如,在验证所述软件的可信赖性之前,所述硬件信号由所述单向开关270切换到第二状态中,其中所述第二状态可以指示给予了软件的可信赖性。
因而,在借助于所述处理组件确定了软件不可信赖以及所述硬件信号的情况下,处理组件260控制单向开关270,以便将所述硬件信号从第二状态切换到所述第一状态,并且然后不可能将硬件信号切换回用于指示所述软件是可信赖的第二状态中。这防止了在已经确定软件不可信赖之后篡改硬件信号。如果确定软件不可信赖,那么所述单向开关270将使硬件信号保持在所述第一状态中直到关闭所述装置。
当具有安全引导序列时,如下面或在发明内容中所示例性解释的,这允许用于进行可信赖性验证的处理组件260的所有接口250保持公开和开放,这是由于硬件信号因所述单向开关270的阻止而无法从所述第一状态切换到第二状态。
单向开关270还可以基于图2b中所示的可信计算组件210的第二示例性实施例通过TPM功能来实现,其中,被布线到所述至少一个硬件信号线路221、211的所述PCR组230中的所述寄存器无法从指示所述硬件信号的第一状态的值切换到指示不同状态的值。例如,所述寄存器的最低位被布线到所述至少一个硬件信号线路221、211,并且如果通过基准完整性度量证书检测到软件不可信赖,那么所述基准完整性度量证书将所述寄存器的内容更新到对应于第一状态的值,例如值2,其中所述值保持不变,直到关闭所述装置,并且因而所述寄存器在功能上对应于所述单向开关270。
图4图示了用于处理器核心100中的软件的验证的第二示例性方法的流程图,其可以用于在引导处理器核心100之前/引导处理器核心100时验证引导软件,但是其也可以用于在处理器核心100的运行时操作期间验证被加载到处理器核心100的软件的若干组件。所述验证可以分别通过图2a、2b和2c中所示的第一示例性TPM 200或第二示例性TPM 210或第三示例性TPM 215来实现。
例如,处理器核心的所述引导序列可以包括:相继地加载和执行若干软件组件,如固件、BIOS、操作系统加载器以及操作系统和其它组件。
例如,在开始对引导软件的验证之前,初始化PCR组中的任何PCR,并且将硬件信号切换到第一状态。
例如,根据步骤410,TPM 200、210的CRTM可以使得加载第一软件组件,并且在步骤411中,CRTM可以使得通过散列所述软件组件的第一基准度量而测量引导序列的所述若干软件组件中的第一软件组件,其中,所述第一软件组件可以对应于所述装置中的固件。之后,在步骤412中,在所述PCR组200的第一PCR中扩展该第一基准度量。然后,在步骤420中,将第一PCR中的该第一基准度量与至少一个基准完整性度量证书相比较,以便在步骤430中验证第一软件组件的可信赖性,并且仅当在步骤430中确定第一组件可信赖时,才在步骤440中执行所述第一软件组件,以便启动引导序列,否则根据步骤460,将硬件信号切换到第一状态中,并且可以停止引导过程。然后,如果根据步骤430给予了第一软件组件的可信赖性,则在步骤440中执行软件组件之后,在步骤441中检查是否存在将要加载的另外的软件组件。
如果存在要加载的另外的软件组件(如引导序列的相继的第二软件组件),那么流程图跳到开始并且在步骤410中加载第二软件组件,并且在步骤411中,散列所述第二软件组件的第二基准度量。然后,第二基准度量被扩展到所述PCR组的第二PCR中(例如,通过将第二基准度量与前面的PCR的内容相连接,并且将这一被连接的第二基准度量与前面的PCR的内容的散列值扩展到所述另外的PCR)。然后,在步骤420中,将所扩展的第二基准度量与至少一个基准完整性度量相比较,以便在步骤430中验证第二软件组件的可信赖性。在该迭代方式中,可以验证引导序列的软件组件的可信赖性,其中在步骤411中,从引导序列的下一软件组件来散列基准度量,通过将该基准度量与对应于前面的软件组件的PCR的内容相连接并且在步骤412中在所述PCR组的下一PCR中对其进行扩展,该基准度量被扩展到所述PCR组220的下一PCR中。如果引导序列正确,即,如果在步骤420和430中验证了引导序列的最后的软件组件的被扩展的基准度量(其取决于所有前面的PCR的内容)是正确的,那么在步骤450中,可以将硬件信号切换到第二状态中,以便指示引导序列的软件的可信赖性。
例如,如果使用了图2b中所示的TPM 210的第二示例性实施例,那么经由连接器211将硬件信号线路221布线到所述PCR组的PCR,例如,如果所述PCR组包括16个PCR,则布线到第15号PCR,并且可以将硬件信号线路布线到例如第15号PCR的最低有效位,并且当验证了引导序列可信赖时,所述PCR 15被设置成预置值,例如设置成值1或者任何奇数值,从而使得在所述至少一个硬件信号线路上的信号对应于在第二状态中的硬件信号,并且指示引导软件可信赖。如果没有给予可信赖性,那么所述PCR的内容是0,并且对应于硬件信号的第一状态。
此外,所述PCR 15(其可以对应于在发明内容中提及的所述另外的寄存器)适于被锁定,从而使得其仅可以通过基准完整性度量证书来更新。所述锁定功能可以通过TPM特征来提供。所述基准完整性度量不仅含有用于检查所述至少一个被扩展的基准度量中的至少一个的有效性的基准值,而且其还含有位置用于可被设置到所述PCR中的值。仅当所述基准完整性度量与至少一个所测量的基准度量相比较的完整性验证成功时,所述基准完整性度量中的所述值才被设置到所述PCR 15中。例如,所述基准度量证书可以在所述位置含有值1,并且所述基准证书可以用于验证引导序列的所述最后的软件组件的被扩展的基准度量,由此自动地验证所述前面的PCR的那些前面的被扩展的基准度量,从而使得仅当给予了引导序列的所有软件组件的可信赖性时,才通过所述基准度量证书将所述PCR 15更新为值1,并且相应地,将硬件信号切换到第二状态中(步骤450)。如果所述基准度量证书并没有检测到软件可信赖(步骤430),那么所述PCR15保持其值0,并且保持将硬件信号切换到第一状态中(步骤460)。
可选地,根据图2a中所示的TPM 200的第一示例性实施例,TPM 200的微控制器240连接到硬件信号线路241,并且根据步骤450,当给予了引导序列的软件的可信赖性时,将所述硬件信号线路上的信号切换到用于指示引导软件可信赖的第二状态中,否则根据步骤460,微计算机将所述硬件信号线路241上的信号切换到第一状态。
图5图示了用于对处理器核心100中的软件进行验证的第三示例性方法的流程图,其可以被应用于在处理器核心100的运行时操作期间进行软件的可信赖性验证。
例如,当用户想要在处理器核心100中加载新软件时,有必要验证软件,其可以是用于操作系统或新内核或任何其它东西的软件。
例如,在让用户将软件加载到处理器核心100中之前,所述硬件信号被切换到第一状态中,以便禁用无线电接口170和/或无线电核心129。然后,所述软件被加载到处理器核心的存储器中,并且可以根据图5中的流程图所示的方法验证所述软件。
在步骤510中,从该软件提取散列基准度量,然后在步骤520中,所述基准度量被扩展到PCR中,其中,根据在以上方法的第二示例性实施例中解释的步骤420可以实现该扩展。例如,通过将基准度量与对应于前面的软件组件的PCR的内容相连接并且在步骤520中在所述PCR组的下一PCR中对其进行扩展,从而扩展该基准度量。然后,在步骤530中,将该扩展的基准度量与至少一个基准完整性度量相比较,并且如果在步骤540中验证了软件不可信赖,则将硬件信号切换到第一状态中。
此外,基准完整性度量证书可以绑定于计数器(例如,用于新鲜度的保护计数器或自举计数器),从而使得在所述方法的第二示例性实施例的步骤420以及所述方法的第三示例性实施例的相应步骤530中比较基准度量的步骤操作可以进一步包括:比较基准完整性度量证书的计数器,例如以便保证加载了实际升级的软件版本,从而使得借助于该计数器检测到可能具有错误的较旧的软件版本。
虽然根据应用于本发明的优选实施例已经示出并描述和指出了本发明的基本新颖的特征,但是应当理解,在不背离本发明的精神的情况下,本领域的技术人员可以在所描述的设备和方法的形式和细节上进行各种省略以及替换和改变。例如,明确希望,以基本上相同的方式执行基本上相同的功能以达到相同效果的那些元件和/或方法步骤的所有组合都在本发明的范围之内。此外,应当认识到,结合本发明的任何公开的形式或实施例示出和/或描述的结构和/或元件和/或方法步骤可以作为设计选择的一般主题以任何其它公开或描述或建议的形式或实施例来合并。因此,希望仅根据所附的权利要求的范围所指示的来进行限制。此外,在权利要求中,装置加功能的款项在实现所陈述的功能时旨在涵盖文中所描述的结构,并且不仅是结构等效,而且还有等效结构。
Claims (35)
1.一种方法,其包括:
验证装置中软件的可信赖性;以及
当所述软件不可信赖时,将所述装置中的硬件信号切换到第一状态中。
2.根据权利要求1所述的方法,其中所述装置包括至少一个处理组件,所述方法包括:
当所述硬件信号处于第一状态中时,禁用所述至少一个处理组件中的至少一个。
3.根据权利要求1所述的方法,其中所述装置包括至少一个接口,所述方法包括:
当所述硬件信号处于第一状态中时,禁用所述至少一个接口中的至少一个。
4.根据权利要求1所述的方法,所述方法包括:
提取所述软件的至少一个数字指纹;
将所述至少一个数字指纹中的至少一个与用于验证所述软件的可信赖性的至少一个基准完整性指纹相比较。
5.根据权利要求1所述的方法,其中所述装置包括可信平台模块,所述可信平台模块包括寄存器组和散列函数,所述方法包括:
散列所述软件的至少一个基准度量;
将所述至少一个基准度量扩展到所述寄存器组的至少一个寄存器中;以及
将所述至少一个寄存器中的至少一个的内容与用于验证所述软件的可信赖性的至少一个基准完整性度量证书相比较。
6.根据权利要求5所述的方法,其中所述寄存器组中另外的寄存器仅能够通过基准完整性度量证书来更新,其中,所述另外的寄存器的至少一个位被布线到至少一个硬件信号线路,其中所述至少一个硬件信号线路传输所述硬件信号,并且其中所述方法进一步包括:
在验证所述软件的可信赖性之前,将所述另外的寄存器设置成第一值,所述第一值将所述至少一个硬件信号线路上的硬件信号切换到所述第一状态中;
在所述至少一个寄存器中的所述至少一个的内容与用于验证可信赖性的至少一个基准完整性度量证书的所述比较的结果是成功的情况下,通过所述基准完整性度量证书来将所述另外的寄存器更新成第二值,其中所述第二值将所述至少一个硬件信号上的硬件信号切换到指示所述软件的可信赖性的第二状态中。
7.根据权利要求1所述的方法,其中在所述装置的引导序列期间验证所述可信赖性。
8.根据权利要求1所述的方法,其中在所述装置的运行时操作期间验证所述可信赖性。
9.根据权利要求1所述的方法,其中在验证所述软件的可信赖性之前,所述硬件信号被切换到第二状态中,并且其中在不重启所述装置的情况下,所述硬件信号无法从所述第一状态切换到不同的状态中。
10.根据权利要求9所述的方法,其中所述硬件信号经由至少一个硬件信号线路来传输,并且其中所述硬件信号通过单向开关来切换,其中在不重启所述装置的情况下,所述单向开关无法将硬件信号从所述第一状态切换到不同的状态中。
11.根据权利要求1所述的方法,其中所述装置是单片处理器核心,并且其中所述硬件信号经由在所述单片处理器核心内部布线的至少一个硬件信号线路来传输。
12.一种装置,其包括:
存储器,所述存储器被配置以便存储软件;
第一处理组件,所述第一处理组件被配置以便验证所述软件的可信赖性;
至少一个硬件信号线路,所述至少一个硬件信号线路连接到所述第一处理组件,其中当所述软件不可信赖时,所述第一处理组件能够将所述至少一个硬件信号线路上的信号切换到第一状态中。
13.根据权利要求12所述的装置,其中所述装置包括至少一个另外的处理组件,并且其中,所述至少一个硬件信号线路中的至少一个连接到所述至少一个另外的处理组件中的至少一个,并且其中在所述第一状态中,所述至少一个硬件信号线路上的所述信号禁用了所述至少一个处理组件中的所述至少一个。
14.根据权利要求12所述的装置,其中所述装置包括至少一个接口,并且其中,所述至少一个硬件信号线路中的至少一个连接到所述至少一个接口中的至少一个,并且其中在所述第一状态中,所述至少一个硬件信号线路上的所述信号禁用了所述至少一个接口中的所述至少一个。
15.根据权利要求12所述的装置,其中所述第一处理组件被配置以便:提取所述软件的至少一个数字指纹,以及将所述至少一个数字指纹中的至少一个与用于验证所述软件的可信赖性的至少一个基准完整性指纹相比较。
16.根据权利要求12所述的装置,其中所述第一处理组件是包括寄存器组和散列函数的可信平台模块,其中所述可信平台模块被配置以便:散列所述软件的至少一个基准度量,以及将所述至少一个基准度量扩展到所述寄存器组中的至少一个寄存器中,并且将所述至少一个寄存器中的至少一个的内容与用于验证所述软件的可信赖性的至少一个基准完整性度量证书相比较。
17.根据权利要求16所述的装置,其中所述寄存器组中另外的寄存器仅能够通过基准完整性度量证书来更新,其中所述另外的寄存器的至少一个位被布线到至少一个硬件信号,其中所述至少一个硬件信号线路传输所述硬件信号,并且其中,所述可信平台模块被配置以便:在验证所述软件的可信赖性之前,将所述另外的寄存器设置成第一值,所述第一值将所述至少一个硬件信号线路上的硬件信号切换到第一状态中;在所述至少一个寄存器中的所述至少一个的内容与用于验证可信赖性的至少一个基准完整性度量证书的所述比较的结果是成功的情况下,通过所述基准完整性度量证书将所述另外的寄存器更新成第二值,其中,所述第二值将所述至少一个硬件信号上的硬件信号切换到指示所述软件的可信赖性的第二状态中。
18.根据权利要求12所述的装置,其中所述第一处理组件被配置以便:在所述装置的引导序列期间验证所述可信赖性。
19.根据权利要求12所述的装置,其中所述第一处理组件被配置以便:在所述装置的运行时操作期间验证所述可信赖性。
20.根据权利要求12所述的装置,其中所述处理组件被配置以便:在验证所述软件的可信赖性之前,将所述硬件信号切换到第二状态中,并且其中在不重启所述装置的情况下,所述硬件信号无法从所述第一状态切换到所述第二状态中。
21.根据权利要求20所述的装置,其中所述装置包括用于切换在所述至少一个硬件信号线路上的所述硬件信号的单向开关,其中所述单向开关连接到所述第一处理组件,并且其中在不重启所述装置的情况下,所述单向开关无法将所述硬件信号从所述第一状态切换到所述第二状态中。
22.根据权利要求12所述的装置,其中所述装置是单片处理器核心,并且其中所述至少一个硬件信号线路在所述处理器内部布线。
23.一种包括根据权利要求12所述的装置的电子设备。
24.一种计算机程序产品,其中程序代码存储在计算机可读介质中,所述程序代码当由处理器执行时实现了以下操作:
验证装置中软件的可信赖性;以及
当所述软件不可信赖时,将装置中的硬件信号切换到第一状态。
25.根据权利要求24所述的计算机程序产品,其中所述装置包括至少一个处理组件,所述计算机程序使得:当所述硬件信号处于第一状态中时,禁用所述至少一个处理组件中的至少一个。
26.根据权利要求24所述的计算机程序产品,其中所述装置包括至少一个接口,所述计算机程序使得:当所述硬件信号处于第一状态中时,禁用所述至少一个接口中的至少一个。
27.根据权利要求24所述的计算机程序产品,所述计算机程序使得:
提取所述软件的至少一个数字指纹;
将所述至少一个数字指纹中的至少一个与用于验证所述软件的可信赖性的至少一个基准完整性指纹相比较。
28.根据权利要求24所述的计算机程序产品,其中所述装置包括可信平台模块,所述可信平台模块包括寄存器组和散列函数,所述计算机程序使得:
散列所述软件的至少一个基准度量;
将所述至少一个基准度量扩展到所述寄存器组的至少一个寄存器中;以及
将所述至少一个寄存器中的至少一个的内容与用于验证所述软件的可信赖性的至少一个基准完整性度量证书相比较。
29.根据权利要求28所述的计算机程序产品,其中所述寄存器组中另外的寄存器仅能够通过基准完整性度量证书来更新,其中,所述另外的寄存器的至少一个位被布线到至少一个硬件信号,其中所述至少一个硬件信号线路传输所述硬件,并且其中所述计算机程序进一步使得:
在验证所述软件的可信赖性之前,将所述另外的寄存器设置成第一值,所述第一值将所述至少一个硬件信号线路上的硬件信号切换到第一状态中;
在所述至少一个寄存器中的所述至少一个的内容与用于验证可信赖性的至少一个基准完整性度量证书的所述比较的结果是成功的情况下,通过所述基准完整性度量证书将所述另外的寄存器更新成第二值,其中,所述第二值将所述至少一个硬件信号上的硬件信号切换到指示所述软件的可信赖性的第二状态中。
30.根据权利要求24所述的计算机程序产品,其中在所述装置的引导序列期间验证所述可信赖性。
31.根据权利要求24所述的计算机程序产品,其中在所述装置的运行时操作期间验证所述可信赖性。
32.根据权利要求24所述的计算机程序产品,其中在验证所述软件的可信赖性之前,所述硬件信号被切换到第二状态中,并且其中在不重启所述装置的情况下,所述硬件信号无法从所述第一状态切换到不同的状态中。
33.根据权利要求32所述的计算机程序产品,其中所述硬件信号经由至少一个硬件信号线路来传输,并且其中所述硬件信号通过单向开关来切换,其中在不重启所述装置的情况下,所述单向开关无法将硬件信号从所述第一状态切换到不同的状态中,并且其中,所述单向开关受控于所述计算机程序。
34.根据权利要求24所述的计算机程序产品,其中所述装置是单片处理器核心,并且其中,所述硬件信号经由在所述单片处理器核心内部布线的至少一个硬件信号线路来传输。
35.一种装置,其包括:
存储装置,所述存储装置用于存储软件;
第一处理装置,所述第一处理装置用于验证所述软件的可信赖性;
至少一个硬件信号线路,所述至少一个硬件信号线路连接到所述第一处理装置,其中当所述软件不可信赖时,所述第一处理装置包括:用于将所述至少一个硬件信号线路上的信号切换到第一状态中的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/527,747 US20080077801A1 (en) | 2006-09-25 | 2006-09-25 | Protecting interfaces on processor architectures |
US11/527,747 | 2006-09-25 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101542494A true CN101542494A (zh) | 2009-09-23 |
Family
ID=39167788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007800420665A Pending CN101542494A (zh) | 2006-09-25 | 2007-09-20 | 保护处理器体系结构上的接口 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20080077801A1 (zh) |
EP (2) | EP2069992B1 (zh) |
KR (1) | KR101229148B1 (zh) |
CN (1) | CN101542494A (zh) |
WO (1) | WO2008038196A2 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102934392A (zh) * | 2010-04-13 | 2013-02-13 | 康奈尔大学 | 用于信息网络的专用重叠 |
CN102986163A (zh) * | 2010-03-05 | 2013-03-20 | 交互数字专利控股公司 | 给设备提供安全性的方法和装置 |
CN105515776A (zh) * | 2010-03-05 | 2016-04-20 | 交互数字专利控股公司 | 给设备提供安全性的方法和装置 |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7809955B2 (en) * | 2006-10-17 | 2010-10-05 | Blue Ridge Networks, Inc. | Trustable communities for a computer system |
US8392724B2 (en) * | 2006-12-27 | 2013-03-05 | Panasonic Corporation | Information terminal, security device, data protection method, and data protection program |
CN101226569A (zh) * | 2007-01-19 | 2008-07-23 | 国际商业机器公司 | 在虚拟机中验证代码模块的方法及装置 |
US20090204964A1 (en) * | 2007-10-12 | 2009-08-13 | Foley Peter F | Distributed trusted virtualization platform |
JP5085287B2 (ja) * | 2007-11-21 | 2012-11-28 | 株式会社リコー | 情報処理装置、正当性検証方法および正当性検証プログラム |
US8621191B2 (en) * | 2007-12-26 | 2013-12-31 | Nokia Corporation | Methods, apparatuses, and computer program products for providing a secure predefined boot sequence |
US8281229B2 (en) * | 2008-12-30 | 2012-10-02 | Intel Corporation | Firmware verification using system memory error check logic |
KR101590188B1 (ko) * | 2009-05-08 | 2016-01-29 | 삼성전자주식회사 | 휴대단말기에서 소프트웨어 패키지의 무결성을 검증하는 방법 |
US8490179B2 (en) * | 2009-10-27 | 2013-07-16 | Hewlett-Packard Development Company, L.P. | Computing platform |
US20110107395A1 (en) * | 2009-11-03 | 2011-05-05 | Nokia Corporation | Method and apparatus for providing a fast and secure boot process |
US20120110562A1 (en) * | 2010-10-27 | 2012-05-03 | David Heinrich | Synchronized firmware update |
US9064118B1 (en) * | 2012-03-16 | 2015-06-23 | Google Inc. | Indicating whether a system has booted up from an untrusted image |
US20140007229A1 (en) * | 2012-06-29 | 2014-01-02 | Christopher T. Smith | System and method for identifying installed software products |
US9942257B1 (en) * | 2012-07-11 | 2018-04-10 | Amazon Technologies, Inc. | Trustworthy indication of software integrity |
CN104268461B (zh) * | 2014-09-16 | 2018-03-06 | 华为技术有限公司 | 一种可信度量方法及装置 |
KR101665794B1 (ko) | 2014-12-22 | 2016-10-13 | 현대오트론 주식회사 | 다이 기반의 차량 제어기 전용 반도체 설계 방법 및 이에 의해 제조되는 차량 제어기 전용 반도체 |
US9727737B1 (en) | 2015-07-27 | 2017-08-08 | Amazon Technologies, Inc. | Trustworthy indication of software integrity |
EP3663947B1 (en) * | 2018-12-06 | 2021-11-24 | Hewlett-Packard Development Company, L.P. | Protected peripheral ports |
US11334670B2 (en) | 2020-01-28 | 2022-05-17 | Hewlett Packard Enterprise Development Lp | Integrity verification for a software stack or part of a software stack |
US11520895B2 (en) | 2020-12-07 | 2022-12-06 | Samsung Electronics Co., Ltd. | System and method for dynamic verification of trusted applications |
US11657158B2 (en) * | 2021-05-24 | 2023-05-23 | Dell Products L.P. | Systems and methods for extending boot security trust chaining to state changes between boot sessions |
US20230006833A1 (en) * | 2021-07-01 | 2023-01-05 | Lenovo (Singapore) Pte. Ltd. | Ranked hash validation for new software update file |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5421006A (en) * | 1992-05-07 | 1995-05-30 | Compaq Computer Corp. | Method and apparatus for assessing integrity of computer system software |
US5864683A (en) * | 1994-10-12 | 1999-01-26 | Secure Computing Corporartion | System for providing secure internetwork by connecting type enforcing secure computers to external network for limiting access to data based on user and process access rights |
US6108787A (en) * | 1995-03-31 | 2000-08-22 | The Commonwealth Of Australia | Method and means for interconnecting different security level networks |
US5953502A (en) * | 1997-02-13 | 1999-09-14 | Helbig, Sr.; Walter A | Method and apparatus for enhancing computer system security |
US6304970B1 (en) * | 1997-09-02 | 2001-10-16 | International Business Mcahines Corporation | Hardware access control locking |
US6704399B1 (en) * | 1999-04-12 | 2004-03-09 | Conexant Systems, Inc. | Quick connect parameter exchange |
US6625729B1 (en) * | 2000-03-31 | 2003-09-23 | Hewlett-Packard Company, L.P. | Computer system having security features for authenticating different components |
US6928548B1 (en) * | 2000-09-29 | 2005-08-09 | Intel Corporation | System and method for verifying the integrity of stored information within an electronic device |
DE10235381A1 (de) * | 2002-08-02 | 2004-02-19 | Robert Bosch Gmbh | Verfahren zum Überspielen wenigstens eines Datensatzes aus einer externen Datenquelle in eine Recheneinheit, sowie Recheneinheit |
WO2004015553A1 (en) * | 2002-08-13 | 2004-02-19 | Nokia Corporation | Computer architecture for executing a program in a secure of insecure mode |
AU2003286013A1 (en) * | 2002-11-18 | 2004-06-15 | Hipaat Inc. | A method and system for access control |
US6834347B2 (en) * | 2003-04-29 | 2004-12-21 | International Business Machines Corporation | Target self-security for upgrades for an embedded device |
US7484099B2 (en) * | 2004-07-29 | 2009-01-27 | International Business Machines Corporation | Method, apparatus, and product for asserting physical presence with a trusted platform module in a hypervisor environment |
US7712143B2 (en) * | 2006-09-27 | 2010-05-04 | Blue Ridge Networks, Inc. | Trusted enclave for a computer system |
-
2006
- 2006-09-25 US US11/527,747 patent/US20080077801A1/en not_active Abandoned
-
2007
- 2007-09-20 EP EP07826469.4A patent/EP2069992B1/en active Active
- 2007-09-20 EP EP22179977.8A patent/EP4123487A1/en active Pending
- 2007-09-20 KR KR1020097008267A patent/KR101229148B1/ko active IP Right Grant
- 2007-09-20 WO PCT/IB2007/053815 patent/WO2008038196A2/en active Application Filing
- 2007-09-20 CN CNA2007800420665A patent/CN101542494A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102986163A (zh) * | 2010-03-05 | 2013-03-20 | 交互数字专利控股公司 | 给设备提供安全性的方法和装置 |
CN102986163B (zh) * | 2010-03-05 | 2015-11-25 | 交互数字专利控股公司 | 给设备提供安全性的方法和装置 |
CN105515776A (zh) * | 2010-03-05 | 2016-04-20 | 交互数字专利控股公司 | 给设备提供安全性的方法和装置 |
CN102934392A (zh) * | 2010-04-13 | 2013-02-13 | 康奈尔大学 | 用于信息网络的专用重叠 |
CN102934392B (zh) * | 2010-04-13 | 2015-07-15 | 康奈尔大学 | 用于信息网络的专用重叠 |
US9813233B2 (en) | 2010-04-13 | 2017-11-07 | Cornell University | Private overlay for information networks |
Also Published As
Publication number | Publication date |
---|---|
KR101229148B1 (ko) | 2013-02-04 |
WO2008038196A3 (en) | 2008-08-14 |
US20080077801A1 (en) | 2008-03-27 |
WO2008038196A2 (en) | 2008-04-03 |
EP4123487A1 (en) | 2023-01-25 |
EP2069992A2 (en) | 2009-06-17 |
EP2069992B1 (en) | 2022-07-06 |
KR20090080050A (ko) | 2009-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101542494A (zh) | 保护处理器体系结构上的接口 | |
US10516533B2 (en) | Password triggered trusted encryption key deletion | |
US10176330B2 (en) | Global platform health management | |
US7917762B2 (en) | Secure execution environment by preventing execution of unauthorized boot loaders | |
US8789037B2 (en) | Compatible trust in a computing device | |
US9111097B2 (en) | Secure execution architecture | |
KR101190479B1 (ko) | 티켓 인증 보안 설치 및 부트 | |
US8826405B2 (en) | Trusting an unverified code image in a computing device | |
US9164925B2 (en) | Method and apparatus for authorizing host to access portable storage device | |
US8464047B2 (en) | Method and apparatus for authorizing host to access portable storage device | |
CN105468980A (zh) | 一种安全管控的方法、装置及系统 | |
Regenscheid | BIOS protection guidelines for servers | |
Nelson et al. | Modeling and analysis of trusted boot processes based on actor network procedures | |
EP1535124A1 (en) | Computer architecture for executing a program in a secure of insecure mode | |
CN117494232B (zh) | 固件的执行方法和装置、系统、存储介质及电子设备 | |
KR20230145166A (ko) | 읽기 전용 메모리(rom) 보안 | |
CN117099105A (zh) | 只读存储器(rom)安全 | |
Günes et al. | Verified boot in embedded systems with hard boot time constraints | |
Noller | Security Target | |
Rahmatian | Intrusion Detection for Embedded System Security |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20151222 Address after: Espoo, Finland Applicant after: Technology Co., Ltd. of Nokia Address before: Espoo, Finland Applicant before: Nokia Oyj |
|
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20090923 |
|
RJ01 | Rejection of invention patent application after publication |