一种轻量化文件远程备份方案的设计与实现

2020-10-22 01:31刘庆俞伍珍珍
湖州师范学院学报 2020年8期
关键词:数据备份私钥解密

刘庆俞, 伍珍珍, 刘 磊

(1.淮南师范学院 计算机学院, 安徽 淮南 232038; 2.淮南师范学院 信息化建设与管理处, 安徽 淮南 232038)

0 引 言

随着数据安全问题越来越受到人们的关注,作为一种高效安全的数据安全防护手段,数据容灾及远程备份技术也越来越受到研究者的关注[1-2].数据远程备份技术涉及数据的存储、传输和还原各个环节,对数据的安全性、完整性和一致性有很高的要求[3-4].依托数据加密和Rsync[5]等技术的发展,数据远程备份技术已发展得十分成熟,不仅能够为用户提供差异化的备份方案,还借助高性能硬件设备和高带宽支持,极大地满足了数据备份效率和数据还原及时性的需求.众多互联网企业纷纷推出自己的商业化数据备份方案,如亚马逊公司的Amazon Cloud Drive[6]运用差异化数据检索技术,在存储效率和数据安全性方面表现良好;以阿里巴巴公司为代表的各类云存储服务,不仅能为用户提供免费的云存储空间,还能为第三方提供一些接口进行定制化开发.此外,IBM推出了支持数据量高速增长的ESS;EMC公司推出了应用同步复制技术的SRDF[7];赛门铁克BE公司使用了ReplicationManager[8]技术.

这些企业级的商业化数据远程备份方案为用户提供了多种数据备份选择,具有安全、高效和快捷等优点.但这些方案也存在硬件依赖高、功能使用率低和成本高昂等问题,超出了对备份业务量需求较少、备份速率要求不高、成本投入较低的普通用户的数据备份需求.本文设计的数据备份方案关注的核心问题不是以实现数据实时恢复机制为目的的,其核心内容主要包括:为用户提供以数据多点备份为核心业务的轻量化数据备份系统;保证用户数据的安全性;降低用户对硬件性能的依赖性.

为满足普通用户的非专业级数据备份需求,本方案引入GnuPG软件[9]和基于文件系统的用户操作状态监测技术[10],重点解决数据安全性和系统运行效率方面的问题.一方面,GunPG是一种开源加密软件,使用非对称加密算法安全程度较高,能够满足普通用户的数据安全性需求;GunPG采用的加密前数据压缩技术及自身的轻量化框架,使其即使运行在普通性能的设备上,数据加/解密速率仍相对较高,能达30 MB/s左右.另一方面,基于文件系统过滤驱动的文件状态监测技术,能够对用户的文件操作状态进行监测并分类处理,减少由于文件重命名、移动等操作造成的不必要备份,极大地降低数据备份量,提升数据备份效率;本方案采用树莓派[11](一种卡片式微型电脑)和移动硬盘柜作为数据备份服务器的硬件载体,可以满足用户的数据备份需求,极大地降低系统的硬件成本.

针对本方案在数据加密、数据传输和数据备份管理方面的主要技术内容,Python能够通过丰富的第三方开发库予以功能支持,且树莓派原生支持Python程序的运行.因此,采用Python语言实现本方案轻量化的系统研发,具有易实现、易部署和易管理的特点.

1 方案总体设计

1.1 术语定义

(1) 工作目录Dir_work:{f1,…,fn}:包含用户在客户端上的实际工作文件.

(2) 备份目录Dir_backup:{f′1,…,f′n}:包含备份服务器端上的备份文件.这些文件是已经加密的Dir_work中的文件.

(3) 文件信息列表Table_work:{name,type,directory,md5}.

(4) 备份数据信息列表Table_backup:{List_create,List_delete,List_update, List_rename, List_move}.

(5) 新增数据列表List_create:{name,type,directory}.

(6) 删除数据列表List_delete:{name,type,directory}.

(7) 修改数据列表List_modify:{name,type,directory}.

(8) 重命名数据列表List_rename:{cur_name,ori_name,type, directory}.

(9) 移动数据列表List_move:{name,type,cur_dir,ori_dir}.

上述术语中,name表示目录或文件的名称;type表示目录或文件的标识;directory表示目录或文件的存储路径;md5表示文件的md5值.

1.2 数据备份流程

如图1所示,系统采用C/S架构设计,包括客户端和备份服务器端两部分.客户端和备份服务器端上分别配置Dir_work和Dir_backup,两者的目录结构保持一致.客户端负责维护Table_work,其存储内容是Dir_work中文件的详细信息.系统完成一次完全备份后,后续备份采用增量备份方式.为减少每次备份的数据量,系统采用在操作系统层面对备份目录和文件进行用户操作状态监测技术,并对目录文件的重命名、移动,以及增加、删除和修改两类操作进行分类处理,分别生成List_rename、List_move,以及List_create、List_delete和List_modify,并最终生成Table_backup.在数据备份阶段,系统根据Table_backup进行数据的增量备份,以有效降低数据的重复备份.本文采用的增量备份方式是在上一次备份的基础上对变化的数据进行备份,其最小的备份单元是独立的文件,不是文件中仅修改的内容,即如果文件内容发生变化,则以修改后的完整文件作为一个备份单元进行数据备份.

本方案的客户端和备份服务器端分别由多个独立的功能模块组成.其中,客户端包括文件状态监测模块、数据加解密模块、数据备份管理模块和数据传输管理模块;备份服务器端程序包括数据存储管理模块和数据传输管理模块.由于本文对数据的备份管理没有设计复杂的操作流程,功能较简单,因此本文将重点介绍文件状态监测模块、数据加/解密模块和数据传输管理模块的相关设计内容,以及对应的Python第三方开发库.

1.3 文件状态监测模块

本文在操作系统层面利用文件系统的I/O管理特性,对目录及文件状态进行实时监测,包括新建、删除、修改、移动和重命名等操作.Windows和Linux操作系统可通过文件过滤驱动技术实现对文件的状态监测,且提供api接口支持二次开发,对应的Python第三方开发库包括os模块中的win32file包、win32con包、win32event包,以及watchdog模块和inotify模块等.其中,watchdog模块具有跨平台、api函数种类能直接涵盖文件的常用操作等优点.因此,本文采用watchdog模块实现对文件的状态监测.

在watchdog模块中,observer类负责文件变化的监控,并触发对应的事件类event,通过调用关联的事件处理类来处理事件.observer类似threading.Thread的子类通过observer.start()使之运行在一个独立的线程中,不会阻塞主进程运行,然后调用observer.stop()停止该线程.Event类能够监控的事件包括created、deleted、modified和moved,其中重命名操作和移动操作由moved事件类型处理.文件状态监测流程如图2所示,客户端程序通过新建多个监视对象和事件处理对象可以同时对多个目录进行监测,一旦监测到目录及文件操作事件,程序会进行相应的处理操作,并生成事件条目添加到对应的List_create/delete/modify/rename/move中.

1.4 数据加/解密模块

本文采用数据加密方式保证数据在传输阶段和备份服务器端存储时的安全.目前,数据加密算法主要分为对称加密算法和非对称加密算法[12]两种.其中,常见的对称加解密算法有AES、3DES等,其性能很高,每秒钟可加/解密100 MB或更多的信息.但由于在对称加解密算法加密时需要密钥key,为方便自动化操作,需要在客户端存放密钥key.一旦客户端被入侵,密钥key泄漏,则所有加密的备份文件都可被解密而导致信息泄漏.常见的非对称加解密算法有RSA、ECC等,其加密/解密的性能比对称加解密算法慢2~3个数量级.但非对称加密算法除了具备简单的加/解密功能外,还可完成数字签名、身份认证等工作,被广泛应用于各个领域.

GnuPG(GNU Privacy Guard)是一种依照IETF订定的OpenPGP[13]技术标准设计的,以非对称加密算法为基础的数据加密软件,是PGP加密软件为满足GPL[14]的替代物.GnuPG在数据加密方面具有部署轻量化、加/解密效率高和应用跨平台等特点.本文采用GnuPG基于Python的二次开发库Python-gnupg实现对文件的加/解密功能.如图3所示,在GnuPG软件框架中,除了加/解密服务器外,还有密钥管理服务器,其负责生成并管理每位用户的公/私钥,一般以独立的服务器进行部署.但本方案主要面向个人用户,为简化方案的框架结构,采用在客户端部署密钥仓库的方式生成和管理用户的公/私钥.GnuPG软件的操作主要包括以下几个主要步骤:

(1) 安装GnuPG软件,生成私钥和公钥.对应的私钥通过密钥加密存储,用户需要记住私钥保护密码.

(2) 以文件形式导出私钥和公钥.此过程会生成3个密钥文件,分别是secret-keys、secret-subkeys和public-keys.其中,secret-keys是主密钥和子密钥私钥;secret-subkeys是子密钥私钥;public-keys是两者的公钥,可以公开.

(3) 在客户端导入公钥文件,用于文件的加密.

(4) 在客户端导入私钥文件,用于文件的解密.

1.5 数据传输管理模块

本方案客户端和备份服务器端间的数据传输管理模块主要采用FTP技术设计实现.由于担当备份服务器的树莓派搭载的是Linux操作系统,因此使用较常用的vftpd软件进行服务器部署.备份服务器端在配置并开启ftp_server服务后,可接收客户端传输的备份数据;客户端程序通过Python第三方开发库ftpdlib设计实现.

为提升方案的整体数据网络传输效率,数据传输管理模块还引入服务器互备和数据断点续传技术.其中,服务器互备技术可解决一个客户端对多个备份服务器数据备份情况下的数据集中传输问题.如图4所示,客户端每次发起备份请求时,仅需选择一台备份服务器进行一次数据备份,备份完成后,这台备份服务器可在业务空闲时向其他备份服务器进行数据互备.这种设计能够有效地减轻客户端的数据备份压力,提升系统的整体备份效率.

断点续传技术可解决节点间数据备份过程中的异常中断问题.本方案以独立文件为备份单元,客户端和备份服务器间通过Table_backup可实时记录文件备份状态,当异常中断发生时,客户端程序记录异常点备份文件的信息,待异常解除,以此文件开始继续执行后续备份业务.服务器间进行数据互备时,参照Table_backup设计备份数据明细表,以恢复异常中断后的数据备份业务.

2 系统实现与性能分析

本方案是面向普通用户的非企业级数据备份需求,因此在保证系统整体备份性能的基础上,为减少系统对硬件的依赖性,降低硬件成本,备份服务器采用树莓派挂载大容量移动存储予以实现.图5是系统的备份服务器硬件框架,其中树莓派卡片式微型电脑可搭载多种版本的Linux操作系统,具有多种类型的数据传输接口,功能完备,性能优良.最新版的树莓派4B版本,具备高性能64位四核处理器、4 G内存、千兆以太网接口和USB 3.0接口等配置,能够满足作为备份服务器的硬件性能需求.对数据备份所需的大容量存储,本方案采用树莓派通过USB 3.0接口挂载移动硬盘柜予以满足.这种硬件配置方案所需成本大约为3 000元,相比一般配置的业务服务器数万元的价格,这对普通用户来说是一种极其廉价的选择.

对原型系统在数据加/解密速率和备份传输速率两方面的性能进行测试,结果表明,影响数据加/解密速率的主要因素是文件数量和加密私钥长度(GnuPG的私钥长度包括1 024位、2 048位、3 072位和4 096位4种);影响备份传输速率的主要因素是文件数量.

测试环境中的客户端硬件配置为:Windows7操作系统,双核CPU,4 G内存.GnuPG软件版本为2.0.22.客户端与备份服务器端之间为100 Mb/s网络环境,采用的网络流量测试工具为BWMeter,版本为8.4.1.为保证测试的一致性,测试方案中的备份数据总量始终设定为10 GB.

系统在不同文件数量S(为方便图表的显示,取log10S值为横坐标)和私钥长度下的数据加/解密速率对比结果如图6所示.由图6可知,备份文件的数量和加密密钥长度会影响系统的数据加/解密速率.随着文件数量的增加,数据加/解密速率呈下降趋势;随着私钥长度的增加,加/解密速率也会受到较大的影响.

系统在不同文件数量下的数据传输速率对比结果如图7所示,随着文件数量的增加,数据的网络传输速率下降很快.

造成以上情况的原因,主要是由于文件在加/解密及网络传输的过程中,打开和关闭操作会消耗大量的时间.因此备份文件的总数量是影响系统整体性能的主要原因.为保证在系统安全的前提下充分提高系统的整体性能,GnuPG软件的文件加/解密私钥长度选择1 024位或2 048位较合适;通过备份算法的改进尽可能减少备份文件的数量,以提升系统的数据加/解密速率和网络传输速率.例如,本文采用将5种文件操作事件分类处理的方式,通过仅对未发生数据内容变化(即重命名和移动)的文件信息备份操作日志的方式,就可大幅降低备份文件总的读写次数,减少备份数据的总量.

3 结 语

远程备份作为数据安全防护的一项重要技术已得到广泛应用.本文聚焦普通用户的非专业级文件备份需求,重点在安全、效率和成本方面展开研究,提出一种轻量化远程数据备份方案.该备份方案具有以下优点:在密码学基础上,利用数据加密技术有效解决了文件备份中数据在存储及传输环节的安全问题,并通过文件状态监测技术实现对文件的差异化备份,提升了系统的整体性能;以Python脚本语言设计实现,依托其丰富的第三方开发库为系统各模块提供支持,系统具有易实现、易部署和跨平台等特点;采用“树莓派+移动存储”方式作为备份服务器,不仅实现了系统的灵活扩展,还极大地降低了硬件成本.因此,该解决方案具有一定的应用推广价值.

猜你喜欢
数据备份私钥解密
清扫机器人避障系统区块链私钥分片存储方法
泉州高速公路收费系统远程数据备份研究
比特币的安全性到底有多高
海洋数据备份平台的设计和实现
Spatially defined single-cell transcriptional profiling characterizes diverse chondrocyte subtypes and nucleus pulposus progenitors in human intervertebral discs
炫词解密
程控交换机的数据备份与恢复技术分析
解密“一包三改”
炫词解密
炫词解密