物联网设备是如何影响用户的日常生活和他们的信息安全的?在我们之前的研究中,我们曾谈到使用单板微型计算机拦截身份验证数据的方法。今天,我们要关注的是可穿戴设备:智能手表和健康追踪器。或者更准确地说,是里面的加速度计和陀螺仪。
在以前关于strava(跑步应用程序和骑行应用程序)的研究中,我们已经知道,即使是关于用户的非体育锻炼数据,也可以被泄露。这些智能设备能够追踪你在ATM机上输入的密码、登录凭证或解锁智能手机的密码。
在这次研究中,我们研究了可穿戴设备中的分析信号如何为潜在入侵者创造攻击机会的?不过结果不是令人很满意,尽管我们研究的嵌入传感器的信号无法模拟传统的键盘记录程序,但这可以用来建立用户的行为特征,并检测关键数据的输入。这种分析可以谨慎地使用直接在设备上运行的合法应用程序。这就扩大了网络罪犯对受害者隐私获取的能力,并促进了他们进入所在公司的公司网络。
所以,最重要的事就是用户行为分析。
用户行为分析
当人们听到“智能可穿戴设备”这个词时,他们很可能会想到微型数码设备。不过,大多数智能手表都是网络物理系统,因为它们配备了传感器来测量加速度(加速度计)和旋转(陀螺仪)。这些都是便宜的微型电路,它们通常还包含磁场传感器(磁力仪)。如果来自这些传感器的信号被持续记录下来,那么用户会发现什么呢?
在我们的研究中,我们基于谷歌的参考代码编写了一个相当简单的应用程序,并对华为手表(第一代)、Kingwear KW88、PYiALCY X200智能手表进行了一些简单的实验,这些都是基于Android Wear 2.5和Android 5.1的智能手表操作系统。之所以选择这些类型的手表是出于它们的可用性和编写对应的应用程序的简单性,假设在iOS中开发嵌入式陀螺仪和加速计的方法和Android类似。
在密码输入期间记录智能手表信号
为了确定传感器的最佳采样频率,我们对不同的设备进行了一系列测试,从低功耗模型(以处理器为例)开始,如Arduino 101和小米手环2。然而,传感器的采样和数据传输速率并不令人满意,因为要获得令人满意的相关值,采样频率要至少为50hz。我们还会拒绝大于100Hz的采样率。虽然每秒8千字节的数据可能不会太多,但对于长达数小时的日志来说却不是这样的。因此,我们的应用程序以100赫兹的频率对嵌入的传感器进行采样,并在手机内存中沿三个轴(x, y, z)记录的加速度计和陀螺仪读数的瞬时值。
不过,获取一整天的完整数据并不容易,因为在这种模式下,华为手表的电池续航时间不超过6小时。
让我们来看看这段时间内的加速度计读数,纵轴表示m/s²(加速度的单位),横轴表示样本数量(平均每一个对应10毫秒)。加速度计和陀螺仪读数如下图所示:
一小时内记录的用户的数字信息,上图是加速度计信号,下图是陀螺仪信号
上图中有五个可以清晰看到变化的区域,对于那些精通运动学的人来说,这张图已经可以泄漏他们很多关于用户的事情。
最明显的运动模式是走路,当用户行走时,戴着智能手表的手像钟摆一样摆动。钟摆摆动是一个周期性的过程。因此,如果在图上的某些区域,运动传感器的加速度或方向读数根据周期性规律变化,则可以假定用户当时正在行走。在对数据进行分析时,要整体考虑加速度计和陀螺仪的数值,这样才有意义。
让我们仔细看看在短时间间隔内振动最大的区域(紫色区域Pattern1, Pattern3,和Pattern5)。
行走时的加速度计和陀螺仪读数
在本文的例子中,我们观察到手部的周期性振荡持续了12分钟(Pattern1,如上图)。在不需要地理信息的情况下,很难确切地说出用户要去哪里,尽管对加速度数据进行双数值积分可以精确到积分常数(初始速度和坐标),显示出这个人正在某处行走,并且具有不同的特征速度。
加速度数据的数值分析结果,用户在一小时内沿x轴和y轴运动,z轴位移为零,因此图中没有显示
注意,绘制相对于X轴位移的Y轴位移,可以分析出人的近似路径。虽然这里的距离并不太精确,但由于它们的数量级为几千米,因为这种方法中的误差可以忽略。为了改善所估计行走的距离的准确性,人体测量数据可以用来估计每一步的长度(这基本上是健康追踪器所做的),但是我们不会在我们的研究中包含这一点。
根据沿X轴和Y轴对加速度的数据分析,所确定的观察对象的近似路径
不过,要分析不太活跃的区域比较困难。很明显,这个人在这段时间休息了。手表的方向不会改变,而且会有加速度,这表明这个人在开车或乘电梯。
如下所示的另一个22分钟的片段显示,这显然不是步行,虽然信号没有可观察到的周期振荡。然而,我们看到了沿一个轴的加速度信号包络的周期性变化。它可能是一种公共交通工具,以直线运行,但有停靠站。它是什么?某种公共交通工具?
乘坐公共交通工具时的加速度计数据
这是另一个时间片段:
加速度数据
这似乎是短时间走路(几秒钟)、停顿和突然的手部动作的混合数据。可以分析出,这个人大概在室内。
下面,我们来解释图表上的所有区域。
加速度计和陀螺仪读数与解码的区域
这三个阶段(12、3、5分钟)穿插于地铁行程(20和24分钟)中,另外短距离步行有一些特殊的特点,因为它涉及到从一条地铁线路到另一条地铁线路的换乘。虽然这些功能清晰可见,但我们的兴趣在于使用可穿戴设备本身可以执行的算法来确定其行为。因此,我们没有使用神经网络的算法(虽然我们知道神经网络在这类任务中很出色),而是使用了简单的相互关系算法计算。
采用两种行走模式(Walking1和Walking2),我们计算了它们之间的相互关联,以及利用10秒信号数据阵列与噪声数据的交叉相关性。
用于步行模式互相关和任意噪声模式的互相关函数的最大值
从上表中可以看出,即使是这种计算相互关联函数的基本方法,也能让我们在记录痕迹中识别出用户的移动模式,准确率高达83%(考虑了相关性)。虽然这个指标看起来可能不是很高,但应该强调的是,我们没有优化样本大小,也没有使用更复杂的算法,例如,主成分分析,该分析算法的使用会让准确率更高。
这对潜在的攻击者来说,意味着什么呢?在确定了地铁用户的运动情况,并了解了该运动的方向后,我们就可以确定用户所乘坐的地铁线路。当然,获得关于空间中X轴和Y轴方向的数据要容易得多,这些数据可以用磁力仪获得。然而,不幸的是,来自电动马达的强大电磁传感器,会让一个向北方向的精度变得很低,另外在智能手表中相对较少的磁力计也迫使我们放弃这个想法。
如果没有关于空间中X轴和Y轴方向的数据,解码运动轨迹的问题就变成了将已知长度的时间片段叠加到地形图上的几何任务。对于攻击者来说,这表明一辆电车正在加速或减速,这就是可以提供的额外信息,这使他们能够计算出攻击时感兴趣的时间段的信息,不过这也超出了我们的研究范围。
对关键数据的网络物理拦截
你以为这些仅仅暴露了用户的运动行为吗?事实证明,用户何时到达工作地点、登录公司、如何解锁手机等等都是可以确定的。将实验者的移动数据与坐标进行比较,我们可以确定他们访问银行并在ATM机上输入密码的时间点。
获取PIN码
从戴在手腕上的智能手表上捕捉加速度计和陀螺仪信号的PIN码有多容易,你知道吗?我们让四名志愿者在一台真正的ATM机上分别输入个人识别码。
加速度计在ATM键盘上输入密码时发出的信号
用基本的方法从传感器读数中截取未加密的PIN码并不容易,然而,加速度计日志的这一部分提供了某些信息,例如,图的前半部分表示手处于水平位置,而后半部分的振荡值表示按下ATM键盘上的键。通过神经网络,加速度计和陀螺仪的三个轴的信号可以被用来破译一个随机的人的PIN码,其准确度最低为80%。这种攻击的缺点是,智能手表的计算能力还不足以实现神经网络算法。但是,使用简单的相互关系计算来识别这种模式,然后将数据传输到更强大的机器进行解码是完全可行的。事实上,这就是我们所用的方法。
密码输入数据在ATM上的相互关联函数的最大值
粗略地分析,就可以从信号通信量的一般流程中恢复PIN的输入信息,准确度大87%。
密码和解锁码
除了针对ATM机进行测试外,我们还对另外两种情况感兴趣,即智能手表会破坏用户安全:输入电脑密码和解锁智能手机。当然,对于电脑和手机来说,我们已经通过神经网络知道了答案,但我们仍然想直接通过佩戴的智能手表来进行破解。
当然,要在电脑上手动输入密码,就需要佩戴智能手表在手腕上,这是不可能的。而且,尽管从理论上讲,字典可以用来从单手信号中恢复语义上有意义的文本,但如果密码足够强,就没有帮助了。但是,这里的主要危险不是从传感器信号中恢复密码,而是在输入密码时易于检测。
假如让四个人在电脑上输入同样的13个字符的密码20次。同样,我们进行了一项实验,在实验中,两名参与者用4位数字键解锁了LG Nexus 5X智能手机4次。我们还记录了每个参与者在模仿正常行为时的动作,尤其是在聊天室中。实验结束时,我们同步了读数的时间,剔除了多余的信号。
总共得到了所有传感器轴上的480个离散函数,根据输入密码或任意数据所需的时间(大约3秒),每一个都包含250-350个读数。
一个人沿着加速度计和陀螺仪轴发出的四次尝试信号
从肉眼观察的角度来说,得到的图形几乎是相同的,这两个极端是一致的,当然部分原因是在所有的尝试中,密码和输入方式都是相同的。这意味着一个人和一个人产生的数字指纹是非常相似的。
沿着加速度计和陀螺仪轴的信号,尝试在台式电脑上输入相同的密码
当叠加来自不同人的信号时,可以看到,虽然密码是相同的,但是输入方式是不同的,甚至在视觉上极端不一致。
试图由两个不同的人输入智能手机解锁代码
手机也是如此。此外,加速度计还会捕捉屏幕被拇指敲击时的瞬间,从中可以很容易地确定输入的时间长度。
虽然肉眼看不出区别,但统计数据很能准确反映结果。让我们从最简单、最明显的方法开始,即计算一个人的密码输入尝试和不同人的密码输入尝试的相互关联函数。
下表给出了加速度计和陀螺仪对应轴的数据相互关联函数的最大值。
台式计算机上的不同人输入的密码输入数据的相互关联函数的最大值
一般来说,即使是非常简单的相互关系计算也能识别准确率高达96%的人!如果我们比较任意文本输入模式下不同人的信号的互相关函数的最大值,其相关最大值不超过44%。
不同活动(密码输入和平时普通网络活动)数据的交叉关联函数的最大值
同一个人和不同的人输入的解锁码时的不同数据的交叉相关函数的最大值
请注意,输入智能手机解锁码(高达64%)时获得最小的交互相关函数值,输入计算机密码时获得最大的交互相关函数值(高达96%)。这是可以预料的,因为在解锁的情况下,手的运动和相应的加速度(线性和角)是最小的。
然而,我们再次注意到,智能手表的计算能力足以计算相关功能,这意味着智能穿戴设备可以自行完成这项任务!
总结
从信息安全的角度来说,我们可以得出这样的结论:毫无疑问,便携式网络物理系统扩展了潜在入侵者的攻击途径。也就是说,主要的危险不在于直接截获输入数据,因为这是相当困难的,最成功的结果是通过神经网络实现的,到目前为止,准确度还有待提高。而是基于嵌入式传感器的信号来分析用户的痕迹行为。“智能”设备能够记录从启动到停止从传感器发回的所有信息,另外通过外部指令,还能够在发生某些事件或满足特定条件时记录信息。
只要攻击者的服务器能够访问互联网,被记录的信号就可以通过电话传输到攻击者的后台服务器。所以,一个毫不起眼的健身应用就将你真真的暴露,事实上,除了通过这些程序, 只需发送一次地理标记并请求链接到你的Google Play帐户的电子邮件地址就足以根据你的动作确定你是谁,你在哪里,你的智能手机使用情况,以及你在ATM上输入PIN码时的情况。
我们发现从可能对应于密码或其他敏感信息(姓名,电子邮件地址)的流量中提取数据是一项相当简单的任务。将目前可用的识别算法应用于这些数据,攻击者就可以随后从加速度计和陀螺仪信号日志中恢复这些敏感信息。此外,这些信号经过一段时间的积累有助于跟踪用户的移动,而且不需要地理信息服务(如GPS/GLONASS或基站信号)。
通过本次的测试,我们可以确定,使用简单的方法就可以分析来自嵌入式传感器(例如加速度计和陀螺仪)的信号。即使仅具有可穿戴设备的计算能力,也可以在用户输入密码的瞬间,就将这些信号分析出来,台式电脑的准确率高达96%,移动设备的准确率高达64%。后者的准确性可以通过编写更复杂的算法来改善,但本文中,我们故意应用了最基本的工具。
目前可能的攻击场景,会发生在与可穿戴设备有关的合法的程序中,例如,一个健身跟踪程序往往要定期向服务器发送大量的数据包,例如,未压缩的“信号签名”,13个字符的密码大约是48KB字节。
由于这些应用程序本身是合法的,所以我们假设,除了测试用的Android Wear/Android智能手表测试用例之外,这个测试也可以应用到苹果智能手表上。
缓解措施
有几个迹象表明,在智能手表上下载的应用程序可能不安全。
1.例如,如果该应用程序向用户发送关于用户帐户(Android的GET_ACCOUNTS许可)的数据请求,那就有可能出现攻击的可能,因为网络罪犯需要与它的所有者匹配“数字指纹”。不过,该应用程序还可以通过提供的电子邮件地址来进行用户注册。
2.如果该应用程序另外请求发送地理定位数据的权限,那你就要警惕了。在这种情况下,你不要给你下载的健身追踪器附加这样的权限,并在注册时指定公司的电子邮件地址。
3.电池寿命短也是一个严重的问题,如果你的电子设备在几小时内就没电了,这表明你可能真被监控。从理论上讲,智能手表可以存储长达数十小时的活动日志,并在稍后上传数据。
原文发布时间为:2018-06-3