【Android论文栏目提醒】:网学会员在Android论文频道为大家收集整理了“基于Android的个人云安全存储系统 - 期刊论文“提供大家参考,希望对大家有所帮助!
第 12 卷 第 27 期 2012 年 9 月 科 学 技 术 与 工 程 Vol. 12 No. 27 Sep. 20121671—1815( 2012) 27-7099-06 Science Technology and Engineering 2012 Sci. Tech. Engrg. 基于
Android 的个人云安全存储系统 张 富 江 冰 黄 佳 乔彬彬 ( 河海大学计算机与信息学院和常州市传感网与环境感知重点实验室,常州 213022)摘 要 个人云凭借其安全稳定、同步备份和便于分享等优势,将在未来几年逐步取代个人电脑作为数字时代的核心地位。
本文进行了基于
Android 的个人云应用开发,旨在将个人云服务嵌入
Android 移动终端中,让用户能够随时随地通过终端体验个人云服务。
主要完成了个人云同步备份和安全存储系统架构的设计以及
Android 相关技术选型、密码安全存储的设计以及安全加密算法的选择,并在 Eclipse 环境中利用 Java 语言开发,实现了软件登录限制、功能页面展示、管理文件、备份和下载个人信息等功能。
关键词
Android 个人云 SSL 加密算法 安全机制中图法分类号 TP311. 5; 文献标志码 A 个人云作为云计算在个人领域的延伸 ,是一种 再担心因终端设备丢失或损坏而导致重要信息丢以用户为中心的云计算模型。
个人云具有即时可 失的问题。
用、功能定制和绝对隐私等特征,与传统的操作系 1
Android 安全数据存储模式统相比,个人云将个人计算从 “以设备为中心”转变 ,为 以信息为中心” 并创建了一个基于操作系统的 “
Android 提供了 5 种 方 式 存 储 数 据〔3〕, 别 是 分 〔1,〕计算和服务之间的桥梁 2 。
另一方面,
Android 终 SharedPreferences 类存储、文件存储、SQLite 数据库端为用户提供了全面的功能支持和计算服务 ,而且 存储、ContentProvider 存储、网络存储,每种存储 方
Android 系统具有开源性、通用性和良好的用户体验 式都有各自的适用范围,其中 SharedPreferences 方等优点,是开发移动云计算的理想选择。
式适合存储数据量不大的信息。
针对存储用户名 设计的个人云应用软件实现了个人信息同步 和密码的信息量小和
Android 具有特殊安全机制的备份、个人信息在线管理、多媒体资料同步共享等 特点, 计 了 一 种 更 为 方 便 的 存 储 方 式, 基 于 设 即功能。
用户不论是在家中,还是在单位或者其他任 Property 类 的 XML 文 件 存 储,Property 类 是 Hash-何地方,只要拥有能接入 Internet 的
Android 手机终 Table 的子类, “Key—Value” 以 方式存放数据,可以端,就能通过 Internet 方便地访问个人云存储空间 用来存储数据量小的信息。
与 SharedPreferences 存和远程管理个人信息,解决了共享和多点办公的数 储不同的是,Property 类提供快速查询和直接存取据同步问题。
另外,实现了很有价值的通讯录备份 文件的方法,用起来更方便,并且 SharedPreferences功能,把联系人等重要的信息备份至个人云存储中 方式 的 存 储 路 径 是 固 定 的, 基 于 Property 类 的 而 XML 文件对存储路径没有限制,便于灵活开发。
另心,用户可以随时同步备份到不同的终端里 ,不用 外,
Android 系统具有 Linux 系统管理机制〔4〕、权限2012 年 5 月 28 日收到 许可 ( Per- mission ) 等 多 种 安 全 机 制, 此 结 合 因第一作者简介: 张 富( 1988—) , 河海大学计算机与信息学院硕 男, Linux 的文件访问控制机制来管理密码文件 ,确保士研究生,研究方向: 智能信息处理。
E-mail: 372400251 qq. com。
其安全地存储在系统中。
通信作者简介: 江 冰( 1960—) , , 女 河海大学计算机与信息学院教授,硕士生导师,研究方向: 智能信息处理。
E-mail: jiangb hhuc. 2 云安全问题edu. cn。
个人云的安全优势体现在它是安置于家庭网 7100 科 学 技 术 与 工 程 12 卷络的防火墙之内,并且是完全受用户控制的,用户 RSA 算法快很多。
表 2 为 Certicom 公司公布的在 〔5〕可以知道自己的数据实际存放在哪台机器上 ,甚 相同安全强度下, ECC 和 RSA 的软件实现速率比 〔7〕至可以知道哪些用户在何时通过何种方式访问过 较 , 可见,ECC 在签名和验证方面同样具有速率数据,而不像网络存储那样对数据的存放状态一无 优势。
所知,还要承担信息被商家泄露或者网络服务器故 表2 RSA 和 ECC 速度比较障的风险。
然而在网络上传输个人信息是充满危 Security Builder 1. 2 BSAFE3. 0 功能险的,个人资料一旦被泄露出去,就可能给用户带 163 位 ECC( ms) 1024 位 RSA( ms) 密钥对生成 3. 8 4 708. 3来巨大的损失,因此必须采用可靠的安全协议加密 签名 2. 1( ECNRA) 228. 4传输数据,确保个人信息的安全。
3. 0( ECDSA)2. 1 安全传输协议 验证 9. 9( ECNRA) 12. 7 10. 7( ECDSA) 为了保证数据在网络传输过程中不被窃听 、非 D- 密钥交换 H 7. 3 1 654. 0法拦截和篡改,采用 SSL( Secure Socket Layer) 安全协议传输数据。
SSL 是世界上部署最为广泛的安全 另外, 利用对称密钥来保证数据的完整性 SSL协议,是一 种 在 两 台 机 器 之 间 提 供 安 全 通 道 的 协 和保密性,常用的对称加密算法包 括 DES、3DES、议, 有 保 护 传 输 数 据 以 及 识 别 通 信 机 器 的 功 具 AES 等。
由于 DES 密钥长度只有 56 位,安全性已能 〔6〕 。
SSL 协议提供双向认证、数据加密、数据完整 不能满足目前的要求,于是产生了改进的 3DES 算性验证等服务,可确保数据完整、保密地发送到正 法,但是 3DES 算法使用 192 位密钥才能得到 112确的接收端。
Android 对 SSL 有很好的支持,服务器 位的安全性,算法复杂而且效率低。
AES( Advanced端主要由 SSLServerSocket 实现,客户端主要由 SSL- Encryption Standard) 即高级加密标准,支持 128、 192Socket 类实现,设计采用了双向认证技术,用于检验 和 256 位长度密钥,和其他加密算法相比,具有速度服务器和终端的身份,防止未授权设备连接到个人 快,密钥长度足够、安全级别高的特点,相对而言,云中,并访问用户的数据,以及通过伪装服务器攻 AES 的 128 位密钥,要比 DES 的 56 位密钥强 1021击窃取用户数据。
用到的相关类在 javax. net. ssl 和 倍。
本文采用 256 位密钥的 AES 算法加密数据,同java. security 以及 javax. crypto 包中。
时采取严格的密钥管理措施,最大强度地保证了用2. 2 加密算法的确定 户的数据和隐私安全。
SSL 协议采用的公钥加密算法通常是 RSA 算 3 个人云安全存储系统结构法,而本文采用的公钥加密算法是椭圆曲线密码体 设计的个人云系统由服务器、应用程序和终端制 ECC( Elliptic Curve Cryptosystems ) 算法。
ECC 算 组成,用户在登录成功后,可通过终端软件将数据法是目前 安 全 级 别 最 高 的 公 钥 加 密 算 法, 表 1 如 上传至服务器或者从服务器下载数据,实现备份和所示, 分享等功能。
其客户端的功能框图如图 1。
表1 RSA 和 ECC 安全模长的比较 服务器端需要实时监听客户端请求 ,并做出相 攻破时间 RSA ECC RSA 与 ECC 应的处理,本文设计了基于 SSLServerSocket 的 Ser- MIPS 年 密钥长度 密钥长度 密钥长度比 vi- ce 服务。
Service 运行在后台,一旦接收到客户 104 512 106 5∶ 1 108 768 132 6∶ 1 端发过来的请求,就开始逻辑分析,对客户端作出 1 011 1 024 160 7∶ 1 状态回应,并处理相应的请求,Service 的流程图如 1 020 2 048 210 10∶ 1 1 078 21 000 600 35∶ 1 图 2。
4 功能模块的实现 ECC 算法大大缩短了密钥长度,而且 ECC 算法加密解密速度快,特别是在私钥的处理速度上要比 利用 Java 语言 在 Eclipse 环 境 中 进 行
Android27 期 张 等: 富, 基于
Android 的个人云安全存储系统 7101 行用户登录验证,并设置了登录次数限制。
密码通 过单向散列算法形成摘要, xml 文件存储在应用 以 程序目录下,其他应用程序不能读取数据,即便通 过刷机获得了 root 权限,也只能取得不可逆的散列 摘要值,而无法获取密码明文,保证了密码的安全。
核心代码说明如下: 通过 MessageDigest 类获得摘要算法的实例,指 定摘要算法为高安全强度的“SHA—512”算法,并 用 update( ) 方法和 digest( ) 方法生成密码摘要,转 换为 16 进制字符串存储在密码文件中: MessageDigest alga MessageDigest. getInstance ( quot SHA—512quot ) ; 图1 客户端的功能框图 alga. update( password. getBytes( ) ) ; String hex toHex( alga. digest( ) ) ; 通过 Property 类 获 得 存 储 用 户 信 息 的 对 象, this. getDir( path,mode) 方法的作用是创建名为 path 的地方创建权限为 mode 的文件夹,用来存放密码 文件,MODE_PRIVATE 即私有模式,在此模式下创 建的文件具有最高安全性,其他任何应用程序都不 能访问该文件夹的内容。
Properties prop new Properties( ) ; File path this. getDir( quot systemquot ,MODE_PRIVA- TE) ; File file new File( path) ; 如果密码文件尚未创建则执行以下程序创建 文件,写入用户信息: if( ! file. exists( ) ) { FileOutputStream fs new FileOutputStream( p- ath) ; prop. setProperty( quot namequot ,username) ; prop. setProperty( quot passwordquot ,hex) ; prop. storeToXML( fs,null) ; fs. close( ) ; } 如果文件已经存在,则从 XML 文件中加载文 件,获得用户信息: else{ FileInputStream fs new FileInputStream( path) ; prop. loadFromXML( fs) ; 图2 Service 的流程图 String name prop. getProperty( quot namequot ) ; String password prop. getProperty( quot passwordquot ) ;软件 开 发, 中 JDK 版 本 为 1. 7, 其 Eclipse 版 本 为 fs. close( ) ;3. 7. 0,系统版本为
Android 2. 3。
if( name. equals( username) &&password. equals( hex) )4. 1 登录验证 return true; 如果匹配则验证成功; 使用 AlertDialog 布局作为人机交互的接口,进 else return false; 否则验证失败 } 7102 科 学 技 术 与 工 程 12 卷 自定义对话框的实现如下,先自定义了一个对 听事件核心代码说明如下。
话框布局 文 件, 后 根 据 自 定 义 的 布 局 创 建 对 话 然 重 写 onCreateContextMenu ( ContextMenu CM,框,在对话框的登录按钮点击事件里设置了允许尝 View v,ContextMenuInfo cmf) .