ActiveX库的防止键盘记录编辑器的制作方法

文档序号:6426165阅读:146来源:国知局
专利名称:ActiveX库的防止键盘记录编辑器的制作方法
技术领域
一种具有ActiveX格式的用于Web浏览器和应用程序的安全程序,包括软件安全输入窗口,无需附加的硬连线装置而使用常规的键盘就可以防止泄露键盘数据。
因此,本发明保护Web浏览器或应用程序上的键盘数据。
背景技术
本发明涉及安全程序,具体涉及一种用于防止泄露键盘数据的安全程序。
在因特网上保护键盘数据的常规技术包括由Safetek(www.esafetek.com)在2001年1月发布的产品“Kis”以及使用输入装置(或方法)而不是基于Java的虚拟键盘用以代替键盘数据输入的装置。但是,由于前者在硬件基础上保护键盘数据,它需要附加的预先确定的装置,因此,很难在例如因特网上提供大量通用服务,而后者(即使用附加输入装置的保护方法),由于用户不熟练以及使用不便,使用并不广泛。因此,尽管迫切需要在因特网上保护包括重要个人信息的键盘数据,但尚未有投放市场的通用产品。
本发明使用一个键盘来安全而方便地处理输入数据。

发明内容
本发明的目的是当用户在因特网上输入个人信息、撰写电子邮件或生成文档时防止由于黑客造成的键盘数据的泄露。
为实现本发明,需要一种键盘数据保护功能和Web浏览器支持功能。
为进行键盘数据保护,首先,从硬连线的键盘向键盘设备驱动程序传输扫描代码时,必须防止泄露仍然位于I/O端口60H的键盘数据。但是,由于通用应用程序的硬连线属性以及Windows的属性,通用应用程序可能无法正确地控制泄露,要防止上述泄露,要使用一个可以访问环0(Ring0)的虚拟设备驱动程序(VxD)。
其次,当键盘设备驱动程序将扫描代码转换成键盘数据并将其传输到系统消息队列时,转换后的键盘数据可能被包含API钩子函数(hooking)和消息钩子函数的外部程序泄露。由于此进程(USER.EXE)包括在Windows默认的操作系统中并且它可能不能通过通用方法进行保护,需要支持不使用Windows默认的系统的另一种键盘输入方法。
第三,必须防止在将键盘数据传输到所需应用程序期间的数据泄露。黑客可能拦截或监视应用程序所使用的API或消息以泄露键盘数据。因此,需要创建一种用于安全地把键盘数据传输到应用程序的技术。
为了在Web浏览器上使用键盘数据,首先,需要使用Web浏览器所支持的HTML文档描述一个安全输入窗口。由于该安全输入窗口并不遵从Windows默认的键盘操作系统,它需要通过与Web浏览器协作的特定方法来实现。
其次,它需要支持低层任务,包括与Web浏览器上的虚拟设备驱动程序VxD进行通信并控制硬件(因为根据本发明的安全输入窗口使用一个安全键盘驱动程序),以及直接控制硬连线键盘以实现该安全输入窗口。


包括在此并构成说明书的一部分的附图示出了本发明的一个实施例,并与说明书一起用于解释本发明的原理。
图1示出了根据本发明的一个优选实施例的键盘数据安全系统的整体配置;图2示出了根据本发明的一个优选实施例的安全输入窗口的键盘数据流程图;
图3示出了根据本发明的一个优选实施例的安全键盘驱动程序与ActiveX之间的数据流程图;图4示出了根据本发明的一个优选实施例对其应用了安全输入窗口的Web浏览器;以及图5示出了根据本发明的一个优选实施例对其应用了安全输入窗口的示例性HTML源文件。
具体实施例方式
在以下详细说明中,简单地通过发明者所构想的最佳方式的示例的方式,示出和说明了本发明的优选实施例。如将认识到的那样,可以在不偏离本发明的情况下对本发明的各个显著方面进行修改。因此,附图和说明应被看作本质上是示例性的,而不是限制性的。
根据本发明的一个优选实施例的基本操作原理是不使用MicrosoftWindow标准键盘,而是使用一个安全键盘驱动程序和一个安全输入窗口以安全地将用户输入的键盘数据传输到Web浏览器。
图1示出了根据本发明的一个优选实施例应用到一个Web浏览器的键盘数据安全系统的整体配置。
将顺序地说明Microsoft Windows的正常键盘处理。从键盘硬件101产生的电信号被提供给主板的8255,该电信号以扫描代码表示并被提供给虚拟键盘驱动程序VKD102。取决于键盘类型的不同扫描代码由VKD 102转换成用作操作系统的标准的键盘信息。该键盘信息被传输到根据USER.EXE而被激活的虚拟机VM,USER.EXE被存储在系统消息队列中并且是操作系统的环3部分。存储在VM中的键盘数据通过一个线程消息队列103(104)被传输到Web浏览器105以执行一个键输入任务。
但是,根据本发明的一个优选实施例的安全输入窗口的键输入任务是以不同于上述常规说明的方式实现的。
关于在安全输入窗口中键入安全任务的原理,从键盘硬件101产生的电信号被提供给主板的8255,该电信号以扫描代码表示并被提供给虚拟键盘驱动程序(VKD)102。在此以后,虚拟键盘驱动程序102调用表示用于用户定义的键管理的钩子函数(用户重新定义的函数)VKD_Filter_Keyboard_input。当进位被设置并从虚拟键盘驱动程序102调用的钩子函数返回时,虚拟键盘驱动程序102忽略键盘消息并终止后续的键盘消息处理。安全键盘驱动程序中的钩子函数将键盘数据存储在其队列中,设置一个进位并返回该进位。因此,键盘消息并不传输到系统消息队列、线程消息队列和Web浏览器,由此防止了通过消息拦截泄露键盘数据。在本实例中,钩子函数被提供给安全键盘驱动程序并由其管理。
安全键盘驱动程序重新定义了VKD_Filter_Keyboard_input以防止消息拦截。但是,在上述任务后,扫描代码仍然保留在主板的8255中。由于8255的特性,扫描代码跟踪数据可能无法通过一般的方法擦除。因此,对键盘硬件进行控制以便擦除保留在8255中的扫描代码跟踪数据。
至于擦除跟踪数据的方法,当钩子函数调用安全键盘驱动程序的VKD_Filter_Keyboard_input时,将输出一个键盘硬件的通用控制命令(启用键盘[F4H])到端口60h,当接收到控制命令时,键盘硬件将启用键盘(初始已启用),擦除存储在键盘硬件中的键盘数据并输出一个确认(FAh)到8255。在此过程中,存储在键盘硬件中的键盘数据被擦除,端口60h的跟踪数据被更改为另一个值FAh,并因此,扫描代码跟踪数据也被擦除。通过使用本过程,防止了使用键盘端口扫描拦截键盘数据。
至于将存储在安全键盘驱动程序的键盘数据队列中的键盘数据传输到具有ActiveX格式的安全输入窗口110的方法,在安全输入窗口中定期监视安全键盘驱动程序的队列的状态以便接收存储的键盘数据。当接收到键盘数据后,安全输入窗口将扫描代码格式的键盘数据转换成字符进行存储,并将其显示在屏幕上以便用户检查输入状态。
当用户在安全输入窗口中输入数据并按下一个传输按钮和一个检查按钮以进行到下一个任务时,Web浏览器112通过脚本参考安全输入窗口的数据属性111以继续执行由脚本指定的任务。
图2示出了用于虚拟键盘驱动程序和安全键盘驱动程序之间接口和管理的流程图。当用户按下键盘按键时,键盘接收来自8255的键盘数据以产生一个键盘中断并调用步骤S201中的虚拟键盘驱动程序。被调用的虚拟键盘驱动程序读取存储键盘数据的端口60H的值,将其存储在一个预定的寄存器中,并调用下一个VKD_Filter_Keyboard_input的钩子函数210。表示安全键盘驱动程序具有一个功能的钩子函数210确定安全键盘驱动程序是否被激活,当安全键盘驱动程序没有被激活时,钩子函数210被终止。它还使用上述方法擦除键盘端口60h的键盘数据踪迹并在安全键盘驱动程序被激活时将键盘数据存储在其队列中。然后,它指定一个进位以便虚拟键盘驱动程序不使用该键盘数据,然后它被终止。
调用钩子函数时,虚拟键盘驱动程序检查该进位以执行现有的虚拟键盘驱动程序或忽略输入的键盘数据。
图3示出了用于通过安全输入窗口与安全键盘驱动程序之间的接口处理键盘数据的流程图。该安全输入窗口使用了一个定时器来周期性地与步骤S301中的安全键盘驱动程序通信(函数DeviceIoControl)以接收步骤S303中的安全键盘数据。
图4示出了一个对其应用了安全输入窗口404并参考了图5的HTML代码的示例性的Web浏览器405,。参见图4,当用户使用键盘401在浏览器405的安全输入窗口404中输入一个Web地址并按下按钮406时,用户被链接到相应的Web页面。
图5示出了示例性的Web页面的HTML代码,其中包括用于以HTML代码格式描述输入安全输入窗口的键盘数据的方法501以及用于以HTML格式处理输入安全输入窗口的键盘数据的方法502。
以HTML格式描述安全输入窗口是按照ActiveX格式进行的,并且安全输入窗口的数据参考遵循ActiveX属性格式。
如随后的实例502中所示的安全输入窗口在HTML代码中表示为OBJECT。
<OBJECTclassid=”clsidC1BF8F0F-05BA-497C-AEDA-F377E0867B3C”
name=”akl1”codebase=”http//localhost/AKLE ditXControl.cab#version=1,0,89,9”width=350height=23align=centerhspace=0vspace=0>
<param name=”Value”value=”www.yahoo.com”>
<param name=”Border”value=”2”>
<param name=”BorderLeftcolor”value=”0”>
<param name=”BorderRightcolor”value=”0”>
<param name=”BorderTopcolor”value=”0”>
<param name=”BorderBottomcolor”value=”0”>
<param name=”BorderStyle”value=”1”>
<param name=”Font”value=”MS Sans Serif”>
<param name=”Size”value=”56”>
</OBJECT>
(参考文档http//msdn.microsoft.com/workshop/author/dhtml/reference/objects/OBJECT.asp)下一个实例501描述了一种用于以HTML代码参考输入安全输入窗口的键盘数据的方法。
<script language=”javascript”>
function geturl(){var ak=http//+akl1.value;
window.open(ak)}</script>
在以上代码中,调用akl1.value以参考安全输入窗口的数据。
1.本发明的优选实施例保护由因特网上的用户输入的键盘数据以提高因特网相关产业的可靠性并催化所述产业。
因特网业务,包括网上银行、因特网游戏、Web邮件、Web内容和安全文档撰写,基本上都需要用户使用键盘。泄露的键盘数据可能会对公司的因特网业务造成巨大的混乱和损害。
因此,使用安全键盘输入窗口防止键盘数据的泄露提高了因特网业务的可靠性并催化了因特网业务,它将降低由键盘数据泄露造成的直接损失和损害。
2.本优选实施例并不以与免疫程序类似的方式处理恶意程序,而是应对拦截,因此,本优选实施例可以针对新的程序和未检测出的拦截程序保护用户的键盘数据。
3.如果没有新的拦截技术,使用现有的拦截工具黑客无法窃取键盘数据,这缩小了黑客的活动领域。
4.本优选实施例提供了一个软件安全系统,它通过系统的安全级别被降低时立即提高安全级别来恢复安全级别,由此增加了键盘数据保护的可靠性并获得了因特网相关业务的可靠性。
尽管结合当前被认为是最实用和优选的实施例对本发明进行了说明,应当理解,本发明并不限于所公开的实施例,相反,旨在覆盖包括在所附的权利要求书的精神和范围内的各种修改和等效布置。
权利要求
1.一种用于擦除跟踪数据以防止泄露键盘数据的安全键盘驱动程序。
2 一种包括可与权利要求1的安全键盘驱动程序协同运行的安全函数的ActiveX控件。
3.一种用于拦截虚拟键盘驱动程序的安全键盘驱动程序,包括一个代替正常键盘驱动程序处理例程(内核)的附加键盘消息处理例程。
4.一种包括可与权利要求3的安全键盘驱动程序协同运行的安全函数的ActiveX控件。
全文摘要
一种具有ActiveX格式的用于Web浏览器和应用程序的安全程序,包括软件安全输入窗口,无需附加的硬连线装置而使用常规的键盘就可以防止泄露键盘数据。因此,本发明保护Web浏览器或应用程序上的键盘数据。
文档编号G06F21/00GK1547690SQ02816598
公开日2004年11月17日 申请日期2002年6月20日 优先权日2001年8月29日
发明者南忠熙 申请人:泰克豪斯有限公司, 南忠熙
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1