CN100464295C - 一种基于虚拟机的安全输入方法 - Google Patents

一种基于虚拟机的安全输入方法 Download PDF

Info

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
Application number
CNB2006100825476A
Other languages
English (en)
Other versions
CN101075188A (zh
Inventor
陈军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CNB2006100825476A priority Critical patent/CN100464295C/zh
Priority to US11/749,865 priority patent/US8122518B2/en
Publication of CN101075188A publication Critical patent/CN101075188A/zh
Application granted granted Critical
Publication of CN100464295C publication Critical patent/CN100464295C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring 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

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,判断是否保存有获得输入焦点的应用程序的标识信息,如果有,则打开安全输入开关,并将接收到的输入放到获得输入焦点的应用程序的输入缓冲区的当前输入位置。
CNB2006100825476A 2006-05-17 2006-05-17 一种基于虚拟机的安全输入方法 Active CN100464295C (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101593256B (zh) * 2008-05-26 2010-09-08 北京飞天诚信科技有限公司 基于Windows操作系统下的一种安全输入方法
EP3009941B1 (en) 2009-12-14 2017-07-26 Citrix Systems Inc. Methods and systems for communicating between trusted and non-trusted virtual machines
WO2011075484A2 (en) 2009-12-14 2011-06-23 Citrix Systems, Inc. A 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
WO2013085528A1 (en) * 2011-12-08 2013-06-13 Intel Corporation Methods and apparatus for dynamically adapting a virtual keyboard
CN104063673B (zh) * 2014-06-20 2016-12-07 北京奇虎科技有限公司 一种在浏览器中进行信息输入的方法和浏览器装置
CN104142851A (zh) * 2014-08-04 2014-11-12 福州靠谱网络有限公司 一种在安卓模拟器中使用电脑输入法的方法
CN105389506B (zh) * 2015-10-20 2018-03-30 飞天诚信科技股份有限公司 一种提高输入安全性的方法和装置
US10303820B2 (en) 2016-09-27 2019-05-28 Google Llc Selective simulation of virtualized hardware inputs
WO2018191780A1 (en) * 2017-04-18 2018-10-25 Gopc Pty Ltd Virtual machines - computer implemented security methods and systems
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0792761B2 (ja) * 1985-07-31 1995-10-09 株式会社日立製作所 仮想計算機システムの入出力制御方法
WO2001065366A1 (en) * 2000-03-02 2001-09-07 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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
在Win9x下利用VxD实现简单串口通讯. 胡硕,乔双,张研.信息技术,第2002卷第2期. 2002
在Win9x下利用VxD实现简单串口通讯. 胡硕,乔双,张研.信息技术,第2002卷第2期. 2002 *

Also Published As

Publication number Publication date
CN101075188A (zh) 2007-11-21
US20080005320A1 (en) 2008-01-03
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
EP3065074A1 (en) Fingerprint authentication method and device, intelligent terminal, and computer storage medium
CN106886703A (zh) 一种指纹解锁方法及移动终端
CN106650514A (zh) 一种基于TrustZone技术的安全输入系统与方法
CN103336924A (zh) 用于移动终端应用程序的启动锁
CN101997960A (zh) 具高安全性可对抗黑客供网上银行使用的双操作系统手机
JP2019504566A (ja) 情報画像表示方法及び装置
CN110311857A (zh) 一种大学生社团在线交互平台
CN102208002A (zh) 一种新型计算机病毒查杀装置
CN101420299B (zh) 提高智能密钥设备稳定性的方法和智能密钥设备
WO2017185670A1 (zh) 控制指纹传感器的方法、装置及电子设备
US20180137274A1 (en) Malware analysis method and storage medium
CN105956461A (zh) 一种拦截驱动加载的方法及终端
CN108573132B (zh) 手机app使用次数匹配系统
CN101405681A (zh) 信息处理装置、信息处理方法和程序
CN104462953B (zh) 一种信息处理方法及电子设备
CN106682493B (zh) 一种防止进程被恶意结束的方法、装置及电子设备
TWI510957B (zh) 一種文件檔案即時防護的方法以及裝置
CN108563576A (zh) 一种日志打印方法、系统和装置
KR101273519B1 (ko) 서비스 접근 제어 장치 및 방법
CN107743114B (zh) 一种网络访问方法、装置和系统
CN109144830A (zh) 一种数据采集漏报监管及快速切换网络环境的方法与系统
CN112333144B (zh) 一种通讯模组的数据安全系统及方法
CN106203096B (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