随着互联网和网络应用的迅速普及,社会在感受网络所带来的便利的同时,也面临着各种各样的网络攻击和威胁。数据表明,我国仍有63.6%的企业处于“高度风险”级别,每年因网络数据泄密或破坏导致的经济损失高达上百亿。在诸多安全事件中,网络边界和网络内部出现的安全事故的比例达到了3:7,而文件数据破坏或资料外泄70%以上由于内网数据安全造成的,威胁已从外部转向内部。一项关于企业信息安全调查结果显示,企业机密泄露的30%~40%是由电子文件的泄露造成的,而《财富》排名前1 000名的公司,每次电子文档泄露造成的损失约400万美元。尽管每年企业界花费大量资金防毒防黑,但企业防御失效的另一个容易被忽略的问题是来自员工、厂商或其他合法使用系统者的内部滥用,所以,内网数据文件存储安全问题仍然严峻。
根据企业内网海量数据存储系统的特点和数据存储安全需求,我们首先设计基于多协议的安全文件系统(MPSFS)支持不同协议用户的访问,为不同用户提供统一的访问接口,实现用户高效和快速的访问。同时MPSFS与身份认证和访问控制相结合充分保证内网数据存储系统的安全性。在此基础上,通过设计相应安全算法进一步保证系统所存信息的安全性。
1 内网海量文件数据存储原型系统MFDSS
如图1所示,内网海量数据存储原型系统由三部分组成:客户机、服务器和存储设备,客户端:1)维护用户存储视图(通过与服务器端的MPSFS交互),向应用服务器提交用户请求并将应用服务器返回的结果经相应处理后提供给客户端;2)iSCSI客户端在得到服务器提供的元数据后可直接与SD(基于iSCSI的存储设备)进行数据交互。应用服务器位于存储网络体系结构的中间层:1)与客户端进行交互。向用户提供统一的存储视图,即统一命名空间;2)通过存储接口与SD交互,主要负责主机认证、设备操作认证;3)文件到对象的转换,对象ID的生成(通过Hash对象内容)。MFDSS元数据分为系统元数据,内容元数据和存储元数据。系统元数据包括文件名列表和目录结构,文件划分的对象列表,包括对象ID和对应的存储设备信息等;内容元数据主要是文件的特征信息,由用户在客户编辑生成;存储元数据包括对象的存储位置、访问许可权限、创建时间、对象长度等信息。系统元数据和特征元数据都位于元数据服务器上,而存储元数据和对应的对象位于对象存储设备上。元数据服务器功能:1)元数据定义和管理;2)元数据和存储对象之间的映射;3)对多个SD存储设备和资源进行有效的统一管理和优化,并根据应用的不同和应用程序的具体需求,安排与应用程序相适应的SD存储设备,使应用程序得到最优的存储资源分配。
在传统的文件系统中,元数据由本机或者文件服务器负责维护,每次对数据块的操作都要获取元数据。当操作频繁发生时,元数据操作就成为整个系统的瓶颈,限制了系统的扩展,这一现象在NAs系统中非常明显。在MFDSS系统中,由于每次操作只有一次对元数据的访问,具体的数据传输都由SD和客户端或者经应用服务器连接进行,大大减少了元数据的操作,降低了元数据服务器(MDS)的负担,从而为系统的扩展提供了可能性。为了增强系统的安全性,MDS为客户端提供认证与授权(对敏感数据的元数据保护)。SD将依据MDS提供的授权来决定是否为客户端提供服务。
图1 MFDSS模型
2 基于共享的多协议安全文件系统的设计
2.1多协议并行安全文件系统
多协议文件系统(MPSFS)保留了分布式文件系统的灵活性和高性能的优点,而克服了其扩展性、并发访问和安全性方面的缺陷。与传统文件系统同的是MPSFS提供文件存取的方法和接口外,其组成的基本部件是存储卷。每种存储卷除包含文件目录结构外,还包含特定的存储模式。每种存储模式包含某种文件系统的元数据结构(如NTFS中的MFT、Unix中的inode以及文件系统中的文件分配表等,它们在存储卷提供的逻辑存储空间中分配)、操作接口(文件类型和数据块类型)、功能函数集(格式化,检索等)、优化方法(cache方法和预取等)和存储空间分配回收方法(以卷为单位,块空间的分配与回收由SD完成)及数据结构。
MPSFS是企业内网MFDSS系统的核心,其结构如图2所示。它由全局nfsd(Gnfsd)、全局iSCSId(GiSCSld)、samba模块、管理分区、MFDSS配置表、虚拟分区(逻辑卷)映射表、用户访问权限表、全局缓存与锁管理器以及相应的接口等组成。
图2 MPSFS的结构图
Gnfsd是NFS后台程序的扩展程序模块并与NFS完全兼容。它从Unix客户端接收文件i/o请求,并把它发到适当的NFS服务器。尽管Gnfsd仿真了NFS后台程序并且与NFS完全兼容,但它是轻量级的后台扩展程序,所以结构非常简单,对MFDSS的性能影响很小。GiSCSId是服务器端的iSCSI设备驱动程序的扩展程序模块,它从iSCSI客户端接收块I/O请求,并把它转发到适当的iSCSI目的设备端。它是一个后台进程模块,结构也很简单。Samba是Unix下的一个资源共享软件包,它主要用于配置实现Unix或Linux与Windows下的资源共享,即Windows客户必须通过samba才能共享Unix或Linux系统下的资源。当一个Windows客户发一个SMB请求到MFDSS,Samba收到这SMB请求,并通过Gnfsd发送这SMB请求到NFS后台程序。管理分区主要存放MFDSS的元数据信息,包括向用户提供的统一文件视图信息和各个文件的入口信息,以及缓冲MFDSS元数据服务器的元数据信息等。如图2所示,在管理分区中卷,它仅提供了该卷到一个特定的数据卷入口,数据卷的文件和目录对应的元数据信息则存放在MFDSS的元数据服务器中。配置表提供了MFDSS中所有存储设备(SD)和基于iSCSI的存储设备(SD)的主机名、人口点及对外独立的IP地址信息。独立的IP地址便于存储设备与客户端或者用户直接进行数据通信换。虚拟分区(逻辑卷)映射表主要提供虚拟分区或逻辑卷与数据卷的映射关系。它通过两级映射指明某个文件存放在哪个数据卷中。访问权限表提供到MFDSS认证服务器的用户访问权限体的入口,即当用户在客户端认证通过后,MPSFS通过访问权限表提供的入口信息访问认证服务器对应的访问权限体中该用户的访问权限记录,通过该记录的内容向用户提供存储视图。身份认证和访问控制模块位于认证服务器上,负责用户的身份认证和访问控制相关的内容。内容管理和内容搜索引擎模块主要负责存储系统中海量信息的管理和优化,以及保证用户信息的快速检索。
MPSFS能按访问权限为不同的用户或组提供不同的存储访问视图,即某一用户或组对某些文件或卷有访问权限。他们的存储视图中只能看到这些文件和存储卷。这在一定程度上能保证用户所存信息的安全性,但如果某人非法窃取一个用户或组的口令或密码,并冒充该用户或组成员去访问或破坏对应存储视图中的信息,可以使用户在MFDSS中所存信息的安全性和可用性遭受破坏。为解决此问题,一方面通过身份认证和访问控制保证系统中用户所存数据的安全性,另一方面安全算法保证用户所存数据的安全性。
2.2基于MPSFS的用户身份认证
在MFDSS中,对用户身份的认证是经过专门的认证服务器来完成。认证服务器对用户身份的认证是根据其内部所存的多个证书文件来进行的,其证书文件的结构如图3所示:
图3 MFDSS证书文件
证书文件ID唯一地标识证书文件。一个证书文件包括多个清单,每个清单由用户ID、用户HMAc密钥、用户公钥,用户口令和时间戳组成。用户ID标明该清单后各项所属的用户或组;用户公钥存储在认证服务器上,方便用户需要时便于查寻;口令是认证服务器使用来认证用户的身份;HMAC密钥被用来检验用户所写入存储网络数据信息的完整性以及对用户的身份的校验。用户的HMAC密钥和用户的口令是被加密存放在认证服务器的非易失存储器中。当认证服务被启动时,证书文件被装载到其内存中,HMAC和用户口令被解密并且缓存在易失内存中。时间戳域记录用户修改HMAc密钥和或修改其口令的时间。其认证过程如图4所示。
①客户端向MFDSS应用服务器申请服务之前,首先需要认证服务器(authentication server)验证自己的身份;
②认证服务器向客户端发确认信息;
③认证服务器向MFDSS应用服务器发放被认证客户访问授权信息;
④应用服务器根据该用户的访问权限向被认证客户端提供其对应的存储视图;
⑤用户在客户端根据存储视图对MFDSS中的文件或存储卷进行相应的访问
这时,用户可选择相应的加密算法在客户端对自己所存文件进行加密,并在客户端对自己所读加密文件进行解密。在MFDSS原型系统中,认证服务器和元数据服务器是同一个服务器。
图4 MFDSS中的客户认证
在MFDSS认证服务器中。除存放用户证书文件以外,还存放有用于区分用户访问权限的数据库。每个用户在MFDSS中注册时,MFDSS都要为该用户生成一条该用户的访问权限记录并存在认证服务器相应的数据库表中。当用户登陆MFDSS时,MFDSS的认证服务器将该用户的访问权限信息发给应用服务器的MPSFS。MPSFS根据该信息生成该用户的存储卷视图并传到客户端。其访问权限表单如图5所示:
图5用户访问权限记录表
在图5中,用户或组ID是用户或组在MFDSs中注册时的ID;卷清单是该用户或组可以访问的存储卷清单,它可以是分区卷清单。也可以是文件卷清单,还可同时包含上述两种卷清单或其中的两种卷清单;安全级别可以分为4种:
①用户对自己所有存储卷中存放的文件都要在客户端加密。其过程是用户在将文件存人存储卷视图之前,在客户端将该文件加密,并对加密文件信息的HAMC进行签名,然后将加密的文件信息及签名的HAMC一起发到MFDSS系统。MFDSS在将该加密文件存人存储卷之前,要根据用户签名的HAMC检查加密信息的完整性。如果完整性没有问题。则将该加密文件和对应签名的HAMC一起存放在该用户指定的存储卷中。
②用户将文件存人存储卷之前,先在客户端加密,然后将加密文件及其对应的HAMC信息一起发到MFDSS。MFDSS用该用户的HAMC密钥来检查加密信息的完整性。如果完整性没有问题,则将该加密文件和对应的HAMC一起存放在该用户指定的存储卷中。这种方式的安全性要比第1种方式要低,因为它没有用户的签名,但它的速度比第1种要快得多。
③用户在客户端将要存储文件的明文及对应的HAMC一起发送到MFDSS。MFDSS根据其HMAC检查所存文件的完整性。如果完整性没有问题,则将该文件的明文和对应的HAMc一起存放在该用户指定的存储卷。
④对于安全性要求不固定内容数据,如视频、音频文件只要保证其完整性即可。用户在客户端上传到MFDSS系统后,MPSFS可根据内容生成对象ID,这样既可保证其完整性又可保证内容不重复存储。
在图5中,加密方式主要是指明用户是选择对称密钥加密还是选择非对称密钥加密;时间戳主要是指明该记录最后一次修改的时间。因为随着时间的变化,用户有权限访问的存储卷可能发生增减,安全级别的需求也可能发生变化,加密方式也可能发生变化。用户从MFDSS系统对应的存储卷视图中读文件时,所读信息包括密文或明文。用户可以通过HAMC来检验所读信息的完整性以及判断是不是自己所存的信息。这样,可以保证用户所存信息的安全性和可用性。
2.3 MPSFS提供高性能的并发访问
在MFDSS中,底层的存储设备SD具有足够的智能管理它本地存放的数据,所以客户端可以直接从SD存、取数据。因此如果文件被分条(分成多个子文件)存放到多个SD上,则聚合的I/O率和数据吞吐率可以呈线性扩展。
MPSFS支持文件的分条,并且使文件的内在并行结构在用户接口级可见。MPSFS尽可能地让一个文件的每一个条带存放在不同的存储设备上,这样每一个节点同时访问多个存储设备,增加了i/o的并行性。MPSFS允许并行文件访问以许多不同的文件数据分解方式进行,例如,一个矩阵文件可以以行的方式被存放也可以以列的方式被存放。
传统的并行文件系统通过轮转的方式在存储设备上存放文件块,假设存储设备个数为N,文件的第i个块将位于第歹个存储设备上,j=i mod N这样的分条方法在文件系统接口级是透明的,它获得了并行访问存储设备的能力,但是对应用程序隐藏了分条细节。为了对应用程序提供并行能力,最简单方法是把每一个存储设备上的块看成是一个分离的序列,这样就可以把文件分割成多个子文件,每个子文件被并行应用程序中的不同进程访问,从而实现应用程序对文件的高效并发访问。图6(a)为传统文件并行存储串行访问方式,图6(b)为文件并行存储并行访问方式。其中fd为应用程序中的文件访问进程,SD为存储设备。
由于增加了对象一级的抽象,MPSFS具有二维的结构(如图7所示)一维是对象,指定了访问数据的并行性(水平尺度),另一维是在对象中的数据(垂直尺度)。在绝大部分情况下,所有的对象具有相同量的数据,但这不是必需的。在每一个对象中的数据被看成是一个基本条带单元(BSUs)序列,每一个BSU被用来作为分割机制的基本构造块,BSU尺寸可以是一个任意以字节为单位的值,但是被选择的值应该反映最小的数据访问单元。因此可以通过选取不同方向的不同BSUS的分割获得不同的文件并行视图。
图6传统的文件访问和并行的文件访问
图7 MPSFS中的二维文件分割
为了保证MFDSS的高性能,对系统中的存储设备采用静态分组和动态分组相结合的方法。所谓静态分组是将系统中支持iSCSI协议的SD的设备分为一组,其他不支持iSCSI协议的存储设备分为一组;动态分组是动态将前面分组的基础上,将某几个I/O性能、容量等相近的存储设备分为一组存放某个大文件。如对实时性要求高的文件则要存放I/O性能好的分组中,对实时性要求低的分组则可存放在I/O性能稍微差的分组中。
2.4安全算法设计
MPSFS能按访问权限为不同的用户或组提供不同的存储访问视图,即某一用户或组对某些文件或卷有访问权限,他们的存储视图中只能看到这些文件和存储卷。为了进一步保证用户存储卷中信息的安全性,我们设计一种端到端的加密算法。一方面,用户通过在客户端对其所存信息进行加密/解密,保证所存信息的安全性和完整性;另一方面,提供一个象AFS一样的访问控制清单(access controllist,简称ACL),供一个用户组中的多用户共享一个存储卷或一个目录中的信息,这多个用户可以组成一个标准的Unix组,共享一个对该存储卷或目录中的文件加密的密钥;同时,阻止非法用户删除合法用户在存储卷中的信息。
安全算法有4种主要数据结构:文件体、密钥体、证书体和访问权限体。其中证书体和访问权限体请参见2.2节(即证书文件和访问权限记录文件),它们是位于认证服务器上,而文件体是由每个文件的属性元数据及组成该文件的一个或多个加密数据块(对象)组成,分别位于MFDSS系统的元数据服务器和相应的存储节点中,密钥体也位于MFDSS认证服务器上。
文件体的结构如图8所示,其加密数据块是使用RC5对称密钥加密,数据块是系统中能读/写的最小单元。HAMC是一个被加密的信息认证码,是通过用户证书体中的HAMC密钥对文件的inode等信息Hash运算得到。文件对象ID是在存储设备上一个文件对象的唯一标识,ACV是一个访问控制版本号,用户ID清单标识能够访问该加密文件的多个用户,其中清单中的第1个用户是该加密文件的建立者。在inode中,块校验和(block checksum)与其对应的指针存放在一起,这祥只要inode在内存中块校验总是可用的。指针是以加密形式存放的,它通过HAMC密钥与加密数据块x0R得到。
图8文件体结构
密钥体的结构如图9所示,其中文件ID是唯一标识该密钥体文件,文件ID以下每一行都包含~个用户ID和加密的密钥及时间戳。其中,这里用户ID是存放“被加密密钥”的用户ID;“被加密密钥”域中,存放的是用户私钥加密的对称密钥(RC5)。这个用户私钥可以是一个RC5对称密钥,它可由一个用户组共享,也可由这个用户组协商更换。当这个组共享密钥被修改后,这个用户组中的各个用户都要修改密钥体中“被加密密钥”域中的被加密密钥,即用户用新的共享密钥对原加密文件的密钥进行重新加密;时间戳用来记录用户修改密钥体的时间,用来跟踪用户对密钥体的修改。用户对密钥体的修改是当用户认证通过后读取、修改并重新写入密钥中与自己ID相匹配的记录来完成。一个用户文件的密钥体记录可以对应该用户所存的多个文件,即这多个文件都是用同一个对称密钥加密的,并且可由共享同一加密私钥的一组用户共享。
图9密钥体结构
在MFDSS中,证书体、访问权限体、密钥体和文件体之间的关系如图10所示。
图10证书体、密钥体、访问权限体和文件体之间关系
从图10可以看出,当一个用户想访问MFDSS中的文件时必通过认证。认证通过后,该用户获得一个资格证和密钥体中该用户所对应的记录项。MPSFS根据访问权限体向该用户提供存储视图。用户可以在自己存储视图对加密文件体对应的数据进行读,或写操作。
3 实验
3.1 实验环境
实验环境如图11、图12所示:
图11实验机器配
图12 MFDSS测试平台
我们主要通过实验评估MPSFS文件系统及其安全算法对其整个系统性能的影响。整个性能测试分为两组:第1组被测试的文件系统是NFS和NFS+MPSFS+MFDSS SM,主要针对FC-RAID,其测试平台如图8所示;第2组被测试的文件系统是NFS和NFS+MPSFS+MFDSS—SM,主要针对基于iSCSI的内容存储设备,其测试平台如图9所示。其中,MFDSS_SM是实现安全算法和访问控_SM MFDSS制的安全模块,它包括服务器端和客户端安全模块两部分,由我们课题组自主开发;iSCSI启动器,即iSCSI Initiator,它同时也充当应用服务器,iSCSI目标器,即iSCSI Target。如图12(a)所示,在基于FCRAID的MFDSS安全系统性能测试中,我们将MPSFS和MFDSs—SM都安装在MFDSS服务器上,通过第1组实验测试MPSFS和MFDSS_SM对_SMMFDSS服务器文件系统性能的影响。如图12(b)所示,在基于iSCSI的MFDSS系统性能测试中,我们将MPSFS和MFDss—SM也都安装在MFDSS服务器上,而通过第2组实验测试MPSFS和MFDSS—SM对MFDSS服务器文件系统性能的影响。
在本次实验中,我们使用Bonnie++测试软件。Bonnie++可以用3种方式测试文件系统的传输率和CPU的占用率,这3种方式为串行读、串行写和随机读/写。串行读/写又可分为单字节读/写和块读/写,这将影响文件系统的输入/输出性能。测试参数设置如下:文件的大小设为200 MB,内存设为50MB。因为存储网络主要使用的数据备份和数据共享,所以仅能测试串行的块读、串行的块写和串行块重写。
3.2实验结果与分析
实验结果如图13和图14所示。第1组实验结果如图13所示。NFS+MPSFS+MFDSS_SM串行读速率比NFS的串行读传输速率下降了11.9%;NFS+MPSFS+MFDSS_SM的串行写速率比NFS写传输速率下降了13.3%;NFS的串行读/写速率是1 509KBps,而NFS+MPSFS+MFDSS—SM的串行读/写速率是1 289KBps,NFS+MPSFS+MFDSS—SM比NFS的串行读/写传输速率减少了14.6%。所以,在基于NAs的MFDSS测试中,加载安全系统比不加载安全系统的速度下降11.9%~14.6%。
图13基于NAS的MFDSs安全系统性能测试
图14 基于iSCSI的MFDSS安全系统的性能测试
第2组实验结果如图14所示。NFS的串行读速率是4 638 KBps,NFS+MPSFS+MFDSS—SM的串行读速率是4 032 KBps,NFS+MPSFS+MFDSS—SM的串行读速率比NFS下降了13.0%;NFS的串行写速率是2 856 KBps,NFS+MPSFS+MFDSS—SM的串行写速率是2 461 KBps,NFS+MPSFS+MFDSS—SM的串行写速率比NFS下降了13.8%;NFS的串行读/写速率是1 263 KBps,NFS+MPSFS+MFDSS—SM的串行读/写速率是1031 KBps,NFS+MPSFS+MFDSS—SM的串行读速率比NFS下降了18.3%.所以,在基于iSCSI的MFDSs测试中,加载MPSFS文件系统和安全模块比不加载的速度下降13.0%~18.3%。图14的传输速率比图12的传输速率更小,因为用户在客户端通过用户代理与MFDSS中的iSCSI目标器(iSCSITarget)进行数据交换时,都要经过NAS Head(iSCSI Initiator)进行协议转换,即把用户写入的文件组装成iSCSI协议单元写入iSCSI设备,以及把从iSCSI设备中读的iSCSI协议单元数据块转换成文件发到客户端。
4 结束语
当MPSFS和MFDSS_SM被集成到MFDSS系统时,MFDSS系统能获得更好的安全性,虽然读写性能下降了11.9%~18.3%,但在实际应用中是可以接受的。并且,在MFDSS系统中,只有一部分敏感文件数据对安全性要求高,而大部分文件数据只要求保证数据的完整性即可,这样安全系统对整个系统的性能影响更小。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:内网数据存储安全关键技术的研究与实现
本文网址:http://www.toberp.com/html/consultation/1083968755.html