导语:对于黑客来说,如果他们不知道移动用户的PIN码,那么对他们来说手机跟一块砖头没有什么区别。
对于黑客来说,如果他们不知道移动用户的PIN码,那么对他们来说手机跟一块砖头没有什么区别。
所以长期以来,就不断有人尝试用各种办法来窃取智能手机用户的PIN码。由于这个研究比较耗费时间和精力,所以目前只有专业的研究人员对此有所研究,并且破解方法都是通过传感器生成的数据来做文章的。
利用传感器破解PIN码的研究之路
今年4月,英国纽卡斯尔大学的玛丽亚姆-梅纳扎德就创建了一个名为PINlogger.js的JavaScript应用程序,它可以通过访问手机传感器生成的数据,包括GPS、摄像头、麦克风、加速度计、磁力计、接近度、陀螺仪、计步器和NFC协议,进行猜测用户的PIN码。在对50种最常用的PIN码进行测试时,PINlogger.js能够在第一次就破解四位数的PIN码,并且成功率高达74%,这个成功率在第二次和第三次尝试中分别增加到了86%和94%。
如果你对这些测试感兴趣,可以看一下《通过移动传感器窃取PIN:实际风险与用户感知》的完整报告。
研究人员指出,大多数用户比较关心的是相机或GPS等显而易见的传感器,而不会将其它不太明显的传感器(比如加速度计、陀螺仪、磁力仪)视为威胁。
就像Siamak Shahandashti揭示利用传感器破解的奥秘:
用户的每一个动作,无论是点击、翻页还是长按、短按,都会造成一种独特的倾斜角度和运动轨迹,所以在一个已知的网页上,研究人员可以清楚知道用户在点击页面的哪一部分以及他们在输入的内容。
最新的研究进展
最近,南洋理工大学高级研究科学家Shivam Bhasin博士研究出了一种,可以通过传感器破解安卓智能手机PIN码的方法,且通过三次尝试后,准确率可达到99.5% ,比PINlogger.js的准确率高出了5%。
Shivam Bhasin选取了6款不同的安卓智能手机作为样本,然后在每部手机上都安装了一个特殊的应用程序,从6个不同传感器——加速计、陀螺仪、磁力计、接近传感器、气压计和环境光线传感器收集数据。在收集到传感器所收集的信息后、研究人员再利用深度学习算法来分析这些数据。
因为当输入PIN码时,按1,5或9时手机的移动方式是非常不同的,比如:用右手拇指按下1将比按下9时阻挡更多的光线。根据这些不同,研究人员就可以将传感器分析过来的数据与屏幕键盘上的特定数字进行匹配,猜测出PIN码。目前南洋理工大学研究人员所使用的深度学习技术已能猜测到1000种四位数的PIN码组合。
由此看来深度学习是破解PIN码的关键,因为在测试时,研究人员在安装了他们所研发的应用程序后,该程序并不能立即破解出PIN码,不过在收集了用户的手机数据并且经过一段时间的深度学习后,它就能根据每个传感器对所按下数字的敏感度不同,剔除不重要的传感器,从而提高破解率。
所以深度学习是把双刃剑,不但能帮助我们进行更好的防御,也能帮助攻击者更好的攻击。比如:对收集到数据进行恶意训练,建立恶意模型。而Shivam Bhasin博士就是基于手机的倾斜度以及拇指或手指拦截的光来建立恶意模型的,进而预测用户所要按的PIN码。
应对策略
由于移动应用的这些传感数据都不需要请求许可就可以进行访问,所以一些恶意程序就可以秘密监听传感器数据,最终用来发现用户的大量敏感信息,包括通话时间、身体活动、触屏操作、PIN码和密码等。所以:
1.设置PIN码时要在四位以上,同时配合多种密码验证方式,如一次性密码、双因素验证、以及指纹或面部识别系统等; 2.确保定期修改PIN码和密码,从而使恶意网站无法建立恶意识别模型; 3.不使用应用的情况下,关闭后台运行,并卸载不需要的应用; 4.操作系统和应用程序要随时更新; 5.从正规应用商店下载应用程序; 6.谨慎开放应用程序在手机上的许可权限,安装之前,仔细检查应用程序要求的权限,如有必要,请选择更合理的许可权限。