李玉涛 殷笑茹 马 彬
(江苏省气象信息中心 江苏 南京 210018)
云存储是在云计算概念上延伸出来的一个新的概念,是指通过网格技术、分布式文件系统、集群应用等功能,将网络中大量不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统[1-2]。
由于考虑气象数据的涉密性需求,目前数据未以公有云盘的方式进行网络存储。与此同时,业务人员无法方便地在办公场所以外对各类业务文件进行查看处理,这影响了办公效率。气象资料数据文件云化存储、随时随地进行查看处理的需求日益迫切。
云存储可为用户提供强大的数据访问、存储服务,实现数据统一集中管理、在线扩容、实时读取、高安全性及海量存储等功能。作为一种先进服务技术,云存储有着无可比拟的优势[2]。
对用户而言,所有的数据不必再在本地通过存储介质进行存储,只需利用Web服务或通过安装云盘客户端软件即可经通信网络接入云盘服务,如图1所示。用户可在任意地点访问存储数据,降低了购买硬件的成本和维护的开销[2]。
图1 云盘系统产品架构图
通常,云存储服务中心可通过先进的技术手段和存储设备来保障存储服务的高可靠性,防止用户资料的丢失。另外利用禁传非法文件、内容过滤、完整性校验、数据加密传输、加密存储等技术及严格的云盘管理机制,可有效防止用户数据被攻击、截获或篡改。从某种意义上说,采用云存储比文件在本地存储更安全可靠[2]。
气象云存储拥有庞大的服务器集群和专业的存储设备,可提供海量存储空间,解决了用户的数据资料快速增长、本地存储空间有限以及移动办公的数据存储问题,提升了数字化办公水平[2]。
云盘系统的用户(部门)之间可共享信息与文件。开放文件共享时,任一用户编辑的文件能实时被复制到群组内其他人的电脑上。促进了用户之间的沟通,同时也易于对用户的数据进行管理。
如图2所示,考虑到当前工作人员在移动办公环境下对数据资料的需求,及数据的安全性,设计了私有云环境下的气象云盘系统。系统采用高可靠高性能设计架构,提供办公云服务和云存储子服务。
图2 云盘系统整体设计图
云存储子系统共由5个节点组成,其中两个节点作为数据元数据节点,三个节点作为数据存储池。当用户的数据上传至云盘系统,数据经过元数据集群进行判断,将数据进行切片后再将每片数据随机分布于一个存储节点,并同时在另外两个节点产生副本。当用户需要读取数据时,通过元数据集群迅速定位每片数据的相关信息,同时从三个存储节点取出所有数据块,组合后进行一致性校验,反馈给用户[3]。云存储系统通过高效的数据切分技术保障数据的安全性,使得每个节点上的数据均为散乱的数据块,难以进行识别。保障每个数据块在相邻的数据节点上具有副本,如此保障数据的可靠性,即使一个数据节点失效,依然可以保证数据的高效可用[3-4]。元数据采用双活轮询工作,两个元数据节点之间互为热备,确保即使有一个元数据节点失效,也依然能为用户提供存储服务。三个数据节点采用集群模式,数据的读写在三个节点并行运行,大大提升了云存储的性能。
气象云盘系统分为双活数据库集群与云服务Web集群,其中双活数据库集群作为用户信息的存储和管理系统,所有的用户账户信息均经过MD5单向加密,无论是管理员还是恶意入侵者均无法从服务端获取用户信息,充分保障用户安全。数据库服务采用双活集群模式,一个物理节点出现故障不影响整个集群为用户提供云服务[4]。Web集群为所有用户提供数据的上传、下载等服务,为保障用户数据安全,用户存储的数据信息经过数据替换加密,保证数据以密文形式进行存储。同时为弥补数据加密造成的性能损失,Web服务集群同时增加缓存服务器和负载均衡服务,进一步提升气象云盘系统的高性能。
考虑到气象云盘系统的业务成长,云存储子系统具有高可扩展性,数据存储可扩展至EB级别,云存储的性能也可随业务增长先行扩展至TB级别带宽。本次系统设计主要采用万兆网络,保障系统的性能。
对于数据安全保护,最基础的原则为:对数据采用的加密模式使得攻击者为了破解所付出的代价应远远超过其所获得的利益。气象云盘系统设计采用多种加密体系,建立多种防护体系结合的全方位防护系统,最大限度地保障数据的安全。
目前业内的数据加密主要分为传统加密和公开密钥加密,其中传统加密又分为:替换加密,将明文中的每一个字符通过使用密钥转换为密文中的一个字符;置换加密,按不同顺序重新排列明文字符;DES标准加密,即融合了替换和置换加密,使得加密算法更复杂,适用于常见应用系统数据存储加密。而在公开密钥加密方法中,加密密钥和加密算法全是公开的,任何人都可将明文通过秘要和算法转换成密文[5]。但是相应的解密密钥是非公开的(公开密钥方法包括两个密钥,分别用于加密和解密),而且无法从加密密钥进行推导,因此,即便是加密者本人,若未被授权也无法执行相应的解密转换。这种加密算法由于其加密方法多样,破解加密的成本非常高,对于恶意入侵者来说,破解这类加密所耗费的成本大都远高于其获益,所以为目前世界上使用最广泛的加密算法。
除上述数据加密算法外,基于数据的切分技术也逐渐被用于数据的加密和传输,增加安全系统的复杂性,从而保障数据的安全。数据切分之后分块传输,在传输过程中数据为部分数据,即使被截取也难以分辨数据,达到保障数据安全的目的;到达服务端或客户端通过算法进行组合和一致性校验,保证实际使用或储存的数据的完整性。而在数据存储过程中通过数据分片存储,在没有分片算法的情况下,难以进行组合并重现数据,从而增加数据的安全性。
气象云盘系统综合了业内多年安全产品体系方面的研究成果,设计了存储安全、传输安全、认证安全、数据安全四大安全体系,融合公开密钥加密、MD5加密、数据分片存储等多种加密方式,更可与安全加固系统、域控、VPN等系统整合,建设全方位的安全体系,达到企业级安全等级。
2.2.1 存储安全设计
为保障气象云盘系统服务器端数据存储安全,气象云盘结合数据切分技术、安全加固技术实现数据存储双保险:① 数据切分技术[5-6]。云盘数据存储过程将一个文件数据切分为以64 KB大小的块数据,并以二进制码形式分发至不同的存储节点的不同磁盘中,数据最大限度被打散,即使拿到单台服务器的所有硬盘,仍然无法查看或恢复对应数据。由于每个文件均被切分为多个数据块,每个数据块经过数据单独置换加密,即将原本数据顺序重新排序,以达到数据加密的效果。其中文件元数据信息以MD5进行加密,使得云盘系统管理员在系统中无法判断文件信息,更难对数据进行恢复和解密。云盘数据反向读取过程中通过调取保存在元数据库中的数据块分布信息与一致性校验信息,将存储数据重新组合成真正数据,反馈给数据请求用户。② 安全加固系统[7]。云盘服务器安全加固系统可以最大限度地从操作系统层次保证云盘数据的存储安全,限制操作系统用户的权限,使其无法访问及查看对应的文件,从而有效地防止管理员恶意操作,更能够防御黑客恶意攻击(无操作权限,无法进行攻击)。
2.2.2 传输安全设计
如图3所示,云盘数据在传输过程中实现SSL加密以保证数据安全。SSL为公有、私有密钥数据配对传输加密的主要方式之一。数据经过公钥加密后,通过网络链路进行数据传输,达到客户端时通过私钥进行数据解密(如图4所示),即使在数据传输过程中被截取或接收,由于缺乏私有密钥,无法读取数据,从而保证数据的安全。用户可以选择对保存的文件进行加密保存,从而实现用户数据仅对用户自身以及共享(私钥)权限范围内的用户可见。运维管理系统提供日志记录、查询、审计、追溯等功能以保证数据的可溯性。另外,气象云盘设计采用文档碎片传输技术,即传输文档时,将文档分成多个块进行传输,即使有人通过网络技术截取数据流包,也不会泄露文件的内容,从而确保文件数据安全[8]。
图3 文件传输发送端流程图
图4 文件传输接收端流程图
2.2.3 认证安全设计
气象云盘系统认证安全体系包含基础认证和扩展认证两部分,基础认证体系为经过系统透明加密技术加密的用户名及密码登录形式,即登录云盘系统的用户名、密码等信息都是以密文形式被存储,防止泄密。用户密码是以MD5值(或类似的其他算法)的方式进行保存的,用户登录系统时,系统会将用户输入密码计算成MD5值。然后将该值与系统中已保存的MD5值进行对比,在此过程中系统并不“知道”用户的密码[9]。另外可根据用户自身安全体系,例如将云盘认证系统与域名认证、数字签名认证、VPN认证等整合在一起,将登录系统与企业的网络域控系统进行整合,提供基于域控的登录方式。或者通过数据签名认证(CA认证)、公钥传输、私钥认证的形式进行安全身份认证[9]。还可以与VPN网络拨号进行整合,通过安全VPN认证进行云盘系统登录。
如图5所示,浏览器与服务器之间认证流程:
① 客户端端向后台服务器端发送http请求。
② 服务器端返回状态码401,响应头部含Negotiate。
③ 用户通过客户端输入用户名信息发起AS请求TGS票证。
④ AS生成TGS票证,然后进行用户密码查询并用此密码加密TGS票证,返回给客户端。
⑤ 客户端使用用户密码解密出TGS票证,并向TGS服务端发起请求。
⑥ TGS服务端生成服务票证响应给客户端。
⑦ 客户端将服务票证封装到SPNEGO token消息中,并发送给Web服务器。
⑧ 服务器解密出用户名及服务票证,将票证发往TGS服务验证。
⑨ 用户端通过验证,开始进行通信。
图5 认证信息通信流程
2.3.1 系统易用性
系统便捷认证:为避免用户账户信息遗忘,系统登录采用手机号和密码结合的方式进行系统登录,当密码丢失时,可通过系统的短信找回系统进行密码找回。
文件夹自动同步:支持文件夹右键直接创建同步分享,将文件夹同步至云存储端或分享给其他用户,操作便捷灵活。
历史版本恢复与文件安全备份:云盘支持文档历史版本,本文档进行的所有操作均可以通过历史版本进行恢复,保证数据的安全性。
2.3.2 单位文库
系统创新地引入单位文库功能设计,可帮助单位管理散乱在每个员工手中的单位资料。如在建立单位文库之后,向单位所有员工发起单位数据资源召集,综合企业各个科室角色的数据资源,根据文档类别进行分类,并可按时间、类型、标题等进行排序。
2.3.3 文档快传和分享链接
气象云盘系统提供文档快传功能,即在云盘空间中创建一个快传文件夹,知道快传文件夹地址和密码的用户均可以对快传文件夹内的数据进行访问,尤其当单位需要向员工提供一些大文件共享时,每个员工按需提取所需文件,增加单位文档管理的灵活性。气象云盘的文件快传建立在核心安全的架构之上,为保障系统及文件的安全性,可分别设置访问和上传密码,可设置访问/上传的次数及时限,复制分享链接即可实现文件快传。
2.3.4 文档在线阅读和编辑
气象云盘设计了文档在线阅读和编辑的功能,在PC端和手机、平板电脑均无需将文档下载至本地,即可直接在线进行文件阅读和编辑(编辑文件调用系统office编辑软件接口,从而实现文档的在线编辑),并且在各个终端都显示完全一致的效果。PC端和移动端的在线阅读可选将文档转换为PDF形式进行安全阅读,或通过调用本地office接口进行只读阅读。PC端和移动端的在线编辑主要采用调用本地终端的office插件进行文档编辑。云盘系统中用户的操作界面、操作习惯可完全兼容在线编辑。
在系统的整体设计中,采用两个节点作为数据元数据节点,三个节点作为数据存储池进行搭建。三个数据节点采用集群模式,数据的读写在三个节点并行运行,可有效提升云存储的性能。表1为此次搭建云盘系统采用的硬件配置情况。
表1 云盘系统配置信息表
为了对搭建的云盘系统的性能进行测试,如图6所示,本文设计了测试用例,主要是利用4个不同的测试机器,最大利用单测试机的网络带宽,分别让4台物理测试机器分别以1个、2个和4个进程连续运行python脚本上传200个1 GB内存文件,用以测试如何压满最大的聚合带宽。
图6 云盘系统搭建网络拓扑图
用于测试用例的服务器硬件配置如表2所示。
表2服务器硬件配置
测试机硬件配置如表3所示。
表3测试机硬件配置
如图7所示,测试结果表明搭建的云盘系统在通过测试用例中的4台服务器进行压力测试时,能承受最大聚合带宽下的文件上传压力测试,性能符合设计要求。
图7 压力测试聚合带宽
在云盘系统经过半年的试运行测试后,目前已投入江苏气象系统的日常工作应用,已注册用户超500人,日均访问量超过2 000人次。云盘系统投入使用后,为用户提供了文件数据管理、备份、同步、共享以及中转等服务,使得用户无论身处何地都可通过任何一台连接互联网或者内部气象专用网络的计算机或移动终端,安全进行文件数据访问、共享,极大地保证了用户的信息安全与业务连续性,同时又最大程度地保障了气象数据的涉密性安全。如图8、图9所示,通过系统的资源监控可实时了解目前系统的运行状态、资料使用情况等信息,便于对系统的整体状况进行把握及维护。
图8 系统运行状态实时信息
图9 云盘系统界面
本文首先对云盘系统的特点进行了论述,接着又对云盘系统从存储安全、传输安全、认证安全以及功能便捷性方面进行总体设计,开发了相关云盘系统软件,并搭建了云盘系统,最终通过测试表明搭建的系统符合应用的要求。本文中介绍的气象云盘综合应用系统在设计实现过程中所考虑的服务需求、安全策略、功能特性及设计思路,旨在将此设计提升为一种通用模型,提供给业界借鉴与参考。