一種基于iSCSI網(wǎng)絡(luò)存儲(chǔ)的加密實(shí)現(xiàn)方法及實(shí)現(xiàn)系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種基于iSCSI網(wǎng)絡(luò)存儲(chǔ)的加密實(shí)現(xiàn)方法及實(shí)現(xiàn)系統(tǒng),特別是涉及一種適用于基于iSCSI網(wǎng)絡(luò)存儲(chǔ)的加密實(shí)現(xiàn)方法及實(shí)現(xiàn)系統(tǒng)。
【背景技術(shù)】
[0002]iSCSI協(xié)議構(gòu)建在TCP協(xié)議之上,基于iSCSI協(xié)議實(shí)現(xiàn)的網(wǎng)絡(luò)存儲(chǔ)技術(shù),在設(shè)計(jì)之初沒有考慮如下兩個(gè)問題:
(1)存儲(chǔ)數(shù)據(jù)在TCP/IP網(wǎng)絡(luò)中明文傳輸易被非法截獲;
(2)數(shù)據(jù)以明文方式存儲(chǔ)到存儲(chǔ)陣列上易被竊取。
[0003]當(dāng)前市場上還沒有針對(duì)基于iSCSI協(xié)議的網(wǎng)絡(luò)存儲(chǔ)提供存儲(chǔ)加密相關(guān)的有效解決方法,但存在網(wǎng)絡(luò)傳輸加密的解決方法,也存在本地磁盤加密的解決方法。
[0004]將網(wǎng)絡(luò)傳輸加密和本地磁盤加密兩個(gè)解決方法結(jié)合起來應(yīng)用于iSCSI網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)中可以解決以上兩個(gè)問題,方法模型如圖1所示。
[0005]以上網(wǎng)絡(luò)傳輸加密和本地磁盤加密兩個(gè)解決方法結(jié)合實(shí)現(xiàn)起來可操作性差、用戶體驗(yàn)差。首先要實(shí)現(xiàn)iSCSI存儲(chǔ)陣列上的存儲(chǔ)加密功能需要存儲(chǔ)陣列廠家支持。同時(shí)需要在存儲(chǔ)網(wǎng)絡(luò)中增加了兩個(gè)對(duì)稱式的網(wǎng)絡(luò)加密設(shè)備,降低了網(wǎng)絡(luò)傳輸效率,此外iSCSI服務(wù)器與iSCSI存儲(chǔ)陣列之間的一次存儲(chǔ)數(shù)據(jù)交互需經(jīng)過兩次加密一次解密或者兩次解密一次加密,增加了時(shí)延,用戶體驗(yàn)差。
【發(fā)明內(nèi)容】
[0006]本發(fā)明要解決的技術(shù)問題是提供一種可操作性更強(qiáng),時(shí)延更低,用戶體驗(yàn)更好的,能夠同時(shí)解決“存儲(chǔ)數(shù)據(jù)在TCP/IP網(wǎng)絡(luò)中明文傳輸易被非法截獲”、“存儲(chǔ)數(shù)據(jù)明文存儲(chǔ)到存儲(chǔ)陣列上易被竊取”兩個(gè)技術(shù)問題的基于iSCSI網(wǎng)絡(luò)存儲(chǔ)的加密實(shí)現(xiàn)方法實(shí)現(xiàn)系統(tǒng)。
[0007]本發(fā)明采用的技術(shù)方案如下:一種基于iSCSI網(wǎng)絡(luò)存儲(chǔ)的加密實(shí)現(xiàn)方法,其特征在于,采用通用分組加密技術(shù),根據(jù)分組加密方法進(jìn)行加密和分組解密方法進(jìn)行解密,具體方法為:
(l)iSCSI服務(wù)器向iSCSI存儲(chǔ)陣列存放存儲(chǔ)數(shù)據(jù)時(shí),將TCP包中包含的存儲(chǔ)數(shù)據(jù)按照分組算法的長度要求,進(jìn)行分組加密,將加密后的密文數(shù)據(jù)存儲(chǔ)保存到存儲(chǔ)陣列中;
(2HSCSI服務(wù)器從iSCSI存儲(chǔ)陣列讀取存儲(chǔ)數(shù)據(jù)時(shí),將TCP包中包含的存儲(chǔ)數(shù)據(jù)按照分組算法的長度要求,進(jìn)行分組解密,將解密后的存儲(chǔ)明文數(shù)據(jù)發(fā)送至iSCSI服務(wù)器。
[0008]當(dāng)iSCSI服務(wù)器往iSCSI存儲(chǔ)陣列存儲(chǔ)數(shù)據(jù)時(shí),會(huì)借助TCP協(xié)議發(fā)送存儲(chǔ)明文數(shù)據(jù),每個(gè)TCP包中包含的存儲(chǔ)數(shù)據(jù)長度一般都不滿足分組算法的長度要求,通過等待相鄰TCP包、存儲(chǔ)數(shù)據(jù)拼湊等方法來達(dá)到分組算法的長度要求,然后對(duì)存儲(chǔ)數(shù)據(jù)進(jìn)行分組加密,加密后存儲(chǔ)密文數(shù)據(jù)保存在存儲(chǔ)陣列中。
[0009]當(dāng)iSCSI服務(wù)器從iSCSI存儲(chǔ)陣列讀取存儲(chǔ)數(shù)據(jù)時(shí),iSCSI存儲(chǔ)陣列會(huì)借助TCP協(xié)議發(fā)送存儲(chǔ)密文數(shù)據(jù),每個(gè)TCP包中包含的存儲(chǔ)數(shù)據(jù)長度一般都不滿足分組算法的長度要求,通過等待相鄰TCP包、存儲(chǔ)數(shù)據(jù)拼湊等方法來達(dá)到分組算法的長度要求,然后進(jìn)行分組解密,解密后存儲(chǔ)明文數(shù)據(jù)被發(fā)送至iSCSI服務(wù)器。
[0010]作為優(yōu)選,所述步驟(1)的具體方法流程為:
1-1、對(duì)來自iSCSI服務(wù)器的TCP包,進(jìn)行iSCSI協(xié)議解析,判斷是否為iSCSI協(xié)議包,是則進(jìn)入下一步,否則進(jìn)行透明傳送;
1-2、判斷該TCP包是否含有存儲(chǔ)數(shù)據(jù),是則進(jìn)入下一步,否則進(jìn)行透明傳送;
1-3、判斷該TCP包存儲(chǔ)數(shù)據(jù)長度是否為分組加密每組要求長度的整數(shù)倍,是則對(duì)該存儲(chǔ)數(shù)據(jù)進(jìn)行分組加密,并將加密后的該TCP包發(fā)送給iSCSI存儲(chǔ)陣列保存,否則進(jìn)入下一步;
1-4、等待相鄰的TCP包來到,接收該相鄰TCP包,將兩個(gè)TCP包中未加密的存儲(chǔ)數(shù)據(jù)進(jìn)行拼湊,分為兩部分:滿足分組加密長度倍數(shù)的部分和不滿足分組加密長度的部分,把滿足分組加密長度的部分送去加密;
1-5、將存儲(chǔ)數(shù)據(jù)已全部加密的TCP包發(fā)送給iSCSI存儲(chǔ)陣列保存,存儲(chǔ)數(shù)據(jù)部分加密的TCP包跳轉(zhuǎn)到步驟1-4,繼續(xù)等待下一個(gè)相鄰的TCP包來到。
[0011]iSCSI服務(wù)器發(fā)送給iSCSI存儲(chǔ)陣列的存儲(chǔ)數(shù)據(jù)長度之和一定滿足分組加密每組要求長度的整數(shù)倍,根據(jù)步驟1-3、1-4和1-5的循環(huán)處理,一定能將存儲(chǔ)數(shù)據(jù)全部分組加密后發(fā)送給iSCSI存儲(chǔ)陣列保存。
[0012]作為優(yōu)選,所述方法流程還包括:在步驟1-3之后和步驟1-4之前,若在閾值時(shí)間內(nèi)未收到相鄰的TCP包,構(gòu)造應(yīng)答指令給iSCSI服務(wù)器,告訴iSCSI服務(wù)器應(yīng)該發(fā)送相鄰的TCP 包。
[0013]作為優(yōu)選,所述步驟(2)的具體方法流程為:
2-1、對(duì)來自iSCSI磁盤存儲(chǔ)陣列的TCP包,進(jìn)行iSCSI協(xié)議解析,判斷是否為iSCSI協(xié)議包,是則進(jìn)入下一步,否則進(jìn)行透明傳送;
2-2、判斷該TCP包是否含有存儲(chǔ)數(shù)據(jù),是則進(jìn)入下一步,否則進(jìn)行透明傳送;
2-3、判斷該TCP包存儲(chǔ)數(shù)據(jù)長度是否為分組解密每組要求長度的整數(shù)倍,是則對(duì)該存儲(chǔ)數(shù)據(jù)進(jìn)行分組解密,并將解密后的該TCP包發(fā)送給iSCSI服務(wù)器,否則進(jìn)入下一步;
2-4、等待相鄰的TCP包來到,接收該相鄰TCP包,將兩個(gè)TCP包中未解密的存儲(chǔ)數(shù)據(jù)進(jìn)行拼湊,分為兩部分:滿足分組解密長度倍數(shù)的部分和不滿足分組解密長度的部分,把滿足分組解密長度的部分送去解密;
2-5、將存儲(chǔ)數(shù)據(jù)已全部解密的TCP包發(fā)送給iSCSI服務(wù)器,存儲(chǔ)數(shù)據(jù)部分解密的TCP包跳轉(zhuǎn)到步驟2-4,繼續(xù)等待下一個(gè)相鄰的TCP包來到。
[0014]iSCSI服務(wù)器從iSCSI存儲(chǔ)陣列讀取的存儲(chǔ)數(shù)據(jù)長度之和一定滿足分組解密每組要求長度的整數(shù)倍,根據(jù)步驟2-3、2-4和2-5的循環(huán)處理,一定能將存儲(chǔ)數(shù)據(jù)全部分組解密后發(fā)送給iSCSI服務(wù)器。
[0015]作為優(yōu)選,所述方法流程還包括:在步驟2-3之后和步驟2-4之前,若在閾值時(shí)間內(nèi)未收到相鄰的TCP包,則構(gòu)造應(yīng)答指令給iSCSI存儲(chǔ)陣列,告訴iSCSI存儲(chǔ)陣列應(yīng)該發(fā)送相鄰的TCP包。
[0016]作為優(yōu)選,所述分組加密算法每組要求長度和分組解密算法每組要求長度相等。
[0017]基于上述基于iSCSI網(wǎng)絡(luò)存儲(chǔ)的加密實(shí)現(xiàn)方法的加密實(shí)現(xiàn)系統(tǒng),包括iSCSI服務(wù)器和iSCSI存儲(chǔ)陣列模塊,其特征在于:還包括連接于iSCSI服務(wù)器和iSCSI存儲(chǔ)陣列模塊之間的,
分組加密模塊,將iSCSI服務(wù)器要向iSCSI存儲(chǔ)陣列存儲(chǔ)的TCP包中包含的存儲(chǔ)數(shù)據(jù),按照分組算法的長度要求,進(jìn)行分組加密,將加密后的密文數(shù)據(jù)存儲(chǔ)保存到存儲(chǔ)陣列中;分組解密模塊,將iSCSI服務(wù)器要從iSCSI磁盤存儲(chǔ)陣列讀取的TCP包中包含的存儲(chǔ)數(shù)據(jù),按照分組算法的長度要求,進(jìn)行分組解密,將解密后的存儲(chǔ)明文數(shù)據(jù)發(fā)送給iSCSI服務(wù)器。
[0018]作為優(yōu)選,所述分組加密模塊包括:
iSCSI協(xié)議包解析判斷模塊,對(duì)來自iSCSI服務(wù)器的TCP包,進(jìn)行iSCSI協(xié)議解析,判斷是否為iSCSI協(xié)議包;
存儲(chǔ)數(shù)據(jù)判斷模塊,判斷當(dāng)前TCP包是否含有存儲(chǔ)數(shù)據(jù);
數(shù)據(jù)分組判斷模塊,判斷該TCP包存儲(chǔ)數(shù)據(jù)長度是否為分組加密每組要求長度的整數(shù)倍;
存儲(chǔ)數(shù)據(jù)加密模塊,對(duì)分組后的存儲(chǔ)數(shù)據(jù)進(jìn)行分組加密;
數(shù)據(jù)發(fā)送模塊,將加密后的TCP包發(fā)送給iSCSI存儲(chǔ)陣列;
所述分組解密模塊包括:
iSCSI協(xié)議包解析判斷模塊,對(duì)來自iSCSI磁盤存儲(chǔ)陣列的TCP包,進(jìn)行iSCSI協(xié)議解析,判斷是否為iSCSI協(xié)議包;
存儲(chǔ)數(shù)據(jù)判斷模塊,判斷當(dāng)前TCP包是否含有存儲(chǔ)數(shù)據(jù);
數(shù)據(jù)分組判斷模塊,判斷該TCP包存儲(chǔ)數(shù)據(jù)長度是否為分組解密每組要求長度的整數(shù)倍;
存儲(chǔ)數(shù)據(jù)解密模塊,對(duì)分組后的存儲(chǔ)數(shù)據(jù)進(jìn)行分組解密;
數(shù)據(jù)發(fā)送模塊,將解密后的TCP包發(fā)送給iSCSI存儲(chǔ)陣列。
[0019]作為優(yōu)選,所述分組加密模塊還包括:
重傳指令發(fā)送模塊,構(gòu)造應(yīng)答指令給iSCSI服務(wù)器,告訴iSCSI服務(wù)器應(yīng)該發(fā)送相鄰的TCP 包;
所述分組解密模塊還包括:
重傳指令發(fā)送模塊,構(gòu)造應(yīng)答指令給iSCSI存儲(chǔ)陣列,告訴iSCSI存儲(chǔ)陣列應(yīng)該發(fā)送相鄰的TCP包。
[0020]與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:本方法采用現(xiàn)有通用分組加密技術(shù),實(shí)現(xiàn)的iSCSI網(wǎng)絡(luò)存儲(chǔ)分組加密過程,不改造用戶現(xiàn)有設(shè)備,不改變用戶網(wǎng)絡(luò)環(huán)境,技術(shù)上具備可操作性,可同時(shí)解決“存儲(chǔ)數(shù)據(jù)在TCP/IP網(wǎng)絡(luò)中明文傳輸易被非法截獲”、“存儲(chǔ)數(shù)據(jù)明文存儲(chǔ)到存儲(chǔ)陣列上易被竊取”兩個(gè)問題,解決了 iSCSI網(wǎng)絡(luò)傳輸加密這類安全技術(shù)和產(chǎn)品的實(shí)用化和市場普及化問題。
【附圖說明】
[0021]圖1為現(xiàn)有技術(shù)網(wǎng)絡(luò)存儲(chǔ)加密方法模型示意圖。
[0022]圖2為本發(fā)明iSCSI分組加密方法模塊示意圖。
[0023]圖3為圖2所示一具體實(shí)施例的加密實(shí)現(xiàn)流程圖。
[0024]圖4為圖2所示一具體實(shí)施例的解密實(shí)現(xiàn)流程圖。
【具體實(shí)施方式】
[0025]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0026]本說明書(包括摘要和附圖)中公開的任一特征,除非特別敘述,均可被其他等效或者具有類似目的的替代特征加以替換。S卩,除非特別敘述,每個(gè)特征只是一系列等效或類似特征中的一個(gè)例子而已。
[0027]如圖2到圖4所示。
[0028]具體實(shí)施例一
基于iSCSI網(wǎng)絡(luò)存儲(chǔ)的加密實(shí)現(xiàn)方法和實(shí)現(xiàn)系統(tǒng),該實(shí)現(xiàn)系統(tǒng)包括iSCSI服務(wù)器和iSCSI存儲(chǔ)陣列模塊,還包括連接于iSCSI服務(wù)器和iSCSI存儲(chǔ)陣列模塊之間的,
分組加密模塊,將iSCSI服務(wù)器要向iSCSI存儲(chǔ)陣列存儲(chǔ)的TCP包中包含的存儲(chǔ)數(shù)據(jù),按照分組算法的長度要求,進(jìn)行分組加密,將加密后的密文數(shù)據(jù)存儲(chǔ)保存到存儲(chǔ)陣列中;分組解密模塊,將iSCSI服務(wù)器要從iSCSI磁盤存儲(chǔ)陣列讀取的TCP包中包含的存儲(chǔ)數(shù)據(jù),按照分組算法的長度要求,進(jìn)行分組解密,將解密后的存儲(chǔ)明文數(shù)據(jù)發(fā)送給iSCSI服務(wù)器。
[0029]在本具體實(shí)施例中,所述分組加密模塊包括:iSCSI協(xié)議包解析判斷模塊,對(duì)來自iSCSI服務(wù)器的TCP包,進(jìn)行iSCSI協(xié)議解析,判斷是否為iSCSI協(xié)議包;存儲(chǔ)數(shù)據(jù)判斷模塊,判斷當(dāng)前TCP包是否含有存儲(chǔ)數(shù)據(jù);數(shù)據(jù)分組判斷模塊,判斷該TCP包存儲(chǔ)數(shù)據(jù)長度是否為分組加密每組要求長度的整數(shù)倍;存儲(chǔ)數(shù)據(jù)加密模塊,對(duì)分組后的存儲(chǔ)數(shù)據(jù)進(jìn)行分組加密;數(shù)據(jù)發(fā)送模塊,將加密后的TCP包發(fā)送給iSCSI存儲(chǔ)陣列;
所述分組解密模塊包括:iSCSI協(xié)議包解析判斷模塊,對(duì)來自iSCSI磁盤存儲(chǔ)陣列的TCP包,進(jìn)行iSC