文章信息
- 苏涵, 李纪平, 何琨, 陈晶, 杜瑞颖
- SU Han, LI Jiping, HE Kun, CHEN Jing, DU Ruiying
- 基于智能手机运动传感器的手写数字字符推测系统
- Handwritten Numeric Character Estimation System Based on Smartphone Motion Sensor
- 武汉大学学报(理学版), 2019, 65(5): 427-433
- Journal of Wuhan University(Natural Science Edition), 2019, 65(5): 427-433
- http://dx.doi.org/10.14188/j.1671-8836.2019.05.002
-
文章历史
- 收稿日期:2019-01-31
2. 武汉大学深圳研究院,广东 深圳 518000;
3. 湖北工程学院 计算机与信息科学学院,湖北 孝感 432000;
4. 武汉大学 地球空间信息技术协同创新中心,湖北 武汉 430079
2. Shenzhen Institute of Wuhan University, Shenzhen 518000, Guangzhou, China;
3. School of Computer and Information Science, Hubei Engineering University, Xiaogan 432000, Hubei, China;
4. Collaborative Innovation Center of Geospatial Technology, Wuhan University, Wuhan 430079, Hubei, China
近年来随着智能手机的广泛普及, 人们在日常生活中越来越多地使用这类设备来进行交流、娱乐、支付等活动[1]。触摸屏是智能手机的一大特色, 为手机应用程序开发者设计种类丰富的软件提供了基础物理条件, 因此大多数应用程序是基于触摸屏开发设计。这使得触摸屏成为了智能手机用户传递和接收类型丰富信息的人机交互界面, 同时也使触摸屏逐渐成为了攻击者利用侧信道分析技术获取用户隐私的重要攻击面来源[2~10]。大量的研究工作表明, 智能手机搭载的硬件传感器给攻击者实施侧信道攻击带来了极大的便利。现有研究已经实现利用智能手机传感器的数据推测用户在触摸屏上输入的信息, 如虚拟键盘输入和锁屏图案等。
触摸屏信息可分为两大类:固定区域信息和非固定区域信息。固定区域信息是指用户通过敲击屏幕上固定位置的图案/区域传递信息给智能手机的操作信息。虚拟键盘和图案解锁就属于这类信息, 现有研究工作也主要集中在对这类信息的推测[11~16]。非固定区域信息产自于用户在整个屏幕上任意区域滑动和点击的操作, 它的触屏操作更加自由, 所以这类触屏信息也更加丰富复杂。目前学术界还缺乏对这类触摸屏信息推测的系统研究。虽然也有手指滑动信息的还原工作, 但是此类研究比较基础, 无法推测有效信息[17]。
鉴于现有研究工作的不足, 本文通过分析运动传感器(加速计和陀螺仪)数据获取非固定区域信息, 提出了一种基于智能手机运动传感器的手写数字字符推测系统。
1 背景知识 1.1 手写应用程序本文通过爬虫框架scrapy[18]和第三方数据平台[19]对目前体量较大的应用市场中具有手写功能的应用软件进行了调查, 结果如表 1所示。由表 1可知, 所调查的Android应用市场(包括AnZhi和Google Play等)中具有手写功能的应用程序的下载总量在3.5亿次左右。中国和美国的Apple Store中此类应用程序的种类大概有1 300种。由于没有Apple Store应用程序下载量的官方数据, Apple Store的统计数据采用了第三方数据平台的数据, 只统计了应用程序的种类数量。由此可见, 目前有大量用户手机中安装了具有手写功能的应用程序, 使得对用户手写信息的侧信道攻击会造成大范围的个人隐私信息泄露威胁。
应用市场 | 下载数量/种类 | 样例程序 |
AppChina | 455 663 | Chinese Handwriting |
WanDouJia | 224 254 | ABC HandWriting |
AnZhi | 4 545 245 | 搜狗输入法、讯飞输入法 |
Google Play | 347 014 420 | Google Handwriting Input |
China Apple Store | 302 | 随手写、Microsoft OneNote |
America Apple Store | 1 079 | NoteBook+、FiiNote Lite |
要在实际场景中应用本文的手写数字字符推测系统, 需要在用户手机上安装一个可以实时收集传感器数据的应用程序。目前手机操作系统(Android和IOS)对传感器数据缺乏有效的保护措施, 任何应用程序都可以在不需要任何权限的情况下读取传感器数据[20], 并且用户也不会有任何察觉, 所以一个看似正常的应用程序可以在后台静默完成数据收集任务且不会被用户发觉。本文实验使用的数据收集器是本文作者自己开发的应用程序。除此之外, 本文的应用程序需要申请联网权限, 用来发送数据至服务器进行分析。联网权限在应用程序的权限申请列表中是常见的权限, 通常不会引起用户的注意。为了减少功耗, 本文系统只在用户使用具有手写功能的应用程序时才记录运动传感器数据。为了判断用户何时使用了手写程序, 我们通过分析手机电池使用情况来实现当前使用程序判断[21]。
2 系统设计本节首先介绍基于手机运动传感器的手写数字字符推测系统的整体架构, 再阐述系统设计实现过程中面临的两个主要问题(事件检测和特征提取)以及解决方案。
2.1 系统架构系统的整体架构如图 1所示, 分为4个模块:数据收集、字符事件检测、字符特征提取和字符识别。数据收集模块在手机端运行, 其他3个模块在服务器端部署。
![]() |
图 1 基于传感器的手写推测系统架构图 Fig. 1 Sensor-based handwriting estimation system architecture |
1) 数据收集:主要完成运动传感器数据的采集工作。当用户在手机屏幕上通过手写的方式输入信息的时候, 该模块在系统后台实时监听记录传感器的数据变化并传输至远程服务器。
2) 字符事件检测:服务器收到数据流后, 利用多项式拟合和能量分析识别、提取单个字符手写过程对应的数据段。每个字符的手写过程视为一个独立的事件。
3) 字符特征提取:主要从时域和频域两个方面提取原始特征集合, 在后续阶段会对原始特征集合做进一步筛选和优化。
4) 字符识别:根据用户不同的手机持握姿态, 分别对原始特征集合用特征工程方式选择每个姿态下最适合的姿态特征集合, 根据姿态征集合训练姿态推测模型。最后将训练完成的推测模型应用到实际手写数据中, 完成字符推测。
2.2 算法设计虽然已有从数据流中检测事件的算法, 但是这些算法是针对虚拟键盘的点击事件和从音频数据中检测事件[22~24]。手写行为不同于点击行为, 不会造成传感器数据短暂而明显的变化, 所以现有算法不适用手写事件的检测。服务器接收的原始数据流中含有较多背景噪声, 直接从中检测事件比较困难。为降低背景噪声对检测结果的影响, 本文通过多项式拟合的方式生成数据流中的噪声数据的拟合曲线, 并结合数据流的方差值, 实现目标数据段的识别、提取。本文的算法可根据背景噪声, 动态地配置多项式的参数, 生成最合适的拟合曲线。算法1描述了动态事件检测的过程, 算法2是开始和结束节点判断算法。
算法1 动态事件检测算法 |
输入:原始传感器数据D,计算参数m,t |
输出:独立的事件数据段集合E |
1 初始化集合E以及一个临时的空向量tmp |
2 p = Fitm (D) //计算拟合曲线 |
3 ar=Variance(D) //计算方差 |
4 isValid=False //标志位 |
5 for i = 1; i < length(D); i + +: |
6 if|D[i]-p[i]|> t*Var and D[i]是开始或结束点: |
7 isValid=True |
8 if isValid=True: |
9 将D[i]加入向量tmp |
10 if|D[i]-p[i]|> t*Var and D[i]是开始或结束点: |
11 isValid=False |
12 将tmp加入集合E,并清空tmp |
13 return E |
算法2 开始和结束节点判断算法 |
输入:待判断节点的相关数据段,原始数据的均值:data, mean |
输出:判断结果StartOrEnd |
1 StartOrEnd=True |
2 for i=1;i < length(data); i++: |
3 if data[i] ≠mean then//判断当前值是否等于均值 |
4 StartOrEnd=False//当存在一个值不等于均值,则待判断节点不是开始节点和结束节点 |
5 return StartOrEnd |
6 return StartOrEnd |
算法1第2行和第6行参数m和t的值都是动态变化的, 根据不同的用户进行调整训练。m是多项式拟合的级数, t表示算法检测事件的灵敏度。t越小检测灵敏度越大, 但是同时更容易受噪声影响。
2.3 特征提取此模块接收并处理事件检测模块输出的事件数据段。对每个数据段, 本文选择了两种特征提取方法:时域特征提取和频域特征提取[25]。需要明确的是此阶段提取的是原始特征集合, 还需要通过后续步骤进一步筛选和优化。
1) 时域特征:主要为数据在时域上的一些统计特征, 包括标准差、最大值、最小值、平均值以及极差。由于传感器的数据包含三个维度的数据, 以上时域特征都将在三个维度上分别计算。除此之外, 本文还考虑两个重要的特征, 字符手写时间和三个维度数据的平方和, 后者在物理意义上代表施加到手机屏幕上力的大小。
2) 频域特征:传感器数据流在本质上是离散的数字信号。利用数字信号处理技术, 本文首先对数据段进行快速傅立叶变换, 计算结果由ρ={ ρ1, ρ2, …, ρw }表示, ρ的长度为w。后续特征在此基础上提取, 实际使用的特征主要是以下5个:
(a) 频谱中心矩C:该特征表明了ρ的"质心"所在的位置。f是ρ的中心频率。计算如下:
![]() |
(1) |
![]() |
(2) |
(b) 频谱方差V:显示频谱的频率密度。
![]() |
(3) |
(c)偏度S:是ρ的不对称性的度量。
![]() |
(4) |
(d) 峰度K:表示ρ顶端尖峭或扁平程度的指标。
![]() |
(5) |
(e) 熵E:提供了一种量化类ρ中噪声的方法。此种特征可以反映一段数字信号频谱的平坦程度。
![]() |
(6) |
以上5个频域特征是参考语音识别特征和行为认证特征挑选出来的, 综合时域特征一起作为预备的原始特征集合。
2.4 字符识别本文系统采用scikit-learn[26]作为机器学习训练工具, 通过有监督学习的方式训练得到字符信息推测模型。为了更好地适应用户在不同手机持握姿态下的手写信息推测, 本文对三种常见的用户手机持握姿态:坐姿、站姿和躺姿分别进行了训练。在进行训练前会使用特征工程[27]对原始特征集合进行筛选优化, 得到每一个姿态下最合适的姿态特征集合。在根据姿态特征集合训练得到每种姿态对应的姿态信息推测模型。完成模型训练后, 对测试数据进行事件检测和特征提取筛选后输入对应的姿态模型进行推测, 判断其属于何种字符。
3 实验 3.1 实验部署本文采用了三款手机作为实验手机:华为NEM-AL 10、三星-G9208和红米Note 4X。每部手机上都安装推测系统的数据收集模块, 数据模块的界面如图 2所示。
![]() |
图 2 数据收集程序主界面 Fig. 2 Data collection program main interface |
实验总共邀请了12位志愿者参与实验, 要求每个志愿者手写10种字符("0"~"9")各15次, 在完成加速计模式下的数据收集后, 志愿者还需要点击切换按钮切换收集的传感器类型为陀螺仪, 然后再次重复以上步骤。最后志愿者需要在三种姿态(坐姿、站姿和躺姿)下分别完成以上所有的步骤。本文实验总计收集到的数据集大小为10 800, 单个字符的手写过程计为一个数据。其中70%的数据作为训练数据集, 剩下的30%数据作为测试集。为了减少不必要的环境噪声影响, 志愿者会在一个较为安静的实验环境中完成数据收集。
3.2 结果分析和评估本文实验采用的性能评估指标主要有两种:推测准确率和模型AUC值(the area under the receiver operating characteristic curve)[28]。推测准确率定义为所有推测正确的字符数量和所有测试字符数量的比值, 它反应了字符推测模型的整体性能。AUC值的定义是ROC(receiver operating characteristic curve)曲线和坐标轴围成的面积大小。ROC曲线图中以假阳性概率(false positive rate)为横轴, 真阳性(true positive rate)为纵轴。AUC可以直观地评价推测系统效果的好坏, 值越接近1, 推测系统效果越好, 准确率越高[26]。
图 3反映数字字符推测系统在不同姿态下的推测效果。图中横坐标表示三种姿态特征集合, 纵坐标表示三种姿态下收集的测试数据集, 图中每个小方块表示以某一个姿态特征集合训练得到的信息推测模型对不同姿态测试数据的识别准确率, 方块的颜色代表准确率的高低, 颜色越深准确率越高。可以发现坐姿特征集合训练的信息推测模型识别坐姿手写数据的准确率最高, 达到93.5%。站姿特征集合和躺姿特征集合训练的信息推测模型在识别它们对应姿态数据的准确率分别可以达到81.4%和84.6%。与站姿和躺姿相比, 坐姿状态下用户手部抖动比较少, 系统收集到的传感器数据中背景噪声较少, 从数据流中识别出来的手写事件更多, 提取出来的手写数据段也比较完整。因此坐姿模型可以得到更加充分的训练, 从而达到更高的识别准确率。另一方面, 对于非对角线数据表示使用某一姿态的特征集合训练的信息推测模型去识别其他姿态下的测试数据, 一般情况下, 模型的识别准确率度会极大地降低, 本文由于站姿和躲姿的数据噪声比较大, 可能会丢失一些手写数据, 而坐姿数据中提取的手写数据更多一些, 模型训练的更加充分, 因此识别坐姿的准确率比较理想。随着站姿和躺姿训练数据集的增大, 对应姿态识别会逐渐达到最优性能。
![]() |
图 3 不同姿态下的推测效果对比 Fig. 3 Comparison of speculative effects in different postures |
图 4反映手写数字字符推测系统在不同设备上的性能情况。可以看出, 三星、小米和华为的AUC值分别为:0.93、0.94和0.93。不同设备上推测的效果有差异, 但是差异不大。造成这种细微不同的原因是由于不同手机的传感器工艺可能有一定的差别, 导致传感器的硬件噪声水平不同。但是这种性能差异随着训练数据集的增大以及去噪操作的增多会逐渐降低, 这也是为何三种设备之间的最大AUC差值只有0.01的原因。
![]() |
图 4 不同设备的ROC曲线 Fig. 4 ROC of different devices |
图 5展示的是基于不同运动传感器数据训练的数字字符推测系统的推测效果对比。两个传感器从不同的数据维度展示了对推测效果的影响:加速计(accelerometer)主要反映手机在不同方向上的加速度变化情况; 陀螺仪(gyroscope)则反映手机在不同方向的角速度变化情况。从图中发现, 陀螺仪数据的推测效果好于加速计的数据, 加速计和陀螺仪的AUC分别是:0.93和0.98。这是因为当有外力施加到手机上的时候, 加速度的变化对这种外力比较敏感, 因此也更容易受到手部抖动等噪声的影响。而角速度的变化取决于手机是否有旋转, 相比较于手写操作引起的旋转角度变化, 手部抖动`等背景噪声引起的手机旋转角度变化是比较轻微的。因此基于陀螺仪数据的推测模型可以得到更充分的训练。两种推测模型的AUC值差达到了0.05, 说明加速计数据中的背景噪声对最后的推测结果影响还是比较明显的。
![]() |
图 5 不同传感器的ROC曲线 Fig. 5 ROC of different sensors |
图 6反映了不同手写方式对推测效果的影响。一般用户有两种手写方式:手指手写和手写笔手写。从图 6中可以看出, 手指和手写笔的AUC值分别为:0.92和0.94, 手写笔比手指高0.02。两种手写方式的手写介质不同, 手写笔通常是塑料材质, 与手指的皮肤触感不同。同时手写笔手写方式下用户的手指没有和手机屏幕直接接触, 可以减少生理因素引起的噪声影响, 如手指的抖动和心跳。因此手写笔手写情况下收集到的传感器数据更加稳定, 其中背景噪声更少, 所以对手写笔数据的推测效果也好于对手指手写数据的推测效果。
![]() |
图 6 不同手写方式的ROC曲线 Fig. 6 ROC of different handwriting methods |
针对现有手机传感器侧信道隐私泄露研究在手机手写领域的缺乏, 本文提出了一种基于手机运动传感器的手写数字字符推测系统, 并实现了推测系统的原型系统。在用户实际进行手写输入的场景下应用推测系统推测用户手写输入信息。实验数据表明本系统的推测精度最高可达到93.5%。
后续的工作可从以下两个方面进行:一方面, 目前推测系统可以推测的字符主要是独立手写的数字字符, 还不能推测连写的数字字符, 后续将会考虑将连写数字字符推测也纳入到字符推测系统中。同时也将扩展本文系统可推测的字符种类, 将字母等字符也纳入推测范围。另一方面, 虽然我们邀请了12名志愿者参与实验, 但是为了训练推测效果更好的系统, 需要更多的志愿者加入实验, 增加实验数据的量级, 进一步完善字符推测系统。
[1] |
NEWZOO.Global Mobile Market Report[DB/OL].[2018-09-11].https://newzoo.com/insights/articles/newzoos-2018-global-mobile-market-report-insights-into-the-worlds-3-billion-smartphone-users/.
|
[2] |
AVIV A J, SAPP B, BLAZE M, et al.Practicality of ac-celerometer side channels on smartphones[C]//Annual Computer Security Applications Conference(ACSAC).New York: ACM, 2012: 41-50.DOI: 10.1145/2420950.2420957.
|
[3] |
SIMON L, ANDERSON R.Pin skimmer: Inferring pins through the camera and microphone[C]//Proceedings of the 3rd ACM Workshop on Security and Privacy in Smartphones Mobile Devices(SPSM).New York: ACM, 2013: 67-78.DOI: 10.1145/2516760.2516770.
|
[4] |
MICHALEVSKY Y, BONEH D, NAKIBLY G.Gyro-phone: Recognizing speech from gyroscope signals[C]// Proceedings of the 23rd USENIX Security Symposium (USENIX).New York: ACM, 2014: 1053-1067.
|
[5] |
GRANELL E and LEIVA L A.βtap: Back-of-device tap input with built-in sensors[C]//2017 Proceedings of the 19th International Conference on Human-Computer Interaction with Mobile Devices and Services(MobileHCI).New York: ACM, 2017: 52.DOI: 10.1145/3098279.3125440.
|
[6] |
ZHOU M, WANG Q, YANG J.PatternListener: Crack-ing Android pattern lock using acoustic signals[C]//Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security.New York: ACM, 2018: 1775-1787.DOI: 10.1145/3243734.3243777.
|
[7] |
SONG C, LIN F, BA Z, et al.My Smartphone knows what you print: Exploring smartphone-based side-channel attacks against 3D printers[C]//Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communica-tions Security(CCS).New York: ACM, 2016: 895-907.DOI: 10.1145/2976749.2978300.
|
[8] |
KIM H, LEE S, KIM J.Exploring and mitigating privacy threats of HTML5 geolocation API[C]//Computer Security Applications Conference (ACSAC).New York: ACM, 2014: 306-315.DOI: 10.1145/2664243.2664247.
|
[9] |
刘小安, 彭涛, 贾杉杉. 基于Android平台传感器技术的运动监测应用[J]. 电脑知识与技术, 2017, 13(1): 63-66. LIU X A, PENG T, JIA S S. Motion monitoring applica-tion based on Android platform sensor technology[J]. Computer Knowledge and Technology, 2017, 13(1): 63-66. (Ch). |
[10] |
CAI L, CHEN H.TouchLogger: Inferring keystrokes on touch screen from smartphone motion[C]//Proceedings of the 6th USENIX Conference on Hot Topics in Security (HotSec).New York: ACM, 2011: 9-10.
|
[11] |
XU Z, BAI K, ZHU S C.TapLogger: Inferring user inputs on smartphone touchscreens using on-board motion sensors [C]//Proceedings of the 5th ACM Conference on Security and Privacy in Wireless and Mobile Networks(WISEC).New York: ACM, 2012: 113-124.DOI: 10.1145/2185448.2185465.
|
[12] |
GUPTA H, SURAL S, ATLURI V, et al.Deciphering text from touchscreen key taps[C]//IFIP Annual Conference on Data and Applications Security and Privacy.Berlin: Springer, 2016: 3-18.DOI: 10.1007/978-3-319-41483-6_1.
|
[13] |
SHEN C, PEI S C, YU T W, et al.On motion sensors as source for user input inference in smartphones[C]// IEEE International Conference on Identity, Security and Behavior Analysis (ISBA).Washington D C: IEEE, 2015: 1-6.DOI: 10.1109/ISBA.2015.7126368.
|
[14] |
YUE C.Sensor-based mobile web fingerprinting and crosssite input inference attacks[C]//IEEE Security and Privacy Workshops(SPW).Washington D C: IEEE, 2016: 241-244.DOI: 10.1109/SPW.2016.17.
|
[15] |
平丹.基于Android平台侧通道的键盘输入窃取的研究[D].南京: 南京大学, 2016. PING D.Research on Keyboard Input Stealing Based on Android Platform Side Channel[D].Nanjing: Nanjing University, 2016(Ch). |
[16] |
陈亮. 基于智能手机传感器推测用户PIN码研究[J]. 信息通信, 2018(10): 15-17. CHEN L. Research on predicting user PIN code based on smartphone sensor[J]. Information & Communications, 2018(10): 15-17. DOI:10.3969/j.issn.1673-1131.2018.10.007 (Ch). |
[17] |
MEHRNEZHAD M, TOREINI E, SHAHANDASHTI S F, et al. TouchSignatures:Identification of user touch actions and PINs based on mobile sensor data via Javascript[J]. Journal of Information Security and Applications, 2016, 26: 23-38. DOI:10.1016/j.jisa.2015.11.007 |
[18] |
SCRAPY.A Fast and Powerful Scraping and Web Crawling Framework[EB/OL].[2018-10-03].https://scrapy.org/.
|
[19] |
QIMAI.Apple Store App Downloads Analysis[EB/OL].[2019-03-13].https://www.qimai.cn/search/index/device/iphone/country/us/search/handwriting/.
|
[20] |
Google Development[EB/OL].[2018-10-20].https:// developer.android.google.cn/reference/android/hardware/SensorEvent.html.
|
[21] |
CHEN Y M, JIN X C, SUN J C, et al.POWERFUL: Mobile app fingerprinting via power analysis[C]//IEEE INFOCOM 2017-IEEE Conference on Computer Communications.Washington D C: IEEE, 2017: 1-9.DOI: 10.1109/INFOCOM.2017.8057232.
|
[22] |
YU T, JIN H M, NAHRSTEDT K.WritingHacker: Audio based eavesdropping of handwriting via mobile de-vices[C]//Proceedings of the 2016 ACM International Joint Conference on Pervasive and Ubiquitous Computing (UbiComp).New York: ACM, 2016: 12-16.DOI: 10.1145/2971648.2971681.
|
[23] |
SHEN C, PEI S C, YANG Z Y, et al. Input extraction via motion-sensor behavior analysis on smartphones[J]. Computers & Security, 2015, 53: 143-155. DOI:10.1016/j.cose.2015.06.013 |
[24] |
MEHRNEZHAD M, TOREINI E, SHAHANDASHTI S F, et al. Stealing pins via mobile sensors:Actual risk versus user perception[J]. International Journal of Information Security, 2018, 17(3): 291-313. DOI:10.1007/s10207-017-0369-x |
[25] |
KONAK S, TURAN F, SHOAIB M, et al.Feature En-gineering for Activity Recognition from Wrist-Worn Motion Sensors[DB/OL][.2018-10-12].https://www.researchgate.net/publication/307879621_Feature_Engineering_for_Activity_Recognition_from_Wrist-worn_Motion_Sensors.DOI:10.5220/00060 07100760084.
|
[26] |
SCIKIT-LEARN.Simple and Efficient Tools for Data Mining and Data Analysis[EB/OL].[2018-10-21].http://scikit-learn.org/stable/.
|
[27] |
FEATURE ENGINEERING.Module Implements Feature Selection Algorithms[EB/OL].[2018-10-11].https://scikitlearn.org/stable/modules/classes.html#module_sklearn.feature_selection.
|
[28] |
章宁, 陈钦. 基于AUC及Q统计值的集成学习训练方法[J]. 计算机应用, 2019, 39(4): 935-939. ZHANG N, CHEN Q. Ensemble learning training method based on AUC and Q statistics[J]. Journal of Computer Applications, 2019, 39(4): 935-939. (Ch). |