-
-
[翻译]针对ATM机键盘的密码推理攻击
-
发表于: 2022-3-14 22:37 18212
-
自动柜员机 (ATM) 是最常用的取款系统。尽管 ATM 经历了各种技术发展,但密码 (PIN,即个人识别码) 仍然是 ATM 最常见的身份验证方法设备。不幸的是,此密码机制很容易受到安装在 ATM 附近的隐藏摄像头的肩窥攻击(Shoulder Surfing)。为了克服这个问题,人们习惯于用另一只手遮挡住按键盘的手。虽然用户可能认为这种行为足够安全,但没有研究评估过这种对策。
本文提出了一种攻击,在用户用手遮挡密码输入的情况下,重新生成受害者输入的密码,即攻击者使用深度学习模型推理受害者在输入密码时按下的数字。本文攻击的成功是因为精心挑选的深度学习架构,该架构可以从输入密码的手的位置和动作中推理出密码。通过对 58 个用户进行了详细的实验分析,使用本文方法,可以在 3 次尝试中猜出 30% 的 5 位数密码-即在银行卡被锁定之前。此外,还对 78 位用户进行了调查,在相同设置下平均准确率仅为 7.92%。最后评估了一种人工遮挡对策,该措施被证明是相当低效的,除非整个键盘都被遮挡。
0x01 Introduction
各种网络物理系统 (CPS) 的广泛部署对日常生活产生了重大影响。不幸的是,CPS 的使用增加也给用户带来了更多的威胁。考虑到使用机器学习方法的新攻击向量,这一点尤其明显。欧洲中央银行的报告称,2019 年欧洲 ATM 上的现金提取和装卸交易超过 110 亿次。因此,这种威胁成为一个全球性问题,设计安全性和系统稳健性的需求也在增加。ATM机和PoS机设备中的常见安全机制取决于密码提供的安全性,虽然 ATM 和 PoS 设备被广泛使用,但许多人并未考虑超出通常提到的安全风险和防御措施:
i)在打字时隐藏密码,并且确保没有人观看屏幕(肩窥攻击)。在金融服务方面,ISO 9564-1规定了密码和密码输入设备(例如 PIN 键盘)的基本安全原则。例如,为了减轻肩窥攻击,标准规定密码数字不得显示在屏幕上。
ii) 每个按键发出的反馈声音的持续时间和类型必须相同。因此,作为安全性和可用性之间的折衷,密码输入系统屏幕显示一个固定符号(例如,一个●或✳)来代表一个被按下的数字,并为所有按键提供相同的音频反馈(即,相同的音调、相同的持续时间)。
因此,标准强制执行的安全机制与用户采取的常见预防措施相结合,应提供足够的保护。不幸的是,随着时间的推移,攻击者也会改进他们的方法并考虑更复杂的攻击。
ATM 和 PoS 设备的安全性备受关注,因为使现实中存在数百万这样的设备。考虑到成本和公众认知,攻击者即使成功攻击其中一小部分设备也可能造成重大损害。随着攻击技术的重大发展,这个问题尤其明显。同时,攻击 ATM 或 PoS 设备并不容易,尤其是考虑到现实设置时。大多数最先进的攻击都可以通过用户用手遮挡输入的密码来抵御。最近通过热像仪的攻果也很难成功,具体取决于键盘类型和用户操作设备的时间。攻击者还可以使用定时或声学攻击来推理有关输入数字的信息,但它们不如最先进的攻击有效,因为需要额外的信息-例如热量残留,因此很难应用实际上是这样的攻击。
这项工作提出了一种攻击方法,旨在用户用一只手遮挡住输入密码的手的情况下,重新生成受害者输入的密码。更准确地说,利用深度学习来开发一种攻击,根据用户手的位置和按键时的动作来预测输入的密码。即使在用户完全遮挡输入密码的手的情况下,攻击也能提供很高的准确率。更重要的是,此攻击比以前需要同时考虑多个信息源(时序、声音和热特征)的工作达到更高的准确度值。
本文的攻击考虑了一种分析设置,其中攻击者可以访问与受害者使用的相同(或至少相似)的密码按键面板。 然后构建了一个配置模型,可以预测在目标设备上输入的数字。即使在密码被遮挡的情况下,该机制仍然有效。 攻击表明 ATM 和 PoS 安全机制是不够的,必须提供新的防御措施来抵御攻击者。研究人员在 https://spritz.math.unipd.it/projects/HandMeYourPIN 上公开了代码和数据集。
0x02 Threat Model
当受害者与通用 ATM 键盘交互并键入密码时,就会执行攻击。ATM配备了一个按键面板,当按下某个键时会发出反馈声音。按键面板的所有按键的反馈声音都是相同的。 ATM还配备了一个监视器,当用户输入密码以掩盖输入的数字时,会出现模糊符号。不假设 ATM 或其 PIN 键盘在攻击期间已被破坏,考虑使用不同的信息源来检索密码,因此本研究的方法可以被认为是银行卡窃取攻击的替代方法。通常,银行卡窃取攻击依赖于直接记录输入数字的假 PIN 键盘,而本文方法是从视频中推理密码。
A. 攻击者
攻击者是一个恶意用户,旨在窃取受害者的密码。攻击者可以在 ATM 附近放置一个隐藏的摄像头来记录按键面板。对攻击者使用的相机类型不做任何假设,只是它记录在可见光谱中。假设摄像头可以很容易地隐藏在 ATM 附近,同时保持对 PIN 键盘的直接查看(即,如果攻击者可以访问 ATM,则为针孔摄像头 https://www.sperrywest.com/cameras/ )或任何放置在 ATM 机箱外的标准摄像机)。本研究不假设相机的任何特定位置,但会讨论各种相机放置的优势。主要考虑攻击者仅使用一个摄像头的场景,但也讨论了使用多个摄像头时的攻击性能。攻击可能与不同的银行卡窃取方法一起发生:
i) 芯片或磁条上的卡片略读(目前,这两种支持支付的技术协同工作);
ii) 利用对非接触式卡进行中继攻击;
iii) 物理窃取受害者的卡。
对于一个侧信道攻击分析,其中侧信道信息来自输入密码时受害者手部的视频。更准确地说,侧信道信息是受害者手的位置和手的运动(移动手/手指以到达不同的键盘,或在按下某个键盘时由于肌肉而可观察到的运动)。攻击者可以记录在 ATM 设备副本上输入的多个密码,并训练一个分析模型来预测按下了什么键。当受害者在键盘上键入单个键时,攻击者可以检索时间戳,并且可以通过收听视频录制的音频来实现。攻击者可以利用两种不同类型的声音线索:第一种是按键按下时键盘发出的反馈声音,第二种是按下键盘的物理按钮的声音.外部噪声并不能阻止攻击者提取按键,因为摄像头离键盘足够近。因此,仍然可以在音轨中识别声音。如果出于任何原因,攻击者无法从录制的音频中检索时间戳(或者如果根本没有音频),则可以放置摄像头来记录 ATM 的键盘和屏幕。这允许攻击者通过查看屏幕上出现的密码屏蔽符来提取按键的时间。常见的屏蔽符号通常是黑点和星号。攻击者可以使用任何方法来构建分析模型来预测按下了哪些键。将前三次预测视为成功的衡量标准,因为大多数 ATM 将允许在阻止卡之前输入密码三次。最后,不假设密码具有任何可用于进一步提高攻击性能的特定结构(模式)。
B. 受害者
假设受害者对攻击采取了基本的对策,例如在输入密码时遮住输入的密码。当受害者输入密码时,攻击者不需要在场,因为攻击者可以远程或在不同时间自由访问摄像机录制的视频。
0x03 Attack Approach
A. 攻击阶段
可以将攻击分为三个阶段:阶段 A - 训练,阶段 B - 视频录制和阶段 C -密码推理。下图显示了攻击所需的步骤。
阶段A - 训练
攻击者选择一台ATM作为攻击目标。接下来,攻击者设置目标 ATM 的副本。这个复制品不必是原件的一比一副本,因为模型将 ATM 键盘周围的裁剪作为输入。因此,攻击者必须使用类似于目标 ATM 上的键盘。最好的情况是攻击者可以检索到相同的按键面板模型。或者,攻击者也可以使用略有不同的 PIN 键盘(例如,键盘间距可以变化几毫米)。请注意,ATM按键面板的布局必须遵循 ISO 9564 标准。攻击者使用 ATM 副本构建训练集,模拟受害者在输入密码时的行为(即遮挡输入密码的手)。攻击者必须在副本 PIN 键盘上输入密码序列,包括所有十位数字(即,所有数字都必须包含在训练集中)。在不失一般性的情况下,攻击者可以使用 USB PIN 键盘来记录按下的键和相应的时间戳。攻击者使用这些信息来分割视频并标记它们。利用日志,攻击者构建了一个训练集,其中包含每个按下的键的帧序列和相应的标签(数字)。最后,攻击者在收集的训练集上训练预测模型。
阶段B - 视频录制
攻击者在目标 ATM 附近隐藏一个摄像头来记录按键面板。有多个位置可以放置摄像头,根据这一点,攻击可能更容易成功,也可能更具挑战性。摄像头记录受害者在输入密码并用不打字的手挡住 PIN 键盘的过程中。攻击者从远程摄像头检索录制的视频。
阶段 C -密码推理
攻击者的目标是根据密码输入过程中录制的视频推理受害者的密码。首先,攻击者从录制的视频中检索时间戳。当受害者输入密码时,攻击者可以使用按键的反馈声音或屏幕上出现的屏蔽符号来执行此任务。利用时间戳,攻击者执行与阶段 A 相同的过程来生成攻击集。与训练集不同,攻击集包含每个受害者按键的帧序列,但没有有关相关标签的信息。攻击者在攻击集中检测与密码条目对应的帧,并将视频分成 N 个子序列,其中 N 表示组成密码的位数。对于每个子序列,攻击者应用在阶段 A 训练的模型。该模型提供每个类别(即十个可能的数字)与输入子序列相对应的概率。利用 N 个子序列预测,攻击者按照概率的降序构建密码的等级。特别是,PIN 的概率对应于其数字的预测概率的乘积。
B. 攻击设置
考虑三种现实的攻击场景:
1.已知按键面板场景:攻击者知道目标按键面板的模型,并获取它的副本以进行训练阶段。虽然这种情况可能看起来不切实际,但获取特定的键盘副本并不难。事实上,攻击者可以很容易地获得有关要攻击的 ATM 的信息,然后购买具有相同布局的键盘。自然,键盘的灵敏度可能存在某些差异(例如,由于使用情况,键盘可能会变得更难按下),但实验表明,这种差异不足以对深度学习模型造成问题.
2.未知按键面板场景:这是最具挑战性的场景。攻击者不知道或无法检索目标按键面板的型号。训练阶段在具有与目标相似特征(例如,形状、键之间的距离、键布局和键的灵敏度)的 PIN 键盘上执行。
3.混合场景:对于单密码场景,攻击者知道目标按键面板型号。在这种情况下,训练在两个 PIN 键盘上执行,目标副本和至少一个具有相似特征的 PIN 键盘。在以下情况考虑训练集中的多个键盘是有意义的:
1)攻击者不确定键盘模型,
2)攻击者假设键盘会因环境条件而表现不同,
3)攻击者旨在攻击多种类型的键盘( ATM)具有相同的机器学习模型,
4)出于某些原因,攻击者无法通过已知键盘获得足够的训练示例。还注意到在训练集中使用更多的键盘会使训练过程更加困难并减少过度拟合的机会(即,可以将不同的键盘视为一个带有噪声的键盘,具有正则化效果)。
C. 摄像机位置
由于威胁模型允许摄像头在任意位置,因此讨论了几个有代表性的场景。 ATM 顶部的位置更适合攻击者,因为摄像头的较低位置会导致在另一只手遮挡时无法看到按下按键的手。还考虑了机箱正面的设置,因为它们为攻击者提供了更好的可见性,并且让受害者更难以注意到摄像头。
然后,可以讨论相机提供良好效果的三个主要位置。摄像头可以放置在左上角、中间或右上角。如果摄像头位于右上角并且输入密码的人是右撇子,则更容易观察输入的数字。左角的相机和左撇子的人也是如此。但是,如果相机在中心位置,它不支持任何特定设置,使其成为最通用的设置,但它也使得进行攻击比左/右位置和左/右位置更具挑战性手的人。将专注于安装在机箱正面的摄像头的顶部中心位置。
0x04 Experimental Setting
A. 被测设备
在两个不同的真实世界 ATM 金属输入面板上进行了两次单独的数据收集活动:DAVO LIN Model D-8201 F型 (https://www.davochina.com/4x4-ip65-waterproof-industrial-metal-keypad-stainless-steel-keyboard-for-access-control-atm-terminal-vending-machine-p00103p1.html ,下图a)和 D-8203 B 型(https://www.davochina.com/4x4-ip65-stainless-steel-numeric-metal0keypad-with-waterproof-silicone-cover-p00126p1.html ,下图b),报告了两个按键面板之间的以下差异:
• D-8201 F 型号的尺寸为 100 mm x 100 mm,而 D-8203 B 型号的金属表面为 92 mm x 88 mm,表面为橡胶保护,
• D-8203 B 型中每个键之间的水平间距大 1 毫米,
• D-8203 B 型的按键比 D-8201 F 型的按键更难按且略高,
• 出于可用性原因,当按下某个键时,两个 PIN 键盘都会发出特定的反馈声音(所有键都相同)。 反馈声音的频率对于 D-8201 F 型为 2 900 Hz,对于 D-8203 B 型为 2 500 Hz。
对于数据收集,将 PIN 键盘嵌入到模拟的 ATM 中(参见上图)。根据真实世界的 ATM,选择了模拟 ATM 的大小。特别是,模拟的 ATM 的宽度为 60 厘米,高度为 64 厘米,深度为 40 厘米。在距框架底座 15 厘米的高度处,插入了一个架子来放置按键面板和显示器。按键面板离地面的高度为 110 厘米。使用三个固定在 ATM 机箱上的 Logitech HD C922 Pro 网络摄像头来执行视频录制。中央网络摄像头放置在按键面板上方 30 厘米处,而另外两个网络摄像头放置在距离按键面板 42 厘米的机箱的两个顶角上。相机的最大分辨率为 1080p,采集速率为 30 fps。以 720p 的分辨率和 30 fps 的采集速率录制了视频。
B. 数据收集
第一次数据收集涉及 40 名参与者(年龄 38.23±11.43,24 名男性和 16 名女性)。第二次数据收集涉及 18 名参与者(年龄 29.50±5.74,10 名男性和 8 名女性)。两个集合仅包括右撇子。所有参与者都通过签署知情同意书同意收集和使用数据。所有数据均已匿名化,在实验过程中参与者被要求站在测试 ATM 前并在输入密码时挡住右手,参与者可以随意打字。目标是模拟隐藏密码的 ATM 用户,防止可能的肩窥攻击。每个参与者键入 100 个随机生成的 5 位密码,分为 25 个密码的四个序列。已将其分为四个序列。密码在 ATM 屏幕上一次显示一个:在 PIN 键盘上输入密码后,用户必须按 Enter 按钮才能移动到下一个密码。总共记录了 5800 个随机的 5 位密码,从而产生了每个数字的平衡数据集。由于研究旨在从视频序列中重新生成密码,无论用户的打字行为和对密码或 PIN 键盘的熟悉程度如何,都随机化密码,而不是要求用户多次输入相同的密码。这种方法概括了攻击,可应用于助记密码和一次性密码 (OTP)。此外,在实验过程中通过 USB 接口收集了环境音频(利用网络摄像头麦克风)和 PIN 键盘的键盘记录。特别是对于输入的每个数字,都会收集按键按下和按键按下事件。将视频记录与关键事件的时间戳同步。收集这些信息是为了为所进行的实验建立基本事实。该数据集可在 https://spritz.math.unipd.it/projects/HandMeYourPIN 获得。
C. 视频预处理
数据采集阶段完成后,需要对视频进行预处理。对于每个视频帧,应用了以下步骤:
i) 将视频帧转换为灰度;
ii) 对输入进行归一化,使所有像素值都在 [0,1] 范围内;
iii) 通过将 PIN 键盘居中裁剪框架,剪掉背景中不相关的部分;
iv) 将图像大小调整为 250 x 250 像素。
在这些步骤之后,对每个密码视频应用分段以获得对应于单个按键的帧的子序列(例如,5 位密码的 5 个子序列)。从记录的 PIN 键盘反馈声音中提取按键的时间戳,特别是使用带通滤波器过滤音频信号,以反馈声音的特定频率为中心(即 D-8201 F 型为 2 900 Hz,D-8203 B 型为 2 500 Hz)。通过识别滤波信号的峰值,可以检测到目标密码(TK)的时间戳。这能够在每个 TK 邻域中提取一组帧。对于每个 TK,最大帧数(全邻域)由从 TK 前面的键到 TK 后面的键的所有帧组成。如果 TK 对应密码的第一个数字,只考虑 TK 和下一次按键之间的帧。类似地,如果 TK 对应于 PIN 的最后一位,则所考虑的帧仅是 TK 与其先前按键之间的帧。由于模型要求所有输入样本的长度相同,因此决定为每个样本保留 11 帧。该值对应于去除超过 3σ 的异常值后全邻域中的平均帧数。为了将 TK 保持在帧序列的中心,决定考虑目标按键之前的 5 帧和之后的 5 帧,每个样本总共 11 帧(包括目标帧)。存在三种临界情况:TK 是序列中的第一位,TK 是序列中的最后一位,全邻域少于 11 帧。对于这些情况,应用黑框填充将 TK 保持在序列的中心。特别是,如果 TK 是密码的第一位,则在序列的开头添加五个黑框,而如果 TK 是密码的最后一位,在序列的末尾添加五个黑框。最后,如果序列中没有 11 帧,同时填充头部和尾部(使 TK 位于中心)。
D. 机器学习设置
对于实验,使用了一台配备 CPU Intel(R) Xeon(R) E5-2670 2.60GHz、128GB RAM 和三个 Tesla K20m 的机器,其中每个 GPU 有 5Gb RAM。为了实现机器学习模型,使用了 Keras 2.3.0-tf (Tensorflow 2.2.0) 和 Python 3.8.6。
E. 预测模型
本文方法旨在预测在 PIN 键盘上按下了哪个键,仅利用用户用另一只手遮挡输入密码的的视频。由于处理图像序列,因此使用卷积神经网络 (CNN)和长短期记忆 (LSTM)实现了一个模型。 CNN 对序列的每一帧执行空间特征提取,而 LSTM 利用这些特征提取整个帧序列的时间模式。 LSTM 的输出通过多层感知器 (MLP) 和具有十个单元(因为有十位数字)的最终 Softmax 激活函数层。该模型在文献中被称为长期循环卷积网络(LRCN)。在 Keras中,这种架构可以在所有 CNN 层中使用 TimeDistributed 包装器来实现,这会导致将相同的卷积滤波器应用于输入序列的所有时间步(即帧)。
将数据集拆分为训练集、验证集和测试集。每个集合的大小取决于攻击场景。通过使用随机网格搜索探索了不同的超参数。基于初步评估,设置了特定超参数的范围(即限制了特定超参数的上限)以加快搜索速度。特别是,对于 CNN,测试了 [3x3, 6x6, 9x9] 内核大小。还在 [1, ..., 4] 范围内改变了卷积层的数量。在接下来的 dropout 层中,在 [0.01, 0.05, 0.1, 0.2] 范围内改变了 dropout 率。对于 LSTM 架构,在 [1, ..., 3] 范围内改变层数,在[32, 64, 128, 256] 范围内改变单元大小。还使用门控循环单元 (GRU) 而不是 LSTM 评估了网络的性能。最后,检查了 MLP 在 1 到 4 范围内的层数以及在 16、32、64、128 范围内的单元数。为 MLP 尝试了两种类型的架构:
i)所有层具有相同数量的单元,
ii)单元数量减少的层(漏斗架构),每个下一层都是前一层的一半。
在调整阶段之后,选择了一个由四个卷积层(Keras 中的 Conv2D)和 ReLU 激活函数组成的结构,每个卷积层后面跟着一个池化层(Keras 中的 Max-Pooling2D)。三个卷积层的过滤器大小为 3x3,一个(第二个)过滤器大小为 9x9。每个池化层的过滤器大小为 2x2。卷积层中的过滤器数量在每一层都翻倍,从第一层的 32 个过滤器开始,到第四层的 256 个过滤器。在最后一个池化层之后添加了一个 dropout 层(dropout rate 0.1)以防止过度拟合。然后将输出展平,保留时间维度,为后面的 LSTM 提供一系列时间特征。具有 128 个单元的单层 LSTM 使用双曲正切激活函数实现了最佳验证。最后,对于 MLP,使用了 4 个全连接层,每个层有 64 个单元,然后是具有 10 个单元的 Softmax 激活层(即想要预测的类的数量)。使用了分类交叉熵损失函数和随机梯度下降 (SGD) 优化器。最后,设置模型来评估准确度指标。将批量大小设置为 16,将学习率设置为 0.1。测试了 70 个 epoch,因为发现模型总是在这个数量的 epoch 内收敛。实验表明,进行的分类任务相对困难,需要使用复杂的深度学习架构才能获得良好的结果。最后观察到性能的显着变化取决于特定的超参数选择,这表明需要对各个任务进行详细调整。
在现实世界中,可能无法精确再现实验条件(例如,相机可能相对于按键面板略微旋转/倾斜,或者与按键面板的距离可能不同)。因此,还使用数据增强来生成综合测量(训练数据集的 20%),涵盖更多场景以解决此类问题。特别是,使用了以下基于视频的转换:
• 顺时针和逆时针旋转最多 7 度;
• 横向移动最多为宽度的 10%;
• 垂直移位最多为高度的 10%;
• 在 0.9 和 1.1 之间缩放。
通过随机组合上面列出的转换技术生成合成样本。数据增强也很有帮助,因为它使预测模型适用于不同类型的 ATM。
0x05 Experimental Results
在本节中评估三种攻击场景中的性能。采用了与用户无关的拆分策略,因为在现实环境中,攻击者没有标记的受害者输入密码的视频,这样可以保证来自参与者的视频在三组中只出现一次。此外,由于研究者对评估密码的重新生成准确性感兴趣,删除了所有参与者错误输入的非 5 位序列(即,在长于或短于 5 位的序列之后按下“输入”键)。删除的非 5 位数字序列占输入的密码总数的 2.2%。对 4 位和 5 位密码进行了实验。为了对 4 位密码进行实验,删除了数据集中每个 5 位序列的最后一位。
定义当输入的键及其周围没有直接视图时,PIN 被遮挡。观察到尽管在开始数据收集之前进行了指示,但一些参与者未能用空闲的手获得令人满意的遮挡水平。由于本研究旨在推理遮挡的密码,决定从验证和测试集中排除输入严重遮挡的密码的参与者的视频。这样,验证集和测试集由遮挡输入密码的视频组成,而训练由包含遮挡和严重遮挡密码的视频组成。请注意,仅通过观看视频仍然难以“阅读”遮挡严重的密码,因此认为此类数据可用于构建训练集。对于测试集,针对正确遮挡密码的最困难场景。在这些假设下,将 16 名严重遮挡按键面板的参与者“列入黑名单”:14 名用于第一次数据收集,2 名用于第二次数据收集。这些参与者已被排除在以下场景中描述的验证和测试集中。在下图提供了一个严重遮挡密码和一个遮挡密码的示例。
为了进一步了解遮挡质量和人工重新生成密码的难度,本文调查了遮挡密码视频的随机子样本。最后,还有一个问题是如何预测第一次尝试没有正确猜到的密码。由于独立考虑每个数字,因此考虑一种机制,其中最佳猜测包括单独最佳猜测(对于每个数字)。如果该密码不正确,将考虑两个最佳猜测具有最小差异的数字。将该数字更改为密码中的次优猜测,然后再试一次。如果第二个密码错误,则第三次尝试重复相同的过程。
1.已知按键面板场景:为了评估对手知道目标 PIN 键盘模型并拥有副本的场景,只考虑了由 40 个参与者组成的第一个数据集合。在训练、验证和测试集中应用了用户独立的数据集拆分,比例为 80/10/10%。
2.未知按键面板场景:在这种情况下,攻击者在一个布局与目标相似的 PIN 键盘上训练机器学习模型。当攻击者无法获得相同的按键面板模型来收集数据时,就会出现这种情况。在这些假设下,使用第一个收集的数据集(由 40 名参与者组成)来训练和验证。将 35 名参与者的视频包含在训练集中,其余 5 名参与者的视频包含在验证集中。使用第二个收集的数据集作为测试集。只包含了测试集中第二个数据收集的 18 名参与者中的 16 名的视频,因为其中两人在严重遮挡 PIN 键盘的组中。
3.混合场景:这种情况对应于攻击者如何同时拥有目标按键面板的副本和与目标按键面板相似的按键面板。在这种情况下,合并了两个收集的数据集,并在训练、验证和测试集中应用了用户独立的拆分,比例为 80/10/10%。
通过上图提供一个成功的密码攻击示例来开始讨论结果,考虑 5 位密码案例和单 PIN 键盘场景。为每个数字提供一个图像,给出前三位数字和相应的准确度值。请注意如何以高概率正确预测第一个和第二个数字。这发生在人们设置手以允许轻松开始打字时。对于第三位数,观察到最佳预测的准确度值显着下降。尽管如此,该值仍显着大于次优预测,因此在获得正确预测方面没有问题。这种趋势持续到第四位,并在最后一位(第五位)变得非常明显。事实上,最佳猜测不再正确,但次优的猜测是正确的(这两个猜测之间的概率差异等于 0.014)。
Top-N意味着猜测了N次尝试中的数字。对于所有三种情况,上图显示了单键精度的结果,而下图报告了考虑 5 位和 4 位密码的结果。考虑到单键准确度(所有数字的平均值),请注意,即使在最困难的 PIN 键盘独立场景中, Top-3 准确度也达到 63.8%,这明显高于随机猜测的结果(30 %)。同时,Single PIN pad 场景和 Mixed 场景的结果相当相似,Top-3 准确率高达 88.7%。有趣的是,观察到单 PIN 键盘场景的 Top-2 和 Top-3 准确度的结果要好于混合场景,这与 4 位和 5 位设置的结果相反。假设这是因为认为独立数字很自然,最好的结果发生在训练和测试在同一设备上完成时。另一方面,混合场景为密码重建场景提供了稍好的结果,因为需要考虑一系列密码与数字之间的移动。然后,在训练集中使用不同的设备可以(稍微)更好地泛化。
在上图a 中观察到最困难的情况是攻击者无法访问受害者使用的相同键盘,Top-3 案例的准确率等于 11.4%。使用相同类型的键盘可将 Top-3 的准确率提高到 20% 以上。最后,考虑到混合场景,可以将 Top-3 的准确率提高到近 30%(29.7%)。接下来,在上图b 中展示了 4 位密码的结果。结果明显优于 5 位数方案。 Top-1 独立场景设置的准确度最低,为 10.6%(参见 5 位数场景的 6.7%)。 混合场景中 Top-3 准确率最高达到 41.1%。
在上图中,描绘了数字 1 的详细结果。选择这个数字是因为其他数字的热力图看起来相似并且表现出相似的分散性。首先,上图a 中展示了 PIN 键盘布局。上图b 给出了单 PIN 键盘场景的结果。请注意,热力图表明猜测 1 是最有可能的猜测,概率为 67%。数字 4 和 3 分别被认为是次优和再次优的猜测。不过,它们的概率要低得多。对于与按键面板无关的情况,观察到概率更多地分布在所有数字上,这是以正确数字的预测概率较低为代价的。次优和再次优猜测保持了概率,表明 Top-3 猜测足以在最困难的场景中猜测大量密码。最后,上图d 给出了混合场景的结果,看到最好的猜测是在单 PIN 键盘场景的水平上。有趣的是,与之前的场景相比,现在次优和再次优猜测被交换了。所有其他数字作为正确数字的概率为 0 或可忽略不计。根据结果,下面是可以概括的观察结果:
• 用另一只手挡住按键面板不足以防御基于深度学习的攻击;
• 可移植性方面(键盘差异)非常重要,攻击者应该获得相同类型的键盘以提高攻击成功的概率;
• 用户遮挡输入密码的手的主要方式有三种:举起的手不接触表面、手放在手指上并垂直遮挡按键面板、手放在手掌的侧面。所有三种遮挡策略的示例如下图所示。
最后,下表提供了的攻击与其它研究中针对 4 位密码的几种隐蔽攻击之间的比较。根据攻击者掌握的信息对攻击进行了划分:击键时间(KT)、受害者密码的一位数(OD)以及受害者在按键面板上留下的热量追踪(TT)。从结果中可以清楚地看出,本研究的攻击在所有考虑的 TOP-N 精度上表现最好。
0x06 Countermeasures
不同的对策可能会使攻击更难成功。例如:
1.更长的密码:从 4 位和 5 位密码的比较中可以看出,这种对策将使攻击更加困难。从技术角度来看,这种对策相对容易支持。同时,由于较长的密码需要更多时间来键入并且更难记住,因此它会存在可用性缺陷。
2.虚拟和随机键盘:可以考虑使用数字随机化的触摸屏,而不是使用机械键盘。越来越多的 ATM(但不是 PoS)具有此功能,因此实施它不会太困难。不幸的是,这会严重损害可用性,因为人们习惯于自然序列中出现的数字,任何更改都可能导致错误输入密码。
3.防护罩:在许多 ATM 上,有各种类型的防护罩可以遮挡输入密码的手。为了保持可用性,许多防护罩都很短,不会挡住整只手。使防护罩变大会损害可用性,因为用户阅读键盘会变得更加困难。这种对策可能不容易部署,因为它需要对 ATM 进行物理更改。
接下来,分析密码遮挡如何影响攻击性能。通过应用黑色贴片遮挡 PIN 键盘来模拟防护罩的存在。在上表中报告了在混合场景中的攻击性能,应用了四种不同的遮挡级别(下图)。按键面板的遮挡率大于下图中所示的百分比,因为不打字的手给出的遮挡率不包括在给定的百分比中。结果表明,即使 75% 的 PIN 键盘被遮挡,本文的攻击仍然有效,而性能下降明显超出此遮挡范围。因此很明显,深度学习攻击使用了关于整个手部位置和运动的信息,而不仅仅是指尖。由于 PIN 键盘的最后一行只有一个数字 (0),因此 100% 遮挡率的攻击结果很差,这不仅是因为隐藏了键盘上的所有数字,而且因为隐藏了近端指间关节、掌掌关节和腕掌关节。手指。因此,只有提供完整按键面板遮挡的密码防护罩才能被认为是本研究攻击的有效对策。
0x07 Deep Learning vs Humans
如果攻击者可以直接看到 PIN 键盘,那么从视频中重新生成密码可以被认为是一项微不足道的任务。对所谓的肩窥攻击的经典对策之一是用未打字的手遮住输入密码的手。通过这种方式,受害者通过消除键盘的直接可见性来阻止攻击者。设计了一份问卷来评估手的遮挡在多大程度上有效地防止了密码重新生成。
A. 方法
问卷包含 30 个视频,视频中人们用不打字的手挡住 PIN 键盘输入 5 位数的密码,因为注意到,对于较长的问卷,参与者的注意力在最后会显着下降。对于每个视频,参与者必须指出他们认为最有可能的三个密码。
为了评估两个 PIN 键盘上的人类和模型性能,决定使用混合场景的测试集(即唯一包含两个 PIN 键盘的测试集)。由于测试集在每个用户的样本方面是平衡的,为测试集中的六个用户中的每个用户随机选择了五个密码。从数据集中提取了与所选密码对应的 30 个视频。保留了 720p 的原始分辨率和包含每个视频的 PIN 键盘发出的反馈声音的原始音轨。反馈声音有助于参与者识别何时输入数字。为避免答案出现偏差,随机排列了问卷中视频的顺序。此外,参与者可以自由修改所有答案,直到最终提交。在填写问卷期间,没有对参与者施加任何特殊限制。特别是,完成任务没有时间限制。参与者可以自由地应用他们喜欢的策略来推理密码(例如,写下数字、暂停视频、重新启动视频任意次数、使用慢动作选项)。最后,为用户提供了按键面板的布局。
为了评估对任务具有特定知识的人是否能取得更好的表现,预先训练了一组参与者。具体来说,为参与者提供了一组新的 20 个用户输入密码的视频,方法是用不打字的手和相应的输入密码挡住 PIN 键盘。为了使训练更有效,决定向参与者提供问卷中包含的用户视频(训练和问卷中都没有视频)。此外,问卷还对需要特别注意的事项提出了建议。要使参与者接受训练,需要完整观看所有 20 个视频。此外,受过训练的参与者还可以在填写问卷时观看训练视频。
B. 评价
共有 78 名不同的参与者参加了问卷实验。特别是,45 名参与者(14 名女性,年龄 34.1±10.4 岁,31 名男性,年龄 29.7±8.3 岁)在未经任何训练的情况下完成了实验,而 33 名参与者(10 名女性,年龄 29.1±3.3,23 名男性,年龄 29.3±5.6)在训练结束后完成了实验。
问卷的目标是双重的:
i)调查手部遮挡在防止密码被人类推理方面的有效性,
ii)将深度学习方法的性能与人类的性能进行比较。尽管 PIN 键盘的遮挡范围为立即识别键入的密码提供了障碍,但人类可以利用各种信息(本地和全局)来减少在哪里查找输入的密码的概率空间:
• 由于目标 PIN 键盘的给定布局,了解按键的空间定位;
• 通过手的动作了解哪个手指按下了键;
• 根据按键面板发出的反馈声音评估两个连续键之间的拓扑距离。具体来说,两个拓扑接近的键具有时间接近的声音反馈;
• 基于手遮挡来排除按键;
• 根据输入的键和下一个键之间的手位移来猜测手指位置;
• 推理被遮挡手的手指位置。
尽管人类可以利用这些信息,但 PIN 键盘遮挡仍然部分阻止了密码重新生成。尤其是,问卷中的参与者在第一次尝试时平均只能重新生成 4.49% 的密码(包括受过训练的人和未受过训练的人),而在三次尝试中输入的密码只有 7.92%。 Top-1 和 Top-3 精度之间的性能增加表明在估计按下的键的邻域方面具有一定的能力。
与人类不同,算法专注于目标密钥分类,然后重新生成整个密码序列。为了将模型的性能与人类在相同任务上的性能进行比较,评估了算法在问卷中包含的视频上的准确性。回想一下,问卷的视频是混合场景测试集的子样本,因此没有在模型训练阶段使用。如上图所示,模型在所有 Top-N 准确度场景中的表现都优于人类。为了评估算法性能和人类在重新生成 5 位密码方面的性能是否存在统计学差异,应用了一系列卡方检验。卡方检验结果对所有 Top-1 (X^2 = 14.19, p < 0.001)、Top-2 (X^2 = 15.84, p < 0.001) 和 Top-3 (X^2 = 21.37, p < 0.001) 均显着未经训练的人的准确度值。特别是,模型表现优于人类,在 3 次尝试中重新生成密码的性能提高了 4 倍。同样,对于受过训练的人类,卡方检验对所有 Top-1 (X^2 = 16.12, p < 0.001)、Top-2 (X^2 = 20.83, p < 0.001) 和 Top-3 (X^2 = 28.88, p < 0.001) 准确度值。
这个结果来自于单键分类的性能差异。单个关键分类的人类平均准确度(考虑到人类数据收集)等于 0.351,与模型关键准确度 0.687 相比约为一半。上图b和a的比较显示了人类识别数字的错误是如何明显更高的,这证明了为什么算法在 Top-2 和 Top-3 密码准确度上的提高更大。最后,比较受过训练和未受过训练的人类,卡方检验报告所有 Top-1、Top-2 和 Top-3 准确度值的 p > 0.1 没有显着差异。这意味着训练不会提高人类在 3 次尝试内识别密码的能力。
0x08 Conclusion
本文提出了一种对ATM密码机制的深度学习攻击,即使用户遮挡要输入的密码,也能达到高精度。本研究攻击利用来自手部位置的信息以及输入密码时的手部动作。在分析设置中,攻击者使用键盘副本来训练深度学习模型,然后在受害者输入密码时攻击不同的设备。对于 4 位数的密码,攻击达到了 40% 以上的准确率。
参考链接:https://www.usenix.org/conference/usenixsecurity22/presentation/cardaioli
赞赏
- [翻译]针对Model X无钥匙系统的远程攻击 23273
- [翻译]计时瞬态执行:针对英特尔处理器的新型侧信道攻击 11470
- [翻译]大疆无人机安全与DroneID漏洞 28317
- [翻译]基于充电桩的电动汽车勒索攻击 12545
- [翻译]基于DVFS的GPU电磁侧信道窃听攻击 23523