刀片加密服務(wù)器的文件如何加密和解密

為了解決信息傳輸?shù)叫畔⒋鎯^程中的存在的信息安全問題,我們應(yīng)用到了一種刀片加密服務(wù)器,那么什么是刀片加密服務(wù)器,刀片加密服務(wù)器中的文件如何加密和解密,我們今天就來看一下。

一、刀片加密服務(wù)器

1、刀片加密服務(wù)器的概念

刀片加密服務(wù)器是一種新型服務(wù)器,它與傳統(tǒng)刀片服務(wù)器的不同之處有二:一是它實現(xiàn)了在操作系統(tǒng)層面上的數(shù)據(jù)加密和解密技術(shù),用戶不需要通過編寫應(yīng)用程序來實現(xiàn)數(shù)據(jù)的加密和解密,二是采用了基于安全證書的網(wǎng)絡(luò)全過程的安全措施,數(shù)字簽名、簽名驗證、SSL和SSH技術(shù)的采用可保證用戶能夠安全有效地在遠(yuǎn)端控制刀片加密服務(wù)器,并同時實現(xiàn)了數(shù)據(jù)傳輸、數(shù)據(jù)存儲的加密和解密。

2、刀片加密服務(wù)器設(shè)計的基本原則

是在公用信息平臺中的數(shù)據(jù)信息只有授權(quán)用戶通過證書認(rèn)證后,經(jīng)過安全通道才可以看到明文,而非授權(quán)用戶無論通過什么途徑都得不到任何有效信息。保障信息傳輸和信息存儲的安全性,同時不改變用戶的使用習(xí)慣,不影響數(shù)據(jù)庫的結(jié)構(gòu),對于合法用戶應(yīng)保持透明。

圖1中用戶終端通過寬帶網(wǎng)或PSTN撥號方式連到服務(wù)器,刀片加密服務(wù)器通過1OOOM以太網(wǎng)口連接到網(wǎng)絡(luò)磁盤陣列,刀片加密服務(wù)器和磁盤陣列構(gòu)成了公用信息平臺H。

3、刀片加密服務(wù)器設(shè)計的工作原理

用戶通過因特網(wǎng)、刀片加密服務(wù)器來訪問磁盤陣列中的數(shù)據(jù)。在刀片加密服務(wù)器中裝有改進(jìn)的L操作系統(tǒng),用戶的數(shù)據(jù)通過加密型刀片服務(wù)器進(jìn)行加密后存儲在磁盤陣列中。用戶在訪問磁盤陣列中的數(shù)據(jù)時必須通過安全認(rèn)證和建立SSL或SSH后才能訪問通過加密型刀片服務(wù)器解密后的數(shù)據(jù)。以上的加解密過程均是在操作系統(tǒng)層次上完成的,因此對于用戶的應(yīng)用來講加密和解密過程是透明的。

加密型刀片服務(wù)器實現(xiàn)了以下功能:基于SSL和SSH的密傳;基于安全證書的安全認(rèn)證;在操作系統(tǒng)層上并基于對稱算法的密存;用戶通過SSL和SSH安全通道在遠(yuǎn)端對系過數(shù)字簽名和簽名驗證來確認(rèn)用戶的身份,然后根據(jù)用戶的身份確定是否對相應(yīng)的信息進(jìn)行解密。由于存放在硬盤上的信息是密文存儲,即使是超級用戶也只能看到密文,無法得到有效的信息。

刀片加密服務(wù)器文件的加密解密操作是在網(wǎng)絡(luò)文件系統(tǒng)NFS上實現(xiàn)的,由算法芯片SSP02-A完成文件加密和解密運算。由于刀片加密服務(wù)器系統(tǒng)主要是面向公共信息平臺用戶,而公共信息平臺是由若干個刀片加密服務(wù)器和公用磁盤陣列構(gòu)成,數(shù)據(jù)集中存儲在磁盤陣列上。每個刀片加密服務(wù)器可以通過NFS方式訪問磁盤陣列,將磁盤陣列上的某一部分空間掛載到刀片加密服務(wù)器上,讓刀片加密服務(wù)器方便地使用磁盤陣列上的文件,就像本地操作一樣,同時便于實現(xiàn)集中管理。

Linux操作系統(tǒng)通過虛擬文件系統(tǒng)VFS實現(xiàn)對多種不同類型文件系統(tǒng)的支持。每一種文件系統(tǒng)都有自己的組織結(jié)構(gòu)和文件操作函數(shù),相互之間差別很大,VFS的作用就是屏蔽掉這些差異,給用戶、應(yīng)用程序、甚至Linux的其他管理模塊提供一個統(tǒng)一的界面。

二、改造網(wǎng)絡(luò)文件系統(tǒng)NFS的優(yōu)點

1、改造后的網(wǎng)絡(luò)文件系統(tǒng)對系統(tǒng)和應(yīng)用程序保持透明

首先我們分析一下網(wǎng)絡(luò)文件系統(tǒng)的文件結(jié)構(gòu)。網(wǎng)絡(luò)文件系統(tǒng)和fXt、ext2、mlrux等文件系統(tǒng)結(jié)構(gòu)類似,是由超級塊、inode、文件操作函數(shù)入口等部分組成。超級塊主要用來描述目錄和文件在磁盤上的靜態(tài)分布(包括目錄、文件的大小和結(jié)構(gòu));文件系統(tǒng)由子目錄和文件構(gòu)成,每個子目錄或文件只能有唯一的inode描述,inode是管理文件系統(tǒng)的最基本單位,也是文件系統(tǒng)連接任何子目錄、文件的橋梁;文件操作函數(shù)是指對文件讀寫操作的函數(shù),我們對網(wǎng)絡(luò)文件系統(tǒng)NFS的改造是在文件操作函數(shù)入口上進(jìn)行的。

應(yīng)用程序?qū)ξ募脑L問過程是從應(yīng)用程序向系統(tǒng)發(fā)布一個調(diào)用請求開始的。當(dāng)某個進(jìn)程發(fā)布了一個面向磁盤陣列文件的系統(tǒng)調(diào)用請求時,操作系統(tǒng)內(nèi)核將調(diào)用VFS中的相應(yīng)函數(shù),這個函數(shù)將處理一些與物理結(jié)構(gòu)無關(guān)的操作,并且把它重定向為網(wǎng)絡(luò)文件系統(tǒng)中的函數(shù)調(diào)用,網(wǎng)絡(luò)文件系統(tǒng)則處理與物理結(jié)構(gòu)相關(guān)的操作。

通過對以上過程的描述可以看出,如果在網(wǎng)絡(luò)文件系統(tǒng)層進(jìn)行改造,那么存儲在磁盤陣列上的文件對于系統(tǒng)和應(yīng)用程序都是透明的。

2、對于通過網(wǎng)絡(luò)文件系統(tǒng)訪問的文件,具有對文件的加密和解密功能,加脫密處理由SSP02A算法芯片完成

當(dāng)網(wǎng)絡(luò)文件系統(tǒng)進(jìn)行文件寫入操作時,把需要寫入的文件數(shù)據(jù)加密,并將密文數(shù)據(jù)寫入到磁盤陣列上;相反,當(dāng)網(wǎng)絡(luò)文件系統(tǒng)進(jìn)行文件讀取操作時,把讀取到的密文數(shù)據(jù)解密,并將解密后的明文返回給文件系統(tǒng)。通過以上兩個過程完成對存儲在磁盤陣列上的文件數(shù)據(jù)的加密和解密操作。

3、過網(wǎng)絡(luò)系統(tǒng)保存的文件,用塊加密的方式實現(xiàn)

塊加密比流式加密具有更好的安全性,但是塊加密時對于不到一塊的數(shù)據(jù)需要進(jìn)行填充,所以需要改變文件的大小。

三、刀片加密服務(wù)器的文件加密和解密

下面我們通過圖1所示的文件定位示意圖來描述文件加密解密的實現(xiàn)過程。

如果網(wǎng)絡(luò)文件系統(tǒng)NFS對圖1中三段的數(shù)據(jù)進(jìn)行隨機(jī)讀寫操作時,對稱加密算法對L段數(shù)據(jù)信息的加密處理是將£長的明文加密后得到l長的密文,解密處理是將l長的密的明文加密后得到l長的密文,解密處理是將L長的密文解密后得到l長的明文,該過程要求L段的數(shù)據(jù)長度(字節(jié)數(shù))為加密長度F(F=16)的整數(shù)倍。下面我們以文件寫操作過程為例介紹NFS對文件的讀寫操作處理。文件讀操作過程和文件寫操作過程類似。

在進(jìn)行文件寫操作時,假設(shè)被寫入的明文數(shù)據(jù)段的起點——即該段數(shù)據(jù)在文件中的起始偏移量為a,結(jié)束點——即結(jié)束偏移量為b、長度為L,NFS首先判斷口是否是加密長度F的整數(shù)倍:

①如果不是,那么需將起始偏移量.向前移動到加密長度F的整數(shù)倍的位置(假設(shè)向前移動了c個位置,到達(dá)d處。

②如果是,則新的寫人數(shù)據(jù)L1的起點——即起始偏移量與原數(shù)據(jù)l的起點一樣,為d=a,L1的長度=L的長度,L1的結(jié)束點——即結(jié)束偏移量與L的結(jié)束點相同,為b。

通過以上操作確定出新的寫入數(shù)據(jù)L1的起點為d。然后再確定結(jié)束點s,首先判斷需要寫入的數(shù)據(jù)L1的長度是否為加密長度F的整數(shù)倍。

③如果不是(假設(shè)少g =f -b個數(shù)據(jù)),可能會有三種情況:

如果從b點再向后移動g個數(shù)據(jù)到達(dá)f點,仍未超出文件結(jié)束位置(即f點在文件內(nèi)),則需要從(b- b%F)位置——即圖2中e處開始讀取F(加密長度)個數(shù)據(jù)(到達(dá)f處)進(jìn)行解密,得到F個明文數(shù)據(jù),將這F個明文數(shù)據(jù)中的后g個與L1段長的明文數(shù)據(jù)一起構(gòu)成寫入數(shù)據(jù)L2,即:L2的長度=L1的長度+g,g個新脫密的數(shù)據(jù)在L1個原數(shù)據(jù)的后面,L2的起點——即起始偏移量與L1的相同,為d,L2的結(jié)束點s-即結(jié)束偏移量為s =f。

如果從b點再向后移動g個數(shù)據(jù)到達(dá)f點,已超出文件結(jié)束位置(即f點在文件外,b點后面只有x個數(shù)據(jù),x<g),則將結(jié)束偏移量b向前移動至(b-b%F)位置——即圖2中e處,將e點作為新的寫入數(shù)據(jù)L2的結(jié)束點——即結(jié)束偏移量為s=e,L2的長度=/1的長度- (F-g),L2的起點——即起始偏移量與L1的相同。對剩余的(F-g+x)個明文數(shù)據(jù)進(jìn)行填充然后再加密處理。

④如果是,則新的寫入數(shù)據(jù)L2的起點——即起始偏移量與原數(shù)據(jù)L1的起點一樣,為d,L2的長度l1的長度,L2的結(jié)束點——即結(jié)束偏移量s與L1的結(jié)束點相同,為s=b。

通過以上操作確定出最終的寫入數(shù)據(jù)L2的起點為d、終點為趴長度為L2,L2的起點、終點偏移量均為加密長度F的整數(shù)倍。

最后將L2段明文加密后寫入磁盤陣列。

現(xiàn)在討論一下對可能剩余的F-g+x(0<(g-x)<F,x>0或x=0)個明文數(shù)據(jù)進(jìn)行填充后加密:由于這部分?jǐn)?shù)據(jù)的長度小于加密長度F,也就是說,如果F為16個字節(jié),那么這部分?jǐn)?shù)據(jù)最多為15個字節(jié),這時需要填充(g-x)個數(shù)據(jù),填充后進(jìn)行加密處理,并將(g-x)寫入文件結(jié)束的一個字節(jié)。無論需不需要填充,文件都需要增加一個字節(jié)保存填充的個數(shù),不填充時為O,填充時為填充的個數(shù),脫密時根據(jù)填充的個數(shù)去除填充數(shù)據(jù)。

總之,刀片加密服務(wù)器使用戶免除后顧之憂;通過服務(wù)器加密和解密技術(shù)使人們開發(fā)、應(yīng)用因特網(wǎng)的商機(jī)成為可能,它將能逐步改變企業(yè)傳統(tǒng)的建網(wǎng)觀念,使企業(yè)由獨立建網(wǎng)逐步轉(zhuǎn)變?yōu)樽庥霉W(wǎng),計算機(jī)網(wǎng)絡(luò)將真正走向公用化。

小知識之刀片服務(wù)器

刀片服務(wù)器是指在標(biāo)準(zhǔn)高度的機(jī)架式機(jī)箱內(nèi)可插裝多個卡式的服務(wù)器單元,是一種實現(xiàn)HAHD(HighAvaiMabiMityHighDensity,高可用高密度)的低成本服務(wù)器平臺。