CN100464295C - 一种基于虚拟机的安全输入方法 - Google Patents
一种基于虚拟机的安全输入方法 Download PDFInfo
- Publication number
- CN100464295C CN100464295C CNB2006100825476A CN200610082547A CN100464295C CN 100464295 C CN100464295 C CN 100464295C CN B2006100825476 A CNB2006100825476 A CN B2006100825476A CN 200610082547 A CN200610082547 A CN 200610082547A CN 100464295 C CN100464295 C CN 100464295C
- Authority
- CN
- China
- Prior art keywords
- input
- virtual machine
- application program
- focus
- monitor
- 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
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/60—Protecting data
- G06F21/606—Protecting data by securing the transmission between two devices or processes
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Input From Keyboards Or The Like (AREA)
Abstract
本发明公开了基于虚拟机的安全输入方法,在该方法中,当应用程序需要安全的输入时,直接调用虚拟机提供的安全输入接口,并把自身的输入缓冲区的地址和长度作为参数传入,虚拟机监视器把收到的键盘输入信息转换为键值后直接放入应用程序的输入缓冲区,避免了其它应用通过各种过滤驱动和键盘钩子获得用户的输入,提高了用户输入的安全性。
Description
技术领域
本发明涉及虚拟机技术,特别涉及基于虚拟机的安全输入方法。
背景技术
在计算机系统中,当用户有键盘输入的时候,键盘设备的驱动程序把按键事件转换成相应的键值存放在内核的缓存中,等待各种键盘钩子来获取并放到应用程序的接收缓冲区;同时,计算机系统一般还允许键盘过滤驱动在键盘驱动之后截获键盘输入事件,对键盘输入事件进行特殊的转换或处理后,再把转换后的键值存放到内核的缓存中。在同一时刻,计算机系统只允许一个应用程序获得键盘输入焦点。
在上述用户程序接收键盘输入的流程中,即键盘输入->键盘驱动->键盘过滤驱动->内核缓存->键盘钩子->应用程序接收缓冲区,由于键盘驱动的输出和内核缓存中的内容缺乏保护措施,键盘输入数据很可能被其它计算机侵入程序的键盘过滤驱动和键盘钩子获取。各种木马程序、监听程序就是利用过滤驱动和各种钩子获取用户的输入,从而获得用户输入的敏感数据,如口令等。
在虚拟机上,键盘输入首先由虚拟机监视器(VMM)获得,然后再通过模拟的键盘设备向客户端OS发送键盘硬件事件,客户端OS和标准的OS一样通过:键盘驱动->键盘过滤驱动->内核缓存->键盘钩子->应用程序接收缓冲区,给应用程序提供键盘输入。在这中间,各种木马程序、监听程序同样可以利用过滤驱动和各种钩子获取用户的输入。
可见,现有虚拟机的键盘输入机制存在很大的安全漏洞,用户的输入缺乏足够的安全保护。
发明内容
本发明的目在于提供一种基于虚拟机的输入方法,该方法可以避免现有的输入方法中其它应用程序利用各种过滤驱动和键盘钩子获得用户的输入的缺陷,从而为用户提供一种安全的输入方法。
本发明提供一种基于虚拟机的安全输入方法,包括如下步骤:
应用程序调用虚拟机监视器的安全输入接口,并传入其输入缓冲区的逻辑地址和长度;
虚拟机监视器接受安全输入调用打开安全输入开关,并将上述输入缓冲区的逻辑地址转换为物理地址;
虚拟机监视器接收键盘驱动的输入并将其转换为键值放入上述输入缓冲区;
虚拟机监视器判断安全输入结束,向应用程序返回输入结果并关闭安全输入开关。
进一步,还可以使虚拟机监视器在安全输入开关打开时,拒绝输入焦点切换。
从上面的方法可以看出,本发明提供的基于虚拟机的输入方法直接把键盘驱动的输出放到了应用程序提供的输入缓冲区中,从而避免了其它应用程序利用各种过滤驱动和键盘钩子获得用户的输入,提高了用户输入的安全性。
附图说明
图1示出了虚拟机监视器不同的输入流程示意图;
图2示出了本发明基于虚拟机的安全输入流程。
具体实施方式
如图1所示,在本发明中,虚拟机监视器维护一个安全输入开关,并提供一个安全输入接口,应用程序可以通过调用该安全输入接口来打开该安全输入开关。当安全输入开关关闭时,键盘输入的流程与现有技术相同;当安全输入开关打开时,则键盘的输入通过本发明的安全输入流程实现,在此情况下,虚拟机监视器不再向客户端模拟键盘硬件事件,而是直接把键盘驱动的输出转换成输入字母并存放在应用程序的输入缓冲区中,并在输入结束的时候返回给应用程序。
本发明实现安全输入的具体流程如图2所示,包括步骤如下:
步骤A1,应用程序调用虚拟机监视器的安全输入接口。
当应用程序需要安全的输入时,应用程序主动调用虚拟机监视器的安全输入接口,并将应用程序的句柄和应用程序接收输入的缓冲区的地址以及长度作为参数传入安全输入接口,此时输入缓冲区的地址为该应用程序内的逻辑地址。
步骤A2,虚拟机监视器接受安全输入调用并将输入缓冲区逻辑地址转换为相应的物理地址。
虚拟机监视器在接受应用程序对安全输入接口的调用后,将安全输入开关打开,停止向客户端操作系统模拟键盘输入,并将作为参数传入的输入缓冲区逻辑地址转换为物理地址,然后等待用户的输入。
步骤A3,虚拟机监视器等待和接收键盘驱动的输出,并将键盘驱动的输出转换为键值存放到应用程序的输入缓冲区。
如果正处于安全输入状态,虚拟机监视器接收键盘驱动的输出后,将其转换为键值,然后根据输入缓冲区的物理地址,将该键值存放到应用程序的输入缓冲区。虚拟机监视器还需要维护输入缓冲区的当前输入位置,以便将输入正确的放入输入缓冲区。
步骤A4,虚拟机监视器在安全输入结束时向应用程序返回输入结果,并关闭安全输入开关。
对于输入结束的判断,可以根据输入的长度是否已经等于输入缓冲区的长度,或者检测一些特定键是否按下,例如“Enter”键。当输入的长度等于输入缓冲区的长度,或者特定键被按下时,安全输入结束,虚拟机监视器向应用程序返回输入结果,并关闭安全输入开关。如果还维护了与此次安全输入相关的信息,则释放相应的资源。
在虚拟机处于安全输入状态时,可能有其它的应用程序请求获得输入的焦点。针对这个问题,本发明提供多种处理方法,具体说明如下:
方法一,在虚拟机处于安全输入状态时,拒绝其它应用程序对输入焦点的请求,直到该应用程序的安全输入结束并关闭安全输入开关。在这种情况下,如果安全输入开关已经开启,其它的应用程序调用安全输入接口会失败,而普通的输入焦点请求也会被拒绝。
方法二,在虚拟机处于安全输入状态时,允许其它应用程序对输入焦点的请求。当输入焦点切换到其它应用程序时,虚拟机监视器保存失去输入焦点的应用程序的安全输入状态,包括应用程序的句柄、输入缓冲区的地址以及长度、当前输入位置等,并关闭安全输入开关。当输入焦点重新切换到该应用程序时,虚拟机监视器首先检查是否保存有与该应用程序句柄相对应的安全输入状态,如果存在,则重新打开安全输入开关,并将输入存放在输入缓冲区的当前位置。当安全输入结束时,释放相应的资源。
方法三,应用程序在调用安全输入接口时,同时传入一个是否允许输入焦点被切换的参数。虚拟机监视器根据该参数的取值,分别按照方法一和方法二对输入焦点切换请求进行处理。
从上面的步骤可以看出,本发明提供的输入方法,直接把键盘驱动的输出转换为键值存放到了应用程序提供的输入缓冲区,可以避免其它应用程序通过键盘过滤驱动和各种键盘钩子获得用户的输入,为用户提供了一种安全的输入方法。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (10)
1.一种基于虚拟机的安全输入方法,包括步骤:
步骤A,应用程序调用虚拟机监控器的安全输入接口,并传入其输入缓冲区的逻辑地址和长度;
步骤B,虚拟机监控器接受安全输入接口的调用打开安全输入开关,并将上述输入缓冲区的逻辑地址转换为物理地址;
步骤C,虚拟机监控器接收键盘输入信息并将其转换为键值放入上述输入缓冲区;
步骤D,虚拟机监控器判断安全输入结束,向应用程序返回输入结果并关闭安全输入开关。
2.如权利要求1所述的安全输入方法,其特征在于,当输入键值的长度等于输入缓冲区的长度或者结束键按下时,虚拟机监控器判断安全输入结束。
3.如权利要求1或2所述的安全输入方法,其特征在于,虚拟机监控器在安全输入开关打开时,拒绝输入焦点切换。
4.如权利要求1或2所述的安全输入方法,其特征在于,步骤A中传入安全输入接口的参数还包括该应用程序的标识信息。
5.如权利要求4所述的安全输入方法,其特征在于,所述应用程序的标识信息为应用程序的句柄。
6.如权利要求4所述的安全输入方法,其特征在于,虚拟机监控器在安全输入开关打开时,允许输入焦点切换,在切换输入焦点时还包括如下步骤:
步骤6a,虚拟机监控器关闭安全输入开关,并保存失去输入焦点的应用程序的标识信息,以及失去输入焦点的应用程序的输入缓冲区的地址、长度和当前输入位置。
7.如权利要求6所述的安全输入方法,其特征在于,当虚拟机监控器切换输入焦点时,还执行如下步骤:
步骤7a,判断是否保存有获得输入焦点的应用程序的标识信息,如果有,则打开安全输入开关,并将接收到的输入放到获得输入焦点的应用程序的输入缓冲区的当前输入位置。
8.如权利要求4所述的安全输入方法,其特征在于,步骤A中传入安全输入接口的参数还包括是否允许输入焦点切换的标志。
9.如权利要求8所述的安全输入方法,其特征在于,在安全输入开关打开时,虚拟机监控器如果收到切换输入焦点的请求,执行如下步骤:
步骤9a,检查该安全输入是否允许输入焦点切换,如果允许,则执行步骤9b,否则,拒绝该输入焦点切换请求;
步骤9b,虚拟机监控器关闭安全输入开关,保存失去输入焦点的应用程序的标识信息、是否允许输入焦点切换标志、以及失去输入焦点的应用程序的输入缓冲区的地址、长度和当前输入位置,并切换输入焦点。
10.如权利要求9所述的安全输入方法,其特征在于,当虚拟机监控器切换输入焦点时,还执行如下步骤:
步骤10a,判断是否保存有获得输入焦点的应用程序的标识信息,如果有,则打开安全输入开关,并将接收到的输入放到获得输入焦点的应用程序的输入缓冲区的当前输入位置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100825476A CN100464295C (zh) | 2006-05-17 | 2006-05-17 | 一种基于虚拟机的安全输入方法 |
US11/749,865 US8122518B2 (en) | 2006-05-17 | 2007-05-17 | Secure input method based on virtual machine |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100825476A CN100464295C (zh) | 2006-05-17 | 2006-05-17 | 一种基于虚拟机的安全输入方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101075188A CN101075188A (zh) | 2007-11-21 |
CN100464295C true CN100464295C (zh) | 2009-02-25 |
Family
ID=38878120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100825476A Active CN100464295C (zh) | 2006-05-17 | 2006-05-17 | 一种基于虚拟机的安全输入方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8122518B2 (zh) |
CN (1) | CN100464295C (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101593256B (zh) * | 2008-05-26 | 2010-09-08 | 北京飞天诚信科技有限公司 | 基于Windows操作系统下的一种安全输入方法 |
EP2513810B1 (en) * | 2009-12-14 | 2016-02-17 | Citrix Systems, Inc. | Methods and systems for communicating between trusted and non-trusted virtual machines |
US8560826B2 (en) | 2009-12-14 | 2013-10-15 | Citrix Systems, Inc. | Secure virtualization environment bootable from an external media device |
CN102195940A (zh) * | 2010-03-12 | 2011-09-21 | 北京路模思科技有限公司 | 一种基于虚拟机技术安全输入和提交数据的方法和系统 |
US8806481B2 (en) * | 2010-08-31 | 2014-08-12 | Hewlett-Packard Development Company, L.P. | Providing temporary exclusive hardware access to virtual machine while performing user authentication |
DE112011105933T5 (de) * | 2011-12-08 | 2014-11-20 | Intel Corporation | Verfahren und Vorrichtungen zum dynamischen Anpassen einer virtuellen Tastatur |
CN104063673B (zh) * | 2014-06-20 | 2016-12-07 | 北京奇虎科技有限公司 | 一种在浏览器中进行信息输入的方法和浏览器装置 |
CN104142851A (zh) * | 2014-08-04 | 2014-11-12 | 福州靠谱网络有限公司 | 一种在安卓模拟器中使用电脑输入法的方法 |
CN105389506B (zh) * | 2015-10-20 | 2018-03-30 | 飞天诚信科技股份有限公司 | 一种提高输入安全性的方法和装置 |
EP3516509A1 (en) | 2016-09-27 | 2019-07-31 | Google LLC | Selective simulation of virtualized hardware inputs |
CN111316271A (zh) * | 2017-04-18 | 2020-06-19 | 邦克沃特有限公司 | 虚拟机-计算机实现的安全方法和系统 |
WO2018205267A1 (zh) * | 2017-05-12 | 2018-11-15 | 深圳前海达闼云端智能科技有限公司 | 输入设备实现方法及其实现装置 |
WO2023060470A1 (en) * | 2021-10-13 | 2023-04-20 | Citrix Systems, Inc. | Prevention of inadvertent password disclosure |
CN114124558B (zh) * | 2021-11-30 | 2024-02-06 | 北京天融信网络安全技术有限公司 | 操作响应方法、装置、电子设备及计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5371857A (en) * | 1991-10-02 | 1994-12-06 | Nec Corporation | Input/output interruption control system for a virtual machine |
CN1255984A (zh) * | 1997-04-02 | 2000-06-07 | 微软公司 | 用于集成虚机和输入方法编辑程序的方法 |
US20020103882A1 (en) * | 2000-10-02 | 2002-08-01 | Johnston Robin Andrew Courtland | Method and system for hands-on e-learning |
CN1700171A (zh) * | 2004-04-30 | 2005-11-23 | 微软公司 | 提供从虚拟环境对硬件的直接访问 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0792761B2 (ja) * | 1985-07-31 | 1995-10-09 | 株式会社日立製作所 | 仮想計算機システムの入出力制御方法 |
AU2001243365A1 (en) * | 2000-03-02 | 2001-09-12 | Alarity Corporation | System and method for process protection |
US6990663B1 (en) * | 2000-06-08 | 2006-01-24 | International Business Machines Corporation | Hypervisor virtualization of OS console and operator panel |
US6901429B2 (en) * | 2000-10-27 | 2005-05-31 | Eric Morgan Dowling | Negotiated wireless peripheral security systems |
US6880021B2 (en) * | 2001-09-28 | 2005-04-12 | International Business Machines Corporation | Intelligent interrupt with hypervisor collaboration |
US7284278B2 (en) * | 2003-03-04 | 2007-10-16 | Dell Products L.P. | Secured KVM switch |
US7356818B2 (en) * | 2003-06-24 | 2008-04-08 | International Business Machines Corporation | Virtual machine communicating to external device without going through other virtual machines by using a list of IP addresses managed only by a single virtual machine monitor |
US7380136B2 (en) * | 2003-06-25 | 2008-05-27 | Intel Corp. | Methods and apparatus for secure collection and display of user interface information in a pre-boot environment |
US7730318B2 (en) * | 2003-10-24 | 2010-06-01 | Microsoft Corporation | Integration of high-assurance features into an application through application factoring |
US7913251B2 (en) * | 2003-12-12 | 2011-03-22 | International Business Machines Corporation | Hypervisor virtualization of OS console and operator panel |
US7330981B2 (en) * | 2004-04-23 | 2008-02-12 | Microsoft Corporation | File locker and mechanisms for providing and using same |
US7565522B2 (en) * | 2004-05-10 | 2009-07-21 | Intel Corporation | Methods and apparatus for integrity measurement of virtual machine monitor and operating system via secure launch |
US7451249B2 (en) * | 2005-03-21 | 2008-11-11 | Hewlett-Packard Development Company, L.P. | Method and apparatus for direct input and output in a virtual machine environment containing a guest operating system |
US7434003B2 (en) * | 2005-11-15 | 2008-10-07 | Microsoft Corporation | Efficient operating system operation on a hypervisor |
US7965702B2 (en) * | 2005-12-30 | 2011-06-21 | Intel Corporation | Reliable reporting of location data |
-
2006
- 2006-05-17 CN CNB2006100825476A patent/CN100464295C/zh active Active
-
2007
- 2007-05-17 US US11/749,865 patent/US8122518B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5371857A (en) * | 1991-10-02 | 1994-12-06 | Nec Corporation | Input/output interruption control system for a virtual machine |
CN1255984A (zh) * | 1997-04-02 | 2000-06-07 | 微软公司 | 用于集成虚机和输入方法编辑程序的方法 |
US20020103882A1 (en) * | 2000-10-02 | 2002-08-01 | Johnston Robin Andrew Courtland | Method and system for hands-on e-learning |
CN1700171A (zh) * | 2004-04-30 | 2005-11-23 | 微软公司 | 提供从虚拟环境对硬件的直接访问 |
Non-Patent Citations (2)
Title |
---|
在Win9x下利用VxD实现简单串口通讯. 胡硕,乔双,张研.信息技术,第2002卷第2期. 2002 |
在Win9x下利用VxD实现简单串口通讯. 胡硕,乔双,张研.信息技术,第2002卷第2期. 2002 * |
Also Published As
Publication number | Publication date |
---|---|
US20080005320A1 (en) | 2008-01-03 |
CN101075188A (zh) | 2007-11-21 |
US8122518B2 (en) | 2012-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100464295C (zh) | 一种基于虚拟机的安全输入方法 | |
US9537897B2 (en) | Method and apparatus for providing analysis service based on behavior in mobile network environment | |
US20170300920A1 (en) | Method Of And Apparatus For Authenticating Fingerprint, Smart Terminal And Computer Storage Medium | |
JP6793732B2 (ja) | 情報画像表示方法及び装置 | |
CN106650514A (zh) | 一种基于TrustZone技术的安全输入系统与方法 | |
WO2019209630A1 (en) | File processing method and system, and data processing method | |
KR920016935A (ko) | 자동모드변환이 가능한 통합 키보드 및 지정기구 시스템 | |
TW201020845A (en) | Monitor device, monitor method and computer program product thereof for hardware | |
TWI256227B (en) | Device, system and method to manage security credentials in a protected computer network domain | |
CN108183901B (zh) | 基于fpga的主机安全防护物理卡及其数据处理方法 | |
CN106446654B (zh) | 基于指纹识别的计算机输入输出设备隔离方法 | |
CN110311857A (zh) | 一种大学生社团在线交互平台 | |
CN105930726B (zh) | 一种恶意操作行为的处理方法及用户终端 | |
CN105184135A (zh) | 指纹识别方法及指纹识别系统 | |
CN105930728B (zh) | 一种应用审查方法及装置 | |
CN104462953B (zh) | 一种信息处理方法及电子设备 | |
CN102411688A (zh) | 多用户隔离访问终端服务器上的虚拟usb外设的方法 | |
TWI510957B (zh) | 一種文件檔案即時防護的方法以及裝置 | |
CN105956461A (zh) | 一种拦截驱动加载的方法及终端 | |
CN101405681A (zh) | 信息处理装置、信息处理方法和程序 | |
CN108563576A (zh) | 一种日志打印方法、系统和装置 | |
WO2017185670A1 (zh) | 控制指纹传感器的方法、装置及电子设备 | |
CN104937602B (zh) | 一种隐私保护的方法及电子设备 | |
CN108573132A (zh) | 手机app使用次数匹配系统 | |
CN113553618A (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 |