用于计算平台数据保护的方法

文档序号:6569037阅读:194来源:国知局
专利名称:用于计算平台数据保护的方法
用于计算平台数据保护的方法北旦 冃足1. 领域本发明一般地涉及计算机安全,尤其涉及防止未经授权地从计算平台输出数据。2. 描述诸如个人计算机(PC)的许多计算平台用于关键数据管理任务。这些任 务包括管理并操作财务、机密或其他敏感数据。例如,许多企业都保持有详细 的客户列表,这些列表可能包括电子邮件地址、密码、信用卡卡号、标识号码 等。诸如PC的典型"现成"计算平台至少提供了若干机制以从该平台输出数 据。这些机制包括耦合至各类外围设备的输入/输出(I/O)端口。通常,计算 平台为不拥有敏感数据的某方所有,并且由雇员和/或承包商操作。当处理敏感 数据时,希望确保操作计算平台的雇员无法从平台中移除该数据。附图简述本发明的特征和优点会从以下对本发明的详细描述中显而易见,附图中

图1是根据本发明一实施例示出一计算平台的框图;图2是根据本发明一实施例示出一计算平台内软件栈的图示;图3是根据本发明一实施例用于限制从计算平台输出数据的数据结构的图示;图4是根据本发明一实施例示出写防止处理的流程图;以及 图5是本发明另一实施例的图示。详细描述本发明的各实施例提供了被配置为用一种方法来选择性地限制数据输出 的计算平台,诸如大批量生成的PC。在这些实施例中,系统管理员或者信息技术(IT)雇员可配置计算平台的软件和/或固件,以使得该计算平台的操作员 无法把在平台上遇到的数据输出到其他设备,诸如便携式存储设备。实际上, 可以让该计算平台选择性地进入"只读"操作模式。这有助于防止敏感数据的未经授权公开。在只读模式中,通常用于向外部存储设备输出数据的i/o端口可被隔离。于是,标准的、大量生产的计算平台(例如,"现成的"PC)就可 用于敏感数据处理能力,并且可以通过修改单个由管理员控制的设置,从读/ 写完全启用部署切换成受限的只读部署。本发明中对"一个实施例"或"一实 施例"的引用表示连同实施例描述的特定特征、结构或特性包括在本发明的至 少一个实施例中。于是,在说明书通篇各位置出现的短语在"一个实施例中" 未必全指代同一个实施例。图1中示出了用于本发明各实施例的示例性计算平台,然而,也可以使用 其他系统并且并不是所示计算平台的所有组件都是本发明所需的。示例系统ioo可用于例如执行对本发明个实施例的处理。示例系统IOO代表基于可从英特尔公司获得的PENTIUM⑧系列处理器和CELERON⑧处理器的处理系统,虽 然也可以使用其他系统(包括具有其他处理器的个人计算机(PC)或服务器、 工程工作站、其他机顶盒等)和体系结构。图1是本发明的一个实施例的系统100的框图。系统100包括处理数据信 号的至少一个处理器102。处理器102可以耦合至在处理器102和系统100内 的其他组件之间传输数据信号的处理器总线104。系统100包括存储器106。 存储器106可以存储由可以被处理器102执行的数据信号表示的指令和/或数 据。指令和/或数据可以包括用于执行本发明任何和/或全部技术的代码。存储 器106还包括附加的软件和/或数据,诸如至少一个应用程序107以及至少部分 常规操作系统(OS) 108。此外,存储器还存储被称为只读指示符110的至少 一个数据结构。在一个实施例中,该只读指示符可以是单个比特(即,标志), 用来指示整个计算平台的只读操作模式。在另一个实施例中,只读指示符可以 是用以进一步指定与当前在计算平台上允许的I/0能力有关的细节(例如,对 访问选定输出端口的许可)的数据结构。在本发明的至少一个实施例中,该只 读指示符可由OS访问,但是不能由应用程序或任何其他用户级进程访问。在 另一个实施例中,应用程序能够读取注册表中的只读指示符。此外,桥/存储器控制器110可被耦合至处理器总线104和存储器106。桥 /存储器控制器110在处理器102、存储器106和系统100中的其他组件之间引 导数据信号,并在处理器总线104、存储器106和第一输入/输出(I/O)总线 112之间桥接数据信号。在此实施例中,图形设备114接口至显示设备(未示出) 以向用户显示由图形设备114描绘或以其他方式处理的图像。第一I/0总线112 可以包括单条总线或多条总线的组合。第一I/0总线112提供系统100内的各 组件之间的通信链路。第二I/0总线120可以包括单条总线或多条总线的组合。第二I/O总线120 提供系统100内的各组件之间的通信链路。总线桥126将第一 I/O总线112耦 合至第二 I/O总线120。 一个或多个其他外围设备可以耦合至第二 I/O总线。 非易失性存储设备130可以耦合至第二 I/O总线。该非易失性存储设备(例如, 闪存)可以包括固件132,而固件132在某些实施例中可以包括基本输入/输出 系统(BIOS)或者其他的计算平台配置和管理程序。在一个实施例中,固件可 以包括类似于只读指示符110的只读指示符134,但是该只读指示符134是存 储在非易失性存储设备130中并可从中访问的,而非存储在存储器106中。其 他的常规和周知外围和通信机制也可以耦合至第二 I/O总线,诸如致密盘只读 存储器(CDROM)驱动器136、通用串行总线(USB) 138、硬盘驱动140、 火线总线142、串行端口 144和并行端口 146。便携式存储设备148可以耦合 至总线中的一根(诸如,USB或者火线总线)来接收数据。便携式存储设备可 以包括非易失性闪存。在常规计算平台中,这些设备和总线中的任一个都可用 来输出数据。在本发明的各实施例中,这些输出活动会至少部分根据只读指示 符的值而受到限制。本发明的各实施例涉及将系统100用作处理系统中的一个组件。根据一个 实施例,这些处理可由系统100响应于处理器102执行存储器106内的连续指 令来执行。可将这些指令从诸如硬盘驱动器140的另一计算机可读介质中读入 存储器106。这些连续指令的执行引起处理器102根据本发明各实施例执行对 应用程序的处理在一个可选实施例中,硬件电路可代替软件指令或与其结合使 用,以实现本发明的各实施例的部分功能。于是,本发明不限于任何硬件电路 和软件的特定组合。系统100的各元件以本领域内公知的方式执行其常规功能。具体地,硬盘 驱动器140可用于为根据本发明的各组件的实施例的可执行指令和数据结构提供长期存储,而存储器106则用来在由处理器102执行期间为根据本发明的各 组件的实施例的可执行指令提供短期存储。图2是根据本发明一个实施例示出计算平台内软件栈的图示。一个实施例 中,只读指示符可被实现为注册表200中的注册表设置。OS控制对注册表的 访问并且可以用周知的方式来实施策略,使得只有该计算平台的系统管理员才 能够设置注册表内的只读指示符。在用户特权级工作的应用程序107可能期望 将数据输出给硬件设备202。例如,硬件设备可以是经由通信总线(未在图2 中示出)耦合至计算平台的便携式存储设备。应用程序可以调用由OS提供的 应用程序接口(I/F) (API) 204,用以请求对硬件设备的写访问。该I/F又调用 驱动程序软件模块206,用来控制关于该硬件设备的输入和输出操作。驱动程 序206可在确定是否允许对该硬件设备的写请求时读取注册表中的只读指示 符。如果只读指示符指示该应用程序未被授权输出数据至该写请求中指定的硬 件设备、I/O端口和/或通信总线(即,处于只读操作模式下),则驱动程序就 否认该写请求并拒绝输出数据。然而,如果只读指示符指示该应用程序被授权 输出数据至硬件设备,则驱动程序就实现关于该硬件设备的写请求。因此,驱 动程序206可在确定应用程序提交的哪些写请求会被准许时用作在内核特权级 的过滤器。在另一个实施例中,计算平台可以不执行诸如Microsoft Windows、 Linux 或者苹果电脑的MacOS的操作系统。在此实施例中,可以包括该只读指示符 作为固件132中的设置选项并由系统管理员在计算平台配置期间设置。用户应 用程序或命令可以尝试直接调用磁盘操作系统(DOS)函数208,以便直接做 出对硬件设备的写请求(绕过诸如Windows的常规OS)。在此情况下,从非 易失性存储设备130中载入的固件驱动程序210就可至少部分根据只读指示符 的状态(由该固件所包含,但未在图2中示出)确定这一写请求是否会被准许。 如果对选定输出端口的写入未被允许,则固件132不实现该写请求。而是替代 地将写错误返回给请求者。如上所述,在一个实施例中,只读指示符可以包括可被设置为启用写请求或禁用写请求的标志。该标志可以用于控制计算平台上所有用户和应用程序的 粗糙设定。例如,如果设置该标志,则可以否认所有应用程序(除了显示器) 的所有写请求。这样就没有为某些情况提供合适的控制粒度。在其它实施例中, 只读指示符可以包括在此称为I/0访问表的数据结构,该数据结构指定每个I/O端口允许什么级别的用户访问。驱动程序206或固件驱动程序210在确定允许 用户写请求是否被准许时可以访问至少一个I/0访问表。图3示出了表示只读 指示符的更为复杂的数据结构的一个示例。在此实施例中,只读指示符包括I/O 访问表300。虽然在此示出了一个表,但是本领域普通技术人员将会轻易认识 到也可以使用其他形式的数据结构。该表的一列包含I/0端口 302,另一列则 包含用户访问级的值304。例如,对串行端口 306的用户级访问可被设置为读/ 写308,对并行端口 306的用户级访问可被设置为拒绝访问312,对USB 314 的用户级访问可被设置为只读316,对CDROM 318的用户级访问可被设置为 只读320,对火线322的用户级访问可被设置为拒绝访问324而对硬盘驱动器 326的用户级访问可被设置为读/写328。当然,这只是I/0端口访问设定的一 个示例,也可以使用其他的设定和替换方案。当所有的I/0端口的用户访问级都设置为读/写时,该计算平台的所有1/0 能力都被启用。在一个实施例中,这是默认情况。计算平台的系统管理员可以 在I/O访问表中改变这些设定。可以使用周知的安全措施对修改I/O访问表的 能力进行保护。通过改变I/0访问表内的设定,系统管理员就可控制什么输出 端口 /设备可由计算平台的用户访问。在这个例子中,是在不考虑是哪些具体用户正使用该计算平台的情况下来 控制对I/0端口的访问的。在其他实施例中,每个用户可具有自己的存储在注 册表或固件内的I/0访问表。当一具体用户登入计算平台时,驱动程序206或 固件驱动程序210检验与该用户相对应的合适I/O访问表,以确定对设备的写 访问。 一个用户的I/O访问表对于同一组设备可以提供与另一个用户I/O访问 表不同的访问值。图4是根据本发明一实施例示出写保护处理400的流程图。在框402,计 算平台可以在该处理的预引导阶段开始初始化。在框404,可以做出检测以确 定该计算平台是否支持只读操作模式。如果不支持,就在框405处进行常规引导操作。如果该平台的确支持只读操作,则在框406,通过读取只读指示符来 做出检测以确定该平台当前是否正处于只读模式。如果根据只读指示符只读模式未被设置,则就在框405继续常规引导操作。否则,就在随后的预引导操作 期间,可在框408处监视对选定端口的写入。当只读指示符是一标志时,就可 以监视所有的输出端口。当只读指示符是I/0访问表时,就可以根据相应端口 的用户访问级的值来监视各输出端口 。在框410,如果接收到对选定端口的输出访问的写请求而当前不允许该输 出,那么该写请求就不会实现,并且可在框412将写错误返回给请求者。如果 在框414,计算平台没有准备好发起引导目标,则处理就在框408处继续附加 写访问的监视。如果计算平台准备好发起引导目标,则处理就在框416处继续。 引导目标可以是OS的代码图像。在框416,平台的引导通过发起引导目标继 续。该引导目标可以本地(即,从硬盘驱动器)或远程(例如,从另一系统或 设备)获得。在至少一个实施例中,框402至416会在计算平台处理的预引导 阶段出现。在框41S,在计算平台上的后引导处理期间,在一个实施例中可以发起内 核驱动器软件206,从而根据只读指示符来过滤对选定端口的写请求。在框420, 如果接收到对选定端口 (即,当前尚未允许写请求的端口)的写请求,则不实 现该写请求并在框422处返回写错误。如果任何接收到的请求不是对选定端口 的写请求,则该驱动程序的处理就循环回到框420。在至少一个实施例中,框 418至422会在计算机平台处理的后引导阶段出现。图5是本发明另一实施例的图示。本发明的某些实施例可以包括虚拟化系 统。虚拟化是一种能够让基于处理器的主机支持硬件和软件(或者在某些情况 下,仅软件)的虚拟化的技术,以呈现主机的抽象,使得主机的下层硬件看起 来象是一个或多个独立的操作虚拟机。因此,每个虚拟机都可以用作自给式平 台。虚拟化技术通常用于允许多个客户操作系统和/或其他客户软件明显同时并 明显独立地在多个虚拟机上共存和执行,而实际上是在同一硬件平台上执行。 虚拟机可以模拟主机的硬件或者作为替换,呈现出完全不同的硬件抽象。虚拟化系统将一组资源(例如,处理器、存储器、10设备)提供给在虚 拟机500上操作的客户软件,并且可以将物理主机的某些或所有组件(即,硬件502)映射至虚拟机或创建完全虚拟的组件。这样即可以认为虚拟化系统向 客户软件提供虚拟裸机接口。在某些实施例中,虚拟化系统可包括控制主机的虚拟机监视器(VMM) 504。 VMM将诸如处理器、存储器、10设备的一组资 源提供给虚拟机(VM)上操作的客户软件,例如应用程序506。 VMM可以将 物理主机的某些或所有组件映射至虚拟机,并且可以创建包括在虚拟机内且在 VMM的软件内仿真的完全虚拟的组件(例如,虚拟IO设备)。VMM使用硬 件虚拟化体系结构内的设施来提供对虚拟机的服务并且在主机上执行的多个 虚拟机之间提供保护。 一般而言,VMM在其中操作的存储器空间是不可由 VMM服务的任何虚拟机访问的物理主机存储器的一部分。VMM可以控制应 用程序对硬件设备的写访问。在使用虚拟化的这一示例中,具体化为I/O访问表508的只读指示符可以 是VMM 504的一部分。当在用户特权级工作的应用程序想要经由硬件502写 出数据至选定端口时,该请求由内核特权级处的OS510和固件512处理。OS 调用VMM以访问I/0访问表508,从而确定是否应该实现该写请求。如果所 请求I/0端口的用户访问级指示只读访问,则否认该写请求。在此实施例中, 图2的内核驱动程序206可以在OS 510、固件512或VMM 504中实现。在一 个实施例中,当在VMM中实现该驱动程序时,这一解决方案是OS不可知的。 可以在计算平台设定处理期间生成I/O访问表。根据本发明各实施例通过提供基于平台的机制来建立只读平台,人们现在 就拥有一种在其中雇主能够相当地确保敏感数据不会从计算平台导出的"现成 的"PC部署。借助在软件和/或固件中配置只读平台设定的能力,人们就能够 获得具有所有典型输出端口的标准的、大批量生成的PC,并能够相等地在敏感区域内部署这些平台,还能够将它们用作标准的、完全可用的平台。这就避 免了为购买专门构造用于控制敏感数据的定制计算平台的额外耗花费。尽管可将以下操作描述为顺序进程,但这些操作中的某些可并行或同时执 行。此外,在某些实施例中,可以重新排列各操作的顺序而不背离本发明的精神。在此描述的技术不受任何特定硬件、固件或软件配置的限制;它们可以在 任何计算或处理环境中找到其适用性。这些技术可以被实现为硬件、固件、软件或这些技术的任意结合。这些技术可以用能在可编程机器上执行的程序来实 现,这些可编程机器诸如可以包括移动或固定计算机、个人数字助理、机顶盒、 蜂窝电话和寻呼机、以及各自包括处理器、可由处理器读取的存储介质(包括 易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及一个或多个 输出设备的其他电子设备。程序代码可应用于使用输入设备输入的数据,用以 执行在此描述的功能并生成输出信息。输出信息可被应用于一个或多个输出设 备。本领域普通技术人员可以认识到本发明可以用各种计算机系统配置来实 践,这些系统包括多处理器系统、微型计算机、大型计算机等等。本发明还可 以在分布式计算环境中实践,在该环境中任务可由经通信网络链接的远程处理 设备来执行。
每个程序都能够以高级程序化的或面向对象的编程语言来实现,以便与处 理系统通信。然而,程序也可以在需要时用汇编或机器语言实现。在任一情况 下,该语言都可被编译或解释。
程序指令可用于引起用这些指令编程的通用处理系统或专用处理系统执 行在此描述的操作。代替地,这些操作可由含有用于执行各操作的硬连线逻辑 的专用硬件组件,或由编程的计算机组件和定制硬件组件的任何组合来执行。 在此描述的各方法可被提供为计算机程序产品,这些产品可以包括其上存储有 指令的机器可访问介质,而这些指令则用于编程处理系统或其他电子设备来执 行上述各方法。在此使用的术语"机器可访问介质"应该包括能够存储或编码 供机器执行并能使得该机器执行在此描述的任一方法的指令序列的任何介质。 术语"机器可访问介质"因此应该包括但不限于固态存储器、光盘和磁盘、编 码数据信号的载波。此外,本领域中常以一种或其他形式提及软件(例如,程 序、规程、进程、应用程序、模块、逻辑等)用以采取一行动或引发一结果。 这些表达仅仅是陈述由处理系统执行的以引起处理器执行一行动来产生一结 果的软件的一种简要方式。
权利要求
1.一种阻止从计算平台中输出数据的方法,包括发起驱动程序以过滤对所述计算平台的选定输出端口的写请求;接收写请求;以及在所述写请求是针对被标识为正处于只读模式的选定输出端口时,否认所述写请求。
2. 如权利要求l所述的方法,其特征在于,所述驱动程序包括在内核特 权级上执行的软件模块,并且所述写请求由在用户特权级上执行的应用程序启 动。
3. 如权利要求1所述的方法,其特征在于,还包括读取只读指示符,用 以确定所述选定输出端口输出数据的授权。
4. 如权利要求3所述的方法,其特征在于,当所述驱动程序包括用于计 算平台的固件的一部分时,从磁盘操作系统(DOS)命令中接收所述写请求, 并且将所述只读指示符作为设置选项存储在固件内。
5. 如权利要求l所述的方法,其特征在于,还包括 初始化所述计算平台;确定所述计算平台是否被配置处于只读操作模式;以及 在预引导处理期间,接收从所述计算平台输出数据的写请求并且在指示所 述只读操作模式时否认所述写请求。
6. 如权利要求3所述的方法,其特征在于,所述只读指示符存储在所述 计算平台的虚拟机管理器(VMM)内,并且所述VMM包括所述驱动程序。
7. —种用于保护计算平台内数据的系统,包括只读指示符,用于指示所述计算平台的选定输出端口输出数据的授权;以及驱动程序,通过接收写请求并在所述写请求是关于根据所述只读指示符的 被标识正处于只读模式的选定输出端口时否认所述写请求来过滤各写请求。
8. 如权利要求7所述的系统,其特征在于,所述驱动程序包括在内核特 权级上执行的软件模块,并且所述写请求由在用户特权级上执行的应用程序启动。
9. 如权利要求7所述的系统,其特征在于,当所述驱动程序包括用于计算平台的固件的一部分时,从磁盘操作系统(DOS)命令中接收所述写请求, 并且将所述只读指示符作为设置选项存储在固件内。
10. 如权利要求7所述的系统,其特征在于,还包括固件用以初始化所述 计算平台,确定所述计算平台是否被配置处于只读操作模式,并在预引导处理 期间接收从所述计算平台输出数据的写请求并且在指示所述只读操作模式时 否认所述写请求。
11. 如权利要求7所述的系统,其特征在于,所述只读指示符存储在所述 计算平台的虚拟机管理器(VMM)内,并且所述VMM包括所述驱动程序。
12. —种物品,包括包含指令的机器可访问介质,所述指令在被执行时,通过以下动作来阻止从计算平台中输出数据发起驱动程序以过滤对所述计算平台的选定输出端口的写请求; 接收写请求;以及在所述写请求是针对被标识为正处于只读模式的选定输出端口时,否认所 述写请求。
13. 如权利要求12所述的物品,其特征在于,所述驱动程序包括在内核 特权级上执行的软件模块,并且所述写请求由在用户特权级上执行的应用程序 启动。
14. 如权利要求12所述的物品,其特征在于,还包括读取只读指示符, 用以确定所述选定输出端口输出数据的授权。
15. 如权利要求12所述的物品,其特征在于,所述只读指示符存储在所 述计算平台的虚拟机管理器(VMM)内,并且所述VMM包括所述驱动程序。
全文摘要
阻止从计算平台中输出数据可以通过以下方法实现发起驱动程序以过滤对计算平台的选定输出端口的写请求,接收写请求,并在该写请求是针对被标识为正处于只读模式的选定输出端口时否认该写请求。
文档编号G06F21/00GK101273364SQ200680035170
公开日2008年9月24日 申请日期2006年9月21日 优先权日2005年9月23日
发明者M·罗斯曼, V·齐默 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1