加密网络环境下多节点文件同步系统的实践与研究
2018-01-20马今
马今
摘 要:为了实现公司各地节点之间的工作文档和数据文件的同步,公司实现了一个文件同步系统。论文介绍了该文件同步系统的运行环境和应用需求,探讨了加密网络对系统需求、设计方案的影响,进而采用大文件传输工具箱作为基础工具,实现了文件同步系统。同时,论文探讨了文件同步系统取得的成效。结果表明:加密网络环境下多节点文件同步系统能够满足企业的应用要求。
关键词:文件同步;加密网络;大文件传输
中图分类号: TP309 文献标识码:A
Practice and Research of File Synchronization System in Multi Node Encrypted Network
Ma Jin
(Beijing Primeton Yundong Technology.Co.Ltd., Beijing 100080)
Abstract: In order to realize the synchronization of work documents and data files between different nodes, a file synchronization system has been implemented. This paper introduces the running environment of the file synchronization system and application requirements, discusses the influence of network encryption system design requirements. File transfer toolbox as a basic tool, realizes the file synchronization system. At the end of this paper, the effectiveness of the file synchronization system is discussed. The results show that the multi node file synchronization system in the encrypted network environment can meet the application requirements of the organization.
Key words: File Synchronization; Encryption Network; Large File Transfer
1 引言
在公司的信息技術框架下,以数据库服务为基础的数据中心已经稳定运行多年。随着信息技术的日新月异,特别是大数据技术、地理信息技术、VR/AR技术等不断成熟,越来越多专业领域的应用开发团队加入到公司信息化建设中,共同参与数据的价值挖掘。然而,数据库服务不适合大数据量高并发查询,用户不断新增管理困难,数据访问难以审计监督等局限性逐渐显现。公司逐渐用数据服务总线为基础的服务中心,代替现有的数据中心对外提供数据服务,对基础数据的管理能力大大提升。
在初步完成了数据共享管理目标之后,公司的文件共享管理任务被提上日程。无论是通知、制度、规范的文本下发,还是电子工作文档的传递,再到异构的大量基础数据需要集中进行全网同步—公司急需在加密网络中实现各个节点之间的文件同步功能。
2 文件同步系统的建设背景和任务目标
经过需求整理,该文件同步系统应满足一下功能需求。
(1)同步的文件大小在数十k至数G(超过10G的文件采用异步机制共享)。
(2)文件的共享方可以自由选择共享给那些加密网内的节点。
(3)根据当前网络的带宽占用比例,自动调节传输速度,保证数据服务拥有足够带宽。
(4)在带宽不足以完成当前文件同步任务时,自动将任务切换为异步发送,待网络带宽空余再继续发送。
(5)发送完成后立即删除所发送文件的本地实例,以节省空间。
(6)任意节点删除或迁移本地接收到的文件实例,都不影响其它节点文件实例的存续。
(7)所有文件共享、子节点文件实例删除都留有记录供审计。
(8)所有文件传输、同步任务的起止时间都被监控,以便发现节点故障或通道失效,实时发出预警。
3 加密网环境介绍及其对系统设计的影响
通常情况下,网络系统安全与性能、功能是一对矛盾的关系,如果某个系统不对外界提供任何服务(网络断开)外界是不可能对其构成安全威胁的。但是,本加密网出于业务要求,不仅网络节点本身位于全国的省、市、自治区加密子网,还连接着各地公共服务部门的数据提供方和数据服务提供方。因此,无法采用网络断开的方式保证本加密网络的安全性。
在本加密网的实际环境中,首先对加密网的数据安全风险作出分析,统一规划,全面考虑;其次,统一配置、监管、管理各种技术,如虚拟加密网、文件加密技术、公钥基础设施(PKI)技术、操作系统底层技术、网络基础协议等;最后,加强制订了有关网络安全保密的各项制度和规范,制订自动化的考核机制并保证能够严格执行。这些安全机制的设计和实现都在文件同步需求产生之前,安全机制的存在为文件同步系统的设计实现造成了不小的挑战。
3.1 物理层数据存储安全机制
因为数据本身是绝密或者机密,所以本加密网对数据本身进行加密,杜绝存储介质非法读取、被盗、不安全替换、未脱敏丢弃等造成重要数据泄密的可能。没有密钥的情况下,数据是不能解密的;而密钥不存储在数据所在位置本地。endprint
3.2 网络层数据传输安全机制
网络传输的数据必须是二次加密,以防止非法监听、广播方式截获数据;同时将网络按照安全级别,在逻辑上划分成了不同的虚拟保密子网,不同保密子网的通信加密算法类型不同,由网关节点实现限于内存中的解密再加密任务。网关节点只允许相邻节点通过操作系统认证才能连通,不相邻节点通过防火墙杜绝穿透访问可能。从而将非法接入导致的安全风险范围限制在本节点范围内(省、市、自治区加密子网),杜绝风险扩散可能。
3.3 系统层用户接入安全机制
操作系统是所有计算机终端、工作站和服务器等正常运行的基础。根据操作系统应用环境对安全的要求不同,本加密网分别做出了安全管理。具体安全管理措施包括服务器物理安全、系统补丁管理、登录安全、用户安全、文件权限安全、打印安全、注册表安全、远程登录(RLS)安全、远程访问(RAS)安全、应用安全等。
以上每一层安全机制都要求本系统一一设计对应方案,以保证整个文件同步系统的顺利运行。
4 解决思路及系统设计原则
在这样的实际环境下,本次文件同步系统的设计目标:通过文件同步系统的搭建,实现本加密网络各地节点之间的文件同步功能,加强对文件的安全保护,提高涉密文件的管理水平,保证加密网的安全、稳定运行,保证文件同步系统的安全、稳定运行,能够通过国家涉密网络的例行检查,并遵循几项设计原则。
(1)功能性不影响安全。文件同步系统的需要高可用性的运行效果,但是任何影响安全性的功能设计将不能被接受。
(2)全方位实现功能、满足性能。功能和性能要求必須从全方位、多层次加以考虑,来确保系统适用性。
(3)易于使用,尽可能低的学习成本。最终用户对信息技术的了解非常有限,应该允许最终用户专注于自身业务,而非学习和使用本系统。
(4)易于实施、管理与维护。系统运行在加密网内,更多的维护次数会增加运维成本;更多的人工介入,也大大增加安全风险。因此低维护甚至零维护是本系统设计的重要原则。
(5)可伸缩性。系统目前的使用规模:全国各地省、市、自治区级别加密子网内的本系统二级单位,以及全国各地区、县、自治县级别加密子网内的本系统三级单位。由于全国各地的环境千差万别,系统整体建设周期将会进行两年时间。建设期间必须允许各个节点逐步注册上来,并立即投入使用。
(5)节约系统投资。在保障安全性、功能性、可用性、易用性的前提下,必须充分考虑投资成本,将国家利益始终放在第一位。通过认真规划设计,选择实现机制,达到解决系统投资的目的。
5 实践方案
为了能够充分听取专家意见,采纳兄弟单位的实践经验,公司成立了由科研单位和兄弟机构专家组成的委员会,共同设计实现本系统。经过为期半年的产品选型、原型实现、实景测试,系统选定大文件传输(BFT)工具箱作为基础开发平台。在实际操作中,系统主体框架主要抽取自BFT工具箱的三个工具:BFT Agent、BFT Server、BFT Console。其中,BFT Server为中心服务节点,集中管理传输代理节点信息、传输配置信息、日志记录等;BFT Agent为传输代理节点是文件传输任务的最小执行单元,负责监控指定的本地文件系统,可以发送和接受来自其它Agent或者其他文件数据源的文件;BFT Console为管理控制台提供友好的交互界面,使用Web化的控制台集中管理整个文件同步系统。
5.1 系统可用性
为保证系统可用性,杜绝网络故障、设备故障带来的单点故障,系统在全国五大区域分别部署了一套BFTServer中心服务节点。各区域的BFTAgent传输代理节点默认与本区域的Server进行通讯;一旦发现通讯失败或者无法侦测心跳,则自动跳转至邻近区域Server继续通讯。由于BFT Server中心服务节点之间实时共享配置信息,所以上述跳转基本上是无缝的,实践中对于最终文件传输任务的影响程度低于100ms级别。
5.2 异步节点一致性
一般情况下,分布式条件下异步节点之间的一致性是必须着重关注的问题,由于配置信息时延所导致的文件重复传输类错误会导致网络和存储资源浪费;而文件替换/覆盖请求如果因为删除和添加逆序则会直接导致文件写入后被删除,导致数据丢失。经过实践分析,发现文件大小是影响异步一致性的主要敏感因素。因此,针对不同的业务数据进行合理规划设计是必须注意。通过设置BFTAgent,可以减小文件锁、服务(配置)锁粒度,从而降低锁竞争带来的开销。例如BFTAgent在线状态,针对每个Agent配置一个分布式锁,更新在线状态必须获得Agent对应的锁。而对于文件传输记录这样的无状态数据无论在哪一个BFTServer都可以进行持久化存储在同一个数据库中,从而达到严格模式与混杂模式兼容的最佳效果。
5.3 会话控制机制
传输会话中存在两类角色,其中发送文件的Agent作为发送方,接受文件的另外一个Agent就是接收方。发送方首先会与接收方进行协商,建立一个用于传输的会话连接,会话建立成功之后,发送方把发送的文件一段一段地切分,切分的每一个数据段在建立好的会话上发送到接收方,接收方接受数据并验证,验证通过之后存储到本地,当接收方接受完成整个文件之后会发送一个回执到发送方,通知发送方文件已经完整无误的接受完成,可以进行后续处理。
6 系统获得的成效
6.1 分段传输
一个文件被切分为众多数据段,每个数据段分配一个文件的块号,通过块号可以准确无误地写入到接收方的临时文件中。当最后一个文件块到达接收方并写入文件成功之后,更改临时文件名,同时向发送方返回一个确认消息,通知发送方,所有文件块已经接收完成,发送方可以进行下一步操作。在传输过程中,每个数据段可以进行例如校验、加密、多线程I/O等。endprint
6.2 数据校验
如果说数据在传输过程中产生错误,错误的数据没有被发现,那么接收到的文件也就无法保障正确性。分段方式传输则可以定位和发现错误,保障文件内容的完整无误。文件传输在读取文件时,对已经读取的数据段进行编号并计算校验和,校验和、编号和数据段一同发送到接收方。当接收方接受完成之后校验,如果验证错误则立刻发送消息到发送方,发送方接收到这个信号之后会从出现问题的编号位置重新读取数据,并将I/O队列清空。
6.3 断点续传
BFT工具箱具备从断点位置重新传输的能力,而分段式的传输为断点定位和续传带来便利。例如文件发送第N块数据时,连接被断开或者会话异常,之后恢复连接并会话重试之后,发送方可以从上次中断的文件块开始继续传输,不需要重新开始。因为网络和应用层面存在数据缓冲区,所以文件传输的断点是按照接收方存储到文件系统中的实际大小为准,在建立传输会话时由接收方提供给发送方,这样发送方就能准确定位断点。
6.4 消息优化
文件被分段传输,每个数据段都是在一个个消息上,使用Java对象作为消息进行通讯,由于消息中携带有类型的元数据,码流过大,效率较低,所以BFT工具箱利用Google_Protobuf编解码方案与BFT自定义编解码两种方式混合使用,提高消息的利用率降低码流,以尽可能少的控制数据与文件数据放置在一个消息当中。其中Protobuf主要负责非文件数据的复杂消息的交互,例如建立会话的请求、回执消息等。对于文件切分出来的数据块,则采用更为简洁、直观的自定义编解码方式。文件数据消息使用特殊BFT自定义消息的主要原因:Protobuf没有NIO接口。如果使用Protobuf只能产生byte[],这样会出现内存复制和GC过程。
6.5 流速控制
文件传输在实际传输文件的过程中,尤其是大文件,会占用网络带宽资源,影响其它进程的使用,所以文件传输BFTAgent具备实时流控,可以在BFTAgent进程和多个文件传输配置两个维度分配流量,降低对其它进程的影响。流控同时带来另外一个应用场景,那就是优先级。可以针对优先级高的文件,增加流出速率,让高优先级的文件传输的更快一些。
文件传输的带宽设置主要分为两部分,其中BFTAgent设置一个总的可用带宽,BFTAgent所属的文件传输服务从这个总带宽中分配。BFT工具箱采用了缓冲队列和定期采集I/O流速的方式实现带宽控制,缓冲队列具备最高水位线,限制可以存储的待发数据,防止内存溢出,当到达控制阈值后,缓冲队列超过最高水位线时,发送不可写事件,通知发送逻辑暂停读取文件,等待恢复至水位线以下或任务被取消。
6.6 傳输安全
对于传输过程中数据的安全性,文件传输系统支持安全套接字协议。为了满足企业更多的定制化安全策略,同时也提供文件数据的加密、解密接口,可由用户自行实现并放置到系统中,让数据的传输更加安全。上述方式可以组合使用。
7 结束语
基于实际业务需求,结合BFT大文件传输工具箱,公司实现了各个节点之间的文件同步效果。虽然由于时间紧张,建设工程中发现了部分实践问题未能及时得到解决(如加密网内各个子系统服务器的系统时间,因为没有可以统一连接的时间同步服务而存在系统时间差,导致日志监控出现时间不一致),但是整体项目目标已经基本达成。全国已接入的节点数:省、市、自治区接入比例达到近六成;区、县、自治县接入比例已超三成。截至目前,系统运行稳定,文件同步功能可靠。
参考文献
[1] Hervé,Chabanne,Pascal,Urien,Jean-Fer.RFID与物联网[M].北京: 清华大学出版社,2016-01-01.
[2] 章立春.软件保护及分析技术—原理与实践[M].北京: 电子工业出版社, 2016-07-01.
[3] 陈志德,黄欣沂,许力.身份认证安全协议理论与应用[M].北京: 电子工业出版社, 2015-01.
[4] Junaid Ahmed Zubair.赛博安全标准.实践与工业应用[M].北京: 国防工业出版社, 2015-6-1.endprint