隨著互聯網和網絡應用的迅速普及,社會在感受網絡所帶來的便利的同時,也面臨著各種各樣的網絡攻擊和威脅。數據表明,我國仍有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.guhuozai8.cn/
本文標題:內網數據存儲安全關鍵技術的研究與實現
本文網址:http://www.guhuozai8.cn/html/consultation/1083968755.html