Password-Stealing without Hacking: Wi-Fi Enabled Practical Keystroke Eavesdropping


Password-Stealing without Hacking: Wi-Fi Enabled Practical Keystroke Eavesdropping
CCS 2023

在这里插入图片描述

笔记

本文提出了一种称为 WiKI-Eve 的方法,该方法允许在智能手机上窃听击键而无需黑客攻击。该方法利用了最新 Wi-Fi 硬件提供的称为 BFI(波束成形反馈信息)的新功能。BFI 以明文形式从智能手机传输到接入点 (AP),并且可以在监控模式下被任何其他 Wi-Fi 设备偷听。WiKI-Eve 使用对抗性学习方案,使其推理能够推广到看不见的场景中。该文档介绍了WiKI-Eve的实现并评估了其性能,表明它在推断单个击键和窃取移动应用程序密码方面实现了高精度。该文档的主要贡献是提出WiKI-Eve作为免黑客击键窃听系统,对抗性学习的创新以消除环境依赖性,稀疏恢复算法的设计以解决数据缺陷,以及证明WiKI-Eve性能的广泛评估。

大意:

  • WiKI-Eve 是一种在不被黑客入侵的情况下窃听智能手机击键的方法。
  • 它利用了最新 Wi-Fi 硬件提供的 BFI 功能。
  • WiKI-Eve 使用对抗性学习方案来实现可泛化推理。
  • WiKI-Eve 的实现在推断单个击键和窃取密码方面实现了高精度。
  • 主要贡献包括WiKI-Eve的提出、对抗学习的创新、稀疏恢复算法的设计以及广泛的评估。

后续的研究方向

  1. 探索先进的机器学习技术:研究人员可以研究使用先进的机器学习算法,如深度学习模型或集成方法,以提高击键推理系统的准确性和鲁棒性。这些技术可能会在数据中捕获更复杂的模式和特征,从而获得更好的性能。

  2. 研究多模态方法:研究人员可以探索多种模态的集成,例如加速度计数据或音频信号,而不是仅仅依赖基于触摸的数据,以提高击键推理的准确性和可靠性。这种多模态方法可以为更准确的预测提供额外的信息和背景。

  3. 制定对策:研究人员可以专注于制定有效的对策,以降低击键推理攻击的风险。这可能涉及设计安全的输入机制或开发可以检测和防止未经授权访问敏感信息的算法。

  4. 评估真实场景:在真实场景中进行实验和评估,以评估击键推理系统的性能和实用性,将很有价值。这可能涉及在不同设备、不同环境和不同用户群中测试系统,以了解其局限性和潜在漏洞。

  5. 增强用户隐私:研究人员可以探索在击键推理的背景下增强用户隐私的技术。这可能涉及开发加密方法或隐私保护算法,以在推理过程中保护敏感的用户信息。

  6. 研究新的攻击媒介:研究人员可以探索新的攻击媒介和可以利用击键推理的场景。通过识别和了解这些潜在的漏洞,可以制定对策和缓解策略来保护用户的隐私和安全。

  7. 进行用户研究:可以进行用户研究以深入了解用户行为和有关击键推理的偏好。这有助于设计更人性化、更安全的系统,以满足用户的期望和要求。

  8. 与行业合作:与行业合作伙伴合作有助于了解现实世界的挑战和要求,以及开发可部署在商业产品和服务中的实用解决方案。

  9. 解决法律和伦理问题:研究人员还应考虑击键推理的法律和伦理影响。这包括确保遵守隐私法规和准则,以及解决与用户同意和数据使用相关的潜在道德问题。

  10. 探索新的应用:击键推理技术可能具有安全性以外的应用,例如人机交互、可访问性或医疗保健。研究人员可以探索这些新颖的应用,并研究如何利用击键推理来改善用户体验并启用新功能。

摘要

Wi-Fi的无接触传感特性已被用来实现隐私泄露,然而现有的依赖Wi-Fi CSI(信道状态信息)的攻击要求入侵Wi-Fi硬件以获得所需的CSI。由于硬件紧凑,这种黑客攻击已经被证明是非常困难的,因此它在跟上快速发展的Wi-Fi技术方面的可行性变得非常值得怀疑。为此,我们建议WiKI Eve在不需要黑客攻击的情况下窃听智能手机上的按键。WiKI Eve利用了最新Wi-Fi硬件提供的一项新功能BFI(波束成形反馈信息):由于BFI是以明文形式从智能手机传输到AP的,因此任何其他切换到监控模式的Wi-Fi设备都可以窃听(因此窃听)它。由于现有的击键推理方法提供的可推广性非常有限,WiKI Eve进一步创新了对抗性学习方案,使其推理可推广到看不见的场景。我们实施WiKI Eve并对其进行广泛评估;结果表明WiKI Eve对单个击键的推理准确率为88.9%,对窃取移动应用程序(如微信)的密码的前10名准确率高达65.8%。

引言

在现代社会中,移动设备(如智能手机和平板电脑)及其软件应用程序越来越多地被用于识别人类用户[5,17]。因此,从这些设备窃取密码几乎就像身份盗窃一样,因此吸引了各种各样的窃听攻击,无论是直接的[42,70]还是间接的[2,36,37,43,53,69,73]。由于不需要在目标屏幕上显示,间接攻击通常会产生更高的风险,因为它们利用侧通道以隐蔽的方式推断密码。先前工作考虑的典型侧通道包括声学[36,73]、电磁发射[31]、间接视觉[11,53,57,69]和运动传感器[9,37,43]。尽管他们已经证明了在特定场景中的成功,但这些成功往往依赖于强有力的假设[34],包括i)窃听设备靠近受害者设备(例如,厘米级或视线范围内)[11,31,36,37,43,53],ii)流氓软件已被植入受害者设备[9,37,73],以及iii)窃听内容具有语言结构[2,37,43,69]。

在所有侧信道中,Wi-Fi CSI(信道状态信息)脱颖而出,因为它似乎没有上述所有弱点[34,67]。从本质上讲,由于击键会影响无线信道,如图1所示,“扭曲”的CSI可以用来推断键入密码所涉及的各个密钥。
在这里插入图片描述

这种类型的攻击的实际意义还得到了Wi-Fi基础设施的广泛采用和Wi-Fi信号(即CSI)的广泛覆盖的支持。尽管如此,这种看似合理的攻击实际上一个致命的问题是:尽管CSI是十多年前从Wi-Fi硬件中被黑客入侵的[25]【这里我们指的不是高级软件黑客,而是Wi-Fi硬件上的低级黑客,包括固件补丁[52]和驱动程序修改[30]。】,但到目前为止,只有少数此类硬件被黑客入侵,而Wi-Fi标准/技术每两三年都在不断升级。【事实上,大多数由Wi-Fi CSI驱动的研究提案仍在利用已有15年历史的Wi-Fi 4硬件[15]。】因此,基于CSI的侧信道攻击是否能跟上技术发展,因此,我们的密码看起来是安全的。

不幸的是,Wi-Fi的技术发展也引入了新的漏洞,因为新的Wi-Fi硬件(从WiFi 5[21]开始)将BFI(波束成形反馈信息)(模拟CSI的压缩数字版本)以明文形式搭载到控制帧上。基本上,BFI用于将下行链路信道状态反馈给接入点(AP),以指导AP波束成形[1]。尽管它们只占与AP侧有关的下行链路CSI的一部分,但屏幕上的键入直接影响屏幕后面的Wi-Fi天线(因此影响信道)这一事实(见图1)允许BFI包含足够的击键信息。因此,任何能够窃听Wi-Fi流量的设备(在监控模式[8]下)都可以免费获得BFI。如图1所示,我们的提案旨在利用这一新漏洞,在不需要对不断发展的Wi-Fi硬件进行黑客攻击的情况下实现击键窃听。

然而,在实现这一想法方面,我们仍然面临两个挑战。一方面,密码缺乏自然语言中的语言结构(如单词结构和字母的出现频率)作为先验信息和特征;这迫使现有的密码推理方法要么依赖于独立的击键特征[34],要么利用两次击键之间的转换特征[67]。尽管如此,由于这些特征具有很强的环境依赖性,因此所产生的推理方法很难推广到看不见的场景。尽管监督学习技术可以通过包含足够训练数据的数据集来解决这个问题,但由于智能手机模型和人类打字习惯的多样性,收集这样一个标记的数据集可能非常困难。另一方面,控制流量携带的BFI可能是稀疏和零星的。这个相对较小的问题,如果未被适当地解决的问题可能加剧训练密码推理模型的数据不足挑战。

为了应对这些挑战,我们建议WiKI Eve通过窃听击键引起的BFI变化来窃取数字密码。由于BFI的明文特性,Wi-Fi硬件不需要低级别的黑客攻击。鉴于密码中缺乏语言结构,我们遵循规范的方式来识别单个击键,但我们利用一个以自然分割为输入的深度学习模型来消除基于规则的分割和环境干扰带来的伪影。我们利用对抗性学习[22]来提取仅与单个击键相关的特征;这种跨域训练能够将击键推理推广到具有有限训练数据量的看不见的场景,使WiKI Eve在不必收集太大数据集的情况下实现实际推理。此外,我们设计了一种稀疏恢复算法来解决训练击键推理模型的数据不足问题。最后,我们使用笔记本电脑或根智能手机实现了WiKI Eve的原型,并对其进行了广泛的实验,以评估WiKI Eve的性能。总之,我们的主要贡献是:

我们提出WiKI Eve作为第一个基于WiFi的无黑客击键窃听系统;利用明文BFI,它允许各种Wi-Fi设备轻松窃听机密密码。

我们在利用对抗性学习来消除环境依赖性方面进行了创新,使WiKI Eve的推理模型可推广到看不见的场景。

我们设计了一种稀疏恢复算法来解决BFI的稀疏性问题,处理了训练击键推理模型的数据不足问题。

我们进行广泛的评估;结果表明,WiKI Eve在识别单个数字密钥方面的准确率为88.9%,在推断6位数字密码方面的前100准确率为85.0%。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Work-Stealing Queue是一种用于并发编程的数据结构,它允许多个线程在共享队列上执行工作项,其中每个线程维护自己的任务队列,并且当自己的队列为空时,可以从其他线程的队列中“偷”一些工作项来执行。该数据结构适用于任务量不确定、任务执行时间较长的情况。 下面是一个使用Work-Stealing Queue实现顺序执行的简单代码示例: ```c++ #include <iostream> #include <thread> #include <vector> #include "taskflow/taskflow.hpp" void func1() { std::cout << "Function 1" << std::endl; } void func2() { std::cout << "Function 2" << std::endl; } void func3() { std::cout << "Function 3" << std::endl; } int main() { tf::Executor executor; tf::Taskflow taskflow; // 将三个函数作为任务添加到taskflow中 auto task1 = taskflow.emplace([]() { func1(); }); auto task2 = taskflow.emplace([]() { func2(); }); auto task3 = taskflow.emplace([]() { func3(); }); // 任务之间的依赖关系,保证顺序执行 task1.precede(task2); task2.precede(task3); // 将taskflow提交给executor执行 executor.run(taskflow).wait(); return 0; } ``` 在上面的示例中,我们使用`Taskflow`库来创建一个`taskflow`对象,并将三个函数作为任务添加到其中。然后,我们使用`precede`方法来定义任务之间的依赖关系,以确保它们按照正确的顺序执行。最后,我们将`taskflow`提交给`executor`执行,并等待任务完成。 这样,我们就可以实现一个函数一个函数顺序执行的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

粥粥粥少女的拧发条鸟

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值