向有高保证执行环境的系统的可信代理提供安全输入/输出的制作方法

文档序号:6435030阅读:133来源:国知局
专利名称:向有高保证执行环境的系统的可信代理提供安全输入/输出的制作方法
技术领域
本发明一般涉及计算机安全领域,尤其涉及多个执行环境(如,操作系统)在单个计算装置上的使用,并提供允许对多个执行环境中更高保证执行环境中的可信代理的数据输入和输出的完整性的技术。
背景技术
在现代的计算中,可在计算机上执行的许多任务需要某一级别的安全。为提供安全级别,有若干选项。一个选项是在计算机上执行完全从任一可能不安全的元素分离的所有安全应用程序,或使用虚拟机器监控器(VMM)来允许运行在单个计算机系统上的两个执行环境(如,操作系统)之间的完全分离。然而,这可能是不切实际的。鉴于成本或方便的原因,可需要安全执行环境来与具有不确定安全性的应用程序共享资源,并且那些应用程序和那些资源可对攻击者而言是易攻击的。另外,当使用VMM时,由于VMM需要机器及其所有设备的完全虚拟化(由此需要该VMM为每一可能的设备提供其自己的设备驱动器),VMM并不较好地适合在其中可向机器添加几乎不受限制的各种设备的开放体系结构机器。
提供在两个执行环境之间共享资源的能力的一种方式是提供一种计算机系统,其中,有一个控制机器上大多数进程和设备的“主”操作系统,并且也存在第二操作系统。该第二操作系统是与主操作系统并肩的执行某些有限任务的小型、专用操作系统。令操作系统变得“小型”或“专用”的一种方式是允许小型操作系统从“主”操作系统借用某些基础结构(如,调度设施、存储器管理器、设备驱动器等)。由于VMM将一个操作系统与另一个有效地隔离,该基础结构的共享不适合使用VMM。
某些其它技术允许操作系统在同一机器上并肩存在,而不使用VMM。一种这样的技术是令一个操作系统担当其它操作系统的“主机”。(“主机”所服务的操作系统有时候被称为“访客”。)在这一情况下,主机操作系统向访客提供诸如存储器和处理器时间等资源。另一这类技术是使用“外内核(exokernel)”。外内核管理某些设备(如,处理器和存储器),并也管理操作系统之间某些类型的交互,尽管外内核—与VMM不同—不虚拟化整个机器。即使当使用外内核时,情况可以是一个操作系统(如,“主”操作系统)向其它操作系统提供大多数基础结构,在这一情况下,主操作系统仍可被称为“主机”,而较小的操作系统被称为“访客”。主机模型和外内核模型都允许支持基础结构共享的操作系统之间有用类型的交互。
由此,这些技术可用于向计算机系统提供至少两种执行环境。其中之一可以是“高保证”操作系统,称为“网络点(nexus)”。高保证操作系统是提供关于其行为的某一级别的保证。例如,网络点可用于通过提供确保不向网络点外部的世界泄露信息的屏蔽存储器(curtained memory),并通过仅准许某些经证明的应用程序在网络点下执行并访问屏蔽存储器,来对不应当被泄露的机密信息(如,密码密钥等)起作用。
在具有两个执行环境的计算机系统中,其中之一是网络点,可期望网络点是访客操作系统,并且不服从关于行为的同一级别的保证的第二操作系统是主机操作系统。这允许网络点尽可能地小。小网络点允许网络点提供的保证中的高可信度。
然而,网络点的高保证特性需要对运行在网络点上的进程的输入和输出的高保证,使得没有来自主机操作系统的进程或其它实体可读或改变用户输入的数据,或向用户显示或输出的数据。但是允许主机操作系统处理输入和输出,并将信息中继到网络点用于其处理将危害网络点的高保证特性。另外,输入可来自加密该输入的可信用户输入设备,并需要使用网络点内保留的不应当向主机泄露的机密来解密。
输入/输出(I/O)的功能,如呈递并检测和处理有关向用户显示着的图形用户界面元素的用户事件,通常由公共资源向所有进程提供。然而,在主机操作系统中提供这一功能要求把要呈现的数据传递到主机用户来呈现。这提供了对传递出数据进行呈现的进程的高保证特性展开攻击的可能途径,因为被发送去呈现的数据可被不应当具有对该数据的访问的主机侧实体读取或改变。在用户事件出现的通知中也存在同一易攻击性。
鉴于上述原因,需要一种克服现有技术的缺点的系统。

发明内容
使用可信UI引擎维护了具有安全执行环境和第二执行环境的系统上的安全执行环境的安全性。可信UI引擎为向安全执行环境的用户输入和从安全执行环境的进程向显示屏或输出设备的输出进行公断(arbitrate)。
在一个实施例中,可信UI引擎的一个组件是可信输入管理器。当经加密的输入从可信输入设备到达时,可信输入管理器解密该输入。然后确定该输入是应当被保留在安全执行环境中还是被发送到第二执行环境。仅在安全用户环境中做出确定之后才将经加密的输入传递到第二执行环境。
可信UI引擎的一个组件是可信输出管理器。为提供输出的安全性,可信输出管理器充当安全执行环境中所有实体和输出设备的联系点。
下文将描述本发明的其它特征。


当结合附图阅读时,可以更好地理解以上概述以及以下较佳实施例的详细描述。为说明本发明的目的,附图中示出了本发明的示例性构造;然而,本发明不限于所揭示的具体方法和手段。附图中图1是可在其中实现本发明的各方面的示例性算环境的框图;图2是维护彼此间某种交互以及彼此间某种分离的两个示例性执行环境的框图;图3是依照本发明的一个实施例显示出输入的、具有两个执行环境的计算机系统的框图;图4是依照本发明的一个实施例提供来自安全执行环境的实体的安全输入的方法的流程图;图5是依照本发明的一个实施例显示出输出的、具有两执行环境的计算机系统的框图;以及图6是依照本发明的一个实施例提供来自安全执行环境的实体的输出的方法的流程图。
具体实施例方式
综述当两个执行环境,如操作系统,在单个机器上并肩运行时,必须确定应当如何由操作系统访问用户输入和输出。此外,可能需要操作系统之一从访问对于或来自第二操作系统或运行在第二操作系统上的实体的用户输入或输出保护起来。本发明提供了允许保护指向或来自网络点上的高保证实体的用户输入和输出免遭主机操作系统实体的可能发现的技术。
示例性计算方案图1示出了适合在其中实现本发明的各方面的一个示例计算环境。计算系统环境100仅为合适的计算环境的一个示例,并非建议对本发明的使用或功能的范围的局限。也不应将计算环境100解释为对示例性操作环境100中示出的任一组件或其组合具有依赖或需求。
本发明可以使用众多其它通用或专用计算系统环境或配置来操作。适合使用本发明的已知的计算系统、环境和/或配置包括但不限于个人计算机、服务器计算机、手持式或膝上设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子设备、网络PC、小型机、大型机、嵌入式系统、包括任一上述系统或设备的分布式计算环境等等。
本发明可在计算机可执行指令的一般上下文环境中描述,计算机可执行指令如由计算机执行的程序模块。一般而言,程序模块包括例程、程序、对象、组件、数据结构等等,执行特定的任务或实现特定的抽象数据类型。本发明也可以在分布式计算环境中实践,其中,任务由通过通信网络或其它数据传输媒质连接的远程处理设备来执行。在分布式计算环境中,程序模块可以位于本地和远程计算机存储媒质中,如存储器存储设备。
参考图1,用于实现本发明的示例系统包括以计算机110形式的通用计算装置。计算机110的组件可包括但不限于,处理单元120、系统存储器130以及将包括系统存储器的各类系统组件耦合至处理单元120的系统总线121。处理单元120可代表多个逻辑处理单元,如多线程处理器上所支持的。系统总线121可以是若干种总线结构类型的任一种,包括存储器总线或存储器控制器、外围总线以及使用各类总线结构的局部总线。作为示例而非局限,这类结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线以及外围部件互连(PCI)总线(也称为Mezzanine总线)。系统总线121也可被实现为点对点连接、交换光纤等通信设备。
计算机110通常包括各种计算机可读媒质。计算机可读媒质可以是可由计算机110访问的任一可用媒质,包括易失和非易失媒质、可移动和不可移动媒质。作为示例而非局限,计算机可读媒质包括计算机存储媒质和通信媒质。计算机存储媒质包括以用于储存信息的任一方法或技术实现的易失和非易失,可移动和不可移动媒质,信息如计算机可读指令、数据结构、程序模块或其它数据。计算机存储媒质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存所期望的信息并可由计算机110访问的任一其它媒质。通信媒质通常在诸如载波或其它传输机制的已调制数据信号中包含计算机可读指令、数据结构、程序模块或其它数据,并包括任一信息传送媒质。术语“已调制数据信号”指以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非局限,通信媒质包括有线媒质,如有线网络或直接连线连接,以及无线媒质,如声学、RF、红外和其它无线媒质。上述任一的组合也应当包括在计算机可读媒质的范围之内。
系统存储器130包括以易失和/或非易失存储器形式的计算机存储媒质,如只读存储器(ROM)131和随机存取存储器(RAM)132。基本输入/输出系统133(BIOS)包括如在启动时帮助在计算机110内的元件之间传输信息的基本例程,通常储存在ROM 131中。RAM 132通常包含处理单元120立即可访问或者当前正在操作的数据和/或程序模块。作为示例而非局限,图1示出了操作系统134、应用程序135、其它程序模块136和程序数据137。
计算机110也可包括其它可移动/不可移动、易失/非易失计算机存储媒质。仅作示例,图1示出了对不可移动、非易失磁媒质进行读写的硬盘驱动器141、对可移动、非易失磁盘152进行读写的磁盘驱动器151以及对可移动、非易失光盘156,如CD ROM或其它光媒质进行读写的光盘驱动器155。可以在示例性操作环境中使用的其它可移动/不可移动、易失/非易失计算机存储媒质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字视频带、固态RAM、固态ROM等等。硬盘驱动器141通常通过不可移动存储器接口,如接口140连接到系统总线121,磁盘驱动器151和光盘驱动器155通常通过可移动存储器接口,如接口150连接到系统总线121。
图1讨论并示出的驱动器及其关联的计算机存储媒质为计算机110提供了计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图1中,示出硬盘驱动器141储存操作系统144、应用程序145、其它程序模块146和程序数据147。注意,这些组件可以与操作系统134、应用程序135、其它程序模块136和程序数据137相同,也可以与它们不同。这里对操作系统144、应用程序145、其它程序模块146和程序数据147给予不同的标号来说明至少它们是不同的副本。用户可以通过输入设备,如键盘162和定位设备161(通常指鼠标、跟踪球或触摸板)向计算机110输入命令和信息。其它输入设备(未示出)可包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等等。这些和其它输入设备通常通过耦合至系统总线的用户输入接口160连接至处理单元120,但是也可以通过其它接口和总线结构连接,如并行端口、游戏端口或通用串行总线(USB)。监视器191或其它类型的显示设备也通过接口,如视频接口190连接至系统总线121。除监视器之外,计算机也包括其它外围输出设备,如扬声器197和打印机196,通过输出外围接口195连接。
计算机110可以在使用到一个或多个远程计算机,如远程计算机180的逻辑连接的网络化环境中操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其它公用网络节点,并通常包括许多或所有上述与计算机110相关的元件,尽管在图1中仅示出了存储器存储设备181。图1描述的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可包括其它网络。这类网络环境常见于办公室、企业范围计算机网络、内联网以及因特网。
当在LAN网络环境中使用时,计算机110通过网络接口或适配器170连接至LAN171。当在WAN网络环境中使用时,计算机110通常包括调制解调器172或其它装置,用于通过WAN173,如因特网建立通信。调制解调器172可以是内置或外置的,通过用户输入接口160或其它合适的机制连接至系统总线121。在网络化环境中,描述的与计算机110相关的程序模块或其部分可储存在远程存储器存储设备中。作为示例而非局限,图1示出了远程应用程序185驻留在存储器设备181中。可以理解,示出的网络连接是示例性的,也可以使用在计算机之间建立通信链路的其它装置。
单个机器上的多个计算环境如上所述,本领域已知两个操作系统可并肩地在单个计算装置上执行。本发明要解决的一个问题是可用于解决如何在两个操作系统之间提供某一级别的分隔的同时仍提供两个操作系统之间某一级别的交互的问题。
图2示出了其中两个操作系统134(1)和134(2)在单个计算机110上执行的系统。在操作系统134(1)和134(2)之间存在某一类型的逻辑分隔202,使得在操作系统134(1)和134(2)之间准许某些交互204,而仍允许相对于其它操作系统中起源的事件保护操作系统的至少一个。在图2的示例中,操作系统134(1)是主操作系统,而操作系统134(2)是访客操作系统,如上文所描述的“网络点”。如上所述,当操作系统134(2)是网络点时,理想的是要构造分隔202使得操作系统134(2)可与操作系统134(1)交互以借用操作系统134(1)的基础结构,而仍允许操作系统134(2)保护其本身免遭操作系统134(1)中引发的可能导致操作系统134(2)以与其行为规范相反的方式表现的行动(无论是恶意的还是无意的)。(然而,可以理解,本发明不限于操作系统134(2)是网络点的情况。)操作系统134(1)和134(2)之间的分隔202可任选地在安全监控器的帮助下实施。安全监控器是在操作系统134(1)和134(2)外部的组件,它提供可用于报保对护操作系统134(2)免遭操作系统134(1)的行动的某些安全服务。例如,安全监控器可控制对某些硬件的访问、可管理存储器的使用(以给予操作系统134(2)对存储器的某些部分的独占使用)、或可方便数据以安全的方式从操作系统134(1)传递到操作系统134(2)。应当注意,安全监控器的使用表示了如何保护操作系统134(2)免遭操作系统134(1)的行动影响的一个模型,尽管安全监控器的使用并非所需。作为另一示例,操作系统134(2)可包括保护其本身免遭操作系统134(1)的行动影响所需要的所有功能。
应当注意,图2示出了操作系统134(1)为“主机”,而操作系统134(2)是“访客”。一般而言,这一特性表述指的是这样一个事实在这些示例中,操作系统134(1)提供操作系统134(1)和134(2)都使用的某一操作系统基础结构(如,设备驱动器、调度等),并且操作系统134(2)在它较佳地缺乏这一基础结构而相反使用操作系统134(1)的基础结构的意义上是“访客”。然而,应当注意,令操作系统为“主机”或“访客”的参数是灵活的。此外,应当注意,“主机”和“访客”操作系统的传统概念假定主机需要保护其本身免遭访客的行动影响。然而,在图2的示例中,假定访客操作系统134(2)是需要保护其本身免遭主机操作系统134(1)的行动的高保证操作系统。在以下的示例中,为在它们之间区别的目的,应当一般将操作系统134(1)称为“主机”,而操作系统134(2)称为“访客”或网络点。应当理解,本发明所描述的技术可应用到运行在同一机器上(或甚至在同一组连接的机器上)的任意两个或多个操作系统的交互。
向可信代理的安全输入和输出为向网络点和在网络点上运行的进程(“可信代理”或“网络点代理”)提供安全输入和输出,在网络点侧提供了可信用户接口(UI)引擎模块。可信UI引擎为可信代理的安全输入和输出功能提供了公共资源。
为向用户输入提供高保证,可信UI引擎接受可信用户输入。用户输入的安全性可通过加密输入来保护。在其它实施例中,用户输入的安全性通过诸如数字签名等其它核实手段来核实,或通过诸如安全可信硬件等其它装置来确保。可信UI引擎包括一可信输入管理器,它然后确定用户输入的正确目的地。在某些情况下,用户输入应当在主机侧使用。在这一情况下,用户输入将被放置在主机侧的输入栈中,用于主机操作系统。然而,在某些情况下,用户输入是高保证的,并由可信输入管理器定向到正确的目的地,如网络点代理。
为向输出提供高保证,可信UI引擎接受从代理和其它进程到可信输出管理器的可信输出。可信输出管理器接收这一可信输出,并基于计算机系统110向网络点提供可信输出的方式,以设备相关方式处理可信输出的显示。在一个实施例中,使用加密存储器来描述专用显示区域。该加密存储器被传递到主机侧。由于存储器被加密,主机侧无法解密该存储器,或创建用于专用显示区域的伪造内容。在另一实施例中,使用了屏蔽存储器连同用于该存储器的嵌入式视频适配器。可信输出管理器向网络点代理提供以设备不相关方式输出显示数据的能力。尽管一般将输出描述为视觉输出,应当理解,可信输出管理器的使用和本发明描述的技术可应用到任一类型的可信输出(如,音频、或其它输出),并且本发明不限于视觉输出。
可信UI引擎的安全输入功能对于输入,依照本发明的一个实施例,可信UI引擎控制对可信输入的访问。当用户与包含高保证操作系统的计算机系统上的程序交互时,用户通过用户输入设备,如(图1的)鼠标161或键盘162来完成这一交互。在一个实施例中,一些或所有用户输入设备可支持加密。这类加密的设备允许输入设备和网络点建立安全连接,并由此防止了硬件攻击。然而,可存在未加密的其它输入设备,仅接受来自非加密用户输入设备的输入用于主机系统,而不用于网络点或运行在网络点上的任何实体。
由此,为提供安全的输入,可信UI引擎,而非主机侧实体,将控制至少一个用户输入流的初始流程。图3是依照本发明的一个实施例示出输入的具有两个执行环境的计算机系统的框图。如图3所示,可信输入设备300向计算机系统100发送加密用户输入数据。加密的数据到达主机侧操作系统134(1)的输入栈305。由于它被加密,它不能被主机侧操作系统134(1)使用。由此,它对主机侧可能的攻击而言是安全的。加密数据被传递到网络点134(2)。
在图3中,主机侧(逻辑分隔202的右侧)和网络点侧(逻辑分隔202的左侧)都被进一步划分成用户级310和内核级320。这些对应于操作系统中用户级和内核级执行之间的区分。当网络点134(2)接受加密的用户输入数据时,它被传递到输入可信服务提供器(TSP)325,其中解密了加密的用户输入数据。在某些实施例中,安全输入设备300必须例如使用共享机密和核实建立通信信道,以与计算机系统110进行通信。当安全输入设备300需要通信信道时,TSP325建立并管理与安全输入设备的通信信道。在另一实施例中,用户输入数据是可核实的,并且TSP325例如通过核实用户输入数据的数字签名为用户输入数据提供核实。
解密的用户输入数据然后被传递到可信用户接口(UI)引擎(TUE)330,具体是到可信输入管理器340。由可信输入管理器确定用户输入是否应当被定向到主机侧,或是否供网络点或网络点代理,如网络点代理375使用。如果输入是定向到主机侧的,则它被恢复到输入栈305以在主机侧上使用,如箭头C390所示。由此,解密的用户输入数据只有在网络点侧进行确定后方到达主机侧。
在一个实施例中,计算机系统110向用户呈现一窗口接口环境,它用诸如窗口、对话框和图标等图形用户界面元素来填充。图形用户界面元素可与主机侧的进程关联或由其“拥有”,或与网络点侧的进程关联。当使用窗口系统时,可用窗口—屏幕上显示来自应用程序的信息的区域—来填充用户的显示屏。应用程序可具有一个或多个窗口。所显示的所有窗口的其中一个窗口可被聚焦。例如,聚焦窗口可由窗口周围与众不同的边框来指示。
在传统的窗口系统中,当窗口被聚焦时,它一般是用户输入的对象。因此,如果用户使用键盘键入信息,在许多情况下,按键数据由操作系统发送到拥有被聚焦的窗口的应用程序。某些按键和其它输入行动不被发送到拥有被聚焦的窗口的应用程序。例如,在某些窗口系统中,有将所有窗口最小化的按键命令。这类命令将由窗口系统处理,并且不发送到拥有被聚焦的窗口的应用程序。拥有被聚焦的窗口的应用程序可接收最小化窗口的通知;然而,该用户按键供窗口系统使用,而非拥有被聚焦的窗口的应用程序,并且不被发送到该应用程序。
在一个实施例中,可信UI引擎包括可信窗口管理器345。可信窗口管理器345为网络点侧管理窗口和窗口行为。可信窗口管理器345与可信输入管理器340一起行动来确定应当将用户输入传递到何处。在一个实施例中,该判定至少部分地基于被聚焦的窗口或图形用户元素是由网络点中的进程还是主机中的进程拥有。
可信窗口管理器可维护窗口装饰,如边框,并响应窗口功能的用户输入,如最大化、最小化窗口和调整窗口大小。在一个实施例中,可信窗口管理器也执行用户输入数据的部分解释。例如,在一个实施例中,描述鼠标按钮已被压下或已作出按键的原始用户输入数据将被解释成对网络点代理,如网络点代理375更可用的形式,类似于一般由主机窗口管理器346所执行的功能。
如果输入是用于诸如网络点代理375等网络点代理的,则该数据将被从可信输入管理器传递到正确的目的地网络点模式进程。这可由箭头A370示出,它示出了用户输入数据被发送到网络点代理375。在一个实施例中,其它数据可被传递到TOM 350或网络点侧的其它实体。网络点侧图形用户界面元素的显示由可信输出管理器(TOM)350处理,并且因此鼠标在网络点侧用户界面元素上的移动被传递到TOM 350,如箭头B380所示。
图4是依照本发明的一个实施例提供来自安全执行环境(网络点)的实体的安全输入的方法的流程图。在步骤400,从用户输入设备接受用户输入。在步骤410,确定该用户输入是否供网络点使用,例如是否用于运行在网络点内的代理。在步骤420,如果用户输入不供网络点使用,则将用户输入传输到主机。
可信UI引擎的安全输出功能可信输出引擎的安全输出功能由可信UI引擎330通过可信输出管理器350提供。图5是依照本发明的一个实施例示出输出的具有两个执行环境的计算机系统的框图。如图5所示,当网络点代理375对输出设备520有输出时,箭头D500表示该输入被中继到可信UI引擎330。为向输出提供安全性,可信输出管理器340为网络点侧担当与输出可信服务提供器(TSP)530的联系点,并由此是与输出设备520的联系点,如由箭头E510所见到的。
如上所述,有可在其中保护输出设备520的若干种方式。在一个实施例中,使用了加密。如果输出设备520接收被正确解密的加密形式的输出数据,它将区分输出数据的优先级,允许它重写显示屏上的非网络点输出数据。在另一实施例中,使用了屏蔽存储器。可信输出管理器350与输出TSP530交互以维护输出设备520的安全性。
与输出中存在的安全类型无关,可信输出管理器350管理网络点侧和输出设备520之间的所有交互,包括处理来自结合了可信窗口管理器345的计算机系统110中可信窗口管理器345的任何输出信息。来自网络点代理,如网络点代理375所拥有的窗口的输出信息由可信输出管理器350处理。另外,如果存在任何其它网络点图形用户界面元素,则这些元素的显示由可信输出管理器处理。例如,当鼠标在这一网络点窗口上移动时,在不引发安全问题的情况下允许主机侧控制鼠标是很难的。因此,当鼠标在网络点窗口上时,鼠标光标的显示可在网络点侧处理。所有网络点窗口和其它网络点图形用户界面元素的输出信息由可信输出管理器合成用于显示。另外,与主机窗口管理器346的任何交互由可信UI引擎330处理。
可信UI引擎的安全输出功能性一般而言,可向进程提供对话框架服务。这些服务接受一描述所要显示的期望的图形用户界面元素的文件。例如,该文件可以是具有描述要向用户呈现的对话框的信息的XML文件,包括指定的问题、回答选项以及呈现该对话框所使用的语言。对话框架服务包含呈现正确的对话框的信息。然而,对主机侧的对话框架服务的依赖将引入安全问题。因此,在一个实施例中,在可信UI引擎330中提供了可信呈现接口。该可信呈现接口为网络点代理,如网络点代理375提供了完整的对话框架服务。作为可信UI引擎330的一部分,可信呈现接口接收指定图形用户界面元素如何用于显示的信息,并且可信呈现接口呈现请求的图形用户界面并管理它,当用户事件出现在其中的活动图形用户界面元素上时,向网络点代理375示警。以这一方式,可信UI引擎330提供网络点代理375需要用于图形用户界面的某些本地化服务,而不需要使用主机侧的本地化服务。例如,可信UI引擎330可提供多语言的文本服务。
在一个实施例中,在可信UI引擎330中提供了直接呈现接口。该直接呈现接口可附加在可信呈现接口上提供,或可在即使可信呈现接口不存在时存在。直接呈现接口为希望执行其自己的呈现的网络点代理,如网络点代理375提供基本要素机制。网络点代理375将计算其自己的屏幕位图,而非依赖于可信UI引擎330根据规范来呈现它们。可信UI引擎通过可信输入管理器340发送用户输入行动的通知。
图6是依照本发明的一个实施例提供来自安全执行环境的实体的安全输出的方法的流程图。在步骤600,从安全执行环境中的具体源实体,如网络点接受输出。在步骤610,将该输出安全地传输到输出设备。
总结注意,以上示例仅为解释目的提供,并且不应当被解释为对本发明的限制。尽管参考各种实施例描述了本发明,可以理解,此处所使用的词语是描述和说明的词语,而非限制的词语。此外,尽管此处结合具体的方法、材料和实施例描述了本发明,本发明并不意味着限制此处所揭示的特性;相反,本发明延及所有功能上等效的结构、方法和使用,如处于所附权利要求书范围内的。从本说明书的教导获益的本领域的技术人员可在不脱离本发明的各方面的范围和精神的情况下作出许多修改和变化。
权利要求
1.一种向包括安全执行环境和第二执行环境的系统上的所述安全执行环境提供安全用户接口的方法,其特征在于,所述方法包括接受来自用户输入设备的用户输入;确定所述用户输入是否供所述安全执行环境使用;如果所述用户输入不是供所述安全执行环境使用,则将所述用户输入传输到所述第二执行环境。
2.如权利要求1所述的方法,其特征在于,接受来自用户输入设备的用户输入的所述步骤包括解密所述用户输入。
3.如权利要求1所述的方法,其特征在于,接受来自用户输入设备的用户输入的所述步骤包括建立与所述用户输入的安全通信信道。
4.如权利要求1所述的方法,其特征在于,接受来自用户输入设备的用户输入的所述步骤包括核实所述用户输入。
5.如权利要求1所述的方法,其特征在于,它还包括如果所述用户输入供所述安全执行环境使用,则为所述用户输入确定所述安全执行环境中一具体目的地实体;以及将所述用户输入传输到所述具体目的地实体。
6.如权利要求5所述的方法,其特征在于,确定所述安全执行环境中一具体目的地实体的所述步骤还包括提供用于管理所述具体目的地实体所拥有的至少一个图形用户界面元素的窗口管理功能;以及确定所述用户输入涉及所述图形用户界面元素。
7.如权利要求5所述的方法,其特征在于,将所述用户输入传输到所述具体目的地实体的所述步骤包括解释所述用户输入。
8.如权利要求1所述的方法,其特征在于,它还包括接受来自所述安全执行环境中一具体源实体的输出;以及将所述输出安全地传输到输出设备。
9.如权利要求8所述的方法,其特征在于,将所述输出安全地传输到所述输出设备的所述步骤包括加密所述输出数据。
10.如权利要求8所述的方法,其特征在于,将所述输出安全地传输到所述输出设备的所述步骤包括将所述输出传输到屏蔽存储器。
11.一种向包括安全执行环境和第二执行环境的系统上的所述安全执行环境提供安全用户接口的方法,其特征在于,所述方法包括接受来自所述安全执行环境中的一具体源实体的输出;以及将所述输出安全地传输到输出设备。
12.如权利要求11所述的方法,其特征在于,将所述输出安全地传输到所述输出设备的所述步骤包括加密所述输出数据。
13.如权利要求11所述的方法,其特征在于,将所述输出安全地传输到所述输出设备的所述步骤包括将所述输出传输到屏蔽存储器。
14.一种包含计算机可执行指令的计算机可读媒质,所述计算机指令向包括安全执行环境和第二执行环境的系统上的所述安全执行环境提供安全用户接口,其特征在于,所述计算机可执行指令执行以下行动接受来自用户输入设备的用户输入;确定所述用户输入是否供所述安全执行环境使用;如果所述用户输入不是供所述安全执行环境使用,则将所述用户输入传输到所述第二执行环境。
15.如权利要求14所述的计算机可读媒质,其特征在于,所述接受来自用户输入设备的用户输入包括解密所述用户输入。
16.如权利要求14所述的计算机可读媒质,其特征在于,所述接受来自用户输入设备的用户输入包括建立与所述用户输入的安全通信信道。
17.如权利要求14所述的计算机可读媒质,其特征在于,所述接受来自用户输入设备的用户输入包括建立与所述用户输入的安全通信信道。
18.如权利要求14所述的计算机可读媒质,其特征在于,所述计算机可执行指令还适于执行以下行动如果所述用户输入是供所述安全执行环境使用,则为所述用户输入确定所述安全执行环境中的一具体目的地实体;以及将所述用户输入传输到所述具体目的地实体。
19.如权利要求18所述的计算机可读媒质,其特征在于,确定所述安全执行环境中的一具体目的地实体还包括提供用于管理所述具体目的地实体拥有的至少一个图形用户界面元素的窗口管理功能;以及确定所述用户输入涉及所述图形用户界面元素。
20.如权利要求18所述的计算机可读媒质,其特征在于,将所述用户输入传输到所述具体目的地实体包括解释所述用户输入。
21.如权利要求14所述的计算机可读媒质,其特征在于,所述计算机可执行指令还适于执行以下行动接受来自所述安全执行环境的一具体源实体的输出;以及将所述输出安全地传输到输出设备。
22.如权利要求21所述的计算机可读媒质,其特征在于,将所述输出安全地传输到所述输出设备包括加密所述输出数据。
23.如权利要求21所述的计算机可读媒质,其特征在于,将所述输出安全地传输到所述输出设备包括将所述输出传输到屏蔽存储器。
24.一种包含计算机可执行指令的计算机可读媒质,所述计算机可执行指令向包括安全执行环境和第二执行环境的系统上的所述安全执行环境提供安全用户接口,其特征在于,所述计算机可执行指令执行以下行动接受来自所述安全执行环境的一具体源实体的输出;以及将所述输出安全地传输到输出设备。
25.如权利要求24所述的计算机可读媒质,其特征在于,将所述输出安全地传输到所述输出设备的所述步骤包括加密所述数据。
26.如权利要求24所述的计算机可读媒质,其特征在于,将所述输出安全地传输到所述输出设备的所述步骤包括将所述输出传输到屏蔽存储器。
27.一种用于向包括安全执行环境和第二执行环境的系统上的所述安全执行环境提供安全用户接口的可信用户接口引擎,其特征在于,它包括一输入可信服务提供器,接受来自用户输入设备的用户输入,可操作地连接至所述用户设备;一可信输入管理器,用于确定所述用户输入是否供所述安全执行环境使用,并且如果所述用户输入不是供所述安全执行环境使用,则将所述用户输入传输到所述第二执行环境。
28.如权利要求27所述的可信用户接口引擎,其特征在于,所述输入可信服务提供器解密所述用户输入。
29.如权利要求27所述的可信用户接口引擎,其特征在于,所述输入可信服务提供器建立与所述用户输入的安全通信信道。
30.如权利要求27所述的可信用户接口引擎,其特征在于,所述输入可信服务提供器核实所述用户输入。
31.如权利要求27所述的可信用户接口引擎,其特征在于,如果所述用户输入供所述安全执行环境使用,则所述可信输入管理器为所述用户输入确定所述安全执行环境中的一具体目的地实体;并且其中,所述可信输入管理器还将所述用户输入传输到所述具体的目的地实体。
32.如权利要求31所述的可信用户接口引擎,其特征在于,它还包括一可信窗口管理器,它提供用于管理所述具体目的地实体拥有的至少一个图形用户界面元素的窗口管理功能;并且其中,所述可信输入管理器确定所述用户输入涉及所述图形用户界面元素。
33.如权利要求31所述的可信用户接口引擎,其特征在于,所述可信输入管理器解释所述用户输入用户所述具体目的地实体。
34.如权利要求27所述的可信用户接口引擎,其特征在于,它还包括一可信输出管理器,它接受来自所述安全执行环境中的一具体源实体的输出;并且将所述输出安全地传输到输出设备。
35.如权利要求34所述的可信用户接口引擎,其特征在于,所述可信输出管理器加密所述输出数据。
36.如权利要求34所述的可信用户接口引擎,其特征在于,所述可信输出管理器将所述输出传输到屏蔽存储器。
37.一种用于向包括安全执行环境和第二执行环境的系统上的所述安全执行环境提供安全用户接口的可信用户接口引擎,其特征在于,它包括一可信输出管理器,它接受来自所述安全执行环境中的一具体源实体的输出;并将所述输出安全地传输到输出设备。
38.如权利要求37所述的可信用户接口引擎,其特征在于,所述可信输出管理器加密所述输出数据。
39.如权利要求37所述的可信用户接口引擎,其特征在于,所述可信输出管理器将所述输出传输到屏蔽存储器。
40.如权利要求37所述的可信用户接口引擎,其特征在于,所述可信输出管理器包括一可信呈现接口,它提供呈现来自所述具体源实体的输出;并且其中,所述安全传输是所述呈现输出的传输。
全文摘要
揭示了为用户输出和输入提供安全性的技术,其中,第一、主机操作系统连同第二、高保证操作系统(网络点)一起使用,其中,第一系统为第二系统至少提供某些基础结构。可信UI引擎具有一可信输入管理器和一可信输出管理器。可信输入管理器控制对可信输入的访问,在适当时向主机操作系统分发加密的输入,或向运行在网络点中的适当的进程提供。可信输出管理器管理向显示屏的输出,并允许网络点中的可信代理示出数据用于显示,而不需要知道输出设备相关细节。
文档编号G06F21/00GK1609810SQ200410088278
公开日2005年4月27日 申请日期2004年10月22日 优先权日2003年10月24日
发明者B·M·威廉, C·M·丘, K·D·雷, P·C·罗伯茨 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1