文献标识码: A
DOI:10.16157/j.issn.0258-7998.173844
中文引用格式: 李立甫,李红亮,古勇军. 基于智能手机的保密U盘设计与实现[J].电子技术应用,2018,44(6):120-123,128.
英文引用格式: Li Lifu,Li Hongliang,Gu Yongjun. The design and implementation of the secure USB disk based on smart mobilephone[J]. Application of Electronic Technique,2018,44(6):120-123,128.
0 引言
近几年,随着移动互联网的普及和信息技术的发展,智能手机已经成为人们工作、生活的必需品[1]。人们不但可以使用智能手机完成信息交互、娱乐,而且利用智能手机充当U盘完成数据存储与传输的方式也越来越多地被使用[2]。然而由于智能手机平台开放性和网络互连性强,更易受病毒、木马等外来攻击[3],根据CVE Details提供的统计数据显示,Android、Debian Linux和Ubuntu Linux被评为2016年最易受攻击的3种产品。智能手机存储的数据较传统U盘更容易泄露。基于此,本文提出了“基于智能手机的保密U盘”的数据防护方案。
1 系统设计
系统基本组成架构如图1所示,系统主要包括:控制手机、基于智能手机的保密U盘和上位机。控制手机是普通智能手机,其软件模块主要由身份认证模块、控制处理模块和定位追踪模块等组成。基于智能手机的保密U盘主要由身份认证模块、APP动态认证模块、遥控销毁模块和定位模块等组成,其硬件实体为智能手机+TF卡,搭载系统为Android。上位机主要由身份认证模块、上位机动态认证模块、磁盘加/卸载模块和过滤驱动模块组成,其硬件平台为普通PC,搭载系统为Windows,支持32位和64位。
系统可分为3个核心功能区,分别为:加密存储功能区、遥控销毁功能区和定位追踪功能区。
1.1 加密存储功能区
加密存储功能区主要由基于智能手机的保密U盘的APP动态认证模块、TF卡和上位机程序组成,用于完成上位机与基于智能手机的保密U盘的动态身份认证,以及加密磁盘创建、加卸载、数据加解密与数据传输功能。
1.2 遥控销毁功能区
遥控销毁功能区主要由控制手机的控制处理模块和基于智能手机的保密U盘的遥控销毁模块组成,在基于智能手机的保密U盘丢失或被盗后,可通过控制手机发送遥控销毁指令(短信形式承载),基于智能手机的保密U盘收到指令后自动清除保密分区(数据),达成设备丢失后的数据遥控销毁功能。
1.3 定位追踪功能区
定位追踪功能区主要由控制手机的控制处理模块和基于智能手机的保密U盘的定位模块组成,主要用于完成基于智能手机的保密U盘的定位、位置回传(通过短信指令)和定位追踪功能,达成设备丢失后的定位追踪和找回功能。
2 加密存储原理与实现
加密存储功能主要由上位机程序和过滤驱动配合完成,采用核心层(Kernel,又叫驱动层)实现透明加解密。上位机程序主要用于实现人机接口、身份认证、密钥设定、加密磁盘创建、挂载和卸载等工作。过滤驱动采用Windows提供的可安装文件系统(Installable File System)[4]开发接口开发完成,通过此驱动实现透明加解密功能。上位机程序和过滤驱动基于Visual Studio 2008开发环境完成开发。
2.1 密盘的创建、挂载与卸载
(1)密盘的创建
上位机软件中,创建密盘分为4步来描述:①根据输入的用户口令生成密盘加密密钥;②读取需要格式化磁盘的各种信息,建立对应数据结构;③在内存中创建文件系统头;④调用写磁盘命令,建立密盘。建立密盘时,通过调用过滤驱动,将明文的文件系统结构加密后写入对应位置,实现文件系统的加密存储。完成这几步操作后,就将磁盘分区格式化为了密盘文件系统。其实现流程如图2所示。
(2)密盘的挂/卸载
密盘文件系统的挂载是指将基于智能手机的保密U盘的密盘挂载到操作系统下。这里涉及编写密盘驱动程序、挂/卸载分区、指定盘符等内容。基于智能手机的保密U盘的密盘建立后,数据均是加密存储,采用挂载的方式是指在系统中进行双向身份认证,通过认证后,对密盘的访问将通过自动调用过滤驱动进行处理,这时从操作系统层上看到的则是其真实的明文数据,因此操作系统就可以对密盘数据进行正常访问。
2.2 加密文件系统的实现
文件加密系统由文件过滤驱动程序和用户模式应用程序组成[4]。如图3所示,文件过滤驱动程序接收用户模式应用程序传来的设置信息,并按照这些信息对文件系统过滤驱动进行设置;对应用程序发往文件系统的操作请求进行监控;在应用程序对磁盘上的文件进行读操作时,进行相应的处理和解密操作;在进行写操作时,进行加密操作。用户模式应用程序实现PC与用户之间的交互,将用户设置信息通过用户模式应用程序与内核模式程序的通信方式传递给文件过滤驱动程序,并向用户显示文件过滤驱动程序传给用户模式应用程序的信息。
2.3 实现效果
(1)密盘创建、挂载、卸载功能
密盘创建、挂载、卸载功能实现效果如图4所示。
上位机软件可呈现基于智能手机的保密U盘的连接状态,可实现与保密U盘的双向鉴权以及创建、加载和卸载保密分区的功能。
通过200次测试可以有效实现双向鉴权,实现保密分区的创建、加载与卸载功能,并且保密分区加载后与普通U盘使用方法完全一致。
(2)保密分区的读写速度测试
作者使用ATTO DISK bench32对保密分区的读写速度进行了多次测试[5],如图5所示,保密分区最大写速度接近16 MB/s,读速度接近22 MB/s。
保密分区的读写速度与普通U盘的读写速度相差不大,基本不影响对数据的读写。
(3)加/解密功能测试
作者采用WINHEX对基于智能手机的保密U盘加/解密功能进行了测试[6],图6为未加密数据图,图7为经过滤驱动加密后的数据图。经对比可以看出,数据经过过滤驱动后已经被加密。
3 遥控销毁的原理与实现
遥控销毁的指令收发通过短信形式完成,编程采用Android标准API接口,指令解析采用自定义协议,数据处理及状态监控采用Android标准API接口开发。
3.1 指令接收与发送
系统利用短消息作为信令载体,关键编程实现方式如下。
(1)指令发送
指令发送调用Android SDK的SmsManager类进行二次开发[7]。
(2)指令接收
指令接收采用BroadcastReceiver广播接收器的方式,监听SMS消息服务。
(3)访问权限
集成Android系统的读写短信访问权限。
3.2 指令生成与解析
指令生成与解析主要采用自定义协议,自定义协议如下。
(1)基于智能手机的保密U盘发送指令
基于智能手机的保密U盘指令如表1所示。
(2)控制手机发送指令
控制手机指令如表2所示。
3.3 数据处理
数据处理主要是指基于智能手机的保密U盘根据收到的控制指令做出相应处理,清除sdcard文件。
(1)核心代码
调用Android SDK的ContentResolver类进行实例化处理[8]。
(2)权限设置
集成Android系统的读写sdcard访问权限。
3.4 状态监控
状态监控主要是监控手机开机启动和更换SIM/UIM卡状态,监控方法如下:首先监听系统开机启动消息,然后在设备启动时检测系统SIM/UIM卡的信息(SIM/UIM卡内部信息包括:序列号、手机号、IMSI号等),最后对比SIM/UIM卡信息和设置的受监听SIM/UIM信息是否相同,若相同则未更换,若不同则更换了。
(1)系统启动监控
基于Android SDK的开机启动监听主要是采用BroadcastReceiver来接收Android系统的开机启动消息广播,并做相应处理[9]。
(2)SIM卡信息检测
在本系统的研发过程中发现,不同SIM/UIM卡,其内部存储的信息不太相同,有的存有手机号码,有的没有;有的存有序列号,有的没有;只有IMSI号具备通用性[10]。因此,本系统采用SIM/UIM卡的IMSI号作为监听换卡的依据。
3.5 实现效果
如图8所示,控制手机可设置被控制号码、控制方式以及选择丢失后处理选项(包括:清除保密分区、位置通知、启动报警、停止报警、锁死屏幕),最后点击“指令发送”,可以实现对基于智能手机保密U盘丢失处理指令的生成和发送。
经过200次不同环境测试,遥控销毁平均处理时间为4 s,正常处理率为100%。
4 定位追踪原理与实现
定位追踪模块主要功能架构如图9所示,基于智能手机的保密U盘通过GPS/北斗、移动基站和WiFi多种方式定位[11-13],提交位置信息到定位模块,并以短消息的形式上报位置信息到控制手机。控制手机收到发来的丢失设备位置信息,显示于地图上,并可以做实时更新与定位追踪。
4.1 定位模块的实现
定位模块采用Android传感器API和开源地图API二次开发实现。
4.2 导航追踪功能的实现
定位追踪功能模块包括:丢失设备显示模块、站立点显示模块、地图显示模块和追踪路径规划模块组成,协同完成丢失手机定位和追踪功能。
4.3 实现效果
定位追踪模块实现效果如图10所示,点击设备位置,即可将丢失设备显示在地图上;点击“驾车追踪”、“公交追踪”或“步行追踪”,即可实现站立点到丢失设备位置的路径规划。
经过30次,累计60 h、900公里的测试,位置更新指令传递平均用时8 s,地图刷新平均用时2 s,正确定位追踪准确率为96%。
5 结束语
本文对智能手机充当U盘完成数据传输的使用方式的风险进行了分析,提出一种“基于智能手机的保密U盘”的数据保护方案,并对其加密存储、遥控销毁、定位追踪等核心功能进行了编程实现和实验测试。通过测试证明了本方案可以有效达成智能手机充当U盘完成数据传输这种使用方式的安全防护。
参考文献
[1] 汪奕祥.Android恶意软件检测方法研究[D].合肥:合肥工业大学,2016.
[2] 郑理.Smartphone也能当U盘[J].电子世界,2007(3):55-55.
[3] 梁丹.基于动态字节码注入的Android沙盒模型[D].上海:上海交通大学,2015.
[4] 胡宏银,姚峰,何成万.一种基于文件过滤驱动的Windows文件安全保护方案[J].计算机应用,2009,29(1):168-171.
[5] 洪婷,张朝民,赵真.Micro SD与M2手机存储卡的读写速度分析[J].世界华商经济年鉴·高校教育研究,2009(5):160-162.
[6] 张辉,周柳阳,丁承林.Windows内存取证的研究与应用[J].科技传播,2009(3):188.
[7] 王颖,李威耀.基于Android平台的手机防盗与数据保护系统[J].电脑与微电子技术,2013(18):62-64.
[8] 吴亚峰,索依娜.Android核心技术与实例讲解[M].北京:电子工业出版社,2010.
[9] 浩明.基于安卓系统的手机防盗设计与实现[J].现代电子技术,2014(14):36-39.
[10] 江燕良,黄海于.Android平台手机防盗系统的安全解决方案[J].单片机与嵌入式系统应用,2013,13(7):15-18.
[11] 张波.基于移动主体技术的手机地图服务[M].厦门:厦门大学,2008.
[12] 崔和宏.移动定位技术概述[J].科技信息,2008(20):23-34.
[13] 刘颖,王树勋,宋春莆.移动终端定位算法及误差分析[J].系统工程与电子技术,2001,23(7):99-106.
作者信息:
李立甫,李红亮,古勇军
(陆军工程大学 通信士官学校,重庆400035)