对加密数据进行访问控制和入侵检测的方法、装置和系统的制作方法

文档序号:6569697阅读:254来源:国知局
专利名称:对加密数据进行访问控制和入侵检测的方法、装置和系统的制作方法
对加密数据进行访问控制和入侵检测的方法、装置和系统
背景技术
目前存在各种入侵检测系统,通过检测对数据潜在的攻击以增强计算
机平台上数据的安全性。这些入侵检测系统(IDS)的一个局限是它们通常仅 对未加密数据和/或已加密但密钥已提供给入侵检测系统的数据进行监领" 因此,例如,尽管IDS能够在网络业务(traffic)被加密并发送给预期的接收 者之前读取网络业务,但是由于多数应用程序(application)通常在将数据发 送到网络驱动程序之前(即在数据被IDS接收之前)由自己对数据进行了加 密,所以IDS "看到"加密数据但却无法检査。因此,除非配备了解密密 钥,现有的IDS通常无法对加密数据进行入侵检测,即便IDS可能是共驻 在发送和接收业务的设备上也是如此。


本发明通过附图中各图以示例性而不是限制性的方式加以说明,图中 相j以的标记表示相似的元素,其中
图1示出入侵检测系统典型的现有实现;
图2示出示例性AMT环境;
图3示出示例性虚拟机主机;
图4概念性地示出本发明实施例的组件;
图5是说明本发明实施例的流程图。
具体实施例方式
本发明的实施例提供了对加密数据进行访问控制和入侵检测的方法、 装置和系统。更确切地,本发明的实施例提供了利用直接存储器存取 ("DMA")来支持对平台中的加密数据进行访问控制和入侵检测的方案。 说明中对本发明"一个实施例"或"实施例"的提及表示结合该实施例描 述的特定特性、结果或特征至少包含在本发明的一个实施例中。因此,出现在整个说明书中各个位置的"在一个实施例中"、"根据一个实施例"或 类似的短语,其出现并不一定都指代同一个实施例。
图1概念性地示出典型网络中的IDS。如图所示,该网络("网络100") 可以包含两个或更多节点("节点110"和"节点120")和一IDS("IDS 150")。 对于本领域技术人员来说显而易见的是,尽管只示出了两个节点,但另外 的节点也可以存在于网络110中。此外,对于本领域技术人员来说显而易 见的是,网络100可以包括多种类型的网络(局域网、广域网等)。IDS 150 可以监测节点110与节点120 (以及网络100中的其它节点)之间的业务。 如图所示,节点间的网络业务可以包括未加密的业务("未加密的网络业务 130")和加密的业务("加密的网络业务140" )。 IDS 150能够检查未加密 的网络业务130来确定数据是否已泄密(compromised),但可能无法对加密 的网络业务140进行任何形式的检查,除非节点110和域节点120上的应 用程序手动地将解密密钥提供给IDS 150来对业务在检査前先进行解密。 因此,除非节点110和/或节点120上的应用程序同IDS 150合作,否则加 密的网络业务140通常无法被IDS 150访问。
本发明的实施例允许对网络上节点间的加密业务进行监测,而不需要 来自在节点上运行的应用程序的信息和/或合作。由于IDS已具有监测未加 密数据的能力,下面对本发明实施例的描述集中在对加密数据的入侵检测 上。更确切地,在一个实施例中,监测分区可利用DMA来访问节点上的 安全密钥,以对加密数据进行入侵检测。DMA通常使计算机系统中独立 的组件能够直接访问系统的随机存取存储器("RAM"),而不必与操作系 统进行交互。DMA的概念对于本领域技术人员来说是公知的,此处略去 对其的进一步描述,以避免不必要地使本发明的实施例难以理解。
监测分区可以包括各种不同类型的分区,包括完全独立的硬件分区(如 利用英特尔⑧公司的主动管理技术(Active Management Technology, "AMT")、"管理引擎"(Manageability Engine,"ME")、平台资源层(Platform Resource Layer, "PRL")、和/或其它同等或类似的技术)、和/或虚拟化分 区(例如英特尔⑧公司虚拟化技术(Virtualization Technology, "VT")方案中 的虚拟机)。对于本领域技术人员来说显而易见的是,虚拟化主机也可以被 用来实现AMT、 ME和PRL技术(如下进一步详细描述)。示例性地,图2概念性地说明了英特尔⑧公司实现的典型的AMT环境。 对于本领域技术人员来说显而易见的是,本发明的实施例还可以实现在其 它与AMT类似或等同的实现中。仅对与描述AMT环境有关的组件进行了 说明,以避免不必要地使本发明的实施例难以理解,但对于本领域技术人 员来说显而易见的是,另外的组件可以被包括进来,而并不违背本发明实 施例的实质。
因此,如图2所示, 一个节点("节点200")可以包括主机操作系统(host operating system)("主机OS 210")和系统硬件("硬件250")。根据一个实 施例,硬件250可以包括两个处理器,其中一个("主处理器205")执行主 机OS 210的通常处理任务,而另一个("AMT 220"的"专用处理器215") 可以排他地专用于通过专用分区来管理设备。每个处理器可以具有节点 200上关联的资源,并且这些处理器还可以共享一个或多个其它资源。因 此,如此例所示,主处理器205和专用处理器215每个可以具有它们专用 的部分存储器(分别为"主存储器225"和"专用存储器230"),但它们可 以共享一个网络接口卡("NIC235")。
类似地,如图3所示,如果该节点("节点300")是虚拟化的,那么它 仅可以包括单个处理器,但设备上的虚拟机监视器("VMM 330")可以呈 现设备或主机的多个抽象和/或视图,使得主机的底层硬件看起来是一个或 多个独立运行的虚拟机("VM" )。 VMM330可以以软件(例如作为单独的 程序和/或主机操作系统的组件)、硬件、固件和域它们的任意组合来实现。 VMM330管理主机上资源的分配,并依需要进行上下文切换,从而根据轮 询或其它预定方案在各个VM之间循环。对于本领域技术人员来说显而易 见的是,尽管只示出一个处理器("主处理器305"),本发明实施例并不限 于此,也可以在虚拟化环境中利用多个处理器。
尽管只示出了两个VM分区("VM 310"和"VM 320",以下统称为 "VM"),但是这些VM仅仅是说明性的,另外的虚拟机也可以加到主机 中。VM310和VM 320可以分别作为独立平台起作用,运行它们自己的"客 户操作系统"(即由VMM 330主控的操作系统,示作"客户OS 311"和"客 户OS 321",以下统称为"客户OS")和其它软件(示作"客户软件312" 和"客户软件322",以下统称为"客户软件")。每个客户os和/或客户软件工作时好像其是运行在专用计算机上,而 不是虛拟机上。艮P,每个客户os和域客户软件可以期待控制各种事件并
对主机IOO上的硬件资源进行访问。在每个VM中,客户OS和/或客户软 件可以表现为它们实际上好像是运行在节点300的物理硬件上("主机硬件 340",其可以包括网络接口卡("NIC350"))。
对于本领域技术人员来说显而易见的是,具有专用处理器的物理硬件 分区(例如,如图2所示)可以提供比虚拟化分区(如图3所示)更高级别的安 全性,但本发明的实施例可以在任一环境和/或这些环境的组合中实行,以 提供不同级别的安全性。对于本领域技术人员来说同样显而易见的是, AMT、 ME或PRL平台可以在虚拟化环境中实现。例如,VM 320可以专 门用作主机上的AMT分区,而由VM 310运行主机上典型的应用程序。 在此情形中,主机可能包含或可能不包含多个处理器。如果主机确实包含 两个处理器,例如,VM 320可以分配到专用处理器215而VM310(和主 机上的其它VM)可以共享主处理器205的资源。另一方面,如果主机只包 含单个处理器,则该处理器可为两个VM服务,但VM 320仍然可以在 VMM 330协作下与主机上的其它VM隔离开。出于简明的目的,本发明 的实施例在AMT环境中进行描述,但本发明的实施例并不限于此。相反, 任何对AMT、"分区"、"安全分区"、"安全性分区"和/或"管理分区"的 提及都应包括任何物理和/或虚拟分区(如上所述)。
图4示出了本发明的一个实施例。如图所示,根据本发明的一个实施 例,计算设备("节点400")可以包括至少三个逻辑组件,即包括主机操作 系统("主机OS 405")的主机分区、网络硬件個件("NIC 410")和如AMT ("AMT415")这样的专用分区。如前所述,尽管下述描述采用了 AMT, 本发明的实施例并不限于此。
根据本发明的实施例,主机OS 405可以包括各种能够进行加密操作 的应用程序(统示作"应用程序420")、网络驱动程序("驱动程序425")、 网络栈("网络栈430")和存储器("存储器450")。对于本领域技术人员 来说显而易见的是,应用程序420可以包括各种通常执行加密操作的应用 程序,例如虚拟专用网("VPN")应用程序、防火墙应用程序、网关应用 程序等等。在各种实施例中,应用程序还可以包括其它组件,例如特权组件(如内核模块)。因此,此处任何对"应用程序"的提及都应被解读为至
少包括上述组件。在一个实施例中,AMT 415可包括网络驱动程序("驱 动程序435")和入侵检测系统("IDS 440")。
在一个实施例中,主机OS 405上的应用程序420可建立到AMT 415 的连接。更确切地,应用程序420可以通过主机OS 504上的网络驱动程 序425,向驱动程序435发送请求,来建立到远程位置的加密连接。对于 本领域技术人员来显而易见的是,"远程"位置可以是物理上远离节点400 (即通过网络)或者虚拟地远程的,例如从一个VM到另一个。通过建立加 密连接,两个端点可以安全地交换数据业务,即该连接消除了其它应用程 序和/或VM监听该数据业务的可能性。另外,对于本领域技术人员来说显 而易见的是,从一个分区到另一个分区的此连接可以是基于DMA的连接, 该连接获得VMM、基本输入输出系统("BIOS")和/或分区间专门的物理 或逻辑通道的辅助。在一个实施例中,应用程序420可能不产生请求。相 反,对应用程序420可以仅仅作执行检査,该检查通过"存在性检査"进 行,如在已转让给本申请的受让人的、2005年6月30日提交的、序列号 为11/174,315的题为"Systems, Apparatuses and Methods for A Host Software Presence Check From An Isolated Partition"的共有未决申请中所示例性地描 述的。存在性检査还可以自动地建立从一个分区到另一个分区的连接。不 过,出于简明的目的,下面的例子将采用前面的实施例,即该实施例中应 用程序420发送建立连接的请求。
来自应用程序420的请求可以包括例如哪个端口被请求、数据业务的 源地址和目的地址等信息。驱动程序425可以记录来自应用程序420的所 有信息,并将请求路由给AMT415上的驱动程序435。使驱动程序425能 够将业务路由至驱动程序435而非至NIC 410是AMT平台公知的特性, 因此此处略去对其进一步的描述,以免其不必要地使本发明实施例难于理 解。
AMT415中的驱动程序435可以将该请求传送到合适的远程位置,从 远程位置接收响应,并将响应传送回主机OS405上的驱动程序425。利用 响应中包含的信息,应用程序420然后可以生成对称会话密钥。生成对称 会话密钥的过程对于本领域内技术人员来说是公知的,因此这里略去对其进一步的描述,以免其不必要地使本发明实施例难于理解。在一个实施例
中,对称会话密钥("密钥445")可以存储在主机OS 405的存储器("存储 器450"沖,但它不能被复制到主机OS 405的交换空间(即主机OS 405 上的虚拟存储器)中。
一旦加密连接被建立,应用程序420便可以生成并传送业务,该业务 可从主机OS 405被路由至AMT415。如前所述,在本发明的一个实施例 中,主机OS 405上的驱动程序425可被增强,以将业务路由至AMT415 上的驱动程序435。在一个实施例中,AMT415可以采用一个或多个公知 的启发式算法将业务识别为加密数据。在此略去了对这些启发式算法的说 明,以免不必要地使本发明实施例难于理解。 一旦识别出加密业务,AMT 415可以检查初始化过程中(即在连接最初被建立时)从驱动程序425接收 到的信息。从该信息中,AMT415可以确定哪个应用程序在发送数据和其 它与网络连接有关的信息,如应用程序420在存储器450中的位置。AMT 415然后可以利用DMA来确定应用程序420在存储器450中的位置并搜 索该存储位置(memory location)以找到密钥445。
在一个实施例中,AMT415可以将主机405的存储器中密钥445的存 储器地址做标记以便监测。AMT 415可另外将密钥445复制到AMT 415 的存储器("存储器455"沖。之后,驱动程序435可以利用密钥445对来 自应用程序420的加密数据业务随需进行解密,AMT415中的IDS 440可 以检査所有数据。典型地,应用程序420可以在预定一段时间或者预定数 量的业务生成之后更改密钥445。在一个实施例中,如果新密钥在存储器 450中的相同的存储位置替换旧密钥,AMT415可以被告知该更改(因为它 在监测存储器450中密钥445的存储位置)。
在替代的实施例中,如果新密钥存储在存储器450的新位置中,那么 AMT415可能不能意识到该更改,直到其发现密钥445己无法成功对来自 应用程序420的加密业务进行解密。此时,AMT415可以重复上述过程, 即识别主机OS 405的存储器中分配给应用程序420的位置、搜索该存储 位置以找到新密钥。当应用程序420停止生成业务时,即当应用程序420 释放存储器450中它分配到的存储器时,AMT415可以确定密钥445不再 有用或必需,并将密钥445从存储器455中删除。图5是说明本发明的实施例的流程图。尽管下面的操作以顺序过程来 描述,但是其中很多操作实际上可以以并行和/或并发形式执行。另外,操 作的顺序可以在不背离本发明实施例的实质的前提下重新安排。在501中, 节点上的应用程序经由主机OS上的网络驱动程序,通过生成会话密钥以 便对所有该应用程序生成的数据进行加密,可以发起同该节点上AMT的 网络驱动程序的连接。然后在502中,会话密钥可以存储在主机OS存储 器中。在503中,AMT可以基于初始化信息(该信息在连接初始建立时提 供给AMT上的网络驱动程序)确定主机OS存储器的哪一部分被分配给了 该应用程序。之后,在504中,AMT可以利用DMA来检査分配的存储器 以找到会话密钥。然后在505中,AMT可以将存储会话密钥的存储位置进 行标记以便监测,并将该密钥复制到其自己的存储器中。在506中,AMT 中的网络驱动程序利用会话密钥对来自应用程序420的数据业务随需进行 解密,而在507中,AMT中的IDS可以对所有来自主机OS上的应用程序 的数据进行检査。在508中,AMT确定应用程序已经释放主机OS上的存 储器并将密钥从AMT存储器中删除。
本发明的实施例可以在各种计算设备上实^U根据一实施例,计算设 备可以包括各种其它公知的组件,如一个或多个处理器。处理器和机器可 访问媒体可以采用桥接器/存储器控制器以通信方式耦合,并且该处理器能 够执行存储在机器可访问媒体中的指令。桥接器/存储器控制器可以耦合至 图形控制器,而图形控制器可以控制显示设备上显示数据的输出。桥接器/ 存储器控制器可以耦合至一个或多个总线。 一个或者多个这些单元可以与 处理器集成一起,在一个封装中或者使用多个封装或管芯(die)。主机总线 控制器,例如通用串行总线("USB")主机控制器,可以耦合至总线,并 且多个设备可以耦合至USB。例如,用户输入设备,如键盘和鼠标,可以 包括在计算设备内以提供输入数据。在替代的实施例中,主机总线控制器 可以同各种其它互连标准相兼容,包括PCI、 PCIExpress、火线、以及其 它这样的现存及将来的标准。
在前述说明书中,本发明的描述参照了其特定的示例性实施例。但是, 可以理解,可以在不背离如所附权利要求中所阐述的本发明更广的实质和 范围情形下,对其进行各种修改和更改。据此,本说明书及附图应被认为 是说明性的而非限制性的。
权利要求
1、 一种方法,包括从第一分区识别主机操作系统("OS")的存储器中应用程序的存储位 置,所述主机OS位于第二分区中;利用直接存储器存取("DMA"),在所述主机OS中所述应用程序的 存储位置内识别会话密钥;将所述会话密钥复制到所述第一分区的存储器中;利用所述第一分区中的所述会话密钥,对在所述第一分区中接收自所 述应用程序的加密数据进行解密;和检查解密数据。
2、 根据权利要求1所述的方法,其中,所述第一分区是主动管理技术 ("AMT")分区、管理引擎("ME")分区、平台资源层("PRL")平台和 虚拟机("VM")之一。
3、 根据权利要求3所述的方法,其中,所述AMT分区是虚拟化分区。
4、 根据权利要求1所述的方法,进一步包括以下之一 如果所述加密数据已泄密,则阻止从所述应用程序传送所述加密数据;和如果所述数据未泄密,则将所述数据发送至网络接口卡("NIC")以便 将其从节点进行传送。
5、 根据权利要求1所述的方法,进一步包括在所述第一分区和所述第 二分区之间建立连接。
6、 根据权利要求5所述的方法,其中,建立连接进一步包括 从所述第二分区向所述第一分区发送连接请求,该请求包括与所述连接有关的信息;存储与所述连接有关的信息; 在所述第二分区中生成所述会话密钥;和 使与所述会话密钥有关的信息对所述第一分区可用。
7、 根据权利要求6所述的方法,其中,发送连接请求进一步包括自动 建立从所述第二分区到所述第一分区的连接。
8、 一种节点,包括-主机分区,其运行有主机操作系统和应用程序,所述应用程序能够运 行在所述主机操作系统的部分存储器中,所述应用程序还能够在运行该应 用程序的部分存储器中生成会话密钥,所述应用程序还能够利用所述会话 密钥对数据进行加密;和监测分区,其能够从所述主机分区的应用程序接收加密数据,所述监 测分区还能够利用直接存储器存取("DMA")来从运行该应用程序的部分 存储器中定位并复制所述会话密钥,所述监测分区还能够利用从运行该应 用程序的部分存储器中复制的会话密钥对所述加密数据进行解密。
9、 根据权利要求8所述的节点,进一步包括网络接口卡("NIC"),其能够在所述主机分区和所述监测分区之间建 立连接。
10、 根据权利要求9所述的节点,其中,所述NIC还能够将连接请求 从所述主机分区路由至所述监测分区。
11、 根据权利要求10所述的节点,其中,将连接请求从所述主机分区 路由至所述监测分区进一步包括所述主机分区能够通过所述NIC向所述监测分区发送所述连接请求, 该请求包括与所述连接有关的信息,所述主机分区还能够存储与所述连接 有关的信息,并且所述主机分区还能够使与由所述应用程序生成的会话密 钥有关的信息对所述监测分区可用。
12、 根据权利要求9所述的节点,其中,所述监测分区还能够进行以 下操作之一如果所述加密数据已泄密,则阻止从所述应用程序传送所述加密数据;和如果所述数据未泄密,则将所述数据发送到网络接口卡("NIC"),以 便将其从所述节点进行传送。
13、 根据权利要求8所述的节点,其中,所述监测分区是主动管理技 术("AMT")分区、管理引擎("ME")分区、平台资源层("PRL")平台 和虚拟机("VM")之一。
14、 根据权利要求13所述的节点,其中,所述AMT分区是运行在虚 拟化环境中的VM。
15、 根据权利要求8所述的节点,进一步包括 主处理器;和专用于所述监测分区的专用处理器。
16、 一种制品,包括其上存储有指令的机器可访问介质,所述指令在 被机器执行时使该机器从第一分区识别主机操作系统("OS")的存储器中应用程序的存储位 置,所述主机OS位于第二分区中;利用直接存储器存取("DMA"),在所述主机OS中所述应用程序的 存储位置内识别会话密钥;将所述会话密钥复制到所述第一分区中的存储器;利用所述第一分区中的所述会话密钥,对在所述第一分区中接收自所 述应用程序的加密数据进行解密;和检查解密数据。
17、 根据权利要求16所述的制品,其中,所述第一分区是主动管理技 术("AMT")分区、管理引擎("ME")分区、平台资源层("PRL")平台 和虚拟机("VM")之一。
18、 根据权利要求17所述的制品,其中,所述AMT分区是虚拟化分区。
19、 根据权利要求16所述的制品,其中,所述指令在被所述机器执行 时还使该机器-如果所述加密数据已泄密,则阻止从所述应用程序传送所述加密数据;和如果所述数据未泄密,则将所述数据发送到网络接口卡("NIC"),以 便将其从节点进行传送。
20、 根据权利要求16所述的制品,其中,所述指令在被所述机器执行 时还使该机器在所述第一分区和所述第二分区之间建立连接。
21、 根据权利要求20所述的制品,其中,所述指令在被所述机器执行 时还使该机器通过以下操作来建立所述连接-从所述第二分区向所述第一分区发送连接请求,该请求包括与所述连 接有关的信息;存储与所述连接有关的信息; 在所述第二分区中生成所述会话密钥;和 使与所述会话密钥有关的信息对所述第一分区可用。
全文摘要
一种能够对加密数据进行访问控制和入侵检测的方法、装置和系统。特别地,节点上的应用程序数据可以被路由至主机上的分区。该分区可利用直接存储器存取(“DMA”)访问存储在主机OS上的会话密钥。该分区然后可以利用该会话密钥对来自应用程序的加密数据进行入侵检测。
文档编号G06F21/00GK101313309SQ200680043325
公开日2008年11月26日 申请日期2006年12月14日 优先权日2005年12月21日
发明者R·L·萨希塔, T·M·科伦博格 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1