突破QQ2009的nprotect键盘加密技术 收藏
近段时间,腾迅公司一直在吹牛他们如何保护QQ用户的帐号和密码安全,Nprotect键盘加密技术多么强大,由于鄙人近期要做一个密码安全保护控件,就仔细分析了QQ2009的密码保护功能框,结果发现QQ2009漏洞较多,安全措施都能获得突破,下面一一道来:
鄙人声名:分析QQ2009的目的,不是盗取QQ帐号,而是提高QQ的安全,促进QQ的发展。信息安全需要很多事情要做,本人只是贡献点微薄之力。信息安全需要多一份实在,少一份浮躁,多研究点安全问题,少想点如何盗窃,这样我们的信息安全就会更好。
一、Nprotect键盘加密技术
腾讯使用的Nprotect键盘加密技术来自一家韩国的公司,该技术已经在很多地方都使用,包括银行、证券、保险、游戏、信用卡、电子政务和电子商务等,用户比较多,使用面比较广。
nProtect键盘加密保护系统是一种针对个人用户信息安全的产品,它用来保护用户的信息不被黑客的键盘记录程序所获取。通过键盘加密技术即使用户的PC中有木马程序,黑客也无法正确读取输入的键盘信息,从而根本上防止了互联网用户在进行网上交易、网络游戏以及使用电子银行时可能出现的帐号被盗的情况。
nProtect键盘加密保护系统功能如下:
阻止黑客工具读取键盘信息
自动检测键盘信息记录黑客程序
对于每一次键盘敲击,绿色卫士键盘保护产品可以实时的进行加密和解密(采用国际标准的RSA 128位算法)
支持不同类型的键盘(ps/2,usb键盘 101 / 103 / 106 / 109,等等)
二、QQ2009采用的安全措施
当前QQ2009(包括QQ2009 BETA1、BETA2、正式版、正式版(SP1)、正式版(SP2))所采取的措施大致包括:
1、采取Nprotect技术保护帐号密码
A、屏蔽密码窗口获取内容消息
B、屏蔽密码窗口设置内容消息
C、屏蔽密码窗口光标位置消息
D、屏蔽ACTIVEX键盘钩子
E、屏蔽键盘状态消息
F、屏蔽全局键盘钩子
G、屏蔽键盘驱动
H、发送键盘扰乱信息
I、键盘输入内容加密
2、采取虚拟键盘
A、屏蔽虚拟键盘按钮窗口
B、虚拟键盘按钮窗口随意变动
3、QQ采取的相关措施
A、屏蔽登录按钮窗口
B、系统漏洞扫描
C、盗号木马扫描
D、发出安全警告
E、其他安全功能
三、QQ2009目前能够阻止绝大多少键盘记录器
1、nProtect技术本身就能够防止一般的键盘记录器,如ACTIVEX键盘钩子、全局键盘钩子和键盘驱动
2、通过键盘光标的过滤,能够防止目前绝大多数键盘钩子,使键盘输入的内容不知道插入到什么位置
3、通过与虚拟键盘的组合,几乎是当前绝大多少键盘记录器的终结者
四、当前QQ用户一般的做法
1、在桌面机器上安装防火墙、防病毒软件
2、无法杜绝和检测新出现的病毒、盗号木马
3、故意输入错误密码,防止键盘记录器
4、故意打乱密码输入次序,防止键盘记录器
5、申请QQ密码保护
6、使用复杂密码
7、密码长度保证
8、经常更换密码
9、不上乱七八糟的网站,以免被植木马
10、密码修改手机短信提示
11、等等
以上所有的做法,都滞后,没有就QQ2009帐号安全这个根本上考虑和解决问题,只能是依靠民众的智慧,将QQ盗号损失降低到最低,下面就来分析当前QQ2009存在的安全问题。
五、QQ2009破解全过程
表面上QQ2009使用了很多安全措施,足以保障QQ登录密码安全。但仔细分析下,你会发现,还存在很多问题,还不足以防止密码被盗。
第一步、我写了一个API全局钩子
第二步、我加载了一个窗口钩子,能够获取QQ窗口句柄和内容
第三步、我加载了一个列举子窗口函数,能够获取QQ帐号窗口句柄和内容,能够获取QQ密码窗口句柄和类型
,但无法QQ密码窗口内容,总是返回一个固定的标题,估计QQ做了安全防范
第四步、我加载了一个键盘钩子,能够获得QQ帐号窗口输入,但获取不到QQ密码窗口输入内容
第五步、我写了一个键盘状态钩子,能够获取键盘信息,但发现有乱码,估计QQ做了一些工作
第六步、我写了一个键盘驱动,发现键盘输入内容经过加密
第七步、我写了一个I/O读写驱动,发现能够拦截QQ密码窗口输入
第八步、我写了一个键盘光标程序,发现QQ密码窗口总是返回错误,估计QQ做了相关安全
第九步、我改变一下思路,不从获取QQ密码窗口获取光标消息,结果测试成功
第十步、开始考虑破解QQ2009虚拟键盘,因为键盘输入已经全部搞定
第十一步、我用窗口钩子,能够截获QQ虚拟键盘窗口,但无法获得虚拟键盘按钮
第十二步、我试着使用金山词霸进行屏幕取词,结果能够获得QQ虚拟键盘内容
第十三步、我写了一个屏幕取词程序,成功实现虚拟键盘内容截获
第十四步、为了截获虚拟键盘点击时间,我在API HOOK的基础上,加载了一个鼠标钩子,专门拦截点击鼠标点击事件
第十五步、程序测试,发现些小BUG,如删除(delete/backspace)、随意插入、组合键等,但基本大功告成,整个QQ2009的nProtect技术保护就让我这样被成功破解。
六、QQ2009破解程序能够实现
1、能够实现键盘钩子
2、能够实现鼠标钩子
3、能够实现窗口钩子
4、能够实现QQ窗口监控
5、能够实现键盘记录功能
6、能够突破nProtect加密保护
7、能够实现键盘光标监控
8、能够实现字符大小写
9、能够实现特殊字符
10、能够实现组合键输入
11、能够实现字符剪切
12、能够实现字符粘贴
13、能够实现字符删除
14、能够实现字符随意插入
15、能够记录虚拟键盘输入内容
七、QQ2009存在的主要问题
现在来回过头来总结下QQ2009中存在的问题,大致如下:
1、帐号窗口没有任何保护,使窗口钩子能够轻易获得其句柄和内容
2、密码窗口聚焦时启动Nprotect保护,失去焦点时就存在保护真空,容易被人利用
3、键盘光标位置没有进行保护,只对获取密码窗口的键盘位置消息进行了过滤,还有其他的方法可以获取
4、QQ界面没有伪装,包括界面的类型和界面标题,都可以轻易获取
5、没有防止窗口钩子,包括窗口创建、出现、消失和销毁,致使其他程序就可以轻易进行监控
6、键盘加密驱动无法拦截I/O读写驱动,致使键盘输入内容轻易被他人截取
7、可以使用屏幕取词技术获得虚拟键盘上的按钮单词,从而可以突破虚拟键盘的保护
8、没有屏蔽鼠标钩子,使其他程序能够截获鼠标点击事件,从而拦截虚拟键盘留下致命漏洞
9、没有屏蔽屏幕截屏,使截屏软件能够获得虚拟键盘的输入
八、总结
虽然QQ在吹牛它现在的nProtect技术多么牛B,但事实不是如此,经过我半天的时间就轻易破解,当然还有很多其他的方法可以破解,我没有去试,应该问题不大,包括注入、假窗口、假界面和假控件等,当然还可以利用窗口钩子来控制其加密驱动的启动和停止,这些都不是我想要的,我不是来盗号,而是研究密码输入框的安全问题,在此也非常逼视那些盗号者。
其实,在此也非常感谢QQ2009,能够提供给我这么多思路,让我的密码框安全控件能够更加成熟。虽然QQ2009存在问题,但相比与MSN和网银来说,应该是安全得多,也请腾讯赶快把漏洞尽快打上,避免给客户造成帐号和密码丢失,带来不必要的麻烦。
当然,目前QQ用户也不用担心QQ号码被盗,毕竟现在能够突破Nprotect键盘加密技术的木马还不多,只要今后小心和组合使用里面的功能,被盗的机会很少。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/elephantzhang/archive/2009/07/30/4393759.aspx