基于Android的隐私数据安全保护系统研究与实现

时间:2022-10-23 12:55:29

基于Android的隐私数据安全保护系统研究与实现

摘 要 随着移动互联网的快速发展,手机已经成为重要的移动互联网设备。作为移动互联网终端的手机所受的安全威胁已不亚于传统PC。移动终端设备无时无刻不面临着安全风险,如设备丢失、操作系统漏洞、应用程序漏洞、恶意软件、网络攻击等。文章针对Android的安全和隐私信息的保护进行了讨论,并设计程序实现了隐私数据加密,锁定程序、数据擦除等功能。通过大量实验的反复测试,该系统可以有效保护Android系统内部的隐私数据,从而全方位实现Android隐私数据的保护,并为以后相关研究提供了新的方向。

关键词 数据擦除;数据加密;隐私保护

中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2013)20-0073-03

随着基于互联网的移动应用功能和服务的迅速扩展,智能手机在日常生活中得到了更广泛的应用。在移动终端上可以处理个人业务,短信、通讯录等个人数据通常存储在智能手机中,用户不希望这些数据被非法获取和使用。利用Android系统安全漏洞,黑客能够获得Android系统和所有已安装应用的最高访问权限,获取用户移动终端的个人数据,造成严重的数据泄露问题。因此设计开发基于Android的隐私安全保护系统显得尤为重要。

针对Android系统存在的安全问题,对以下功能模块进行设计与开发:①数据加解密:文件加密模块主要将SD卡中的数据使用DES算法进行加密,数据加密模块在客户端独立运行;②用户安全:通过对用户保险箱加密实现对用户可以访问的资源权限进行划分,具备安全可靠的用户管理功能;③远程数据擦除:手机丢失后,为了保护设备中存储的隐私数据,需要实现远程数据擦除。

1 系统需求与设计

1.1 系统需求分析

移动终端设备无时无刻不面临着安全风险:设备丢失、操作系统漏洞、应用程序漏洞、恶意软件、网络攻击等等。为保护重要和私密的文件、图片和其他文件不受未经授权的访问,程序在加载文件时需要进行身份认证,对于重要的私密的文件需要进行加密存储,移至安全保险箱中进行保护。

通过对需求的分析,用户需要制定以下安全策略来保护手机中的个人数据。

1)增加用户密码的复杂度。在短时间内,增加非法用户获取手机访问权限的难度,保护用户隐私数据不被窃取。

2)数据远程擦除。当用户手机丢失时,为了降低用户个人信息泄露的风险,需要远程发送指令来擦除手机中的数据。

3)数据加密。将SD卡中的数据使用对称加密算法进行加密,防止数据泄露,数据加密模块在客户端独立运行,这样就可以防止加密的数据在服务端被窃取。

1.2 Android安全机制

Android是一个权限分离的系统,其核心安全机制主要包括程序应用签名、权限框架和沙箱。Android没有使用不利于安全的动态授权机制,在Android上运行的每个应用程序都具有各自独立的系统标识(Linux用户ID和组ID),并且运行在独立的沙箱中,通过静态的声明所需要的权限来明确地为应用程序分配资源和数据。应用程序对资源(如系统资源和日志文件)、敏感数据(如照片、通讯录、短信等)及系统接口(如网络、蓝牙、GPS等)的访问受到Android的权限框架限制。在程序安装时,Android系统会提示用户是否同意应用程序获取这些权限,程序所需权限必须被用户全部赋予,并且安装完成后用户不能改变已获得的权限,这种粗粒度的特性产生了潜在的安全缺陷。一方面,用户为程序访问隐私数据赋予权限,程序获得权限后,对授权隐私数据的使用不再受到控制,用户也不会获得Android系统的通知;另一方面,Android缺乏应对权限提升攻击的有效机制。通过对最新的攻击手段进行研究表明,利用其他程序的漏洞,非授权应用可以间接获得隐私数据;攻击者还可以利用组合权限窃取隐私,组合多个恶意程序或已感染的程序形成串谋攻击。

针对Android安全机制存在的问题,设计了保险箱机制,非法用户获得权限也无法对保险箱内的隐私数据进行操作,通过对数据加密并存入保险箱中,保护了数据的完整性和机密性。

1.3 系统功能分析

该研究的主要内容是设计并实现一款基于Android的用户隐私数据安全保护的系统软件,以保险箱的形式对用户隐私数据进行加密保护,通过数据的远程擦除防止用户丢失手机后,个人隐私信息被窃取。

为实现上述需求,针对3个功能进行设计与开发:设备安全、用户安全和数据安全。数据安全利用DES算法对用户数据进行加密;用户安全通过文件压缩和MD5算法实现保险箱功能,保证了加密的用户数据文件的完整性;在设备丢失后,用户向服务器请求数据擦除,远程服务器通过下发数据擦除命令对设备数据进行擦除,保护存储的数据不被泄露。

2 数据安全

2.1 功能简介

数据安全主要是通过加密数据来保护数据的机密性。本系统特别为保护重要和私密的文件、图片和其他文件不受未经授权的访问而设计,程序在加载文件时均会进行身份认证,采用DES算法对重要的私密的文件进行加密保护。

2.2 DES算法原理

DES算法的解密密钥和加密密钥可以相互推导出来,是一种对称密码算法,大多数对称密码算法的密钥是相同的。DES加密算法实现加密需要3个步骤:变换明文;按照规则迭代;对L16R16利用IP-1作逆置换,就得到了密文。

2.3 功能

1)身份认证:用户输入口令并验证通过才能进入到保险箱,非法用户未经授权,不能访问受保护的重要和私密文件、图片和其他文件,甚至存储卡被取出并通过其他设备或读卡器也不容易获取其真实内容。

2)数据加密:采用DES算法,安全高效的对文件内容进行加密,这主要是应用了DES算法加密灵活性的优点,加快效率,可以处理各种形式的文件,这就在最大程度上为用户提供了安全性保护。每个文件都有自己的文件密钥,文件密钥是由用户密钥与时间经过随机算法产生的,这样就加大了文件的安全性,防止文件被强行破译。

2.4 程序实现

通过Cipher.getInstance("DES/CBC/PKCS5Padding")调用DES算法来实现数据的加密,其中, CBC是工作模式,DES一共有输出反馈模式(OFB)、电子密码本模式(ECB)、加密反馈模式(CFB)和加密分组链接模式(CBC)四种模式。核心代码如下:cipher.init(Cipher.ENCRYPT_MODE, this.key);

cipher.init(Cipher.DECRYPT_MODE, this.key);

3 用户安全

3.1 功能简介

用户安全主要是保证文件的完整性。文件的完整性可以被破坏,其完整性的保护是通过外层加密来实现的。外层加密,简而言之,是对文件夹的加密,但是,直接对文件夹加密是不可行的。而且由于加密后的文件夹不可用,在存储空间上也存在着浪费,这就需要对文件夹进行处理。先对文件夹进行压缩,然后采用MD5算法对该压缩文件进行加密,通过对文件夹的压缩并加密来实现外层保护的。

3.2 MD5算法原理

MD5是一个安全的散列算法。MD5算法是不可逆的,根据输出的数据不能得到原始的明文,输入两个不同的明文会产生不同的散列值;无法利用已有的算法来破解MD5,需要利用MD5算法将可能出现的明文进行处理,形成散列值,构建出明文和散列值的映射表,通过匹配映射表即可得到所对应的原始明文。输入任意长度的数据,MD5会对该数据产生一个长度为128比特的信息摘要。这一输出可以被看作是原输入报文的“报文摘要值(Message Digest)”。MD5以512位分组来处理输入的数据,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由4个32位分组组成,将这4个32位分组级联后将生成一个128位散列值。

3.3 特性

隐私性:通过对用户的身份认证来进行用户对文件访问的权限控制,通过对需保密的文件夹进行压缩及加密,对需保密的文件进行加密的方式来保护用户的文件安全。用户输入口令并验证通过,才能访问隐私数据。

完整性:非授权用户除了破坏保险箱之外是无法对其进行操作的,在真正意义上起到了对文件完整性的保护。对箱子进行操作的必要条件是具有钥匙,即用户密钥。

3.4 功能

1)核实身份:用户身份核实通过后,可以读取保险箱内的隐私数据,防止了非法用户对隐私数据的盗取和非法应用。

2)安全私密存储:系统会为用户创建一个保险箱,重要的私密的文件移至安全保险箱中进行保护,该保险箱是通过对文件夹的压缩并采用MD5来实现安全私密存储的。该保险箱对外显示为一个损坏的压缩文件,未经授权的非法用户无法访问保险箱内的私密文件、图片和其他文件,程序在加载文件时均会进行身份认证,通过认证后即可访问。

3.5 处理流程

用户首先要进行注册,系统会自动生成保险箱,并将密钥和用户信息存入数据库,当用户再次登录,需要输入用户名及口令,验证通过后,会对保险箱进行解密并解压,成功后用户即可对保险箱内的文件进行操作,关闭保险箱时,会先对保险箱进行压缩并加密,保护文件的完整性。

图1 用户安全处理流程图

3.6 程序实现

在Java中,java.security.MessageDigest(rt.jar中)已经定义了MD5的算法,getMD5String(String s)和getFileMD5String(File file)两个方法,分别用于生成字符串的md5校验值和生成文件的md5校验值,通过调用MD5包对压缩文件进行加密,核心代码如下:

MessageDigest md = MessageDigest.getInstance("MD5");

md.update(plainText.getBytes());

4 设备安全

4.1 功能简介

为了保护设备中SD卡中存储的数据,在设备丢失后,用户向服务器请求数据擦除,远程服务器通过下发数据擦除命令对设备数据进行擦除,保护存储的数据不被泄露。

4.2 特性

主动防御性:用户通过服务器发送指令,触发手机中控制指令的执行,远程销毁用户的隐私数据,防止数据被非法用户窃取。

4.3 功能

1)远程擦除数据:当用户发现手机丢失后,可向服务器请求数据擦除,远程服务器通过下发数据擦除命令对设备数据进行擦除。

2)地理位置:当用户向服务器发送获取地理位置的指令,手机将向用户回复地理位置。

4.4 程序实现

此过程主要定义三个函数。手机客户端接收到服务器发送的指令,会调用下列三个函数来执行删除短信、通讯录及获取手机地理位置的指令。通过调用deleteSMS()和deleteContacts()函数,在数据库中进行匹配查找号码对应的数据,删除相应的短信和通讯录。调用sendLocation()函数来获取手机地理位置。

deleteSMS()的核心代码如下:

CR.delete(Uri.parse("content://sms/conversations/" + threadId),null, null);

Log.d("deleteSMS", "threadId:: " + threadId);

deleteContacts()的核心代码如下:

long Id=cursor.getLong(cursor.getColumnIndex(Data.RAW_CONTACT_ID));

ops.add(ContentProviderOperation.newDelete(ContentUris.withAppendedId(RawContacts.CONTENT_URI,Id)).build());

{getContentResolver().applyBatch(ContactsContract.AUTHORITY , ops);

Log.d("deleteContacts", "Name:: " + cName);}

sendLocation()核心代码如下:

Location location = locationManager.getLastKnownLocation (LocationManager.GPS_PROVIDER);

double latitude = location.getLatitude(); // 经度

double longitude = location.getLongitude(); // 纬度

5 结束语

本文设计并实现了一种基于Android的隐私数据安全保护系统,防止了隐私信息被非法用户窃取,现阶段,系统的设计工作基本完成,并进行了初步测试,实现了对隐私数据加密和解密,以及远程控制客户端。系统需要进一步改进,如对隐私数据的加解密效率过低,远程控制连接成功率有待优化。下一步的工作将会建立一套优化机制,提高加解密的效率以及远程控制连接的成功率。

参考文献

[1]李杰,李新艳.数据加密中的DES加密算法详解[J].商业现代化,2009(587):6-8.

[2]张裔智,赵毅,汤小斌.MD5算法研究[J].计算机科学,2008,35(7):295-297.

[3]蔡皖东.网络与信息安全[M].陕西:西北工业大学出版社,2004.

[4]刘泽衡.基于Android智能手机的安全检测系统的研究与实现[D].哈尔滨:哈尔滨工业大学,2011.

[5]谷利泽,郑世慧,杨义先.现代密码学教程[M].北京:北京邮电大学出版社,2009.

[6]张京京,闫晓蔚,蔡建顺,郭曙光.基于Android系统的手机隐私安全的研究与实现[J].信息网络安全,2012(05):59.

[7]吴剑华,莫兰芳,李湘.Android用户隐私保护系统[J].信息网络安全,2012(09):50.

[8]虞歌.基于口令的加密及其实现[J].计算机时代,2004(07):18-24.

作者简介

闫晓丹(1991-),男,汉族,山东济宁人,硕士,研究方向:信息安全。

闫伟(1985-),女,山东济宁人,博士,研究方向:人工智能。

上一篇:继电保护工作中常见缺陷分析及处理措施 下一篇:Linux下USB—Key通讯库的研究与实现