一種基于device mapper的加密卡性能優(yōu)化的方法
【專利摘要】本發(fā)明提供一種基于DEVICE MAPPER的加密卡性能優(yōu)化的方法,加密卡的API整合到DeviceMapper這個(gè)通用塊設(shè)備內(nèi)核框架中,實(shí)現(xiàn)適用于加密卡的dm-crypt加密塊設(shè)備模塊,進(jìn)而可以創(chuàng)建加密文件系統(tǒng),在磁盤存儲(chǔ)級(jí)別對(duì)機(jī)密數(shù)據(jù)進(jìn)行保護(hù);加密塊設(shè)備模塊為國(guó)產(chǎn)加密算法sm1的同步塊加密和異步塊加密兩種方式,并提供了sm1算法注冊(cè)到內(nèi)核密碼管理器的方法。本發(fā)明的一種基于DEVICE MAPPER的加密卡性能優(yōu)化的方法和現(xiàn)有技術(shù)相比,通過(guò)多卡之間的并行來(lái)實(shí)現(xiàn)速度的提升;在系統(tǒng)的資源利用率方面主要是改變?cè)械募用芸üぷ鞣绞?,變死等方式為異步工作模式,大量?jié)省cpu時(shí)間。
【專利說(shuō)明】—種基于DEVICE MAPPER的加密卡性能優(yōu)化的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)存儲(chǔ)【技術(shù)領(lǐng)域】,具體地說(shuō)是一種基于DEVICE MAPPER的加密卡性能優(yōu)化的方法。
【背景技術(shù)】
[0002]透明加密技術(shù)是近年來(lái)針對(duì)企業(yè)文件保密需求應(yīng)運(yùn)而生的一種文件加密技術(shù)。所謂透明,是指對(duì)使用者來(lái)說(shuō)是未知的。當(dāng)使用者在打開(kāi)或編輯指定文件時(shí),系統(tǒng)將自動(dòng)對(duì)未加密的文件進(jìn)行加密,對(duì)已加密的文件自動(dòng)解密。文件在硬盤上是密文,在內(nèi)存中是明文。一旦離開(kāi)使用環(huán)境,由于應(yīng)用程序無(wú)法得到自動(dòng)解密的服務(wù)而無(wú)法打開(kāi),從而起來(lái)保護(hù)文件內(nèi)容的效果。
[0003]為了對(duì)磁盤上存儲(chǔ)的數(shù)據(jù)進(jìn)行加密,需要選定健壯而且安全的加密算法,加密算法是一些公式和法則,它規(guī)定了明文和密文之間的變換方法。傳統(tǒng)的國(guó)際通用的一些加密算法包括DES,RSA,AES等等,但是我國(guó)出于安全性的考慮,自行開(kāi)發(fā)商用國(guó)密算法,對(duì)具有敏感性的內(nèi)部信息、行政事務(wù)信息、經(jīng)濟(jì)信息等進(jìn)行加密保護(hù)。
[0004]但是,這些國(guó)密算法大都以IP核的形式存在于硬件加密卡的芯片中,對(duì)如何使用這些加密卡的API接口,在傳統(tǒng)的塊設(shè)備驅(qū)動(dòng)的哪一個(gè)層次加入加密模塊以及使用什么樣的方式調(diào)用加密模塊的接口提出了挑戰(zhàn)。
[0005]除此之外,加密卡的性能和磁盤的性能之間的瓶頸問(wèn)題也一直是開(kāi)發(fā)安全的存儲(chǔ)系統(tǒng)所需要面對(duì)的問(wèn)題。如何在加密卡既定的性能極限基礎(chǔ)上提高其處理速度成為了一個(gè)非常有意義的課題。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的目的是克服現(xiàn)有技術(shù)中存在的不足,提供一種基于DEVICE MAPPER的加密卡性能優(yōu)化的方法。
[0007]本發(fā)明的技術(shù)方案是按以下方式實(shí)現(xiàn)的,其結(jié)構(gòu)中加密卡的API整合到DeviceMapper這個(gè)通用塊設(shè)備內(nèi)核框架中,實(shí)現(xiàn)適用于加密卡的dm_crypt加密塊設(shè)備模塊,進(jìn)而可以創(chuàng)建加密文件系統(tǒng),在磁盤存儲(chǔ)級(jí)別對(duì)機(jī)密數(shù)據(jù)進(jìn)行保護(hù);
加密塊設(shè)備模塊為國(guó)產(chǎn)加密算法sml的同步塊加密和異步塊加密兩種方式,并提供了sml算法注冊(cè)到內(nèi)核密碼管理器的方法。
[0008]通過(guò)在Device Mapper內(nèi)核體系結(jié)構(gòu)中添加適用于加密卡驅(qū)動(dòng)工作的模塊解決塊設(shè)備驅(qū)動(dòng)架構(gòu)調(diào)度加密卡加解密接口的問(wèn)題,并提供了同步和異步的工作方式,提供了包括SSF33,SSF28,SCB2多種加密算法。
[0009]在加密卡的驅(qū)動(dòng)代碼中實(shí)現(xiàn)了添加密碼算法到內(nèi)核的密碼管理器的方法。
[0010]本發(fā)明的優(yōu)點(diǎn)是:
本發(fā)明的一種基于DEVICE MAPPER的加密卡性能優(yōu)化的方法和現(xiàn)有技術(shù)相比,通過(guò)多卡之間的并行來(lái)實(shí)現(xiàn)速度的提升;在系統(tǒng)的資源利用率方面主要是改變?cè)械募用芸üぷ鞣绞?,變死等方式為異步工作模式,大量?jié)省CPU時(shí)間,而且本發(fā)明具有設(shè)計(jì)合理、結(jié)構(gòu)簡(jiǎn)單、使用方便等特點(diǎn),因而,具有很好的使用價(jià)值。
【專利附圖】
【附圖說(shuō)明】
[0011]圖1為總體架構(gòu)說(shuō)明圖。
[0012]圖2為加密模塊說(shuō)明類圖。
[0013]圖3為訪問(wèn)映射設(shè)備說(shuō)明圖。
[0014]圖4為加密卡并行工作示意圖。
【具體實(shí)施方式】
[0015]下面結(jié)合附圖對(duì)本發(fā)明的一種基于DEVICE MAPPER的加密卡性能優(yōu)化的方法作以下詳細(xì)說(shuō)明。
[0016]如圖1-4所示,本發(fā)明的一種基于DEVICE MAPPER的加密卡性能優(yōu)化的方法,其結(jié)構(gòu)中加密卡的API整合到Device Mapper這個(gè)通用塊設(shè)備內(nèi)核框架中,實(shí)現(xiàn)適用于加密卡的dm-crypt加密塊設(shè)備模塊,進(jìn)而可以創(chuàng)建加密文件系統(tǒng),在磁盤存儲(chǔ)級(jí)別對(duì)機(jī)密數(shù)據(jù)進(jìn)行保護(hù);
加密塊設(shè)備模塊為國(guó)產(chǎn)加密算法sml的同步塊加密和異步塊加密兩種方式,并提供了sml算法注冊(cè)到內(nèi)核密碼管理器的方法。
[0017]通過(guò)在Device Mapper內(nèi)核體系結(jié)構(gòu)中添加適用于加密卡驅(qū)動(dòng)工作的模塊解決塊設(shè)備驅(qū)動(dòng)架構(gòu)調(diào)度加密卡加解密接口的問(wèn)題,并提供了同步和異步的工作方式,提供了包括SSF33,SSF28,SCB2多種加密算法。
[0018]在加密卡的驅(qū)動(dòng)代碼中實(shí)現(xiàn)了添加密碼算法到內(nèi)核的密碼管理器的方法。
[0019]如圖1所示,1數(shù)據(jù)加密架構(gòu)圖中包括了 7個(gè)不同的分層模塊,分別是SCS1-1NITIATOR, SCS1-TARGET, I CM,DM, RAID, VDISK, DISK,分別負(fù)責(zé)了 SCSI 初始化,SCSI傳輸協(xié)議,1緩存和鏡像,邏輯卷管理(實(shí)現(xiàn)存儲(chǔ)分區(qū)),磁盤陣列的冗余可靠信管理等等,我們主要是在DM設(shè)備映射層進(jìn)行改造,實(shí)現(xiàn)sml加密算法的調(diào)用。
[0020]我們?cè)诜羌用芫?流程中加入Device Mapper框架中的crypt類型的加密設(shè)備,并映射出來(lái)相應(yīng)的哈希算法、加密算法。我們所需要的sml算法就包含在其中。
[0021]我們采用的策略是:
(1)在塊設(shè)備層間加一層塊設(shè)備用于加密/解密,重新申請(qǐng)b1及其page,以隔離上層明文數(shù)據(jù);
(2)考慮到加密范圍的粒度,且目前內(nèi)核已有dm-crypt模塊支持加密,它使用內(nèi)核數(shù)據(jù)加密框架,該框架支持多種加密算法并可按模塊添加。
[0022]采用這種策略的特點(diǎn)是:
(O上下層數(shù)據(jù)緩存不共享,避免明文和密文共用緩存區(qū)引起的潛在的重復(fù)加密/解密從而得到錯(cuò)誤數(shù)據(jù)等缺陷;
(2)復(fù)制b1需要申請(qǐng)相同數(shù)量的page,即需要更多內(nèi)存;
(3)該層采用隊(duì)列的方式接收異步b1請(qǐng)求,可實(shí)現(xiàn)更大并發(fā)(若加密模塊支持);
(4)該方式不能對(duì)LV,RAID元數(shù)據(jù)進(jìn)行加密; (5)由于是增加虛擬塊設(shè)備層使用通用make_request接口提交請(qǐng)求,稱合度低。
[0023]Crypt設(shè)備接受上層ICM下發(fā)的b1請(qǐng)求,加入到工作隊(duì)列中異步處理,工作隊(duì)列通過(guò)復(fù)制和申請(qǐng)新的b1和bv_page,調(diào)用crypto模塊的接口進(jìn)行加密解密操作,將上層明文數(shù)據(jù)和下層密文數(shù)據(jù)相隔離
具體的調(diào)用關(guān)系類圖如圖2所示,其中dm-crypt實(shí)現(xiàn)DM架構(gòu)的target模型,提供crypt設(shè)備的創(chuàng)建、讀寫請(qǐng)求處理、刪除等操作,crypto則向應(yīng)用者提供加密算法分配、設(shè)置、加密和解密接口和功能,后端則按照crypto_alg模型調(diào)用具體加密算法的設(shè)置密鑰、加密、解密等接口。
[0024]經(jīng)過(guò)改造的Device Mapper設(shè)備訪問(wèn)如圖3所示,原有的b1經(jīng)過(guò)映射塊層,我們需要在這一層中調(diào)用加密卡的接口,所以需要把b1經(jīng)過(guò)重定向到硬件中經(jīng)過(guò)一定的加密/解密處理得到的結(jié)果再進(jìn)一步向下或向上層傳輸(對(duì)應(yīng)讀/寫操作)。
[0025]所有正常傳輸?shù)臄?shù)據(jù)經(jīng)過(guò)重新定向經(jīng)過(guò)硬件加密卡中進(jìn)行處理,加密卡的性能必然對(duì)系統(tǒng)的性能造成一定的影響,如果加密卡的吞吐量小于系統(tǒng)的原有的吞吐量,那么單加密卡的限制必然會(huì)造成系統(tǒng)的性能瓶頸,針對(duì)這一問(wèn)題我們可以更換性能更高的加密卡,但是單個(gè)加密卡的性能往往不夠?qū)嶋H的需求,所以我們提出了一種多卡并行的模型,讓多個(gè)加密卡協(xié)同并行的工作來(lái)達(dá)到一定的性能需求,從而不會(huì)影響原有的磁盤吞吐量。具體的方法可參照如圖4所示。
[0026]在實(shí)際的加密卡性能測(cè)試的過(guò)程中,我們還發(fā)現(xiàn)在既有的驅(qū)動(dòng)中采用了 ndelayO函數(shù)原子等待DMA中斷,該等待方式會(huì)大量消耗浪費(fèi)CPU,造成計(jì)算資源的浪費(fèi),為此我們開(kāi)發(fā)了適用于加密卡異步工作的加密算法調(diào)用的模式,在大量數(shù)據(jù)傳輸過(guò)程中,使得cpu的利用率從30?40%下降到10?20%。
[0027]本發(fā)明的一種基于DEVICE MAPPER的加密卡性能優(yōu)化的方法其加工制作非常簡(jiǎn)單方便,按照說(shuō)明書附圖所示即可加工。
[0028]除說(shuō)明書所述的技術(shù)特征外,均為本專業(yè)技術(shù)人員的已知技術(shù)。
【權(quán)利要求】
1.一種基于DEVICE MAPPER的加密卡性能優(yōu)化的方法,其特征在于加密卡的API整合到Device Mapper這個(gè)通用塊設(shè)備內(nèi)核框架中,實(shí)現(xiàn)適用于加密卡的dm_crypt加密塊設(shè)備模塊,進(jìn)而可以創(chuàng)建加密文件系統(tǒng),在磁盤存儲(chǔ)級(jí)別對(duì)機(jī)密數(shù)據(jù)進(jìn)行保護(hù); 加密塊設(shè)備模塊為國(guó)產(chǎn)加密算法sml的同步塊加密和異步塊加密兩種方式,并提供了sml算法注冊(cè)到內(nèi)核密碼管理器的方法。
2.根據(jù)權(quán)利要求1所述的一種基于DEVICEMAPPER的加密卡性能優(yōu)化的方法,其特征在于通過(guò)在Device Mapper內(nèi)核體系結(jié)構(gòu)中添加適用于加密卡驅(qū)動(dòng)工作的模塊解決塊設(shè)備驅(qū)動(dòng)架構(gòu)調(diào)度加密卡加解密接口的問(wèn)題,并提供了同步和異步的工作方式,提供了包括SSF33, SSF28, SCB2多種加密算法。
3.根據(jù)權(quán)利要求1所述的一種基于DEVICEMAPPER的加密卡性能優(yōu)化的方法,其特征在于在加密卡的驅(qū)動(dòng)代碼中實(shí)現(xiàn)了添加密碼算法到內(nèi)核的密碼管理器的方法。
【文檔編號(hào)】G06F21/78GK104268489SQ201410502219
【公開(kāi)日】2015年1月7日 申請(qǐng)日期:2014年9月26日 優(yōu)先權(quán)日:2014年9月26日
【發(fā)明者】施培任, 邊澤明, 張彥哲 申請(qǐng)人:浪潮電子信息產(chǎn)業(yè)股份有限公司