CN106022136B - 信息处理装置及该装置的控制方法 - Google Patents
信息处理装置及该装置的控制方法 Download PDFInfo
- Publication number
- CN106022136B CN106022136B CN201610165030.7A CN201610165030A CN106022136B CN 106022136 B CN106022136 B CN 106022136B CN 201610165030 A CN201610165030 A CN 201610165030A CN 106022136 B CN106022136 B CN 106022136B
- Authority
- CN
- China
- Prior art keywords
- information processing
- processing unit
- safety chip
- volatile memory
- cryptographic hash
- 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
Links
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/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- 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/81—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer by operating on the power supply, e.g. enabling or disabling power-on, sleep or resume operations
-
- 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
-
- 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/52—Monitoring 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
-
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4403—Processor initialisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (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)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供信息处理装置及该装置的控制方法。一种保持安全芯片的信息处理装置,所述信息处理装置包括:确定单元,其确定所述信息处理装置是否从空闲状态返回;检测单元,在所述确定单元确定所述信息处理装置从所述空闲状态返回的情况下,在启动应用软件之前检测所述安全芯片的初始化;以及控制单元,在所述检测单元检测到所述安全芯片的初始化的情况下,控制所述信息处理装置的操作,使得在初始化的安全芯片中不登记所述应用软件的哈希值。
Description
技术领域
本发明涉及一种保持安全芯片的信息处理装置以及该信息处理装置的控制方法。
背景技术
提出使用安全芯片对在计算机上运行的计算机程序进行篡改检测。以包括易失性存储器和非易失性存储器的可信平台模块(TPM)作为一般的安全芯片的示例。
例如,在启动计算机之后,将通过计算机的中央处理单元(CPU)执行的计算机程序的哈希值(hash value)依次登记在TPM中的易失性存储器中。计算机程序包括引导装载程序、操作系统(OS)以及应用软件。在登记之后,将从正在执行的计算机程序重新计算的哈希值,与TPM中的易失性存储器中登记的哈希值进行比较,以检测计算机程序是否被篡改。
还提出了在从例如节电模式下的空闲状态返回时,检测在计算机的存储器中的数据的篡改的技术。
由于当计算机在节电模式下进入空闲状态时停止向TPM的电力供给,因而在TPM中的易失性存储器中登记的哈希值会消失。因此,当计算机从空闲状态返回时,在TPM中的易失性存储器中登记的哈希值已然消失。由于哈希值已然消失而无法进行篡改的检测,因此在TPM中采取下面的措施。
在转变到空闲状态之前,TPM将在TPM中的易失性存储器中登记的哈希值保存到非易失性存储器中。在保存之后停止电力供给。在从空闲状态返回之后,在非易失性存储器中保存的哈希值被恢复至易失性存储器中。
日本特开2009-187134号公报公开了一种关于哈希值的保存的技术。特别地,在计算机改变到空闲状态之前,将存储器的快照中的哈希值存储在TPM的非易失性存储器中。然后,当计算机从空闲状态返回时,将从快照重新计算的哈希值与存储在非易失性存储器中的哈希值进行比较。
然而,在TPM将在易失性存储器中登记的哈希值保存到非易失性存储器中之后,CPU执行应用软件的情况下,应用软件的哈希值被再次登记在易失性存储器中。
换句话说,此时,非易失性存储器的内容与易失性存储器的内容不一致。为了防止存储器的内容之间出现不一致,在易失性存储器的内容存储到非易失性存储器之后,在易失性存储器中登记哈希值的情况下,在TPM中对非易失性存储器的内容进行初始化。
在转变到空闲状态之前对非易失性存储器进行初始化的情况下,当计算机从空闲状态返回时在易失性存储器中恢复初始值。在这种状态下,无法检测已启动的应用软件是否被篡改。此外,当要登记新启动的应用软件的哈希值时,在未对其他软件(例如引导装载程序或OS等)的哈希值进行登记的状态下登记该哈希值。当在未对其他软件(例如引导装载程序或OS等)的哈希值进行登记的状态下进行篡改的检测时,确定进行了篡改。
本发明提供一种保持安全芯片的信息处理装置,其能够防止在信息处理装置从空闲状态返回之后在安全芯片中登记应用软件的哈希值时出现任何问题。
发明内容
本发明提供一种保持能够登记哈希值的安全芯片的信息处理装置,所述信息处理装置包括:登记单元,其被构造为在信息处理装置开始转换到空闲状态之后,将登记在安全芯片内包括的易失性存储器中的哈希值登记到安全芯片内包括的非易失性存储器中,以及,在信息处理装置开始转换到空闲状态之后,在其他哈希值被登记在安全芯片内包括的易失性存储器中时,初始化安全芯片内包括的非易失性存储器;确定单元,其确定所述信息处理装置是否从空闲状态返回;检测单元,在所述确定单元确定所述信息处理装置从所述空闲状态返回的情况下,在安全芯片内包括的非易失性存储器的值被转移到安全芯片内包括的易失性存储器之后、启动应用软件之前检测所述安全芯片内包括的易失性存储器的初始化;以及控制单元,在所述检测单元检测到所述安全芯片内包括的易失性存储器的初始化的情况下,控制所述信息处理装置的操作,使得在初始化的安全芯片内包括的易失性存储器中不登记所述应用软件的哈希值。
根据以下参照附图对示例性实施例的描述,本发明的其他特征将变得清楚。
附图说明
图1是例示根据第一实施例的信息处理装置的示例性基本硬件构造的框图。
图2A和图2B包括用于描述在第一实施例中的引导过程的图。
图3A至图3D包括用于描述在第一实施例中的空闲状态转变处理的图。
图4A至图4C包括用于描述在第一实施例中的系统返回处理的图。
图5A和图5B包括用于描述在第二实施例中的系统返回处理的图。
图6A和图6B包括用于描述在第四实施例中的系统返回处理的图。
图7A和图7B包括用于描述在第五实施例中的系统返回处理的图。
图8A至图8C包括用于描述在第五实施例中的数据使用限制处理和数据使用处理的图。
图9A至图9D包括用于描述在第五实施例中的篡改检测处理的图。
图10A至图10C包括用于描述在第三实施例中的TPM使用处理的图。
图11是用于描述在第一实施例中的另一空闲状态转变处理的图。
具体实施方式
<第一实施例>
<信息处理装置的硬件构造>
下面,参照图1描述可应用于第一实施例的信息处理装置的示例性硬件构造。图1是例示根据第一实施例的信息处理装置的示例性基本硬件构造的框图。参照图1,信息处理装置11例如是广泛使用的个人计算机或信息移动终端,能够进行图像数据的复印、扫描和打印的图像处理装置,或者能够进行数码拍照的摄像装置。
如图1所示,在第一实施例中的信息处理装置11包括只读存储器(ROM)12、硬盘驱动器(HDD)14、随机存取存储器(RAM)110、CPU 111以及TPM 112。
ROM 12是能够进行物理或逻辑重写的非易失性存储器,并且是能够存储基本输入/输出系统(BIOS)13、各种程序(未示出)和数据的辅助存储单元。BIOS 13是控制整个信息处理装置11的程序。BIOS 13是向信息处理装置11施加电力时在信息处理装置11中首先启动的计算机程序。
HDD 14是能够存储引导装载程序15、OS 16、应用17、应用18、应用19及各种数据的辅助存储单元。引导装载程序15进行包括对接下来应当启动的OS进行指定和启动的控制。OS 16是控制各种程序的加载、对RAM 110的管理、以及包括键盘(未示出)和画面输出的输入输出功能的程序。应用17、应用18、应用19中的各个例如是地址簿、邮件程序、文字处理器、电子制表软件、数据库管理器或网络浏览器。或者,应用17、应用18、应用19中的各个可以是提供信息处理装置11的用户想要作为功能而进行的,诸如视频和/或音频回放、打印、以及通信的操作的程序(应用软件)。尽管在第一实施例中描述了在信息处理装置11中安装三个应用的示例,但是第一实施例并不限于此。可以在信息处理装置11中安装任意数量的应用。
RAM 110是易失性存储器。RAM 110是临时存储程序和各种数据(操作状态)以进行CPU 111中的处理的主存储单元。
CPU 111是能够控制信息处理装置11中的各组件的操作、或执行加载在RAM 110中的程序的电子电路。
TPM 112是具有抗篡改性的安全芯片。抗篡改性是在试图外部分析的情况下,通过破坏存储在TPM 112中的程序或数据,使外部分析变得困难并进行自我防御的特性。TPM112包括控制器113、NvRAM 114以及平台配置寄存器(platform configuration register,PCR)115。
控制器113例如进行在PCR 115中登记哈希值、生成数字签名、以及如下所述的加密和解密。NvRAM 114是非易失性存储器,除了如下所述的哈希值,还存储生成数字签名所必需的密钥、加密和解密所必需的加密密钥等。PCR 115是易失性存储器(寄存器),其存储基于在信息处理装置11中执行的程序的哈希值的值。在下面的描述中,程序是如上所述的BIOS 13、引导装载程序15、OS 16、应用17、应用18、以及应用19中的任意一者。
在第一实施例中的信息处理装置11中,如下所述,在空闲状态下停止对TPM 112的电力供给。换句话说,由于TPM 112中的NvRAM 114是非易失性存储器,因此在NvRAM 114中的数据在空闲状态下也能够保持。反之,由于PCR 115是易失性存储器,因此当信息处理装置11进入空闲状态时,PCR 115中的信息被丢弃(初始化至初始值)。应当注意,在信息处理装置11转变到空闲状态之前保持在PCR 115中的数据,在信息处理装置11从空闲状态返回之后不会被保持在PCR 115中。
上面描述了第一实施例中的信息处理装置的硬件构造。
<引导过程流程>
现在参照图2A详细描述第一实施例中的引导过程。下面的流程在如上所述的信息处理装置11中进行,流程中的各步骤通过相应的程序以及执行程序的CPU 111来实现。
图2A是例示了可应用于第一实施例的示例性引导过程的流程图。
在步骤21中,在对信息处理装置11施加电力时,启动BIOS 13。在步骤22中,BIOS13测量BIOS 13的哈希值,并将测量的哈希值登记在TPM 112中。
现在将描述第一实施例中的测量处理和登记处理。测量处理是计算要测量的程序代码的哈希值的处理。在第一实施例中,并不特别限定计算哈希值的哈希函数,可以应用各种已知的哈希函数(包括SHA1,SHA256以及SHA512)。或者,可以应用任意函数,只要能使用该函数计算出能够用来唯一识别出要测量的程序的特征值即可。
登记处理是将通过测量处理计算出的哈希值发送到TPM 112、并将根据等式(1)在TPM 112中计算出的值记录在PCR 115上的处理:
DATA_i+1=H(DATA_i|INPUT) (1)
在等式(1)中,INPUT是从TPM 112的外部输入的哈希值,DATA_i是在TPM 112中的登记中记录于PCR 115上的值。另外,“x|y”表示值x与值y之间的连接。此外,DATA_i+1是当从TPM 112的外部输入值INPUT时计算的结果。换句话说,当将INPUT输入至TPM 112中时,将DATA_i+1记录在TPM 112中的PCR 115上。
在第一实施例中,假设当i=0时PCR的初始值(DATA_0)等于零(“0”)。然而,第一实施例不限于此,PCR的初始值可以是零以外的任意常数。
在第一实施例中,PCR 115由5个存储区域组成,并且各存储区域能够利用标识符(ID)来识别。图2B例示了第一实施例中的PCR的示例性结构。如图2B中附图标记29所例示,第一实施例中的PCR包括利用ID 1至5来识别的5个区域。尽管在第一实施例中描述了PCR包括5个区域的示例,但是第一实施例不限于此。PCR可以包括任意数量的区域。
图2B中的附图标记29表示在启动信息处理装置11之前PCR的状态。换句话说,如上所述,在PCR的各区域中存储初始值“0”。相比之下,图2B中的附图标记211表示在进行步骤22中的BIOS的测量处理和登记处理之后PCR的状态。如附图标记211所表示的,使用BIOS的哈希值作为INPUT,根据等式(1)来计算DATA_1,并将计算结果作为H1记录在PCR1上。PCR1是PCR的具有ID=1的存储区域。在下面的描述中,PCRn(n=1至5)表示PCR的具有ID=n的存储区域。
重新参见图2A,在步骤23中,BIOS 13测量引导装载程序15的哈希值,并将所测量的哈希值登记在TPM 112中。由于步骤23中的引导装载程序的测量处理和登记处理与步骤22中的BIOS的测量处理和登记处理相同,因此在此省略详细描述。在步骤23中,将使用引导装载程序15的哈希值作为INPUT、根据等式(1)计算出的值作为H2登记在PCR2中。图2B中的附图标记213表示在步骤23中的引导装载程序的测量处理和登记处理之后PCR的状态。在步骤24中,BIOS 13启动引导装载程序15。
在步骤25中,引导装载程序15测量OS 16的哈希值,并将所测量的哈希值登记在TPM 112中。由于步骤25中的OS的测量处理和登记处理与步骤22和步骤23中的相同,因此在此省略详细描述。在步骤25中,将使用OS 16的哈希值作为INPUT、根据等式(1)计算出的值作为H3登记在PCR3中。图2B中的附图标记215表示在步骤25中的OS的测量处理和登记处理之后PCR的状态。
在步骤26中,引导装载程序16启动OS 16。在步骤27中,OS 16测量应用17的哈希值,并将所测量的哈希值登记在TPM 112中。由于步骤27中的应用的测量处理和登记处理与如上所述的测量处理和登记处理相同,因此在此省略详细描述。在步骤27中,将使用应用17的哈希值作为INPUT、根据等式(1)计算出的值作为H4登记在PCR4中。图2B中的附图标记217表示在步骤27中的应用的测量处理和登记处理之后PCR的状态。
尽管在第一实施例中,只有应用17在引导过程中启动,但是第一实施例并不限于此。任意数量的应用都可以启动。
在步骤28中,OS 16启动应用17。
描述了在第一实施例中引导过程的流程图。如上所述,在对信息处理装置11施加电力时,BIOS 13、引导装载程序15、OS 16、以及应用17的各程序顺次启动。在引导过程的一系列步骤中,各程序的哈希值顺次记录在PCR上,并且在完成信息处理装置11的引导过程的情况下,PCR处于图2B中的附图标记217所例示的状态中。换句话说,在完成引导过程时,在信息处理装置11中执行的所有程序的哈希值都记录在PCR上。
图2B中的附图标记210、212、214、216和218表示在TPM 112中的NvRAM 114的状态。在第一实施例中,NvRAM 114也由如PCR 115中的5个存储区域组成,并且各存储区域能够利用其ID来识别。尽管在第一实施例中描述了NvRAM包括5个区域的示例,但第一实施例不限于此。NvRAM可以包括任意数量的区域。由于在第一实施例中的引导过程中,没有值记录在NvRAM 114上,因此在图2B中的状态210、212、214、216和218中登记初始值“0”。
如上所述的引导过程使得登记在PCR 115中的哈希值能够用在下面描述的数据使用限制处理和篡改检测处理中。
<空闲状态转变处理>
现在将参照图3A详细描述第一实施例中的空闲状态转变处理。下面的流程在如上所述的信息处理装置11中进行,流程中的各步骤通过相应的程序以及执行程序的CPU 111来实现。
图3A是例示了可应用于第一实施例的示例性的空闲状态转变处理的流程图。
响应于信息处理装置11的用户利用键盘、鼠标和/或按钮(未示出)针对信息处理装置11的进行空闲状态转变处理的指令,启动空闲状态转变处理。或者,在一定时间内没有出现针对信息处理装置的任何操作的情况下,信息处理装置11可以自动启动空闲状态转变处理。
在步骤31中,开始空闲状态转变处理时,将TPM 112中的PCR 115中的值保存到NvRAM 114中。将参照图3B详细描述步骤31。图3B中的附图标记35和36分别表示在步骤31中将PCR 115中的值保存到NvRAM 114中之前,PCR 115和NvRAM 114的状态。由附图标记35和36所表示的状态与图2B中由附图标记217和218所表示的状态相同。在步骤31中,保持在PCR115中的哈希值被复制到NvRAM 114。其结果是,在保存PCR中的值之后,NvRAM 114处于图3B中的附图标记38所表示的状态。反之,在步骤31中,PCR 115的内部状态没有改变。因此,图3B中的附图标记37所表示的状态与附图标记35所表示的状态相同。
在步骤31中保存PCR中的值之后,在步骤32中,信息处理装置11改变到空闲状态。尽管在第一实施例中,在空闲状态下对信息处理装置11中的RAM 110的电力供给仍在继续,但是停止对TPM 112的电力供给。如上所述,由于TPM 112中的PCR 115是易失性存储器,所以在PCR115中的哈希值被丢弃,并且在信息处理装置11在步骤32中改变到空闲状态时,被初始化为初始值“0”。图3B中的附图标记39表示在空闲状态下PCR 115的状态。由于在空闲状态下停止对TPM 112的电力供给,因此PCR 115被初始化为初始值“0”。
反之,由于TPM 112中的NvRAM 114是非易失性存储器,因此即使在步骤32中信息处理装置11进入空闲状态时,NvRAM 114中的哈希值仍继续保留。图3B中的附图标记310表示在空闲状态下NvRAM 114的状态。
在第一实施例中,表示信息处理装置11是否处于空闲状态的标记记录在HDD 14上,以确定在下面描述的系统返回处理中,信息处理装置11是否处于系统返回状态。
描述了第一实施例中的空闲状态转变处理。
在图3A所例示的空闲状态转变处理中,在步骤31中将PCR 115中的值保存在NvRAM114中之后,信息处理装置11在步骤32中立即改变到空闲状态。然而,第一实施例不限于此。在步骤31中将PCR 115中的值保存在NvRAM 114中之后,可以启动应用。尽管这种情况原本不应该,但是在应用具有高执行优先级的情况下,或者在由于例如系统内的中断而无意中启动应用的情况下,上述情况可能会发生。或者,在步骤31中将PCR 115中的值保存在NvRAM114中之后,恶意软件可能会故意启动。
现在参照图3C描述在步骤31中将PCR 115中的值保存在NvRAM114中之后启动应用的情况下的空闲状态转变处理。下面的流程在如上所述的信息处理装置11中进行,并且流程中的各步骤通过相应的程序以及执行程序的CPU 111来实现。
图3C是例示了可应用于第一实施例的示例性的空闲状态转变处理的流程图。对图3A和图3C中相同的步骤添加相同的步骤号码,并且在此省略相同步骤的详细描述。图3D例示了在空闲状态转变处理中如何改变PCR 115和NvRAM 114的状态。对图3B和图3D中相同的状态添加相同的附图标记,并且在此省略相同状态的详细描述。
参见图3C,在步骤31中将PCR 115中的值保存在NvRAM 114中之后,在步骤33中,进行应用18的测量处理和登记处理。将使用应用18的哈希值作为INPUT、根据等式(1)计算出的值作为H5登记在PCR5中。在应用18的测量处理和登记处理之后,在步骤34中,执行应用18。
图3D中的附图标记311表示在步骤33中的应用18的测量处理和登记处理之后PCR的状态。应当注意,此时,在应用18的测量处理和登记处理之后,在NvRAM 114的状态38中PCR5的值与在状态311中的值不相同。尽管在下面描述的系统返回处理中将对此进行详细描述,但是在系统返回之后将现阶段保存在NvRAM 114中的哈希值(状态38)恢复到PCR 115中。在这种情况下,在信息处理装置11改变到空闲状态之前PCR 115的状态(状态311)与在信息处理装置11从空闲状态返回之后PCR 115的状态不一致。换句话说,在信息处理装置11从空闲状态返回之后,在步骤34中执行的应用18的哈希值没有体现在PCR 115中。
为了避免上述情况,在第一实施例中,在步骤35中初始化NvRAM114。在步骤35中NvRAM 114初始化至初始值“0”之后NvRAM 114的状态用图3D中的附图标记312来表示。
在步骤35中初始化NvRAM 114之后,在步骤32中,信息处理装置11改变到空闲状态。在信息处理装置11改变到空闲状态之后PCR 115和NvRAM 114的状态分别用图3D中的附图标记313和314来表示。由于停止对TPM 112的电力供给,所以作为易失性存储器的PCR115被初始化。相比之下,在步骤35中初始化的状态下保留NvRAM 114。
如上所述,在第一实施例中,在空闲状态下信息处理装置11中的PCR 115具有初始值。相比之下,如图3B中的状态310,NvRAM 114上记录有哈希值,或者如图3D中的状态314,NvRAM 114被初始化。
当信息处理装置11进行向空闲状态的转变处理时,可以确定在保存PCR中的值之后是否执行应用。图11是例示了包括确定在保存PCR中的值之后是否执行应用的步骤的空闲状态转变处理的流程图。如图11所例示,当在保存PCR中的值之后执行应用的情况下,阻止信息处理装置11进入空闲状态,并向用户给出通知,例如在监视器上向用户发出警告。这能防止信息处理装置11在初始化了NvRAM 114的状态下改变到空闲状态。
描述了第一实施例中的空闲状态转变处理。
<系统返回处理>
现在参照图4A详细描述第一实施例中的系统返回处理。下面的流程在如上所述的信息处理装置11中进行,并且流程中的各步骤通过相应的程序以及执行程序的CPU 111来实现。
图4A是例示了可应用于第一实施例的示例性的系统返回处理的流程图。响应于信息处理装置11的用户利用键盘、鼠标和/或按钮(未示出)针对通过上面参照图3A或图3C描述的空闲状态转变处理而处于空闲状态的信息处理装置11的进行系统返回处理的指令,启动系统返回处理。
参见图4A,在步骤41中,确定信息处理装置11是否从空闲状态返回。该确定基于图3A或图3C中的步骤32中在HDD 14上记录的标记。在标记表示信息处理装置11从空闲状态返回的情况下(步骤41中:是)处理前进到步骤42,否则(步骤41中:否)前进到步骤46。
在步骤42中,将在NvRAM 114上记录的哈希值返回到PCR 115(以下称为“PCR返回处理”)。现在,将参照图4B和图4C描述第一实施例中的PCR返回处理。图4B中的附图标记48和49分别表示在图3A所例示的空闲状态转变处理之后,PCR 115和NvRAM 114的状态。状态48和49与图3B中的状态39和310相对应。
图4C中的附图标记414和415分别表示在图3C所例示的空闲状态转变处理之后,PCR 115和NvRAM 114的状态。状态414和415与图3D中的状态313和314相对应。
在步骤42中的PCR返回处理之后,在图4B中的情况下,将NvRAM 114的状态49复制到PCR 115,并且PCR 115处于状态410。在图4C中的情况下,将NvRAM 114的状态415复制到PCR 115,并且PCR 115处于状态416。在步骤42中的PCR返回处理之后,NvRAM 114的状态没有改变。因此,在状态411中保留图4B中的状态49,以及在状态417中保留图4C中的状态415。
在步骤42中的PCR返回处理之后,在步骤43中,读出PCR的状态。在第一实施例中,在步骤43中读出图4B中的状态410或图4C中的状态416。
在步骤44中,确定PCR是否具有初始值。在PCR具有初始值的情况下(步骤44中:是),处理前进到步骤45,否则(步骤44中:否)前进到步骤46。
响应于信息处理装置11的用户利用鼠标、键盘和/或按钮(未示出)的执行应用19的指令,在步骤46中,测量应用19的哈希值,并将所测量的哈希值登记在TPM 112中。由于以与如上所述的测量和登记相同的方式来进行步骤46中的应用19的测量和登记,因此在此省略其详细描述。在步骤46中,将使用应用19的哈希值作为INPUT、根据等式(1)计算出的值作为H6登记在PCR5中。图4B中的附图标记412表示在步骤46中的应用19的测量和登记之后PCR115的状态。在步骤47中,执行应用19。
在第一实施例中仅执行了应用19,然而第一实施例不限于此。可以执行任意数量的应用。在这种情况下,重复步骤46和步骤47。
在步骤45中,重启信息处理装置11。重启使得再次进行引导过程(图2A)。由于在图2A中的引导过程中,重新测量包括BIOS、引导装载程序、OS、以及各应用的一系列程序,并将重新测量的值重新登记在PCR 115中,因此不具有初始值的PCR 115的有效状态被恢复。
对在步骤44中PCR 115是否具有初始值的确认的定时是非常重要的。在步骤42中的PCR返回处理之前进行步骤44的情况下,无法正确地确定PCR 115的有效性。这是因为在PCR返回处理之前的任意时间,PCR 115都具有初始值。
另外,在步骤46中测量并登记应用19之后进行步骤44的情况下,同样无法正确地确定PCR 115的有效性。这是因为通过对应用19的测量和登记,PCR 115的值基于等式(1)而被更新。
因此,如第一实施例中所描述,在步骤42中从NvRAM 114的PCR返回处理之后、以及在步骤46中的对应用19的测量和登记之前进行步骤44,能够正确地确定PCR 115的有效性。
仅当信息处理装置11在步骤41中从空闲状态返回时,对在步骤44中PCR的值的确认才同样非常重要。在没有在从空闲状态返回的系统返回处理中(图4A)进行步骤44、而是在正常引导过程中(图2A)进行步骤44的情况下,无法正确地确定PCR 115的有效性。这是因为在正常引导过程之前,PCR 115具有初始值。
如第一实施例中所描述,仅在步骤41中确定系统返回处理是从空闲状态的返回处理的情况下进行步骤44,才能够正确地确定PCR 115的有效性。
描述了第一实施例中的系统返回处理。
<第二实施例>
在第一实施例中,在系统返回处理的步骤44中确定PCR具有初始值的情况下,在步骤45中强制信息处理装置11重启。然而,不必强制信息处理装置11重启,而可以进行功能还原,以继续使用信息处理装置11并仅停用TPM 112。在第二实施例中描述在进行功能还原以停用TPM 112的情况下的系统返回处理。
图5A是例示了第二实施例中的示例性的系统返回处理的流程图。对图4A和图5A中相同的步骤添加相同的步骤号码,并且在此省略相同步骤的详细描述。下面参照图5A仅描述与图4A中的步骤不同的步骤。
参见图5A,在步骤44中确定PCR 115具有初始值的情况下(步骤44中:是),处理前进到步骤51。在步骤51中,使用在信息处理装置11中配置的屏幕(未示出),询问信息处理装置11的用户是否要重启信息处理装置11。信息处理装置11的用户利用鼠标、键盘和/或按钮来选择允许或不允许重启信息处理装置11。在允许重启信息处理装置11的情况下(步骤51中:是),处理前进到步骤45,否则(步骤51中:否)前进到步骤52。
在步骤52中,控制TPM 112以临时停用。在第二实施例中,将临时停用TPM 112的命令(例如TPM_SetTempDeactivated)发送到TPM 112。该命令将TPM 112设置为停用模式,并且在停用模式下,不接受任何来自TPM 112外部的命令。因此,由于在从TPM 112外部尝试使用TPM 112的情况下TPM 112是停用的,因而实现了功能还原。
第二实施例不限于此,可以采用各种停用TPM 112的方法。例如,可以将大量错误的密码或认证码发送到TPM 112,以将TPM 112设置于锁定状态。由于处于锁定状态的TPM112也不接受任何来自外部的命令,因此实现了功能还原。
在步骤52之后,处理前进到步骤46。在步骤52中停用TPM 112的情况下而在步骤46中将应用的哈希值登记在TPM 112中的情况下,不可以进行登记。换句话说,如图5B所例示,在对应用19的测量和登记之后PCR 115的状态53不从在测量和登记之前的状态416进行改变。
由于在下面描述的数据使用处理和完整性报告生成处理中使用TPM 112的情况下,同样在步骤52中停用了TPM 112,因而不能进行数据使用处理和完整性报告生成处理。在任何情况下,继续使用信息处理装置11的同时可以实现仅停用TPM 112的功能还原。
描述了第二实施例中的系统返回处理。
<第三实施例>
在第二实施例中,在图5A的系统返回处理的步骤52中,TPM 112本身被停用。具体地,发送临时停用TPM 112的命令或者错误的密码或验证码,以将TPM 112设置为锁定状态。然而,第二实施例不限于此。可以进行控制,以使TPM 112从信息处理装置11不可用,而非在步骤52中停用TPM 112本身。
为了进行控制以使TPM 112从信息处理装置11不可用,可以使TPM 112从信息处理装置11在用于使用TPM 112的设备驱动程序中不可用。具体地,在步骤52中,例如在HDD 14或NvRAM 114中设置表示是否使TPM 112不可用的标记。然后,在信息处理装置11中的程序要利用设备驱动程序使用信息处理装置11的情况下,根据该标记控制对TPM 112的访问。
现在,将参照图10A详细描述第三实施例中的示例性的TPM使用处理。当信息处理装置11的用户,要利用经过图5A中的系统返回处理的信息处理装置11中的键盘、鼠标和/或按钮(未示出)来使用TPM 112时,在设备驱动程序中启动图10A中的TPM使用处理。
参见图10A,在步骤101中,从程序接收TPM命令。在步骤102中,确认表示是否使TPM112不可用的标记。在标记表示是否使TPM 112不可用的情况下(步骤102中:是),处理前进到步骤104,否则(步骤102中:否)前进到步骤103。在步骤103中,将步骤101中接收的TPM命令发送到TPM 112。在步骤104中,在例如信息处理装置11的监视器(未示出)中显示表示使TPM 112不可用的错误消息。
可以通过如上所述的TPM使用处理来使得TPM 112从信息处理装置11不可用,而不是停用TPM 112本身。
在图10A中的TPM使用处理中设置表示使TPM 112不可用的标记的情况下,进行控制以一直使TPM 112不可用。然而,第三实施例不限于此,可以根据要执行的TPM命令来进行控制TPM 112的使用。参照图10B描述在这种情况下的TPM使用处理。
对图10A和图10B中相同的步骤添加相同的步骤号码,并且在此省略相同步骤的详细描述。
参见图10B,在步骤102中确定使TPM 112不可用的情况下(步骤102中:是),在步骤105中确定要执行的TPM命令是否与PCR有关。在要执行的TPM命令与PCR有关的情况下(步骤105中:是),处理前进到步骤104,否则(步骤105中:否)前进到步骤103。
预先准备表示TPM命令是否与PCR有关的表,并且步骤105中参照该表来进行确定。图10C例示了该表的示例。在图10C所例示的表的示例中,对与PCR有关的各命令添加圆形(○),对与PCR无关的各命令添加叉形(×)。在第三实施例中,与PCR有关的命令是当在TPM112中执行TPM命令时访问(读或写)TPM 112中的PCR的命令。在图10C所例示的示例中,当在TPM 112中执行TPM命令时,三个命令(TPM_Seal,TPM_Quote和TPM_Bind)访问PCR。反之,执行TPM_GetRandom、TPM_GetTicks和TPM_Sign这三个命令而不访问PCR。
通过如上所述的TPM使用处理,即使在设置了表示使TPM 112不可用的标记的情况下,也可以允许使用与PCR无关的命令。
第三实施例不限于上述情况,可以使用各种方法使TPM 112从信息处理装置11不可用。例如,可以改变用于使用TPM 112的设备文件名称。例如,当设备文件名称是“/dev/tpm”时,在步骤52中将该设备文件名称改为“/dev/tpm.deny”。在这种情况下,由于在信息处理装置11中的程序要经由设备文件/dev/tpm使用TPM 112的情况下,设备文件“/dev/tpm”不存在,则使得TPM 112不可用。
如上所述,可以通过限制对TPM 112的访问,而非停用TPM 112本身,来使TPM 112从信息处理装置11不可用。
<第四实施例>
在步骤44中确定在参照图5A的上述系统返回处理中PCR 115具有初始值的情况下,不必强制重启信息处理装置11。对TPM 112的使用的限制能够使信息处理装置11继续使用。然而,第二实施例不限于此。在系统返回中PCR 115的值不正确(PCR 115具有初始值)的情况下,可以在随后的下面描述的数据使用限制处理中禁止数据的使用。同样地,在系统返回中PCR 115的值不正确(PCR 115具有初始值)的情况下,可以在随后的下面描述的篡改检测处理中确定“验证失败”。描述在这种情况下的第四实施例中的系统返回处理。
图6A是例示了第四实施例中的示例性的系统返回处理的流程图。对图4A、图5A和图6A中相同的步骤添加相同的步骤号码,并且在此省略相同步骤的详细描述。下面参照图6A仅描述与图4A和图5A中不同的步骤。
参见图6A,在不允许重启信息处理装置11的情况下(步骤51中:否),处理前进到步骤61。
在步骤61中,在PCR 115中登记特定值。在第四实施例中,将值“PCR1→A1、PCR2→A2、PCR3→A3、PCR4→A4以及PCR5→A5”作为等式(1)中的INPUT登记在PCR 115中的单独存储区域中。“PCR1→A1”是指值A1被登记在PCR1中。值A1、值A2、值A3、值A4和值A5中的各个是“表示在系统返回中PCR具有初始值的常数”。
尽管在第四实施例中,将不同的值(A1、A2、A3、A4和A5)输入PCR 115中的5个单独存储区域,然而第四实施例不限于此。可以将相同的值(例如A1)登记在各单独存储区域中。优选地,值A1、A2、A3、A4和A5是预定常数。或者,可以每当进行步骤61时生成不同的伪随机数,并登记所生成的伪随机数。
由图6B中的附图标记62来表示在步骤61中将特定值登记在PCR 115中之后PCR115的状态。例如,使用A1作为INPUT,根据等式(1)计算在状态62下登记在PCR1中的R1。
在步骤61之后,处理前进到步骤46。在步骤46中,如上所述,使用应用19的哈希值作为INPUT、根据等式(1)计算出的值被登记在PCR5中。使用应用19的哈希值作为INPUT、根据等式(1)来计算在状态63下登记在PCR5中的值R5’。
描述了第四实施例中的系统返回处理。
根据第四实施例,在系统返回之后PCR具有初始值的情况下,将“表示在系统返回中PCR具有初始值的常数”登记在PCR中。因此,由于在加密数据中的PCR条件与在下面描述的数据使用限制处理中TPM 112中的PCR的值不一致,则可能会禁止使用加密数据。同样地,由于在下面描述的篡改检测处理中,完整性报告中的PCR的值没有作为PCR期待值而被登记,因此确定为“验证失败”。
<第五实施例>
在参照图4A的、如上所述的系统返回处理中,描述了在步骤44中PCR 115是否具有初始值的确认的定时是非常重要的。换句话说,在步骤42中从NvRAM 114的PCR返回处理之后、以及在步骤46中的测量和登记之前进行步骤44,能够正确地确认PCR 115的有效性。现在将描述第五实施例,在第五实施例中,在恰当的定时可以更加可靠地进行PCR 115的值的确认。
图7A是用于描述第五实施例中的状态转变的图。图7B是例示了第五实施例中的示例性的系统返回处理的流程图。对图4A和图7B中相同的步骤添加相同的步骤号码,并且在此省略相同步骤的详细描述。下面参照图7A中例示的状态转变仅描述图7B中与图4A不同的步骤。
参见图7B,在步骤75中,在开始系统返回处理时,将信息处理装置11的状态设置为初始状态。在第五实施例中,将表示状态的标记保持在HDD 14中。此时,信息处理装置11处于图7A中例示的状态71中。
在步骤41中确定信息处理装置11从空闲状态返回的情况下(步骤41中:是),在步骤76中,将信息处理装置11的状态改变为“系统返回状态”。此时,信息处理装置11处于图7A中例示的状态72中。
在步骤42中从NvRAM 114的PCR返回处理之后,在步骤77中,将信息处理装置11的状态改变为“PCR返回状态”。此时,信息处理装置11处于图7A中例示的状态73中。
在步骤78中,确定信息处理装置11的状态是否是“PCR返回状态”。可以基于保持在HDD 14中的表示状态的标记来进行该确定。在表示状态的标记表示“PCR返回状态”的情况下(步骤78中:是),处理前进到步骤44,否则(步骤78中:否)前进到步骤45。
在步骤47中执行应用19之后,在步骤79中,将信息处理装置11的状态改变为“程序执行状态”。此时,信息处理装置11处于图7A中例示的状态74中。
描述了第五实施例中的系统返回处理。
根据第五实施例,管理系统返回处理中的一系列步骤的状态,以可靠地确认步骤44中在“PCR返回状态下”PCR是否具有初始值。“PCR返回状态”是在步骤42中的从NvRAM 114的PCR返回处理之后、并在步骤46中的测量和登记之后的状态。
<数据使用限制处理>
现在将参照图8A详细描述第五实施例中的数据使用限制处理。下面的流程在如上所述的信息处理装置11中进行,并且流程中的各步骤通过相应的程序以及执行程序的CPU111来实现。
图8A是例示了可应用于第五实施例的示例性的数据使用限制处理的流程图。
响应于信息处理装置11的用户利用键盘、鼠标和/或按钮(未示出)针对信息处理装置11的进行数据使用限制处理的指令,进行数据使用限制处理。
在开始数据使用限制处理时,在步骤81中,输入要经过数据使用限制处理的纯文本数据。包括图像数据、文档数据和音乐数据的各种数据能够作为纯文本数据被输入。可以输入预先保持在信息处理装置11中的HDD 14中的数据。或者,可以经由接口(通信或介质)(未示出)从信息处理装置11的外部输入数据。
在步骤82中,输入使得纯文本数据可用的PCR条件。在第五实施例中,PCR条件是表示当使纯文本数据可用时TPM 112中的PCR 115处于什么状态的条件。在第五实施例中,将在如上所述的图2A的引导过程中启动BIOS 13、引导装载程序15、OS 16和应用17之后的PCR115的状态指定为PCR条件。在该状态下,PCR条件是“PCR1=H1,PCR2=H2,PCR3=H3,以及PCR4=H4”。
第五实施例不限于此,可以将PCR 115的各种状态指定为PCR条件。
在步骤83中,对步骤81中输入的纯文本数据加密。在第五实施例中不具体限定用于加密的加密算法,可以采用例如包括高级加密标准(AES)、数据加密标准(DES)和三重DES(3DES)的对称密钥加密,或者包括Rivest-Shamir-Adleman(RSA)算法、ElGamal加密和椭圆曲线密码体制的公开密钥加密等的各种加密算法。将用于加密的加密密钥保持在TPM 112中。
在步骤84中,输入加密数据。在第五实施例中,将步骤82中输入的PCR条件添加到步骤83中生成的加密数据,以输出添加结果作为加密数据。图8B中的附图标记85例示了第五实施例中的加密数据的示例。
描述了第五实施例中的数据使用限制处理。
<数据使用处理>
现在,将参照图8C详细描述第五实施例中的数据使用处理。下面的流程在如上所述的信息处理装置11中进行,并且流程中的各步骤通过相应的程序以及执行程序的CPU111来实现。
图8C是例示了可应用于第五实施例的示例性的数据使用处理的流程图。
响应于信息处理装置11的用户利用键盘、鼠标和/或按钮(未示出)针对信息处理装置11进行数据使用处理的指令,进行数据使用处理。
在开始数据使用处理时,在步骤86中,输入要经过数据使用处理的加密数据。在第五实施例中,输入利用图8B中的附图标记85所例示的加密数据。
在步骤87中,从TPM 112读出PCR 115的值。在下面的描述中描述了如下的示例:在参照图2A的如上所述的引导过程之后进行数据使用处理的情况下,读出图2B所例示的状态217。
在步骤88中,确定添加到步骤86中输入的加密数据85的PCR条件与步骤87中从TPM112读出的PCR的值是否一致。在确定添加到步骤86中输入的加密数据85的PCR条件与步骤87中从TPM 112读出的PCR的值一致的情况下(步骤88中:是),处理前进到步骤89,否则(步骤88中:否)终止数据使用处理。在添加到步骤86中输入的加密数据85的PCR条件与步骤87中从TPM 112读出的PCR的值并不一致的情况下(步骤88中:否),可以显示表示步骤86中输入的加密数据不可用的错误消息。由于在第五实施例中,图2B所例示的状态217与图8B所例示的PCR条件一致,因而处理前进到步骤89。
在步骤89中,对加密数据进行解密。在第五实施例中不具体限定用于解密的加密算法,例如包括AES、DES和3DES的对称密钥加密,或者包括RSA算法、ElGamal加密和椭圆曲线密码体制的公开密钥加密等的各种加密算法可以是可应用的。将用于解密的加密密钥保持在TPM 112中。
在步骤810中,输出步骤89中解密的纯文本数据。
描述了第五实施例中的数据使用处理。
利用如上所述的数据使用限制处理和数据使用处理,在图2A所例示的引导过程中执行未被篡改的程序的情况下,图8B所例示的数据可用。另外,在图5A所例示的系统返回处理的步骤52中停用TPM的情况下,禁止使用图8B所例示的数据。此外,在图6A所例示的系统返回处理的步骤61中将特定值登记在PCR中的情况下,同样禁止使用图8B所例示的数据。
<篡改检测系统>
现在参照图9A描述第五实施例中的篡改检测系统的构造。
图9A例示了可应用于第五实施例的篡改检测系统的概况。参见图9A,第五实施例中的篡改检测系统包括被验证装置91和验证装置92。被验证装置91经由有线或无线通信线路与验证装置92相连,并且被验证装置91和验证装置92能够交换数据。如上所述(图1)的信息处理装置11可应用于被验证装置91和验证装置92。
在第五实施例中,验证装置92确认被验证装置91中的软件是否可靠。该处理被称为篡改检测处理。在篡改检测处理中,从被验证装置91中的PCR生成完整性报告(下面详细描述),并将所生成的完整性报告发送到验证装置92。验证装置92使用所接收的完整性报告以及预先登记在期待值数据库(DB)93中的哈希值的期待值,来确定发送出了完整性报告的被验证装置91中的软件是否被篡改。在第五实施例中,将作为哈希值的期待值的H1、H2、H3、H4和H6登记。
描述了可应用于第五实施例的篡改检测系统的概况。
<完整性报告生成处理>
现在将参照图9B描述第五实施例中的被验证装置91中的完整性报告生成处理。下面的流程作为具有如上所述的信息处理装置11的构造的被验证装置91中的软件来实现,并且流程中的各步骤通过相应的程序以及执行程序的CPU 111来实现。
图9B是例示了可应用于第五实施例的示例性的完整性报告生成处理的流程图。
参见图9B,在步骤94中,被验证装置91从验证装置92接收随机数(Nonce)。被验证装置91接收在下面描述的步骤910中发送的随机数。在第五实施例中,随机数使用伪随机数。然而,第五实施例不限于此,可以使用任意数据,只要每次进行篡改检测处理,数据具有难以推断的不同值即可。
在步骤95中,被验证装置91使用TPM 112,由随机数和此时PCR 115的值来生成数字签名。不具体限定用于生成数字签名的算法,可以采用包括RSA、数字签名算法(DSA)和ElGamal算法的各种算法。在TPM 112中管理的密钥可以可应用于用来生成数字签名的密钥。
在步骤96中,被验证装置91从步骤94中接收的随机数、步骤95中生成的数字签名、步骤95中生成的数字签名、针对步骤95中生成的数字签名的PCR的值、以及证书,来生成完整性报告。该证书应包括与如上所述的密钥相对应的公开密钥。
图9C例示了第五实施例中的完整性报告的示例。图9C中的附图标记98表示从图4B中的状态412生成的完整性报告。图9C中的附图标记99表示从图6B中的状态63生成的完整性报告。
在步骤97中,被验证装置91将步骤96中生成的完整性报告发送到验证装置92。
描述了第五实施例中的完整性报告生成处理。
<完整性报告验证处理>
现在参照图9D描述第五实施例中的验证装置92中的完整性报告验证处理。下面的流程作为具有如上所述的信息处理装置11的构造的验证装置92中的软件来实现,并且流程中的各步骤通过相应的程序以及执行程序的CPU 111来实现。
图9D是例示了可应用于第五实施例的示例性的完整性报告验证处理的流程图。
参见图9D,在步骤910中,验证装置92向被验证装置91发送随机数。在如上所述的步骤94中接收步骤910中发送的随机数。在步骤911中,验证装置92从被验证装置91接收完整性报告。在步骤911中接收步骤97中从被验证装置91发送的完整性报告。
在步骤912中,验证装置92使用在完整性报告中的证书中包括的公开密钥,来验证步骤911中接收的完整性报告中的签名。在步骤913中,验证装置92确认签名的验证是否成功。在签名的验证成功的情况下(步骤913中:是),处理前进到步骤914,否则(步骤913中:否)前进到步骤918。
在步骤914中,验证装置92确认步骤911中接收的完整性报告中的随机数的值以及步骤910中发送的随机数的值。在步骤915中,验证装置92确认步骤911中接收的完整性报告中的随机数的值与步骤910中发送的随机数的值是否一致。在步骤911中接收的完整性报告中的随机数的值与步骤910中发送的随机数的值一致的情况下(步骤915中:是),处理前进到步骤916,否则(步骤915中:否)前进到步骤918。
在步骤916中,验证装置92确认步骤911中接收的完整性报告中的PCR的值。在步骤917中,验证装置92确认在图9A的期待值DB 93中是否包括步骤911中接收的完整性报告中的PCR的值。在图9A的期待值DB 93中包括步骤911中接收的完整性报告中的PCR的值的情况下(步骤917中:是),处理前进到步骤919,否则(步骤917中:否)前进到步骤918。
例如,由于在图9C中的完整性报告98的情况下,H1、H2、H3、H4和H6全部保持在期待值DB 93中,因而验证装置92确认在图9A的期待值DB 93中包括步骤911中接收的完整性报告中的PCR的值。反之,由于在图9C中的完整性报告99的情况下,R1、R2、R3、R4和R5’都没有保持在期待值DB 93中,因而验证装置92确认在图9A的期待值DB 93中不包括步骤911中接收的完整性报告中的PCR的值。
在步骤918中,验证装置92确定验证失败。在这种情况下,确定被验证装置91中的程序被篡改。反之,在步骤919中,验证装置92确定验证成功。在这种情况下,确定被验证装置91中的程序未被篡改。
描述了第五实施例中的完整性报告验证处理。
利用如上所述的篡改检测处理,在被验证装置91中的PCR处于图4B中的状态412中的情况下,生成图9C所例示的完整性报告98,并确定验证成功。反之,在被验证装置91中的PCR处于图6B中的状态63中的情况下,生成图9C所例示的完整性报告99,并确定验证失败。
根据第五实施例,无论在空闲状态转变处理(图3C)中将TPM 112中的PCR 115中的值保存在NvRAM 114之后是否执行应用,都可以在系统返回处理(图4A)中的PCR返回处理之后正确地验证PCR的值的有效性。在确定PCR的值无效的情况下,重启信息处理装置11,以将PCR再次恢复到正确的状态。只有在PCR的值有效的情况下,才在信息处理装置11中启动应用,以进行期望的处理。
<其他实施例>
还可以通过读出并执行记录在存储介质(也可更完整地称为“非暂时性计算机可读存储介质”)上的计算机可执行指令(例如,一个或更多程序)以执行上述实施例中的一个或更多的功能、并且/或者包括用于执行上述实施例中的一个或更多的功能的一个或更多电路(例如,专用集成电路(ASIC))的系统或装置的计算机,来实现本发明的实施例,并且,可以利用通过由所述系统或装置的所述计算机例如读出并执行来自所述存储介质的所述计算机可执行指令以执行上述实施例中的一个或更多的功能、并且/或者控制所述一个或更多电路执行上述实施例中的一个或更多的功能的方法,来实现本发明的实施例。所述计算机可以包括一个或更多处理器(例如,中央处理单元(CPU),微处理单元(MPU)),并且可以包括分开的计算机或分开的处理器的网络,以读出并执行所述计算机可执行指令。所述计算机可执行指令可以例如从网络或所述存储介质被提供给计算机。所述存储介质可以包括例如硬盘、随机存取存储器(RAM)、只读存储器(ROM)、分布式计算系统的存储器、光盘(诸如压缩光盘(CD)、数字通用光盘(DVD)或蓝光光盘(BD)TM)、闪存设备以及存储卡等中的一者或更多。
本发明的实施例还可以通过如下的方法来实现,即,通过网络或者各种存储介质将执行上述实施例的功能的软件(程序)提供给系统或装置,该系统或装置的计算机或是中央处理单元(CPU)、微处理单元(MPU)读出并执行程序的方法。
虽然参照示例性实施例对本发明进行了描述,但是应当理解,本发明并不限于所公开的示例性实施例。应当对所附权利要求的范围给予最宽的部释,以使其涵盖所有这些变型例以及等同的结构和功能。
Claims (12)
1.一种保持能够登记哈希值的安全芯片的信息处理装置,所述信息处理装置包括:
登记单元,其被构造为在信息处理装置开始转换到空闲状态之后,将登记在安全芯片内包括的易失性存储器中的哈希值登记到安全芯片内包括的非易失性存储器中,以及,在信息处理装置开始转换到空闲状态之后,在其他哈希值被登记在安全芯片内包括的易失性存储器中时,初始化安全芯片内包括的非易失性存储器;
确定单元,其被构造为确定所述信息处理装置是否从空闲状态返回;
检测单元,其被构造为在所述确定单元确定所述信息处理装置从所述空闲状态返回的情况下,在安全芯片内包括的非易失性存储器的值被转移到安全芯片内包括的易失性存储器之后、启动应用软件之前检测所述安全芯片内包括的易失性存储器的初始化;以及
控制单元,其被构造为在所述检测单元检测到所述安全芯片内包括的易失性存储器的初始化的情况下,控制所述信息处理装置的操作,使得在被初始化的安全芯片内包括的易失性存储器中不登记所述应用软件的哈希值。
2.根据权利要求1所述的信息处理装置,其中,所述安全芯片是可信平台模块。
3.根据权利要求1所述的信息处理装置,其中,在所述检测单元检测到所述安全芯片内包括的易失性存储器的初始化的情况下,所述控制单元重启所述信息处理装置。
4.根据权利要求1所述的信息处理装置,其中,在所述检测单元检测到所述安全芯片内包括的易失性存储器的初始化的情况下,所述控制单元使所述信息处理装置不能够使用所述安全芯片。
5.根据权利要求4所述的信息处理装置,其中,在所述检测单元检测到所述安全芯片内包括的易失性存储器的初始化的情况下,所述控制单元向所述安全芯片发送停用所述安全芯片的命令,以使所述信息处理装置不能够使用所述安全芯片。
6.根据权利要求4所述的信息处理装置,其中,在所述检测单元检测到所述安全芯片内包括的易失性存储器的初始化的情况下,所述控制单元限制对所述安全芯片的访问,以使所述信息处理装置不能够使用所述安全芯片。
7.根据权利要求1所述的信息处理装置,其中,在所述检测单元检测到所述安全芯片内包括的易失性存储器的初始化的情况下,所述控制单元将表示在系统返回时易失性存储器具有初始值的常数,登记在所述安全芯片内包括的易失性存储器中。
8.根据权利要求1所述的信息处理装置,其中,在所述检测单元检测到所述安全芯片内包括的易失性存储器的初始化的情况下,所述控制单元将随机数登记在所述安全芯片内包括的易失性存储器中。
9.一种信息处理装置的控制方法,所述信息处理装置保持能够登记哈希值的安全芯片,所述控制方法包括:
登记步骤,在信息处理装置开始转换到空闲状态之后,将登记在安全芯片内包括的易失性存储器中的哈希值登记到安全芯片内包括的非易失性存储器中,以及,在信息处理装置开始转换到空闲状态之后,在其他哈希值被登记在安全芯片内包括的易失性存储器中时,初始化安全芯片内包括的非易失性存储器;
确定步骤,确定所述信息处理装置是否从空闲状态返回;
检测步骤,在所述确定步骤确定所述信息处理装置从所述空闲状态返回的情况下,在安全芯片内包括的非易失性存储器的值被转移到安全芯片内包括的易失性存储器之后、启动应用软件之前检测所述安全芯片内包括的易失性存储器的初始化;以及
控制步骤,在所述检测步骤检测到所述安全芯片内包括的易失性存储器的初始化的情况下,控制所述信息处理装置的操作,使得在被初始化的安全芯片内包括的易失性存储器中不登记所述应用软件的哈希值。
10.一种保持能够登记哈希值的安全芯片的信息处理装置,所述信息处理装置包括:
第一登记单元,其被构造为在启动应用软件的情况下,将所述应用软件的哈希值登记在所述安全芯片中的易失性存储器中;
第二登记单元,其被构造为在所述信息处理装置进入空闲状态的情况下,将登记在所述易失性存储器中的哈希值登记在所述安全芯片中的非易失性存储器中;以及
通知单元,其被构造为在所述第二登记单元中的登记之后启动了所述应用软件的情况下,向用户给出通知。
11.一种信息处理装置的控制方法,所述信息处理装置保持能够登记哈希值的安全芯片,所述控制方法包括下述步骤:
在启动应用软件的情况下,将所述应用软件的哈希值登记在所述安全芯片中的易失性存储器中;
在所述信息处理装置进入空闲状态的情况下,将登记在所述易失性存储器中的哈希值登记在所述安全芯片中的非易失性存储器中;以及
在所述非易失性存储器中的登记之后启动了所述应用软件的情况下,向用户给出通知。
12.一种信息处理装置的控制方法,所述信息处理装置保持能够登记哈希值的安全芯片,所述控制方法包括:
登记步骤,在信息处理装置开始转换到空闲状态之后,将登记在安全芯片内包括的易失性存储器中的哈希值登记到安全芯片内包括的非易失性存储器中,以及,在信息处理装置开始转换到空闲状态之后,在其他哈希值被登记在安全芯片内包括的易失性存储器中时,初始化安全芯片内包括的非易失性存储器;
确定步骤,确定所述信息处理装置是否从空闲状态返回;
检测步骤,在所述确定步骤确定所述信息处理装置从所述空闲状态返回的情况下,在安全芯片内包括的非易失性存储器的值被转移到安全芯片内包括的易失性存储器之后、启动应用软件之前检测所述安全芯片内包括的易失性存储器的初始化;以及
重启步骤,在所述检测步骤检测到所述安全芯片内包括的易失性存储器的初始化的情况下,重启所述信息处理装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JPJP2015-072865 | 2015-03-31 | ||
JP2015072865A JP6494373B2 (ja) | 2015-03-31 | 2015-03-31 | 情報処理装置、情報処理装置の制御方法、およびコンピュータプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106022136A CN106022136A (zh) | 2016-10-12 |
CN106022136B true CN106022136B (zh) | 2019-10-22 |
Family
ID=55650208
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610165030.7A Active CN106022136B (zh) | 2015-03-31 | 2016-03-22 | 信息处理装置及该装置的控制方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10482256B2 (zh) |
EP (1) | EP3076324B1 (zh) |
JP (1) | JP6494373B2 (zh) |
KR (1) | KR102062073B1 (zh) |
CN (1) | CN106022136B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3060161A1 (fr) * | 2016-12-08 | 2018-06-15 | Orange | Technique de gestion d'un droit d'acces a un service pour un dispositif communicant |
JP6584487B2 (ja) * | 2017-12-20 | 2019-10-02 | キヤノン株式会社 | 情報処理装置、その制御方法およびプログラム |
JP7179482B2 (ja) * | 2018-04-19 | 2022-11-29 | キヤノン株式会社 | 情報処理装置、制御方法、およびそのプログラム |
JP7289641B2 (ja) * | 2018-11-30 | 2023-06-12 | キヤノン株式会社 | 情報処理装置、およびその制御方法 |
US11216366B2 (en) | 2020-02-13 | 2022-01-04 | Intel Corporation | Security check systems and methods for memory allocations |
WO2022139850A1 (en) * | 2020-12-26 | 2022-06-30 | Intel Corporation | Cryptographic computing including enhanced cryptographic addresses |
US11972126B2 (en) | 2021-03-26 | 2024-04-30 | Intel Corporation | Data relocation for inline metadata |
US11954045B2 (en) | 2021-09-24 | 2024-04-09 | Intel Corporation | Object and cacheline granularity cryptographic memory integrity |
US20230214493A1 (en) * | 2021-12-30 | 2023-07-06 | Moxa Inc. | Computer System for Failing a Secure Boot in a Case Tampering Event |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101473329A (zh) * | 2006-04-21 | 2009-07-01 | 交互数字技术公司 | 用于执行可信计算完整性测量报告的设备和方法 |
JP2009187134A (ja) * | 2008-02-04 | 2009-08-20 | Ricoh Co Ltd | 情報処理装置、情報処理装置の起動制御方法、プログラム及び記録媒体 |
CN102509046A (zh) * | 2010-11-02 | 2012-06-20 | 微软公司 | 带有休眠支持的全局有效的测量的操作系统发动 |
CN103597493A (zh) * | 2011-05-18 | 2014-02-19 | 诺基亚公司 | 利用可信计算组平台寄存器的安全引导 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7412596B2 (en) * | 2004-10-16 | 2008-08-12 | Lenovo (Singapore) Pte. Ltd. | Method for preventing system wake up from a sleep state if a boot log returned during the system wake up cannot be authenticated |
JP5001123B2 (ja) * | 2006-12-07 | 2012-08-15 | パナソニック株式会社 | 記録デバイス、集積回路、アクセス制御方法、プログラム記録媒体 |
US8341393B2 (en) * | 2009-12-17 | 2012-12-25 | Lenovo (Singapore) Pte. Ltd. | Security to extend trust |
US8943329B2 (en) * | 2010-03-29 | 2015-01-27 | Lenovo (Singapore) Pte. Ltd. | Method and apparatus for sharing an integrity security module in a dual-environment computing device |
JP5969845B2 (ja) * | 2012-07-18 | 2016-08-17 | キヤノン株式会社 | 情報処理装置及びその制御方法 |
JP5980050B2 (ja) * | 2012-08-29 | 2016-08-31 | キヤノン株式会社 | 情報処理装置 |
-
2015
- 2015-03-31 JP JP2015072865A patent/JP6494373B2/ja active Active
-
2016
- 2016-03-22 CN CN201610165030.7A patent/CN106022136B/zh active Active
- 2016-03-24 EP EP16162234.5A patent/EP3076324B1/en active Active
- 2016-03-24 KR KR1020160035058A patent/KR102062073B1/ko active IP Right Grant
- 2016-03-28 US US15/082,891 patent/US10482256B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101473329A (zh) * | 2006-04-21 | 2009-07-01 | 交互数字技术公司 | 用于执行可信计算完整性测量报告的设备和方法 |
JP2009187134A (ja) * | 2008-02-04 | 2009-08-20 | Ricoh Co Ltd | 情報処理装置、情報処理装置の起動制御方法、プログラム及び記録媒体 |
CN102509046A (zh) * | 2010-11-02 | 2012-06-20 | 微软公司 | 带有休眠支持的全局有效的测量的操作系统发动 |
CN103597493A (zh) * | 2011-05-18 | 2014-02-19 | 诺基亚公司 | 利用可信计算组平台寄存器的安全引导 |
Also Published As
Publication number | Publication date |
---|---|
KR102062073B1 (ko) | 2020-01-03 |
US20160292422A1 (en) | 2016-10-06 |
KR20160117216A (ko) | 2016-10-10 |
EP3076324B1 (en) | 2020-02-19 |
CN106022136A (zh) | 2016-10-12 |
JP6494373B2 (ja) | 2019-04-03 |
EP3076324A1 (en) | 2016-10-05 |
US10482256B2 (en) | 2019-11-19 |
JP2016192159A (ja) | 2016-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106022136B (zh) | 信息处理装置及该装置的控制方法 | |
US10878096B2 (en) | BIOS startup method and data processing method | |
CN109710315B (zh) | Bios刷写方法及bios镜像文件的处理方法 | |
JP6595822B2 (ja) | 情報処理装置及びその制御方法 | |
JP5116325B2 (ja) | 情報処理装置、ソフトウェア更新方法及び画像処理装置 | |
KR101402542B1 (ko) | 지속형 보안 시스템 및 지속형 보안 방법 | |
US10943013B2 (en) | Maintaining keys for trusted boot code | |
US20050021968A1 (en) | Method for performing a trusted firmware/bios update | |
EP2397959B1 (en) | System and method for N-ary locality in a security co-processor | |
JP6391439B2 (ja) | 情報処理装置、サーバ装置、情報処理システム、制御方法及びコンピュータプログラム | |
US9940146B2 (en) | Controlling the configuration of computer systems | |
CN113190880B (zh) | 基于对安全协处理器的背书信息的分析确定是否对计算设备执行动作 | |
JP5582231B2 (ja) | 情報処理装置、真正性確認方法、及び記録媒体 | |
US9064118B1 (en) | Indicating whether a system has booted up from an untrusted image | |
CN115376590A (zh) | 许可保护的启动装置 | |
US11971991B2 (en) | Information processing apparatus, control method for controlling the same and storage medium | |
CN115935363A (zh) | 计算设备的安全支配权 | |
JP2013191226A (ja) | 情報処理装置、ソフトウェア更新方法及び画像処理装置 | |
JP2023072170A (ja) | 情報処理装置および情報処理装置の制御方法 | |
JP5310897B2 (ja) | 情報処理装置、ソフトウェア更新方法及び記録媒体 | |
JP2022182837A (ja) | 情報処理装置、及びその制御方法 | |
JP5234217B2 (ja) | 情報処理装置、ソフトウェア更新方法及びプログラム | |
TW201351946A (zh) | 應用於非對稱式加解密token之管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |