CN1918556A - 使用安全输入装置驱动器的计算机安全装置和方法 - Google Patents

使用安全输入装置驱动器的计算机安全装置和方法 Download PDF

Info

Publication number
CN1918556A
CN1918556A CNA2005800042376A CN200580004237A CN1918556A CN 1918556 A CN1918556 A CN 1918556A CN A2005800042376 A CNA2005800042376 A CN A2005800042376A CN 200580004237 A CN200580004237 A CN 200580004237A CN 1918556 A CN1918556 A CN 1918556A
Authority
CN
China
Prior art keywords
data
input
address
data input
safe
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.)
Pending
Application number
CNA2005800042376A
Other languages
English (en)
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.)
Kings Information and Network
Original Assignee
Kings Information and Network
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
Priority claimed from KR10-2004-0007614A external-priority patent/KR100500465B1/ko
Application filed by Kings Information and Network filed Critical Kings Information and Network
Publication of CN1918556A publication Critical patent/CN1918556A/zh
Pending legal-status Critical Current

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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/83Protecting input, output or interconnection devices input devices, e.g. keyboards, mice or controllers thereof

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

公开了一种使用安全输入装置驱动器的计算机安全装置和方法。经数据输入单元输入的数据在安全输入装置驱动器直接被加密,而不经过操作系统中支持的操作系统输入装置驱动器。由此,从一开始就可以防止经数据输入单元输入的数据被任何黑客程序非法获取。

Description

使用安全输入装置驱动器的计算机安全装置和方法
技术领域
本发明总体上涉及计算机安全,更具体地,涉及用安全输入中断服务例程(ISR)来代替操作系统(OS)的注册在中断描述符表(IDT)中的输入ISR的计算机安全装置和方法。以此配置,通过安全输入ISR而不是OS输入ISR来处理从诸如键盘的数据输入单元输入的数据,从而使得可以保护用户的按键数据免于被黑客程序非法获取。
背景技术
目前,随着计算机和互联网技术的快速发展,通过计算机的辅助来执行重要的商业应用,例如互联网银行和家庭交易服务(HTS)。然而,这种基于计算机的商业应用可能例如被间谍软件或按键记录器恶意利用。这些间谍软件和按键记录器通过数据输入单元的装置恶意地对用户输入的数据进行获取、记录并发送给身份窃贼。这种构成身份盗窃的黑客方法在快速上升。
为了避免这些问题,已开发并销售了多种工具。这些工具一般从用户的计算机检测并去除恶意程序的间谍软件和按键记录器,因此被称为杀毒、反间谍软件和个人防火墙。然而,在变形的和新引入的恶意程序的情况下,目前的工具变得无用,直到找到已知补救措施:获取、分析并除去变形恶意程序的方法,这通常通过更新病毒定义来进行。
为了解决此缺点,引入了从系统直接接收输入数据并且安全地将其发送到应用程序以防止恶意程序窃取输入数据的方法。公开了这些方法的参考文献如下:韩国专利公报第2002-48313号(标题为:键盘防黑客方法),韩国专利第0378586号(标题为:基于ActiveX的键盘防黑客方法和装置),韩国专利公报第2004-92101号(标题为:使用虚拟按键数据传送来进行按键黑客保护),韩国专利公报第2004-66237号(标题为:键输入欺诈检测方法),韩国专利第0447777号(标题为:按键数据的防黑客方法和记录该方法的计算机可读记录介质),以及韩国专利公报第2003-36276号(标题为:使用安全输入装置驱动器的计算机安全系统)。
作为上述现有专利文献的代表,介绍韩国专利第0378586号。该专利公开了对于网络浏览器和应用程序具有ActiveX格式的安全程序,并且其包括用于保护按键数据的软件安全输入窗口。该安全程序保护网络浏览器和应用程序上的键盘数据。然而,以此配置,只能在应用程序层防止输入数据的泄漏。也就是说,如果使用在安全装置驱动器之前窃取输入数据的过滤驱动器,或者黑客程序位于低于应用程序的层次,则该专利无能为力。
以下,参照图1来说明常规的计算机安全装置。图1是用于说明常规计算机安全装置的概念图。具体地,将说明对通过作为多个数据输入单元之一的键盘输入的数据进行保护的方法。
当操作键盘时,OS参照存储在IDT11中的键盘ISR的地址来执行键盘ISR12。键盘ISR12将经由键盘装置驱动器13从键盘输入的数据转换为应用程序可用的扫描码。经由键盘过滤装置驱动器14将转换为扫描码的数据发送到安全键盘过滤装置驱动器15,并将其加密。然后,在解密DLL(动态链接库)16对加密数据进行解密,并将其发送到应用程序17。
通过此处理,在安全键盘过滤装置驱动器15通过嵌入OS的键盘处理模块来对经键盘输入的数据进行加密。因此,当黑客程序(例如按键记录器)安装在数据加密之前的步骤中的过滤驱动器(例如键盘过滤装置驱动器)中时,其可以先取得用户的按键数据。
换句话说,使用该常规键盘输入安全系统,不能保证对于变形的间谍软件和按键记录器的安全。为此原因,需要能够根本上解决这种问题的新型安全方法。
同时,上述现有技术中的大部分都具有如上所述的类似缺点。此外,其中的一些在实际执行中不能正确运行。因此难以知道它们是否正确运行和执行。
发明内容
因此,本发明的一个目的是提供一种有效地保护经数据输入单元输入的数据的方法。
本发明的另一目的是防止数据在通过操作系统输入装置驱动器时被黑客程序获取。
本发明的另一目的是提供除了将安全输入ISR的地址存储在操作系统输入ISR的地址区域的基本技术之外的能够提高安全性的方法。
为了实现前述目的,根据本发明的第一方面,提供了一种使用安全输入装置驱动器的计算机安全装置。所述计算机安全装置包括:IDT,用于存储负责中断的函数的地址列表,并在OS支持的操作系统输入ISR的部分地址区域中存储安全输入ISR的地址;安全输入装置驱动器,用于当数据输入单元产生中断时,根据安全输入ISR的地址执行安全输入ISR以通过数据输入单元接收数据,并对接收的数据进行加密;以及安全输入单元,用于对在安全输入装置驱动器加密的数据进行解密,并将解密的数据发送到应用程序。
安全输入装置驱动器可以包括:数据输入接收器,用于当数据输入单元产生中断时,根据安全输入ISR的地址执行安全输入ISR,以通过数据输入单元接收数据;数据加密器,用于对数据输入接收器中接收的数据进行加密;监视器,用于监视数据输入接收器的地址是否发生了变化,数据输入接收器的地址注册在IDT中;以及控制器,用于控制安全输入装置驱动器的操作。
同时,监视器可以被构成为将先前存储的数据输入接收器的地址与IDT的对应于数据输入单元的输入ISR的区域的地址进行比较和核对,并且,在输入ISR区域的地址已改变的情况下,其用数据输入接收器的原始地址来代替改变的地址。
根据本发明的第二方面,提供了一种使用安全输入装置驱动器的计算机安全方法。所述计算机安全方法包括以下步骤:当数据输入单元产生中断时,参照用作安全ISR的数据输入接收器的地址来驱动安全输入装置驱动器,数据输入接收器的地址预先注册在IDT中;对从数据输入接收器接收的数据进行加密并将其发送;以及对加密数据进行解密并将解密数据发送到应用程序。
所述计算机安全方法可以进一步包括以下步骤:监视注册在IDT中的数据输入接收器的地址是否发生了改变。一旦IDT已改变(没有用户的许可而被黑客程序改变),则该计算机安全方法可以进一步包括以下步骤:将改变的地址再次恢复回数据输入接收器的原始地址。
同时,所述计算机安全方法可以进一步包括以下步骤:预先存储安全ISR的散列值和二进制码;读出安全ISR的当前散列值;以及将读取的散列值与存储的散列值进行比较,以确定这两个散列值是否彼此相同。
此外,所述计算机安全方法可以进一步包括以下步骤:周期地使控制寄存器(CR4)的调试扩展标志和调试控制寄存器(DR7)无效。
此外,所述计算机安全方法可以进一步包括以下步骤:在预定时间段内使键盘缓冲器复位,以防止通过输入端口和输出端口读取数据。
根据本发明的第三方面,提供了一种使用安全输入装置驱动器的计算机安全方法。所述计算机安全方法包括以下步骤:当数据输入单元产生中断时,参照用作安全ISR的数据输入接收器的地址来驱动安全输入装置驱动器,数据输入接收器的地址预先注册在IDT中;将从数据输入接收器接收的数据发送到应用程序;以及监视注册在IDT中的数据输入接收器的地址是否发生了改变。
根据本发明的第四方面,提供了一种记录介质,该记录介质记录有如上所述的使用安全输入装置驱动器的计算机安全方法的执行程序。这里,术语“记录介质”没有具体限制,只要可以记录应用本发明的安全方法的程序即可。例如,可以列举:能够按离线方式由用户安装在各个计算机中的诸如CD、软盘、存储棒等的产品,或者用于按能够通过互联网下载的形式存储程序的网络服务器、数据库等。此外,术语“执行程序”可以包括按已知压缩模式压缩的形式。
根据本发明的第五方面,提供了一种使用安全输入装置驱动器的计算机安全装置。所述计算机安全装置包括:IDT,用于存储负责中断的函数的地址列表,并存储安全输入ISR的地址而不是OS提供的原始输入ISR的地址;安全输入装置驱动器,用于当数据输入单元产生中断时,执行安全输入ISR以从数据输入单元接收数据并对接收的数据进行加密;以及安全输入单元,用于对在安全输入装置驱动器加密的数据进行解密,并将解密的数据发送到应用程序。
附图说明
结合附图,根据对优选实施方式的以下说明,本发明的这些和/或其他方面和优点将变得显而易见并且更容易理解,在附图中:
图1是用于说明常规计算机安全装置的概念图;
图2表示根据本发明的示例性实施例的计算机安全装置的示意性配置;
图3表示作为用于通知用户本发明的安全装置是否正常工作的手段的一个示例的盘图标;
图4是用于说明在本发明的计算机安全装置中保护经数据输入单元输入的数据的方法的流程图;
图5是用于说明根据本发明的示例性实施例的计算机安全方法的概念视图;
图6是用于说明在本发明的计算机安全装置中通过监视器来监视注册在IDT中的数据输入接收器地址是否发生了变化的方法的流程图;
图7表示根据本发明的示例性实施例的显示安全状态的画面的一个示例;
图8是用于说明在本实施例的计算机安全装置中将跳转二进制码插入安全ISR的方法的概念图,其中说明了破坏安全性的情况;
图9是用于说明在本实施例的计算机安全装置中的解决通过将跳转二进制码插入安全ISR而破坏安全性的问题的处理的流程图;以及
图10是用于说明在调用安全ISR之前跳转到陷阱ISR的方法的概念图,其中说明了破坏安全性的情况。
具体实施方式
以下,参照附图来说明根据本发明的优选实施例。这里,当一个部件连接到另一部件时,所述一个部件不仅可以直接连接到所述另一部件,而且可以经由其他部件间接连接到所述另一部件。此外,为了清楚,省略了无关部件。此外,通篇用类似标号表示类似部件。
图2表示根据本发明示例性实施例的计算机安全装置的示意性配置。
图2中的计算机安全装置2的功能是保护从数据输入单元210输入的数据。计算机安全装置2由IDT220、安全输入装置驱动器230以及安全输入单元240组成。
数据输入单元210没有具体限制,而是可以一般地表示从系统用户接收数据的所有用户接口单元。例如,作为数据输入单元210,可以使用键盘、数字小键盘、鼠标、操纵杆等,优选地可以使用能够输入相对大量的信息并广泛应用于个人计算机等的键盘。
IDT220存储负责中断的函数的地址列表,并在OS输入ISR的地址区域中存储安全输入ISR的地址。也就是说,IDT220存储安全输入ISR的地址而不是嵌入OS的原始输入ISR的地址。
IDT220是从系统OS提供的区域,其存储负责外部中断、内部中断和异常的函数的地址列表。例如,IDT220是专用于指定256个ISR的存储器中的8字节中断描述符的数组。在此情况下,开始的32个条目是为处理器异常保留的,任何其他16个条目可以用于硬件中断(或外部中断)。其余条目用于软件中断(或内部中断)。IDT220的地址存储在称作“中断描述符表寄存器(IDTR)”的处理器寄存器中。对IDT的详细说明,包括对IDT与IDTR之间的关系的详细说明,可以参见“IA-32IntelArchitecture Software Developer’s Manual,Volume3:System ProgrammingGuide”,在此通过引用并入其内容。
当经数据输入单元210输入数据时,产生中断,这样产生对应数据输入单元210的标识号。此号称作“中断向量”。OS通过采用该中断向量作为索引来定位存储在IDT220中的作为为此目的而制成的函数的ISR的地址,来执行该ISR。此时,由安全输入装置驱动器230驱动的安全输入ISR的地址而不是OS支持的常规输入ISR的地址注册并存储在IDT220中。因此,当数据输入到数据输入单元210并因此产生中断时,执行安全输入ISR。
安全输入装置驱动器230根据注册在IDT220中的安全输入ISR地址来接收经数据输入单元210的数据,对接收的数据进行加密,并将加密数据发送到安全输入单元240。安全输入装置驱动器230的地址而不是操作系统输入装置驱动器的地址注册在IDT220中。因此,当数据输入单元210产生中断时,不执行OS支持的常规输入ISR,而执行安全输入装置驱动器230支持的安全输入ISR。
将数据输入接收器230的地址(具体为输入装置驱动器230的数据输入接收器231的地址)注册在IDT220中的方法是多种多样的,没有具体限制。优选地,可以用数据输入接收器231的地址来替换IDT220内的按照数据输入单元210的地址的中断向量进行了偏移的区域。IDT220的地址存储在IDTR中。例如,在Windows 2000的OS中,可以通过使用诸如HallGetInterruptVector的函数来获取各个数据输入单元210的中断向量。作为此函数的结果,可以获取键盘中断向量和鼠标中断向量。从在IDTR中获取的IDT220的地址值起偏移了输入装置向量的区域对应于安全输入ISR的地址的区域。这样,可以将数据输入接收器231的地址注册在对应的区域。以下示例示出了在Windows2000中包括将PS/2类型的OS键盘ISR替换为安全输入ISR的例程的情况。
HookInterrupt(){nSaveVecNo=HalGetInterruptVector(Isa,0,1,1,&irql,&Affinity);for(nCpu=0;nCpu<KeNumberProcessors;++nCpu){pIdtBase=GetIDTBaseAddress();IDT_SetVector(pIdtBase+(nSaveVecNo&0xff),(DWORD)SecuKbdISR,&OriginalISR);}}void IDT_SetV ector(PNT_IDT p,DWORD SecuKbdISR,DWORD*pSaveOffset){*pSaveOffset=(DWORD)((((DWORD)p->nHighOffset)<<16)+p→nLowOffset);p→nLowOffset=(WORD)(SecuKbdISR&0xffff);p→nHighOffset=(WORD)(((DWORD)SecuKbdISR)>>16);p→nHighOffset=(WORD)(((DWORD)SecuKbdISR)>>16);
在这些函数中,HooKInterrupt()用于替换IDT中的键盘中断服务,SecuKbdISR()是用于保护键盘数据的安全键盘ISR。
在HookInterrupt()函数中,获取与通过OS中的HallGetInterruptVector()函数提供的1号IRQ(中断请求)对应的键盘中断向量的值,并将其存储在nSaveVecNo参数中。各个处理器单独地设置有IDT。因此,各个处理器在IDT中注册安全ISR的地址。对应中断的KeNumberProcessor表示处理器的数量,pIdtBase为IDT存储在IDTR中的地址。OriginalISR是旨在存储已注册在IDTR中的键盘ISR的地址的储存库,MyKdbISR是代替已注册键盘ISR的安全键盘ISR的地址。IDT_SetVector()函数不仅用于将SecuKdbISR注册在IDT中,而且备份已安装的ISR地址。
void_declspec(naked)SecuKbdISR(){data=ReadData();if(Protection_mode){ClearBuffer();StoreData(data);}else{WriteKbdBuffer(data);CallOriginalISR();}}
当产生键盘中断时,调用SecuKdbISR()函数。在ReadData()函数中,通过60h端口从键盘缓冲器读取键盘输入数据。Protection_mode具有“1”或“0”的值。例如,如果当前状态是保护键盘输入数据的状态,则Protection_mode具有值“1”,如果不是,则Protection_mode具有值“0”。如果Protection_mode是“1”,则通过使用用于对键盘缓冲器进行复位Clearbuffer函数,将60h端口复位为诸如0F4h(清零输出缓冲器)或0EE(回声(echo),键盘对应于EEh)的空数据,以防止通过60h端口读取数据。虽然按键记录器执行重复读取60h端口以检查输入数据的端口扫描处理,但是这是能够通过将空数据发送到60h端口而防止泄漏数据的方法。因此,这用于加强安全性,在以下对此进行说明。
为了将数据上载到应用程序,通过使用StoreData的函数来存储键盘输入数据。如果Protection_mode是“0”,则在WriteKbdBuffer函数中将键盘输入数据再次写入键盘输出端口而不保护数据。在此函数中,使用d2h(写键盘缓冲器)8048键盘命令。随后,通过使用CallOriginalISR()函数从HookInterrupt()调用已存储的OriginalISR。
安全输入单元240将在安全输入装置驱动器230加密的数据解密为原始数据,将解密的数据发送到应用程序250。当解密了数据时,安全输入单元240显示解密完成的状态,并通过使用如图3所示的盘图标来通知用户安全系统是否正常工作。在本实施例中,说明仅限于将加密数据解密为原始数据并将解密的数据从安全输入单元240发送到应用程序250。在实际实现中,可以在应用程序250处或者在通过互联网发送的处理中在特定/指定服务器处对对加密数据进行解密。例如,为了满足如下的用户需要:应当在应用程序的画面上显示键值,可以采用多种方法。在应当在应用程序画面上显示键值的情况下,特别是在键值是口令的情况下,可以输出符号*。
随后,更详细地说明输入装置驱动器230。
安全输入装置驱动器230包括数据输入接收器231、数据加密器232和控制器234。如果有必要,安全输入装置驱动器230可以进一步包括监视器233。监视器233监视注册在IDT220中的数据输入接收器231的地址是否发生了变化(没有正确的用户许可而发生了变化)。在下文中详细说明监视器233的功能或责任。
当数据输入单元210产生中断时,数据输入接收器231读取经数据输入单元210输入的数据,并将数据发送到数据加密器232。
数据加密器232加密从数据输入接收器231接收的数据,并将加密的数据发送到安全输入单元240。换句话说,经数据输入单元210输入的数据在安全输入装置驱动器230直接被加密而不经过OS输入装置驱动器,并被发送到安全输入单元240,从而使得任何黑客程序都不可能获取用户的输入数据并防止了获取在数据加密器232加密的数据。优选地,加密方法使用基于Rijndael算法(其被选为对US高级加密标准(AES)提出的加密算法)的128位加密方案。Rijndael算法在安全性、处理速度、和使用存储器能力的方面具有优异的性能。然而,此算法只是示例。因此,显然可以使用任何常规的优异加密算法。
控制器234可以被配置为控制监视器233和数据加密器232,并可以控制安全输入单元240的解密器242。在实际实现中,可以将控制器234单独地提供给安全输入单元240。
安全输入单元240包括:解密器241,用于将在安全输入装置驱动器230加密的数据解密为原始数据;以及安全状态显示器242,用于通知解密真相并显示安全系统是否正常工作。安全状态显示器242被配置为当在解密器241解密的数据发送到应用程序250时一起工作,由此通过改变如图3中的两个图标图像来通知用户输入数据在受到保护。图3示出了盘图标作为用于使用户确信本发明的安全装置正常工作的手段的一个示例。此时,所使用的图标可以是盘图标或者应用程序中包括的图标。
以下,参照图4和5示意性地说明根据本发明实施例的计算机安全装置的操作。图4是用于说明在本发明的计算机安全装置中保护经数据输入单元输入的数据的方法的流程图。
参照图4,当激活应用程序250(S301)并且随后数据输入单元210产生中断(S303)时,OS参照注册在IDT220中的数据输入接收器231的地址来驱动安全输入装置驱动器230的数据输入接收器231(S305)。换句话说,当数据输入单元210产生中断时,OS执行安全ISR,即数据输入接收器231,而不是OS输入装置驱动器的ISR,由此接收经数据输入单元210输入的数据。
随后,数据加密器232对从数据输入接收器231接收的数据进行加密(S307),然后将加密的数据发送到安全输入单元240。安全输入单元240将在安全输入装置驱动器230加密的数据解密为原始数据,然后将解密的数据发送到应用程序250。
图5是用于说明根据本发明示例性实施例的计算机安全方法的概念视图。如果将图5的计算机安全方法与图1的计算机安全方法相比较,则可以更清楚地理解。
更具体地,在图1的计算机安全方法的情况下,当操作键盘时,OS参照存储在IDT中的键盘ISR地址来执行键盘ISR。相反,在图5的情况下,使用安全输入ISR而不是OS输入ISR来处理从数据输入单元输入的数据。换句话说,根据本计算机安全装置,在OS处理模块对数据进行处理之前,数据保护系统首先工作。由于这一不同,虽然在较高层发现大多数黑客程序,还是可以保护经数据输入单元输入的数据免受任何黑客程序的非法获取。
随后,更详细地说明本实施例的计算机安全装置中监视器233的函数。监视器233(图2)是可选部件,是用于加强安全性的手段。监视器233监视注册在IDT220中的数据输入接收器231的地址是否发生了变化,并检查安全性ISR的完整性。
图6是用于说明图2的监视器233监视注册在IDT220的数据输入接收器231的地址是否发生了变化的方法的流程图。
监视器233预先存储数据输入接收器231的地址(S401),然后读出存储在IDT220的输入ISR区域中的地址值(S402)。
随后,监视器233将先前存储的数据输入接收器231的地址与输入ISR的地址进行比较(S403)。
作为比较的结果,如果两个地址的值相同,则重复步骤S402和S403。然而,如果两个地址的值不同,则确定注册在IDT220中的数据输入接收器231的地址可能已经被黑客程序等非法改变。这样,用数据输入接收器231的地址来替换IDT220的输入ISR区域的被改变地址(S404)。
并且,监视器233将此事实通知给控制器234。然后,控制器234通过在画面上显示如图7所示的消息窗口而将该事实通知给用户(S405)。
随后,除了将安全ISR注册在IDT中的概念之外,说明能够提高安全性的方法。以下是将安全ISR注册在IDT中的步骤中存在的一些弱点和解决方案。
第一弱点是与注册安全ISR的方法类似的方法。在将安全ISR的地址注册在IDT中之后,需要防备将安全ISR地址注册为ISR地址以进行非法数据获取的方法的对策。换句话说,当任何恶意按键记录器程序改变注册在IDT220的输入ISR区域中的数据输入接收器231(图2)的地址以获取按键数据时,输入数据没有被正常地接收到数据输入接收器231,由此发送到被按键记录器程序改变的不希望位置。
作为防止此现象的对策,例如,监视器233可以被配置为连续监视数据输入接收器231的地址,然后,当数据输入接收器231的地址被改变时,将改变的事实发送到控制器234,并再次将输入ISR区域的被改变地址改变为数据输入接收器231的地址。在此情况下,接收该事实的控制器234可以通过在画面上显示警告消息而向用户通知该事实。
第二弱点是将跳转二进制码插入安全ISR的方法,这可能涉及作为示例用于API钩的技术。图8是表示在本实施例的计算机安全装置中将跳转二进制码插入安全ISR的方法的概念图,其中说明了破坏安全性的情况。参照图8说明此方法,在函数区域插入跳转到不希望函数730的二进制码jmp720以用于非法数据获取,当产生中断时执行在安全ISR之前指定的恶意ISR的函数。由此接收并存储数据,然后跳转到安全SIR。
图9是用于说明在本实施例的计算机安全装置中解决通过将跳转二进制码插入安全ISR的方法来破坏安全性的问题的处理的流程图。参照图9来说明第二解决方案。首先,预先存储安全ISR的散列值和二进制码(S501)。读出安全ISR的当前散列值(S503)。然后,通过使用校验和或散列算法来插入安全ISR的二进制码,从而能够检查数据的完整性。换句话说,为了验证是否插入了跳转二进制码,根据读取的散列值与存储的散列值的比较来进行确定(S505)。从比较的结果,如果两个值彼此不相同,则用原始码来恢复认为数据完整性被破坏时存储的安全ISR的二进制码(S507),将结果发送到控制器234。控制器234可以通过在画面上显示消息窗口来向用户通知结果。
第三弱点是在调用安全ISR之前跳转到陷阱ISR的方法,其中参照图10来说明破坏安全性的情况。在陷阱IDT中注册有按键记录器ISR。使能控制寄存器CR4中的DE(调试扩展)标志。调试控制寄存器DR7通过使用设置在调试控制寄存器DR0中的端口号来进行I/O读取或写入。在此情况下,进行设置以产生处理器中断,在调试控制寄存器DR0中设置60h。因此,当操作键盘时,调用注册的安全ISR。当通过60h端口读取输入数据(例如in al,60h)时,在ISR中,监视端口的CPU(中央处理单元)产生中断,发生向注册在陷阱IDT中的按键记录器ISR的跳转。按键记录器ISR从AL寄存器读取数据并存储该数据,当陷阱ISR的处理完成时返回跳转之前的位置。作为防备该处理的对策,可以周期性地使控制寄存器CR4的DE标志无效以使得不使用调试控制寄存器跳转到陷阱ISR,并且可以使调试控制寄存器DR7无效。
第四弱点是通过重复读取用于键盘或鼠标的输入和输出的60h端口来检查输入数据的端口扫描方法。这里,需要防备使用端口扫描方法来获取数据的对策。如上所述,如果当前状态是保护键盘输入数据的状态,则Protection_mode具有值“1”。如果不是这样,则Protection_mode具有值“0”。这样,为了准备使用端口扫描方法来进行数据获取,当Protection_mode具有值“1”时,可以通过使用Clearbuffer函数(其用于使键盘缓冲器复位)来用诸如0F4h(清零输出缓冲器)或0EE(回音,键盘对应于EEh)的空数据来使60h端口复位,以防止通过60h端口读取数据。
同时,应用本发明的计算机安全方法的程序记录到存储介质,例如CD(光盘)、软盘、存储棒等,作为产品销售,并由用户按离线方式安装在各个计算机中。当使用指定的程序或任何其他程序时,可以使用应用该计算机安全方法的程序。与此不同,自动或手动地通过互联网访问指定站点而将应用该计算机安全方法的程序下载并安装为文件的形式。当用户经诸如键盘的数据输入单元而输入数据以通过诸如InternetExplorer的网络浏览器将信息发送到希望的站点时,可以执行应用该计算机安全方法的程序。
根据本发明,可以防止从计算机输入单元输入的数据被安装在计算机系统中的任何黑客工具所窃取并发送到第三方,从而可以将用户的按键数据安全地发送到应用程序。
此外,本发明的安全系统适于通过安全输入装置驱动器而不是OS支持的OS输入装置驱动器来直接对经数据输入单元输入的数据进行加密。由此,虽然大多数黑客程序安装在上级阶段,但是从一开始就可以防止经数据输入单元输入的数据被任何黑客程序非法获取。
此外,对将安全输入ISR的地址存储在OS输入ISR的地址区域附加上基本原则,这使得可以消除将安全ISR注册在IDT中的步骤中存在的各种弱点。
虽然示出并说明了本发明的几个实施例,但是本领域技术人员应该理解,可以不脱离本发明的原理和精神的情况下对该实施例进行修改,本发明的范围在权利要求书及其等价物中限定。

Claims (19)

1、一种使用安全输入装置驱动器的计算机安全装置,包括:
中断描述符表,用于存储负责中断的函数的地址列表,并在操作系统提供的操作系统输入中断服务例程的部分地址区域中存储安全输入中断服务例程的地址;
安全输入装置驱动器,用于当数据输入单元产生中断时,根据安全输入中断服务例程的地址来执行安全输入中断服务例程以通过该数据输入单元接收数据,并对接收的数据进行加密;以及
安全输入单元,用于对在安全输入装置驱动器加密的数据进行解密,并将经解密的数据发送到应用程序。
2、根据权利要求1所述的计算机安全装置,其中,安全输入装置驱动器包括:
数据输入接收器,用于当数据输入单元产生中断时,执行安全输入中断服务例程以接收从该数据输入单元输入的数据;
数据加密器,用于对数据输入接收器中接收到的数据进行加密;
监视器,用于监视数据输入接收器的地址是否发生了变化,所述数据输入接收器的地址注册在中断描述符表中;以及
控制器,用于控制安全输入装置驱动器的操作。
3、根据权利要求2所述的计算机安全装置,其中,监视器将先前存储的数据输入接收器的地址与中断描述符表的对应于所述数据输入单元的输入中断服务例程的区域的地址进行比较,当输入中断服务例程区域的地址已改变时,用数据输入接收器的地址再次替换改变了的地址。
4、一种使用安全输入装置驱动器的计算机安全方法,包括以下步骤:
当数据输入单元产生中断时,参照用作安全中断服务例程的数据输入接收器的地址来驱动安全输入装置驱动器,所述数据输入接收器的地址预先注册在中断描述符表中;
对从数据输入接收器接收的数据进行加密,并发送经加密的数据;以及
对经加密的数据进行解密,并将经解密的数据发送到应用程序。
5、根据权利要求4所述的计算机安全方法,进一步包括以下步骤:监视注册在中断描述符表中的数据输入接收器的地址是否发生了变化。
6、根据权利要求5所述的计算机安全方法,进一步包括以下步骤:当中断描述符表发生了变化时,将改变的结果再次改变为数据输入接收器的原始地址。
7、根据权利要求4所述的计算机安全方法,进一步包括以下步骤:
预先存储安全中断服务例程的散列值和二进制码;
读出安全中断服务例程的当前散列值;以及
将读取的散列值与存储的散列值进行比较,以确定这两个散列值是否彼此相同。
8、根据权利要求4所述的计算机安全方法,进一步包括以下步骤:周期性地使控制寄存器(CR4)中的调试扩展标志和调试控制寄存器(DR7)无效。
9、根据权利要求4所述的计算机安全方法,进一步包括以下步骤:在预定时间段内使键盘缓冲器复位,以防止数据通过输入端口和输出端口而被读取。
10、一种使用安全输入装置驱动器的计算机安全方法,包括以下步骤:
当数据输入单元产生中断时,参照用作安全中断服务例程的数据输入接收器的地址来驱动安全输入装置驱动器,所述数据输入接收器的地址预先注册在中断描述符表中;
将从数据输入接收器接收的数据发送到应用程序;以及
监视注册在中断描述符表中的数据输入接收器的地址是否发生了变化。
11、一种使用安全输入装置驱动器的计算机安全装置,包括:
中断描述符表,用于存储负责中断的函数的地址列表,并存储安全输入中断服务例程的地址而不是操作系统提供的原始输入中断服务例程的地址;
安全输入装置驱动器,用于当数据输入单元产生中断时,执行安全输入中断服务例程以从该数据输入单元接收数据,并对接收的数据进行加密;以及
安全输入单元,用于对在安全输入装置驱动器加密的数据进行解密,并将经解密的数据发送到应用程序。
12、根据权利要求11所述的计算机安全装置,其中,安全输入装置驱动器包括:
数据输入接收器,用于当数据输入单元产生中断时,执行安全输入中断服务例程以接收从该数据输入单元输入的数据;
数据加密器,用于对数据输入接收器中接收到的数据进行加密;
监视器,用于监视数据输入接收器的地址是否发生了变化,所述数据输入接收器的地址注册在中断描述符表中;以及
控制器,用于控制安全输入装置驱动器的操作。
13、根据权利要求12所述的计算机安全装置,其中,监视器将先前存储的数据输入接收器的地址与中断描述符表的对应于所述数据输入单元的输入中断服务例程的地址进行比较,当输入中断服务例程区域的地址已改变时,用数据输入接收器的地址再次替换改变了的地址。
14、一种使用安全输入装置驱动器的计算机安全方法,包括以下步骤:
当数据输入单元产生中断时,参照用作安全中断服务例程的数据输入接收器的地址来驱动安全输入装置驱动器,所述数据输入接收器的地址而不是操作系统提供的原始输入中断服务例程预先注册在中断描述符表中;
对从数据输入接收器接收的数据进行加密,并发送经加密的数据;以及
对经加密的数据进行解密,并将经解密的数据发送到应用程序。
15、根据权利要求14所述的计算机安全方法,通过按照数据输入单元的地址的中断向量进行偏移并将偏移的区域改作数据输入接收器的地址,进行数据输入接收器的地址在中断描述符表中的注册。
16、根据权利要求14所述的计算机安全方法,进一步包括以下步骤:
预先存储安全中断服务例程的散列值和二进制码;
读出安全中断服务例程的当前散列值;以及
将读取的散列值与存储的散列值进行比较,以确定这两个散列值是否彼此相同。
17、根据权利要求14所述的计算机安全方法,进一步包括以下步骤:周期性地使控制寄存器(CR4)中的调试扩展标志和调试控制寄存器(DR7)无效。
18、根据权利要求14所述的计算机安全方法,进一步包括以下步骤:在预定时间段内使键盘缓冲器复位,以防止数据通过输入端口和输出端口而被读取。
19、一种记录介质,其记录用于执行使用安全输入装置驱动器的计算机安全方法的程序,使用安全输入装置驱动器的所述方法包括以下步骤:
当数据输入单元产生中断时,参照用作安全中断服务例程的数据输入接收器的地址来驱动安全输入装置驱动器,所述数据输入接收器的地址预先存储在中断描述符表中;
对从输入接收器接收的数据进行加密,并发送经加密的数据;以及
对经加密的数据进行解密,并将经解密的数据发送到应用程序。
CNA2005800042376A 2004-02-05 2005-02-04 使用安全输入装置驱动器的计算机安全装置和方法 Pending CN1918556A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020040007614 2004-02-05
KR10-2004-0007614A KR100500465B1 (ko) 2003-02-07 2004-02-05 보안 입력 디바이스 드라이버를 이용한 컴퓨터 보안 시스템 및 방법

Publications (1)

Publication Number Publication Date
CN1918556A true CN1918556A (zh) 2007-02-21

Family

ID=34825081

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2005800042376A Pending CN1918556A (zh) 2004-02-05 2005-02-04 使用安全输入装置驱动器的计算机安全装置和方法

Country Status (5)

Country Link
US (1) US7774595B2 (zh)
EP (1) EP1714220A4 (zh)
JP (1) JP4451884B2 (zh)
CN (1) CN1918556A (zh)
WO (1) WO2005074397A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101816005B (zh) * 2007-10-02 2013-11-06 软件营地株式会社 通过直接控制8042键盘控制器确保键盘输入安全方法
CN103988211A (zh) * 2011-10-19 2014-08-13 谷歌公司 用于增加计算机安全的防御技术
CN115617496A (zh) * 2022-12-06 2023-01-17 摩尔线程智能科技(北京)有限责任公司 用户模式与内核模式通信的方法、装置、电子设备和介质

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8028301B2 (en) * 2005-03-14 2011-09-27 Symantec Corporation Restricting recordal of user activity in a processing system
KR100734145B1 (ko) * 2005-10-12 2007-07-03 주식회사 안철수연구소 키보드 데이터 인증을 이용한 키 입력 도용 방지 방법
US7835521B1 (en) * 2005-12-02 2010-11-16 Google Inc. Secure keyboard
US20070209014A1 (en) * 2006-01-11 2007-09-06 Youssef Youmtoub Method and apparatus for secure data input
WO2007087360A2 (en) * 2006-01-24 2007-08-02 Eshun Kobi O Method and apparatus for thwarting spyware
US8566608B2 (en) 2006-02-02 2013-10-22 Strikeforce Technologies, Inc. Methods and apparatus for securing keystrokes from being intercepted between the keyboard and a browser
US20080301816A1 (en) * 2007-06-01 2008-12-04 Ting David M T Method and system for handling keystroke commands
KR100901465B1 (ko) 2007-07-25 2009-06-08 주식회사 안철수연구소 Usb장치의 입출력 패킷 보호 방법
CN100485708C (zh) * 2007-08-07 2009-05-06 江雨 一种输入数据的安全处理方法及装置
US20090150664A1 (en) * 2007-12-06 2009-06-11 Aten International Co., Ltd. Computer management system
US9596250B2 (en) 2009-04-22 2017-03-14 Trusted Knight Corporation System and method for protecting against point of sale malware using memory scraping
KR101034016B1 (ko) * 2008-11-28 2011-05-11 킹스정보통신(주) 키보드 보안상태 확인모듈 및 그 방법
KR101006721B1 (ko) * 2009-01-20 2011-01-07 킹스정보통신(주) 키보드 입력정보 보안장치 및 그 방법
KR100952644B1 (ko) * 2009-04-17 2010-04-13 주식회사 잉카인터넷 키보드 입력데이터의 보안시스템 및 방법
US9477822B1 (en) * 2010-11-03 2016-10-25 Trend Micro Incorporated Secure password entry for accessing remote online services
US8707437B1 (en) * 2011-04-18 2014-04-22 Trend Micro Incorporated Techniques for detecting keyloggers in computer systems
CN102393886B (zh) * 2011-06-29 2014-11-26 北京数码视讯科技股份有限公司 移动终端的安全控制方法、装置及系统
US8954747B2 (en) * 2011-07-01 2015-02-10 Intel Corporation Protecting keystrokes received from a keyboard in a platform containing embedded controllers
US10489772B2 (en) 2013-11-27 2019-11-26 At&T Intellectual Property I, L.P. Out-of-band device verification of transactions
FI128392B (en) * 2016-10-31 2020-04-15 Jetico Inc Oy Anti-keylogging method
US11714891B1 (en) 2019-01-23 2023-08-01 Trend Micro Incorporated Frictionless authentication for logging on a computer service

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61208529A (ja) * 1985-03-13 1986-09-16 Usac Electronics Ind Co Ltd キ−ボ−ド入力処理方式
JP3003968B2 (ja) * 1991-05-01 2000-01-31 インターナショナル・ビジネス・マシーンズ・コーポレイション 割込み処理プログラム選択装置及び処理方法
JPH06309229A (ja) * 1993-04-20 1994-11-04 Mitsubishi Electric Corp データ処理装置
KR20010011667A (ko) 1999-07-29 2001-02-15 이종우 보안 기능을 갖는 키보드 및 이를 이용한 시스템
US6630943B1 (en) * 1999-09-21 2003-10-07 Xsides Corporation Method and system for controlling a complementary user interface on a display surface
JP2001125747A (ja) 1999-10-25 2001-05-11 Aiwa Co Ltd データ信号転送方法およびデータ信号転送装置
WO2001061484A2 (en) * 2000-02-18 2001-08-23 Xsides Corporation Method and system for controlling a complementary user interface on a display surface
CA2447451C (en) * 2000-05-12 2013-02-12 Xtreamlok Pty. Ltd. Information security method and system
EP1303802B1 (en) 2000-07-25 2013-01-16 Rovi Solutions Corporation System and method of verifying the authenticity of dynamically connectable executable images
US20030070013A1 (en) * 2000-10-27 2003-04-10 Daniel Hansson Method and apparatus for reducing power consumption in a digital processor
CN100356350C (zh) 2001-04-27 2007-12-19 邵通 实现计算设备状态转换装置安全操作的装置和方法
KR20020089849A (ko) * 2001-05-24 2002-11-30 주식회사 에프엔에프시큐어텍 새로운 네트워크 파일 시스템을 이용한 인터넷 정보보안방법
KR100378586B1 (ko) 2001-08-29 2003-04-03 테커스 (주) 엑티브엑스 기반의 키보드 해킹 방지 방법 및 장치
JP2003099144A (ja) 2001-09-20 2003-04-04 Fujitsu Frontech Ltd 携帯用電子機器、キーデータ処理方法、記録媒体及びプログラム
US7624434B2 (en) * 2002-03-01 2009-11-24 3Com Corporation System for providing firewall capabilities to a communication device
KR20020048313A (ko) * 2002-03-07 2002-06-22 최동성 키보드 해킹 방지 방법
US7219121B2 (en) * 2002-03-29 2007-05-15 Microsoft Corporation Symmetrical multiprocessing in multiprocessor systems
US7086089B2 (en) * 2002-05-20 2006-08-01 Airdefense, Inc. Systems and methods for network security
KR100447777B1 (ko) * 2002-07-24 2004-09-08 주식회사 잉카인터넷 키 스트록 데이터의 해킹 방지 방법 및 이를 기록한컴퓨터로 읽을 수 있는 기록매체
KR100496462B1 (ko) 2003-01-17 2005-06-22 주식회사 안철수연구소 키 입력 도용 방지 방법
KR20030036276A (ko) 2003-02-07 2003-05-09 킹스정보통신(주) 보안 입력 디바이스 드라이버를 이용한 컴퓨터 보안시스템
KR100735727B1 (ko) 2003-04-24 2007-07-06 테커스 (주) 가상 데이터 전송을 이용한 키보드 해킹 방지 장치 및 방법
US7363407B2 (en) * 2003-09-29 2008-04-22 Microsoft Corporation Concurrent arbitration of multidimensional requests for interrupt resources

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101816005B (zh) * 2007-10-02 2013-11-06 软件营地株式会社 通过直接控制8042键盘控制器确保键盘输入安全方法
CN103988211A (zh) * 2011-10-19 2014-08-13 谷歌公司 用于增加计算机安全的防御技术
CN103988211B (zh) * 2011-10-19 2016-12-07 谷歌公司 用于增加计算机安全的方法和系统
US9576129B2 (en) 2011-10-19 2017-02-21 Google Inc. Defensive techniques to increase computer security
CN107103232A (zh) * 2011-10-19 2017-08-29 谷歌公司 用于增加计算机安全的方法和系统
CN111523113A (zh) * 2011-10-19 2020-08-11 谷歌有限责任公司 用于增加计算机安全的方法和系统
CN107103232B (zh) * 2011-10-19 2020-09-04 谷歌有限责任公司 用于增加计算机安全的方法和系统
CN115617496A (zh) * 2022-12-06 2023-01-17 摩尔线程智能科技(北京)有限责任公司 用户模式与内核模式通信的方法、装置、电子设备和介质

Also Published As

Publication number Publication date
US7774595B2 (en) 2010-08-10
WO2005074397A2 (en) 2005-08-18
US20050177649A1 (en) 2005-08-11
EP1714220A4 (en) 2010-05-05
JP2007525752A (ja) 2007-09-06
EP1714220A2 (en) 2006-10-25
WO2005074397A3 (en) 2005-10-06
JP4451884B2 (ja) 2010-04-14

Similar Documents

Publication Publication Date Title
CN1918556A (zh) 使用安全输入装置驱动器的计算机安全装置和方法
US7975308B1 (en) Method and apparatus to secure user confidential data from untrusted browser extensions
CN1148645C (zh) 执行加密程序的装置
CA2923231C (en) Automated runtime detection of malware
US11797677B2 (en) Cloud based just in time memory analysis for malware detection
US7392415B2 (en) Sleep protection
TWI471754B (zh) 用於電腦系統中安全物件之支援
CN1331017C (zh) 安全芯片
CN1229705C (zh) 基于生物统计的装置和系统以及相关的安全系统
TWI514187B (zh) 提供儲存裝置上防有毒軟體保護之系統與方法
US8677482B2 (en) Hardware security for software processes
US7631356B2 (en) System and method for foreign code detection
CN1678967A (zh) 多令牌密封和解封
CN110637301B (zh) 减少虚拟机中敏感数据的泄密
CN1961271A (zh) 用于保障平台间和平台内通信的系统和方法
JP2004537786A (ja) オペレーティングシステムおよびカスタマイズされた制御プログラムとインタフェースする安全なマシンプラットフォーム
CN1571947A (zh) 病毒检测系统
CN1855111A (zh) 用于对处理器指令的快速解密的方法、装置和系统
CN1816786A (zh) 可信外围机制
Main et al. Software protection and application security: Understanding the battleground
CN116257889A (zh) 数据完整性保护方法及相关装置
CN109977665B (zh) 基于tpcm的云服务器启动过程防窃取和防篡改方法
CN112307468B (zh) 一种软件检测方法、软件检测装置及介质
McHarris Ransomware File Encryption Tactics, Techniques, and Procedures
JP2006106956A (ja) ソフトウェアの改竄検出装置及び改竄検出方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Open date: 20070221