`

无线键鼠监听与劫持

阅读更多

引言:键盘是生活中最常见的硬件之一,无线键鼠由于其方便美观受到很多人的青睐,那么它的安全性如何呢?面对攻击我们又如何防护呢? 
本文选自《硬件安全攻防大揭秘》。

1.无线键鼠的兴起

  键盘连接到计算机有多种方式,有线键盘鼠标在生活中最常见,适用范围也很广泛,但有线连接不仅对操作距离有限制,而且给携带造成了不便。不仅如此,繁杂的线缆还很容易把桌面弄得凌乱不堪。无线键鼠非常好地解决了上述问题。无线键鼠又分为蓝牙类型和2.4GHz 类型,文中所指的无线鼠标一般指2.4GHz 类型。值得注意的是,虽然蓝牙键鼠的工作频段也是2.4GHz 频段,使用的却是蓝牙通信协议,符合蓝牙标准。而2.4GHz 类型的键鼠主要指利用专属无线协议开发的无线产品。2.4GHz 类型的无线键鼠,一般在计算机的USB 接口处插上一个适配器,鼠标和键盘通过电池供电。

2.无线键鼠的基本原理

  无线键鼠与有线键鼠的主要区别在于信号传输方式。有线键鼠利用导线传输信息,而无线键盘利用无线电传输信息。早期的无线键盘使用27MHz 的频段,当时的无线接收器相对现在的集成芯片来说要大得多。目前大多数产品都工作在2.4GHz 的ISM(工业、科学、医疗)频段。下面我们大致介绍无线键盘的工作原理。当按下键盘时,键盘内部的单片机利用矩阵扫描的原理检测到是哪个按键按下了,相应按键有相应的编码;单片机利用无线收发模块把按键信息通过无线电传播出去;电脑端插在USB 接口上的适配器收到相应的数据后会通过USB 向电脑操作系统传输按键的输入信息。这样就完成了一次按键信息的传送,下面将详细介绍无线通信的硬件部分和通信数据部分。

3.硬件部分

  如果想真正了解键盘的构造、基本原理等信息,拆解是非常直接有效的方法。 
图片描述
  上图为某无线键盘的拆解图。右下部分是一个电池槽,红色的线是一根电源线,为单片机和无线模块供电。目前市场上最常见的就是这种薄膜式键盘。薄膜式键盘取代机械键盘的原因并非机械键盘的品质不够好、手感不佳。机械键盘的手感、使用寿命都要优于薄膜键盘,只是因为成本过高而逐渐退出市场。最近因更追求产品的品质,机械键盘又逐渐流行起来。 
  薄膜式键盘内部共分三层,实现了无机械磨损,其特点是低价格、低噪音和低成本,已占领市场绝大部分份额。我们现在经常使用的就是薄膜键盘。薄膜式键盘架构很简单,除了上下盖、键帽之外,拆开键盘之后,还会看到橡胶帽(但事实上现在都是用硅胶制成)、三片薄膜、电路板,以及电路板上的IC。再检视薄膜的话,还可以看到导电的印刷涂料。薄膜式键盘的原理相当简单,三片薄膜中,最上方为正极电路,最下方为负极电路,中间为不导电的塑料片。 
【图4】
  接着,在上方放按压模块(通常包括键帽、键帽下方活动模块,以及橡胶帽),当手指从键帽压下时,上方与下方薄膜就会接触通电,完成导通。 
  然而,我们更关注的是它的射频部分。也就是它采用了哪款芯片,完成对数据的传输。这样我们才能更方便地找对方向进行研究。 
【图5】
  上图为无线键盘的射频部分,用的是Nordic 公司设计的nRF24L01 芯片。黑色方块即为该芯片,周围是该芯片正常工作所需的外围器件,例如电容、电阻等器件。左边黄色蛇形的图案是PCB 天线。它是利用印制电路板上的导线作为天线的一种方式。这种天线的好处是相对于外置天线体积更小,而且更廉价,但缺点是距离较短,适用于对距离没有严格要求的地方。这款无线收发芯片是了解无线键鼠通信基本原理的关键部分,有助于我们对无线键盘的研究,下面将介绍该芯片的一些基本情况。 
  nRF24L01 是Nordic 公司设计的一个具备协议解析功能的单芯片无线收发器,适合低功耗的无线应用场景。nRF24L01 工作在全球开放ISM 频段(工业、科学和医用频段),频率范围内2.400GHz~2.4835GHz。因为nRF24L01 仅仅是一个无线收发器,没有集成单片机,所以在使用时需要配合单片机和少量的外围器件工作。我们可以通过SPI 接口对nRF24L01 进行操作和配置。通过SPI 接口可以读写nRF24L01 内部的寄存器,完成对其的配置和其他所有的操作。 
  该无线设备采用GFSK 调制方式。用户可以修改无线设备的信道、输出功率和数据速率。nRF24L01 支持三种速率250kbit/s、1Mbit/s 和2Mbit/s。目前应用广泛的是2Mbit/s 的数据传输速率。 
  下图所示为Nordic 公司官方给出的电路参考设计原理图。大多数公司都是据此进行开发的,除非一些公司对某些方面有特殊的需求才会对该原理图调整。许多厂家会据此进行二次开发,生产出该芯片的模块。 
【图6】
  下图为该芯片的成品模块 
【图7】
  该模块只引出了必要的电源及控制接口,其他外围电路都已经集成在模块上。这样的好处是使用更方便,不需要关心芯片的外围电路和天线部分。天线的设计是电路设计上的难点,细小的失误都可能对通信距离产生较大的影响。所以很多厂商都采用设计成熟的模块,而不是自己重新设计这一部分。 
【图8】
  上图为该模块的引脚顺序图,可以与单片机进行连接。相应的引脚功能如下。 
【图9】
  模块保留了用户需要用到的8 个接口。其中1 号和2 号引脚为电源接口,为该模块供电。3 号引脚为芯片使能接口,用于设置芯片是工作在接收模式还是发送模式。4 号至7 号引脚是用于SPI 通信的四条连线。CSN 用于片选芯片,也就是芯片的SPI 通信使能。SCK 是单片机为SPI 通信提供的通信时钟。MOSI 是单片机向模块发送数据的数据接口,MISO 是模块向单片机发送数据的数据接口。8 号引脚IRQ 在接收到数据时通过电平跳变来通知单片机模块已经收到了数据。这种方式的好处在于单片机在没有收到数据时可以完成其他任务,不需要一直查询该模块是否收到数据。当然,这个接口也可以不用,不过如上所述,需要一直查询是否收到了数据,这种方式是非常低效的。采用这种方式带来的另外一个缺点是一直使单片机处于工作状态,不利于休眠,会造成功耗大幅度提高。 
  通过上述物理接口就可以达到配置和操作nRF24L01 的目的。了解硬件是不够的,对通信的数据的学习仍然是一门必修课。

4.通信数据部分

  nRF24L01 支持数据包的自动装配,自动发送确认包和重发数据包。它支持1 至32 字节的负载长度。能把收到的包自动分解,得到需要的负载部分。nRF24L01 拥有6 个通信信道,最多支持1 对6 的星形网络。 
【图10】
  上图为nRF24L01 的数据包格式,其中包括了1 个字节的前导码、3 至5 字节的地址、9 个比特的包控制段、0 至32 字节的负载段及CRC 校验码。数据包内各个部分在整个通信中扮演着不同的角色,有着不同的作用,下面将对它们做详细介绍。 
  前导码用于让接收端的解调器和输入的比特流同步。这里的前导码的长度是一个字节,序列是01010101 或者10101010。至于具体是哪种前导码,与紧接在前导码后面地址的第一个比特有关。如果地址的第一个比特是1,则前导码被自动设置为10101010。如果地址的第一个比特是0,则前导码被自动设置为01010101。这些措施用于保证有足够的过度时间来稳定接收器。简单地说,前导码的存在主要是为了让后续的数据流接收更加稳定。 
  这里的地址是发射器发送给接收器的。地址用于该数据包被正确的接收器侦测和接收,而不是被其他设备错误地接收到。当我们在接收器中写入地址后,可以方便地过滤掉不是发送给自己的数据包,保证接收到的数据包至少地址是正确的。我们可以通过设置名为AW 的寄存器,调整地址的宽度到3 个、4 个或者5 个字节。 
【图11】
  上图为数据包中的包控制字段(Packet Control Field),它涉及对数据包的控制工作,主要包括负载长度字段(Payload Length)、包识别字段(PID)和自动应答的非确认标志(NO_ACK)。包控制字段包含6 比特的负载长度字段。当该器件作为接收端设定为动态负载长度时,该负载长度字段用于指示负载有多长,以便于快速读取负载。当设定为静态负载长度时,就用不到该字段了,因为每次的负载长度都是固定的。 
  两个比特的包识别字段用于检测接收到的包是新的还是重传的。包识别字段是为了防止同样的负载被多次送到单片机中重复处理。当发送端每次发送新的数据包的时候,包识别字段的值都会增长。在接收端的器件会根据包识别字段和循环校验码(CRC)决定该数据包是重传的还是新的。当多个数据包丢失后,这次的包识别码就可能和上次的一样,如果这样的话,nRF24L01 会比较两次的循环校验码。如果两次的循环校验码相同,最新接收的数据包就会被认为是上次接收数据包的备份而被丢弃。 
  可选的自动应答特性控制着非确认标志(NO_ACK)。当自动应答这个特性被利用时,这个标志才有效。设置这个标志为1,告诉接收器这个包是不需要被自动应答的。 
  负载(Payload)是用户定义的数据内容。它的长度可以是0 至32 字节。用户可以把需要传输的数据放在负载字段里传输。循环冗余校验码用于数据包的错误检测。在数据发送前,发射器会根据发送的数据产生循环冗余校验码。当接收器接收到数据时,也会根据接收到的数据产生循环冗余校验码。最后,接收器会计算接收到的数据校验码,并和直接接收到的校验码进行比对,如果相同则认为数据在传输过程中没有出错,如果不相同就认为出错了,需要采取重传或者其他措施。该字段可以被设定为1 个或者2 个字节,并且从地址开始计算,也包括了包控制字段和负载。

5 如何防御

  有线键盘记录器在有些单位或者某些场景,作为按键日志记录设备是必须使用的。请不要随意取下,以免引起不必要的误会。 
  对于个人而言,有线键盘记录器这种攻击手段要防御说容易不容易,说难也不难。说容易是因为这种外接设备肉眼可见,说难是因为要用软件检测非常难,几个简单的防御方法如下。 
  首先,提高防范意识。使用台式机前检查一下,看看后面是不是被装了“小尾巴”。当然,每次都看太麻烦,可以选择将机箱放在肉眼可见的桌上,没事瞅一眼。使用笔记本电脑的话,随时看下就好。 
其次,不熟悉的人送的键盘,不要随意接受!或者发现自己的键盘有被拆卸过的痕迹,也需要注意!也许,键盘里面,就藏着一块电路板,在你不经意时,窃取了你的账号和密码,继而以此为突破口窃取更多的机密。当然,还是自己去市面上买的键盘相对放心。 
  再就是,输入关键信息时,用软键盘输入比较好,前提是电脑本身的软件安全要做好,如果中了木马被录屏就没办法了。 
对于无线键盘监听的防御,很简单,不使用无线键鼠就行!特别是在办公室用台式机或者笔记本电脑时,完全没必要使用无线键盘,手机和iPad 用屏幕键盘就可以。如果必须要用无线键盘,可以考虑自己做一个转换的硬件,将USB 有线键盘转换成蓝牙或者无线键盘,至于方法,与无线键盘记录器是一个原理。 
  最后,安全没有绝对,但也不要被谣言所恐吓,保持良好心态,小心谨慎,定期更换强密码很重要。 
  特别是对于掌握公司或者机关单位重要账号密码的工作人员,请提高自我安全防范意识。

警告:非法窃取他人信息是违法行为,本节内容仅供学习参考!切勿犯错!

  我们将在明天的推送中向您介绍一个无线键鼠的监听与劫持的经典案例《MouseJack》:MouseJack能利用无线鼠标和键盘存在的一些问题,达到伪装成键盘并实现任意按键的效果。 
  本文选自《硬件安全攻防大揭秘》,点此链接可在博文视点官网查看。 

图片描述

 

  想及时获得更多精彩文章,可在微信中搜索“博文视点”或者扫描下方二维码并关注。
                         图片描述

分享到:
评论

相关推荐

    MouseSpirit V2.3无线键鼠对码软件

    【MouseSpirit V2.3无线键鼠对码软件】是一款专为无线键鼠套装设计的对码工具,它能够帮助用户解决无线键鼠在连接电脑时可能出现的配对问题。这款软件的操作简单易懂,特别适合对计算机硬件不熟悉的用户使用。 首先...

    罗技无线键鼠套装更换鼠标的配对方法_2.30.9安装程序.zip

    首先,你需要确保拥有罗技官方发布的“罗技无线键鼠套装更换鼠标的配对方法_2.30.9”软件,这个软件的主要功能是帮助新鼠标与键盘的接收器进行同步,实现无线连接。在压缩包中,你可以找到名为"罗技无线键鼠套装更换...

    无线鼠标与接收器配对

    ### 无线鼠标与接收器配对详解 #### 一、前言 随着科技的发展,无线鼠标因其便携性、灵活性而被广泛应用于各种场合。但使用无线鼠标时,经常会遇到一个问题——如何与接收器进行配对。本文将详细介绍无线鼠标与...

    无线鼠标对码

    无线鼠标对码是将无线鼠标与无线接收器进行匹配的过程,这一操作对于那些不慎丢失或损坏原有接收器的用户尤其重要。无线鼠标通常采用2.4GHz无线技术,通过无线电波与电脑通信,实现无阻碍的操作体验。在没有对码的...

    雷柏2.4G无线键鼠对码程序

    《雷柏2.4G无线键鼠对码程序详解及应用》 在现代电脑设备中,无线键鼠已经成为许多用户的首选,它们提供了无拘无束的使用体验。雷柏(Rapoo)作为知名的外设品牌,其2.4G无线键鼠产品凭借稳定性和可靠性深受用户...

    无线键鼠配对软件

    无线键鼠配对软件是现代计算机用户常用的工具之一,它主要功能是帮助用户将无线键盘和鼠标与计算机进行连接和同步。随着科技的发展,越来越多的人选择无线键鼠以获得更自由、无拘无束的使用体验。无线键鼠配对软件在...

    无线鼠标对码器

    无线鼠标对码器

    微软无线键盘监听设计分享-电路方案

    这套键鼠具有反应灵敏,手感细腻,价格适中等等优点,美中不足的是它使用2.4G进行通讯,协议已经被人攻破,可以使用很低的成本搭建一套监听的设备。本文就将介绍如何使用不到5元的 nRF24L01模块加一块ArduinoUno搭建...

    从键盘钩子木马到无线键鼠套装劫持.pdf

    【描述】:本文将探讨工控安全领域中的键盘与无线键鼠安全问题,包括键盘Hook木马和无线键鼠套装的劫持技术,同时涉及渗透测试、安全研究、数据安全和风险评估等多个方面。 【标签】:渗透测试、安全研究、数据安全...

    SunplusIT 无线鼠标对码

    描述中提到的操作步骤是进行无线鼠标与电脑对接码的过程,这是为了让鼠标与接收器建立正确的连接。"点击软件左上角‘SunplusIT’这单词"意味着用户需要启动特定的配置或驱动程序软件,这个软件可能由SunplusIT公司...

    雷柏无线键鼠对码软件8个版本

    这些版本的软件主要用于帮助用户进行雷柏无线键鼠设备的配对设置,确保设备能正确地与电脑连接并正常工作。 描述中提到的8个版本具体包括:V2.5、V2.7、V2.9、V3.0、V3.1、V3.2、V3.4和V4.0。每个版本可能包含了...

    通用无限鼠标对码

    newmen新贵2.4G无线键鼠对码软件与说明(适应于金色LOGO接收器) 极速系列 肯杨 展盟对码V35 (维盛对码HidDev)2.0.0.1 凌阳对码SPRF24XX 森松尼鼠标精灵软件_V2.3 双飞燕无线鼠标对码 亿美国际鼠标对码 RF_DRT_1.0....

    无线鼠标的设计与实现

    根据给定文件中的标题“无线鼠标的设计与实现”及其描述、标签和部分内容,本文将详细介绍无线鼠标的设计原理、实现过程及关键组件。 ### 无线鼠标的设计与实现 #### 摘要 本文介绍了一种无线鼠标的实现方法,...

    无线键鼠对码软件.rar

    用于usb接收器与无线键鼠设备之间的配对,使用很简单,有PPT说明书。将接收器插入计算机USB接口,系统会自动检测到设备并安装驱动。关闭鼠标电源开关或取出电池。关闭键盘电源开关或取出电池。鼠标尽量靠近接收器,...

    telink 2.4G无线鼠标参考代码

    标题 "telink 2.4G无线鼠标参考代码" 提供了一个关键的线索,即我们正在探讨基于Telink芯片的2.4GHz无线鼠标的技术实现。这种无线鼠标使用了2.4GHz频段进行通信,这是一个广泛用于无线设备如键盘、鼠标、蓝牙设备等...

    鼠标精灵2.4G无线鼠标对码器

    2.4G通用无线鼠标对码器 鼠标精灵,很好用的 ,欢迎下载

    电信设备-一种无线键鼠通信方法及装置.zip

    3. **同步机制**:无线键鼠通信需要与主机保持同步,这可能涉及到同步帧和时钟恢复算法,以确保接收端正确解读信号。 4. **功率管理**:考虑到电池寿命,无线键鼠通常会有智能功率管理功能,比如低功耗模式、睡眠...

    雷伯无线鼠标对码程序

    总的来说,雷伯无线鼠标对码程序是确保无线鼠标正常工作的关键工具,通过正确的操作步骤,用户可以轻松完成鼠标与接收器的配对,享受无线带来的便利。了解这一过程,不仅有助于解决可能出现的问题,还能提升用户的...

    SUNplusIT无线鼠标通用对码程序

    如果你想要把手中无用的无线鼠标起死回生,这款软件可是不二之选,SUNplusIT是一款通用的对码程序软件,可适用于无线键盘及鼠标的重新设定,对多种品牌及型号的无线鼠标均有效。软件PWS:SUNplusIT,有大小写之分,...

Global site tag (gtag.js) - Google Analytics