CN104008327B - 一种安全输入方法和*** - Google Patents

一种安全输入方法和*** Download PDF

Info

Publication number
CN104008327B
CN104008327B CN201310060190.1A CN201310060190A CN104008327B CN 104008327 B CN104008327 B CN 104008327B CN 201310060190 A CN201310060190 A CN 201310060190A CN 104008327 B CN104008327 B CN 104008327B
Authority
CN
China
Prior art keywords
virtual machine
input
input data
mode
operating system
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
CN201310060190.1A
Other languages
English (en)
Other versions
CN104008327A (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.)
Tencent Technology Shenzhen Co Ltd
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent Technology Shenzhen Co 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201310060190.1A priority Critical patent/CN104008327B/zh
Priority to PCT/CN2013/088148 priority patent/WO2014131295A1/zh
Priority to TW103100709A priority patent/TW201433937A/zh
Publication of CN104008327A publication Critical patent/CN104008327A/zh
Priority to US14/830,288 priority patent/US20150356307A1/en
Application granted granted Critical
Publication of CN104008327B publication Critical patent/CN104008327B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • 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/602Providing cryptographic facilities or services
    • 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
    • G06F21/53Monitoring 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 by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/031Protect user input by software means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Virology (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Bioethics (AREA)
  • Storage Device Security (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

本发明实施例公开了一种安全输入方法和***,其中,该方法包括:确定用户需要进行安全输入时,启动中央处理器的虚拟机模式;在虚拟机模式下,将操作***切入到非根模式,以及将安全输入保护程序的虚拟机管理器切入到根模式;由操作***接收用户的输入数据,并传送给安全输入保护程序的虚拟机管理器;由虚拟机管理器对所述输入数据进行加密和保存,以供合法程序调用;由虚拟机管理器生成虚假输入数据,并返回虚假输入数据给操作***;确定用户安全输入结束时,关闭中央处理器的虚拟机模式。该方案不仅无需改变用户的使用习惯和配置额外的硬件设备,而且可以更有效的防止木马截获或窜改到用户输入的内容,提高信息的准确性和安全性。

Description

一种安全输入方法和***
技术领域
本发明涉及通信技术领域,具体涉及一种安全输入方法和***。
背景技术
网络技术的飞速发展,给人们的生活带来便利的同时,也对个人信息安全带来了严峻的考验。在现有技术中,黑客或不法分子往往会利用木马来盗取用户的个人信息,为此,人们提出了各种安全防范方案,其中,如何进行安全输入就是其中的一种。
在现有的安全输入方案中,主要有几种方法,具体如下:
1、安全输入控件;
该方案是通过模拟账户和密码输入框,从而达到防止恶意木马直接读取输入框里内容的方式,防止盗号的行为。
2、软键盘方式;
即采用模拟键盘的方式,该方案可以有效地防止键盘钩子,无论是应用层还是内核层的。
3、动态口令卡;
在该方案中,密码形式为【pin码+动态口令码】,其中,pin码为用户初始设置,而动态口令码则是通过动态口令卡获得,每隔一段时间就会变化一次,也就是说,虽然每次输入的用户名是一样的,但是密码却是不断在变化。
在对现有技术的研究和实践过程中,本发明的发明人发现,现有的这些方案虽然各个所长,但也各有其弊端,比如,对于“安全输入控件”和“软键盘方式”方案来说,虽然其在一定程度上可以防止键盘钩子,但是还是容易被木马截获或窜改,信息准确性和安全性都不够高;而在“动态口令卡”方案中,虽然安全性较前两种方案高,但由于用户需要额外购置动态口令卡,而且每次输入还需额外地输入动态口令码,所以该方案已经改变了用户的使用习惯,使用十分不便。
发明内容
本发明实施例提供一种安全输入方法和***,不仅无需改变用户的使用习惯和配置额外的硬件设备,而且可以更有效的防止木马截获或窜改到用户输入的内容,提高信息准确性和安全性。
一种安全输入方法,包括:
确定用户需要进行安全输入时,启动中央处理器(CPU,Central ProcessingUnit)的虚拟机模式;
在所述虚拟机模式下,将操作***(Guest OS,Guest Operating System)切入到非根模式(non-root),以及将安全输入保护程序的虚拟机管理器(VMM,Virtual MachineMonitor)切入到根模式(root);
由操作***接收用户的输入数据,并传送给安全输入保护程序的虚拟机管理器;
由虚拟机管理器对所述输入数据进行加密和保存,以供合法程序调用;
由虚拟机管理器生成虚假输入数据,并返回虚假输入数据给操作***;
确定用户安全输入结束时,关闭CPU的虚拟机模式。
一种安全输入***,包括:
启动单元,用于确定用户需要进行安全输入时,启动CPU的虚拟机模式;
切入单元,用于在所述虚拟机模式下,将操作***切入到非根模式,以及将安全输入保护程序的虚拟机管理器切入到根模式;
处理单元,用于由操作***接收用户的输入数据,并传送给安全输入保护程序的虚拟机管理器;由虚拟机管理器对所述输入数据进行加密和保存,以供合法程序调用;由虚拟机管理器生成虚假输入数据,并返回虚假输入数据给操作***;
关闭单元,用于确定用户安全输入结束时,关闭CPU的虚拟机模式。
本发明实施例采用在确定用户需要进行安全输入时,启动CPU的虚拟机模式,将操作***切入到非根模式,以及将安全输入保护程序的虚拟机管理器切入到根模式,从而使得当操作***接收到用户的输入数据时,并不会马上处理该输入数据,而是将该输入数据传送给安全输入保护程序的虚拟机管理器,由虚拟机管理器对该输入数据进行加密和保存,以供合法程序调用,然后再由虚拟机管理器生成虚假输入数据,并返回虚假输入数据给操作***,这样的话,无论是内核层的键盘钩子,还是应用层的消息钩子,就都没有机会处理该输入数据,从而保证了信息的准确性和真实性;而且,由于返回给操作***的是虚假输入数据,所以即便该虚假输入数据被木马盗取,也是无效的,而合法程序则可以通过直接调用虚拟机管理器的方式来获取正确的用户输入数据,因此,可以在保证***正常使用该输入数据的前提下,提高信息的安全性;此外,由于该功能只在用户需要进行安全输入时启用,因此,不会对***和用户的正常使用造成影响。可见,该方案不仅无需改变用户的使用习惯和配置额外的硬件设备,而且可以更有效的防止木马截获或窜改到用户输入的内容,提高信息的准确性和安全性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是虚拟机管理器的生命周期的示意图;
图1b是本发明实施例提供的安全输入方法的流程图;
图2是是本发明实施例提供的安全输入方法的另一流程图;
图3是是本发明实施例提供的安全输入***的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了更好地对本发明实施例进行说明,以下将对虚拟化技术进行简略说明。
虚拟(virtualization)是指对计算机资源的抽象,它隐藏了***、应用和终端用户赖以交互的计算机资源的物理性的一面,最常用的方法就是把单一的物理资源转化为多个逻辑资源,当然也可以把多个物理资源转化为一个逻辑资源。
硬件辅助虚拟化技术(Hardware Enabled Virtualization,HEV)就是在硬件层面上,更确切地说是在CPU里,对虚拟技术提供直接支持,并通过这种设计提高虚拟效率、降低开发难度。在硬件虚拟化技术诞生前,在编写虚拟机的过程中,为了实现多个虚拟机上的真实物理地址隔离,需要编程实现把客户机的物理地址翻译为真实机器的物理地址。同时也需要给不同的客户机操作***编写不同的虚拟设备驱动程序,使之能够共享同一真实硬件资源。硬件虚拟化技术则在硬件上实现了内存地址和输入/输出(I/O,Input/Output)设备的映射,因此大大简化了编写虚拟机的过程。而其硬件直接支持二次寻址和I/O映射的特性也提升了虚拟机在运行时的性能。
在硬件虚拟化技术中,一个重要的概念就是虚拟机管理器(VMM,VirtualMachineMonitor),它专指在使用硬件虚拟化技术时创建出的特权层,该层提供给虚拟机开发者,用来实现虚拟硬件与真实硬件的通信和一些事件处理操作,其中,可见,虚拟机管理器的权限级别要大于或等于操作***权限。
在虚拟化技术中,其设计架构上主要可以包括虚拟机管理器和客户机(GuestMachine),两者分处在根(root)和非根(non-root)两种模式下。其中,在VT技术下的虚拟机管理器的生命周期可以如图1a所示,由图1a可知,软件通过执行虚拟机扩展指令集启动指令(VMXON)进入根模式,开启了虚拟机管理器的运行环境。然后通过使用虚拟机运行指令(VMLAUNCH)使得目标***正式运行在虚拟机中。当某条指令产生了“#VMEXIT”事件后,就会陷入虚拟机管理器中,待其处理完这个事件,可以通过虚拟机返回指令(VMRESUME)将控制权移交回发生“#VMEXIT”事件的虚拟机。直到某个时刻,在虚拟机管理器中显式地调用了虚拟机扩展指令集关闭指令(VMXOFF)指令,虚拟机管理器才会被关闭。
此外,VT技术支持对各种事件的拦截操作,如敏感指令的执行以及I/O操作等。
本发明实施例提供一种安全输入方法和***。以下分别进行详细说明。
实施例一、
本实施例将从安全输入***的角度进行描述。
一种安全输入方法,包括:确定用户需要进行安全输入时,启动CPU的虚拟机模式;根据该虚拟机模式将操作***(Guest OS,Guest Operating System)切入到非根模式,以及将安全输入保护程序的虚拟机管理器切入到根模式;由操作***接收用户的输入数据,并传送给安全输入保护程序的虚拟机管理器;由虚拟机管理器对该输入数据进行加密和保存,以供合法程序调用;由虚拟机管理器根据该输入数据生成虚假输入数据,并返回虚假输入数据给操作***;确定用户安全输入结束时,关闭CPU的虚拟机模式。
如图1b所示,具体流程可以如下:
101、确定用户需要进行安全输入时,启动CPU的虚拟机模式,即启用虚拟化功能。
在启动虚拟机模式之后,***会为各个程序分配虚拟机管理器,也就是说,此时,***会为安全输入保护程序分配虚拟机管理器,在本发明实施例中,称为安全输入保护程序的虚拟机管理器,由于在本发明实施例中,只涉及到安全输入保护程序的虚拟机管理器,因此为了描述方便,均简称为虚拟机管理器。
102、在该虚拟机模式下,将操作***切入到非根模式,以及将安全输入保护程序的虚拟机管理器切入到根模式。
例如,具体可以在所述虚拟机模式下,通过虚拟机扩展指令集启动指令(VMXON)将操作***切入到非根模式,以及将安全输入保护程序的虚拟机管理器切入到根模式。
103、由操作***接收用户的输入数据,并传送给安全输入保护程序的虚拟机管理器。
例如,具体可以由操作***接收用户的输入数据,并执行虚拟机退出指令(VMEXIT),使得该输入数据传送给安全输入保护程序的虚拟机管理器。如下:
操作***硬件驱动层截获到用户通过键盘输入的输入数据(即拦截了一个I/O操作),在未开启虚拟机模式时,操作***本应将该输入数据交给键盘驱动进行处理,但是,由于此时已经开启了虚拟机模式(即执行了步骤101),所以,在操作***还未处理该输入数据(即I/O操作)之前,会首先执行一次“#VMEXIT”操作,使得该I/O操作从操作***陷入到虚拟机管理器中,即将该输入数据发送给虚拟机管理器。
此外,由于开启虚拟机模式时,在虚拟机管理器中只能有一个实例在运行,因此可以保证信息处理的排他性。同时由于该“#VMEXIT”操作先于操作***的其他任何处理操作,所以无论是内核层的键盘钩子,还是应用层的消息钩子,都还没有机会处理该输入数据,因此,也可以保证信息的准确性和真实性,即在此之前未被篡改和截获。
104、由虚拟机管理器对该输入数据进行加密和保存,以供合法程序调用,即合法程序可以直接调用虚拟机管理器的方式,来获取真实的输入数据。
105、由虚拟机管理器根据该输入数据生成虚假输入数据,并返回虚假输入数据给操作***。
由于此时返回给操作***的是虚假输入数据,所以即便该虚假输入数据被木马盗取,也不会对信息安全产生不良的影响。
106、确定用户安全输入结束时,关闭CPU的虚拟机模式。
例如,具体可以在确定用户安全输入结束时,通过虚拟机扩展指令集关闭指令(VMXOFF)关闭CPU的虚拟机模式,从而将操作***从虚拟机中无缝地迁移出来。
当虚拟机模式被关闭之后,非根模式和根模式就不再存在了,操纵***又重新回到了最初的Ring0层,可见,该方案的整个过程对用户都是透明的,而用户的输入在此期间也不会有任何影响。
由上可知,本实施例采用在确定用户需要进行安全输入时,启动CPU的虚拟机模式,并根据该虚拟机模式将操作***切入到非根模式,以及将安全输入保护程序的虚拟机管理器切入到根模式,从而使得当操作***接收到用户的输入数据时,并不会马上处理该输入数据,而是将该输入数据传送给安全输入保护程序的虚拟机管理器,由虚拟机管理器对该输入数据进行加密和保存,以供合法程序调用,然后再由虚拟机管理器生成虚假输入数据,并返回虚假输入数据给操作***,这样的话,无论是内核层的键盘钩子,还是应用层的消息钩子,就都没有机会处理该输入数据,从而保证了信息的准确性和真实性;而且,由于返回给操作***的是虚假输入数据,所以即便该虚假输入数据被木马盗取,也是无效的,而合法程序则可以通过直接调用虚拟机管理器的方式来获取正确的用户输入数据,因此,可以在保证***正常使用该输入数据的前提下,提高该信息安全性;此外,由于该功能只在用户需要进行安全输入时启用,因此,不会对***和用户的正常使用造成影响。可见,该方案不仅无需改变用户的使用习惯和配置额外的硬件设备,而且可以更有效的防止木马截获或窜改到用户输入的内容,提高用信息的准确性和安全性。
实施例二、
根据实施例一所描述的方法,以下将举例作进一步详细说明。
如图2所示,一种安全输入方法,具体流程可以如下:
201、安全输入***确定用户需要进行安全输入时,启动CPU的虚拟机模式,即启用虚拟化功能。
在启动虚拟机模式之后,***会为各个程序分配虚拟机管理器,也就是说,此时,***会为安全输入保护程序分配虚拟机管理器。
202、在该虚拟机模式下,安全输入***通过VMXON指令将操作***切入到非根模式,以及通过VMXON指令将安全输入保护程序的虚拟机管理器切入到根模式。
203、操作***硬件驱动层截获用户通过键盘输入的输入数据,即拦截了一个I/O操作,由于此时已经开启了虚拟机模式,因此,操作***硬件驱动层会首先执行一次“#VMEXIT”操作,使得该I/O操作从操作***陷入到虚拟机管理器中,即将该输入数据发送给虚拟机管理器。
204、虚拟机管理器对该输入数据进行加密和保存,以供合法程序调用,即合法程序可以直接调用虚拟机管理器的方式,来获取真实的输入数据。
205、虚拟机管理器根据该输入数据生成虚假输入数据,并返回虚假输入数据给操作***。
由于此时返回给操作***的是虚假输入数据,所以即便该虚假输入数据被木马盗取,也不会对信息安全产生不良的影响。
206、安全输入***确定用户安全输入结束时,通过VMXOFF指令关闭CPU的虚拟机模式,从而将操作***从虚拟机中无缝地迁移出来,操纵***又重新回到了最初的Ring0层。
由上可知,本实施例的安全输入***采用在确定用户需要进行安全输入时,启动CPU的虚拟机模式,并根据该虚拟机模式将操作***切入到非根模式,以及将安全输入保护程序的虚拟机管理器切入到根模式,从而使得当操作***接收到用户的输入数据,即截获到一次I/O操作时,并不会马上处理该输入数据,而是执行一次“#VMEXIT”操作,使得该I/O操作从操作***陷入到虚拟机管理器中虚拟机管理器,由虚拟机管理器对该输入数据进行加密和保存,以供合法程序调用,然后再由虚拟机管理器生成虚假输入数据,并返回虚假输入数据给操作***,这样的话,无论是内核层的键盘钩子,还是应用层的消息钩子,就都没有机会处理该输入数据,从而保证了信息的准确性和真实性;而且,由于返回给操作***的是虚假输入数据,所以即便该虚假输入数据被木马盗取,也是无效的,而合法程序则可以通过直接调用虚拟机管理器的方式来获取正确的用户输入数据,因此,可以在保证***正常使用该输入数据的前提下,提高该信息安全性;此外,由于该功能只在用户需要进行安全输入时启用,因此,不会对***和用户的正常使用造成影响。可见,该方案不仅无需改变用户的使用习惯和配置额外的硬件设备,而且可以更有效的防止木马截获或窜改到用户输入的内容,提高用信息的准确性和安全性。
实施例三、
为了更好地实施以上方法,本发明实施例还提供一种安全输入***,如图3所示,该安全输入***包括启动单元301、切入单元302、处理单元303和关闭单元304;
启动单元301,用于确定用户需要进行安全输入时,启动CPU的虚拟机模式;
在启动虚拟机模式之后,***会为各个程序分配虚拟机管理器,也就是说,此时,***会为安全输入保护程序分配虚拟机管理器。
切入单元302,用于在该虚拟机模式下,将操作***切入到非根模式,以及将安全输入保护程序的虚拟机管理器切入到根模式;
处理单元303,用于由操作***接收用户的输入数据,并传送给安全输入保护程序的虚拟机管理器;由虚拟机管理器对该输入数据进行加密和保存,以供合法程序调用;由虚拟机管理器根据该输入数据生成虚假输入数据,并返回虚假输入数据给操作***;
关闭单元304,用于确定用户安全输入结束时,关闭CPU的虚拟机模式。
例如,切入单元302,具体可以用于在该虚拟机模式下,通过VMXON指令将操作***切入到非根模式,以及将安全输入保护程序的虚拟机管理器切入到根模式。
其中,处理单元303,具体可以用于由操作***接收用户的输入数据,并执行VMEXIT指令,使得该输入数据传送给安全输入保护程序的虚拟机管理器。如下:
操作***硬件驱动层截获到用户通过键盘输入的输入数据(即拦截了一个I/O操作),在未开启虚拟机模式时,操作***本应将该输入数据交给键盘驱动进行处理,但是,由于此时已经开启了虚拟机模式(即执行了步骤101),所以,在操作***还未处理该输入数据(即I/O操作)之前,处理单元303会首先执行一次“#VMEXIT”操作,使得该I/O操作从操作***陷入到虚拟机管理器中,即将该输入数据发送给虚拟机管理器。
此外,由于开启虚拟机模式时,在虚拟机管理器中只能有一个实例在运行,因此可以保证信息处理的排他性。同时由于该“#VMEXIT”操作先于操作***的其他任何处理操作,所以无论是内核层的键盘钩子,还是应用层的消息钩子,都还没有机会处理该输入数据,因此,也可以保证信息的准确性和真实性,即在此之前未被篡改和截获。
其中,关闭单元304,具体可以用于确定用户安全输入结束时,通过VMXOFF指令关闭CPU的虚拟机模式。
当关闭单元304关闭虚拟机模式之后,非根模式和根模式就不再存在了,操纵***又重新回到了最初的Ring0层,可见,该方案的整个过程对用户都是透明的,而用户的输入在此期间也不会有任何影响。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
由上可知,本实施例的安全输入***的启动单元301可以在确定用户需要进行安全输入时,启动CPU的虚拟机模式,并由切入单元302根据该虚拟机模式将操作***切入到非根模式,以及将安全输入保护程序的虚拟机管理器切入到根模式,从而使得当操作***接收到用户的输入数据,即截获到一次I/O操作时,并不会马上处理该输入数据,而是由处理单元303执行一次“#VMEXIT”操作,使得该I/O操作从操作***陷入到虚拟机管理器中虚拟机管理器,由虚拟机管理器对该输入数据进行加密和保存,以供合法程序调用,然后再由虚拟机管理器生成虚假输入数据,并返回虚假输入数据给操作***,这样的话,无论是内核层的键盘钩子,还是应用层的消息钩子,就都没有机会处理该输入数据,从而保证了信息的准确性和真实性;而且,由于返回给操作***的是虚假输入数据,所以即便该虚假输入数据被木马盗取,也是无效的,而合法程序则可以通过直接调用虚拟机管理器的方式来获取正确的用户输入数据,因此,可以在保证***正常使用该输入数据的前提下,提高该信息安全性;此外,由于该功能只在用户需要进行安全输入时启用,因此,不会对***和用户的正常使用造成影响。可见,该方案不仅无需改变用户的使用习惯和配置额外的硬件设备,而且可以更有效的防止木马截获或窜改到用户输入的内容,提高用信息的准确性和安全性。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,RandomAccess Memory)、磁盘或光盘等。
以上对本发明实施例所提供的一种安全输入方法和***进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (6)

1.一种安全输入方法,其特征在于,包括:
确定用户需要进行安全输入时,启动中央处理器的虚拟机模式,为安全输入保护程序分配虚拟机管理器;
在所述虚拟机模式下,将操作***切入到非根模式,以及将安全输入保护程序的虚拟机管理器切入到根模式;
由操作***接收用户的输入数据,且操作***还未处理该输入数据之前,执行虚拟机退出指令VMEXIT,使得该输入数据的I/O操作从操作***陷入到虚拟机管理器中,以将该输入数据传送给安全输入保护程序的虚拟机管理器;
由虚拟机管理器对所述输入数据进行加密和保存,以供合法程序调用;
由虚拟机管理器根据所述输入数据生成虚假输入数据,并返回虚假输入数据给操作***;
确定用户安全输入结束时,关闭中央处理器的虚拟机模式。
2.根据权利要求1所述的方法,其特征在于,所述在所述虚拟机模式下,将操作***切入到非根模式,以及将安全输入保护程序的虚拟机管理器切入到根模式,包括:
在所述虚拟机模式下,通过虚拟机扩展指令集启动指令VMXON将操作***切入到非根模式,以及将安全输入保护程序的虚拟机管理器切入到根模式。
3.根据权利要求1或2所述的方法,其特征在于,所述确定用户安全输入结束时,关闭中央处理器的虚拟机模式,包括:
确定用户安全输入结束时,通过虚拟机扩展指令集关闭指令VMXOFF关闭中央处理器的虚拟机模式。
4.一种安全输入***,其特征在于,包括:
启动单元,用于确定用户需要进行安全输入时,启动中央处理器的虚拟机模式,为安全输入保护程序分配虚拟机管理器;
切入单元,用于在所述虚拟机模式下,将操作***切入到非根模式,以及将安全输入保护程序的虚拟机管理器切入到根模式;
处理单元,用于由操作***接收用户的输入数据,且操作***还未处理该输入数据之前,执行虚拟机退出指令VMEXIT,使得该输入数据的I/O操作从操作***陷入到虚拟机管理器中,以将该输入数据传送给安全输入保护程序的虚拟机管理器;由虚拟机管理器对所述输入数据进行加密和保存,以供合法程序调用;由虚拟机管理器根据所述输入数据生成虚假输入数据,并返回虚假输入数据给操作***;
关闭单元,用于确定用户安全输入结束时,关闭中央处理器的虚拟机模式。
5.根据权利要求4所述的安全输入***,其特征在于,
所述切入单元,具体用于在所述虚拟机模式下,通过虚拟机扩展指令集启动指令VMXON将操作***切入到非根模式,以及将安全输入保护程序的虚拟机管理器切入到根模式。
6.根据权利要求4或5所述的安全输入***,其特征在于,
所述关闭单元,具体用于确定用户安全输入结束时,通过虚拟机扩展指令集关闭指令VMXOFF关闭中央处理器的虚拟机模式。
CN201310060190.1A 2013-02-26 2013-02-26 一种安全输入方法和*** Active CN104008327B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201310060190.1A CN104008327B (zh) 2013-02-26 2013-02-26 一种安全输入方法和***
PCT/CN2013/088148 WO2014131295A1 (zh) 2013-02-26 2013-11-29 一种安全输入方法和***
TW103100709A TW201433937A (zh) 2013-02-26 2014-01-08 安全輸入方法和系統
US14/830,288 US20150356307A1 (en) 2013-02-26 2015-08-19 Safe input method and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310060190.1A CN104008327B (zh) 2013-02-26 2013-02-26 一种安全输入方法和***

Publications (2)

Publication Number Publication Date
CN104008327A CN104008327A (zh) 2014-08-27
CN104008327B true CN104008327B (zh) 2017-12-01

Family

ID=51368977

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310060190.1A Active CN104008327B (zh) 2013-02-26 2013-02-26 一种安全输入方法和***

Country Status (4)

Country Link
US (1) US20150356307A1 (zh)
CN (1) CN104008327B (zh)
TW (1) TW201433937A (zh)
WO (1) WO2014131295A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107832105B (zh) * 2017-11-24 2022-02-15 南昌黑鲨科技有限公司 一种应用程序启动方法、启动装置及计算机可读存储介质
CN116244757A (zh) * 2023-03-15 2023-06-09 武汉天楚云计算有限公司 一种计算机设备监测警报方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102096786A (zh) * 2011-03-04 2011-06-15 上海交通大学 基于硬件虚拟化的跨平台安全保护***
CN102195940A (zh) * 2010-03-12 2011-09-21 北京路模思科技有限公司 一种基于虚拟机技术安全输入和提交数据的方法和***
CN102521531A (zh) * 2011-11-24 2012-06-27 华中科技大学 基于硬件虚拟化的密码保护***

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010011667A (ko) * 1999-07-29 2001-02-15 이종우 보안 기능을 갖는 키보드 및 이를 이용한 시스템
US20090254994A1 (en) * 2002-02-18 2009-10-08 David Lynch Waterson Security methods and systems
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
US9563457B2 (en) * 2013-11-18 2017-02-07 Bitdefender IPR Management Ltd. Enabling a secure environment through operating system switching

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102195940A (zh) * 2010-03-12 2011-09-21 北京路模思科技有限公司 一种基于虚拟机技术安全输入和提交数据的方法和***
CN102096786A (zh) * 2011-03-04 2011-06-15 上海交通大学 基于硬件虚拟化的跨平台安全保护***
CN102521531A (zh) * 2011-11-24 2012-06-27 华中科技大学 基于硬件虚拟化的密码保护***

Also Published As

Publication number Publication date
WO2014131295A1 (zh) 2014-09-04
CN104008327A (zh) 2014-08-27
US20150356307A1 (en) 2015-12-10
TW201433937A (zh) 2014-09-01

Similar Documents

Publication Publication Date Title
Guan et al. Trustshadow: Secure execution of unmodified applications with arm trustzone
CN108733455B (zh) 基于ARM TrustZone的容器隔离性增强***
Santos et al. Using ARM TrustZone to build a trusted language runtime for mobile applications
Li et al. A trusted virtual machine in an untrusted management environment
Li et al. Secure virtual machine execution under an untrusted management OS
CN109565444A (zh) 安全公共云
CN107533609A (zh) 用于对***中的多个可信执行环境进行控制的***、设备和方法
Mai et al. Verifying security invariants in ExpressOS
England et al. Para-virtualized TPM sharing
CN109918919A (zh) 认证变量的管理
CN107690628A (zh) 具有所有权表的数据处理装置和方法
CN107771323A (zh) 共享页
CN110022199A (zh) 用于计数器模式存储器保护的间接目录
US20110035586A1 (en) System and method for securing a computer comprising a microkernel
CN112433822A (zh) 基于三权分立的跨域网络终端虚拟机的实现方法
CN109583190A (zh) 监控进程的方法和装置
Zhao et al. vSGX: virtualizing SGX enclaves on AMD SEV
CN110874468A (zh) 应用程序安全保护方法以及相关设备
US10250595B2 (en) Embedded trusted network security perimeter in computing systems based on ARM processors
Benadjila et al. Wookey: Designing a trusted and efficient USB device
Yang et al. Authenticated storage using small trusted hardware
CN104598842B (zh) 一种虚拟机监控器信任域分割方法
CN104008327B (zh) 一种安全输入方法和***
US10678577B2 (en) Method for implementing virtual secure element
Zobaed et al. Confidential computing across edge-to-cloud for machine learning: A survey study

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230626

Address after: 518000 Tencent Building, No. 1 High-tech Zone, Nanshan District, Shenzhen City, Guangdong Province, 35 Floors

Patentee after: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd.

Patentee after: TENCENT CLOUD COMPUTING (BEIJING) Co.,Ltd.

Address before: 518031 East 403 room, Sai Ge science and Technology Park, Futian District Zhenxing Road, Shenzhen, Guangdong, China, 2

Patentee before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd.