一种基于IBE加密技术的移动文件共享系统
2017-04-20刘雪冬龙毅宏
宋 深,刘雪冬,龙毅宏
(武汉理工大学信息工程学院,湖北 武汉 430070)
一种基于IBE加密技术的移动文件共享系统
宋 深,刘雪冬,龙毅宏
(武汉理工大学信息工程学院,湖北 武汉 430070)
在移动通信高速发展的今天,安全可靠的移动文件存储与共享服务对于企业和团体内部的信息交流显得尤为重要。本论文提出并实现了一种适用于企业和团体的基于IBE加密技术的移动安全文件共享系统,系统包括基于安卓的安全文件共享app,以及基于安卓web的无插件安全共享系统。经测试证明,本系统具有良好的性能,能在保证安全的前提下实现文件的共享。
IBE;安卓;安全存储
0 引言
近年来,随着移动通信与移动互联网的飞速发展,以智能手机为代表的移动终端发展速度惊人[1-5]。根据艾媒咨询(iiMedia Research)调查数据显示,截至 2016年第一季度,中国手机网民规模已达到6.9亿,其中智能手机用户为 6.24亿,平均每十个人中就有一个人拥有一部智能手机。由于智能手机的普及量越来越高,以及智能手机的处理能力越来越强大,所以越来越多的人开始使用手机处理部分工作。尤其对于企业和公司内部,时常需要在移动端查看并共享敏感文件[6-10]。当前市场上已经有一批优秀的云存储产品,例如亚马逊云服务、SkyD-rive、百度云和阿里云等等。但是这些产品基本都属于服务大众的公共云,而不是针对企业和团体而设计的,并且普遍偏向于高速大容量的存储服务,而对文件的安全性没有足够重视。而2014年杭州奕瑞公司推出的“隐形云”加密云盘,其加密的密钥只有8-12位字符,安全性不够强,可能会遭到暴力破解[11-12]。密钥管理也是由用户自己操作,相对比较麻烦,一旦遗失容易造成较大损失。而且没有对文件的访问权限制定详细的控制方案。
所以,针对企业和团体之间的移动安全文件存储和共享,本文研究并开发了一种基于IBE加密技术的移动安全文件系统。根据分析与实验结果,本文提出的系统具备优良的伸缩性,能够在保证安全的情况下实现文件信息的高效共享。
1 系统设计
本文所设计的系统是一种向企业和团体内部用户提供文件的安全共享服务的系统,同时采用了客户端/服务器模式和浏览器/服务器模式,有服务端的文件共享服务器和用户端的浏览器、本地代理、和文件共享客户端组成。用户在安卓设备上通过客户端或者浏览登陆本系统,可以将需要共享的文件上传到共享服务器,供组织内部其他用户浏览、下载。
对于保存在文件共享系统中的涉及保密、敏感内容的文件,本系统将采取一定的保护措施。目前在国内外对文件的保护研究主要着力在两个方向,一是对文件进行适宜强度的加密,二是对文件进行严格地访问控制[13]。比如,由文件共享系统的管理员或文件上载用户设定共享文件的访问控制规则(即权限设置),由文件共享服务器控制只有某个部门人或具有某种特定职务(角色)的人员才能访问文件共享服务器中的共享文件(比如某个文件目录下的文件)。进一步地,对于涉及保密、敏感内容的文件,可在访问控制的基础上对保存在文件共享服务器上的文件进行加密,从而进一步提高对共享文件的安全保护强度,比如,由文件共享服务器对保存在服务器上的文件进行加密,当授权的人员访问共享文件并进行操作时,包括下载或在线打开文件时,由文件共享服务器对文件进行解密处理。
但是,以上所述这种常用的访问控制和文件加密方案是无法防止具有设置文件共享系统的文件访问控制规则权限的管理员通过修改针对共享文件的访问控制规则从而非法取敏感、保密文件的行为的,比如,通过临时修改文件的访问控制规则从而使得自己能够访问敏感、保密文件。
所以本论文提出并实现了一种既能防止来自外部对共享文件的非授权访问,又能防止来自内部的对共享文件非授权访问的移动安全文件共享系统。下图1显示了系统的整体框架设计。
图1 系统整体框架Fig.1 System Framework
1.1 访问控制方案设计
本论文的访问策略分为客户端策略和服务器策略,两种策略基于多种访问控制模型制订,联合控制着文件的使用权限。本论文结合 AES与 IBE(Identity Based Encryption)算法来对文件进行加密,简化了密钥管理的工作,并通过IBE的自动更新密钥功能提高了系统安全性。
为了避免访问控制机制单一,实现访问控制的精确高效,本系统结合以下多种访问控制模型来制订访问控制策略:
(1)基于用户的访问控制:指定具体用户拥有的权限,这种模型可以控制的细粒度最高,但是带给系统管理员的工作量也最大,常作为辅助手段。
(2)基于角色的访问控制(RBAC):将访问权限与用户的角色相联系,指定某个角色拥有某些权限。这样只要用户拥有某个角色就拥有了对应的权限,而不需要针对用户一一设置。由于角色与用户的职位相关,所以一般相对稳定[14-15]。
(3)基于用户组的访问控制:与RBAC类似,将访问权限与用户组相联系,指定某个用户组内的用户拥有某些权限。用户组是指多个用户组成的一个用户群,相比角色,用户组更加灵活,可以在部门内或者跨部门组建,也可以随时将用户加入或者移出用户组。
(4)基于属性的访问控制(ABAC):该模型将访问权限与用户的身份属性想联系。
本系统将以上多种访问控制模型根据各自特点结合起来使用,既缩小了制订策略的工作量,又实现了精确的访问控制。
为了避免系统管理人员修改服务器上的策略文件以达到为自己或他人非法授权进而解密文件隐患,本系统将文件的访问策略分拆为客户端策略和服务器策略两部分,分别由用户和系统管理员制订。
客户端策略包括个人策略和群组策略两种,个人策略由多组“明文个人标识+IBE 加密后对称密钥”的格式组成。群组策略可以指定两种权限:文件解密权限(Decrypt)、策略更新权限(UpdateSt)。文件解密权限指定哪些用户、角色或用户组可以解密文件,策略更新权限则指定哪些用户、角色或用户组可以更新文件的客户端策略。客户端策略由用户在上传文件时制订并写入到文件的头部中,其中个人策略写入到文件头部的前1024个字节中,群组策略则以“明文策略+AES加密后策略”的格式写入到文件头部第1024字节之后的部分中。
服务器策略由系统管理员在后台制订,写入到服务器上相应部门的配置文件中,指定哪些用户、用户组、角色或拥有某些属性的用户可以在某个部门的存储文件夹下进行文件操作。服务器策略定义的权限共分为 upload、download、update、delete四种,分别对应着如下的文件操作权限:
(1)upload:上传文件
(2)download:下载文件
(3)update:更新文件、重命名文件、重命名文件夹、新建文件夹
(4)delete:删除文件、删除文件夹
当接收到用户请求时,文件服务器会从配置文件中读取相关访问策略并依据用户的身份信息做出授权。这样即使管理人员通过修改服务器上的配置文件从而获取了下载文件的权限,但是由于无法修改文件头部内的加密客户端策略,因而也无法解密文件。
1.2 加解密方案设计
密码学上常用的加密算法有两类:对称加密算法和非对称加密算法。对称加密算法加密速度快,效率高,但是存在密钥管理分配较为困难等缺点。非对称加密算法加密速度相对较慢,但是密钥的分配管理较为简单,解密方可公布自己的公钥由加密方使用公钥进行加密,自己使用私钥进行解密[16]。因而在实际应用中,通常将两者结合起来使用,利用对称加密算法来加密文件内容等较大数据,然后使用非对称加密来加密对称加密算法的对称密钥。
本系统采用的就是利用AES算法对文件进行加密,然后使用基于身份标识的加密算法(IBE)对AES密钥进行加密。IBE的加密方基于用户的身份标识(如身份证号、手机号、服务器的域名或IP地址等)生成公钥从而加密数据,解密时使用自己的身份标识和密码向密钥服务器申请私钥,然后用私钥解密数据。IBE不需要复杂的密钥管理工作,不需要保存诸多加密公钥,有效地减小了系统的存储代价。本系统中的IBE加密调用了Java IBE密码模块完成,但是由于客户端在安卓移动平台,所以密码模块部分有所不同。对于解密,两端都需要连接密钥服务器获取加密所用标识对应的私钥,申请私钥成功后,私钥可以保存在本地,在私钥的有效期内,不需再度申请,系统解密时会自动使用。
针对加密后的访问策略与对称密钥的传输与存储,本系统将访问策略及对称密钥以一定的形式一起存放在加密文件的头部,然后上传到服务器,当需要使用访问策略或对称密钥时,直接从文件中读取出来。
为了能够方便地存储和读取访问策略和对称密钥,本系统针对共享文件设计了如下存储方案:在文件的头部开辟一个 4096节大小的空间,前面 17个字节用来存储加密标识以标识该文件是否已经加密,第18至第1024个字节(计1007个字节)用来存储用户上传文件时指定的可以解密文件的一个或多个用户的标识以及基于这些标识用IBE加密后的AES对称密钥。后面的3072字节中,先存储未加密访问策略长度及内容,再存储加密访问策略长度及内容,最后存储加密后对称密钥长度及密钥内容。其中未加密策略只在系统开发初期用来向用户展示策略时使用,系统的访问控制都是将加密策略解密后依照解密后的访问策略来进行的,因而可以防止不法用户通过篡改策略来进行提权攻击。加密的共享文件头部的具体结构如图2所示。
对于私人文件,由于不需要存储访问策略来进行访问控制,只需要基于用户的标识使用 IBE对AES对称密钥进行加密并存储在文件头部即可,私人文件的头部结构如图3所示。
针对文件的解密,由于解密运算较为耗时,为了避免给文件服务器造成较大压力,本系统设计了一个独立的密钥交换服务器与文件客户端进行交互来实现文件解密,主要交互过程如下:
(1)文件客户端提取加密文件头部的加密对称密钥和加密访问策略,并连同用户在身份服务系统中的账户名密码或者身份令牌一同发送到密钥交换服务器。身份令牌可以是由文件服务器签发的数字证书、SAML断言等。
(2)密钥交换服务器使用自己的IBE私钥解密出加密的对称密钥,并使用对称密钥解密出加密的访问策略。
图2 共享文件头部结构Fig.2 Structure of the header of shared file
图3 私人文件头部结构Fig.3 Structure of the header of personal file
3)文件服务器连接身份服务系统验证用户身份信息,并依据身份信息和访问策略验证用户的解密权限,若权限验证通过则将对称密钥基于用户的身份标识使用IBE加密后发送回文件客户端,若未通过则返回授权失败的响应。
4)文件客户端使用自己的IBE私钥解密出对称密钥,进而使用对称密钥解密文件。
2 安卓浏览器调用本地API的研究
本系统基于安卓web的文件客户端模块,是通过浏览器登陆系统进行共享文件的操作。但是由于浏览器能力和Javascript语言的限制,浏览器无法进行复杂的运算处理。因而当用户使用浏览器访问基于B/S架构的Web系统的时候,常常会产生调用本地API来实现相关功能的需求,比如在本系统中就需要调用本地的密码模块来加密和解密文件[17]。为了解决这个问题,各家浏览器厂商都提供了相关的控件和插件机制供开发者使用,较为通用的有IE的ActiveX、火狐浏览器的 Mozilla Plug-in、NPAPI,和 Chrome浏览器的 Google Native Client以及NativeMessage机制。但是这些技术普遍存在着以下的不足:
(1)各个浏览器提供的机制是不通用不统一的,而且浏览器所运行的平台各异,Windows、Linux、Unix、OSX系统对插件机制的支持也存在很大区别。
(2)由于安全和技术限制,插件机制调用本地API的能力往往是受到限制的,使得很多的本地API都无法调用,特别是大部分插件不支持移动系统。
(3)由于浏览器插件的安全隐患越来越严重,很多的浏览器都开始逐步废弃NPAPI等旧的插件机制。
为了避免以上所述的浏览器插件机制的种种问题,本论文提出了一种适用于安卓平台、面向Web的无插件本地API调用方案,以完成对本系统中所需的本地密码模块的调用。
本方案实现包括浏览器JSP页面、本地代理、以及Web服务器三个部分。本地代理程序运行在本地安卓设备上,通过在登陆JSP页面时,发送广播由安卓系统启动代理程序,然后本地代理程序将在安卓设备上创建一个指定端口的Http服务器。然后当安卓浏览器上JSP页面有复杂运算需求时,通过Http请求、Socket通信或 Ajax请求向本地该 Http服务器发送请求,并传递所需参数。然后本地代理接收到请求后,按Http协议解析出其中的调用参数,如调用的本地API名称、调用时所需的输入输出参数等,然后有本地代理完成对本地API的调用。
对于本系统,基于安卓Web的文件共享客户端,由于需要对文件进行加密解密等复杂的运算,所以需要采用该方案实现安卓浏览器对本地 API的调用。本系统采用了开源库 NanoHttpd搭建了一个轻量级的Http服务器作为本地代理程序,并将该部分直接集成在基于安卓的文件共享客户端中,在进行业务处理时,直接调用客户端的加解密模块进行处理,极大地避免了代码的冗余和重复开发。
3 结束语
本论文设计设计了一套基于用户身份信息,结合了访问控制模型、数据加密技术和权限分离机制的文件加密共享方案。该方案通过让用户和系统管理员一起制订访问策略来进行访问控制,既可以阻止外部非法访问,又可以防止系统管理员利用权限非法解密文件。此外对安卓浏览器调用本地API技术进行了研究,并设计了一种无插件的安卓web调用本地API方案。
[1]刘睿智, 孟繁义, 冯昆鹏, 等.一种用于无线移动通信终端的多频段可重构天线[J].新型工业化, 2011, 1(12): 108-112.
[2]孟文超, 段红光.GEO 多波束卫星移动通信系统多址方式选择的研究[J].新型工业化, 2013, 3(6): 57-60.
[3]张世红.基于地市级移动通信的数据仓库接口与ETL2设计[J].软件, 2015, 36(12): 216-219.
[4]孟祥雨, 李学军.智能手机军事化应用前景研究[J].软件, 2014, 35(4): 78-79.
[5]李艺琳.基于Android平台智能手机短信应用的研究与改善[J].软件, 2014, 35(9): 109-114.
[6]Qi Li, Jianfeng Ma, Rui Li, Ximeng Liu, Jinbo Xiong, Danwei Chen.Secure, efficient and revocable multi-authority access control system in cloud storage[J].Computers & Security, 2016,: 35-38.
[7]谭鹏许.云计算环境下安全分布式存储架构与容错技术研究[D].解放军信息工程大学, 2013.
[8]王君君.网络文件的分布式存储设计与实现[D].山东大学, 2014.
[9]Butler, Brandon.Nine free cloud storage options for small businesses[J].Network World (Online), 2014: 45-49.
[10]李慧.基于 MooseFS 的移动云盘系统的研究与设计[D].大连理工大学, 2014.
[11]焦永鑫.基于浏览器插件的网络钓鱼防范研究[D].吉林大学, 2011.
[12]龙毅宏, 唐志红, 刘旭.一种面向共享文件的文件加密系统[P].CN103916480A, 2014-07-09.
[13]Coyne, Ed, Weil, Timothy R.ABAC and RBAC: Scalable, Flexible, and Auditable Access Management[J].IT Professional Magazine, 2013, 153: 78-82.
[14]Hsing-Chung (Jack) Chen, Marsha Anjanette Violetta, Cheng-Ying Yang.Contract RBAC in cloud computing[J].The Journal of Supercomputing, 2013, 662: 146-147.
[15]具有权限管理的IBE系统的设计与实现[D].长春: 吉林大学, 2009.
[16]Priyadarshini Patil, Prashant Narayankar.A Comprehensive Evaluation of Cryptographic Algorithms: DES, 3DES, AES, RSA and Blowfish[J].Procedia Computer Science, 2016, 78: 155-157.
[17]龙毅宏.无需预先构建安全会话的本地API调用方法[P].CN104158856A, 2014-11-19.
Mobile File Sharing System Based on IBE Encryption Technology
SONG Shen, LIU Xue-dong, LONG Yi-hong
(School of Information Engineering, Wuhan University of Technology, Wuhan 430070, China)
Today, with the rapid development of mobile communication, it is very important for the enterprises to communicate with each other.In this paper, we propose and implement a mobile security file sharing system based on IBE encryption technology, which includes secure file sharing app based Android, and non-plug-in security sharing system based Android web.The test proves that the system has good performance and can realize file sharing under the premise of ensuring security.
IBE; Android; Secure sharing
TP393.08
A
10.3969/j.issn.1003-6970.2017.03.005
国家科技支撑计划项目(2015BAH17F03);国家科技支撑计划项目(2014BAH26F03)
宋深(1994-),男,硕士研究生,主要研究方向为信息安全。
龙毅宏,教授,博士,主要研究方向为信息安全。
本文著录格式:宋深,刘雪冬,龙毅宏.一种基于IBE加密技术的移动文件共享系统[J].软件,2017,38(3):22-26