一种提高输入安全性的方法和装置的制造方法_2

文档序号:9631734阅读:来源:国知局
T驱动接收到所述键盘过滤请求后,开启键盘过滤开关,并向安全输入 插件返回过滤请求响应;
[0053] 步骤103 :安全输入插件接收NT驱动返回的过滤请求响应;
[0054] 步骤104 :安全输入插件等待键盘输入;
[0055] 当安全输入插件接收到键盘输入时,执行步骤105 ;
[0056] 具体的,当键盘设备上有按键被按下时,根据按键对应字符组成的自定义结构的 键盘输入信息会传递到NT驱动下加载的键盘过滤驱动,最后由NT驱动传递一个键盘输入 给安全输入插件,安全输入插件收到的键盘输入为一个字符。
[0057] 优选的,当键盘设备上的按键被按下,键盘过滤驱动接收到键盘输入信息时,如图 2所示,执行以下步骤;
[0058] 本实施例中具体的,键盘过滤驱动接收到的键盘输入信息的结构如下:
[0059]
[0060]
[0061] 其中,按键按下时Flags= 0,按键弹起时Flags= 1。PS2键盘对应的Unitld= 0,USB键盘对应的Unitld= 1。
[0062] 步骤104-1 :键盘过滤驱动判断接收到的键盘输入信息是否为模拟键盘输入信 息,是则执行步骤104-2,否则执行步骤104-3 ;
[0063] 具体的,键盘过滤驱动将接收到的键盘输入信息与当前存储的数据进行比较,若 存在一致的数据则判断为接收到的键盘输入信息是模拟键盘输入信息,否则不是。
[0064] 优选的,如果是PS2键盘,则键盘过滤驱动不间断、不定时地往键盘控制器芯片的 端口发送干扰字节,系统自动将该干扰字节识别为模拟的键盘输入信息结构体数据,并通 过回调函数写入到系统键盘类驱动kbdclass,再由kbdclass经由键盘过滤驱动发给系统 键盘线程;若是USB键盘,则键盘过滤驱动不间断、不定时地通过回调函数向kbdclass写 入模拟的键盘输入信息结构体数据,再由kbdclass经由键盘过滤驱动发给系统键盘线程, 相应的,键盘过滤驱动会记录并存储向kbdclass发送的数据,并当键盘过滤驱动接收到 kbdclass发送的模拟键盘输入信息时,将其与当前存储的数据进行比较,进而实现过滤模 拟键盘输入信息的目的。
[0065] 例如,当用户按下按键'1'时,其对应的按键扫描码为2,则键盘过滤驱动接收到 的键盘输入信息为:
[0066] Unitld= 0 ;
[0067] MakeCode= 2 ;
[0068] Flags= 0 ;
[0069] Reserved= 0 ;
[0070] Extrainformation= 0 ;
[0071] 另一方面,若当前键盘为PS2键盘,键盘过滤驱动向键盘控制器芯片的端口发送 的干扰字节为〇x〇a和0x8a,键盘过滤驱动当前存储的模拟键盘输入信息为:
[0072] Unitld= 0 ;
[0073] MakeCode= 10 ;
[0074] Flags= 0 ;
[0075] Reserved = 0 ;
[0076] Extrainformation= 0 ;
[0077] 和
[0078] Unitld= 0 ;
[0079] MakeCode= 10 ;
[0080] Flags=1;
[0081] Reserved= 0 ;
[0082] Extrainformation= 0 ;
[0083] 若当前键盘为USB键盘,则键盘过滤驱动当前存储的模拟键盘输入信息为:
[0084] Unitld= 1 ;
[0085] MakeCode= 10 ;
[0086] Flags= 0 ;
[0087] Reserved= 0 ;
[0088] Extrainformation= 0 ;
[0089] 和
[0090] Unitld= 1 ;
[0091] MakeCode= 10 ;
[0092] Flags=1;
[0093] Reserved= 0 ;
[0094] Extrainformation= 0 ;
[0095] 步骤104-2 :键盘过滤驱动清除当前存储的模拟键盘输入信息,执行步骤104 ;
[0096] 步骤104-3 :键盘过滤驱动产生一个键盘输入信息,将接收到的键盘输入信息与 产生的键盘输入信息存入NT驱动密码存储队列的末尾地址,并将产生的键盘输入信息返 回给系统键盘线程,由系统通过消息机制根据产生的键盘输入信息得到键盘输入发送到安 全输入插件,然后执行步骤105 ;
[0097] 具体的,键盘过滤驱动根据接收到的键盘输入信息产生一个键盘输入信息,产生 的键盘输入信息中的按键扫描码根据接收到的键盘输入信息中的按键扫描码确定。进一步 的,系统键盘线程接收到键盘过滤驱动发来的所述产生的键盘输入信息时,会自动将其转 换为一个正确的字符作为键盘输入返回给安全输入插件。
[0098]例如,接收到键盘输入信息中的按键扫描码是2,产生的键盘输入信息中的按键扫 描码是3。
[0099] 优选将键盘输入信息中的重要内容存入NT驱动密码存储队列的末尾地址,本步 骤存入NT驱动密码存储队列的末尾地址的信息的结构如下:
[0100] //接收到的键盘输入信息:
[0101]
[0102] //产生的键盘输入信息:
[0103]USHORTm_RndCode; //按键扫描码
[0104]USHORTm_RndCodeIndex;// 校验码索引
[0105]USHORTm_RndCodeTab; //校验码表格索引
[0106] 例如,本步骤接收到的键盘输入信息为:
[0107]Unitld= 1 ;
[0108] MakeCode= 2 ;
[0109]Flags=0;
[0110] Reserved=0 ;
[0111] Extrainformation= 0 ;
[0112] 本步骤产生的键盘输入信息为:
[0113]Unitld= 1 ;
[0114] MakeCode= 3 ;
[0115]Flags= 0 ;
[0116] Reserved= 0 ;
[0117]Extrainformation= 0 ;
[0118] 存入到所述末尾地址的内容为:
[0119]m_Code= 2 ;m_CodeIndex= 3 ;m_CodeTab= 10;Flags= 0 ;
[0120] m_RndCode= 3 ;m_RndCodeIndex= 5 ;m_RndCodeTab= 10 ;
[0121] 发送到安全输入插件的键盘输入为字符2(对应ASCII码为50)。需说明的是,发 送到安全输入插件的为字符2还是字符@是由系统决定的。
[0122] 当安全输入插件接收到光标消失提醒消息时,执行步骤110 ;
[0123] 步骤105 :安全输入插件使用协商密钥对所述键盘输入加密处理形成验证码,将 所述验证码发送给NT驱动;
[0124] 具体的,安全输入插件接收到键盘输入时,还包括安全输入插件与NT驱动协商产 生协商密钥的过程。例如,安全输入插件产生一个随机数作为协商密钥,并发送给NT驱动, NT驱动接收NT驱动发送的随机数并保存为协商密钥。
[0125] 优选的,安全输入插件接收到键盘输入,将键盘输入先按照指定运算方法进行运 算,然后使用协商密钥对运算结果加密得到验证码,或者是直接使用协商密钥对键盘输入 加密得到验证码,并将所述验证码发送给NT驱动。
[0126] 例如,安全输入插件接收到的键盘输入为字符2,将其加密处理形成验证码发送给 NT驱动。
[0127] 步骤106 :NT驱动接收到所述验证码,使用协商密钥解密所述验证码得到解密结 果,验证所述解密结果是否正确,是则执行步骤108,否则执行步骤107 ;
[0128] 具体的,验证解密结果是否正确具体为,将解密结果与NT驱动密码存储队列中首 地址存储的内容所对应的索引内容进行比对,若存在一致的内容则解密结果正确,执行步 骤108,否则解密结果错误,执行步骤107。
[0129] 例如,解密结果包含所述键盘输入即字符2 ;
[0130] NT驱动密码存储队列中首地址存储的内容有:m_RndCode= 3 ;m_RndCodeIndex =5 ;m_RndCodeTab= 10,其对应的索引内容有:2、0 ;
[0131] 即解密结果与索引内容中的2 -致,解密结果正确。
[0132] 具体的,本步骤还包括,NT驱动根据所述解密结果确定键盘输入信息中的按键扫 描码对应的用户按键的大小写,例如,解密结果与索引内容中的2-致,则确定用户按键为 小写字符。
[0133] 步骤107 :NT驱动删除NT驱动密码存储队列中首地址存储的内容,执行步骤104 ;
[0134] 步骤108 :NT驱动从NT驱动密码存储队列中首地址存储的内容中获取键盘输入信 息,删除NT驱动密码存储队列中首地址存储的内容,并用协商密钥对获取的所述键盘输入 信息对应的输入字符进行加密处理得到加密结果,将所述加密结果返
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1