当用户在银行ATM机前取款时,用手遮住键盘就安全吗?
意大利和荷兰研究人员的一项实验已经证明,即使遮住了键盘,也可利用一种特殊的深度学习算法(AI),以41%的概率猜出4位数的银行卡PIN码。
该算法需要建立目标ATM键盘的复制品,因为不同的键盘区尺寸会有不同的密钥间距训练算法。接下来通过人们在 ATM 键盘上输入PIN码的视频,训练机器学习模型对键盘按压进行识别,并分配一组可供猜测的特定概率。
整个操作链,来源:Arxiv.org
在实验中,研究人员收集了来自58个名志愿者的5800段测试视频,他们分别输入了4位数和5位数的PIN码。经过3次尝试性输入(通常是卡被扣留前允许的尝试次数),研究人员分别以 30%和41%的概率还原了5位和4位PIN码的正确序列。
该模型可以根据遮挡键盘的那只手的覆盖范围来排除无关按键,并通过评估两个按键之间的拓扑距离,从另一只手的动作中推断出按下的数字。
拓扑:只考虑物体间的位置关系而不考虑它们的形状和大小
实验中,记录视频的摄像头位置对结果起着重要作用。在实际中,通过ATM顶部隐藏针孔摄像头被认为是最佳视角。如果摄像头也能够捕捉音频,模型还可以使用每个数字略有不同的按压声音反馈,从而使预测更加准确。
每个PIN数字的猜测和概率,来源:Arxiv.org
实验结果证明,用手覆盖密码键盘不足以防御基于深度学习的攻击,但也不是毫无防御对策:
- 越长的密码越安全,建议选择银行允许输入的最长位数PIN码;
- 尽可能多的遮挡键盘区域。根据实验,75%的覆盖为每次尝试提供0.55的准确度,而总覆100%的覆盖率将准确度降到了0.33;
- 使用虚拟或随机键盘,尽量避免使用标准化的机械键盘。虽然在操作上会不太顺手,但却是一种极为有效的防范措施。
虽然我国银行密码均为6位数,按照本文的AI技术,猜到密码的概率很小,但上述措施依然有助于我们守护密码安全,做到防患于未然。