无了个大语!以后AI靠听键盘声就能偷你密码,准确率高达95%你没听错,现在键盘敲字也不安全了,简直防不胜防。
最近,来自杜伦大学等三所高校的研究人员训练了个AI模型,让声学攻击变得无比简单,通过分析键盘声音,就能重构用户输入的密码和敏感信息。这要是被恶意泄露给第三方……
网友们听到后直呼可瑞贼,有人表示:
这就是为啥我输密码的时候会听重金属音乐,并且将音量调到最大。
危险!危险!危险!
事情还要从英国几所大学研究人员发的这篇题为“A Practical Deep Learning-Based Acoustic Side Channel Attack on Keyboards”的论文说起。
在这项研究中,研究人员用深度学习的方法提出了一个完全自动化的键盘声学侧信道攻击流程,包括按键分割、通过mel频谱图进行特征提取、使用CoAtNet模型进行分类几个大的部分。
具体来说,第一步按键分割,就是记录目标键盘上的按键。
在这项工作中,研究人员用到了手机(iPhone13 mini)和视频会议软件Zoom(模拟远程攻击场景)来收集声音,通过按压MacBookPro上的36个按键(0-9,a-z)来制造声音。
△手机距离目标17cm
每个按键被连续按下25次后,一个记录按压声音的文件就产生了。
接下来就是对录音进行快速傅里叶变换,然后在频率上对系数进行求和以获得“能量”(energy)。之后定义一个能量阈值,当能量超过这个阈值时,标记这里是一个按键音。
通过这个方法,可以从长音频中分割出独立的按键音段。
△按键分割过程,信号通过FFT转换为能量,当超过阈值时标记按键。
和手机录音不同,由于Zoom会使用降噪技术来压缩音量范围,所以不同按键的音量差异很小。这里研究人员提出了一种逐步调整阈值的方法来解决这个问题。
简而言之,就是先设置一个初始阈值,使用当前阈值分割音频,得到按键数量。如果分割得到的按键数量小于目标数量,则降低阈值;如果分割得到的按键数量大于目标数量,则增加阈值。通过逐步微调阈值,直到分割结果等于目标按键数量。
这里为了更精细调整,每次调整幅度会变小,直到准确分割出所有按键。
然后,就可以制作出波形图和频谱图,进行特征提取,可视化每个按键的可识别差异。
△左图为手机录音的波形图和相应的mel频谱图,右图为Zoom录音。
下面重头戏来了,这些频谱图图像会被用来训练一个图像分类器——CoAtNet。
研究人员将mel频谱图作为声音的视觉表示,以图像的形式输入到CoAtNet中。CoAtNet包含卷积层和自注意力层,可以高效学习特征并建模特征之间的全局关系。
并在CoAtNet的基础上添加了平均池化层和全连接层,以得到最终的按键分类结果。
此外,研究人员还使用了交叉熵损失函数和Adam优化器训练模型,训练过程中,每5个epoch测试一次验证集精度。通过调节学习率、epoch数量等超参数,解决了模型精度突降的问题。
最终,模型在手机录制的数据集上,分类准确率达到95%;在Zoom录制的数据集上,分类准确率达到93%。
△手机录制的MacBook按键分类器的混淆矩阵
手机和Zoom两种录音方式的结果仅差2%,也侧面说明了录音方式的改变不会对准确率产生显著影响。
此外,值得一提的是,研究人员还发现大多数误分类都是相邻按键,错误具有一定规律性。
AI让古老的东西「」
网友看到这项研究后,一部分人表示惊恐,还有一部分人表示这项研究十几年前就有了:
显然,古老的(非常非常古老的)东西再次变得新鲜起来了。
就比如说2005年华人一作的这项工作中,就已对键盘声学进行了探索。
那么,这里有什么差别?
研究人员表示,之前的方法大多针对的是台式机键盘,已经过时了,而这项研究中用的是MacBook键盘,很多型号通用,潜在危险更大。
还有现在的麦克风也不是当年的了,之前是外置话筒,而这项研究中用的是手机和Zoom录制按键声。
最主要的是方法不太一样,以前一种较为常见的方法是用隐马尔可夫模型(HMM),现在用的是CoAtNet模型。
HMM是在文本语料库上训练的模型,用于预测序列位置中最可能的单词或字符。例如,如果分类器输出“Hwllo”,则可以使用HMM来推断“w”实际上是错误分类的“e”。
相信对于广大网友来说,这些都不是重点,重要的是怎么防范啊!
怎么防键盘窃听?
应对AI窃密也不是木得法子。研究人员就说了,可以通过改变打字风格,从标准十指抠键盘变为自由打字,降低识别准确率。还有一些方法:
-使用随机复杂密码,包含不同大小写字母,增加攻击难度。
-在语音通话软件中添加随机假打字音频干扰信号,检测到按键声时添加干扰。
-使用双重认证,比如指纹等生物特征,避免通过键盘输入密码。
除此之外,此前有研究也提出过一些,但今时今日效果可能较差,比如使用触屏键盘、检查房间内是否有隐藏麦克风、关闭麦克风、不在视频通话时输入关键信息等。
网友也给出了一些奇招,比如说:
把敲密码改成复制/粘贴?