小心被你敲键盘的声音出卖

 介绍

本文会讲解一些关于keytap工具的技术细节。我也会分享一些自己关于这个项目的几点想法。这个项目已经开源,源码在这里可以下载。

描述

该工具的主要目标是利用敲击键盘时产生的声音作为一种边信道攻击来猜测输入文本的内容。为了达到这个目标,该算法以训练集作为输入,这个训练集包括音频记录和记录期间你敲了哪些键盘按键。通过这些数据,该算法可以学习到不同按键敲击的声音,之后就可以通过捕获的音频来尝试识别敲键盘的声音。训练数据集的收集非常具体,采集收据的根据也就是键盘、麦克风还有两者之间的相对位置。任何因素发生了变化,这个方法就变得毫无意义了。不过好在,当前的方法可以进行实时预测。

这个方法涉及到的主要步骤如下:

  • 收集训练数据
  • 创建预测模型,不断学习
  • 检测到键盘输入
  • 预测具体的每一个输入键

收集训练数据

这个收集训练数据的方法已经忽略了两次键盘敲击之间的声音。我们只保留实际按键前和按键后75-100ms的音频。这样做可能会有点不太精确,因为键盘敲击的延迟时间是随机的,程序捕获这种事件,也会受到硬件和软件因素的影响。

举个例子,下图是敲击我键盘上的字母“g”的完整声波:

从图中可以看到,在按键峰值之后,还有一个释放按键的峰值。而keytap直接忽略了这个释放峰值。这个可能会提取到额外的信息,不过为了简单起见,释放峰值的这个数据就直接放弃不用了。所以,最终字母“g”这个按键的训练数据声波图如下:

当然,这个75ms的间隙对打字速度有一定的限制,如果在这个时间段内,按键有重叠的话,不同按键的训练数据就会混杂在一起。

从上图中还可以观察到一点就是某个按键的训练声波图越多越好,结合多个声波图,可以帮助减少环境噪音。而且,每个人按键的声音可能稍有不同,这就取决于用户按键的方式了。所以,你可能会捕获到某个按键的不同的声音。

创建预测模型

这时候就体现出人们的非凡创造性了,可以通过机器学习,人工智能和神经网络等技术来创建预测模型。不过keytap使用了最简单的一种办法。对于每一个训练按键,我们执行以下3个步骤:

1.对齐收集到的波形峰值。这有助于避免检测按键之前的随机延迟时间,前面解释过了。

2.基于相似性度量来优化声波的对齐方式,因为有时候,声波的峰值并不是最佳指标,所以我们要选择一个更加精确的方法。

3.对其波形进行简单加权平均。权重由相似性度量定义。

我们并没有直接跳到步骤2,而是要先执行第一步,因为相似性度量的计算是很吃CPU的。而步骤1已经有效的缩小了对齐的范围并减少了计算量。

步骤3之后,我们最终会得到每个按键的平均波形。之后会将其与捕获到的数据进行对比并预测最有可能的输入按键。

keytap中使用的相似性度量是交叉相关(CC),公式如下:

这里的Ai和Bi是被比较的两种波形的波形样本。CC值越高,波形越相似。当然也可以使用其他的相似性度量的测试方法。

不同按键之间间隔的计时信息其实也可以加入到预测模型中,不过我避免了使用这种方法,因为它更加难以实现。

检测键盘输入

keytap使用相对简单的阈值技术来检测原始音频中的按键事件。显然,当用户敲击按键时,我们预计会有一个很高的峰值,这也正是我们想要的效果。阈值相对于过去几百毫秒的样本平均强度而言是自适应的。

这个方法并不是十分完美,但我现在还不知道更有效的方法来检测按键事件。

预测敲了哪些按键

一旦确定了可能的按键事件,我们就可以定位到波形的峰值位置,计算该部分波形与训练数据中所有平均波形的相似性度量。我们允许在峰值附近有小范围的调整(前面提到过)。我们认为相似性度量最高的将对应的是敲击的按键。

几点观察

我注意到即时这个算法没有检测到敲击的正确按键,它仍然能够预测到附近的按键,意思也就是定位到了正确键的下一个键。对于这个现象,我认为有下面两种解释:

1.键盘上相邻的按键发出的声音类似

2.在这个方法中,键相对于麦克风的位置对预测起着决定性的作用

我认为第一种解释不太可能,所以很可能是第二种解释。

另外,我还观察到机械键盘比非机械键盘更容易遭受这种键盘窃听攻击。

keytap2

我很笃定肯定有一种实现预测的方法是根本不需要收集训练数据的。假如用户使用某种已知语言来输入文本,比如英语,那么关于该语言的N元模型统计信息和按键检测的相似性度量值结合起来就足够检测出输入的文本了。实际上,归根到底这其实就是破解置换密码的一种攻击。

keytap2尝试着去证明这种攻击。我也在做这方面的研究,但是我卡在了基于他们的CC公式对按键进行聚类分析的部分。但我认为至少我已经准备好了置换密码破解工作。如果在实际中破解成功的话,我将会提供更多的细节。

结束语

科学文献上,关于这个主题的论文有很多。其中有一篇论文中的一个特别的方法给了我很大的启发,就是Don’t Skype&Type!大家有兴趣的可以看看。但大多数情况下,我都是自己独立解决了问题,没有阅读别人论文中的细节和他们的研究成果,我觉得自己解决问题更有意思,更有挑战性。

老实说,真没想到这篇文章会受到巨大的关注,完全在意料之外。这一切始于我在一篇Hacker News中发布的一条评论,然后被一个著名的开发工程师注意到了。然后,我的Twitter消息就炸了。

不管怎样,希望这篇文章对大家有所帮助,谢谢!

 

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/125362.html<

(0)
运维的头像运维
上一篇2025-02-23 17:23
下一篇 2025-02-23 17:24

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注