安全按键输入系统、设备、和方法

文档序号:7655193阅读:155来源:国知局
专利名称:安全按键输入系统、设备、和方法
技术领域
本发明涉及计算机安全通讯领域,并且特别地,涉及安全按键 丰lr入系统、i殳备、和方法。
背景技术
目前,大部分的网络应用采用用户名加密码的方式进行登录,然而,由于Windows ^操作系统的安全性漏洞, -使得木马和病毒可以 利用操作系统的公开机制,非常容易地获得用户按键输入的信息。 此类程序和针对应用场景判断才几制进行结合,可以非常方〗更地取得 用户的关4建信息。例如现在的网游盗号、QQ盗号、和网4艮大盗程 序等,就是使用键盘截获加上应用程序判定技术来获得用户账户和 密码。Windows下常用的获取4建盘按4建信息方法有(1)全局4建盘/ 鼠标钩子;(2)Blockl叩ut()API; ( 3 )使用setupapi进行控制;(4) 全局盘/鼠标钩子+远线程插入WINLOGON进程屏蔽 CTRL+AL+DEL; (5)拦截win23k!RawInputThread()函数;(6) DDK中自带的kbfilter的4建盘(Port Driver )过滤、马区动;(7 ) 4兰截kdbclass马区动的driver dispatch routine; (8)实3见PS/2与 USB键盘过滤驱动;(9)浏览器漏洞导致按键输入的COM控件被 截获。而避免键盘信息被截获的解决方案主要有以下几种(1) 软键盘。用户通过鼠标按键输入,用户按键信息通过自 定义消息或剪切板传输到用户输入对话框中。此方式能够防止简单 键盘截获攻击,但是由于系统消息机制的固有缺陷,安全性不高, 因此未能^皮广泛4妄受。(2) 专有加密键盘。 一般在键盘内部增加专有的安全模块, 将按键输入通过该安全模块和应用共享密钥进行加密,并由上层应 用负责解密。此方式安全性高,但是需要增加4建盘的实现成本,所 以一4K又用于某些特定场所的安全l命入。(3) 封闭系统。将系统环境变成只读,禁止恶意代码^奮改核 心代码和操作系统运行时环境,但是此种方式将导致较多应用限 制,需要显著增加系统厂商定制成本。(4 )键盘过滤驱动。通过键盘过滤驱动挂接到操作系统键盘 访问队列,在特殊应用程序启动时,特殊应用程序直4妾和此驱动通 讯,获得"t姿4建输入。^f旦是此种方式无法防止恶意^a码^奮改4定盘过滤 驱动,使其先于过滤驱动加载,导致按键信息泄露。通过以上描述可以看出,在目前采用的4支术方案中存在安全性 不高,实现成本或定制成本较大,或者无法有效地防止按键信息泄 露的问题。发明内容考虑到上述问题而提出本发明。为此,本发明旨在提供一种安 全按键输入机制。根据本发明的实施例,提供了 一种安全按键输入系统。该系统包括安全输入模块,用于挂接键盘中断,并通过安全 单元对按键输入进行加密;内存监控模块,由服务器动态生成,用 于验证安全输入才莫块,以及生成存活消息;以及安全单元,除了用 于对按键输入进行加密外,还用于对存活消息进行加密。其中,服务器根据加密的按键输入和存活消息来验证按键输入 的有效性。并且,客户端从服务器获取加密设置信息,并根据加密设置信 息设置安全单元的加密方式。这里,客户端将来自服务器的密钥转 发到安全单元,并且安全单元4吏用密钥对按4建1俞入和存活消息进4亍 加密。在该系统中,内存监控模块可以为以下任一种监控某一内存 地址的设备驱动程序,运行在虚拟机中的监控某一 内存地址的软件 程序,运行于基本输入输出系统中监控某一内存地址的软件程序或 者是专用内存监控硬件上的初始化程序。此外,在客户端不存在内 存监控模块的副本。并且,对于内存监控模块在内存中设置的位置 没有限定。另外,内存监控模块通过检测安全输入模块挂接的键盘处理中 断地址对应的代码空间是否被修改来4企测安全输入模块的有效性。 其中,内存监控才莫块在随才几时间间隔或预定时长内分段4企测安全输 入模块。并且,存活消息中携带有与内存检测模块的检测时间间隔 或预定时长相关的信息。这样,当加密的按键输入正确,且按键输 入在检测时间间隔内或未超过预定时长的情况下,服务器判定客户 端有效。才艮据本发明的另一实施例,提供了一种安全按4定输入方法。该方法包纟舌初始化步-骤,客户端在启动时动态加载安全输入 模块和内存监控模块,并设置安全单元的加密方式,其中,内存监控模块由服务器动态生成;按键输入处理步骤,安全输入模块通过 安全单元对用户的按键输入进行加密,并将加密的按键输入经由客 户端发送到服务器;内存监控处理步骤,内存监控模块检测安全输 入模块,生成存活消息,并将通过安全单元加密存活消息经由客户 端发送到服务器;以及验证步骤,服务器根据加密按键输入和存活 消息来验证按键输入的有效性。初始化步骤进一步包4舌以下处理月良务器生成加密i殳置消息; 客户端从服务器获取加密设置消息,并根据加密设置消息设置安全 单元的加密方式;客户端加载安全输入模块;安全输入模块挂接键 盘处理中断;服务器生成内存监控模块;以及客户端从服务器下载 内存监控模块,并将其动态加载到系统内存。其中,安全输入模块挂接键盘处理中断后,修改代码空间中的 键盘中断(IRQ1和IRQ2 )的处理地址,使得用户进行按键输入时, 直接触发安全输入模块的键盘中断处理部分。另外,按键输入处理步骤进一步包括以下处理用户进行按键 输入;安全输入模块读取按键输入,并清空按键緩冲区;安全输入 模块将按键输入提交到安全单元,并由安全单元对按键输入进行加 密;以及安全输入模块将加密按键输入发送到客户端,并由客户端 进一步发送到服务器。除此之外,内存监控处理步骤进一步包括以下处理内存监控 模块启动,并检测安全输入模块挂接的键盘处理中断地址对应的代 码空间;判断代码空间中的键盘中断(IRQ1和IRQ2)指向的代码段是否为客户端加载的代码段,并且在判断结果为是的情况下,进行以下处理内存监控模块生成存活消息,并通过安全单元对存活 消息进行加密;以及客户端从内存监控模块获取加密的存活消息, 并将其转发到服务器。其中,存活消息中携带有与内存检测模块的检测时间间隔或预 定时长相关的信息。并且,验证步骤进一步包括以下处理服务器判断加密的按键 输入是否正确,在判断结果为是的情况下,进行以下处理服务器 判断按键输入是否在4企测时间间隔内或者未超过预定时长,在判断 结果为是的情况下,判断按键输入有效。根据本发明的另 一 实施例,还提供了 一种安全按键输入系统。该系统包括安全输入模块,用于挂接键盘中断,并通过安全 单元对按"睫输入进4亍加密;内存监控才莫块,由客户端动态生成,用 于验证安全输入模块,以及生成存活消息;以及安全单元,除了用 于对按4建输入进行加密外,还用于对存活消息进4亍加密。其中,客户端根据加密的按键输入和存活消息来验证按键输入 的有效性。这里,客户端设置安全单元的加密方式,并生成安全单 元进行加密的密钥。此外,内存监控才莫块为以下任一种监控某一内存地址的i殳备 驱动程序,运行在虚拟机中的监控某一内存地址的软件程序,运行 于基本输入输出系统中监控某一 内存地址的软件程序或者是专用 内存监控硬件上的初始化程序,而对于内存监控模块在内存中设置 的位置没有限定。并且,内存监控模块通过检测安全输入模块挂接的键盘处理中 断地址对应的代码空间是否被修改来检测安全输入模块的有效性。其中,内存监控模块在随机时间间隔或预定时长内分段检测安 全输入模块。并且,存活消息中携带有与内存检测模块的检测时间 间隔或预定时长相关的信息。这样,当加密的按键输入正确,且按 键输入在检测时间间隔内或未超过预定时长的情况下,客户端判定 按键输入有效。根据本发明的再一个实施例,提供了 一种安全按键输入方法。该方法包括初始化步骤,客户端在启动时动态加载安全输入 模块和内存监控模块,并设置安全单元的加密方式,其中,内存监 控模块由客户端动态生成;按键输入处理步骤,安全输入模块通过 安全单元对用户的按键输入进行加密,并将加密的按键输入发送到 客户端;内存监控处理步骤,内存监控模块检测安全输入模块,生 成存活消息,并将通过安全单元加密存活消息发送到客户端;以及 验证步骤,客户端根据加密按键输入和存活消息来-验证按键输入的 有效性。其中,初始化步骤进一步包4舌以下处理客户端i殳置安全单元 的加密方式;客户端加载安全输入模块;安全输入模块挂接键盘处 理中断;以及客户端生成内存监控才莫块,并将其动态加载到系统内存。这里,在安全输入模块挂接键盘处理中断后,修改代码空间中 的键盘中断(IRQ1和IRQ2)的处理地址,使得用户进行按键输入 时,直接触发安全输入模块的^fc盘中断处理部分。此外,4姿4建,命入处理步骤进一步包括以下处理用户进4亍4安4建 输入;安全输入模块读取按键输入,并清空按键緩沖区;安全输入 模块将按键输入提交到安全单元,并由安全单元对按键输入进行加 密;以及安全输入才莫块将加密按键:输入发送到客户端。除此之外,内存监控处理步骤进一步包括以下处理内存监控 模块启动,并检测安全输入模块挂接的键盘处理中断地址对应的代 码空间;判断代码空间中的键盘中断指向的代码段是否为客户端加 载的代码段,并且在判断结果为是的情况下,进行以下处理内存 监控模块生成存活消息,并通过安全单元对存活消息进行加密;以 及客户端从内存监控才莫块获取加密的存活消息。其中,存活消息中携带有与内存检测模块的检测时间间隔或预 定时长相关的4言息。并且,验证步骤进一步包括以下处理客户端判断加密的按键 输入是否正确,在判断结果为是的情况下,进行以下处理客户端 判断按键输入是否在检测时间间隔内或者未超过预定时长,在判断 结果为是的情况下,判断按键输入有效,并对按键输入进行二次加 密后发送到服务器。最后,根据本发明实施例,还提供了一种安全按键输入设备, 包括安全输入模块,用于挂接键盘中断,并通过安全单元对按键 输入进行加密;内存监控模块,由服务器或客户端动态生成,用于 验证安全输入模块,以及生成存活消息;以及安全单元,除了用于 对按键输入进行加密外,还用于对存活消息进行加密;其中,客户 端或服务器根据安全按键输入设备提供的加密的按键输入和存活 消息来验证按键输入的有效性。通过本发明的上述4支术方案,本发明实现了以下有益效果独 立地动态内存监控才莫块可以随时更新,因此木马程序难以定位其在 内存中所处的位置;受信根为服务器,易于系统维护和升级;输入 信息加密和内存监控模块的存活消息共同保证输入不被修改,因此 提升了系统安全性。


此处所说明的附图用来提供对本发明的进一步理解,构成本申 请的一部分,本发明的示意性实施例及其i兌明用于解释本发明,并 不构成对本发明的不当限定。在附图中图i是才艮据本发明系统实施例i的安全按4建llr入系统的示意图;图2是根据本发明系统实施例1的安全按键输入系统的结构框图;图3是4艮据本发明方法实施例1的安全4妄4建输入方法的流程图;图4是根据本发明方法实施例1的安全按键输入方法的初始化 处理的流,呈图;图5是根据本发明方法实施例1的安全按键输入方法中用户按 4建输入处理和-验i正步骤的流程图;图6是4艮据本发明方法实施例1的安全按4建输入方法中内存监 4空处理的流禾呈图;图7是4艮据本发明方法实施例1的安全按4建输入方法中客户端 退出的流程图;图8是根据本发明系统实施例2的安全4妄4建输入系统的示意图;图9是根据本发明系统实施例2的安全按键输入系统的框图;图10是根据本发明方法实施例2的安全按键输入方法的流程 图;以及图11是根据本发明设备实施例的安全按键输入设备的框图。
具体实施方式
总的来说,为了提升用户输入的安全性,在本发明中,用户应 用程序自身在启动安全输入时,应用程序的客户端程序4妄管4建盘输 入,此时^又接受加密的用户按4定信息。下面将参照附图详细描述本 发明的实施例。系乡充实施例1在本实施例中,才是供了一种安全按4定输入系统。在本实施例中,客户端(例如,通过客户端中设置的初始化单 元)需要从服务器端下载独立的内存监控模块,并在系统中以设备 驱动的形式加载安全输入才莫块和内存监控才莫块,并初始化系统安全 芯片。内存监控模块负责对安全输入模块核心代码的审计,并提交 加密的存活消息。安全输入模块负责接管用户输入,对用户输入信 息进行加密。最后,客户端(初始化单元)将用户按键输入和存活消息转发到服务器。图1示出了根据该系统实施例的安全按键输入 系统的示意图。具体地,如图2所示,才艮据本实施例的安全按4定專lr入系统200 包括客户端和服务器,并且在客户端包括安全输入才莫块202,用 于挂4妾4建盘中断,并通过安全单元206对按-4建输入进^亍加密;内存 监控才莫块204,由服务器动态生成,用于-验证安全输入才莫块202, 以及生成存活消息;以及安全单元206,除了用于对按键输入进行 加密外,还用于》于存活消息进4于加密。其中,服务器根据加密的按键输入和存活消息来验证按键输入 的有效性。具体地,安全单元可以采用对称密钥或非对称密钥的方 式对按键输入和存活消息进行加密处理。服务器和安全单元配对使 用相应的解密密钥。对称密钥的力o密方式可以包括 DES,3DES,AES,RC4,RC5等,非对称密钥的加密方式可以包括 RSA,ECC等。为了保证上传消息不被修改,还可以对消息进行数字 签名。数字签名算法可以是SHA-1,MD5和HMAC等。并且,在该系统中,客户端从服务器获取加密设置信息,并根 据加密设置信息设置安全单元的加密方式(例如,DES、 RSA等)。 这里,客户端将来自服务器的密钥转发到安全单元206,并且安全 单元106使用密钥对按键输入和存活消息进行加密。在该系统中,内存监控模块204可以为以下任一种监控某一 内存地址的设备驱动程序,运行在虚拟机中的监控某一内存地址的 软件程序,运行于基本输入输出系统中监控某一内存地址的软件程 序或者是专用内存监控硬件上的初始化程序,例如,驱动程序、独 立芯片、软件模块等。这样,由于内存监控模块由服务器动态生成,并且在应用程序运行时加载,因此在客户端不存在内存监控模块204的副本,因此 难以对其进^亍修改。此外,在本发明中,对于内存监控才莫块204在 内存中设置的位置没有限定。内存监控模块204通过检测安全输入模块挂接的键盘处理中断 地址对应的代码空间是否被修改来纟企测安全,#入才莫块的有效性(如 果有》务改,则证明安全输入模块已经无效)。其中,内存监控模块在随机时间间隔(例如,以 10ms-30ms-10ms-20ms…的间隔来才全测)或预定时长(例如,30ms ) 内分段检测安全输入模块。并且,存活消息中携带有与内存检测模 块的检测时间间隔或预定时长相关的信息。这样,当加密的按4建输 入正确,且按键输入在4企测时间间隔内或未超过预定时长的情况 下,服务器判定客户端有效,并还原4姿键信息。方法实施例1在本实施例中,提供了一种安全按键输入方法,该方法可以使 用系统实施例1中4是供的安全按4建输入系统。如图3所示,根据本实施例的安全4姿4定输入方法包括步骤 S302,初始化步骤,客户端在启动时动态加载安全输入模块和内存 监控模块,并设置安全单元的加密方式,其中,内存监控^t块由服 务器动态生成;步骤S304,按键输入处理步骤,安全输入模块通过 安全单元对用户的按4建输入进行加密,并将加密的4姿4建输入经由客 户端发送到服务器;步骤S306,内存监控处理步骤,内存监控模块 检测安全输入模块,生成存活消息,并将通过安全单元加密存活消 息经由客户端发送到服务器;以及步骤S308,验证步骤,服务器根 据加密按键输入和存活消息来验证按键输入的有效性。如图4所示,上述的初始化步-骤进一步包^t舌以下处理月艮务器 生成加密设置消息;客户端从服务器获取加密设置消息,并根据加 密设置消息设置安全单元的加密方式(例如,DES、 RSA等);客 户端加载安全输入模块;安全输入模块挂接键盘处理中断;服务器 生成内存监控模块;以及客户端从服务器下载内存监控模块,并将 其动态加载到系统内存。其中,在上述处理中,客户端可以首先上传应用程序版本信息 和安全单元版本信息,并且服务器可以根据应用程序版本信息来生 成内存监控模块。其中,安全输入模块挂接键盘处理中断后,修改代码空间(例 如,中断描述符表(IDT))中的IRQ1和IRQ2的处理地址,使得 用户进行按键输入时,直接触发安全输入模块的4定盘中断处理部 分。另夕卜,如图5所示,按4建输入处理步骤进一步包4舌以下处理 用户进行按键输入;安全输入模块读取按键输入,并清空按键緩冲 区;安全输入模块将按^建输入提交到安全单元,并由安全单元对按 键输入进行加密(安全单元使用服务器经由客户端发送的密钥来进 4亍加密);以及安全输入才莫块将加密4安4建输入发送到客户端,并由 客户端进一步发送到服务器。此外,如图6所示,内存监控处理步艰《进一步包4舌以下处理 内存监控模块启动,并检测安全输入模块挂接的键盘处理中断地址 对应的代码空间;判断代码空间(描述符表)中的4建盘中断(IRQ1 和IRQ2)指向的代码革殳是否为客户端加载的代码4殳,并且在判断 结果为是的情况下,进行以下处理(在判断结果为否的情况下,内 存监控模块将提示客户端存在安全性风险,终止键盘输入)内存 监控模块生成存活消息,并通过安全单元对存活消息进行加密(安端从内存监控模块获取加密的存活消息,并将其转发到服务器。其中,存活消息中携带有与内存检测模块的检测时间间隔或预 定时长相关的信息,以保证安全输入模块的有效性(即,在检测时间间隔或未超过预定时长)。优选;也,在进^f亍^码賴:才企查时,可以 采用计算代码摘要值的方法和关键代码比较方法。并且,参照图5,在本实施例中,验证步骤进一步包括以下处 理服务器判断加密的按键输入是否正确,在判断其正确的情况下, 进行以下处理服务器判断按键输入是否在检测时间间隔内或者未 超过预定时长,在判断结果为是的情况下,判断按键输入有效,在 判断结果为否的情况下,将按键信息丢弃。即,通过按键信息加密 和内存监控模块的存活信息共同确认输入的有效性。除此之外,当客户端退出时,需要卸载内存监控才莫块和安全输 入才莫块,还原系统按4建处理流程,其具体过程如图6所示。以上描述的是内存监控模块由服务器生成,并且在服务器进行 4安4建输入有效性的-睑证的方案。当然,上述才乘作也可以在客户端实 现,即,由客户端生成内存监控才莫块、生成安全单元加密的密钥、 以及进行按键输入有效性的验证。以下将通过实施例来描述该种方案。系纟克实施例2在本实施例中,^是供了一种安全按4建输入系统。在本实施例中,客户端动态生成内存监控模块,并在系统中以 设备驱动的形式加载安全输入模块和内存监控模块,并初始化系统安全芯片。内存监控模块负责对安全输入模块核心代码的审计,并 提交加密的存活消息。安全输入模块负责接管用户输入,对用户输 入信息进行加密。最后,客户端根据用户按键输入和存活消息来验证输入的有效性。图8示出了该安全4妄4建输入系统的示意图。具体地,参照图9,根据本实施例的安全按键输入系统包括 安全输入才莫块902 ,用于挂接4建盘中断,并通过安全单元906对按 键输入进行加密;安全单元卯6,除了用于对按键输入进行加密夕卜, 还用于对存活消息进^亍加密。不同之处在于在4艮据系统实施例2 的安全按键系统中,内存监控模块904是由客户端动态生成的,其 用于验证安全输入模块904,以及生成存活消息。并且,客户端设 置安全单元卯6的加密方式,并生成安全单元906进4亍力。密的密钥, 并根据加密的按键输入和存活消息来验证按键输入的有效性。此夕卜,与系统实施例1类似,内存监控才莫块卯4为以下任一种 监控某 一 内存地址的设备驱动程序,运行在虚拟机中的监控某一 内 存地址的软件程序,运行于基本输入输出系统中监控某一内存地址 的软件程序或者是专用内存监控硬件上的初始化程序,且对于内存 监控模块904在内存中设置的位置没有限定。并且,内存监控模块 卯4通过4企测安全llT入才莫块卯2挂4妄的4定盘处理中断;也址对应的4< 码空间是否被修改来检测安全输入模块902。类似地,内存监控才莫块904在随4几时间间隔或预定时长内分,史 才企测安全输入才莫块902。并且,存活消息中携带有与内存4企测才莫块 904的4企测时间间隔或预定时长相关的信息。这样,当加密的4安4建 输入正确,且按键输入在检测时间间隔内或未超过预定时长的情况 下,客户端判定按键输入有效。方法实施例2在本实施例中,提供了一种安全按键输入方法,该方法可以使 用系统实施例2提供的安全按键输入系统。如图10所示,根据方法实施例2的安全按键输入方法包括 步骤S1002,初始化步骤,客户端在启动时动态加载安全输入才莫块 和内存监控模块,并设置安全单元的加密方式,其中,内存监控模 块由客户端动态生成;步骤S1004, 4姿4建^"入处理步-骤,安全输入 模块通过安全单元对用户的按键输入进行加密,并将加密的按键输 入发送到客户端;步骤S1006,内存监控处理步骤,内存监控才莫块 冲全测安全l俞入才莫块,生成存活消息,并将通过安全单元力卩密存活消 息发送到客户端;以及步骤S1008,验证步骤,客户端根据加密按 4定输入和存活消息来-验证按4建输入的有效性。其中,初始化步骤进一步包括以下处理客户端"i殳置安全单元 的加密方式;客户端加载安全输入模块;安全输入才莫块挂接键盘处 理中断;以及客户端生成内存监控模块,并将其动态加载到系统内存。这里,在安全输入模块挂接键盘处理中断后,修改代码空间(例 如,中断描述符表(IDT))中的4建盘中断(IRQ1和IRQ2)的处理 地址,使得用户进行按4定输入时,直接触发安全输入才莫块的4建盘中 断处理部分。it匕夕卜,与图5中所示的处理类4以,该方法中的4安4建丰lr入处理步 骤进一步包括以下处理用户进行按键输入;安全输入模块读取按 键输入,并清空按键緩冲区;安全输入模块将按键输入提交到安全 单元,并由安全单元对按键输入进行加密;安全输入才莫块将加密按 键输入发送到客户端;之后,安全输入模块将加密按"建输入发送到客户端,与图5中所示的处理不同,这里,客户端不将加密按键输 入转发到服务器,而是将其保留在本地,并在本地进4亍之后的验证 处理。除此之外,参照图6,与方法实施例1中的内存监控处理类似, 在本实施例中的内存监控处理步骤可以进一 步包括以下处理内存监控模块启动,并检测安全输入模块挂接的4定盘处理中断 地址对应的代码空间;判断代码空间(例如,IDT)中的4建盘中断 (IRQ1和IRQ2)指向的代码段是否为客户端加载的代码段,在判 断结果为否的情况下,内存监控才莫块才是示客户端,并且客户端终止 按键输入,在判断结果为是的情况下,进行以下处理内存监控模 块生成存活消息,并通过安全单元对存活消息进行加密;之后,客 户端从内存监控才莫块获取加密的存活消息。其中,与前面类似,存活消息中携带有与内存检测模块的检测 时间间隔或预定时长相关的信息,以保证安全输入才莫块的有效性。 优选地,在进行代码,殳#企查时,可以采用计算代码摘要^f直的方法和 关4建代码比较方法。此外,不同于方法实施例1中在服务器端执行的^S正步骤,根 据本实施例的方法中^S正步骤是在客户端冲丸4亍的,具体地,包括以 下处理客户端判断加密的按4建输入是否正确,在判断其正确的情 况下,进行以下处理客户端判断按4建输入是否在4企测时间间隔内 或者未超过预定时长,在判断结果为是的情况下,判断^l安键输入有 效,并对按键输入进行二次加密后发送到服务器,而在判断结果为 否的情况下,将按键信息丢弃。除此之外,当客户端退出时,同样需要执行图7中所示的处理。^殳备实施例在该实施例中,提供了一种安全按键输入设备,如图11所示,包括安全输入模块1102,用于挂接键盘中断,并通过安全单元对 按键输入进行加密;内存监控模块1104,由服务器或客户端动态生 成,用于-验证安全输入才莫块,以及生成存活消息;以及安全单元 1106,除了用于对按键输入进行加密外,还用于对存活消息进行加 密;其中,客户端或服务器根据该安全按键输入设备提供的加密的按键输入和存活消息来验证按键输入的有效性。以上系统实施例和方法实施例中描述的多个细节同才羊适用于 该设备实施例,因此,省略了相同或相似内容的重复描述。综上所述,借助于本发明的4支术方案,实现了以下有益效果 独立地动态内存监控才莫块可以随时更新,因此木马禾呈序难以定位其 在内存中所处的位置;受信根为服务器,易于系统维护和升级;输 入信息加密和内存监控模块的存活消息共同保证输入不被修改,提 升了系统安全性。以上所述^f又为本发明的优选实施例而已,并不用于限制本发 明,对于本领域的技术人员来说,本发明可以有各种更改和变化。 凡在本发明的精神和原则之内,所作的任1"可修改、等同替换、改进 等,均应包含在本发明的保护范围之内。
权利要求
1.一种安全按键输入系统,包括客户端和服务器,其特征在于,所述客户端包括安全输入模块,用于挂接键盘中断,并通过安全单元对按键输入进行加密;内存监控模块,由服务器动态生成,用于验证所述安全输入模块,以及生成存活消息;以及所述安全单元,除了用于对所述按键输入进行加密外,还用于对所述存活消息进行加密。
2. 根据权利要求1所述的安全按键输入系统,其特征在于,所述 服务器根据所述加密的按键输入和所述存活消息来验证所述 按键输入的有效性。
3. 根据权利要求2所述的安全按键输入系统,其特征在于,所述 客户端从所述服务器获取加密设置信息,并根据所述加密设置 信息i殳置所述安全单元的加密方式。
4. 根据权利要求3所述的安全按键输入系统,其特征在于,所述 客户端将来自所述服务器的密钥转发到所述安全单元,并且所 述安全单元使用所述密钥对所述按键输入和所述存活消息进 行力口密。
5. 根据权利要求2所述的安全按键输入系统,其特征在于,所述 内存监控模块为以下任一种监控某一 内存地址的设备驱动程 序,运行在虚拟机中的监控某一内存地址的软件程序,运行于基本输入输出系统中监控某一 内存地址的软件程序或者是专 用内存监控硬件上的初始化程序。
6. 根据权利要求2所述的安全按键输入系统,其特征在于,在所 述客户端不存在所述内存监控模块的副本。
7. 根据权利要求2所述的安全按键输入系统,其特征在于,对于 所述内存监控模块在内存中设置的位置没有限定。
8. 根据权利要求2所述的安全按键输入系统,其特征在于,所述 内存监控^^莫块通过检测所述安全输入才莫块挂接的4建盘处理中 断地址对应的代码空间是否净皮修改来4企测所述安全输入才莫块 的有效性。
9. 根据权利要求8所述的安全按4建输入系统,其特征在于,所述 内存监控模块在随机时间间隔或预定时长内分段检测所述安 全输入模块。
10. 根据权利要求9所述的安全按键输入系统,其特征在于,所述 存活消息中携带有与所述内存检测模块的检测时间间隔或预 定时长相关的信息。
11. 根据权利要求10所述的安全按键输入系统,其特征在于,当 所述加密的按键输入正确,且所述按键:l命入在所述4企测时间间 隔内或未超过所述预定时长的情况下,所述服务器判定所述客 户端有效。
12. —种安全按键输入方法,使用#4居权利要求1至11中任一项 所述的安全按4定输入系统,其特征在于,包括初始化步骤,客户端在启动时动态加载安全输入模块和 内存监控模块,并设置安全单元的加密方式,其中,所述内存 监控模块由服务器动态生成;按键输入处理步骤,所述安全输入纟莫块通过所述安全单 元对用户的按键输入进行加密,并将所述加密的按键输入经由 所述客户端发送到所述服务器;内存监控处理步骤,所述内存监控冲莫块检测所述安全输 入模块,生成存活消息,并将通过所述安全单元所述加密存活 消息经由所述客户端发送到所述服务器;以及-验证步骤,所述服务器才艮据所述加密按4定输入和所述存 活消息来-验i正所述按4建输入的有效性。
13. 根据权利要求12所述的安全按键输入方法,其特征在于,所 述初始化步-骤进一步包4舌以下处理所述服务器生成加密设置消息;所述客户端从所述服务器获取所述加密设置消息,并根 据所述加密设置消息设置所述安全单元的加密方式;所述客户端加载所述安全输入模块;所述安全输入模块挂接键盘处理中断;所述服务器生成所述内存监控才莫块;以及所述客户端从所述服务器下载所述内存监控模块,并将 其动态加载到系统内存。
14. 才艮据权利要求13所述的安全按4定输入方法,其特征在于,所 述安全输入模块挂接键盘处理中断后,修改代码空间中的键盘 中断的处理地址,使得用户进行按键输入时,直接触发所述安 全输入才莫块的4建盘中断处理部分。
15. 根据权利要求12所述的安全按键输入方法,其特征在于,所 述按键输入处理步骤进一步包括以下处理所述用户进行按^:输入;所述安全输入模块读取所述按键输入,并清空按键緩冲区;所述安全输入模块将所述按键输入提交到所述安全单 元,并由所述安全单元对所述按键输入进行加密;以及所述安全输入模块将所述加密按键输入发送到所述客户 端,并由所述客户端进一步发送到所述服务器。
16. 根据权利要求12所述的安全按键输入方法,其特征在于,所 述内存监控处理步骤进一步包括以下处理所述内存监控模块启动,并检测所述安全输入模块挂接 的4建盘处理中断地址对应的代码空间;判断所述代码空间中的键盘中断指向的代码段是否为所 述客户端加载的代码革殳,并且在判断结果为是的情况下,进4亍 以下处J里;所述内存监控模块生成所述存活消息,并通过所述安全 单元对所述存活消息进行加密;以及所述客户端从所述内存监控模块获取所述加密的存活消 息,并将其转发到所述服务器。
17. 才艮据权利要求16所述的安全4姿一建输入方法,其特征在于,所 述存活消息中携带有与所述内存检测才莫块的检测时间间隔或 预定时长相关的信息。
18. 根据权利要求17所述的安全按键输入方法,其特征在于,所 述马全i正步,骤进一步包纟舌以下处理所述服务器判断所述加密的按键输入是否正确,在判断 结果为是的情况下,进4亍以下处理;所述"良务器判断所述按4定输入是否在所述才企测时间间隔 内或者未超过所述预定时长,在判断结果为是的情况下,判断 所述按键输入有效。
19. 一种安全按4建输入系统,其特征在于,在客户端包括安全输入模块,用于挂接键盘中断,并通过安全单元对 按键输入进行加密;内存监控模块,由所述客户端动态生成,用于验证所述 安全输入才莫块,以及生成存活消息;以及所述安全单元,除了用于对所述4安4建输入进行加密外, 还用于对所述存活消息进行加密。
20. 根据权利要求19所述的安全按键输入系统,其特征在于,所 述客户端根据所述加密的按键输入和所述存活消息来验证所 述按键输入的有效性。
21. 根据权利要求20所述的安全按键输入系统,其特征在于,所 述客户端"i殳置所述安全单元的加密方式,并生成所述安全单元进行加密的密钥。
22. 根据权利要求20所述的安全按键输入系统,其特征在于,所 述内存监控模块为以下任一种监控某一 内存地址的设备驱动 程序,运行在虚拟机中的监控某一内存地址的软件程序,运行 于基本输入输出系统中监控某一 内存地址的软件程序或者是 专用内存监控硬件上的初始化程序;此外,对于所述内存监控 模块在内存中设置的位置没有限定。
23. 根据权利要求20所述的安全按键输入系统,其特征在于,所 述内存监控模块通过检测所述安全输入模块挂接的键盘处理 中断地址对应的代码空间是否^皮^修改来才企测所述安全输入才莫 块的有效性。
24. 才艮据权利要求23所述的安全4要4定输入系统,其特征在于,所 述内存监控模块在随机时间间隔或预定时长内分段检测所述 安全输入模块,并且所述存活消息中携带有与所述内存检测模 块的才企测时间间隔或预定时长相关的信息。
25. 根据权利要求24所述的安全按键输入系统,其特征在于,当所述加密的纟安4建输入正确,且所述4妄4建llr入在所述才企测时间间隔内或未超过所述预定时长的情况下,所述客户端判定所述按 键输入有效。
26. —种安全按4建输入方法,4吏用4艮据4又利要求19至25中任一项 所述的安全按键输入系统,其特征在于,包括初始化步骤,客户端在启动时动态加载安全输入模块和 内存监控模块,并设置安全单元的加密方式,其中,所述内存 监控模块由所述客户端动态生成;按键输入处理步骤,所述安全输入一莫块通过所述安全单 元对用户的按键输入进行加密,并将所述加密的按键输入发送到所述客户端;内存监控处理步骤,所述内存监控才莫块检测所述安全输 入模块,生成存活消息,并将通过所述安全单元所述加密存活 消息发送到所述客户端;以及验证步骤,所述客户端根据所述加密4姿一建输入和所述存 活消息来-验证所述按4建输入的有效性。
27. 根据权利要求26所述的安全按键输入方法,其特征在于,所 述初始化步骤进一步包括以下处理所述客户端设置所述安全单元的加密方式;所述客户端加载所述安全输入模块;所述安全输入模块挂接4建盘处理中断;以及所述客户端生成所述内存监控模块,并将其动态加载到 系乡充内存;其中,所述安全输入模块桂接键盘处理中断后,修改代 码空间中的键盘中断指向的处理地址,使得用户进行按键输入 时,直接触发所述安全输入模块的键盘中断处理部分。
28. 根据权利要求26所述的安全按键输入方法,其特征在于,所 述4姿4建输入处理步骤进一 步包括以下处理所述用户进行按键输入;所述安全输入模块读取所述按键输入,并清空按键緩冲区;所述安全输入模块将所述按键输入提交到所述安全单 元,并由所述安全单元对所述按键输入进4亍加密;以及所述安全输入模块将所述加密按键输入发送到所述客户端。
29. 根据权利要求26所述的安全按键输入方法,其特征在于,所 述内存监控处理步骤进一步包括以下处理所述内存监控模块启动,并检测所述安全输入模块挂接 的4建盘处理中断;也址对应的^石马空间;判断所述代码空间中的键盘中断指向的代码段是否为所 述客户端加载的代码段,并且在判断结果为是的情况下,进行 以下处理;所述内存监控模块生成所述存活消息,并通过所述安全 单元对所述存活消息进行加密;以及所述客户端从所述内存监控模块获取所述加密的存活消息。
30. 根据权利要求29所述的安全按键输入方法,其特征在于,所 述存活消息中携带有与所述内存检测模块的检测时间间隔或 预定时长相关的信息;所述-验证步骤进一 步包括以下处理所述客户端判断所述加密的按键输入是否正确,在判断 结果为是的情况下,进行以下处理;所述客户端判断所述按4定输入是否在所述才企测时间间隔 内或者未超过所述预定时长,在判断结果为是的情况下,判断 所述按键输入有效,并对所述按一建输入进4亍二次加密后发送到 所述服务器。
31. —种安全按键输入设备,其特征在于,包括安全输入模块,用于挂接键盘中断,并通过安全单元对4安4建^r入进4于加密;内存监控模块,由服务器或客户端动态生成,用于验证所述安全输入才莫块,以及生成存活消息;以及所述安全单元,除了用于对所述按键输入进行加密外, 还用于对所述存活消息进行加密;其中,所述客户端或所述服务器#4居所述安全按一睫输入 设备提供的所述加密的按键输入和所述存活消息来验证所述 按键输入的有效性。
全文摘要
本发明公开了一种安全按键输入系统,包括安全输入模块,用于挂接键盘中断,并通过安全单元对按键输入进行加密;内存监控模块,由服务器动态生成,用于验证安全输入模块,以及生成存活消息;以及安全单元,除了用于对按键输入进行加密外,还用于对存活消息进行加密。借助于本发明的技术方案,实现了以下有益效果独立地动态审计模块可以随时更新,因此木马程序难以定位其在内存中所处的位置;受信根为服务器,易于系统维护和升级;输入信息加密和内存监控模块的存活消息共同保证输入不被修改,提升了系统安全性。
文档编号H04L9/00GK101335611SQ20071011819
公开日2008年12月31日 申请日期2007年6月29日 优先权日2007年6月29日
发明者于辰涛, 李洪伟 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1