CN101238471B - 用于提供对音频i/o设备的独占安全访问的方法和系统 - Google Patents
用于提供对音频i/o设备的独占安全访问的方法和系统 Download PDFInfo
- Publication number
- CN101238471B CN101238471B CN2006800289373A CN200680028937A CN101238471B CN 101238471 B CN101238471 B CN 101238471B CN 2006800289373 A CN2006800289373 A CN 2006800289373A CN 200680028937 A CN200680028937 A CN 200680028937A CN 101238471 B CN101238471 B CN 101238471B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- audio
- virtual
- device model
- platform
- 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
Links
- 238000000034 method Methods 0.000 title claims description 45
- 230000006870 function Effects 0.000 claims description 17
- 238000004891 communication Methods 0.000 claims description 10
- 238000012544 monitoring process Methods 0.000 claims description 5
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 claims description 3
- 238000005192 partition Methods 0.000 abstract description 8
- 238000013507 mapping Methods 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 11
- 238000013461 design Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 238000007792 addition Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000005352 clarification Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/106—Enforcing content protection by specific content processing
- G06F21/1064—Restricting content processing at operating system level
Abstract
在平台上执行监控器,该监控器能够提供对平台的音频I/O设备的独占、安全访问,在平台上执行第一分区,通过将音频I/O设备从监控器直接映射到第一分区,来为在第一分区中执行的应用程序提供音频设备模型;以及向第一分区中以安全模式执行音频功能的程序提供对音频I/O设备的独占、安全访问。
Description
技术领域
本发明一般涉及虚拟机,特别是涉及用于提供对音频I/O设备的独占安全访问的方法和系统。
背景技术
使用诸如Pentium 4处理器等处理器的基于处理器的系统可能是个人计算机、服务器计算机、工作站、个人桌面助理(PDA)、游戏系统、机顶盒或者智能移动电话等。这种系统(或者在本文中称作平台)可包括一个或多个音频输入和输出设备。这些设备例如可包括:板载音频卡或声卡,连接到诸如PCI ExpressTM总线等系统总线;外部设备,通过诸如通用串行总线(USB)连接到系统;乃至通过数据网络远程连接的设备,采用可能通过网络电缆或无线的无线电或红外链路的网络连接将系统的音频输入数据和输出数据导向该数据网络。这种设备例如可提供通过一个或多个模拟或数字输出声道、以各种格式诸如线路电平模拟音频、SP/DIF数字音频、如Dolby比特流等数字比特流编码环绕声以及已知的许多其它格式来输出由在平台上执行的程序所产生或处理的声音的能力。类似地,作为备选或附加的方案,设备可提供模拟或数字格式的音频输入能力,从而允许例如来自扩音器、线路电平模拟音频源或者具有各种格式的编码音频流的数字比特流的输入。这种音频输入数据然后可由系统的程序来接收、处理、分析和存储,以便执行各种功能。
在一个实例中,基于处理器的系统的这类音频能力允许将平台用于通过采用网络电话(VOIP)的网络的语音通信。通过在因特网或其它网络上发送语音数据之前对它进行加密,诸如Skype和PGPhone之类的应用解决与通过VOIP所进行的通话的安全性和保密性相关的问题。但是,以未加密格式对语音或其它通信进行编码的数据一般在它被接收或者被发送到的平台上仍然是可用的。其原因在于,在输入语音或消息音频时的初始阶段以及在输出语音或消息音频时的最终阶段,一般需要由音频设备对未加密数字音频数据的缓冲器进行直接存储器存取。这可能允许平台上的恶意进程访问未加密的音频数据。通过在缓冲音频之前在硬件中对其进行加密,有可能避免这个问题,但是这类解决方案需要安装新的音频硬件。此外,即使音频数据无论何时都以数字形式进行加密,但是,如果模拟音频从平台设备输出到周围环境或者从周围环境输入平台设备,那么恶意进程可静静地利用处于输入模式的平台音频设备、如扩音器,以记录来自周围环境的音频数据(如果该记录是可能的)。
发明内容
本发明涉及一种访问音频输入输出(I/O)设备的方法,所述方法包括:
在平台上执行监控器,所述监控器能够提供对所述平台的音频I/O设备的独占、安全访问;
在所述平台上执行第一虚拟机;
通过将所述音频I/O设备从所述监控器直接映射到所述第一虚拟机,来为在所述第一虚拟机中执行的应用程序提供音频设备模型;以及
向在所述第一虚拟机中以安全模式执行音频功能的程序提供对所述音频I/O设备的独占、安全访问;
如果第一虚拟机中的所述程序正以安全模式执行,则阻止不安全的音频I/O程序执行相关的输入音频功能;以及
当不安全的音频I/O程序和第一虚拟机中的所述程序试图对音频设备进行只输出访问时,把来自第一虚拟机中的音频设备模型的输出数据与来自第二虚拟机中的虚拟音频设备模型的输出数据进行相加。
本发明还涉及一种访问音频输入输出(I/O)设备的系统,所述系统包括:
平台,包括处理器和存储器;
监控器,驻留在所述存储器中并且可在所述平台上执行,能够提供对所述平台的音频I/O设备的独占、安全访问;
第一虚拟机,可在所述平台上执行;
所述第一虚拟机中的音频设备模型,对在所述第一虚拟机中执行的应用程序,将所述音频I/O设备从所述监控器直接映射到所述第一虚拟机;以及
在所述第一虚拟机中以安全模式执行音频功能的程序,
其中,如果第一虚拟机中的所述程序正以安全模式执行,则所述监控器阻止不安全的音频I/O程序执行相关的输入音频功能,并且其中,当不安全的音频I/O程序和第一虚拟机中的所述程序试图对音频I/O设备进行只输出访问时,所述监控器还允许把来自第一虚拟机中的音频设备模型的输出数据与来自第二虚拟机中的虚拟音频设备模型的输出数据进行相加。
本发明还涉及一种访问音频输入输出(I/O)设备的方法,所述方法包括以下步骤:
在平台上执行监控器,所述监控器能够提供对所述平台的音频输入输出(I/O)设备的独占、安全访问;
在所述平台上执行第一虚拟机;
在所述平台上执行第二虚拟机;
通过将所述音频I/O设备从所述监控器直接映射到所述第一虚拟机,来为在所述第一虚拟机中执行的应用程序提供音频设备模型;
通过将所述音频设备模型从所述第一虚拟机再映射到所述第二虚拟机中的虚拟音频设备,来为在所述第二虚拟机中执行的应用程序提供虚拟音频设备模型;
向在所述第一虚拟机中以安全模式执行音频功能的程序提供对所述音频I/O设备的独占、安全访问;
如果第一虚拟机中的程序正经由音频设备模型以安全模式访问平台的音频设备,则所述第一虚拟机中的程序通过阻挡、掩蔽或模拟所述虚拟音频设备模型的断开连接,来阻挡从第二虚拟机对所述音频设备的访问,
其中所述第一虚拟机是安全虚拟机,并且其中所述第二虚拟机是不安全虚拟机。
附图说明
图1是一个实施例中的虚拟环境的高级框图。
图2是一个实施例中的主要组件的高级框图。
图3表示一个实施例中的组合虚拟和实际适配器的输出数据。
图4是一个实施例的操作的高级流程图。
具体实施方式
一些实施例可包括虚拟化系统。虚拟化是一种技术,它使具有通过硬件和软件或者在一些情况下仅通过软件对虚拟化的支持的基于处理器的主机能够提供主机的抽象,使得主机的基础硬件表现为一个或多个独立操作的虚拟机。因此,各虚拟机可用作独立平台。通常,虚拟化技术用于使多个客户(guest)操作系统和/或其它客户软件(guestsoftware)共存,并且明显同时且明显独立地在多个虚拟机上执行,然而实际是在物理上于相同硬件平台上执行。虚拟机可模仿主机的硬件或者提供完全不同的硬件抽象。
虚拟化系统为虚拟机中运行的客户软件提供一组资源(例如,处理器、存储器、IO设备),并且可将物理主机的一部分或全部组件映射到虚拟机中,或者创建全虚拟组件。因此,虚拟化系统可以说是向客户软件提供虚拟裸机接口。在一些实施例中,虚拟化系统可包括控制主机的虚拟机监控器(VMM)。VMM为在虚拟机(VM)中运行的客户软件提供一组资源,例如处理器、存储器和IO设备。VMM可将物理主机的部分或全部组件映射到虚拟机中,并且可创建以VMM中的软件模拟的完全虚拟组件,它们包含在虚拟机中(例如虚拟IO设备)。VMM采用硬件虚拟化体系结构中的工具来向虚拟机提供服务以及提供对执行于主机上的多个虚拟机以及它们之间的保护。一般来说,VMM运行的存储空间是由VMM提供服务的虚拟机的任何一个不可访问的主物理存储器的一部分。
图1图解说明了虚拟机环境100的一个实施例。在这个实施例中,基于处理器的平台116可执行VMM 112。VMM虽然通常以软件实现,但可模拟虚拟裸机接口并将其输出到较高层软件。这种较高层软件可包括标准OS、实时OS,或者可能是具有有限操作系统功能性的分离(srtip down)环境,以及在一些实施例中可能不包括标准OS中通常可用的OS工具。作为备选的方案,例如,VMM 112可在另一个VMM之中或者采用VMM的服务来运行。在一些实施例中,VMM可通过例如硬件、软件、固件或者通过各种技术的结合来实现。
平台硬件116可能是个人计算机(PC)、大型计算机、诸如个人数字助理(PDA)或“智能”移动电话等的手持设备、便携计算机、机顶盒或其它基于处理器的系统。平台硬件116包括至少一个处理器118和存储器120。处理器118可能是能够运行程序的任何类型的处理器,例如微处理器、数字信号处理器、微控制器等。在实施例中,处理器可包括用于执行的微码、可编程逻辑或硬编码逻辑。虽然图1仅示出一个这样的处理器118,但是,在一实施例中,系统中可能存在一个或多个处理器。另外,处理器118可包括多个核心,支持多个线程等。在各个实施例中,存储器120可包括硬盘、软盘、随机存取存储器(RAM)、只读存储器(ROM)、闪速存储器、上述设备的任何组合、或者处理器118可读的其它任何类型的机器介质。存储器120可存储用于进行程序执行和其它方法实施例的指令和/或数据。
VMM 112为客户软件提供一个或多个虚拟机的抽象,它可向各种客户提供相同或不同的抽象。图1示出两个虚拟机102和114。在各虚拟机上运行的客户软件、如客户软件101和111可包括诸如客户OS 104或106等客户OS以及各种客户软件应用程序108和110。客户软件101和111可访问虚拟机中的物理资源(例如处理器寄存器、存储器和I/O设备),客户软件101和111正在虚拟机中运行并执行其它功能。例如,根据虚拟机102和114中提供的处理器和平台的体系结构,客户软件101和111预期有权访问所有寄存器、高速缓存、结构、I/O设备、存储器等。
在一个实施例中,处理器118根据虚拟机控制结构(VMCS)124中存储的数据来控制虚拟机102和114的操作。VMCS 124是一种结构,可包含客户软件101和111的状态、VMM 112的状态、表明VMM112希望如何控制客户软件101和111的操作的运行控制信息、控制VMM 112与虚拟机之间的转变的信息等。处理器118从VMCS 124中读取信息,以便确定虚拟机的执行环境并限制其行为。在一个实施例中,VMCS 124存储在存储器120中。在一些实施例中,多个VMCS结构用来支持多个虚拟机。
可由客户软件(例如101,包括客户OS 104和应用程序108)访问的资源可分类为“特许”或者“非特许”。对于特许资源,VMM 112有助于实现客户软件所需的功能性,同时保持对这些特许资源的最终控制。此外,各客户软件101和111预期将处理诸如异常(例如页面出错、一般保护出错等)、中断(例如硬件中断、软件中断)以及平台事件(例如初始化(INIT)和系统管理中断(SMI))之类的各种平台事件。这些平台事件的一部分是“特许的”,因为它们必须由VMM 112来处理,以便确保虚拟机102和114的正确操作,以及用于对客户软件以及客户软件之间的保护。客户操作系统以及客户应用程序均可尝试访问特许资源,并且均可引起或遇到特许事件。特许平台事件以及对特许资源的访问尝试在本文中统称为“特许事件”或“虚拟化事件”。
图2示出一个实施例中的系统的高级视图。图中所示的平台具有对于独占访问可能或者可能不安全的诸如一般、共享硬件设备265等一组硬件设备,例如图形或显示设备、诸如键盘、打印机等输入和输出设备以及诸如USB总线等总线上的其它设备。它还可能具有可由安全VMM(SVMM)240确保安全的一组设备,如音频I/O设备275以及可能的其它设备270。在这个实施例中,通过监测对设备的访问以及在发生对设备缓冲器的直接存储器存取(DMA)或者对设备的其它访问时在支持虚拟化的硬件中建立中断,然后根据所尝试访问的源来处理中断,VMM可保障对设备的访问。因此,例如,如果安全VM 235和另一个(不安全)VM 220在SVMM 240的监控下正在平台上执行,则在进程正执行于不安全VM 220时,SVMM可禁止该进程对音频设备275的任何访问。此外,在这个实施例中,SVMM代码和数据驻留在执行于主机上的VM不可访问的主机的物理存储器的一部分中。这可通过诸如存储器分区或存储器再映射等技术来实现。
在所示实施例中,通过由SVMM 240向安全VM 235提供的对音频硬件275的直接映射,平台的音频设备的设备驱动器225仅在安全VM 235中才是可用的。在安全VM 235中执行的进程205则经由安全VM 235中的音频设备模型210来访问音频硬件。但是,虽然音频数据也对执行于另一个不安全VM的进程215可用,但它仅经由作为安全VM中的“实际”音频设备模型210的映射的虚拟音频设备模型230才可用于那个进程。因此,安全VM 205中的应用程序可禁用虚拟设备音频模型230。
类似地,其它硬件设备270可独占地映射260到安全VMM 235。另一方面,不安全设备可直接映射250到不安全VM 220和安全VM235,并且对它们的访问可保持不受限制。
可参照两种情况来理解安全音频实施例的操作。第一种情况是当不安全音频应用程序、如图2中的应用程序215在安全音频应用程序205可能也在将音频设备用于输出的同时试图对音频设备275进行只输出访问时的实施例的操作。由于一般来说,问题在于恶意进程可能在偷听安全或私人通话,因此,在该实施例中,甚至对于不安全程序,一般也自由地允许对音频进行只输出访问。因此,在这种情况下,音频设备模型210和虚拟音频设备模型230的输出通过求和或类似方法进行结合,并通过一个或多个音频设备275以组合方式输出。
第二种情况是当不安全VM中的程序、即不安全音频应用程序215试图访问其音频接口、即虚拟音频设备模型以便输入时的实施例的操作。如果安全VM或安全音频应用程序205中的程序正经由音频设备模型210以安全模式访问平台的音频设备,则它可能通过阻挡、掩蔽或模拟虚拟音频设备的断开连接,来阻挡从不安全VM对一个或多个音频设备275的访问。这一般在安全音频应用程序正产生音频输出数据时的情况下或者在它处于音频输入模式时的情况下进行,因为不安全VM中的恶意进程可能能够偷听安全音频应用程序的输出或者正输入到安全应用程序的环境声音、如扬声器的语音。
经由SVMM可用的其它安全平台特征可包括防止系统存储器或者它的若干部分受到绕过处理器的直接存取的能力,以及对系统存储器的区域设置读、写或执行限制的能力。
图3示出当不安全音频应用程序试图对音频设备进行只输出访问时的实施例的操作。该图是平台的音频输出数据的图表,绘制出相对于时间360的幅度310。该图示出在平台的音频输出上得到的输出波形330。通过将访问安全VM中的音频设备模型的安全VM中的应用程序的音频输出350与访问不安全VM中的虚拟设备模型的不安全VM中的应用程序的音频输出340相加,来得到波形330。
图4在高层次上示出当不安全音频应用程序在420试图对音频设备进行输入访问时的实施例的操作。如果安全VM中的任何程序以输入模式连接到平台的音频设备,430,或者以输出模式连接到平台的音频设备,450,则SVMM可捕获(trap)该访问。虚拟音频设备模型然后被禁用,440。否则,可向不安全分区中的程序提供对音频设备的访问,460。
440中的动作可通过各种方式来进行。首先,虚拟设备可能只设置在一种模式中,在其中,它在安全程序实际上连接到平台音频时向所连接的不安全程序发送空数据。其次,可通过适度地处理不安全VM的访问程序中可能发生的任何所得误差来阻挡虚拟设备。一个备选方法是将虚拟音频设备建模为可热插拔(hot-pluggable)设备。访问可热插拔设备的应用程序一般设计成适度地处理它的断开连接。因此,在这种情况下进行440中的动作时,虚拟设备模型模拟设备的热拔(hot-unplug)事件,从而使平台音频设备对不安全虚拟机中的应用程序不可用。
在一些实施例中,平台可能具有与其连接的不安全以及安全的音频设备。在这类情况下,监控器知道各设备的状态。当安全设备由音频应用程序以安全模式访问时,在这类情况下,监控器禁用连接到平台的所有不安全音频设备。因此,例如,如果除了诸如声卡之类的安全音频设备之外还有诸如webcam、MP3播放器或者任何类型的数字记录器之类的不安全音频设备连接到USB总线,则SVMM可禁用USB总线或者总线上的属于不安全音频设备的特定设备。如前所述,这可通过阻挡、空流动(null streaming)或掩蔽或者通过模拟断开连接事件来进行。
可对以上所述实施例进行许多变更。一种更简单的方案,其中不要求全虚拟化的原始监控器(monitor)和分区方案足以实现安全音频应用程序与其它音频应用程序的分隔的类型。分区可通过操作系统或诸如BIOS之类的其它系统或者作为监控器进行操作的其它低级固件或软件来实现。因此,一般来说,在一些实施例中,安全音频应用程序可能只是在不同的分区中执行,而没有专用于它的独立虚拟机。提供对音频I/O设备的访问的许多方法是本领域已知的。许多不同类型的设备驱动器以及驱动器的接口可用于安全和不安全分区中所使用的两种音频模型。这两种模型可能相同或者可能不相同。此外,禁用和启用不安全分区中的音频访问的机制可能有所不同。诸如提供空数据流、阻挡和模拟热拔之类的机制只是解释性的,而许多其它实施例也是可行的。禁用和启用的控制可驻留在监控器中或者驻留在安全分区或VM中或者驻留在它们两者中。在其它实施例中,可能存在由安全分区独占访问的其它设备,而在另外的实施例中则不存在。
为了便于说明,以上描述中阐述了大量具体细节,以便透彻地理解所述实施例,但是,本领域的技术人员会理解,即使没有这些具体细节也可实施其它许多实施例。
以上详细说明的某些部分根据对基于处理器的系统中的数据位的操作的算法和符号表示来提供。这些算法描述和表示是本领域的技术人员用来向本领域的其它技术人员最有效地传达其工作主旨的方式。操作是要求物理量的物理处理的那些操作。这些数量可采取能够被存储、传递、组合、比较以及以其它方式处理的电、磁或其它物理信号的形式。主要为了一般使用的原因,将这些信号称作位、值、元素、符号、字符、项、编号等,已经证明有时非常便利。
但是应当记住,所有这些及类似的项均与适当的物理量相关联,并且只是应用于这些量上的便捷标签。除非明确说明,否则从描述中清楚地知道,诸如“执行”或“处理”或“计算”或者“确定”等术语可表示基于处理器的系统或类似电子计算设备的动作和过程,其中所述基于处理器的系统或类似电子计算设备处理表示为基于处理器的系统的存储设备或者其它这种信息存储、传送或显示设备中的物理量的数据,并将其转换为以类似方式表示的的其它数据。
在实施例的描述中,参照了附图。附图中,相同的标号在若干视图中描述基本上相同的组件。可采用其它实施例,并且可进行结构、逻辑和电气变更。此外,要理解,各种实施例虽然有所不同,但不一定相互排斥。例如,在一个实施例中描述的特定功能、结构或特性可包含在其它实施例中。
此外,在处理器中实现的一个实施例的设计可能经过从创建到模拟直到制造的各种阶段。表示设计的数据可通过多种方式来表示设计。首先,如在模拟中可用的那样,硬件可采用硬件描述语言或者其它功能描述语言来表示。另外,采用逻辑和/或晶体管门电路(gate)的电路级模型可在设计过程的某些阶段产生。此外,在某个阶段,大部分设计达到表示硬件模型中的各种设备的物理设置的数据级。在采用传统半导体制造技术的情况下,表示硬件模型的数据可能是指定用于生产集成电路的掩模的不同掩模层上的各种特征存在或不存在的数据。在设计的任何表示中,数据可存储在任何形式的机器可读介质中。经调制或者以其它方式产生以便传送这种信息的光或电波、存储器或者磁或光存储设备、如磁盘或光盘可能是机器可读介质。这些介质的任一种可“携带”或“表明”设计或软件信息。在传送表明或者携带代码或设计的电载波以便执行电信号的复制、缓冲或重传时,制作新的副本。因此,通信提供商或网络提供商可制作构成或表示实施例的产品(载波)的副本。
实施例可作为程序产品来提供,它可包括其中存储了数据的机器可读介质,这些数据在由机器访问时可使机器执行根据所要求的主题的过程。机器可读介质可包括但不限于软盘、光盘、DVD-ROM盘、DVD-RAM盘、DVD-RW盘、DVD+RW盘、CD-R盘、CD-RW盘、CD-ROM盘以及磁光盘、ROM、RAM、EPROM、EEPROM、磁卡或光卡、闪速存储器或者适合于存储电子指令的其它类型的媒体/机器可读介质。此外,实施例还可作为程序产品下载,其中程序可通过载波或其它传播介质中包含的数据信号、经由通信链路(例如调制解调器或网络连接)从远程数据源传送到请求设备。
以最基本的形式对许多方法进行了描述,但可以在不背离要求其权益的主题的基本范围的前提下对方法的任何一个添加或删除步骤,或者对所述消息的任何一个添加或减少信息。本领域的技术人员非常清楚,可进行其它许多修改和改变。具体实施例不是用于限制所要求的主题,而是用于对它进行说明。所要求的主题的范围不是由以上提供的具体实例来确定,而是仅由以下权利要求书来确定。
Claims (25)
1.一种访问音频输入输出设备的方法,所述方法包括:
在平台上执行监控器,所述监控器能够提供对所述平台的音频输入输出设备的独占、安全访问;
在所述平台上执行第一虚拟机;
通过将所述音频输入输出设备从所述监控器直接映射到所述第一虚拟机,来为在所述第一虚拟机中执行的应用程序提供音频设备模型;以及
向在所述第一虚拟机中以安全模式执行音频功能的程序提供对所述音频输入输出设备的独占、安全访问;
如果第一虚拟机中的所述程序正以安全模式执行,则阻止不安全的音频输入输出程序执行相关的输入音频功能;以及
当不安全的音频输入输出程序和第一虚拟机中的所述程序试图对音频设备进行只输出访问时,把来自第一虚拟机中的音频设备模型的输出数据与来自第二虚拟机中的虚拟音频设备模型的输出数据进行相加。
2.如权利要求1所述的方法,其特征在于,还包括
在所述平台上执行第二虚拟机;以及
通过将所述音频设备模型从所述第一虚拟机再映射到所述第二虚拟机,来在所述第二虚拟机中提供虚拟音频设备模型;
其中,为在所述第一虚拟机中执行的所述程序提供对所述音频输入输出设备的独占访问的步骤还包括禁用所述虚拟音频设备模型。
3.如权利要求2所述的方法,其特征在于,禁用所述虚拟音频设备模型的步骤还包括为访问所述虚拟音频设备模型的应用程序提供空数据流。
4.如权利要求2所述的方法,其特征在于,禁用所述虚拟音频设备模型的步骤还包括阻挡由应用程序对所述虚拟音频设备模型的访问。
5.如权利要求2所述的方法,其特征在于,所述虚拟音频设备模型包括热可插拔设备的模型,以及禁用所述虚拟音频设备模型的步骤还包括模拟所述虚拟音频设备模型的热拔事件。
6.如权利要求2所述的方法,其特征在于
所述监控器包括安全虚拟机监控器SVMM;以及
包含所述SVMN的代码和数据是从所述第一虚拟机不可访问的。
7.如权利要求6所述的方法,其特征在于,提供对所述音频输入输出设备的安全访问的步骤还包括:所述SVMM禁止由在所述第二虚拟机中执行的程序对用于存储音频数据的存储位置进行直接存储器存取。
8.如权利要求2所述的方法,其特征在于,还包括以下步骤:当没有应用程序在所述第一虚拟机中以安全模式执行音频功能时,向所述音频输入输出设备提供到所述第一虚拟机中的所述音频设备模型的输出数据以及到所述第二虚拟机中的所述虚拟音频设备模型的输出数据这两者之和。
9.如权利要求1所述的方法,其特征在于,还包括以下步骤:
监控在通信上与所述平台耦合的所有音频设备;以及
如果所述第一虚拟机中的所述程序正以所述安全模式执行,则阻止在通信上与所述平台耦合的任何不安全音频设备的操作。
10.一种访问音频输入输出设备的系统,所述系统包括:
平台,包括处理器和存储器;
监控器,驻留在所述存储器中并且可在所述平台上执行,能够提供对所述平台的音频输入输出设备的独占、安全访问;
第一虚拟机,可在所述平台上执行;
所述第一虚拟机中的音频设备模型,对在所述第一虚拟机中执行的应用程序,将所述音频输入输出设备从所述监控器直接映射到所述第一虚拟机;以及
在所述第一虚拟机中以安全模式执行音频功能的程序,
其中,如果第一虚拟机中的所述程序正以安全模式执行,则所述监控器阻止不安全的音频输入输出程序执行相关的输入音频功能,并且其中,当不安全的音频输入输出程序和第一虚拟机中的所述程序试图对音频输入输出设备进行只输出访问时,所述监控器还允许把来自第一虚拟机中的音频设备模型的输出数据与来自第二虚拟机中的虚拟音频设备模型的输出数据进行相加。
11.如权利要求10所述的系统,其特征在于,还包括:
第二虚拟机,可在所述平台上执行,第二虚拟机具有:
从所述第一虚拟机的音频设备模型再映射的虚拟音频设备模型,其中,所述监控器可操作来禁用所述虚拟音频设备模型。
12.如权利要求11所述的系统,其特征在于,所述虚拟音频设备模型包括热可插拔设备的模型,以及其中,所述监控器可操作来模拟所述虚拟音频设备模型的热拔事件。
13.如权利要求11所述的系统,其特征在于
所述监控器包括安全虚拟机监控器SVMM;以及
包含所述SVMN的代码和数据是从所述第一虚拟机不可访问的。
14.如权利要求13所述的系统,其特征在于,所述SVMM可操作来禁止由在所述第二虚拟机中执行的程序对用于存储音频数据的存储位置进行直接存储器存取。
15.如权利要求11所述的系统,其特征在于,所述监控器可操作来在没有应用程序在所述第一虚拟机中正以所述安全模式执行音频功能时,向所述音频输入输出设备提供到所述第一虚拟机中的所述音频设备模型的输出数据以及到所述第二虚拟机中的所述虚拟音频设备模型的输出数据这两者之和。
16.如权利要求10所述的系统,其特征在于,所述监控器可操作来执行以下步骤:
监控在通信上与所述平台耦合的所有音频设备;以及
如果所述第一虚拟机中的所述程序正以安全模式执行,则阻止在通信上与所述平台耦合的任何不安全音频设备的操作。
17.一种访问音频输入输出设备的方法,所述方法包括以下步骤:
在平台上执行监控器,所述监控器能够提供对所述平台的音频输入输出设备的独占、安全访问;
在所述平台上执行第一虚拟机;
在所述平台上执行第二虚拟机;
通过将所述音频输入输出设备从所述监控器直接映射到所述第一虚拟机,来为在所述第一虚拟机中执行的应用程序提供音频设备模型;
通过将所述音频设备模型从所述第一虚拟机再映射到所述第二虚拟机中的虚拟音频设备,来为在所述第二虚拟机中执行的应用程序提供虚拟音频设备模型;
向在所述第一虚拟机中以安全模式执行音频功能的程序提供对所述音频输入输出设备的独占、安全访问;
如果第一虚拟机中的程序正经由音频设备模型以安全模式访问平台的音频设备,则所述第一虚拟机中的程序通过阻挡、掩蔽或模拟所述虚拟音频设备模型的断开连接,来阻挡从第二虚拟机对所述音频设备的访问,
其中所述第一虚拟机是安全虚拟机,并且其中所述第二虚拟机是不安全虚拟机。
18.如权利要求17所述的方法,其特征在于,
向在所述第一虚拟机中以安全模式执行音频功能的程序提供对所述音频输入输出设备的独占、安全访问的步骤还包括禁用所述虚拟音频设备模型。
19.如权利要求18所述的方法,其特征在于,禁用所述虚拟音频设备模型的步骤还包括为访问所述虚拟音频设备模型的应用程序提供空数据流。
20.如权利要求18所述的方法,其特征在于,禁用所述虚拟音频设备模型的步骤还包括阻挡由应用程序对所述虚拟音频设备的访问。
21.如权利要求18所述的方法,其特征在于,所述虚拟音频设备模型包括热可插拔设备的模型,以及其中禁用所述虚拟音频设备模型的步骤还包括模拟所述虚拟音频设备模型的热拔事件。
22.如权利要求18所述的方法,其特征在于:
所述监控器包括安全虚拟机监控器SVMM;以及
包含所述SVMN的代码和数据是从所述第一虚拟机不可访问的。
23.如权利要求22所述的方法,其特征在于,提供对所述音频输入输出设备的安全访问的步骤还包括:所述SVMM禁止由在所述第二虚拟机中执行的程序对用于存储音频数据的存储位置进行直接存储器存取。
24.如权利要求18所述的方法,其特征在于,还包括:当没有应用程序在所述第一虚拟机中以安全模式执行音频功能时,向所述音频输入输出设备提供到所述第一虚拟机中的所述音频设备模型的输出以及到所述第二虚拟机中的所述虚拟音频设备模型的输出这两者之和。
25.如权利要求17所述的方法,其特征在于,还包括:
监测在通信上与所述平台耦合的所有音频设备;以及
如果所述第一虚拟机中的所述程序正以所述安全模式执行,则阻止在通信上与所述平台耦合的任何不安全音频设备的操作。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/200,662 US7752436B2 (en) | 2005-08-09 | 2005-08-09 | Exclusive access for secure audio program |
US11/200,662 | 2005-08-09 | ||
PCT/US2006/029609 WO2007021513A2 (en) | 2005-08-09 | 2006-07-27 | Exclusive access for secure audio progam |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101238471A CN101238471A (zh) | 2008-08-06 |
CN101238471B true CN101238471B (zh) | 2012-03-28 |
Family
ID=37672353
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800289373A Active CN101238471B (zh) | 2005-08-09 | 2006-07-27 | 用于提供对音频i/o设备的独占安全访问的方法和系统 |
Country Status (4)
Country | Link |
---|---|
US (2) | US7752436B2 (zh) |
EP (1) | EP1920375B1 (zh) |
CN (1) | CN101238471B (zh) |
WO (1) | WO2007021513A2 (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7526649B2 (en) * | 2003-12-30 | 2009-04-28 | Intel Corporation | Session key exchange |
US7752436B2 (en) * | 2005-08-09 | 2010-07-06 | Intel Corporation | Exclusive access for secure audio program |
JP4591480B2 (ja) * | 2007-06-29 | 2010-12-01 | ブラザー工業株式会社 | コンピュータプログラム及びネットワーク端末 |
US8250573B2 (en) * | 2007-12-27 | 2012-08-21 | Intel Corporation | Audio subsystem sharing in a virtualized environment |
US8646052B2 (en) * | 2008-03-31 | 2014-02-04 | Intel Corporation | Method and apparatus for providing a secure display window inside the primary display |
CN101488113B (zh) * | 2008-11-25 | 2014-07-30 | 华为技术有限公司 | 一种设备驱动域的实现方法、系统及装置 |
JP5493976B2 (ja) * | 2010-02-18 | 2014-05-14 | 富士通株式会社 | 情報処理装置、計算機システム及びプログラム |
CN102402820B (zh) * | 2010-09-13 | 2014-06-11 | 中国移动通信有限公司 | 电子交易方法及终端设备 |
CN102497432B (zh) * | 2011-12-13 | 2014-06-25 | 华为技术有限公司 | 一种多路径访问i/o设备的方法、i/o多路径管理器及系统 |
US9990217B2 (en) * | 2012-05-31 | 2018-06-05 | Red Hat, Inc. | Hypervisor printer emulation for virtual machines |
US20140012704A1 (en) | 2012-07-05 | 2014-01-09 | Google Inc. | Selecting a preferred payment instrument based on a merchant category |
US20140143864A1 (en) | 2012-11-21 | 2014-05-22 | Snoopwall Llc | System and method for detecting, alerting and blocking data leakage, eavesdropping and spyware |
US9158942B2 (en) * | 2013-02-11 | 2015-10-13 | Intel Corporation | Securing display output data against malicious software attacks |
US9092767B1 (en) * | 2013-03-04 | 2015-07-28 | Google Inc. | Selecting a preferred payment instrument |
US9858572B2 (en) | 2014-02-06 | 2018-01-02 | Google Llc | Dynamic alteration of track data |
US9208349B1 (en) * | 2015-01-13 | 2015-12-08 | Snoopwall, Inc. | Securing data gathering devices of a personal computing device while performing sensitive data gathering activities to prevent the misappropriation of personal user data gathered therewith |
CN106096923A (zh) * | 2016-06-27 | 2016-11-09 | 联想(北京)有限公司 | 一种安全支付防护方法及电子设备 |
CN108241801B (zh) * | 2016-12-26 | 2021-03-30 | 华为技术有限公司 | 处理系统调用的方法和装置 |
WO2018231247A1 (en) | 2017-06-16 | 2018-12-20 | Hewlett-Packard Development Company, L.P. | Voice assistants with graphical image responses |
US10846123B2 (en) * | 2018-09-25 | 2020-11-24 | Microsoft Technology Licensing, Llc | Audio rendering from virtual machine |
CN111383015B (zh) * | 2018-12-29 | 2023-11-03 | 华为技术有限公司 | 交易安全处理方法、装置及终端设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5671442A (en) * | 1993-02-12 | 1997-09-23 | International Business Machines Corporation | System having device driver operates in first mode for allowing concurrent access to adapter by applications and second mode for limiting access to one application |
WO2003090070A2 (en) * | 2002-04-16 | 2003-10-30 | Intel Corporation | Control register access virtualization performance improvement in the virtual-machine architecture |
Family Cites Families (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5960652A (ja) | 1982-09-30 | 1984-04-06 | Fujitsu Ltd | デ−タ処理装置 |
US4835644A (en) * | 1987-05-19 | 1989-05-30 | Microscience International Corporation | Side loaded disk drive pivot |
US6507909B1 (en) * | 1990-02-13 | 2003-01-14 | Compaq Information Technologies Group, L.P. | Method for executing trusted-path commands |
EP0619898A4 (en) | 1992-01-02 | 1995-05-03 | Amdahl Corp | COMPUTER SYSTEM WITH TWO GAS SHIFTS. |
JPH0695898A (ja) * | 1992-09-16 | 1994-04-08 | Hitachi Ltd | 仮想計算機の制御方法および仮想計算機システム |
US6157721A (en) * | 1996-08-12 | 2000-12-05 | Intertrust Technologies Corp. | Systems and methods using cryptography to protect secure computing environments |
US6542919B1 (en) | 1996-03-22 | 2003-04-01 | Koninklijke Philips Electronics N.V. | Operating system for use with protection domains in a single address space |
US6496847B1 (en) | 1998-05-15 | 2002-12-17 | Vmware, Inc. | System and method for virtualizing computer systems |
US6453392B1 (en) | 1998-11-10 | 2002-09-17 | International Business Machines Corporation | Method of and apparatus for sharing dedicated devices between virtual machine guests |
US20010037450A1 (en) * | 2000-03-02 | 2001-11-01 | Metlitski Evgueny A. | System and method for process protection |
US6836888B1 (en) * | 2000-03-17 | 2004-12-28 | Lucent Technologies Inc. | System for reverse sandboxing |
US6957332B1 (en) * | 2000-03-31 | 2005-10-18 | Intel Corporation | Managing a secure platform using a hierarchical executive architecture in isolated execution mode |
US6795905B1 (en) * | 2000-03-31 | 2004-09-21 | Intel Corporation | Controlling accesses to isolated memory using a memory controller for isolated execution |
US20020161961A1 (en) * | 2001-01-17 | 2002-10-31 | Ajile Systems, Inc. | Multiple virtual machine environment management system |
US7069442B2 (en) * | 2002-03-29 | 2006-06-27 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
US7028149B2 (en) * | 2002-03-29 | 2006-04-11 | Intel Corporation | System and method for resetting a platform configuration register |
US20030191943A1 (en) * | 2002-04-05 | 2003-10-09 | Poisner David I. | Methods and arrangements to register code |
US20030196100A1 (en) * | 2002-04-15 | 2003-10-16 | Grawrock David W. | Protection against memory attacks following reset |
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 |
US6898385B2 (en) * | 2002-07-05 | 2005-05-24 | Canon Kabushiki Kaisha | Image forming apparatus with varied charge voltages |
US7082598B1 (en) * | 2002-07-17 | 2006-07-25 | Vmware, Inc. | Dynamic driver substitution |
ES2315469T3 (es) | 2003-04-09 | 2009-04-01 | Virtuallogix Sa | Sistemas operativos. |
US20050034125A1 (en) * | 2003-08-05 | 2005-02-10 | Logicube, Inc. | Multiple virtual devices |
US7424709B2 (en) | 2003-09-15 | 2008-09-09 | Intel Corporation | Use of multiple virtual machine monitors to handle privileged events |
US9342662B2 (en) * | 2003-09-16 | 2016-05-17 | Media Rights Technologies, Inc. | Method and system for controlling video media |
JP2007510198A (ja) * | 2003-10-08 | 2007-04-19 | ユニシス コーポレーション | ホストシステムのパーティション内に実装されているハイパーバイザを使用したコンピュータシステムの準仮想化 |
US7496768B2 (en) | 2003-10-24 | 2009-02-24 | Microsoft Corporation | Providing secure input and output to a trusted agent in a system with a high-assurance execution environment |
US7421689B2 (en) * | 2003-10-28 | 2008-09-02 | Hewlett-Packard Development Company, L.P. | Processor-architecture for facilitating a virtual machine monitor |
US7467381B2 (en) * | 2003-12-16 | 2008-12-16 | Intel Corporation | Resource partitioning and direct access utilizing hardware support for virtualization |
US7401230B2 (en) * | 2004-03-31 | 2008-07-15 | Intel Corporation | Secure virtual machine monitor to tear down a secure execution environment |
US7577340B2 (en) * | 2004-07-21 | 2009-08-18 | Panasonic Corporation | Device and method for recording real-time data |
US20060026387A1 (en) * | 2004-07-31 | 2006-02-02 | Dinechin Christophe D | Method and system for recognizing instructions and instruction blocks in computer code |
US7213125B2 (en) * | 2004-07-31 | 2007-05-01 | Hewlett-Packard Development Company, L.P. | Method for patching virtually aliased pages by a virtual-machine monitor |
US7797699B2 (en) * | 2004-09-23 | 2010-09-14 | Intel Corporation | Method and apparatus for scheduling virtual machine access to shared resources |
JP4845467B2 (ja) * | 2004-11-08 | 2011-12-28 | 株式会社エヌ・ティ・ティ・ドコモ | デバイス管理装置、デバイス及びデバイス管理方法 |
US7409719B2 (en) * | 2004-12-21 | 2008-08-05 | Microsoft Corporation | Computer security management, such as in a virtual machine or hardened operating system |
US7752436B2 (en) * | 2005-08-09 | 2010-07-06 | Intel Corporation | Exclusive access for secure audio program |
US20070106986A1 (en) * | 2005-10-25 | 2007-05-10 | Worley William S Jr | Secure virtual-machine monitor |
US8595487B2 (en) * | 2006-11-01 | 2013-11-26 | Vmware, Inc. | Virtualization hardware for device driver isolation |
US8839236B2 (en) * | 2007-04-04 | 2014-09-16 | Microsoft Corp. | Virtual machine support for metered computer usage |
US8819675B2 (en) * | 2007-11-28 | 2014-08-26 | Hitachi, Ltd. | Virtual machine monitor and multiprocessor system |
-
2005
- 2005-08-09 US US11/200,662 patent/US7752436B2/en not_active Expired - Fee Related
-
2006
- 2006-07-27 EP EP06788909.7A patent/EP1920375B1/en active Active
- 2006-07-27 WO PCT/US2006/029609 patent/WO2007021513A2/en active Application Filing
- 2006-07-27 CN CN2006800289373A patent/CN101238471B/zh active Active
-
2010
- 2010-04-02 US US12/753,537 patent/US7971057B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5671442A (en) * | 1993-02-12 | 1997-09-23 | International Business Machines Corporation | System having device driver operates in first mode for allowing concurrent access to adapter by applications and second mode for limiting access to one application |
WO2003090070A2 (en) * | 2002-04-16 | 2003-10-30 | Intel Corporation | Control register access virtualization performance improvement in the virtual-machine architecture |
Non-Patent Citations (1)
Title |
---|
说明书第0002段、第0003段、第0019段,附图1. |
Also Published As
Publication number | Publication date |
---|---|
US20070038997A1 (en) | 2007-02-15 |
WO2007021513A3 (en) | 2007-04-12 |
US7752436B2 (en) | 2010-07-06 |
US20100192150A1 (en) | 2010-07-29 |
CN101238471A (zh) | 2008-08-06 |
US7971057B2 (en) | 2011-06-28 |
WO2007021513A2 (en) | 2007-02-22 |
EP1920375B1 (en) | 2014-03-19 |
EP1920375A2 (en) | 2008-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101238471B (zh) | 用于提供对音频i/o设备的独占安全访问的方法和系统 | |
EP2962193B1 (en) | Compiler based obfuscation | |
JP6397500B2 (ja) | 仮想マシン・マネージャーによって支援される選択的コード完全性強制 | |
EP3238120B1 (en) | Binary translation of a trusted binary with input tagging | |
US7840964B2 (en) | Mechanism to transition control between components in a virtual machine environment | |
CN103150514B (zh) | 一种基于移动设备的可信模块及其可信服务方法 | |
US20160188350A1 (en) | Trusted binary translation | |
US20160182531A1 (en) | Input verification | |
JP2007535761A (ja) | 抗タンパーコードを生成するシステム及び方法 | |
US9678687B2 (en) | User mode heap swapping | |
CN102971706A (zh) | 将信息从安全虚拟机重定向到不安全虚拟机 | |
US10838780B2 (en) | Portable hosted content | |
CN106687979A (zh) | 交叉视图恶意软件检测 | |
JP2022523522A (ja) | セキュア・インターフェイス制御の高レベルのページ管理 | |
JP2001318797A (ja) | 自動データ処理装置 | |
JP2022522664A (ja) | ページ変更検出によるセキュアなページング | |
US10216673B2 (en) | USB device firmware sanitization | |
Choudhury | Operating Systems: Principles and Design | |
Zheng | Overview of security Enhanced Android’s security architecture | |
Chen et al. | Designing and implementing embedded security terminal under the TrustZone Technology of Trusted Computing |
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 |