CN102542185B - 硬化随机访问存储器中的软件执行的方法和装置 - Google Patents

硬化随机访问存储器中的软件执行的方法和装置 Download PDF

Info

Publication number
CN102542185B
CN102542185B CN201010601493.6A CN201010601493A CN102542185B CN 102542185 B CN102542185 B CN 102542185B CN 201010601493 A CN201010601493 A CN 201010601493A CN 102542185 B CN102542185 B CN 102542185B
Authority
CN
China
Prior art keywords
tolerance
protected code
active
external inspection
startup
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
CN201010601493.6A
Other languages
English (en)
Other versions
CN102542185A (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.)
EMC Corp
Original Assignee
EMC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by EMC Corp filed Critical EMC Corp
Priority to CN201010601493.6A priority Critical patent/CN102542185B/zh
Priority to US12/982,378 priority patent/US9104863B2/en
Publication of CN102542185A publication Critical patent/CN102542185A/zh
Application granted granted Critical
Publication of CN102542185B publication Critical patent/CN102542185B/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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • 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/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明的示例实施方式涉及硬化随机访问存储器中的软件执行的方法和装置。具体地,涉及一种系统、装置和方法,用于在代码在计算机平台的RAM中处于执行中时,保护该代码的完整性以防止其被恶意或意外地修改。该方法还可以称为代码硬化。在本发明的示例实施方式中,待硬化的代码可以称为受保护代码。本发明的示例实施方式能够从外部检测管理程序的未授权停止,其通过采用(1)受保护代码的启动时度量;(2)受保护代码的运行时度量;以及(3)受保护代码的活性指示符来实现。

Description

硬化随机访问存储器中的软件执行的方法和装置
本专利文档的部分公开可以包含命令格式和其他计算机语言列表,所有这些均受版权保护。版权所有者不反对任何人对本专利文档或专利公开的复制重现,因为其出现在专利商标局专利文件或记录中,但是除此之外保留所有版权权利。
技术领域
本申请涉及验证计算机平台的存储器中执行的受保护代码的完整性。
背景技术
管理程序(hypervisor)(也即,虚拟机监控器)管理硬件平台在多个客户系统之间的共享,并且其通常用作云计算中的基础设施即服务(IaaS)中的特权软件。管理程序具有相对小的代码库以及与外部世界的有限交互,因此其被认为是受到良好保护并且容易检验的。
发明内容
本发明的示例实施方式涉及验证计算机平台的存储器中执行的受保护代码的完整性的方法和装置。该方法包括:从计算机平台接收存储的受保护代码的启动时度量,从计算机平台获取执行的受保护代码的运行时度量,以及从计算机平台获取该执行的受保护代码的活性(liveliness)指示符。继而根据启动时度量、运行时度量以及活性指示符来验证执行的受保护代码的完整性。
其他示例实施方式涉及用于利用外部检验器来验证存储器中的执行的受保护代码的完整性的方法和装置,包括:向外部检验器提供存储的受保护代码的启动时度量,响应于来自外部检验器的针对运行时度量的请求而向外部检验器提供执行的受保护代码的运行时度量,以及响应于来自外部检验器的针对活性指示符的请求而向外部检验器提供执行的受保护代码的活性指示符,其中如果在该外部检验器处比较启动时度量和运行时度量成功,则从该外部检验器发送针对活性指示符的请求。
本发明的示例实施方式还包括用于执行方法步骤的系统和计算机程序产品。
附图说明
通过参考下面结合附图的描述,可以更好地理解本发明的上述以及其他优势,附图中:
图1是示出了可以在其中采用本发明的示例实施方式的示例环境的图示;
图2是示出了本发明的示例实施方式的系统和装置的框图,该系统和装置用于验证计算机平台的存储器中的执行的受保护代码的完整性;
图3A-图3B是示出了本发明的示例实施方式的方法的流程图,该方法在计算机平台处执行以用于利用外部检验器来验证存储器中的执行的受保护代码的完整性;
图4A-图4B是示出了本发明的示例实施方式的方法的流程图,该方法在外部检验器处执行以用于验证计算机平台的存储器中的执行的受保护代码的完整性;
图5是示出了实施为程序代码或程序产品的本发明的示例实施方式的方法的图示。
具体实施方式
管理程序并不是完全安全的,其易于受到多种攻击,诸如管理程序代码和数据在运行时被修改。管理程序面临与传统操作系统类似的完整性威胁,因此它们需要保护、测量和检验其完整性。在系统引导时检验管理程序的完整性可以通过诸如可信引导之类的传统技术来完成。同样地,已经开发了用于在运行时检验管理程序的完整性的传统技术。然而,这些传统技术无法在计算机平台的随机访问存储器(RAM)中执行期间检验管理程序的完整性。
例如,这种传统技术仅保护软件版本,并且不能阻止“检查时间到使用时间”(TOC2TOU)攻击。在TOC2TOU攻击中,代码的完整性可能在从检查代码完整性的时刻到使用该代码时刻的攻击窗口期间遭到损坏。在很多情形下,攻击窗口可以是扩展的时段。
而且,这种传统技术不适于在服务器可被网络引导的数据中心中使用。网络引导是从网络而不是从本地驱动引导计算机的过程。在没有检验网络引导源的情况下,无法可靠地假定网络引导源的完整性,因此不是所有被引导的服务器都是可信的。
图1是示出了可以在其中采用本发明的示例实施方式的示例环境100的图示。环境100可以是用于基础设施即服务(IaaS)的云计算环境。环境100包括通过网络130(诸如因特网)连接的多个服务器110-1到110-N(统称110)和多个客户端120-1到120-N(统称120)。每个服务器110可以是运行管理程序(也即,虚拟机监控器)的计算机平台,其中管理程序管理硬件平台在多个客户系统(例如,客户端120)之间的共享。
在某些场合中,可能期望在支持多个客户端120的虚拟机的服务器110之间对多个进程执行自动负载平衡(也即,优选实施方式中的管理程序)。发明人敏锐地认识到,虚拟机可能在多个管理程序上分布得不均匀或不利。为此,期望调整管理程序的利用以便更有效地平衡正运行的管理程序和虚拟机的负载。管理程序不是完全安全的,并且易于受到多种攻击,诸如管理程序代码和数据在运行时被修改。因此,在将虚拟机的进程从一个服务器传送到另一服务器之前;同样地,在从管理该虚拟机的一个管理程序到另一管理程序之前,有利的是检验管理程序的状态以及检验自从管理程序开始运行以来其服务条件尚未变化。
图2是示出了本发明的示例实施方式的系统200的框图,该系统用于验证计算机平台的存储器中的执行的受保护代码的完整性。系统200包括通过网络205(诸如因特网)连接的计算机平台210和外部检验器245。
计算机平台210可以包括开放式体系结构计算硬件(例如,IntelX86体系结构)和软件部件。计算机平台210包括用于存储已存储的受保护代码217的存储设备215,用于存储执行的受保护代码222和程序逻辑223的存储器220,其中程序逻辑223用于利用外部检验器245来验证存储器220中的执行的受保护代码222的完整性,以及用于将存储的受保护代码217加载到存储器220中并且执行该执行的受保护代码222和程序逻辑223的处理器225。
计算机平台210还包括启动时单元230、运行时单元235和活性单元240。外部检验器245包括比较器单元250和检验单元255。
启动时单元230可以是可信机制,包括物理上受保护的环境,诸如可信计算组织(TCG)技术或可信执行技术(TXT)。在计算机平台210的启动时刻,启动时单元230测量存储的受保护代码217。测量结果称为启动时度量232,其可以是存储在存储设备215中的存储的受保护代码217的哈希。启动时单元230在启动时单元处安全地存储启动时度量232以供将来证明。在备选实施方式中,诸如网络引导服务器,启动时度量232可以存储在物理上安全的网络存储设备中,诸如存储在存储区域网络(SAN)(未示出)中。
运行时单元235可以是可信机制,包括物理上受保护的环境,诸如具有设备上信息完整性保护能力并且能够进行直接存储器访问(DMA)的设备。运行时单元235可以在计算机平台210启动之后读取存储器220中的位置内容。在执行的受保护代码222的运行时间,运行时单元235读取存储执行的受保护代码222的存储器220中的位置,以及响应于授权的指令而测量该执行的受保护代码222。测量结果称为运行时度量237,其可以是存储在存储器220中的执行的受保护代码222的哈希。
使得运行时单元235测量执行的受保护代码222以及生成运行时度量237的该授权的指令可以是由外部检验器245的比较器单元250发送的、针对运行时度量的请求252。比较器单元250还配置用于比较启动时度量232和运行时度量237,以确定在计算机平台210的启动与执行的受保护代码222的运行时之间的时刻,是否损坏了存储的受保护代码217的完整性。
活性单元240管理计算机平台210与外部检验器245之间的活性协议机制,在一个优选实施方式中,诸如是来自马萨诸塞州Bedford的EMC的安全部门,RSA的RSA活性单元240以如下方式初始化:计算机平台210和外部检验器245共享某个秘密,诸如初始化种子242(也即,令牌)。所共享的秘密与可靠事件(诸如,时间值)一起被编码到单向函数中,该可靠事件对于计算机平台210和外部检验器245二者而言都是可靠已知的。在执行的受保护代码222处于执行中的任何时刻,外部检验器245可以请求计算机平台210按照活性协议来生成活性指示符243,以便检测执行的受保护代码222是否与相互已知的可靠事件处于活性同步中(也即,执行的受保护代码222尚未停止或改变)。
外部检验器245的比较器单元250接收启动时度量232,并且响应于向计算机平台210发送针对运行时度量的请求252而从计算机平台210接收运行时度量237。比较器单元250还将启动时度量232与运行时度量237进行比较,以及确定启动时度量232与运行时度量237是否匹配。外部检验器245的检验单元255可以发送针对活性指示符的请求257。检验单元255还配置用于接收由活性单元240发送的初始化种子242以及由活性单元240发送的活性指示符243,以及确定活性指示符243是否符合编码有初始化种子242的单向函数所制定的活性协议。外部检验器245还包括用于存储程序逻辑262的存储器260以及用于执行程序逻辑262的处理器265,其中程序逻辑262用于验证计算机平台210的存储器220中的执行的受保护代码222的完整性。
当程序逻辑223、262被加载到存储器220、226中并且由机器(例如,计算机平台210或外部检验器245)执行时,该机器成为用于实践本发明的装置。当在一个或多个通用处理器(例如,分别是处理器225和265)上实施时,程序逻辑223、262与这种处理器进行组合以提供唯一装置,其与专用逻辑电路类似地进行操作。这样,通用数字机器可以转换成专用数字机器。进一步地,运行程序逻辑223、265的处理器225、265支持用于执行本发明的示例实施方式的新的计算机进程。
图3A-图3B以及图4A-图4B是示出了分别在计算机平台(例如,图2的计算机平台210)和在外部检验器(例如,图2的外部检验器245)处执行的本发明示例实施方式的方法的流程图。将对图3A-图3B以及图4A-图4B一起描述,同时参考图3A和图4A中的元素,以及类似地同时参考图3B和图4B中的元素,例如以便示出在计算机平台210处执行的方法(也即,图3A-图3B)与在外部检验器245处执行的方法(也即,图4A-图4B)之间的交互。还参考图2中的元素,例如以便示出在用于验证计算机平台210的存储器220中的执行的受保护代码222的完整性的示例实施方式的系统200中,计算机平台210与外部检验器245之间进行的通信222、242、262、263、252、297。
在计算机平台210的启动时刻,启动时单元230测量存储的受保护代码217(300)。测量结果称为启动时度量232,其可以是存储的受保护代码217的哈希。启动时单元230在启动时单元230处安全地存储启动时度量232以供将来证明。启动时单元230还向外部检验器245发送启动时度量232(305)。活性单元240继而向外部检验器245发送初始化种子242(310),并且初始化计算机平台210处的活性协议(315)。
外部检验器245从计算机平台210接收启动时度量232(405)。外部检验器245还从计算机平台210接收初始化种子242(410),并且对外部检验器245的活性协议进行初始化(415)。因此,计算机平台210处和外部检验器245处的活性协议按如下方式被初始化:计算机平台210和外部检验器245共享秘密,诸如初始化种子242(也即,令牌)。如下文将进一步描述的,所共享的秘密可以与可靠事件(诸如时间值)一起被编码到单向函数中,该可靠事件对于计算机平台210和外部检验器245二者而言都是可靠已知的。
存储的受保护代码217在其被执行之前可以在计算机平台210的存储设备215中驻留一段时间。因此,计算机平台210确定存储的受保护代码217是否已运行(320)。如果存储的受保护代码217尚未运行(322),则计算机平台210继续等待。
然而,如果存储的受保护代码217已经运行(323),则方法继续等待发送自外部检验器的、针对运行时度量的请求252(425)。当计算机平台210从外部检验器245接收到针对运行时度量的请求252时(325),运行时单元235读取存储执行的受保护代码222的存储器220中的位置内容,并且测量执行的受保护代码222(330)以作为运行时度量237。运行时单元235继而向外部检验器245发送该运行时度量237(335)。运行时度量237可以是执行的受保护代码222的哈希。
比较器单元250继而从计算机平台210接收运行时度量237(435),并且确定启动时度量232与运行时度量237是否匹配(440)。如果启动时度量232与运行时度量237不匹配(442),则比较器单元250报告警报并且挂起(475)。例如,所报告的警报可以被外部检验器245或外部检验器245向其报告该警报的管理服务器(未示出)的操作者查看,以检查计算机平台210的状态。然而,如果启动时度量232与运行时度量237匹配(443),则外部检验器245在稍后继续验证执行的受保护代码222的完整性(445),如下文所描述的。
在执行的受保护代码222在计算机平台210处处于执行中的任何时刻,外部检验器245可以确定其应当验证计算机平台210处执行的受保护代码222的完整性(440)。如果验证不是必需的(447),则外部检验器245继续等待其应当验证执行的受保护代码222的完整性的指示。例如,外部检验器245可以定义完整性验证规则,诸如要求计算机平台210以某个间隔(例如,5秒)报告受保护代码的状态。
如果外部检验器245确定其应当验证执行的受保护代码222的完整性(448),则检验单元255发送针对来自计算机平台210的活性指示符(其由活性单元240按照活性协议而生成)的请求257(450),以检测执行的受保护代码222是否与相互已知的可靠事件处于活性同步中(也即,执行的受保护代码222尚未停止)。因此,计算机平台210确定其是否接收到针对活性指示符的请求257(350)。
如果尚未接收到针对活性指示符的请求257(352),则计算机平台210继续等待。然而,如果接收到针对活性指示符的请求257(353),则活性单元240计算所请求的活性指示符243(355),并且向外部检验器245发送所请求的活性指示符243(355)。
检验单元255继而从计算机平台210接收活性指示符243(460),以及检查活性指示符243以确定接收的活性指示符243是否符合活性协议(465)。如上文所描述的,活性单元240以如下方式进行初始化:计算机平台210和外部检验器245共享秘密,诸如初始化种子242(也即,令牌)。因此,所共享的秘密与可靠事件一起在计算机平台210处编码在单向函数中的结果,作为活性指示符243向外部检验器245发送,其应当对应于所共享的秘密与可靠事件一起在外部检验器245处编码在单向函数中的结果。
因此,如果接收到的活性指示符243不符合活性协议(467),则检验单元255报告警报并且挂起(475)。然而,如果接收到的活性指示符243确实符合活性协议(468),则检验单元255报告成功验证计算机平台210的存储器220中的执行的受保护代码222,并且继续(470)。例如,外部检验器245可以等待其应当验证受保护代码的完整性(445)的另一指示,或者接收指示执行的受保护代码222已经停止并且已经重启的另一运行时度量237(435)。
本发明的方法和装置可以至少部分地采取具体化在有形的非瞬态介质中的程序代码(也即,指令)的形式,这些介质诸如软盘、CD-ROM、硬驱、随机访问存储器或只读存储器,或者任何其他机器可读存储介质。
图5示出了具体化在所示计算机可读介质510上的程序逻辑520,并且其中程序逻辑520以计算机可执行代码进行编码,其配置用于执行图1-图4所示出的方法,由此构成计算机程序产品500。
用于执行该方法的逻辑可以具体化为上述系统的一部分,这对于执行例如参考图1-图4所示的实施方式描述的方法非常有用。出于示例说明本发明的目的,将本发明描述为具体化在特定配置中并且使用专用逻辑布置,但是本领域技术人员将会理解,设备不限于特定配置,而是仅由包括在此说明书中的权利要求来限定。
尽管出于清楚理解的目的已经相当详细地描述了前述发明,但是很显然,可以在所附权利要求的范围内实践某些改变和修改。相应地,此处的实施应视为示意性而非限制性的,并且本发明不局限于此处给出的细节,而是可以在所附权利要求的范围和等价物内进行修改。
当阅读上述描述时,本领域技术人员将认识到,可以存在很多可以应用于所述方法和系统的明显的变形。在前述说明书中,已经参考其具体示例性实施方式对本发明进行了描述。然而,很明显的是,在不偏离所附权利要求中阐述的本发明的宽泛精神和范围的情况下,可以对具体示例性实施方式做出各种修改和改变。相应地,说明书和附图应当从示例性方面而不是限制性方面进行考虑。

Claims (24)

1.一种用于验证计算机平台的存储器中执行的受保护代码的完整性的方法,所述方法包括:
从所述计算机平台接收存储的受保护代码的启动时度量,其中所述启动时度量是所述计算机平台的启动时测量结果;
从所述计算机平台获取所述执行的受保护代码的运行时度量,其中所述运行时度量是所述执行的受保护代码的运行时测量结果;
从所述计算机平台获取所述执行的受保护代码的活性指示符,其中所述活性指示符指示所述执行的受保护代码未被干预;以及
根据所述启动时度量、所述运行时度量以及所述活性指示符来验证所述执行的受保护代码的完整性。
2.根据权利要求1的方法,其中根据所述启动时度量、所述运行时度量以及所述活性指示符来验证所述执行的受保护代码的完整性包括:
确定所述启动时度量和所述运行时度量是否等效;
如果所述启动时度量与所述运行时度量不等效,则报告指示所述存储的受保护代码的损坏的警报;
如果所述启动时度量与所述运行时度量等效,则确定所述执行的受保护代码是否处于活性状态。
3.根据权利要求2的方法,其中如果所述启动时度量与所述运行时度量等效则确定所述执行的受保护代码是否处于活性状态包括:
确定所述活性指示符是否符合活性协议;
如果所述活性指示符不符合所述活性协议,则报告指示所述执行的受保护代码的损坏的警报;以及
如果所述活性指示符确实符合所述活性协议,则报告所述执行的受保护代码的验证。
4.根据权利要求3的方法,其中从所述计算机平台获取所述执行的受保护代码的活性指示符包括:
从所述计算机平台接收初始化种子;
根据所述初始化种子对所述活性协议的单向函数进行初始化;
如果所述启动时度量与所述运行时度量等效,则请求来自所述计算机平台的所述活性指示符;以及
接收所述活性指示符。
5.根据权利要求4的方法,其中从所述计算机平台获取所述执行的受保护代码的运行时度量包括:
向所述计算机平台发送针对所述运行时度量的请求;以及
从所述计算机平台接收所述运行时度量,其中所述计算机平台响应于接收针对所述运行时度量的请求,通过在所述执行的受保护代码的运行时间测量所述执行的受保护代码来生成所述运行时度量。
6.一种用于利用外部检验器来验证存储器中执行的受保护代码的完整性的方法,所述方法包括:
向所述外部检验器提供存储的受保护代码的启动时度量,其中所述启动时度量是计算机平台的启动时测量结果;
向所述外部检验器提供执行的受保护代码的运行时度量,其中所述运行时度量是所述执行的受保护代码的运行时测量结果;以及
向所述外部检验器提供所述执行的受保护代码的活性指示符,其中所述活性指示符指示所述执行的受保护代码未被干预。
7.根据权利要求6的方法,其中向所述外部检验器提供所述执行的受保护代码的活性指示符包括:
向所述外部检验器提供初始化种子;以及
根据所述初始化种子对活性协议的单向函数进行初始化。
8.根据权利要求7的方法,其中向所述外部检验器提供存储的受保护代码的启动时度量包括:
测量所述存储的受保护代码以生成所述启动时度量;
将所述启动时度量存储在物理上受保护的环境中;以及
向所述外部检验器发送所述启动时度量;
其中向所述外部检验器提供执行的受保护代码的运行时度量包括:
从所述外部检验器接收针对所述运行时度量的请求;
测量所述执行的受保护代码以生成所述运行时度量;以及
向所述外部检验器发送所述运行时度量;以及
其中向所述外部检验器提供所述执行的受保护代码的活性指示符进一步包括:
如果在所述外部检验器处比较所述启动时度量与所述运行时度量成功,则从所述外部检验器接收针对所述活性指示符的请求;
根据所述活性协议计算所述活性指示符;以及
向所述外部检验器发送所述活性指示符。
9.一种用于验证计算机平台的存储器中执行的受保护代码的完整性的装置,所述装置包括:
比较器单元,用于从所述计算机平台接收存储的受保护代码的启动时度量,从所述计算机平台获取所述执行的受保护代码的运行时度量,以及比较所述启动时度量和所述运行时度量,其中所述启动时度量是所述计算机平台的启动时测量结果并且其中所述运行时度量是所述执行的受保护代码的运行时测量结果;以及
检验单元,用于从所述计算机平台获取所述执行的受保护代码的活性指示符,以及根据所述启动时度量、所述运行时度量和所述活性指示符来验证所述执行的受保护代码的完整性,其中所述活性指示符指示所述执行的受保护代码未被干预。
10.根据权利要求9的装置,其中所述比较器单元配置用于确定所述启动时度量和所述运行时度量是否等效,以及如果所述启动时度量与所述运行时度量不等效,则报告指示所述存储的受保护代码的损坏的警报;以及
其中所述检验单元配置用于确定所述活性指示符是否符合活性协议,如果所述活性指示符不符合所述活性协议,则报告指示所述执行的受保护代码的损坏的警报;以及如果所述活性指示符确实符合所述活性协议,则报告所述执行的受保护代码的验证。
11.根据权利要求10的装置,其中所述检验单元进一步配置用于从所述计算机平台接收初始化种子,根据所述初始化种子对所述活性协议的单向函数进行初始化,如果所述启动时度量与所述运行时度量等效,则请求来自所述计算机平台的所述活性指示符,以及接收所述活性指示符。
12.一种用于利用外部检验器来验证存储器中执行的受保护代码的完整性的装置,所述装置包括:
启动时单元,用于向所述外部检验器提供存储的受保护代码的启动时度量,其中所述启动时度量是计算机平台的启动时测量结果;
运行时单元,用于响应于来自所述外部检验器的、针对运行时度量的请求,向所述外部检验器提供执行的受保护代码的所述运行时度量,其中所述运行时度量是所述执行的受保护代码的运行时测量结果;以及
活性单元,用于响应于来自所述外部检验器的、针对活性指示符的请求,向所述外部检验器提供所述执行的受保护代码的所述活性指示符,其中,如果在所述外部检验器处比较所述启动时度量和运行时度量成功,则从所述外部检验器发送所述针对活性指示符的请求,其中所述活性指示符指示所述执行的受保护代码未被干预。
13.根据权利要求12的装置,其中所述启动时单元配置用于测量所述存储的受保护代码以生成所述启动时度量,将所述启动时度量存储在物理上受保护的环境中,以及向所述外部检验器发送所述启动时度量;其中所述运行时单元配置用于从所述外部检验器接收针对所述运行时度量的请求,测量所述执行的受保护代码以生成所述运行时度量,以及向所述外部检验器发送所述运行时度量;以及其中所述活性单元配置用于向所述外部检验器提供初始化种子,根据所述初始化种子对活性协议的单向函数进行初始化,如果在所述外部检验器的所述启动时度量与所述运行时度量的比较成功,则从所述外部检验器接收针对所述活性指示符的请求,根据通过所述初始化种子初始化的所述活性协议的单向函数来计算所述活性指示符,以及向所述外部检验器发送所述活性指示符。
14.一种用于验证存储器中执行的受保护代码的完整性的系统,所述系统包括:
计算机平台,包括启动时单元、运行时单元和活性单元;以及
外部检验器,包括比较器单元和检验单元;
其中所述启动时单元配置用于向所述外部检验器提供存储的受保护代码的启动时度量,其中所述启动时度量是所述计算机平台的启动时测量结果;
其中所述运行时单元配置用于响应于来自所述外部检验器的、针对运行时度量的请求,向所述外部检验器提供执行的受保护代码的所述运行时度量,其中所述运行时度量是所述执行的受保护代码的运行时测量结果;
其中所述活性单元配置用于响应于来自所述外部检验器的、针对活性指示符的请求,向所述外部检验器提供所述执行的受保护代码的所述活性指示符,其中,如果在所述外部检验器处比较所述启动时度量和运行时度量成功,则从所述外部检验器发送所述针对活性指示符的请求,其中所述活性指示符指示所述执行的受保护代码未被干预;
其中所述比较器单元配置用于将从所述计算机平台接收的存储的受保护代码的启动时度量与从所述计算机平台获取的所述执行的受保护代码的运行时度量进行比较;以及
其中所述检验单元配置用于:如果所述比较器单元执行的比较成功,则根据从所述计算机平台获取的活性指示符来验证所述执行的受保护代码的完整性。
15.根据权利要求14的系统,其中所述启动时单元配置用于测量所述存储的受保护代码以生成所述启动时度量,将所述启动时度量存储在物理上受保护的环境中,以及向所述外部检验器发送所述启动时度量;
其中所述运行时单元配置用于从所述外部检验器接收针对所述运行时度量的请求,测量所述执行的受保护代码以生成所述运行时度量,以及向所述外部检验器发送所述运行时度量;以及
其中所述活性单元配置用于向所述外部检验器提供初始化种子,根据所述初始化种子对活性协议的单向函数进行初始化,如果在所述外部检验器处比较所述启动时度量与所述运行时度量成功,则从所述外部检验器接收针对所述活性指示符的请求,根据通过所述初始化种子初始化的所述活性协议的单向函数来计算所述活性指示符,以及向所述外部检验器提供所述活性指示符。
16.根据权利要求15的系统,
其中所述比较器单元配置用于确定所述启动时度量和所述运行时度量是否等效,如果所述启动时度量与所述运行时度量不等效,则报告指示所述存储的受保护代码的损坏的警报,以及如果所述启动时度量与所述运行时度量等效,则请求所述活性指示符;以及
其中所述检验单元配置用于从所述计算机平台接收初始化种子,根据所述初始化种子对活性协议的单向函数进行初始化,根据所述活性协议从所述计算机平台接收对所述执行的受保护代码的活性指示符,确定所述活性指示符是否符合根据所述初始化种子初始化的活性协议的单向函数,如果所述活性指示符不符合所述活性协议,则报告指示所述执行的受保护代码的损坏的警报,以及如果所述活性指示符确实符合所述活性协议,则报告所述执行的受保护代码的验证。
17.一种用于验证计算机平台的存储器中执行的受保护代码的完整性的设备,包括:
用于从所述计算机平台接收存储的受保护代码的启动时度量的模块,其中所述启动时度量是所述计算机平台的启动时测量结果;
用于从所述计算机平台获取所述执行的受保护代码的运行时度量的模块,其中所述运行时度量是所述执行的受保护代码的运行时测量结果;
用于从所述计算机平台获取所述执行的受保护代码的活性指示符的模块,其中所述活性指示符指示所述执行的受保护代码未被干预;以及
用于根据所述启动时度量、所述运行时度量以及所述活性指示符来验证所述执行的受保护代码的完整性的模块。
18.根据权利要求17的设备,其中用于根据所述启动时度量、所述运行时度量以及所述活性指示符来验证所述执行的受保护代码的完整性的模块包括:
用于确定所述启动时度量和所述运行时度量是否等效的模块;
用于如果所述启动时度量与所述运行时度量不等效,则报告指示所述存储的受保护代码的损坏的警报的模块;
用于如果所述启动时度量与所述运行时度量等效,则确定所述执行的受保护代码是否处于活性状态的模块。
19.根据权利要求18的设备,其中用于如果所述启动时度量与所述运行时度量等效则确定所述执行的受保护代码是否处于活性状态的模块包括:
用于确定所述活性指示符是否符合活性协议的模块;
用于如果所述活性指示符不符合所述活性协议,则报告指示所述执行的受保护代码的损坏的警报的模块;以及
用于如果所述活性指示符确实符合所述活性协议,则报告所述执行的受保护代码的验证的模块。
20.根据权利要求19的设备,其中用于从所述计算机平台获取所述执行的受保护代码的活性指示符的模块包括:
用于从所述计算机平台接收初始化种子的模块;
用于根据所述初始化种子对所述活性协议的单向函数进行初始化的模块;
用于如果所述启动时度量与所述运行时度量等效,则请求来自所述计算机平台的所述活性指示符的模块;以及
用于接收所述活性指示符的模块。
21.根据权利要求20的设备,其中用于从所述计算机平台获取所述执行的受保护代码的运行时度量的模块包括:
用于向所述计算机平台发送针对所述运行时度量的请求的模块;以及
用于从所述计算机平台接收所述运行时度量的模块,其中所述计算机平台响应于接收到针对所述运行时度量的请求,通过在所述执行的受保护代码的运行时间测量所述执行的受保护代码来生成所述运行时度量。
22.一种用于利用外部检验器来验证存储器中执行的受保护代码的完整性的设备,包括:
用于向所述外部检验器提供存储的受保护代码的启动时度量的模块,其中所述启动时度量是计算机平台的启动时测量结果;
用于向所述外部检验器提供执行的受保护代码的运行时度量的模块,其中所述运行时度量是所述执行的受保护代码的运行时测量结果;以及
用于向所述外部检验器提供所述执行的受保护代码的活性指示符的模块,其中所述活性指示符指示所述执行的受保护代码未被干预。
23.根据权利要求22的设备,其中用于向所述外部检验器提供所述执行的受保护代码的活性指示符的模块包括:
用于向所述外部检验器提供初始化种子的模块;以及
用于根据所述初始化种子对活性协议的单向函数进行初始化的模块。
24.根据权利要求23的设备,其中用于向所述外部检验器提供存储的受保护代码的启动时度量的模块包括:
用于测量所述存储的受保护代码以生成所述启动时度量的模块;
用于将所述启动时度量存储在物理上受保护的环境中的模块;以及
用于向所述外部检验器发送所述启动时度量的模块;
其中用于向所述外部检验器提供执行的受保护代码的运行时度量的模块包括:
用于从所述外部检验器接收针对所述运行时度量的请求的模块;
用于测量所述执行的受保护代码以生成所述运行时度量的模块;以及
用于向所述外部检验器发送所述运行时度量的模块;以及
其中用于向所述外部检验器提供所述执行的受保护代码的活性指示符的模块进一步包括:
用于如果在所述外部检验器的所述启动时度量与所述运行时度量的比较成功,则从所述外部检验器接收针对所述活性指示符的请求的模块;
用于根据所述活性协议计算所述活性指示符的模块;以及
用于向所述外部检验器发送所述活性指示符的模块。
CN201010601493.6A 2010-12-23 2010-12-23 硬化随机访问存储器中的软件执行的方法和装置 Active CN102542185B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201010601493.6A CN102542185B (zh) 2010-12-23 2010-12-23 硬化随机访问存储器中的软件执行的方法和装置
US12/982,378 US9104863B2 (en) 2010-12-23 2010-12-30 Method and apparatus to harden a software execution in random access memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010601493.6A CN102542185B (zh) 2010-12-23 2010-12-23 硬化随机访问存储器中的软件执行的方法和装置

Publications (2)

Publication Number Publication Date
CN102542185A CN102542185A (zh) 2012-07-04
CN102542185B true CN102542185B (zh) 2016-05-04

Family

ID=46318706

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010601493.6A Active CN102542185B (zh) 2010-12-23 2010-12-23 硬化随机访问存储器中的软件执行的方法和装置

Country Status (2)

Country Link
US (1) US9104863B2 (zh)
CN (1) CN102542185B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8775590B2 (en) * 2010-09-02 2014-07-08 International Business Machines Corporation Reactive monitoring of guests in a hypervisor environment
US9037854B2 (en) * 2013-01-22 2015-05-19 Amazon Technologies, Inc. Privileged cryptographic services in a virtualized environment
US10419483B1 (en) * 2014-09-17 2019-09-17 Amazon Technologies, Inc. Time-bounded execution for privileged code
CN104751048B (zh) * 2015-01-29 2017-12-15 中国科学院信息工程研究所 一种预链接机制下的动态链接库完整性度量方法
EP3270544A1 (en) * 2016-07-11 2018-01-17 Alcatel Lucent Hypervisor monitoring

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7222062B2 (en) * 2003-12-23 2007-05-22 Intel Corporation Method and system to support a trusted set of operational environments using emulated trusted hardware
CN101615230A (zh) * 2009-08-07 2009-12-30 浪潮电子信息产业股份有限公司 一种文件可信执行和可信保护的方法
US7831838B2 (en) * 2004-03-05 2010-11-09 Microsoft Corporation Portion-level in-memory module authentication

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6993663B1 (en) * 2000-08-31 2006-01-31 Microsoft Corporation Input buffer overrun checking and prevention
US7213098B2 (en) * 2000-11-28 2007-05-01 Sun Microsystems, Inc. Computer system and method providing a memory buffer for use with native and platform-independent software code
GB0601849D0 (en) * 2006-01-30 2006-03-08 Ttp Communications Ltd Method of maintaining software integrity
KR101042246B1 (ko) * 2009-10-09 2011-06-17 한국전자통신연구원 침해방지용 보안 usb 커넥터 및 이를 이용한 침해 방지 시스템

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7222062B2 (en) * 2003-12-23 2007-05-22 Intel Corporation Method and system to support a trusted set of operational environments using emulated trusted hardware
US7831838B2 (en) * 2004-03-05 2010-11-09 Microsoft Corporation Portion-level in-memory module authentication
CN101615230A (zh) * 2009-08-07 2009-12-30 浪潮电子信息产业股份有限公司 一种文件可信执行和可信保护的方法

Also Published As

Publication number Publication date
US9104863B2 (en) 2015-08-11
CN102542185A (zh) 2012-07-04
US20120167211A1 (en) 2012-06-28

Similar Documents

Publication Publication Date Title
CN104160403B (zh) 使用单个可信平台模块测量平台部件
CN104969234B (zh) 用于虚拟机的测量的信任根
CN103270518B (zh) 虚拟机验证系统及其方法
CN102255888B (zh) 从远程服务器对数据存储设备进行安全扫描的方法和装置
US11487852B2 (en) Blockchain-based license management
JP5346608B2 (ja) 情報処理装置およびファイル検証システム
WO2017124960A1 (zh) 应用程序对接口的访问方法、授权请求方法及装置
US20050289646A1 (en) Virtual firmware smart card
JP2011243231A (ja) サーバ管理コプロセッササブシステム内部のtcpaによる信頼性の高いプラットフォームモジュール機能のカプセル化
CN110334521A (zh) 可信计算系统构建方法、装置、可信计算系统及处理器
CN102542185B (zh) 硬化随机访问存储器中的软件执行的方法和装置
CN106133743A (zh) 用于优化预安装应用程序的扫描的系统和方法
TWI559226B (zh) 韌體映像之作業系統未知驗證
WO2015023093A1 (ko) 해시를 이용한 동적코드의 무결성 검증 방법
US11630683B2 (en) Low latency launch for trusted execution environments
US11620411B2 (en) Elastic launch for trusted execution environments
CN103530548A (zh) 基于移动可信计算模块的嵌入式终端可信启动方法
US20210409199A1 (en) Secure reliable trusted execution environments
CN116049825A (zh) 管理基板管理控制器的存储器中的秘密的存储
US10033732B1 (en) Systems and methods for detecting cloning of security tokens
US11977640B2 (en) Systems and methods for authenticating the identity of an information handling system
CN107315945A (zh) 一种电子设备的磁盘解密方法和装置
US8972745B2 (en) Secure data handling in a computer system
CN110399719A (zh) Bit文件加载方法、装置、设备及计算机可读存储介质
CN102833296A (zh) 用于构建安全的计算环境的方法和设备

Legal Events

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

Effective date of registration: 20200408

Address after: Massachusetts, USA

Patentee after: EMC IP Holding Company LLC

Address before: Massachusetts, USA

Patentee before: EMC Corp.