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

文档序号:9631734阅读:来源:国知局
回给安全输入插件;
[0135] 例如,从NT驱动密码存储队列中首地址存储的内容中获取的键盘输入信息为:
[0136] m_Code= 2 ;m_CodeIndex= 3 ;m_CodeTab= 10;Flags= 0 ;该信息对应输入字 符1,使用协商密钥对字符1加密处理得到的加密结果返回给安全输入插件。
[0137] 步骤109 :安全输入插件接收到NT驱动返回的加密结果后,使用协商密钥解密所 述加密结果获取明文密码,使用插件密钥对所述明文密码进行加密得到密文密码并保存, 在安全输入插件开辟的输入框中显不一个显不符号,并将输入框中光标移动到显不符号后 面,然后返回步骤104;
[0138] 例如,获取的明文密码为字符1,输入框中显示的一个显示符号为
[0139] 步骤110 :安全输入插件向NT驱动发送关闭键盘过滤请求;
[0140] 步骤111 :NT驱动接收到所述关闭键盘过滤请求后,关闭键盘过滤开关,并向安全 输入插件返回已关闭消息响应;
[0141] 步骤112 :当安全输入插件接收到外部应用发来的获取输入数据请求时,使用插 件密钥对保存的密文密码解密得到明文密码,使用用户指定密钥对所述明文密码加密后作 为输入数据传递给外部应用。
[0142] 在本实施例中,如果物理键盘为PS2键盘,则当键盘过滤驱动接收到键盘输入信 息时,图2中所示步骤可以细化为如图3所示内容,具体如下:
[0143] 步骤1-1 :判断键盘过滤开关是否打开,是则执行步骤1-2,否则执行步骤1-12 ;
[0144] 步骤1-2 :判断接收到的键盘输入信息中的按键标识的值是否等于0或1,是则执 行步骤1-3,否则执行步骤1-5 ;
[0145] 本步骤具体为,判断Flags是否等于0或1,是则执行步骤1-3,否则执行步骤1-5。 优选的,Flags= 0表示按键按下,Flags= 1表示按键弹起。
[0146] 步骤1-3 :判断扩展标识是否置位,是则执行步骤1-4,否则执行步骤1-5 ;
[0147] 本步骤具体为,判断Extrainformation是否为1,是则执行步骤1-4,否则执行步 骤 1-5〇
[0148] 优选的,Extrainformation= 1 时,Flags= 2 表示按键按下,Flags= 3 表示按 键弹起。
[0149] 步骤1-4 :将按键标识的值更新为其当前值加2,复位扩展标识,然后执行步骤 1-5 ;
[0150] 步骤1-5 :判断按键发送标识是否置位,是则执行步骤1-6,否则执行步骤1-14 ;
[0151] 步骤1-6 :判断所述按键标识的值是否等于0或1或2或3,是则执行步骤1-7,否 则执行步骤1-14 ;
[0152] 优选的,Flags= 0或2表示按键按下,Flags= 1或3表示按键弹起。
[0153] 步骤1-7 :判断接收到的键盘输入信息中的按键扫描码是否等于当前存储的模拟 键盘输入信息中的按键扫描码,是则执行步骤1-8,否则执行步骤1-14 ;
[0154] 本步骤具体为,判断接收到的键盘输入信息中的Code的值是否与当前存储的模 拟键盘输入信息中的Code的值相等,是则执行步骤1-8,否则执行步骤1-16。
[0155] 步骤1-8 :判断所述按键标识是否与当前存储的模拟键盘输入信息中的按键标识 相等,是则执行步骤1-9,否则执行步骤1-10 ;
[0156] 本步骤具体为,判断接收到的键盘输入信息中的Flags的值是否与当前存储的模 拟键盘输入信息中的Flags的值相等,是则执行步骤1-9,否则执行步骤1-10。
[0157] 步骤1-9 :置位扩展标识,然后执行步骤1-10 ;
[0158] 步骤1-10 :确认接收到的是模拟键盘输入信息,执行步骤1-11 ;
[0159] 步骤1-11 :清除当前存储的模拟键盘输入信息,复位按键发送标识,然后执行步 骤 104 ;
[0160] 步骤1-12 :确认接收到的是真实键盘输入信息,执行步骤1-13 ;
[0161] 步骤1-13 :键盘过滤驱动将接收到的键盘输入信息返回给系统键盘线程,当系统 键盘线程接收到外部应用的获取键盘输入数据请求时,将所述键盘输入信息传递给外部应 用,结束。
[0162] 步骤1-14 :确认接收到的是真实键盘输入信息,执行步骤1-15 ;
[0163] 步骤1-15 :判断接收到的键盘输入信息是否是可见字符,是则执行步骤1-16,否 则执行步骤1-13 ;
[0164] 步骤1-16 :产生一个键盘输入信息,将接收到的键盘输入信息与产生的键盘输入 信息存入NT驱动密码存储队列的末尾地址,并将产生的键盘输入信息返回给系统键盘线 程,由系统通过消息机制根据所述产生的键盘输入信息得到键盘输入发送到安全输入插 件,然后执行步骤105。
[0165] 在本实施例中,如果物理键盘为USB键盘,则当键盘过滤驱动接收到键盘输入信 息时,图2中所示步骤可以细化为如图4所示内容,具体如下:
[0166] 步骤2-1 :判断键盘过滤开关是否打开,是则执行步骤2-2,否则执行步骤2-7 ;
[0167] 步骤2-2 :判断按键发送标识是否置位,是则执行步骤2-3,否则执行步骤2-9 ;
[0168] 步骤2-3 :判断接收到的键盘输入信息中的按键标识是否等于0或1,是则执行步 骤2-4,否则执行步骤2-9;
[0169] 本步骤具体为,判断Flags是否等于0或1,是则执行步骤2-4,否则执行步骤2-9。 优选的,Flags= 0表示按键按下,Flags= 1表示按键弹起。
[0170] 例如,以用户按下capslock键为例,其对应的按键扫描码为58,键盘过滤驱动接 收到的键盘输入信息为:
[0171] Unitld= 0 ;
[0172] MakeCode= 58 ;
[0173] Flags= 0 ;
[0174] Reserved= 0 ;
[0175] Extrainformation= 0 ;
[0176] 键盘过滤驱动中当前存储的模拟键盘输入信息为:
[0177] Unitld= 1 ;
[0178] MakeCode= 30 ;
[0179] Flags= 0 ;
[0180] Reserved= 0 ;
[0181] Extrainformation= 0 ;
[0182] 和
[0183] Unitld= 1 ;
[0184] MakeCode= 30 ;
[0185] Flags= 1 ;
[0186] Reserved= 0 ;
[0187] Extrainformation= 0 ;
[0188] 步骤2-4 :判断接收到的键盘输入信息中的按键扫描码是否与当前存储的模拟键 盘输入信息中的按键扫描码相等,是则执行步骤2-5,否则执行步骤2-9 ;
[0189] 本步骤具体为,判断接收到的键盘输入信息中的MakeCode的值是否与当前存储 的模拟键盘输入信息中的MakeCode的值相等,是则执行步骤2-5,否则执行步骤2-9。
[0190] 步骤2-5 :确认接收到的是模拟键盘输入信息,执行步骤2-6 ;
[0191] 步骤2-6 :清除当前存储的模拟键盘输入信息,复位按键发送标识,然后执行步骤 104 ;
[0192] 步骤2-7 :确认接收到的是真实键盘输入信息,执行步骤2-8 ;
[0193] 步骤2-8 :键盘过滤驱动将接收到的键盘输入信息返回给系统键盘线程,当系统 键盘线程接收到外部应用的获取键盘输入数据请求时,将所述键盘输入信息传递给外部应 用,结束。
[0194] 步骤2-9 :确认接收到的是真实键盘输入信息,执行步骤2-10 ;
[0195] 步骤2-10:判断接收到的键盘输入信息是否是可见字符,是则执行步骤2-11,否 则执行步骤2-8 ;
[0196] 具体的,将接收到的键盘输入信息的按键扫描码与第一存储区中的可见字符对 应的按键扫描码比较,若与其中一个一致则接收到的键盘输入信息为可见字符,否则判断 shift键状态是否为按下,是则接收到的键盘输入信息为不可见字符,否则将接收到的键 盘输入信息的按键扫描码与第二存储区中的可见字符对应的扫描码比较,若与其中一个一 致则接收到的键盘输入信息为可见字符,若均不一致则接收到的键盘输入信息为不可见字 符。
[0197] 例如,接收到的键盘输入信息的按键扫描码为58,为不可见字符。
[0198] 步骤2-11 :产生一个键盘输入信息,将接收到的键盘输入信息与产生的键盘输入 信息存入NT驱动密码存储队列的末尾地址,并将产生的键盘输入信息返回给系统键盘线 程,由系统通过消息机制根据所述产生的键盘输入信息得到键盘输入发送到安全输入插 件,然后执行步骤105。
[0199] 实施例2
[0200] 本实施例提供了一种提高输入安全性的装置,如图5所示,包括:键盘过滤驱动1、 安全输入插件2和NT驱动3 ;其中,
[0201] 键盘过滤驱动1包括第一接收模块101、判断模块102、运行模块103、清除模块 104和存储模块105 ;
[
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1