CN1961271A - 用于保障平台间和平台内通信的系统和方法 - Google Patents

用于保障平台间和平台内通信的系统和方法 Download PDF

Info

Publication number
CN1961271A
CN1961271A CNA2005800174483A CN200580017448A CN1961271A CN 1961271 A CN1961271 A CN 1961271A CN A2005800174483 A CNA2005800174483 A CN A2005800174483A CN 200580017448 A CN200580017448 A CN 200580017448A CN 1961271 A CN1961271 A CN 1961271A
Authority
CN
China
Prior art keywords
program
software program
data
equipment
storage
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.)
Granted
Application number
CNA2005800174483A
Other languages
English (en)
Other versions
CN100533333C (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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of CN1961271A publication Critical patent/CN1961271A/zh
Application granted granted Critical
Publication of CN100533333C publication Critical patent/CN100533333C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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/74Protecting 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 operating in dual or compartmented mode, i.e. at least one secure mode
    • 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
    • G06F21/53Monitoring 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 by executing in a restricted environment, e.g. sandbox or secure virtual machine

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

一种系统和方法,用于从源到目的地保护敏感通信的机密性和/或完整性,而不管敏感通信是本地平台上的,还是平台之间的,还是相同程序在不同时间的通信。

Description

用于保障平台间和平台内通信的系统和方法
技术领域
本发明的实施例通常涉及网络安全领域,尤其涉及平台间和平台内通信的系统和方法。
背景技术
计算机网络广泛应用于商业、公共机构和个人。软件程序(或简称为程序)通过计算机网络互相交换信息。在当今的网络化计算环境中,保护这些通信的完整性和机密性至关紧要。很明显,以明文的方式发送密码,加密密钥或者其他私人信息会使计算系统容易受到恶意攻击者的威胁。这是因为通过已经被攻击者破坏的系统上的调试器、异常软件或其他软件组件,可以从存储器中获取密钥材料。“密钥材料”一词泛指例如加密密钥、会话密钥、密码、数字证书和/或任何敏感信息。
传统的保护计算系统中的机密信息的方法通常基于虚拟专用网(VPN)或专用的硬件。虚拟专用网可以容易地被避开或篡改,这是因为它们被实现为能够被在特权模式下运行的其他软件组件破坏的应用软件和/或核心层驱动程序。
硬件解决方法可以包括:用于实现加密功能的可信平台模块(TPM)或专用协处理器。可信平台模块是存储例如加密密钥、密码和/或数字证书的微芯片。基于硬件的安全解决方案较昂贵,并且使用单独的硬件以使它们与系统硬件的其它部分相隔离。此外,TPM通常连接到使用低带宽串行总线的芯片组,这使得它不适用于需要高带宽数据交换的应用,例如,网络流量的加密/解密。因此,传统的系统缺乏用于加密运行于主机处理器上的软件中的数据的划算的、安全的、抗篡改的方法,因此其与直接与这种数据交互的程序一致。
附图说明
在附图中,通过举例而不是通过限制的方式来说明本发明的实施例,其中,相同的参考标记表示相同的元件。
图1是说明可以由本发明的实施例保护的多种通信的框图;
图2A-2B说明了根据本发明实施例的,使用由存储器的受保护区域提供的安全操作的程序;
图3A是说明根据本发明实施例的,用于初始化存储器(例如,系统管理随机访问存储器)的受保护区域的方法的某些方面的流程图;
图3B-3C是说明根据本发明实施例的,用于保障平台间和平台内通信的方法的某些方面的流程图;
图4是根据本发明实施例的,用于加密输出包的结构的框图;
图5是说明在不同网络层支持网络安全协议的本发明的实施例的框图;
图6是说明根据本发明实施例实现的事务处理的事务处理图。
具体实施方式
提供系统和方法以保护从源到目的地的敏感通信(以及支持这些通信的功能)的机密性和/或完整性,而无论是平台内的、平台间的、还是同一个程序的不同运行时间的通信。如以下进一步描述的,本发明的实施例可以由主机驻留软件使用以实现需要在抗篡改的和机密的环境下进行的,对任何数据(例如网络流量)的任何安全处理(例如加密)。本发明的实施例还可以正确地识别和保护请求这些服务的程序的源。因此,本发明的实施例可以提供一种机制以保障内联(inline)(或隐藏)处理器模式中的密钥材料的安全性。如以下进一步描述的,本发明的实施例可以由ring-0级程序(例如,内核程序)使用以保障与平台组件通信的安全,提供不可欺骗的认证/授权,甚至检验从一个调用到另一个调用的程序内部状态的完整性。
为便于说明,参照通过网络发送的数据的加密来公开本发明的实施例。但是,替代实施例可以用于需要在抗篡改的和机密的环境下进行的对任何数据的安全处理。例如,本发明的实施例可以用于保护平台间和/或平台内的通信,以及程序间和/或程序内的通信。
图1是说明可以由本发明实施例保护的多种通信的框图。图1包括平台110和120。术语“平台”泛指提供数据处理的硬件(例如,处理器)、软件(例如,操作系统)、微码、芯片组、固件等。参考标记130指示平台间通信(例如,平台110和120间)。平台110包括微控制器子平台112。由参考标记132指示程序114(例如,运行于主机处理器之上)和微控制器子平台112之间的平台内通信。
程序114和116可以表示在主机处理器(未显示)上执行的两个程序。术语“程序”可以指内核组件(例如,ring-0级程序)或应用程序(例如,ring-3级程序)。如参考标记134所示,程序间通信的例子是程序114和116之间的通信。在一个实施例中,程序(例如,程序114)可以安全地存储它的数据结构和/或状态,并且在随后安全地访问所存储的数据结构和/或状态(例如,随着环境的变化和/或进程调用,周期性地检查其内部数据结构的完整性)。参考标记136指示程序内的实施例,其中,程序114安全地存储其数据结构和/或状态,并且随着时间的过去,安全地访问所存储的数据结构和/或状态。
本发明的实施例可以使用系统管理模式(SMM)或类似的专用处理器模式来保护密钥材料以及使用该密钥材料以加密/解密和/或检验任何数据的完整性的加密功能。SMM提供分区的存储器和环境,在其中防止密钥材料暴露于其它的运行在主机系统上的程序。本发明的实施例通过为密钥存储和处理提供隔离的和抗篡改的环境来增强密钥材料的安全性,从而增加攻击者通过传统的攻击媒介获取密钥材料的难度。
SMM(或相似的)专用处理器模式还可以为程序数据提供安全处理。术语“安全处理”泛指增强数据的安全性的处理,例如加密,解密,授权,认证,完整性检查等等。SMM是一种专用的操作模式,其提供独立于操作系统的隔离的环境。当系统管理中断(SMI)被触发时,处理器进入SMM,并执行来自称作系统管理随机访问存储器(SMRAM)的主存储器的芯片组保护区域的代码和数据,该区域对于在其它处理器操作模式下运行的软件是不可访问的。
为了方便,SMM和类似的专用处理器模式被共同地称为管理模式。在实施例中,管理模式从触发它的程序获取状态信息。在一个实施例中,当程序调用管理模式时,为管理模式提供所保存的状态图或类似的结构。保存的状态图(或类似的结构)提供关于在进入管理模式时的处理器状态的信息。例如,在管理模式下执行的程序可以根据所保存的状态图(或类似结构)恢复调用程序的程序计数器。在实施例中,这提供了一种防篡改方式以检测调用的源,其可以被追踪回触发SMI的程序。
由于调用程序的代码存储的位置可能被攻击程序重写,因此需要验证或者保护所述代码存储的完整性。在实施例中,使用合适的硬件或软件技术来认证作为SMI通知的源的程序映象。认证程序映象的机制的例子包括但不限于验证来自管理模式(例如SMM)或其它受保护系统组件(如Navassa嵌入式处理器)等的映象。
图2A-2B说明了使用由存储器受保护区域提供的安全操作的调用程序。可以参照SMM和系统管理随机访问存储器(SMRAM)来描述所说明的实施例。应该理解,在本发明的可选实施例中,可以使用不同的管理模式和不同的存储器受保护区域。
在一实施例中,SMRAM 200包括以下数据结构:有效程序识别(VAPI)表205,程序标识符(ID)到密钥标识符(PIKI)映射表210以及程序ID到程序计数器范围(PIPC)映射表215。在可选实施例中,SMRAM 200可以包括更多的数据结构、更少的数据结构和/或不同的数据结构。
在实施例中,VPI表205包含关于如何标识特定程序和确定存储器中程序映象是否有效的信息。在一个实施例中,在VPI表205中标识的程序是允许调用SMM的安全操作的程序。在一个实施例中,通过安全信道从可信数据存储器220提供VPI表205。或者,可以通过本地可信平台组件来提供VPI表205,例如,通过嵌入式管理微控制器(例如,由Intel公司开发的Proactive/Navassa平台)提供,其能够提供到平台的安全远程带外(OOB)连接。
表1描述了可以包含在VPI表205中的多个数据结构。在可选实施例中,这些数据结构可以具有不同的名称。另外,在本发明的可选实施例中,可以使用更多的数据结构、或更少的数据结构,和/或不同的数据结构。
                        表1
 数据结构名称  简要描述
 程序标识符(PID)  唯一标识机器上的程序的普通数字/字符串。
 程序标记(PM)  用于以高可能性来识别存储器中的程序映象的位置的字节串(可以是编译为程序的静态字节序列)。该序列应标记存储器中的程序映象的起始。
 程序大小(PS)  限制存储器中程序的映象大小(起始于PM的映象多大)
 程序散列值(PHV)  指定安全散列算法1(SHA1)或报文摘要(MD5)散列值,它是使用程序散列密钥(PHK)根据程序映象计算的。如果没有被从预期的形式修改,那么存储器中的程序映象应计算出相同的PHV。
 程序散列密钥(PHK)  用于为特定程序映象计算PHV的密钥。
在实施例中,PIKI表210包含受保护的密钥值和用于标识密钥值的密钥标识符。在一个实施例中,PIKI表210将特定的密钥材料与特定的程序相关联(例如,通过PID)。在实施例中,管理员225通过带外供应处理230提供PIKI表210。
表2描述了可以包含在PIKI表210中的多个数据结构。在可选实施例中,这些数据结构可以具有不同的名称。另外,在本发明的可选实施例中,可以使用更多的数据结构、或更少的数据结构和/或不同的数据结构。
                        表2
  数据结构名称   简要描述
  程序标识符(PID)216   唯一标识机器中的程序的普通数字/字符串。
  密钥ID(KID)214   由程序使用的密钥标识符,以将哪个密钥应该用于其操作通知给SMM组件。
  密钥长度(KL)213   存储在SMRAM中的,由KID标识的特定密钥的长度。
  密钥值(KV)212   存储在SMRAM受保护存储器中的,由KID标识的实际密钥值。
在实施例中,PIPC表215由SMM组件(或其他可信代理)创建,例如安全进程。PIPC表215可以用于计算特定程序的在主机存储器中的位置,并用于跟踪程序的状态。表3描述了可以包含在PIPC表215中的多个数据结构。在可选实施例中,这些数据结构可以具有不同的名称。另外,在本发明的可选实施例中,可以使用更多的数据结构、或更少的数据结构和/或不同的数据结构。
                        表3
  数据结构名称   简要描述
  程序计数器起点(PCB)222   程序起始位置,应该与在主机存储器中实际发现PM的存储器地址相符合。
  程序计数器界限(PCL)224   程序结束位置,应与PCB+PS相符合。
  程序标识符(PID)   唯一标识机器中的程序的普通数字/字符串。
  程序启动通知完成(PSN)218   用于记录是否由特定的有效程序正确地调用了程序启动通知。其由程序结束通知清除。
图2B说明了根据本发明实施例的程序存储器235。术语“程序存储器”指存储器的区域(例如,随机访问存储器(RAM)),其对于在主机处理器上运行的程序来讲是可访问的。在一个实施例中,SMRAM 200和程序存储器235都可以是主机处理器的主存储器的一部分。在可选实施例中,SMRAM 200可以在除主机处理器的主存储器之外的存储器的区域中实现。
在实施例中,程序与SMM组件(例如,存储在SMM中的安全程序)通信,至少有部分是通过程序数据表(PDT)240来进行的。SMM组件可以访问PDT 240,因为SMM是高特权的处理器模式,其可以访问程序存储器235(以及操作系统的存储器)。PDT 240可以指定将对程序数据执行的特定的安全操作245。另外,PDT 240指定程序数据的位置。例如,在所示的实施例中,数据缓冲区指针(DBP)250指向数据缓冲区260,并且完整性缓冲区指针(IBP)258指向完整性缓冲区265。另外,PDT 240通过密钥标识符268来标识将被用于处理程序数据的密钥材料。例如,密钥标识符268可以标识存储在SMRAM 200中的密钥,其用于处理存储在例如数据缓冲区260中的数据。
表4描述了可以包含在PDT 240中的多个数据结构。在可选实施例中,这些数据结构可以具有不同的名称。另外,在本发明的可选实施例中,可以使用更多的数据结构、或更少的数据结构、和/或不同的数据结构。
                        表4
  数据结构名称   简要描述
  操作请求(OpR)245   标识程序希望SMM应用于它的所选的数据缓冲区的特定的安全操作(例如,完整性检查,加密,解密等)。
  数据缓冲区长度(DBL)   标识程序的数据缓冲区的长度。
  数据缓冲区指针(DBP)250   指向程序的实际数据缓冲区的指针,该缓冲区被SMM用作请求操作的输入。
  数据屏蔽指针(DMP)252  指向屏蔽缓冲区的指针,其指示SMM操作应跳过数据缓冲区260中的哪些位。
  完整性缓冲区长度(IBL)255  由程序分配的完整性缓冲区的长度。
  完整性缓冲区指针(IBP)258  指向保存完整性信息(例如,散列方法认证代码(HMAC))的、程序的缓冲区的指针。
  错误代码(EC)272  当特定的操作失败时,由SMM返回的值。其可以指出失败的原因,或者如果没有失败则指示NONE。
由于PDT 240“存在于”易受攻击的存储区中,在一实施例中,需要确保该数据结构的完整性和数据缓冲区(例如,数据缓冲区260和/或完整性缓冲区265)的完整性。一种确保这些结构中的数据的有效性的机制是确保只有拥有这些数据结构的有效程序才被允许操作这些数据结构。在一个实施例中,这种机制通过将程序启动与程序结束通知之间的所有对PDT 240的有效修改限制到SMM组件的程序来实现。通过这种方式,SMM组件可以追踪在修改PDT 240之前哪个程序正在运行。
程序启动通知270通知SMM组件一程序将调用由SMM组件提供的安全操作。在一实施例中,一旦程序或设备驱动程序被调用,并且在开始修改PDT 240的内部数据结构前,由程序或设备驱动程序发出程序启动通知270。在一个实施例中,程序启动通知270是SMI通知。在实施例中,程序启动通知处理程序(未显示)可以接收程序启动通知270。处理程序可以通过以下方式来验证程序映象并记录PIPC表215中的调用源,例如,如果程序计数器在正确的范围内并且此范围内的程序映象仍未被修改,那么对于表项将程序启动通知(PSN)指示符218设为真(TRUE)。在PSN处理程序返回后,程序/驱动程序可以立即建立其内部数据结构,并配置PDT表240,其可以用作操作通知处理程序(未显示)的输入。当执行其以避免环境切换(它将导致恶意代码的执行)时,程序/驱动程序可以禁止中断,由此防止恶意代码在操作通知之前改变程序的数据或状态。
“操作通知”是指程序/驱动程序请求SMM组件提供安全操作(例如,提供安全数据和/或处理程序数据)。在实施例中,可以利用SMI通知实现操作通知。在一个实施例中,只有在SMI程序启动通知270成功完成之后,才可以由程序或设备驱动程序发出SMI通知。在实施例中,这个通知的SMI处理程序将根据例如所保存的状态图(SSM)恢复调用者的程序计数器,并在PIPC表215中找到表项,其中,所恢复的程序计数器在PCB 222和PCL 224之间的范围内。如果在PIPC表215中找到匹配范围,那么SMI处理程序可以验证该PIPC表项的PSN值218是否被设为真(TRUE),其意味着程序启动通知270提前被相同的程序正确地调用。如果PSN值21S为TRUE,那么处理程序可以从在通知之前由程序建立的PDT 240中读取数据,并应用为所提供的密钥ID 268指定的操作请求245。
在实施例中,操作请求245为SMM组件指定安全操作。安全操作可以包括获取机密数据和/或可以包括调用对程序数据的安全处理。安全处理的例子包括但不仅限于加密操作、解密操作、和/或加密和/或解密数据的完整性检查。
在一实施例中,加密操作可以使处理程序(例如,SMI处理程序)对由PDT表项的DBP 250所指的缓冲区(例如,数据缓冲区260)执行所选的加密算法,同时跳过由DMP 252所指的屏蔽缓冲区所屏蔽的区域。在一实施例中,加密代码使用存储在SMRAM中的、对应于所选的密钥ID 268的密钥。当SMM返回时,数据缓冲区260将被加密,并准备安全地通信。在一实施例中,密钥材料不暴露于调用程序。然而,管理模式代表调用程序(例如,如果调用程序的程序映象在存储器中已被验证)使用正确的密钥材料(例如,由密钥ID 268所标识的)。
在一实施例中,完整性检查操作可以使处理程序对例如由完整性缓冲区指针(IBP)258所指的完整性缓冲区265执行所选的完整性检查算法。在一实施例中,处理程序可以跳过由数据屏蔽指针(DMP)252指定的、缓冲区265的区域。完整性检查算法可以至少部分基于由密钥ID 268标识的相关联的会话密钥。在一个实施例中,以存储在完整性缓冲区265内的散列方法认证代码(HMAC)的形式提供完整性检查算法的结果。完整性检查算法的例子包括但不仅限于安全散列算法1(SHA1)或报文摘要5(MD5)。
在一实施例中,解密操作可以使SMI处理程序对由DBP 250所指的一个或多个缓冲区执行解密算法,同时跳过DMP 252屏蔽区域。在一实施例中,SMM解密代码(未显示)可以使用存储在SMRAM 200中的对应于密钥ID 268的密钥。当SMM返回时,解密由DBP 250所指的缓冲区,并准备读取,或者为PDT 240中的合适表项设置错误代码(EC)272。
通过与解密操作类似的方式,可以通过SMM代码来验证由DBP250所指的数据缓冲区的完整性。完整性检查可以至少部分基于在由IBP 258所指的完整性缓冲区中提供的HMAC,以及在SMRAM 200中发现的密钥ID 268的相关的会话密钥值。然后,完整性检查的成功或失败被通过相应的PDT表项的PDT错误代码Error Code(EC)272发送回调用SMI的程序。
在一实施例中,私钥(例如,用于公/私密码操作的)可以被SMM保护。在一个实施例中,SMM组件可以提供公/私操作,例如生成公/私密钥对。在一实施例中,SMM操作使用受保护的私钥执行Diffie-Hellman交换。SMM操作可以使用由密钥ID 268标识的私钥加密数据。类似地,SMM操作可以使用由密钥ID 268标识的私钥解密数据。
在一实施例中,程序结束通知275可以由程序或设备驱动程序发出,以在程序返回到它的调用者之前,表示程序段的SMM功能的使用的结束。在一实施例中,程序结束通知275是SMI通知。这个通知的处理程序(例如SMI处理程序)对匹配SMM恢复程序计数器的表项将PIPC表215的PSN值从TRUE重置为FALSE(假)。在一个实施例中,SMM模块不再根据来自这个程序的未来的操作通知而行动,直到再次从有效的程序映象正确地初始化程序启动通知270。其有效地封锁其它恶意程序,以防止它们试图通过修改程序的数据结构,然后仅仅跳转到在调用SMI操作通知的有效程序的代码之前的指令,从而避开这个程序ID的SMM模块。通过限制程序启动通知270和程序结束通知275之间的所有操作通知,程序编写者能够确保在从程序的有效映象发起的操作通知被允许之前,已经执行了通知270和通知275之间的所有程序段。
现在参照图3A-3C,参照流程图,按照计算机软件和硬件的方式描述与本发明的实施例相关的特定方法。由计算设备执行的方法可以是状态机或由计算机可执行指令组成的计算机程序。计算机可执行指令可以用计算机编程语言编写,或实现为固件(firmware)逻辑。如果用符合已知标准的编程语言编写,那么这些指令可以在多种硬件平台上执行并且可以与多种操作系统对接。另外,本发明的实施例不是参照任何特定的编程语言来描述的。应知道,多种编程语言可被用于实现如这里所述的发明的实施例。此外,在该技术领域中,谈到软件,各种形式(例如,程序、过程、进程、应用程序等)是相同的,都是采取行动或促成结果。这些表达方式仅仅是以下意思的简略的表达方式,即,由计算设备执行软件以使设备执行一动作或产生一结果。
图3A-3C是说明根据本发明实施例的,用于保障平台间和平台内通信的方法的所选方面的流程图。在图3A-3C中描述的方法可以利用参照图2A-2B描述的数据结构来实现。在可选实施例中,图3A-3C中描述的方法可以使用不同的数据结构来实现。
图3A是说明根据本发明的实施例的,用于初始化存储器的受保护区域(例如,图2A中所示的SMRAM 200)的方法的某个方面的流程图。参照处理框305,VPI表(例如,图2A所示的VPI表205)被添加程序标识信息。在一个实施例中,VPI表经由安全的带外信道增加。参照处理框310,PIKI表(例如,图2A所示的PIKI表210)被增加机密信息,例如与程序标识符(例如,图2A所示的程序ID 216)关联的密钥值(例如,图2A所示的密钥值212)和对应的密钥标识符(例如,图2A所示的密钥ID 214)。
参照处理框315,SMM模块(或其他可信代理)在程序存储器(例如,图2B所示的程序存储器235)中搜索对应于在处理框310中提供的程序ID的程序。参照处理框320,SMM模块为每个搜索到的程序所关联的程序ID设定程序计数器起点(PCB)(例如,图2A所示的PCB222)以及程序计数器界限(PCL)(例如,图2A所示的PCL 224)。
图3B-3C是说明根据本发明实施例的,保障平台间和平台内通信的方法的某些方面的流程图。参照处理框325,程序启动通知(例如,图2B所示的程序启动通知270)触发SMM。SMM模块在处理框330从例如所保存的状态图中恢复程序计数器。参照处理框335,SMM模块在PIPC表中搜索对应于发送所述程序启动通知的程序的表项。在一实施例中,如果发现表项,那么在处理框340,SMM模块检查所恢复的程序计数器是否在PCB和PCL之间。检查所恢复的程序计数器是否在PCB和PCL之间有助于确保程序启动通知实际上是由所述程序发送的,而不是由恶意软件发送的。在一些实施例中,如处理框345所示,SMM模块重新验证调用程序映象是否匹配VPI表中的表项(例如,通过计算散列值,并将计算出的散列值与存储在VPI表中预定的散列值进行比较)。
参照处理框350,程序启动通知标志被设为真,并将控制返回到调用程序。在一实施例中,现在允许调用程序修改程序数据表(PDT)(例如,图2B所示的PDT 240)中的数据。在处理框355,程序更新缓冲区位置(例如,通过图2B所示的DBP 250和IBP 258),并提供正确的密钥标识符(例如,图2B所示的密钥标识符268)。在处理框360,程序完成缓冲区相关任务(例如,缓冲区的分配等)。参照处理框365,程序触发操作通知(例如,SMI通知)并且控制返回SMM。
参照处理框370,SMM模块从所保存的状态图(SSM)恢复程序计数器。在375,SMM模块在PIPC表中搜索与调用程序相对应的表项。参照处理框376,SMM模块确定所恢复的程序计数器是否在记录在PIPC表的对应于调用程序的表项中的PCB和PCL之间。在一个实施例中,对于PCB和PCL,可以有多个允许范围。在这种实施例中,SMM模块可以确定程序计数器是否在PCB和PCL的多个允许范围中的一个范围中。参照处理框378,SMM模块确定调用程序的PIPC表项中的程序启动通知标志是否被设为真。在一实施例中,如果在处理框376或378中检查的任何一个条件都不为真,那么如380所示,SMM模块设置合适的错误代码(例如,图2B所示的错误代码272),并将控制返回到调用程序。参照处理框382,SMM模块执行由操作请求(例如,图2B所示的操作请求245)指定的操作。操作可以对在由数据缓冲区指针(例如,图2B所示的DPB 250)所指的数据缓冲区中的数据执行。SMM模块可以使用对应的程序ID和密钥ID的密钥值(例如,图2A所示的密钥值212)来处理数据。在一实施例中,SMM模块跳过由数据屏蔽缓冲区(例如,图2B所示的数据屏蔽缓冲区256)指定的屏蔽区域。
如果操作成功,则在处理框384,SMM模块可以将错误代码设置为NONE,并将控制返回给调用程序。参照处理框386,程序可以发送程序结束通知以防止程序数据表被未授权的程序修改。在处理框388,SMM模块恢复调用程序的程序计数器。在处理框390,SMM模块在PIPC表中搜索与调用程序对应的表项。在一实施例中,在处理框392,SM模块确定调用程序的程序计数器是否在PCB和PCL之间。在处理框394,程序启动通知标志被设为假(false),并且在处理框396,将控制返回给调用程序。在一实施例中,当程序启动通知标志被设为假时,程序数据表不能被修改。
图4是根据本发明实施例的,用于加密外发包的结构400的框图。为了说明本发明的实施例,图4涉及结构400的传输队列。应知道,参照图4所示的外发队列描述的操作也可以应用于平台400的接收端(未显示)的进入队列。
所示的结构400的实施例包括处理器405、物理存储器410、输入/输出(I/O)控制器集线器415以及媒体访问控制(MAC)设备420。处理器405可以包括微处理器、微控制器、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、中央处理单元(CPU)、可编程逻辑器件(PLD)以及从系统存储器(例如,存储器410)存取指令,对它们进行解码,并通过执行算术和逻辑操作来执行这些指令的类似设备。
物理存储器410可以包括多种存储设备,其中包括只读存储器(ROM)、可擦写可编程只读存储器(EPROM)、电可擦写可编程只读存储器(EEPROM)、随机访问存储器(RAM)、非易失性随机访问存储器(NVRAM)、缓存、闪存以及其他存储设备。在一实施例中,物理存储器410包括SMRAM 425和驱动程序存储器430。在一个实施例中,SMRAM 425和驱动程序存储器430是同一存储设备的两个区域。在可选实施例中,SMRAM 425和驱动程序存储器430在不同的存储设备上实现。
在一个实施例中,I/O控制器集线器(ICH)415可以提供结构400和外围I/O设备之间的接口,以及结构400和MAC设备420之间的接口,其可以提供到外部网络(未显示)的接口。
在一实施例中,结构400如下所述发送包。如参考标记435所示,网络设备驱动程序(未显示)生成SMI程序启动通知。SMI处理程序恢复设备驱动程序的程序计数器,并将所恢复的程序计数器与存储在PIPC表440中的所允许的程序计数器值的范围进行比较。在一实施例中,从所恢复的程序计数器取回设备驱动程序的地址。
在处理框450,网络设备驱动程序为传输建立缓冲区445(例如,利用中断禁止)。在缓冲区445建立后,如参考标记455所示,网络设备驱动程序使SMI操作通知指定“加密”和/或“完整性产生”通知类型的操作请求。SMI处理程序记录存储在缓冲区445中的准备发送的帧的物理地址。在实施例中,PDT中的DBP指定缓冲区445的物理地址。
在一实施例中,SMI处理程序在例如保存待发送数据的缓冲区445上运行加密代码460和/或完整性生成代码。在一实施例中,缓冲区445被适当地加密,和/或在PDT(未显示)的完整性缓冲区指针所指的缓冲区中生成完整性HMAC,并且将控制返回到网络设备驱动程序。在一实施例中,设备驱动程序使用直接存储器访问来将存储在缓冲区445中的帧发送到MAC设备420。参考标记465说明缓冲数据被通过直接存储器访问发送到MAC设备420。MAC设备420在传输了它从缓冲区445接收的数据之后,将传输完成信号发送给处理器405。在一实施例中,在传输完成后,设备驱动程序触发SMI程序结束通知。
如图4所示(例如,参考标记435,450和455所指),本发明的实施例可以提供平台内通信和平台间通信。平台内通信的一个例子是主机上的安全软件和平台(Procative/Navassa)上的嵌入式管理处理器上的固件安全代理之间的认证的心跳消息(heartbeat message)的交换,以确定安全组件的存在。
规则的心跳通信确定在平台上存在安全代理。这种通信是敏感的,并且在实施例中,可以保护其以防欺骗。这种通信可以经由任何媒介,例如,通过直接存储器访问,或者经由专用管理总线。在一实施例中,(如上所述)完整性检查和/或加密操作可以在抗窜改和机密的环境中应用于心跳消息上。嵌入式管理处理器可以创建密钥,从而使得它可以验证心跳消息。在一实施例中,使用的密钥并不泄露给其存在由心跳消息确定的安全软件。在这种情况下通信的端点可以是主机软件和在嵌入式管理控制器上的管理软件。同样的概念可以用于敏感的程序间通信或者用于单个程序(该单个程序既是数据交换的源又是目的地)的数据的完整性保持。在一个实施例中,随机现时(randomnonce)可以结合密钥使用,以防止在可选实施例中的重放攻击。
如图4所示(例如,参考标记435和452所指),本发明的实施例可以提供程序内通信以及程序问通信。在一实施例中,程序可以是内核组件(例如,ring-0级程序)。在一个实施例中,程序可以是应用程序(例如,ring-3级程序)。在程序为应用程序的实施例中,受保护的通信可以被称为进程间和/或进程内通信。例如,在一实施例中,从一个调用到另一个调用,程序可以随着时间的过去来确保其自身的数据和状态,从而使得没有其他的程序可以在拥有数据或状态的程序不知情的情况下修改其数据或状态。
在这种实施例中,“合法”程序可以使用SMM受保护密钥以通过加密和解密数据来隐藏和显示数据,从而使得只有相同的(或其它)合法程序才可以访问数据。在可选实施例中,从一个调用到另个调用,程序可以使用SMM受保护密钥,通过当程序被调用时计算内部程序状态的HMAC来验证它的状态的完整性,以确保自从前次调用之后,数据是未改变过的。在程序返回之前,程序可以发出SMI以便为在下次调用时将被验证的内部状态或其他数据生成新的HMAC。或者,程序可以为其内部数据结构生成散列值或运行校验和,并且仅使用SMM组件来签名或者保护其自身数据结构的程序生成散列值/校验和的完整性。在这样的实施例中,程序将在SMI程序结束通知之前和SMI程序启动通知之后计算内部数据结构的散列值/校验和。操作通知可用于在使用散列值/校验和之前检查其完整性,并且在程序已经完成操作其数据结构并更新其散列值/校验和之后,可以再次生成新的完整性HMAC。在一实施例中,将完整性验证中的错误通过PDT(例如,图2B所示的PDT 240)中的错误代码报告给调用程序。
图5是说明支持不同层的网络安全协议的本发明的实施例的结构500的框图。在实施例中,结构500可以支持网络层安全(例如,因特网协议安全(IPSEC)),传输层安全(TLS),和/或应用层安全。
在一个实施例中,网络驱动程序510利用附加的元数据(例如,532,534和536)给从不同的网络层协议522-526接收的(和/或向它们发送的)帧描述符“打标签”。这些标签也是在SMRAM中(与密钥一起)预先提供的,并被SMI处理程序用于确定例如,使用哪种加密算法,使用哪个密钥以及加密哪一层。在一实施例中,当调用到网络驱动程序510时,上层协议层(例如,协议层522-526)也被进行源验证,以防止攻击者将帧插入到安全的会话中。
图6是说明根据本发明实施例而实现的事务处理600的事务处理示图。事务处理600包括主机网络设备驱动程序605,主机物理存储器610,SMI处理程序615和网络控制器620。在一实施例中,设备驱动程序605使程序启动将被发送给SMI处理程序615的SMI通知625。SMI处理程序615可以通过例如所保存的状态图(未显示),将设备驱动程序605识别为作为事务处理的源的程序。如参考标记630所示,SMI处理程序将控制返回给设备驱动程序605。
在一实施例中,如632所示,设备驱动程序605可以禁止中断以防止在事务处理600期间的环境切换。然后,如634所示,设备驱动程序605可以将准备好被发送的帧缓冲区插入到发送先进先出(FIFO)队列中(队列未显示)。在一个实施例中,如636所示,当加载FIFO队列时,允许中断。如638所示,设备驱动程序605随后可以发送加密操作SMI通知给SMI处理程序615。
SMI处理程序615可以重新检查源程序计数器,以确认它对应于设备驱动程序605。在一实施例中,SMI处理程序615使用存储在SMRAM中的密钥材料加密在例如设备驱动程序605的程序数据表中指定的数据。然后,SMI处理程序615可以通过操作SMI返回640将控制返回给设备驱动程序605。然后,如参考标记645所示,设备驱动程序605可以通知网络控制器620包已准备好发送。网络控制器620可以使用例如直接存储器访问来将包发送给主机物理存储器610中的网络接口卡存储器。在实施例中,在650,网络控制器620通知设备驱动程序605包已发送。
本发明的实施例的元件也可以作为用于存储机器可执行指令的机器可访问介质来提供。机器可访问介质包括任何提供(例如,存储和/或发送)机器(例如,计算机,网络设备,个人数字助理,制造工具,具有一个或多个处理器的任何设备等)可访问形式的信息的方式。例如,机器可访问介质包括可记录/不可记录的介质(例如,只读存储器(ROM)、随机访问存储器(RAM)、磁盘存储介质、光存储介质、闪存设备等),以及电子的、光学的、声学的或其它传播信号的形式(例如,载波,红外信号,数字信号等)等。
应当认识到,贯穿本说明书的对“一个实施例”或“一实施例”的提及,其意指结合实施例描述的特定特征、结构或特点包含在本发明的至少一个实施例中。因此,需要强调和认识到的是,在本说明书的不同部分中的对“一实施例”或“一个实施例”或“一可选实施例”的两处或更多处的提及并不必全部是指同一个实施例。此外,在一个或多个本发明的实施例中,可以适当的组合特定特征、结构或特点。
类似地,应该理解,在前述的对本发明实施例的描述中,各种特性有时被组合在单独的实施例、附图或其说明中,目的是简化有助于理解一个或多个不同发明方面的公开。但是,不应将这种公开方法解释为表示所声明的主题需要比在每一个权利要求中清楚地叙述的特征更多特征。然而,如下列权利要求反映的,发明方面在于比前面公开的单个实施例的全部特征更少。因此,在详细说明书后的权利要求由此清楚地合并入本详细说明中,每个权利要求自身可作为本发明的单独实施例。

Claims (38)

1.一种方法包括:
利用来自在主机系统的程序存储器中运行的软件程序的操作通知来调用管理模式,所述管理模式具有对于主机操作系统来讲不可访问的存储器受保护区域,其中,所述主机操作系统临时将所述主机系统的控制交给所述管理模式;以及
如果调用所述管理模式,则将来自所述存储器受保护区域的安全操作提供给在所述程序存储器中运行的软件程序。
2.根据权利要求1所述的方法,还包括:
利用启动通知调用所述管理模式,所述启动通知指示所述软件程序在程序存储器中运行;以及
在所述存储器受保护区域中设置启动指示符以显示所述软件程序在程序存储器中运行。
3.根据权利要求2所述的方法,其中,将来自所述存储器受保护区域的所述安全操作提供给在所述程序存储器中运行的所述软件程序的步骤还包括:
如果设置了所述启动指示符,则将来自所述存储器受保护区域的安全操作提供给在所述程序存储器中运行的所述软件程序。
4.根据权利要求2所述的方法,还包括:
验证所述软件程序是否提供了所述启动通知。
5.根据权利要求4所述的方法,其中,验证所述软件程序是否提供了所述启动通知的步骤包括:
响应于接收所述启动通知,获取所述软件程序的程序计数器值;以及
将所述程序计数器值与程序计数器值的允许范围进行比较。
6.根据权利要求4所述的方法,还包括:
验证所述软件程序的完整性。
7.根据权利要求6所述的方法,其中,验证所述软件程序的完整性的步骤包括:
计算所述软件程序的映象的至少一部分的散列值;以及
将所述计算出的散列值与预定的散列值进行比较,以确定所述软件程序是否被修改。
8.根据权利要求1所述的方法,其中,所述软件程序是内核程序。
9.根据权利要求8所述的方法,其中,所述内核程序是设备驱动程序。
10.根据权利要求1所述的方法,其中,将来自所述存储器受保护区域的所述安全操作提供给在所述程序存储器中运行的所述软件程序的步骤包括:访问存储在所述存储器受保护区域中的用于所述软件程序的数据。
11.根据权利要求10所述的方法,其中,访问存储在所述存储器受保护区域中的用于所述软件程序的数据的步骤包括:
访问用于所述软件程序的密钥材料,其中,所述密钥材料存储在所述存储器受保护区域中。
12.根据权利要求11所述的方法,其中,访问用于所述软件程序的密钥材料的步骤包括至少访问以下密钥之一:
用于密码操作的加密密钥;以及
用于完整性检查操作的会话密钥。
13.根据权利要求1所述的方法,其中,将来自所述存储器受保护区域的所述安全操作提供给在所述程序存储器中运行的所述软件程序的步骤包括:
提供用于所述软件程序的数据的安全处理。
14.根据权利要求13所述的方法,其中,所述软件程序的所述数据至少包括以下之一:
所述软件程序的状态信息;
将被发送到与所述软件程序运行在相同处理器上的第二软件程序的发送缓冲区数据;
将被发送到在所述主机系统的另一个处理器上运行的第二软件程序的发送缓冲区数据;以及
将被发送到在另一个主机系统上运行的第二软件程序的发送缓冲区数据。
15.根据权利要求13所述的方法,其中,提供用于所述软件程序的数据的所述安全处理的步骤包括以下步骤中的至少一个:
加密所述数据;
解密所述数据;
检查所述数据的完整性;以及
向所述数据添加完整性信息。
16.根据权利要求15所述的方法,其中,检查所述数据的完整性的步骤包括:
计算所述数据的散列值;以及
将计算出的散列值和预定的散列值进行比较。
17.根据权利要求1所述的方法,还包括:
通过安全信道初始化所述安全操作。
18.根据权利要求17所述的方法,其中,通过所述安全信道初始化所述安全操作的步骤包括:
在所述存储器受保护区域中存储一个或多个程序标识符,其中,每个程序标识符用于标识被授权调用所述管理模式的软件程序;以及
在所述存储器受保护区域中存储密钥材料,所述密钥材料将被由一个或多个程序标识符中的至少一个标识的软件程序来访问。
19.一种设备,包括:
主机处理器,用于执行软件程序的指令,所述软件程序具有调用驻留在安全存储器中的安全操作的指令,其中,响应于来自所述软件程序的调用,主机操作系统临时将主机系统的控制交给所述安全操作;
程序存储器,用于存储所述软件程序的数据,并与所述主机处理器可通信地连接;以及
对于所述主机操作系统不可见的安全存储器,其可通信地连接到所述程序存储器,所述安全存储器提供所述安全操作以处理所述软件程序的所述数据。
20.根据权利要求19所述的设备,其中,所述软件程序为网络设备驱动程序,并且所述程序存储器为存储发送数据的发送缓冲区。
21.根据权利要求20所述的设备,其中,所述安全操作为至少以下操作之一:
加密所述发送数据;以及
检查所述发送数据的完整性。
22.根据权利要求20所述的设备,还包括:
网络接口,其与所述程序存储器可通信地连接以接收来自所述程序存储器的所述发送数据,并通过网络将所述发送数据发送给另一个主机系统。
23.一种产品,包括:
提供指令的电可访问介质,当所述指令被设备执行时,使得所述设备执行以下操作:
利用来自在主机系统的程序存储器中运行的软件程序的操作通知来调用管理模式,所述管理模式具有对于主机操作系统来讲不可访问的存储器受保护区域,其中,所述主机操作系统临时将所述主机系统的控制交给所述管理模式;以及
如果调用所述管理模式,则将来自所述存储器受保护区域的安全操作提供给在所述程序存储器中运行的软件程序。
24.根据权利要求23所述的产品,其中,所述电可访问介质提供另外的指令,当所述另外的指令被所述设备执行时,使得所述设备执行以下操作:
利用启动通知调用所述管理模式,所述启动通知指示所述软件程序在程序存储器中运行;以及
在所述存储器受保护区域中设置启动指示符以显示所述软件程序在程序存储器中运行。
25.根据权利要求24所述的产品,其中,当被所述设备执行时使得所述设备将来自所述存储器受保护区域的安全操作提供给在所述程序存储器中运行的所述软件程序的所述指令使得所述设备:
如果设置了所述启动指示符,则将来自所述存储器受保护区域的安全操作提供给在所述程序存储器中运行的所述软件程序。
26.根据权利要求24所述的产品,其中,所述电可访问介质提供另外的指令,当所述另外的指令被所述设备执行时,使得所述设备:
验证所述软件程序是否提供了所述启动通知。
27.根据权利要求26所述的产品,其中,当被所述设备执行时使得所述设备验证所述软件程序是否提供了所述启动通知的所述指令使得所述设备:
响应于接收所述启动通知,获取所述软件程序的程序计数器值;以及
将所述程序计数器值与程序计数器值的允许范围进行比较。
28.根据权利要求26所述的产品,其中,所述电可访问介质提供另外的指令,当被所述设备执行时所述另外的指令使得所述设备:
验证所述软件程序的完整性。
29.根据权利要求28所述的产品,其中,当被所述设备执行时使得所述设备验证所述软件程序的完整性的所述指令使得所述设备:
计算所述软件程序的映象的至少一部分的散列值;以及
将所述计算出的散列值与预定的散列值进行比较,以确定所述软件程序是否被修改。
30.根据权利要求23所述的产品,其中,当被所述设备执行时使得所述设备将来自所述存储器受保护区域的安全操作提供给在所述程序存储器中运行的所述软件程序的所述指令使得所述设备:
访问用于所述软件程序的密钥材料,其中,所述密钥材料存储在所述存储器受保护区域中。
31.根据权利要求23所述的产品,其中,当被所述设备执行时使得所述设备将来自所述存储器受保护区域的安全操作提供给在所述程序存储器中运行的所述软件程序的所述指令使得所述设备:
提供用于所述软件程序的数据的安全处理。
32.根据权利要求31所述的产品,其中,当被所述设备执行时使得所述设备提供用于所述软件程序的数据的安全处理的所述指令使得所述设备至少执行以下操作之一:
加密所述数据;
解密所述数据;以及
检查所述数据的完整性。
33.根据权利要求23所述的产品,其中,所述电可访问介质提供另外的指令,当被所述设备执行时所述另外的指令使得所述设备:
通过安全信道初始化所述安全操作。
34.根据权利要求33所述的产品,其中,当被所述设备执行时使得所述设备提供用于所述软件程序的数据的安全处理的所述指令使得所述设备:
在所述存储器受保护区域中存储一个或多个程序标识符,其中,每个程序标识符用于标识被授权调用所述管理模式的软件程序;以及
在所述存储器受保护区域中存储密钥材料,所述密钥材料将被由一个或多个程序标识符中的至少一个标识的软件程序来访问。
35.一种系统,包括:
主机处理器,用于执行软件程序的指令,所述软件程序具有调用驻留在安全存储器中的安全操作的指令,其中,响应于来自所述软件程序的调用,主机操作系统临时将主机系统的控制交给所述安全操作;
同步动态随机访问存储器(SDRAM)设备,用于存储所述软件程序的数据,并与所述主机处理器可通信地连接;以及
对于所述主机操作系统不可见的安全存储器,其可通信地连接到所述SDRAM设备,所述安全存储器提供所述安全操作以处理所述软件程序的所述数据。
36.根据权利要求35所述的设备,其中,所述软件程序是网络设备驱动程序,并且所述程序存储器为存储发送数据的发送缓冲区。
37.根据权利要求36所述的设备,其中,所述安全操作是至少以下操作之一:
加密所述发送数据;以及
检查所述发送数据的完整性。
38.根据权利要求36所述的系统,还包括:
网络接口,其与所述SDRAM设备可通信地连接以接收来自所述程序存储器的所述发送数据,并通过网络将所述发送数据发送给另一个主机系统。
CNB2005800174483A 2004-06-29 2005-06-24 用于保障平台间和平台内通信的系统和方法 Expired - Fee Related CN100533333C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/881,777 2004-06-29
US10/881,777 US20050289311A1 (en) 2004-06-29 2004-06-29 System and method for secure inter-platform and intra-platform communications

Publications (2)

Publication Number Publication Date
CN1961271A true CN1961271A (zh) 2007-05-09
CN100533333C CN100533333C (zh) 2009-08-26

Family

ID=35207467

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005800174483A Expired - Fee Related CN100533333C (zh) 2004-06-29 2005-06-24 用于保障平台间和平台内通信的系统和方法

Country Status (6)

Country Link
US (1) US20050289311A1 (zh)
EP (1) EP1761837B1 (zh)
JP (1) JP4774049B2 (zh)
CN (1) CN100533333C (zh)
AT (1) ATE511672T1 (zh)
WO (1) WO2006012341A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102663294A (zh) * 2011-03-31 2012-09-12 卡巴斯基实验室封闭式股份公司 计算机网络中的软件许可使用的自动分析
CN110214324A (zh) * 2017-01-24 2019-09-06 微软技术许可有限责任公司 密钥保管库包围区
CN115004634A (zh) * 2020-04-03 2022-09-02 Oppo广东移动通信有限公司 信息处理方法、装置、设备及存储介质

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8627086B2 (en) * 2004-10-11 2014-01-07 Telefonaktiebolaget Lm Ericsson (Publ) Secure loading and storing of data in a data processing device
US7594269B2 (en) * 2004-10-29 2009-09-22 Intel Corporation Platform-based identification of host software circumvention
US7739517B2 (en) * 2005-03-31 2010-06-15 Intel Corporation Hardware-based authentication of a software program
US20070006307A1 (en) * 2005-06-30 2007-01-04 Hahn Scott D Systems, apparatuses and methods for a host software presence check from an isolated partition
US7953980B2 (en) * 2005-06-30 2011-05-31 Intel Corporation Signed manifest for run-time verification of software program identity and integrity
US7669242B2 (en) * 2005-06-30 2010-02-23 Intel Corporation Agent presence monitor configured to execute in a secure environment
US7870565B2 (en) * 2005-06-30 2011-01-11 Intel Corporation Systems and methods for secure host resource management
US8839450B2 (en) * 2007-08-02 2014-09-16 Intel Corporation Secure vault service for software components within an execution environment
US20070067590A1 (en) * 2005-09-22 2007-03-22 Uday Savagaonkar Providing protected access to critical memory regions
US7921463B2 (en) * 2005-09-30 2011-04-05 Intel Corporation Methods and apparatus for providing an insertion and integrity protection system associated with a wireless communication platform
US7698542B2 (en) * 2006-08-25 2010-04-13 Infineon Technologies Ag Circuit and method for comparing program counter values
US7882318B2 (en) * 2006-09-29 2011-02-01 Intel Corporation Tamper protection of software agents operating in a vitual technology environment methods and apparatuses
US7802050B2 (en) * 2006-09-29 2010-09-21 Intel Corporation Monitoring a target agent execution pattern on a VT-enabled system
US7822207B2 (en) * 2006-12-22 2010-10-26 Atmel Rousset S.A.S. Key protection mechanism
US20080163375A1 (en) * 2006-12-28 2008-07-03 Savagaonkar Uday R Embedding and patching integrity information in a program file having relocatable file sections
JP2009070327A (ja) * 2007-09-18 2009-04-02 Panasonic Corp 情報端末及び情報端末の制御方法
DE102007045909A1 (de) * 2007-09-26 2009-08-06 T-Mobile Internationale Ag Verfahren zum Schutz vor Viren/Spam in Mobilfunknetzen
US8099718B2 (en) 2007-11-13 2012-01-17 Intel Corporation Method and system for whitelisting software components
US8266707B2 (en) 2008-02-28 2012-09-11 Intel Corporation Tamper resistant method, apparatus and system for secure portability of digital rights management-protected content
WO2010021269A1 (ja) * 2008-08-22 2010-02-25 インターナショナル・ビジネス・マシーンズ・コーポレーション 記憶装置、情報処理装置およびプログラム
US8843742B2 (en) * 2008-08-26 2014-09-23 Hewlett-Packard Company Hypervisor security using SMM
US8364601B2 (en) * 2008-12-31 2013-01-29 Intel Corporation Methods and systems to directly render an image and correlate corresponding user input in a secure memory domain
JP5335634B2 (ja) * 2009-09-29 2013-11-06 レノボ・シンガポール・プライベート・リミテッド システム管理モードの特権レベルを保護するコンピュータ
US8819225B2 (en) 2010-11-15 2014-08-26 George Mason Research Foundation, Inc. Hardware-assisted integrity monitor
CN102065021B (zh) * 2011-01-28 2012-12-26 北京交通大学 基于NetFPGA的IPSecVPN实现系统及方法
US9100188B2 (en) 2011-04-18 2015-08-04 Bank Of America Corporation Hardware-based root of trust for cloud environments
US10496824B2 (en) * 2011-06-24 2019-12-03 Microsoft Licensing Technology, LLC Trusted language runtime on a mobile platform
US20130246800A1 (en) * 2012-03-19 2013-09-19 Microchip Technology Incorporated Enhancing Security of Sensor Data for a System Via an Embedded Controller
US9183031B2 (en) 2012-06-19 2015-11-10 Bank Of America Corporation Provisioning of a virtual machine by using a secured zone of a cloud environment
US9037854B2 (en) * 2013-01-22 2015-05-19 Amazon Technologies, Inc. Privileged cryptographic services in a virtualized environment
US10289570B2 (en) * 2015-12-24 2019-05-14 Mcafee, Llc Detecting data corruption by control flow interceptions
US10275367B2 (en) 2017-04-24 2019-04-30 Hewlett-Packard Development Company, L.P. Command source verification
CN114595265A (zh) * 2020-12-04 2022-06-07 上海唯链信息科技有限公司 一种数据处理方法、装置、存储介质及设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5557798A (en) * 1989-07-27 1996-09-17 Tibco, Inc. Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes
US5944821A (en) * 1996-07-11 1999-08-31 Compaq Computer Corporation Secure software registration and integrity assessment in a computer system
US6105137A (en) * 1998-07-02 2000-08-15 Intel Corporation Method and apparatus for integrity verification, authentication, and secure linkage of software modules
JP4763866B2 (ja) * 1998-10-15 2011-08-31 インターシア ソフトウェア エルエルシー 2重再暗号化によりデジタルデータを保護する方法及び装置
GB2371658B (en) 1999-10-25 2004-01-28 Phoenix Tech Ltd Secure software SMI dispatching using caller address
US6658515B1 (en) * 2000-01-25 2003-12-02 Dell Usa, L.P. Background execution of universal serial bus transactions
US20030037237A1 (en) * 2001-04-09 2003-02-20 Jean-Paul Abgrall Systems and methods for computer device authentication
US7093118B2 (en) * 2001-06-27 2006-08-15 Intel Corporation System and method for external bus device support
JP2003281071A (ja) * 2002-03-20 2003-10-03 Seiko Epson Corp データ転送制御装置、電子機器及びデータ転送制御方法
US20030229794A1 (en) * 2002-06-07 2003-12-11 Sutton James A. System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102663294A (zh) * 2011-03-31 2012-09-12 卡巴斯基实验室封闭式股份公司 计算机网络中的软件许可使用的自动分析
CN102663294B (zh) * 2011-03-31 2015-05-20 卡巴斯基实验室封闭式股份公司 计算机网络中的软件许可使用的自动分析
CN110214324A (zh) * 2017-01-24 2019-09-06 微软技术许可有限责任公司 密钥保管库包围区
CN110214324B (zh) * 2017-01-24 2024-02-06 微软技术许可有限责任公司 密钥保管库包围区
CN115004634A (zh) * 2020-04-03 2022-09-02 Oppo广东移动通信有限公司 信息处理方法、装置、设备及存储介质
CN115004634B (zh) * 2020-04-03 2023-12-19 Oppo广东移动通信有限公司 信息处理方法、装置、设备及存储介质

Also Published As

Publication number Publication date
JP2008500655A (ja) 2008-01-10
EP1761837B1 (en) 2011-06-01
US20050289311A1 (en) 2005-12-29
EP1761837A1 (en) 2007-03-14
JP4774049B2 (ja) 2011-09-14
CN100533333C (zh) 2009-08-26
ATE511672T1 (de) 2011-06-15
WO2006012341A1 (en) 2006-02-02

Similar Documents

Publication Publication Date Title
CN100533333C (zh) 用于保障平台间和平台内通信的系统和方法
US9514300B2 (en) Systems and methods for enhanced security in wireless communication
KR101067399B1 (ko) 대칭 키 암호화에 기초한 데이터의 저장 및 검색을 위한, 컴퓨팅 장치에서 구현되는 방법, 시스템 및 복수의 명령어를 저장하는 하나 이상의 컴퓨터 판독가능 매체
KR100996784B1 (ko) 공개 키 암호화에 기초한 데이터의 저장 및 검색을 위한, 컴퓨팅 장치에서 구현되는 방법, 시스템 및 복수의 명령어를 저장하는 하나 이상의 컴퓨터 판독가능 매체
Nguyen et al. Cloud-based secure logger for medical devices
US11403428B2 (en) Protecting integrity of log data
US11132438B2 (en) Virus immune computer system and method
US20230057242A1 (en) Countermeasures against side-channel attacks on secure encrypted virtualization (sev)-encrypted state (sev-es) processors
US20060005015A1 (en) System and method for secure inter-platform and intra-platform communications
US20200242235A1 (en) Virus immune computer system and method
US10592697B1 (en) Virus immune computer system and method
CN112613000A (zh) 一种敏感信息保护方法、装置、电子设备及可读存储介质
EP3731127B1 (en) Control system and method thereof for secure manufacturing
CN116257889A (zh) 数据完整性保护方法及相关装置
KR20190010245A (ko) 이미지 벡터 처리를 이용한 해시 암호화 방법 및 장치
US8555387B2 (en) Apparatus and method for protecting asset in computer system
US20240073040A1 (en) Mitigating fpga related risks
Subedi A Framework for Analyzing Advanced Malware and Software
CN116302388A (zh) 进程的处理方法、系统和电子设备及存储介质
CN118051902A (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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090826

Termination date: 20190624