APP下载

基于新媒体写作数据保护的安全云存储系统

2023-07-01熊英琴

西安邮电大学学报 2023年1期
关键词:存储系统加密算法密文

熊英琴,刘 兆,韩 刚,罗 维

(1.商洛学院 人文学院,陕西 商洛 726000;2.西安邮电大学 网络空间安全学院,陕西 西安 710121)

互联网、移动端和智能手机的出现,改变了多媒体时代人们的生活方式、思维观念和价值体系,同时也改变了人们的写作途径。与传统写作相比,新媒体写作不仅具有内容个性化、呈现方式多样化、信息发布实时性和受众传播选择性等特点,还在多种应用场景下展现出交互性强、易全息化、可数字化及可网络化的优势。新媒体写作中海量的写作数据需要存放于云端,随着云计算技术[1-3]的发展,云存储作为一种在线存储模式,联结云状的广域网和互联网,是众多存储设备和服务器构成的集合体[4-5]。以数据存储和管理为核心功能的云存储系统,允许用户海量上传,可按需付费以降低使用成本[6]。然而,当云服务器受到恶意攻击或入侵时,数据的安全性便面临极大挑战。用户的照片、视频、音频,以及文字、文件、文稿和相关管理等数据的存储安全存在隐患。2016年,6 800万Dropbox账号密码被泄露完全暴露在公共网络上。2017年,亚马逊Web服务(Amazon Web Services,AWS)云存储系统宕机,使得Youtube、雅虎等无法访问服务。2018年,Facebook卷入了“史上最大个人信息泄露风波”,近5 000万用户的个人信息及资料被非法曝光。同年8月,腾讯云数据的丢失进一步使云存储安全问题引起了人们的广泛关注[7]。因此,将数据上传给云服务器时,如何保证数据的安全和隐私性尤为重要。

目前,众多云盘上传的数据实际仍是以明文上传,并未真正加密。在云端服务器上,数据可以被云服务提供商任意读取,而在数据上传的过程中,文件也有可能被窃取或篡改,无法有效保护用户的隐私数据[8]。以结合可搜索公钥加密和外包数据完整性验证的方案[9],从云计算的基础设施层、平台层和软件服务层等三层架构及内容层次讨论了安全问题,但难以解决可搜索公钥加密中陷门滥用、外包数据缺少审计追踪和复杂算法加大成本开销等问题。文献[10]通过密钥派生加密和数据分析,为物联网设备提供了安全的数据删除方案。文献[11]提出一种基于模逆性质形成的概率陷门方案,允许客户端搜索外包给云的大量加密数据。但是,上述两个方案是在数据上传前先通过算法进行加密,虽然保护了云存储系统中的隐私数据,并不能实现保证隐私数据安全的同时使系统轻量化高效运行。

针对上述问题,拟设计一种基于国密算法[12]的安全云存储系统。先利用嵌入在客户端软件中的SM4算法,对要上传的数据文件进行加密,再在服务器端利用SM2算法对SM4算法的对称密钥进行加密,并分配给客户端用户私钥,将私钥存放在数据拥有者的个人设备目录下。当文件经过加密变成密文后,再将密文文件上传到云服务器中,运用私钥口令从客户端软件对密文文件进行下载管理。当文件受到攻击或窃取时,攻击者无法解密密文数据,从而实现数据拥有者对上传文件的完整性和安全性。

1 基础知识

1.1 云存储技术

云存储是一种基于云计算的网络存储技术,可为数据用户提供巨大的存储空间,不存在空间以及系统升级和硬盘冷却等问题。云存储系统利用云端空间存放数据的方法,解放了本地空间有限的问题对用户的束缚。当新媒体用户在云存储系统中存入文件时,用户需要登陆云存储系统网页或客户端,向云存储系统上传需要保存的各种写作数据。

云存储系统主要分为存储层、基础管理层、应用接口层和访问层。存储层是云存储系统最基础的部分,光纤通道(Fibre Channel,FC)、网络附属存储(Network Attached Storage,NAS)和Internet小型计算机系统接口(Internet Small Computer System Interface,ISCSI)等网际互连协议(Internet Protocol,IP)存储设备均可在存储层作为存储设备使用,存储设备之上是一个统一的存储设备管理系统,可以实现存储设备的逻辑虚拟化管理、多链路冗余管理,以及硬件的状态监控和故障维护。基础管理层是云存储系统中最核心部分,通过集群、分布式文件系统和网格计算等技术,实现云存储中多个存储设备之间的协同工作,使多个存储设备可以对外提供一种服务,并提供更迅速更好的数据访问性能。云存储中存在的主要问题就是当用户将数据上传到云端时,无法对文件进行有效的控制,如果文件中包含有敏感的隐私数据,将会增加数据泄露后的严重性。

1.2 加密技术

加密技术是保护数据安全的重要方法,其能够按照一定的变换规则,对明文数据进行处理后转化为密文数据。若密文数据被截取,由于无法确定加密过程中所使用的密钥及算法,密文数据无法被恢复为源文件,因此可以有效保护密文数据的安全。加密技术分为对称加密和非对称加密,采用加密技术可以有效保证敏感隐私数据的安全性。

1.2.1 对称加密

对称加密算法是应用较早的加密算法。通信双方通过提前协商,确定此次过程中所使用的密钥,数据发送方将明文数据和加密密钥经过该算法的特殊处理后产生的复杂密文数据发送给数据接收方。数据接收方接收到该密文数据后,使用同样的密钥和该算法的逆算法对密文数据进行解密得到明文数据。在对称加密算法中,密钥只使用一个,加解密的过程互为逆过程。对称加密算法的优点是算法公开、计算量较小、加密效率高速度快,且破译较为困难,保密程度高,但密钥交换的安全性无法得到保证。因此对称加密算法常常适用于加密大量数据。目前,国际常用的对称加密算法有高级加密标准(Advanced Encryption Standard,AES)、数据加密标准(Data Encryption Standard,DES)以及三重数据加密算法(Triple Data Encryption Algorithm,TDEA)等,国内有SM4对称加密算法。

1.2.2 非对称加密

非对称加密算法也称为公钥加密算法,加密和解密的过程中使用了不同的密钥,分为公开密钥和私有密钥。公开密钥是对外开放的,简称公钥,私有密钥是仅仅为用户自身所知晓的密钥,简称私钥。公私钥是一对且相互匹配,数据被公钥加密后,只能使用对应的私钥才能够解密。信息的发送方与信息接收方在数据加密的过程中,不需要提前协商密钥,公钥是公开的,发送方和接收方都能获取公钥。发送方采用公钥对数据进行加密处理,接收方使用私钥进行数据的解密后获取到明文数据[13]。非对称加密算法的优点是算法复杂,解决了对称加密算法中密钥交换容易泄露的问题,保密性得到了提高。同时,非对称加密算法的缺点是加解密速度不如对称加密算法快,适用于少量数据加密的场景。

1.3 SM2椭圆曲线公钥密码加密算法

SM2算法[14]是非对称加密国密算法,属于椭圆曲线密码体制,基于椭圆曲线的离散对数难题。目前,SM2的256 bit 加密算法在商用密码算法中相当安全,相当于RSA算法在2 048 bit 及以上的安全性。SM2算法密钥有公私钥之分,公钥可以在一定范围内公开,私钥必须保密。由私钥可以轻易计算出公钥,由公钥计算私钥,相当困难。

1.3.1 SM2算法加密

假设信息发送方为Alice,将Alice准备发送的明文信息表示为比特串M,M的长度为l。接收方Bob的私钥取{1,2,…,n-1}中随机数dB,记为dB←R{1,2,…,n-1},n为基点G的阶,公钥取椭圆曲线上的点PB=dBG。SM2算法对明文信息M加密步骤如下。

步骤1选择随机数k∈[1,n-1]。

步骤2计算椭圆曲线点C1=kG=(x1,y1),将C1的坐标数据类型转化为对应的比特串。

步骤3计算椭圆曲线点S=hPB,倘若S点是一个无穷的远点,则报错并退出。

步骤4计算椭圆曲线点kPB=(x2,y2),将该点数据类型也转化为比特串表示。

步骤6计算C2=M⊕t。

步骤8输出密文C=(C1,C2,C3)。

1.3.2 SM2算法解密

SM2算法对密文信息C的解密步骤如下。

步骤1从C中取出比特串C1,将C1比特串转换为椭圆曲线的一点,通过计算验证是否满足椭圆曲线方程,倘若不满足方程报错并退出。

步骤2再次计算椭圆曲线点S=hC1,如果点S是一个无穷远点,那么报错并退出。

步骤3计算dBC1=(x2,y2),将点的坐标数据类型再次转化为比特串。

步骤5从C中取出比特串C2,计算M′=C2⊕t。

步骤7输出明文M′。

1.4 SM4分组密码算法

SM4算法[15]主要用于无线局域网鉴别和保密基础结构(Wireless LAN Authentication and Privacy Infrastructure,WAPI)分组密码算法,是2006年国家密码管理局公布的国内第一个商用密码算法。SM4算法的数据分组长度为128比特,密钥长度为128比特,其加密算法和密钥扩展算法都使用了32轮非线性的迭代结构,以字节(8)位和字(32)位为单位进行数据处理。

1.4.1 基本运算

SM4算法具体包括模2加和循环移位两种基本运算。1)模2加。记为⊕,表示32位逐比特异或运算。2)循环移位。记为<<

1.4.2 基本密码组件

1)S盒。S盒是以字节为单位的非线性替换,其密码学作用是混淆,为固定的8比特输入8比特输出。设输入字节为a,输出字节为b,则S盒的运算可表示为b=S(a)。

B=(b0,b1,b2,b3)=τ(A)=(S(a0),S(a1),S(a2),S(a3))

C=L(B)=B⊕(B<<<2)⊕(B<<<10)⊕(B<<<18)⊕(B<<<24)

4)合成变换T。设输入为字X,先对X进行非线性τ变换,再进行线性L变换,则合成变换记为T(X)=L(τ(X))。

1.4.3 轮函数

F(X0,X1,X2,X3,r)=X0⊕T(X1⊕X2⊕X3⊕r)

1.4.4 加密算法

1.4.5 解密算法

1.4.6 密钥扩展算法

在SM4算法中,轮密钥的产生是通过用户选择主密钥作为基本的密钥数据,然后通过一些算法生成轮密钥。在密钥扩展的过程中,通常会通过一些常数对用户选择的主钥进行操作,增加随机性。

2 安全云存储系统设计与实现

2.1 系统总体架构

采用国密算法提高加密过程的安全性,核心思想是在系统客户端中嵌入加密算法对设备本地和云盘内部的数据进行加密。文件在上传的过程中均为密文,其他用户没有密钥无法解密这个加密的文件,只有本身具有公私钥的用户才能对加密后的密文文件进行解密操作,通过该方式从而实现数据安全。

基于国密算法的安全云存储系统架构基于C/S架构设计,分为客户端和服务端两部分。服务端分为认证服务器、文件服务器和证书授权(Certification Authority,CA) 服务器。客户端是将设备本地的数据文件进行加密后上传到服务端上,使用者的公私钥存在于本地的客户端中后,才能被授权解密操作。具体系统架构示意图如图1所示。

图1 系统架构示意图

系统中的加密过程为:上传文件前使用SM4对称加密算法对大文件进行加密,之后将加密后的文件上传到云服务端上,使用SM2非对称加密算法对SM4的密钥进行加密生成数字签名,私钥存放于本地目录中,当用户想要使用加密的文件时,需要先下载加密后的密文文件,使用本地SM2私钥对数字签名进行解密后得到SM4的密钥,然后再使用SM4的密钥对密文文件进行解密操作。

将客户端和认证服务器、文件服务器以及CA服务器相结合,其作用是用于授权用户的登录、登录用户的上传或下载个人文件和新用户申请个人数字证书。认证服务器的作用是用来认证登录用户的合法身份。文件服务器主要存储用户上传的文件,对用户提交的请求做出相应的操作,并对其返回相应的查询请求结果。CA服务器作用于接受、审核新申请用户的个人数字请求,当用户审核通过颁发给用户可使用的数字证书。

移动设备使用该安全云存储系统授权用户发出加密文件后上传到服务器,下载文件及实现数据共享使用搭建的云服务端。服务器用以存储加密后的密文数据,其是一个可搭建的云存储平台,开发者可以自己搭建一个云存储系统。

2.2 系统实现模块

安全云存储系统负责文件的加解密操作,用户登录进入系统中。该系统使用对称与非对称加密算法相结合的方案对本地数据和算法密钥进行保护,并借助公钥基础设施(Public Key Infrastructure,PKI)系统完成数据完整性认证和数字签名功能。安全云存储系统总共实现了登录模块、文件列表模块及图库功能模块。

2.2.1 登录模块

登录模块的实现采用自身定义的Activity进行设计,在Activity.xml文件中添加定义方向的属性设置,内部添加输入框、输入账号和密码,用户没有账号需要提前申请注册,注册后的信息会推送到一个特定的邮箱中,系统管理员通过查看邮件审核账号的申请需求。同时,在密码框后面位置设置按钮用以显示或隐藏密码,服务器的地址如果发生改变,需要用户手动修改IP地址访问服务端的端口。

云存储系统提供接口管理本地文件和云端文件,用户注册云盘账号,管理员授权用户使用云服务,CA认证中心给用户颁发数字证书,用以证明证书中列出的用户合法拥有证书列出的公开密钥,用户导入根证书、用户证书和私钥文件,而SM4对称算法和SM2非对称加密算法结合的方法使得密钥难以被窃取,能有效保护云存储系统上的关键数据。用户具体注册步骤如下。

步骤1点击云存储系统中主界面的注册按钮,输入注册信息进入界面。

步骤2在注册信息界面中,输入用户名、邮箱地址、密码及确认密码,点击注册按钮提交注册信息。

步骤3注册完成并通过管理员审核后,运行云存储系统客户端,输入用户名和密码,点击登录按钮登录云存储系统的云盘目录。

2.2.2 文件列表模块

文件列表模块包括文件功能预览、文件加解密和列表菜单功能。文件的列表是云存储系统的第一个子界面,用户被授权拥有云服务后,系统会显示给用户界面用以交互数据,该界面的功能主要是用列表的形式展现文件结构以及文件的具体内容。

文件功能预览需要将所有的文件显示在移动设备的界面上,因此界面的实现采用ListView作为云存储系统客户端的整体布局。在系统界面布局的xml文件中添加横向LinearLayout,用以作为界面的功能菜单。界面的功能菜单共设计了11个部分,分别为查看全部文件、查看动态、收藏、照片、已共享、在设备上的文件、通知、自动上传、上传、系统设置、系统证书和私钥。

文件加解密是安全云存储系统的核心功能,在上传准备前,程序在文件上传的接口处嵌入了SM4和SM2算法,在上传前对其进行加密,生成密文文件。上传准备过程主要是对上传文件进行相应的逻辑梳理和数据检测,通知服务器上传的内容。将加密后的密文文件根据路径封装成File对象并记录文件名称,通过Length对象方法获取文件具体大小,同时根据当前文件所处的目录路径,将打开文件列表保存的id和服务器对其文件检测后获取到的数据拼接为Key-value形式,发送到服务端,通知服务器端准备接受密文文件。当服务器做好接收文件的准备时,会向客户端程序返回数据,包括此密文文件的大小以及上传的大小,在设备的本地可以通过比较文件的大小判断文件是否已经上传成功,当上传成功时,文件列表属性中会增加一个新的文件,新的密文文件和未被加密的文件名称前缀一样,但文件的后缀不同,加密后的文件以enlock字符显示。文件的具体操作如图2所示。

图2 文件操作

列表菜单功能实现了对文件具体的操作,用户与屏幕交互使用菜单功能对文件进行删除、打开、重命名、动态、分享、移动和复制等功能,用户只需要点击本地程序的菜单选项,然后客户端向服务器端发送相应的请求,服务器端会接收到其发送来的请求并进行相关操作,成功后,用户刷新客户端程序,文件的操作就会被实现。

当实现删除文件功能时,在服务器云端列表中点击选中文件,选择删除,本地通过验证选择的position,然后在列表集合中定位到此对象,拿到该对象的id将其作为请求参数传递给服务器的删除文件的接口。服务器端成功删除文件后,设备本地的程序会根据当前所在目录的id,访问服务器端云端的文件列表,然后获取到删除后的新的数据,对其进行解析,以完成文件删除的操作。

2.2.3 图库功能模块

为方便新媒体写作的图文编辑,特设置图库功能模块。安全云存储系统的应用程序图库功能在主界面的一级界面中,方便用户主动浏览。图库功能的实现经过了两个核心功能,一是服务端首先会将获取到的图片按照上传的时间进行分组整理,二是将整理好的图片数据的集合通过ListView仿照网格的形式进行相应的展示,显示正确的分组名字,以及相应上传的具体时间。微博、微信和美篇等媒体平台推文少不了精美图片,图片库不仅实现了新媒体写作的素材储备,也方便用户进行文件操作。

3 系统测试

3.1 测试环境

根据安全云存储系统在移动设备上的需求,系统开发的可定制、易扩展和易安装等特点,对所设计的安全云存储系统的各个模块进行相应的功能测试,验证各模块是否能够正常运行并达到设计要求。客户端是在Android 9.0上结合Android Studio软件,使用Java编程语言和Android APIs开发包进行实现,测试的方法主要是模拟用户的操作进行软件测试,测试环境为Google Pixel3。服务器是在Linux Ubuntu 16.04平台上搭建开发,使用Java和PHP语言开发的Web工程,实现与客户端数据的共享与下载。

3.2 系统功能测试

3.2.1 客户端主界面及登录功能

当界面启动后会显示用户登录界面,在对应的输入框填入相应的登录账号及密码。新用户使用系统时,需要注册新的用户账号,通过邮件发送到服务器端,管理员通过审核后被授予使用云服务。系统登录界面如图3所示。

图3 系统登录界面

3.2.2 客户端文件列表模块

当用户登录成功后,客户端会进入文件列表界面,如图4所示,列表中包含云存储系统文件的具体时间以及云端所包含文件的大小。

图4 文件列表

点击系统中右上角的按钮,对云端的文件进行信息查看和操作。当用户选择某个文件上传操作时,需要在移动设备的本地目录中选择需要上传的文件,同时选择系统所提供按钮中的具体操作选项,其中核心是文件的加密上传和文件解密。具体操作分别如图5和图6所示。

图5 文件操作

图6 选择目标加密文件

对云存储系统的文件加密及上传功能进行测试,当选择加密上传后,云存储系统会对选中的文件进行加密处理,分别如图7和图8所示。

图7 执行加密操作

图8 文件加密成功

如图7所示,选择预加密的文件后,点击程序右边文件操作按钮,该按钮集成打开、删除、加密上传和文件解密等功能。选择加密上传按钮,程序会对选中的文件进行加密操作并将加密后的生成密文后缀为.enlock的密文文件上传到服务器端。

上传一个后缀为.enlock的密文文件,如图9所示,其他用户无法直接打开该文件,即使修改该文件的格式也无法打开,加密算法会将其加密成一个乱码的文件,没有系统中对应用户的私钥无法解密该文件,因此加密上传操作有效增强了云盘存放文件的安全性。

图9 密文文件生成

客户端的文件下载以及解密功能测试实现了将密文文件下载到客户端本地目录的功能,并且能对密文文件进行解密,恢复出明文文件。

将后缀为.enlock的密文文件下载到系统所提供的本地目录路径,然后对.enlcok文件进行具体的解密操作,分别如图10和图11所示,在解密成功后,.enlock文件会恢复成原始文件。

图10 选择密文文件

图11 执行解密操作

如图11所示,选择预解密的文件后,点击程序文件操作按钮,该按钮和加密上传的按钮功能一样,并提供文件解密功能。选择文件解密按钮,程序对选中的后缀为.enlock的密文文件进行解密操作恢复出明文,服务器中会出现恢复出的明文文件。

经测试,上述加解密功能运行良好,各部分运行结果分别如图12和图13所示。

图12 输入私钥口令解密

图13 解密成功

3.2.3 图库模块

该功能实现了用户可将设备本地的图片上传到云端,具体查看图片的格式、大小,进行相应的下载、查看、分享和删除操作。用户切换到图库界面时,如图14所示,可以看见系统中会根据图片具体的上传的时间进行分组展示,并且按照网格的形式显示图片的预览图,每一组具体的图片均有详细的上传时间。该界面的图片上传下载和文件上传下载功能一样,共用一个模块。经测试,该功能可以正常实现。

图14 图片操作界面

3.3 系统安全性对比

在实际应用中,对新媒体写作数据进行系统上的安全保护,需要考虑数据的存储安全、是否被暴露在通信传输过程中、加解密算法安全以及是否具有签名认证机制防篡改。分别将所设计的安全云存储系统与文献[7]、文献[12]和文献[15]进行系统安全性对比,结果如表3所示。

表3 不同系统安全性对比

由表3可以看出,所设计的安全云存储系统同时具有数据分布式存储、密文传输数据、SM2和SM4算法结合机制以及具有签名认证机制等功能,相比于文献[7]、文献[12]和文献[15]所提出的系统具有一定的优势。

4 结语

针对新媒体写作云存储环境中的数据安全问题,结合国密算法和云存储技术,设计了一种安全云存储系统。该系统将密钥存放在用户的个人本地目录中,通过对称加密和非对称加密相结合的方法在数据上传前进行加解密操作,保证了数据是以密文形式存储在云端。测试结果表明,该系统能够有效保护移动设备以及云端的数据,确保新媒体写作数据的完整性、保密性和安全性。

猜你喜欢

存储系统加密算法密文
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
分布式存储系统在企业档案管理中的应用
天河超算存储系统在美创佳绩
一种基于密文分析的密码识别技术*
基于小波变换和混沌映射的图像加密算法
华为震撼发布新一代OceanStor 18000 V3系列高端存储系统
一种基于STM32的具有断电保护机制的采集存储系统设计
云存储中支持词频和用户喜好的密文模糊检索
Hill加密算法的改进