数据处理方法、装置及系统的制作方法

文档序号:6427921阅读:137来源:国知局
专利名称:数据处理方法、装置及系统的制作方法
技术领域
本发明实施例涉及计算机技术领域,尤其是一种数据处理方法、装置及系统。
背景技术
随着计算机技术的不断发展,对信息安全的要求也越来越高,而越来越多的针对键盘输入环节的击键拦截技术使得计算机的信息安全技术面临严峻考验。击键拦截技术分为应用层拦截和驱动层拦截,驱动层较应用层更底层,也更先拦截到键盘输入。现有的击键拦截技术包括以下几种1)直接输入输出(Input Output,简称10)直接通过读写键盘的IO端口,比如 60H(H表示16进制)数据端口或者64H命令端口,进行击键拦截,是个人系统(Personal System,简称PS)/2键盘击键拦截最底层技术,硬件兼容性较差,不支持通用串行总线 (Universal Serial BUS,简称USB)人机接口设备(Human Interface Device,简称 HID)键
ο2)Hook 类驱动(kbdclass. sys)的键盘类服务回调(KeyboardClassServiceCallback) 函数兼容USB和PS/2。3)应用层击键拦截技术视窗(windows)消息Hook、获取键盘状态 (GetKeyboardState)、直接输入(DirectInput)等,目前有大量的木马采用应用层拦截技术,兼容性、稳定性好,但是不能突破采用驱动层的防范技术。上述拦截技术对键盘输入的拦截顺序为依次先后拦截,如图1所示。其中直接10 和Hook类驱动的键盘类服务回调函数分别为针对PS/2键盘、USBHID键盘的最底层的击键拦截技术。在实现本发明的过程中,发明人发现现有技术中还没有针对上述两种击键拦截技术的防范技术。

发明内容
本发明实施例提供一种数据处理方法、装置及系统,用以防范直接10或Hook类驱动的键盘类服务回调函数的击键拦截技术。一方面,本发明实施例提供了一种数据处理方法,包括判断键盘类型;若所述键盘为个人系统PS/2键盘,则周期性地生成随机混淆数据,将所述随机混淆数据发送给输入输出10端口,所述10端口向键盘过滤模块发送所述随机混淆数据;若所述键盘为通用串行总线USB人机接口设备HID键盘,则周期性地生成随机混淆数据,查找键盘类服务回调函数,若查找成功,则调用所述键盘类服务回调函数将所述随机混淆数据发送给键盘过滤模块,若查找失败,则输出告警信息。另一方面,本发明实施例还提供了一种数据处理装置,包括判断模块,用于判断键盘类型;
模拟输入模块,用于若所述键盘为个人系统PS/2键盘,则周期性地生成随机混淆数据,将所述随机混淆数据发送给输入输出IO端口 ;若所述键盘为通用串行总线USB人机接口设备HID键盘,则周期性地生成随机混淆数据,查找键盘类服务回调函数,若查找成功,则调用所述键盘类服务回调函数将所述随机混淆数据发送给键盘过滤模块,若查找失败,则输出告警信息;键盘过滤模块,用于接收所述IO端口或所述键盘类服务回调函数发送的所述随机混淆数据。另一方面,本发明实施例还提供了一种数据处理系统,包括输入输出IO端口和数据处理装置,所述数据处理装置为如上所述的装置。上述技术方案中的一个技术方案具有如下有益效果本发明实施例对于PS/2键盘采用将生成的随机混淆数据发送给IO端口,IO端口将随机混淆数据发送给键盘过滤模块的技术手段,使得直接IO的击键拦截只能拦截到包含有随机混淆数据的信息,对于USB HID键盘采用查找键盘类服务回调函数,若查找成功则调用所述键盘类服务回调函数将生成随机混淆数据发送给键盘过滤模块,若查找失败则输出告警信息的技术手段,使得Hook类驱动的键盘类服务回调函数的击键拦截可以被检测出来,进而实现了有效防范,保证了数据安全。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为现有技术中各击键拦截技术在系统架构中的拦截顺序示意图。图2为本发明实施例提供的一种数据处理方法实施例的流程示意图。图3为本发明实施例提供的一种数据处理装置实施例的结构示意图。图4为本发明实施例提供的一种数据处理系统实施例的结构示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例的主要构思是采用模拟按键技术生成随机混淆数据,对于PS/2键盘,将随机混淆数据发给IO端口,IO端口再将随机混淆数据和监测到的键盘输入数据向上层发送,这样即使是最底层的直接IO的击键拦截也只能拦截到包含了随机混淆数据的信息,对于USB HID键盘,查找键盘类服务回调函数,若查找成功则调用所述键盘类服务回调函数将生成随机混淆数据发送给键盘过滤模块,若查找失败则输出告警信息,使得Hook类驱动的键盘类服务回调函数的击键拦截可以被检测出来,进而实现了有效防范,保证了数据安全。其中,模拟按键技术和击键拦截技术相似,模拟按键技术生成的数据能够被其采用的技术和其上层的击键拦截技术获得,比其底层的技术层面不能获得,所以要尽可能的采用底层的模拟按键技术生成干扰数据。图2为本发明实施例提供的一种数据处理方法实施例的流程示意图。如图2所示, 该方法包括步骤201、判断键盘类型,若所述键盘为PS/2键盘,则执行步骤202,若所述键盘为 USB HID键盘,则执行步骤203 ;这里可以采用现有技术中的方法判断键盘类型,比如通过系统中与键盘连接的接口检测得到键盘类型,本实施例对此不作限定。步骤202、周期性地生成随机混淆数据,并将所述随机混淆数据发送给输入输出 IO端口,所述IO端口向键盘过滤模块发送所述随机混淆数据;这里的IO端口在系统架构中位于驱动层之下,随机混淆数据是用于掩盖键盘输入数据的随机码,可以采用现有技术中的随机算法生成,较优地可以根据系统时间随机生成,本实施例对此不作限定。这里的周期可以根据经验设定,如50毫秒,本实施例对此不作限定。较优地,将随机混淆数据的生成频率设定得比键盘输入数据的频率高得多。由于目前还没有木马技术能在IO端口区分出真实输入和干扰数据,在本发明的一个可选的实施例中,可以调用汇编指令out将所述随机混淆数据发送给所述IO端口。IO端口除了发送所述随机混淆数据,还采用现有技术中的方法实时监测键盘输入,若监测键盘输入数据,则向所述键盘过滤模块发送所述键盘输入数据。应用中,键盘过滤模块可以通过采用现有技术中键盘过滤驱动类似的技术实现,在系统架构中位于驱动层。步骤203、周期性地生成随机混淆数据,查找键盘类服务回调函数,若查找成功,则调用所述键盘类服务回调函数将所述随机混淆数据发送给键盘过滤模块,若查找失败,则
输出告警信息。这里的键盘类服务回调函数为KeyboardClassServiceCallback函数,真实的键盘输入数据也会经过该函数。具体地,该函数可以通过预设的函数特征值查找。在实现本发明的过程中,发明人发现若键盘类服务回调函数被hook,该函数的特征值会发生变化, 这样就无法找到该函数,因此本实施例采用hook检测机制,若查找函数失败则确认该函数被hook,输出告警信息。这里的告警信息可以提示用户终止输入操作。键盘过滤模块接收到的数据中既有步骤202或203中的随机混淆数据,也有10端口监测到的键盘输入数据,这两类数据是混淆在一起的。为了在后续过程中将随机混淆数据过滤掉,得到真实的键盘输入,在本发明的又一可选的实施例中,还可以将步骤202、203中生成的随机混淆数据告知键盘过滤模块。具体地,在本发明的一个可选的实施例中,步骤202和步骤203具体还可以包括生成随机混淆数据,并保存数据记录;向所述键盘过滤模块发送所述数据记录的存储地址,所述键盘过滤模块根据所述存储地址获取所述数据记录;步骤202或步骤203之后还可以包括所述键盘过滤模块接收所述随机混淆数据和所述键盘输入数据,根据所述数据记录过滤所述随机混淆数据,得到所述键盘输入数据。在本发明的又一可选的实施例中,可以将所述数据记录保存在内存中。进一步地, 键盘过滤模块可以顺序、线形过滤随机混淆数据,这样内存仅需保存一个随机混淆数据的字符即可,生成一个字符键盘过滤模块过滤掉一个。举例来说,若顺序发送随机混淆数据 “abc”,真实的键盘输入数据为“ 123”,则键盘过滤模块接收到的数据可以为“al2b3c”,过滤掉“abc”则得到真实输入“ 123”。进一步地,这种场景下,可以仅传递保存数据记录的内存地址,而不传递随机混淆数据本身或是生成所述随机混淆数据的规则,减少了随机混淆数据或随机混淆数据生成规则传递过程中被获取进而区分出随机混淆数据的安全隐患,进一步提高了数据安全。具体地,键盘过滤模块可以将接收到的数据和所述数据记录中的随机混淆数据进行比对,过滤掉接收到的数据中的随机混淆数据,进而得到键盘输入数据。在本发明的又一可选的实施例中,为了防范键盘过滤模块上层的拦截,键盘过滤模块可以将过滤得到的真实的键盘输入数据修改后向应用层传递。在这种场景下,本实施例还可以包括所述键盘过滤模块保存所述键盘输入数据,并修改所述键盘输入数据生成垃圾数据,所述垃圾数据的字符数与所述键盘输入数据相同;所述键盘过滤模块向应用模块发送所述垃圾数据;所述应用模块向用户界面返回所述垃圾数据。这里垃圾数据的字符数与所述键盘输入数据相同,是为了保证在输入窗口中正常显示,对用户透明,也可以省略应用层开发输入控件。举例来说,键盘输入数据为123456,键盘过滤模块将其修改为000000,并将000000作为键盘输入数据传递给应用层,最终在用户界面显示与垃圾数据000000对应的******。在本发明的又一可选的实施例中,虽然键盘过滤模块向应用层返回了修改后的键盘输入数据,但真实的键盘输入数据仍需进行后续处理。在这种场景下,本实施例还可以包括通过安全接口接收调用功能模块发送的键盘输入数据请求;将所述键盘输入数据通过所述安全接口发送给所述调用功能模块;所述调用功能模块将所述键盘输入数据加密后发送给服务器。这里的调用功能模块用于调用相应接口获取真实输入数据。应用中,对于浏览器/ 服务器(Browser/Server,简称B/S)系统,调用功能模块可以通过ActiveX控件实现,对于客户端/服务器(Client/Server,简称C/S)系统,调用功能模块可以是网银客户端等。具体地,调用功能模块获取所述键盘输入数据,可以调用辅助功能模块将所述键盘输入数据进行加密处理后再通过安全超文本传输协议(Secure Hypertext Transfer Protocol,简称HTTPS)等安全通信技术发送到服务器。该服务器可以是对该键盘输入数据进行验证的服务器。这里的辅助功能模块可以是现有系统中的已有模块,可以根据现有技术中的方法实现,本实施例对此不作限定。本发明实施例对于PS/2键盘采用将生成的随机混淆数据发送给IO端口,IO端口将随机混淆数据发送给键盘过滤模块的技术手段,使得直接IO的击键拦截只能拦截到包含有随机混淆数据的信息,对于USB HID键盘采用查找键盘类服务回调函数,若查找成功则调用所述键盘类服务回调函数将生成随机混淆数据发送给键盘过滤模块,若查找失败则输出告警信息的技术手段,使得Hook类驱动的键盘类服务回调函数的击键拦截可以被检测出来,进而实现了有效防范,保证了数据安全,且兼容PS/2键盘和USB HID键盘。进一步地, 还可以将过滤得到的键盘输入数据进行修改后发送给应用层,使得在键盘过滤驱动上层的应用层拦截技术也只能获得修改后的密文,极大提高了密码等机密信息通过键盘输入的安全性。图3为本发明实施例提供的一种数据处理装置实施例的结构示意图。如图3所示, 该装置包括判断模块31,用于判断键盘类型;模拟输入模块32,用于若所述键盘为PSA键盘,则周期性地生成随机混淆数据, 将所述随机混淆数据发送给IO端口 ;若所述键盘为USB HID键盘,则周期性地生成随机混淆数据,查找键盘类服务回调函数,若查找成功,则调用所述键盘类服务回调函数将所述随机混淆数据发送给键盘过滤模块33,若查找失败,则输出告警信息;键盘过滤模块33,用于接收所述IO端口或所述键盘类服务回调函数发送的所述随机混淆数据。进一步地,键盘过滤模块33还用于,接收所述IO端口发送的键盘输入数据。在本发明的一个可选的实施例中,模拟输入模块32具体用于生成随机混淆数据,并保存数据记录;向键盘过滤模块33发送所述数据记录的存储地址;键盘过滤模块33具体用于根据所述存储地址获取所述数据记录;根据所述数据记录过滤所述随机混淆数据,得到所述键盘输入数据。在本发明的又一可选的实施例中,模拟输入模块32具体用于保存所述键盘输入数据,并修改所述键盘输入数据生成垃圾数据,向应用模块发送所述垃圾数据,所述垃圾数据的字符数与所述键盘输入数据相同。在本发明的又一可选的实施例中,该实施例还包括安全接口 34,用于接收调用功能模块35发送的键盘输入数据请求,将键盘过滤模块33保存的所述键盘输入数据发送给调用功能模块35 ;调用功能模块35,用于将所述键盘输入数据加密后发送给服务器。应用中,模拟输入模块32具体用于指示调用功能模块35输出告警信息。应用中,模拟输入模块32具体用于通过汇编指令out将所述随机混淆数据发送给所述IO端口。应用中,模拟输入模块32具体用于根据预设的函数特征值查找所述键盘类服务回调函数。本实施例中的判断模块31、模拟输入模块32、键盘过滤模块33、安全接口 34可以在一个驱动保护程序中实现,调用功能模块35和所述驱动保护程序可以在一个安装程序中实现。当需要键盘安全输入时,如密码输入框获得输入焦点,启动该驱动保护程序,启动该驱动保护程序即模拟输入模块32开始生成随机混淆数据并发送给键盘过滤模块33 ;当不需要键盘安全输入时,如密码输入框失去输入焦点,可以停止该驱动保护程序中模拟输入模块32和键盘过滤模块33的功能。应用中,在安装上述安装程序时,还可以设置驱动保护程序为独占打开,这样某一时刻只有一个进程可以启动该驱动保护程序,如果该驱动保护程序被恶意进程打开,则合法应用需要启动该驱动时会提示打开驱动失败,告警用户,若合法应用先启动该驱动则恶意进程打开驱动会失败。另外,还可以利用不提供卸载接口等技术,针对恶意使本实施例提供的防范拦截机制失效进行防范,保证了保护机制的有效性。 另外,若不能正常启动,如USB HID键盘类服务回调函数KeyboardClassServiceCallback 被其它程序Hook等,则调用功能模块35通过对话框提示等手段向用户发送告警信息,终止用户输入操作。本实施例的具体实现参照本发明提供的一种数据处理方法实施例。本发明实施例对于PS/2键盘采用将生成的随机混淆数据发送给IO端口,IO端口将随机混淆数据发送给键盘过滤模块的技术手段,使得直接IO的击键拦截只能拦截到包含有随机混淆数据的信息,对于USB HID键盘采用查找键盘类服务回调函数,若查找成功则调用所述键盘类服务回调函数将生成随机混淆数据发送给键盘过滤模块,若查找失败则输出告警信息的技术手段,使得Hook类驱动的键盘类服务回调函数的击键拦截可以被检测出来,进而实现了有效防范,保证了数据安全,且兼容PS/2键盘和USB HID键盘。进一步地,还可以将过滤得到的键盘输入数据进行修改后发送给应用层,使得在键盘过滤驱动上层的应用层拦截技术也只能获得修改后的密文,极大提高了密码等机密信息通过键盘输入的安全性。图4为本发明实施例提供的一种数据处理系统实施例的结构示意图。如图4所示, 该系统包括10端口 41和数据处理装置42,数据处理装置42为如本发明实施例提供的一种数据处理装置实施例所述的装置。这里的IO端口 41用于监测键盘输入,若监测到键盘输入数据,则向数据处理装置 42中的键盘过滤模块发送所述键盘输入数据。另外,IO端口 41还用于将接收到的数据处理装置42中模拟输入模块发送的随机干扰数据发送给数据处理装置42中的键盘过滤模块。在本发明的一个可选的实施例中,该系统还包括应用模块43,用于接收数据处理装置42中的键盘过滤模块发送的垃圾数据,并向用户界面返回所述垃圾数据。本实施例的具体实现参照本发明实施例提供的一种数据处理装置实施例一或实施例二。本发明实施例对于PS/2键盘采用将生成的随机混淆数据发送给IO端口,IO端口将随机混淆数据发送给键盘过滤模块的技术手段,使得直接IO的击键拦截只能拦截到包含有随机混淆数据的信息,对于USB HID键盘采用查找键盘类服务回调函数,若查找成功则调用所述键盘类服务回调函数将生成随机混淆数据发送给键盘过滤模块,若查找失败则输出告警信息的技术手段,使得Hook类驱动的键盘类服务回调函数的击键拦截可以被检测出来,进而实现了有效防范,保证了数据安全,且兼容PS/2键盘和USB HID键盘。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
权利要求
1.一种数据处理方法,其特征在于,包括 判断键盘类型;若所述键盘为个人系统PS/2键盘,则周期性地生成随机混淆数据,将所述随机混淆数据发送给输入输出IO端口,所述IO端口向键盘过滤模块发送所述随机混淆数据;若所述键盘为通用串行总线USB人机接口设备HID键盘,则周期性地生成随机混淆数据,查找键盘类服务回调函数,若查找成功,则调用所述键盘类服务回调函数将所述随机混淆数据发送给键盘过滤模块,若查找失败,则输出告警信息。
2.根据权利要求1所述的方法,其特征在于,还包括所述IO端口监测键盘输入数据,若监测到键盘输入数据,则向所述键盘过滤模块发送所述键盘输入数据。
3.根据权利要求2所述的方法,其特征在于,所述生成随机混淆数据具体包括 生成随机混淆数据,并保存数据记录;所述生成随机混淆数据之后还包括向所述键盘过滤模块发送所述数据记录的存储地址,所述键盘过滤模块根据所述存储地址获取所述数据记录;所述向键盘过滤模块发送所述键盘输入数据之后还包括所述键盘过滤模块接收所述随机混淆数据和所述键盘输入数据,根据所述数据记录过滤所述随机混淆数据,得到所述键盘输入数据。
4.根据权利要求3所述的方法,其特征在于,所述得到所述键盘输入数据之后还包括 所述键盘过滤模块保存所述键盘输入数据,并修改所述键盘输入数据生成垃圾数据,所述垃圾数据的字符数与所述键盘输入数据相同; 所述键盘过滤模块向应用模块发送所述垃圾数据; 所述应用模块向用户界面返回所述垃圾数据。
5.根据权利要求3所述的方法,其特征在于,所述得到所述键盘输入数据之后还包括 通过安全接口接收调用功能模块的键盘输入数据请求;将所述键盘输入数据通过所述安全接口发送给所述调用功能模块; 所述调用功能模块将所述键盘输入数据加密后发送给服务器。
6.根据权利要求1 5任一所述的方法,其特征在于,所述将所述随机混淆数据发送给输入输出IO端口具体包括调用汇编指令OUt将所述随机混淆数据发送给所述IO端口。
7.根据权利要求1 5任一所述的方法,其特征在于,所述查找键盘类服务回调函数具体包括根据预设的函数特征值查找所述键盘类服务回调函数。
8.一种数据处理装置,其特征在于,包括 判断模块,用于判断键盘类型;模拟输入模块,用于若所述键盘为个人系统PS/2键盘,则周期性地生成随机混淆数据,将所述随机混淆数据发送给输入输出IO端口 ;若所述键盘为通用串行总线USB人机接口设备HID键盘,则周期性地生成随机混淆数据,查找键盘类服务回调函数,若查找成功, 则调用所述键盘类服务回调函数将所述随机混淆数据发送给键盘过滤模块,若查找失败,则输出告警信息;键盘过滤模块,用于接收所述IO端口或所述键盘类服务回调函数发送的所述随机混淆数据。
9.根据权利要求8所述的装置,其特征在于,所述键盘过滤模块还用于接收所述IO 端口发送的键盘输入数据。
10.根据权利要求9所述的装置,其特征在于,所述模拟输入模块具体用于生成随机混淆数据,并保存数据记录;向所述键盘过滤模块发送所述数据记录的存储地址;所述键盘过滤模块具体用于根据所述存储地址获取所述数据记录;根据所述数据记录过滤所述随机混淆数据,得到所述键盘输入数据。
11.根据权利要求10所述的装置,其特征在于,所述模拟输入模块具体用于保存所述键盘输入数据,并修改所述键盘输入数据生成垃圾数据,向应用模块发送所述垃圾数据,所述垃圾数据的字符数与所述键盘输入数据相同。
12.根据权利要求10所述的装置,其特征在于,还包括安全接口,用于接收调用功能模块发送的键盘输入数据请求,将所述键盘过滤模块保存的所述键盘输入数据发送给所述调用功能模块;调用功能模块,用于将所述键盘输入数据加密后发送给服务器。
13.根据权利要求8 12任一所述的装置,其特征在于,所述模拟输入模块具体用于 通过汇编指令out将所述随机混淆数据发送给所述IO端口。
14.根据权利要求8 12任一所述的装置,其特征在于,所述模拟输入模块具体用于 根据预设的函数特征值查找所述键盘类服务回调函数。
15.一种数据处理系统,其特征在于,包括输入输出IO端口和数据处理装置,所述数据处理装置为如权利要求8 14任一所述的装置。
16.根据权利要求15所述的系统,其特征在于,还包括应用模块,用于向用户界面返回垃圾数据。
全文摘要
本发明实施例提供一种数据处理方法、装置及系统。本发明实施例对于PS/2键盘采用将生成的随机混淆数据发送给IO端口,IO端口将随机混淆数据发送给键盘过滤模块的技术手段,使得直接IO的击键拦截只能拦截到包含有随机混淆数据的信息,对于USB HID键盘采用查找键盘类服务回调函数,若查找成功则调用所述键盘类服务回调函数将生成随机混淆数据发送给键盘过滤模块,若查找失败则输出告警信息的技术手段,使得Hook类驱动的键盘类服务回调函数的击键拦截可以被检测出来,进而实现了有效防范,保证了数据安全。
文档编号G06F21/04GK102254121SQ201110187000
公开日2011年11月23日 申请日期2011年7月5日 优先权日2011年7月5日
发明者刘永军 申请人:北京神州绿盟信息安全科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1