CN108345787B - 确定处理器安全性的方法、检测装置及系统 - Google Patents

确定处理器安全性的方法、检测装置及系统 Download PDF

Info

Publication number
CN108345787B
CN108345787B CN201710089783.9A CN201710089783A CN108345787B CN 108345787 B CN108345787 B CN 108345787B CN 201710089783 A CN201710089783 A CN 201710089783A CN 108345787 B CN108345787 B CN 108345787B
Authority
CN
China
Prior art keywords
processor
object run
information
detection device
during
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
CN201710089783.9A
Other languages
English (en)
Other versions
CN108345787A (zh
Inventor
刘雷波
罗奥
魏少军
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.)
Tsinghua University
Original Assignee
Tsinghua University
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 Tsinghua University filed Critical Tsinghua University
Priority to CN201710089783.9A priority Critical patent/CN108345787B/zh
Priority to US15/804,188 priority patent/US10423795B2/en
Priority to US15/894,042 priority patent/US10572671B2/en
Priority to US15/895,992 priority patent/US10642981B2/en
Priority to US15/895,977 priority patent/US10684896B2/en
Priority to US15/895,686 priority patent/US10657022B2/en
Priority to US15/895,145 priority patent/US10331381B2/en
Publication of CN108345787A publication Critical patent/CN108345787A/zh
Application granted granted Critical
Publication of CN108345787B publication Critical patent/CN108345787B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • 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/577Assessing vulnerabilities and evaluating computer system security
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3234Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提出一种确定处理器安全性的方法、检测装置及系统,该方法包括:根据所述处理器在目标运行过程中的初始运行状态信息设置检测装置的初始运行状态,将所述处理器在目标运行过程中的输入信息作为所述检测装置的输入信息;使所述检测装置以符合预定义行为的方式执行所述目标运行过程中的任务,得到所述检测装置的输出信息和/或终止运行状态信息,其中,所述预定义行为是处理器的硬件行为标准;当所述检测装置执行完所述目标运行过程中的任务时,根据所述检测装置的输出信息和/或终止运行状态信息,确定所述处理器在所述目标运行过程中是否安全。

Description

确定处理器安全性的方法、检测装置及系统
技术领域
本发明涉及计算机技术领域,特别地,涉及一种确定处理器安全性的方法、检测装置及系统。
背景技术
随着网络信息化等新技术的大规模应用,信息安全成为日益严峻的问题。通常我们讨论的信息安全都局限于网络安全、软件安全等方面,但是随着近年来研究表明,硬件安全也应受到关注。
硬件设计的规模随着硬件设计水平的提升日渐提升,使得硬件木马成为可能:当前以CPU(处理器)为代表的大规模电路中用到的硬件IP(知识产权)的来源多样化,硬件设计的流程复杂化,设计制造流程分工细化等因素造成了硬件最终产品的安全可控性下降。在设计中被注入恶意木马或者漏洞(下文简称木马)的可能性增加,同时硬件规模的增加也增加了木马被识别和发现的困难。近年来,随着信息安全概念的发展,硬件的安全性逐渐成为信息安全的研究热点。
发明内容
为解决现有技术中的上述问题,本发明的一个目的在于提出一种确定处理器安全性的方法、检测装置及系统,可以检测硬件的安全漏洞,提升硬件使用的安全性。
为达到上述目的,本发明实施例提出的确定处理器安全性的方法,包括:根据所述处理器在目标运行过程中的初始运行状态信息设置检测装置的初始运行状态,将所述处理器在目标运行过程中的输入信息作为所述检测装置的输入信息;使所述检测装置以符合预定义行为的方式执行所述目标运行过程中的任务,得到所述检测装置的输出信息和/或终止运行状态信息,其中,所述预定义行为是处理器硬件行为标准;当所述检测装置执行完所述目标运行过程中的任务时,根据所述检测装置的输出信息和/或终止运行状态信息,确定所述处理器在所述目标运行过程中是否安全。
为达到上述目的,本发明实施例提出的确定处理器安全性的检测装置,包括:设置单元,用于根据所述处理器在目标运行过程中的初始运行状态信息设置检测单元的初始运行状态,将所述处理器在目标运行过程中的输入信息作为所述检测单元的输入信息;检测单元,用于以符合预定义行为的方式执行所述目标运行过程中的任务,得到所述检测单元的输出信息和/或终止运行状态信息,其中,所述预定义行为是处理器硬件行为标准;确定单元,用于当所述检测单元执行完所述目标运行过程中的任务时,根据所述检测单元的输出信息和/或终止运行状态信息,确定所述处理器在所述目标运行过程中是否安全。
为达到上述目的,本发明实施例提出的确定处理器安全性的检测系统,包括:所述检测系统包括被测处理器、内存、外设、输入输出IO记录器以及检测处理器;所述被测处理器在目标运行过程中与所述内存和/或外设进行数据的输入输出;所述IO记录器记录所述被测处理器在所述目标运行过程中与所述内存和/或外设之间的输入信息与输出信息;所述检测处理器以所述被测处理器在所述目标运行过程中的输入信息作为输入信息,根据所述被测处理器在目标运行过程中的初始运行状态信息设置所述检测处理器的初始运行状态;以符合预定义行为的方式执行所述目标运行过程的任务,得到所述检测处理器的输出信息和/或终止运行状态信息,其中,所述预定义行为是处理器的硬件行为标准;当所述检测处理器执行完所述目标运行过程中的任务时,根据所述检测处理器的输出信息和/或终止状态信息确定所述被测处理器在所述目标运行过程中是否安全。
由以上本发明实施例提供的技术方案可见,通过获取处理器在目标运行过程中的输入信息、输出信息以及初始运行状态与终止运行状态,并以相同的初始运行状态和输入信息设置检测装置,使检测装置在相同的条件下执行与处理器相同的任务,最终根据处理器和检测装置的输出信息和/或终止运行状态的一致性判断处理器是否做出了该任务之外的行为,进而确定处理器在运行过程中的安全性。
这样,本发明实施例能够有效检验处理器的行为是否有异常,降低了硬件安全检测的难度,提高硬件使用的安全性。同时,检测过程可以在处理器正常运转的过程中进行,既能实现随机检测,也能实现实时监控,检测方便。进一步地,检测内容可以由用户自定义设置,具有很好的可移植性,能够应用于不同型号的处理器的硬件安全检测,解决了处理器硬件黑盒的难题,降低了检测难度。
当然实施本发明的任一产品或者方法必不一定需要同时达到以上所述的所有优点。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例的确定处理器安全性的方法的流程示意图;
图2是本发明另一实施例的确定处理器安全性的方法的流程示意图;
图3是本发明一实施例的确定处理器安全性的检测装置的结构示意图;
图4是一种常见的处理器系统的结构示意图;
图5是本发明一实施例的确定处理器安全性的检测装置的应用结构示意图;
图6是本发明一个具体实施例的硬件结构示意图;
图7是本发明另一具体实施例的硬件结构示意图;
图8是本发明另一具体实施例的硬件结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
硬件安全是软件安全的基石。所有的软件安全实现方法都是基于硬件可信的假设,即硬件应该按照其手册所定义的行为进行工作。目前大多情况是在设计环节、出厂环节对硬件进行性能检测,由于硬件出场后是以黑盒子的面目出现在用户的系统中(不像软件木马,其代码是存在于系统中的,可以被读取和分析),硬件的行为是不可监控或感知的。此外,由于难以判断硬件行为的合理性,目前没有针对硬件安全性的研究。
本发明提出的确定处理器安全性的方法和装置,通过对硬件安全进行检测,能够建立一个实时的动态检测框架,从而解决硬件安全的问题。本发明实施例中对硬件安全进行检测的方法可以由检测装置执行。具体地,检测装置可以与处理器集成在同一个芯片上,也可以实现为独立的芯片,还可以实现为其它的装置形式,本发明对此不作限定。例如,可以将本发明实施例的一部分功能与被测处理器集成在同一个芯片上,而剩余的其它功能实现为独立的芯片,这些变化例都应落入本发明的保护范围。
图1为本发明一实施例的确定处理器安全性的方法的流程示意图。如图1所示,该方法包括:
步骤101,根据处理器在目标运行过程的初始运行状态信息设置检测装置的初始运行状态,将处理器在目标运行过程中的输入信息作为检测装置的输入信息。
步骤102,使检测装置以符合预定义行为的方式执行目标运行过程中的任务,得到检测装置的输出信息和/或终止运行状态信息。其中,预定义行为是处理器的硬件行为标准。
步骤103,当所述检测装置执行完所述目标运行过程中的任务时,根据检测装置的输出信息和/或终止运行状态信息,确定处理器在目标运行过程中是否安全。
在一个实施例中,确定运行中处理器的安全性时,可以将被测处理器的实时运行过程划分为一个或多个检测区间。例如,可以将被测处理器从开机到关机的整个运行过程作为目标运行过程,也可以将整个运行过程划分为多个检测区间对应的多个目标运行过程。这样,在对处理器进行安全性检测时,可以实现为对处理器在某一检测区间中的运行过程(即,目标运行过程)的安全性检测。在检测装置完成对当前检测区间的安全性检测后,进入下一个检测区间的安全性检测。这样,可以直接将上一个安全检测区间的终止运行状态信息用作当前检测区间的初始运行状态,而不必再次获取当前检测区间的运行状态信息。应理解的是,本发明实施例并不限定检测区间的数量或长度,以上变化例都应落在本发明的保护范围内。
预定义行为是处理器的硬件行为标准,其中硬件行为标准是指在解析与执行软件指令流的过程中处理器的行为标准。在一个实施例中,处理器的硬件行为标准可以是处理器说明书或其它规范化文档中规定的行为标准。例如,对于指令集处理器而言,预定义行为可以包括但不限于:处理器所实现的指令集中规定的指令行为,对中断的响应和处理行为,以及处理器的输入输出端口的行为等行为。在一个实施例中,可以预先根据处理器的硬件行为标准设计检测装置中的处理器,进而使检测装置在运行过程中符合预定义行为。在另一实施例中,检测装置可使用可重构处理器实现。这种情况下,可预先根据处理器的硬件行为标准编写算法,并将该算法存储在检测装置的存储器中。这样,在检测装置开始运行时,可以从存储器中读取相关算法,并根据该算法进行重构,从而使检测装置在运行过程中符合预定义行为的要求。
由于被测处理器对于用户来说是个黑盒子,它在实际运行过程中是否以符合预定义行为的方式来执行目标运行过程中的任务是未知的。因此,比较在执行相同任务时被测处理器与检测装置两者的硬件执行轨迹的异同,是判断硬件安全性的重要依据。其中,预定义行为是可以被用户所定义和修改的,具有很好的可移植性,可以应用于不同型号处理器的安全检测,解决了处理器硬件黑盒的难题。
本领域的普通技术人员能够理解,对于一个确定性的数字电路,所有的输入和电路内部的状态(存储元件的值)决定了电路下一时刻的输出和下一运行状态。一个有限状态机一旦其状态(例如内部有记忆的电子元件中保存的代表0/1的电平或者电荷的值)是确定的,一段时间内随着时间的外部输入数据是确定的,那么该状态机在这段时间的状态转移就是确定的,这段时间内随着时间的输出的数据也是确定的。此外,对于电路中存在模拟电路,或者存在非确定性的数字电路(例如,随机数发生器)的情况,电路中的一些输入(如热噪声,随机采样的值等)不表现在电路的输入端口上。例如,假设处理器中设有热传感器,该热传感器的输出接在处理器的中断信号引脚。其中,热传感器的输出是一个1bit的信号,当该信号为高电平时,处理器跳转进入过热处理程序。该1bit的信号应该作为处理器的广义的输入信号,检测装置中的记录模块需要记录该信号在检测区间中的变化情况,以作为被测处理器在目标运行过程中的输入信息的一部分。因此,可以根据检测装置与处理器的输出信息和终止运行状态来判断处理器在运行过程中是否产生了预期或说明书标明以外的输出信息,以及其终止运行状态是否异常,进而确定处理器在目标运行过程中的硬件安全性。如此按照预设的检测周期重复执行以上步骤对处理器进行检测,以实时检测处理器的安全性或行为正确性,进而保证了处理器在运行过程中的硬件安全性。
在一个实施例中,可以设置检测装置使其初始运行状态与处理器在目标运行过程的初始运行状态相同,并将处理器在目标运行过程中的输入信息作为检测装置的输入信息,从而使检测装置与处理器以相同的输入和初始运行状态运转,完成与被测处理器相同的运算任务。例如,假设被测处理器在目标运行过程中的任务为求和,那么检测装置需要执行以上求和对应的指令流。在一个实施例中,可以在被测处理器中设置计数器,用以确定目标运行过程的起点与终点。具体地说,检测装置可以载入被测处理器的初始运行状态,然后从该初始运行状态开始逐条执行指令流中的指令,执行过程中的指令以及指令的操作数等通常来自于存储器的读写(例如通过处理器总线或者内存读写接口)和外部设备的读写(例如通过处理器总线接口或者特定的外部设备读写接口),最后产生输出数据的序列。
在一个实施例中,在根据处理器在目标运行过程中的初始运行状态信息设置检测装置的初始运行状态之前,还包括:获取处理器在目标运行过程中初始运行状态信息。在将处理器在目标运行过程中的输入信息作为检测装置的输入信息之前,还包括:获取处理器在目标运行过程中的输入信息。在根据检测装置的输出信息和/或终止运行状态信息,确定处理器在目标运行过程中是否安全之前,还包括:获取处理器在在目标运行过程中的输出信息和/或终止运行状态信息。
在一个实施例中,检测装置不需要关注被测处理器中输入动作发生的时间,而只需要获取输入信息的内容。而获取的输出信息可以包括输出数据与输出时间,这两者都可以作为安全性判定的重要依据。例如,实时获取处理器上预定义信号管脚的输入数据以及输出数据和该输出动作发生的时间,以此作为目标运行过程的输入信息和输出信息。其中,预定义信号管脚与处理器的安全性判定有紧密关系。或者,也可以获取处理器上所有信号管脚的输入数据和输出数据,然后根据安全性判定的需要选择必要的信息作为以上输入信息和输出信息。例如,一般地,处理器信号管脚的电平随着时间或者时钟产生变化,这些变化的时间序列承载着信息,因此可以通过采集记录处理器信号管脚的电平及对应的时序信息来实现输入或输出信息的获取。
在一个实施例中,可以在检测区间起始处获取处理器的运行状态以作为初始运行状态信息,在检测区间的终止处获取处理器的运行状态以作为终止运行状态信息。具体地,处理器通常包括寄存器、缓存等存储器,此时处理器的运行状态是指处理器中存储器或存储单元中所存储的内容。例如,存储器中存储的CPU所处模式(例如,用户模式、系统模式、快速中断模式等),通用寄存器中保存的处理器执行指令的操作数(例如,进入当前指令的指针),都可以构成运行状态的一部分。因此,获取寄存器和/或缓存中存储的数据就可得到处理器的运行状态信息。
在一个具体的实施例中,还可以实时获取处理器在目标运行过程中的多个运行状态,以提高检测的精度和可靠性。例如,假设检测区间长度为1ms,为了提高检测的精度和可靠性,可以在该检测区间的0.5ms处额外获取一个中间运行状态,或者也可以直接将检测区间的长度调整为0.5ms。
应理解的是,本发明实施例不限定获取输入信息、输出信息及运行状态信息的时间与次数。例如,在一个实施例中,检测装置与被测处理器大致同步运行。这种情况下,可以实时地分别获取检测区间中处理器的每一个输入信息与输出信息,以及初始运行状态与终止运行状态。也就是说,获取输入信息、输出信息、初始运行状态与终止运行状态的时刻可以是不同的。应理解的是,大致同步运行是指检测装置与被测处理器的运行时间差落在预设的阈值范围内,本发明实施例不限定阈值的大小。
在另一实施例中,检测装置以一定的周期滞后于被测处理器运行。这种情况下,检测装置可以预先实时地记录被测处理器在目标运行过程中的输入信息、输出信息及运行状态信息中的至少一部分,然后从以上记录的信息中获取检测所需的输入信息、输出信息以及运行状态信息以用于安全性检测。其中,可以根据实际需要设定检测装置的滞后周期,本发明实施例对此不作限定。
在一个实施例中,如果检测区间的起始点落在被测处理器的重置有效期内,检测装置不必实时获取被测处理器的初始运行状态信息,而只需根据预定义的重置值来设定检测装置的初始运行状态。具体地,可以根据预定义行为确定预定义的重置值。
根据本发明的一个实施例,在根据检测装置的输出信息和/或终止运行状态信息,确定处理器在目标运行过程中是否安全时,比较检测装置的输出信息与处理器在目标运行过程中的输出信息,得到第一比较结果,和/或比较检测装置的终止运行状态与目标运行过程的终止运行状态,得到第二比较结果。然后,根据第一比较结果和/或第二比较结果,确定处理器在目标运行过程中是否安全。
根据本发明的一个实施例,在根据第一比较结果和第二比较结果,确定处理器在目标运行过程中是否安全时,当第一比较结果表示检测装置的输出信息与处理器在目标运行过程中的输出信息一致,且第二比较结果表示检测装置的终止运行状态信息与目标运行过程的终止运行状态信息一致时,确定处理器在目标运行过程中安全。当第一比较结果表示检测装置的输出信息与处理器在目标运行过程中的输出信息不一致,或第二比较结果表示检测装置的终止运行状态信息与目标运行过程的终止运行状态信息不一致时,确定处理器在目标运行过程中不安全。
本领域的普通技术人员能够理解,在判断输出信息是否一致以及终止运行状态是否一致时,可以根据设计需要设定判断标准,而不应将本发明实施例限定为所比较内容的各个属性均完全一致。还应理解的是,在一个检测区间中,执行不同的软件指令流所涉及的寄存器可能不同,这时需要确定与执行指令相关的寄存器与检测装置有相同的变化,且不相关的寄存器保持不变,才能确定处理器运行过程是安全的。在一个实施例中,不必区分在当前检测区间中执行对应指令流所涉及的具体寄存器,如果检测装置的全部终止运行状态与所获取的被测处理器的全部终止运行状态一致,就可以确定处理器在目标运行过程中是安全的。
根据本发明的一个实施例,处理器在目标运行过程中的输出信息以及检测装置的输出信息分别包括输出数据和/或输出时间。在比较检测装置的输出信息与处理器在目标运行过程中的输出信息,得到第一比较结果时,根据所述输出数据的顺序和/或所述输出数据的内容,比较检测装置的输出信息与处理器在目标运行过程的输出信息,得到第一比较结果。
具体地,处理器在运行过程中的时间可以用指令序列号来确定,即处理器运行过程中的输入信息的描述形式可以是输入数据的时间序列。或者,也可以表示为输入数据与处理器指令序列号对应关系的序列形式。这样,输出信息所包含的输出数据与输出时间可以采用上述序列表示,即输出是在时间序列上的输出。因此,可以通过判断输出顺序是否异常来确定输出序列信息是否异常,还可以比较输出数据的顺序以及输出数据的内容,来确定处理器的输出信息是否异常。在一个实施例中,输出数据的内容或顺序中有一者异常时,就可确定被测处理器的输出信息与检测装置的输出信息不一致,进而确定处理器是不安全的。在一个实施例中,还可以根据输出数据的时间或时间间隔来确定处理器的输出信息是否异常。
根据本发明的一个实施例,在根据检测装置的输出信息和/或终止运行状态信息,确定处理器在目标运行过程中是否安全之前,还包括:根据预定义行为,判断处理器在目标运行过程中的初始运行状态和/或终止运行状态是否合法。例如,假设预定义行为规定:寄存器2=(寄存器1)+1,那么检测装置可以根据该预定义行为判断被测处理器的初始运行状态和/或终止运行状态是否符合以上规定。如果不符合以上规定,说明所述初始运行状态或终止运行状态不合法,进而确定处理器在目标运行过程中不安全。如果符合以上规定,说明所述初始运行状态或终止运行状态合法。在一个实施例中,确定被测处理器的初始运行状态合法后,检测装置继续其检测行为,否则中止对该目标运行过程的检测。在一个实施例中,在检测区间的终点处先确定终止运行装置是否合法,确定合法后再比较检测装置与被测处理器的输出信息和/或终止运行状态信息。
根据本发明的一个实施例,处理器在目标运行过程中的初始运行状态信息为,处理器在目标运行过程起始处特征状态集合对应的存储器中存储的数据。处理器在目标运行过程中的终止运行状态为,处理器在目标运行过程中的终止处特征状态集合对应的存储器中存储的数据。其中,根据目标运行过程的当前运行状态、输入信息以及特征状态集合,能够确定目标运行过程的输出信息与下一运行状态。
应理解的是,处理器的真实内部状态可以用一个特征状态集合来表示。这样,在获取处理器在目标运行过程中的运行状态时,仅需获取对该处理器进行正确性验证或安全性验证所需的特征状态集合所对应的运行状态信息,而不必获取冗余的运行状态信息。该特征状态集合能够表示处理器的运行特征。例如,在处理器当前状态及输入信息确定的情况下,根据特征状态集合可以唯一地确定处理器的下一个状态和输出。特征状态集合是运行状态的集合的子集,可通过删除运行状态中的冗余内容得到。例如,处理器运行状态中,若一个寄存器的值始终都与另一寄存器的值相等,则可以把其中一个寄存器的值从运行状态中删除。又如,若存储器之间若存在明确的对应关系,为了提高检测装置的运行效率,可以删除其中的冗余信息。例如,寄存器1的值+寄存器2的值=寄存器3的值,删除时可以删除寄存器3。这样可以降低采集运行状态信息的冗余,减少数据采集量和计算量,从而降低资源消耗并提高检测速度。
在本发明的一个实施例中,被测处理器为指令集处理器,上述特征状态集合可以根据处理器的指令集确定。例如,在设计处理器的时候,通常会定义其指令集,该指令集主要包括两部分:处理器的内部状态寄存器,以及每一条指令对于这些内部状态寄存器的处理。然而,对于现代处理器而言,设计在其内部的状态已经远远复杂于指令集所定义的内部状态。例如,X86处理器中的通用寄存器仅有16个,但是该处理器中通常用几百个寄存器通过寄存器重命名来实现通用寄存器,即处理器在运行时动态分配物理的寄存器作为16个逻辑上的通用寄存器之一。这样,在获取处理器的运行状态时,我们不必获取以上几百个寄存器的状态,也即忽略处理器的内部实现(例如数百个物理寄存器),而直接记录并使用指令集所定义的16个逻辑寄存器或者状态集合来表征处理器当前的状态。这样我们把这16个逻辑寄存器的状态集合确定为处理器的特征状态集合。这样可以简化记录处理器运行状态的过程,提高安全性判定的速度。
应理解的是,以上确定特征状态集合的方法仅为本发明的一个实施例,在实现本发明实施例的具体过程中,可以根据需要调整特征状态集合的范围。例如,只选取以上16个逻辑寄存器中关系到处理器安全判定的寄存器的状态集合作为特征状态集合,也可以根据处理器下一状态和输出信息、状态转换和输出值是否合理来判断某个处理器是否关系到处理器安全判定。例如,把数值从a地址搬运到b地址,存储这个指令的寄存器就是有用的,在运行过程中,处理器的状态从一个时刻到另一个时刻会发生转换,若寄存器对处理器的状态转变起到关键作用,那么这样的寄存器就是关系到处理器安全判定的寄存器。此外,也可以使用其它方式代替指令集来确定表征处理器运行特征的特征状态集合,具体实现方式可以有多种,在此不再一一列举。
还应理解的是,本发明实施例并不限定所检测的处理器类型。在对其它类型的处理器进行安全性检测时,也可除去冗余的运行状态信息,只获取进行正确性验证或安全性验证所需的特征状态集合所对应的运行状态信息。
根据本发明的一个实施例,存储器包括寄存器和/或缓存。
根据本发明的一个实施例,处理器为指令集处理器,所采用的指令集可以是X86指令集、RISC指令集等现有的指令集,也可以是未来可能出现的其他指令集。
需要说明的是,检测装置需要以符合预定义行为的方式来执行与被测处理器相同的任务(即指令流)。为了便于理解,以该任务为求和为例,对本发明实施例中检测装置的运行过程进行详细说明。应理解的是,本发明实施例并不限于此。
假设在检测区间中被测处理器仅执行了一条ADD指令。被测处理器的初始运行状态为指令指针寄存器指向处理器待执行的下一个指令,该指令在存储器中的地址为A。A地址存放的是加法指令{ADD R1,R1,[0X0CC]},该加法指令的功能是将寄存器A的值和存储器中0X0CC地址存储的数据相加,并将计算结果存放在寄存器R1中,执行完该指令后指令指针寄存器为A+1。那么,在被测处理器的初始运行状态中指令指针为A,寄存器R1的值为原始值记为v_r1_first。这样,检测装置将会捕获到被测处理器从地址0X0CC读取到了某数值v_0x0cc(即输入信息)。检测装置还会记录处理器的终止运行状态中指令指针为B,寄存器R1的值为v_r1_last。如果检测装置滞后于被测处理器运行,在上述检测区间结束时可以获取到以上所有数据。
这样,可以根据被测处理器的初始运行状态,将检测装置的初始运行状态设置为:指令指针为A,R1的值为v_r1_first。将被测处理器的输入信息v_0x0cc作为输入信息,使检测装置以符合预定义行为的方式执行目标运行过程中的任务(即ADD指令)。在检测装置执行完以上ADD指令后,比较检测装置与被测处理器的终止运行状态(指令指针与寄存器R1的值)。如果两者一致(指令指针均为B,且寄存器R1的值均为v_r1_last),说明被测处理器安全。如果两者不一致(检测装置的指令指针不是B,或检测装置的寄存器R1的值不是v_r1_last),说明被测处理器不安全。
从以上示例可知,由于被测处理器在检测区间中没有输出信息,因而可以仅根据终止运行状态确定处理器的安全性。应理解的是,在其它实施例中,检测装置由于任务执行失败而跳转至检测终点时,可以直接确定被测处理器不安全。在另一实施例中,检测装置在执行任务过程中实时对比输出信息,一旦发现其输出信息与被测处理器的输出信息不一致时,即可确定被测处理器不安全,进而结束对当前目标运行过程的检测。也就是说,检测装置可以根据输出信息、终止运行状态信息或者两者的结合来判断被测处理器是否安全,符合以上发明目的的变化例都应落在本发明实施例的保护范围内。
根据本发明的一个实施例,在使检测装置以符合预定义行为的方式执行目标运行过程中的任务中,进一步包括:当检测装置执行任务失败时,检测装置停止执行任务,确定所述处理器在所述目标运行过程中不安全。例如,在检测装置以符合预定义行为的方式执行任务的过程中,如果根据输入信息不能继续执行当前任务时,检测装置停止执行当前任务。此时,检测装置可以直接跳至该检测过程的终点,进而直接确定被测处理器不安全,或者,可以比较检测装置的当前状态与被测处理器的终止运行状态,来判断被测处理器是否安全。
本发明的实施例通过获取处理器在目标运行过程中的输入信息、输出信息以及初始运行状态与终止运行状态,并以相同的初始运行状态和输入信息设置检测装置,使检测装置在相同的条件下执行与处理器相同的任务。最终,根据处理器和检测装置的输出信息和终止运行状态的一致性判断处理器是否做出了该任务之外的行为,进而确定处理器在运行过程中的安全性。本发明实施例能够有效检测处理器的硬件行为是否有异常,降低了硬件安全检测的难度,提高硬件使用的安全性。同时,本发明实施例的检测过程可以在处理器正常运转的过程中进行,既能实现随机检测,也能实现实时监控。而且检测内容可以由用户自定义设置,具有很好的可移植性,能够应用于不同型号处理器的硬件安全检测,解决了处理器硬件黑盒的难题。
下面对本发明的具体实施例进行举例说明,与前述内容重复之处不再赘述。
图2是本发明另一实施例的确定处理器安全性的方法的流程示意图。如图2所示,该方法包括:
步骤201,获取处理器的特征状态集合。
步骤202,获取处理器在目标运行过程中的输入信息和初始运行状态。
其中,初始运行状态为目标运行过程起始处特征状态集合对应的存储器中存储的数据。
步骤203,根据所述处理器在目标运行过程中的初始运行状态信息设置检测装置的初始运行状态,将所述处理器在目标运行过程中的输入信息作为所述检测装置的输入信息。
步骤204,使所述检测装置以符合预定义行为的方式执行所述目标运行过程中的任务,得到所述检测装置的输出信息和/或终止运行状态信息,其中,所述预定义行为是处理器的硬件行为标准。
其中,输出信息可包括输出数据和/或输出时间,终止运行状态为目标运行过程终止处特征状态集合对应的存储器中存储的数据。其中,输出信息可以用输出序列表示。
若检测装置执行完所述目标运行过程中的任务,执行步骤205,若检测装置执行所述任务失败,则停止执行所述任务,并执行步骤208。
步骤205,比较所述检测装置的输出信息与所述处理器在目标运行过程中的输出信息,得到第一比较结果,和/或比较所述检测装置的终止运行状态信息与所述目标运行过程的终止运行状态信息,得到第二比较结果。
具体地,可根据输出数据的顺序和/或输出数据的内容比较检测装置的输出信息与处理器在目标运行过程的输出信息,得到第一比较结果。具体如前述实施例所述,在此不再赘述。
步骤206,判断第一比较结果以及第二比较结果是否一致。当第一比较结果表示检测装置的输出信息与处理器在目标运行过程中的输出信息一致,且第二比较结果表示检测装置的终止运行状态与目标运行过程的终止运行状态一致时,执行步骤207;当第一比较结果表示检测装置的输出信息与处理器在目标运行过程中的输出信息不一致,或第二比较结果表示检测装置的终止运行状态与目标运行过程的终止运行状态不一致时,执行步骤208。
步骤207,确定处理器在目标运行过程中安全。
步骤208,确定处理器在目标运行过程中不安全。
本发明的实施例通过获取处理器在目标运行过程中的输入信息、输出信息以及初始运行状态与终止运行状态,并以相同的初始运行状态和输入信息设置检测装置,使检测装置在相同的条件下与处理器同步执行相同的任务。最终,根据处理器和检测装置的输出信息和终止运行状态的一致性判断处理器是否做出了该任务之外的行为,进而确定处理器在运行过程中的安全性。本发明实施例能够有效检测处理器的硬件行为是否有异常,降低了硬件安全检测的难度,提高硬件使用的安全性。同时,本发明实施例的检测过程可以在处理器正常运转的过程中进行,既能实现随机检测,也能实现实时监控,对处理器的运行不会产生显著影响。而且检测内容可以由用户自定义设置,具有很好的可移植性,能够应用于不同型号处理器的硬件安全检测,解决了处理器硬件黑盒的难题。
基于同一发明构思,本发明实施例还提供了一种确定处理器安全性的检测装置,可以用于实现上述实施例所描述的方法,如下面的实施例。由于确定处理器安全性的检测装置解决问题的原理与确定处理器安全性的方法相似,因此确定处理器安全性的检测装置的实施可以参见确定处理器安全性的方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图3是本发明一实施例的确定处理器安全性的检测装置的结构示意图。本实施例的装置可以为实现相应功能的逻辑部件构成,也可以为运行有相应功能软件的电子设备。
如图3所示,该确定处理器安全性的检测装置包括:设置单元100、检测单元200和确定单元300。
具体地,设置单元100用于根据所述处理器在目标运行过程中的初始运行状态信息设置检测单元的初始运行状态,将所述处理器在目标运行过程中的输入信息作为所述检测单元的输入信息;
检测单元200用于以符合预定义行为的方式执行所述目标运行过程中的任务,得到所述检测单元的输出信息和/或终止运行状态信息,其中,所述预定义行为是处理器硬件行为标准;
确定单元300用于当所述检测单元执行完所述目标运行过程中的任务时,根据所述检测单元的输出信息和/或终止运行状态信息,确定所述处理器在所述目标运行过程中是否安全。
本发明实施例的检测装置通过获取处理器在目标运行过程中的输入信息、输出信息以及初始运行状态与终止运行状态,并以相同的初始运行状态和输入信息设置检测装置,使检测装置在相同的条件下执行与处理器相同的任务,最终根据处理器和检测装置的输出信息和终止运行状态的一致性判断处理器是否做出了该任务之外的行为,进而确定处理器在运行过程中的安全性,能够有效检验处理器的行为是否有异常,降低硬件安全检测的难度,提高硬件使用的安全性;同时,检测过程可以在处理器正常运转的过程中进行,既能实现随机检测,也能实现实时监控,对处理器的运行不会产生显著影响,检测方便,且检测内容可以由用户自定义设置,具有很好的可移植性,能够应用于不同型号处理器的硬件安全检测,解决了处理器硬件黑盒的难题,降低了检测难度。
在一个具体实施例中,所述检测装置还包括记录单元400,用于记录所述处理器在目标运行过程中的初始运行状态信息、输入信息、输出信息以及终止运行状态信息。例如,在一个实施例中,当检测装置的运行过程滞后于被测处理器的目标运行过程时,记录单元可以记录被测处理器在目标运行过程中的输入信息、输入信息、初始运行状态和/或终止运行状态等。这样,当检测装置执行目标运行过程中的任务时,可以直接读取记录单元记录的信息进行检测,增加了检测时间的灵活性。应理解的是,在检测装置与被测处理器大致同步运行的场景中,也可使用记录单元截获并记录以上初始运行状态信息、输入信息、输出信息以及终止运行状态信息,以便检测装置读取并使用。
在一个具体实施例中,确定单元300进一步用于,比较检测装置的输出信息与处理器在目标运行过程中的输出信息,得到第一比较结果,以及比较检测装置的终止运行状态与目标运行过程的终止运行状态,得到第二比较结果;根据第一比较结果以及第二比较结果,确定处理器在目标运行过程中是否安全。
在一个具体实施例中,确定单元300进一步用于,当第一比较结果表示检测装置的输出信息与处理器在目标运行过程中的输出信息一致,且第二比较结果表示检测装置的终止运行状态与目标运行过程的终止运行状态一致时,确定处理器在目标运行过程中安全;当第一比较结果表示检测装置的输出信息与处理器在目标运行过程中的输出信息不一致,或第二比较结果表示检测装置的终止运行状态与目标运行过程的终止运行状态不一致时,确定处理器在目标运行过程中不安全。
在一个具体实施例中,所述处理器在目标运行过程中的输出信息以及所述检测单元的输出信息分别包括输出数据和/或输出时间;所述确定单元进一步用于,根据所述输出数据的顺序和/或所述输出数据的内容,比较所述检测单元的输出信息与所述处理器在目标运行过程的输出信息,得到所述第一比较结果。
在一个具体实施例中,所述确定单元还用于,根据所述预定义行为,判断所述处理器在目标运行过程中的初始运行状态和/或终止运行状态是否合法。
在一个具体实施例中,目标运行过程的初始运行状态为,目标运行过程起始处特征状态集合对应的存储器中存储的数据;目标运行过程的终止运行状态为,目标运行过程终止处特征状态集合对应的存储器中存储的数据;其中,根据目标运行过程的当前运行状态、输入信息以及特征状态集合对应的存储器中存储的数据,能够确定目标运行过程的输出信息与下一运行状态。在一个具体实施例中,存储器包括寄存器和/或缓存。
在一个具体实施例中,处理器为指令集处理器,特征状态集合是根据处理器的指令集确定的。
在一个具体实施例中,当所述检测单元执行所述任务失败时,所述检测单元停止执行所述任务,所述确定单元确定所述处理器在所述目标运行过程中不安全。
图4是一种常见的处理器系统的结构示意图,处理器1与外部设备2进行交互产生输入和输出,处理器运行过程中的运行状态信息通过内部存储器3保存。图5是本发明一实施例的确定处理器安全性的检测装置的应用结构示意图。记录单元400可设置于处理器各个信号管脚以获取处理器在目标运行过程中的输入信息、输出信息以及运行状态信息。检测单元200和确定单元300可以与处理器集成在一个芯片上实现,也可以通过独立的芯片实现。在一个实施例中,可以记录处理器的所有输入和输出。处理器运行状态的保存可以用硬件、软件或者两者协作来实现,例如部分处理器硬件可以预留接口,这样可以通过硬件机制完成处理器状态的导出。如果没有预留硬件接口,可以通过辅助运行在该处理器上的辅助软件完成处理器状态的读出和保存。
本发明的上述实施例适用于多种型号的处理器检测,下面简要列举两个具体的实施例:
实施例一
对于X86Xeon处理器的处理器检测,通过监控X86的核心的处理器状态(结合X86处理器XSAVE等指令可以获取处理器中大部分的寄存器状态),通过记录单元400监控处理器SMBUS/JTAG/PCIe/QPI/DDR/IRQ接口等获取处理器的输入和输出信息。通过本发明上述的方法和装置可以检查X86Xeon处理器运行的安全性。
实施例二
对于ARM处理器的处理器检测,通过JTAG(Joint Test Action Group,联合测试工作组)可以挂起处理器并且获取处理器的内部寄存器状态,通过总线接口和IRQ(InterruptRequest,中断请求)接口可以获取处理器核心对外的输入和输出数据。通过本发明上述的方法和装置可以检查ARM处理器运行的安全性。
通过上述本发明实施例中的方法及装置,获取处理器在目标运行过程中的输入信息、输出信息以及初始运行状态与终止运行状态,并以相同的初始运行状态和输入信息设置检测装置,使检测装置在相同的条件下执行与处理器相同的任务,最终根据处理器和检测装置的输出信息和终止运行状态的一致性判断处理器是否做出了该任务之外的行为,进而确定处理器在运行过程中的安全性,能够有效检验处理器的行为是否有异常,降低硬件安全检测的难度,提高硬件使用的安全性.同时,检测过程可以在处理器正常运转的过程中进行,既能实现随机检测,也能实现实时监控,检测方便。并且,检测内容可以由用户自定义设置,具有很好的可移植性,能够应用于不同型号处理器的硬件安全检测,解决了处理器硬件黑盒的难题,降低了检测难度。
本发明实施例还提供一种存储有计算机可读程序的存储介质,其中计算机可读程序使得计算机在信息处理装置或用户设备中执行上述实施例的确定处理器安全性的方法。
本发明实施例还提供一种计算机可读程序,其中当在信息处理装置或用户设备中执行程序时,程序使得计算机在信息处理装置或用户设备中执行上述实施例的确定处理器安全性的方法。
如图6所示,本发明实施例还提供一种检测系统,包括:被测处理器、内存、外设、输入输出IO记录器以及检测处理器;
所述被测处理器在目标运行过程中与所述内存和/或外设进行数据的输入输出;
所述IO记录器记录所述被测处理器在所述目标运行过程中与所述内存和/或外设之间的输入信息与输出信息;
所述检测处理器以所述被测处理器在所述目标运行过程中的输入信息作为输入信息,根据所述被测处理器在目标运行过程中的初始运行状态信息设置所述检测处理器的初始运行状态;以符合预定义行为的方式执行所述目标运行过程的任务,得到所述检测处理器的输出信息和/或终止运行状态信息,其中,所述预定义行为是处理器的硬件行为标准;当所述检测处理器执行完所述目标运行过程中的任务时,根据所述检测处理器的输出信息和/或终止状态信息确定所述被测处理器在所述目标运行过程中是否安全。
作为本发明的一个实施例,所述检测处理器通过所述被测处理器的硬件接口获取所述被测处理器的初始运行状态和/或终止运行状态。
作为本发明的一个实施例,通过软件的方式读取所述被测处理器的初始运行状态信息和/或终止运行状态信息,并将所述初始运行状态信息和/或终止运行状态信息存储于存储器中,所述检测处理器从所述存储器中读取所述初始运行状态信息和/或终止运行状态信息。这里的存储器可以为非易失性存储器或者易失性存储器。
作为本发明的一个实施例,所述IO记录器进一步包括内存记录器和外设记录器,所述内存记录器用于记录所述被测处理器在所述目标运行过程中与内存之间的输入信息与输出信息,所述外设记录器用于记录所述被测处理器在所述目标运行过程中与外设之间的输入信息与输出信息。
作为本发明的一个实施例,所述被测处理器在执行所述目标运行过程任务中与所述内存之间的输入输出信息,以及所述被测处理器在执行所述目标运行过程任务中与所述外设之间的输入输出输入信息均存储于存储器中,所述检测处理器读取所述存储器中的所述输入输出信息。这里的存储器可以为非易失性存储器或者易失性存储器。
作为本发明的一个实施例,所述检测处理器具体用于,比较所述检测处理器的输出信息与所述被测处理器在目标运行过程中的输出信息,得到第一比较结果,和/或比较所述检测处理器的终止运行状态信息与所述被测处理器执行目标运行过程的终止运行状态信息,得到第二比较结果;根据所述第一比较结果和/或所述第二比较结果,确定所述处理器在所述目标运行过程中是否安全。
作为本发明的一个实施例,所述检测处理器具体用于,当所述第一比较结果表示所述检测处理器的输出信息与所述被测处理器在目标运行过程中的输出信息一致,且所述第二比较结果表示所述检测处理器的终止运行状态信息与所述被测处理器执行目标运行过程的终止运行状态信息一致时,确定所述处理器在所述目标运行过程中安全;当所述第一比较结果表示所述检测处理器的输出信息与所述被测处理器在目标运行过程中的输出信息不一致,或所述第二比较结果表示所述检测处理器的终止运行状态信息与所述被测处理器执行目标运行过程的终止运行状态信息不一致时,确定所述处理器在所述目标运行过程中不安全。
作为本发明的一个实施例,所述输出信息包括输出数据和/或输出时间,所述检测处理器具体用于,根据所述输出数据的顺序和/或所述输出数据的内容,比较所述检测处理器的输出信息与所述被测处理器在目标运行过程的输出信息,得到所述第一比较结果。
作为本发明的一个实施例,所述目标运行过程的初始运行状态信息为,所述目标运行过程起始处特征状态集合对应的存储器中存储的数据;所述目标运行过程的终止运行状态信息为,所述目标运行过程终止处特征状态集合对应的存储器中存储的数据;
其中,根据所述目标运行过程的当前运行状态、输入信息以及所述特征状态集合,能够确定所述目标运行过程的输出信息与下一运行状态,所述存储器包括寄存器和/或缓存。
作为本发明的一个实施例,所述特征状态集合是根据所述处理器的指令集确定的。
作为本发明的一个实施例,当所述检测处理器执行所述目标运行过程的任务失败时,所述检测处理器停止执行所述目标运行过程的任务,确定所述处理器在所述目标运行过程中不安全。
如图7所示是本发明一个具体实施例的硬件结构示意图。如图7所示,将外设记录器(ITR,IO Tracer)设置于被测处理器与外设接口之间,将内存记录器(MTR,MemoryTracer)设置于被测处理器与内存之间。当被测处理器处理目标运行过程的任务时,外设记录器和内存记录器分别读取被测处理器与外设、内存之间的输入输出信息,读取模块读取被测处理器的寄存器和/或缓存中存储的数据以获取初始运行状态信息和终止运行状态信息,并记录到存储器中。检测处理器获取上述的输入输出信息和运行状态信息,以相同的输入信息和初始运行状态执行相同的任务,并将输出信息和终止运行状态与被测处理器的输出信息和终止运行状态分别进行对比,输出被测处理器在目标运行过程中是否安全的检测结果。其中,读取模块可以是运行在被测处理器上的程序,该程序可获取被测处理器的运行状态信息并存储到存储器中。
如图8是本发明另一个具体实施例的硬件结构示意图。以被测处理器为英特尔处理器为例,如图8所示,被测处理器可通过集成南桥(PCH,Platform Control Hub)管理外设接口,外设记录器设置于被测处理器与集成南桥、外设接口之间,读取被测处理器与集成南桥、外设接口之间传输的信息。检测处理器可以不通过读取模块和存储模块,直接获取被测处理器的运行状态信息。如图6所示,MTR和ITR还可以集成为一个输入输出(IO)记录器,将读取到的输入输出数据发送给检测处理器。
本发明的上述实施例通过获取处理器在目标运行过程中的输入信息、输出信息以及初始运行状态与终止运行状态,并以相同的初始运行状态和输入信息设置检测装置,使检测装置在相同的条件下执行与处理器相同的任务,最终根据处理器和检测装置的输出信息和终止运行状态的一致性判断处理器是否做出了该任务之外的行为,进而确定处理器在运行过程中的安全性,能够有效检验处理器的行为是否有异常,降低硬件安全检测的难度,提高硬件使用的安全性。同时,检测过程可以在处理器正常运转的过程中进行,既能实现随机检测,也能实现实时监控,检测方便。并且检测内容可以由用户自定义设置,具有很好的可移植性,能够应用于不同型号处理器的硬件安全检测,解决了处理器硬件黑盒的难题,降低了检测难度。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化而不脱离本发明的精神。

Claims (20)

1.一种确定处理器安全性的方法,其特征在于,包括:
在目标运行过程的起始处,通过软件和/或硬件接口获取所述处理器在所述目标运行过程中的初始运行状态,得到所述处理器在所述目标运行过程中的初始运行状态信息,其中,所述目标运行过程为所述处理器实时运行过程的子过程;
记录所述处理器从内存,以及外设、所述处理器内部的模拟电路和/或所述处理器内部的非确定性数字电路中读取的数据,得到所述处理器在所述目标运行过程中的输入信息;
根据所述处理器在所述目标运行过程中的初始运行状态信息设置检测装置的初始运行状态,将所述处理器在所述目标运行过程中的输入信息作为所述检测装置的输入信息;
使所述检测装置以符合预定义行为的方式执行所述目标运行过程中的任务,得到所述检测装置的输出信息和/或终止运行状态信息,其中,所述预定义行为是处理器的硬件行为标准;
当所述检测装置执行完所述目标运行过程中的任务时,根据所述检测装置的输出信息和/或终止运行状态信息,确定所述处理器在所述目标运行过程中是否安全。
2.根据权利要求1所述的方法,其特征在于,在所述根据所述检测装置的输出信息和/或终止运行状态信息,确定所述处理器在所述目标运行过程中是否安全之前,还包括:
记录所述处理器向所述外设和/或所述内存写入的数据,得到所述处理器在所述目标运行过程中的输出信息;和/或在所述目标运行过程的终止处,通过软件和/或硬件接口获取所述处理器在所述目标运行过程中的终止运行状态,得到所述处理器在所述目标运行过程中的终止运行状态信息;
所述根据所述检测装置的输出信息和/或终止运行状态信息,确定所述处理器在所述目标运行过程中是否安全,进一步包括:
比较所述检测装置的输出信息与所述处理器在所述目标运行过程中的输出信息,得到第一比较结果,和/或比较所述检测装置的终止运行状态信息与所述处理器在所述目标运行过程中的终止运行状态信息,得到第二比较结果;
根据所述第一比较结果和/或所述第二比较结果,确定所述处理器在所述目标运行过程中是否安全。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一比较结果和/或所述第二比较结果,确定所述处理器在所述目标运行过程中是否安全,进一步包括:
若根据所述第一比较结果和所述第二比较结果,确定所述处理器在所述目标运行过程中是否安全:
当所述第一比较结果表示所述检测装置的输出信息与所述处理器在所述目标运行过程中的输出信息一致,且所述第二比较结果表示所述检测装置的终止运行状态信息与所述处理器在所述目标运行过程中的终止运行状态信息一致时,确定所述处理器在所述目标运行过程中安全;
当所述第一比较结果表示所述检测装置的输出信息与所述处理器在所述目标运行过程中的输出信息不一致,或所述第二比较结果表示所述检测装置的终止运行状态信息与所述处理器在所述目标运行过程中的终止运行状态信息不一致时,确定所述处理器在所述目标运行过程中不安全。
4.根据权利要求2所述的方法,其特征在于,
所述处理器在所述目标运行过程中的输出信息以及所述检测装置的输出信息分别包括输出数据和/或输出时间;
在比较所述检测装置的输出信息与所述处理器在所述目标运行过程中的输出信息,得到第一比较结果中进一步包括,根据所述输出数据的顺序和/或所述输出数据的内容,比较所述检测装置的输出信息与所述处理器在目标运行过程的输出信息,得到所述第一比较结果。
5.根据权利要求1至4中任一项所述的方法,其特征在于,在所述根据所述检测装置的输出信息和/或终止运行状态信息,确定所述处理器在所述目标运行过程中是否安全之前,还包括:
根据所述预定义行为,判断所述处理器在所述目标运行过程中的初始运行状态和/或终止运行状态是否合法。
6.根据权利要求1至4中任一项所述的方法,其特征在于,
所述处理器在所述目标运行过程中的初始运行状态信息为,所述目标运行过程起始处特征状态集合对应的存储器中存储的数据;
所述处理器在所述目标运行过程中的终止运行状态信息为,所述目标运行过程终止处特征状态集合对应的存储器中存储的数据;
其中,根据所述处理器在所述目标运行过程中的当前运行状态、输入信息以及所述特征状态集合,能够确定所述处理器在所述目标运行过程的输出信息与下一运行状态。
7.根据权利要求6所述的方法,其特征在于,所述存储器包括寄存器和/或缓存。
8.根据权利要求6所述的方法,其特征在于,所述处理器为指令集处理器,所述特征状态集合是根据所述处理器的指令集确定的。
9.根据权利要求1至4中任一项所述的方法,其特征在于,在使所述检测装置以符合预定义行为的方式执行所述目标运行过程中的任务中,进一步包括:
当所述检测装置执行所述任务失败时,所述检测装置停止执行所述任务,确定所述处理器在所述目标运行过程中不安全。
10.一种确定处理器安全性的检测装置,其特征在于,包括:
记录单元,用于在目标运行过程的起始处,通过软件和/或硬件接口获取所述处理器在所述目标运行过程中的初始运行状态,得到所述处理器在所述目标运行过程中的初始运行状态信息,其中,所述目标运行过程为所述处理器实时运行过程的子过程;以及记录所述处理器从内存,以及外设、所述处理器内部的模拟电路和/或所述处理器内部的非确定性数字电路中读取的数据,得到所述处理器在所述目标运行过程中的输入信息;
设置单元,用于根据所述处理器在所述目标运行过程中的初始运行状态信息设置检测单元的初始运行状态,将所述处理器在所述目标运行过程中的输入信息作为所述检测单元的输入信息;
检测单元,用于以符合预定义行为的方式执行所述目标运行过程中的任务,得到所述检测单元的输出信息和/或终止运行状态信息,其中,所述预定义行为是处理器的硬件行为标准;
确定单元,用于当所述检测单元执行完所述目标运行过程中的任务时,根据所述检测单元的输出信息和/或终止运行状态信息,确定所述处理器在所述目标运行过程中是否安全。
11.根据权利要求10所述的检测装置,其特征在于,
所述确定单元进一步用于,比较所述检测单元的输出信息与所述处理器在所述目标运行过程中的输出信息,得到第一比较结果,和/或比较所述检测单元的终止运行状态信息与所述处理器在所述目标运行过程中的终止运行状态信息,得到第二比较结果;根据所述第一比较结果和/或所述第二比较结果,确定所述处理器在所述目标运行过程中是否安全。
12.根据权利要求11所述的检测装置,其特征在于,
所述记录单元还用于,记录所述处理器向所述外设和/或所述内存写入的数据,得到所述处理器在所述目标运行过程中的输出信息;以及在所述目标运行过程的终止处,通过软件和/或硬件接口获取所述处理器在所述目标运行过程中的终止运行状态,得到所述处理器在所述目标运行过程中的终止运行状态信息;
所述确定单元进一步用于,当所述第一比较结果表示所述检测单元的输出信息与所述处理器在所述目标运行过程中的输出信息一致,且所述第二比较结果表示所述检测单元的终止运行状态信息与所述处理器在所述目标运行过程中的终止运行状态信息一致时,确定所述处理器在所述目标运行过程中安全;
当所述第一比较结果表示所述检测单元的输出信息与所述处理器在所述目标运行过程中的输出信息不一致,或所述第二比较结果表示所述检测单元的终止运行状态信息与所述处理器在所述目标运行过程中的终止运行状态信息不一致时,确定所述处理器在所述目标运行过程中不安全。
13.根据权利要求11所述的检测装置,其特征在于,所述处理器在所述目标运行过程中的输出信息以及所述检测单元的输出信息分别包括输出数据和/或输出时间;
所述确定单元进一步用于,根据所述输出数据的顺序和/或所述输出数据的内容,比较所述检测单元的输出信息与所述处理器在所述目标运行过程中的输出信息,得到所述第一比较结果。
14.根据权利要求10至13中任一项所述的检测装置,其特征在于,所述确定单元还用于,根据所述预定义行为,判断所述处理器在所述目标运行过程中的初始运行状态和/或终止运行状态是否合法。
15.根据权利要求11至13中任一项所述的检测装置,其特征在于,所述处理器在所述目标运行过程中的初始运行状态信息为,所述目标运行过程起始处特征状态集合对应的存储器中存储的数据;所述处理器在所述目标运行过程中的终止运行状态信息为,所述目标运行过程终止处特征状态集合对应的存储器中存储的数据;
其中,根据所述处理器在所述目标运行过程中的当前运行状态、输入信息以及所述特征状态集合,能够确定所述处理器在所述目标运行过程的输出信息与下一运行状态。
16.根据权利要求15所述的检测装置,其特征在于,所述存储器包括寄存器和/或缓存。
17.根据权利要求15所述的检测装置,其特征在于,所述处理器为指令集处理器,所述特征状态集合是根据所述处理器的指令集确定的。
18.根据权利要求10至13中任一项所述的检测装置,其特征在于,当所述检测单元执行所述任务失败时,所述检测单元停止执行所述任务,所述确定单元确定所述处理器在所述目标运行过程中不安全。
19.一种检测系统,其特征在于,包括:
所述检测系统包括被测处理器、内存、外设、输入输出IO记录器以及检测处理器;
所述被测处理器在目标运行过程中与所述内存和/或外设进行数据的输入输出;
所述IO记录器记录所述被测处理器在所述目标运行过程中与所述内存和/或外设之间的输入信息与输出信息;
所述检测处理器在目标运行过程的起始处,通过软件和/或硬件接口获取所述被测处理器在所述目标运行过程中的初始运行状态,得到所述被测处理器在所述目标运行过程中的初始运行状态信息,其中,所述目标运行过程为所述被测处理器实时运行过程的子过程;获取所述被测处理器从所述内存,以及所述外设、所述被测处理器内部的模拟电路和/或所述被测处理器内部的非确定性数字电路中读取的数据,得到所述被测处理器在所述目标运行过程中的输入信息;以所述被测处理器在所述目标运行过程中的输入信息作为输入信息,根据所述被测处理器在目标运行过程中的初始运行状态信息设置所述检测处理器的初始运行状态;以符合预定义行为的方式执行所述目标运行过程的任务,得到所述检测处理器的输出信息和/或终止运行状态信息,其中,所述预定义行为是处理器的硬件行为标准;当所述检测处理器执行完所述目标运行过程中的任务时,根据所述检测处理器的输出信息和/或终止状态信息确定所述被测处理器在所述目标运行过程中是否安全。
20.根据权利要求19所述的检测系统,其特征在于,所述IO记录器进一步包括内存记录器和外设记录器,所述内存记录器用于记录所述被测处理器在所述目标运行过程中与内存之间的输入信息与输出信息,所述外设记录器用于记录所述被测处理器在所述目标运行过程中与外设之间的输入信息与输出信息。
CN201710089783.9A 2017-02-20 2017-02-20 确定处理器安全性的方法、检测装置及系统 Active CN108345787B (zh)

Priority Applications (7)

Application Number Priority Date Filing Date Title
CN201710089783.9A CN108345787B (zh) 2017-02-20 2017-02-20 确定处理器安全性的方法、检测装置及系统
US15/804,188 US10423795B2 (en) 2017-02-20 2017-11-06 Method, checking device, and system for determining security of a processor
US15/894,042 US10572671B2 (en) 2017-02-20 2018-02-12 Checking method, checking system and checking device for processor security
US15/895,977 US10684896B2 (en) 2017-02-20 2018-02-13 Method for processing asynchronous event by checking device and checking device
US15/895,992 US10642981B2 (en) 2017-02-20 2018-02-13 Checking method, checking device and checking system for processor
US15/895,686 US10657022B2 (en) 2017-02-20 2018-02-13 Input and output recording device and method, CPU and data read and write operation method thereof
US15/895,145 US10331381B2 (en) 2017-02-20 2018-02-13 Method and device for recording memory access operation information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710089783.9A CN108345787B (zh) 2017-02-20 2017-02-20 确定处理器安全性的方法、检测装置及系统

Publications (2)

Publication Number Publication Date
CN108345787A CN108345787A (zh) 2018-07-31
CN108345787B true CN108345787B (zh) 2019-04-23

Family

ID=62962932

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710089783.9A Active CN108345787B (zh) 2017-02-20 2017-02-20 确定处理器安全性的方法、检测装置及系统

Country Status (2)

Country Link
US (1) US10423795B2 (zh)
CN (1) CN108345787B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10684896B2 (en) 2017-02-20 2020-06-16 Tsinghua University Method for processing asynchronous event by checking device and checking device
US10572671B2 (en) 2017-02-20 2020-02-25 Tsinghua University Checking method, checking system and checking device for processor security
US10657022B2 (en) 2017-02-20 2020-05-19 Tsinghua University Input and output recording device and method, CPU and data read and write operation method thereof
EP3570197A1 (en) * 2018-05-16 2019-11-20 Gemalto Sa Electronic system and method for preventing malicious actions on a processing system of the electronic system
CN109241743A (zh) * 2018-08-14 2019-01-18 清华大学 记录处理器操作信息的方法、装置、系统及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104239616A (zh) * 2014-09-02 2014-12-24 工业和信息化部电子第五研究所 集成电路的设计方法及硬件木马检测方法
CN104866766A (zh) * 2015-06-05 2015-08-26 中国电子科技集团公司第五十八研究所 一种针对cpu内部隐藏指令型硬件木马的检测方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080126766A1 (en) * 2006-11-03 2008-05-29 Saurabh Chheda Securing microprocessors against information leakage and physical tampering
WO2011156021A2 (en) * 2010-03-01 2011-12-15 The Trustees Of Columbia University In The City Of New York Systems and methods for detecting design-level attacks against a digital circuit
US9037895B2 (en) * 2010-10-13 2015-05-19 The Trustees Of Columbia University In The City Of New York System and methods for silencing hardware backdoors
US20160098558A1 (en) * 2014-10-03 2016-04-07 New York University System, method and computer-accessible medium for security verification of third party intellectual property cores
CN108345521B (zh) 2017-07-24 2019-09-20 清华大学 控制多核处理器运行及多核处理器的安全检测方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104239616A (zh) * 2014-09-02 2014-12-24 工业和信息化部电子第五研究所 集成电路的设计方法及硬件木马检测方法
CN104866766A (zh) * 2015-06-05 2015-08-26 中国电子科技集团公司第五十八研究所 一种针对cpu内部隐藏指令型硬件木马的检测方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
指令诱发型硬件木马检测技术研究;高洪博;《中国博士学位论文全文数据库 信息科技辑》;20140115;第4章

Also Published As

Publication number Publication date
US20180239905A1 (en) 2018-08-23
US10423795B2 (en) 2019-09-24
CN108345787A (zh) 2018-07-31

Similar Documents

Publication Publication Date Title
CN108345787B (zh) 确定处理器安全性的方法、检测装置及系统
CN105589993B (zh) 微处理器功能验证设备及微处理器功能验证方法
CN103765427B (zh) 检验设备的固件完整性
US5845064A (en) Method for testing and verification of a CPU using a reference model
CN103399818B (zh) 操作系统中的死锁检测方法
EP3369015B1 (en) Methods and circuits for debugging circuit designs
CN103150228B (zh) 面向高速缓冲存储器的可综合伪随机验证方法及装置
CN106201793A (zh) 半导体装置和诊断测试方法
US4493078A (en) Method and apparatus for testing a digital computer
DeOrio et al. Dacota: Post-silicon validation of the memory subsystem in multi-core designs
US10078113B1 (en) Methods and circuits for debugging data bus communications
CN103176876A (zh) 一种高效安全的计算机在线自检方法及自检装置
CN108509791A (zh) 检测处理器的方法、检测装置以及检测系统
Mammo et al. BugMD: Automatic mismatch diagnosis for bug triaging
CN106650434B (zh) 一种基于io序列的虚拟机异常行为检测方法与系统
CN104750600B (zh) 设备状态记录方法和系统
DeOrio et al. Bridging pre-and post-silicon debugging with BiPeD
CN106610879A (zh) 提高芯片cpu噪声测试效率的方法
CN102567774A (zh) 一种智能卡安全防护电路和方法
US20140053028A1 (en) Anomaly detection at the level of run time data structures
CN106155866A (zh) 一种监控cpu核心频率的方法及装置
Ozer et al. Error correlation prediction in lockstep processors for safety-critical systems
CN114238035B (zh) 一种通过运行状态指纹进行错误检测方法及系统
Baier et al. Waiting for locks: How long does it usually take?
Benso et al. A low-cost programmable board for speeding-up fault injection in microprocessor-based systems

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant