一种基于键盘中断反过滤的密码保护方法.docVIP

一种基于键盘中断反过滤的密码保护方法.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种基于键盘中断反过滤的密码保护方法.doc

一种基于键盘中断反过滤的密码保护方法   摘要: 在日常的计算机应用中不可避免的要经常输入帐号和密码,但这些隐私信息却常常被不法分子拦截,从事非法活动,给用户带来重大损失。该文提出一种基于键盘中断反过滤的密码保护方法,采取修改中断IDT表的函数地址或者修改IOAPIC重定位表的中断定位来抢先拦截,获取键盘信息,避免被不法分子截获,从而保障隐私信息的安全。   关键词:驱动;信息安全;透明加密   中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)03-0500-03   键盘是非常重要的输入设备,绝大部分的用户使用键盘输入信息,包括极为重要的帐号和密码,而这正是不法分子重点关注的地方[1]。随着信息化进程的迅猛发展,网上购物、网上聊天等等越来越普及,普通民众不可避免的要面对开发不设防的网络,这就带来了很多安全隐患,例如:在计算机上输入银行帐号和密码;输入QQ号和密码;输入游戏帐号和密码等等,如果计算机的键盘被不法分子过滤截获了,必将造成重大损失,例如支付宝中的钱款丢失、QQ中的Q币被盗、游戏中的虚拟装备被盗等等。为此本文针对性地提出了一种基于驱动的中断反过滤方法来防止此类事件的发生,并且整个过程对于用户来说是“透明”的,不影响用户的任何操作。   1 键盘原理   计算机硬件通常与相应的驱动程序一起工作,键盘的驱动为KbdClas,驱动首先要获取其下的所有设备(可能有多个键盘,并且键盘的接口可能是USB或者PS/2等)[3],通过驱动对象结构DRIVER_OBJECT下的DeviceObject域,该域中有一个NextDevice的指针(指向下一个设备),可以获得所有的键盘设备;或者通过调用IoEnumerateDeviceObjectList函数,枚举出所有某个驱动下的所有设备。第二步,获得所有的键盘设备后,填写所有的分发函数指针DriveObject-MajorFunction[IRP_MJ_READ]。第三步是读处理,首先复制当前的IRP栈空间(IoCopyCurrentIrpStackLocationToNext(Irp)),其次设置回调函数IoSetCompletionRoutine,也就是键盘读取到信息后将执行的函数,再发送到下一个设备(IoCallDriver(NextDevice,Irp));然后把键盘的信息缓冲在缓冲区,最后发送给应用程序。   2 键盘过滤   键盘驱动的原理官方早有公布,尽人皆知。不法分子可能在哪些地方进行过滤呢?最简单的可以在缓冲区中获得KEYBOARD_INPUT_DATA结构体[2],该结构体的成员MakeCode就是扫描码,配合另外一个成员Flags即可获得键盘的按键信息,拦截之即可。第二种方法可以在驱动填写分发函数时进行,修改其指针,指向自己写的函数:DriveObject-MajorFunction[IRP_MJ_READ]=c2pDispatchRead,c2pDispatchRead函数是一个自定义的函数,只要指针修改后,则键盘往后的操作再与键盘驱动KbdClass无关了。第三种过滤,不法分子可能设置IRP请求的回调函数IoSetCompletionRoutine(Irp,c2pReadComplete,DeviceObject,TRUE, TRUE, TRUE),c2pReadComplete函数是自定义的函数,这就相当于拦截了IRP请求,这相较前两种又更底层。   3 键盘反过滤   键盘过滤与反过滤其本质都是过滤,如何防止不法分子对键盘的过滤呢?关键在于抢先一步过滤,即键盘信息先被我方拦截了,其他人自然就过滤不到任何信息了。如何做到抢先一步过滤,那就看谁做的更底层。如果从硬件中断角度出发,能收到奇效。   硬件设备发生中断,例如 int n,CPU将会到IDT(Interrupt Descriptor Table)中断描述表中查找第n项,在IDT中读取到函数的首地址,CPU则跳到该地址去执行[4]。键盘按键触发的中断为int 0x93。如果修改int 0x93中断在IDT中保持的函数地址,替换成我方的函数地址,则int 0x93中断一定我方先截获,其他之后的过滤层无法拦截到任何信息。其部分关键代码如下所示:   一般情况下不法分子很难底层到硬件的中断,到此为止一般认为键盘比较安全了,不太容易被其他人过滤。今年也很少发现黑客软件盗窃密码能底层到硬件中断,但上述方法并非完美,还有更底层的过滤,即修改IO高级可编程中断控制器IOAPIC(I/O Advanced Programmable Interrup Controller)。   IOAPIC是一个可编程的控制器,当IRQ发生时硬件将IRQ发送到哪个CPU

文档评论(0)

fa159yd + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档