??? 摘? 要: 一種基于對稱加密體制的光纖通道加密卡密鑰管理方案該方案將獨立的密鑰管理中心,、USB Key、硬件安全設備等有效地應用于密鑰管理的各個重要環(huán)節(jié),可以讓用戶以最小的安全風險和管理代價來管理密鑰信息的產(chǎn)生,、分發(fā),、備份及恢復過程,,從而確保存儲數(shù)據(jù)安全,。?
??? 關鍵詞: 密鑰管理; 密鑰管理中心; USB key; 硬件安全設備
?
??? 近年來,網(wǎng)絡存儲技術已被應用到各個行業(yè),。網(wǎng)絡存儲又被譽為第三次IT浪潮[1],。FC-SAN(Fiber Channel- Storage Area Network)網(wǎng)絡是當前最主流的SAN結(jié)構(gòu),它采用高速的光纖通道構(gòu)架存儲網(wǎng)絡,,并用FCP(Fibre Channel Protocol)協(xié)議傳輸SCSI命令和數(shù)據(jù),。由于光纖通道的遠距離連接能力以及高速的傳輸能力,使得FC-SAN的性能非凡,,被業(yè)界普遍采用,。隨著SAN網(wǎng)絡的日益普及,網(wǎng)絡存儲數(shù)據(jù)的安全問題也受到了人們的廣泛關注,。存儲加密是保護數(shù)據(jù)的普遍做法,。目前,存儲系統(tǒng)中數(shù)據(jù)加密技術的實現(xiàn)分成基于主機層,、網(wǎng)絡層及存儲層的3類,。由于內(nèi)建加密功能的存儲設備才剛推出,目前企業(yè)應用的加密產(chǎn)品以主機或網(wǎng)絡型產(chǎn)品為主流,?;谥鳈C層加密是在前端欲加密的主機上安裝加密軟件進行加密。但軟件加密的缺點是面對企業(yè)達到TB甚至PB級數(shù)據(jù)量,,加密運算將極大增加系統(tǒng)負擔,,影響效能,而且密鑰檔的保管也相當麻煩,,可能會遭到非法復制和遺失,。基于網(wǎng)絡層加密是通過在存儲網(wǎng)絡中插入特殊加密硬件進行加密,,但網(wǎng)絡帶寬會受影響,。硬件方法將加/解密對性能的影響降到最低,可以做到對用戶透明,,并且可以避免軟件方法固有的安全隱患,,最大限度地保證整個系統(tǒng)的安全性。綜合考慮,在主機上安裝硬件加密裝置是較好的選擇,。?
??? 出于對加/解密性能的考慮,,目前大多采用實現(xiàn)方法相對簡單的對稱加密體制。由于加/解密都要使用相同的密鑰,,因此密鑰的存儲和備份便成了該加密體系中最薄弱的環(huán)節(jié),。用專門的硬件設備來存儲和分享密鑰,就可以極大地提高密鑰系統(tǒng)的安全性,。目前流行的USB Key是一種在高安全領域內(nèi)廣泛使用的標準USB接口的設備,,能夠?qū)τ脩裘荑€提供多層的安全保護。使用USB Key除了可以保證用戶密鑰信息的安全性以外,,同時也在管理上以一種“硬件持有物”的方式,,使得用戶對虛擬的“數(shù)字身份”有了物理上的掌握與控制。此外,,為防止一些特權(quán)用戶,,如管理員私自復制密鑰,一個較好的解決辦法是研制多密鑰系統(tǒng),。使用一套密鑰加密數(shù)據(jù),,使用另一套密鑰對管理員進行身份識別。管理員絕不會真正看到用來加密數(shù)據(jù)的密鑰,,從而降低了系統(tǒng)風險,。對SAN網(wǎng)絡而言,完善的密鑰管理系統(tǒng)的研究與開發(fā)是一個十分重要的課題。?
??? 本文在對稱加密體制的基礎上,,將USB Key用于密鑰存儲和身份認證,,結(jié)合密鑰共享和多密鑰加密技術,設計并實現(xiàn)了一種FC加密卡的密鑰管理系統(tǒng),,較好地實現(xiàn)了密鑰的產(chǎn)生,、分發(fā)、備份和恢復功能,,滿足了FC-SAN用戶數(shù)據(jù)存儲的安全需要,。?
1 FC加密卡的密鑰管理設計?
??? 為避免系統(tǒng)過于復雜,且實現(xiàn)起來更加簡單容易,,在實際使用的系統(tǒng)中,,根據(jù)用戶要求和系統(tǒng)規(guī)模采用使系統(tǒng)結(jié)構(gòu)更加緊湊的二種密鑰。一種是主密鑰, 用于保護其他密鑰,;另一種是工作密鑰, 用于保護數(shù)據(jù),。密鑰采用了三層結(jié)構(gòu), 如圖1所示。其中,每一層密鑰用于對下一層密鑰進行加密保護,。同時,,為提高安全性,,加密算法采用早已集成到硬件中并得到廣泛應用的AES[2]-256算法。當然,,對數(shù)據(jù)的加密應該是連貫的隔離操作,,純軟件的加密系統(tǒng)難以做到,因而將采用單獨的硬件安全設備,,即利用位于FC HBA卡和交換機FC接口之間的加密卡完成對進出磁盤陣列的SCSI數(shù)據(jù)的加解密,。另外,為確保對用戶身份的驗證,,需要向用戶分發(fā)認證密鑰,,密鑰的存儲采用安全性很高的USB Key[3]。?
1.1 密鑰的產(chǎn)生和分發(fā)?
??? 密鑰管理中心的密鑰生成模塊采用基于混沌理論的密鑰生成方法來實現(xiàn),。具體描述如下:?
??? 混沌對非線性方程初值敏感,,由混沌獲得的隨機序列可確定數(shù)學形式理論上不可預測的混亂結(jié)果。表現(xiàn)混沌現(xiàn)象的標準蟲口方程(Logistic一維迭代方程)為:?
?????
??? 在非線性作用下,,當μ從0趨向4時,其動力學性態(tài)的復雜性逐步增加,即從定態(tài)變?yōu)橹芷谛詰B(tài),,通過周期倍化級聯(lián)而到達混沌性態(tài),,μ=3.58左右,這種分裂突然呈現(xiàn)崩潰之勢,,周期性態(tài)就變成混沌,,蟲口的漲落再也不會確定下來,即蟲口的逐年變化完全變?yōu)殡S機,。在具體應用中取μ=3.6,,利用式(1)生成224位密鑰,隨后每7位插入一位奇偶校驗位(這里使用奇校驗),,從而生成最后的256位的AES密鑰,。而初始種子通過對當前系統(tǒng)時間加以簡單的線性變換得到。用此方法可以產(chǎn)生工作密鑰,,密鑰的產(chǎn)生均由密鑰管理中心(KMC)自動完成,。?
??? 在存儲加密設備中,存儲加密的安全性與處理性能的瓶頸主要在密鑰的管理與加/解密算法上,。由于加解密算法的性能一般是固定的,,不容易改變,所以性能的瓶頸主要存在于密鑰的管理方面,。因此,,安全與性能是一對需要解決的矛盾,當強調(diào)高安全則會降低性能,,而當強調(diào)高性能則會降低安全性,。為了平衡設備的安全性與性能,本方案采用基于LUN(邏輯單元號)的加密技術。此技術將所有的LUN分成多個加密區(qū),,每個加密分區(qū)使用一個不同的密鑰進行加密,,這樣存儲加密過程中只需要有限多個密鑰就能實現(xiàn)對存儲子系統(tǒng)中所有數(shù)據(jù)塊的加密。每個密鑰長度為32 B,,工作密鑰保存在加密卡上,,使用RAM很容易存儲。這樣一方面減少了密鑰表的大小,,加快了密鑰的查找速度,,提高了數(shù)據(jù)加密的性能;另一方面由于采用了多個密鑰對存儲子系統(tǒng)的多個區(qū)域進行了加密,,與單一固定密鑰的方法相比,,提高了加密數(shù)據(jù)被破解的難度,增強了數(shù)據(jù)加密的安全性,。為進一步確保密鑰安全,,可以用AES-256算法以軟件方式對工作密鑰加密,并將其連同主密鑰,、認證密鑰一起存入USB Key中,,利用用戶PIN確保了其安全。?
1.2 密鑰的備份和恢復?
??? 密鑰管理中心完成密鑰備份和恢復過程,。在密鑰備份過程中采用秘密共享方案對主密鑰,、工作密鑰、認證密鑰進行保存,。在密鑰管理體系模型中,,秘密共享理論主要用來保護敏感密鑰。采用秘密共享方案使得原來應該由一個人承擔保密安全的責任分攤到若干個個體上,,并且減少了密鑰丟失的風險,。(t,n)門限秘密共享方案將一個秘密由n個參與者所共享,只有t個或t個以上的參與者可以聯(lián)合重構(gòu)該秘密,,而(t-1)個或更少的參與者不能得到該秘密的任何信息,。本系統(tǒng)采用文獻[5]中提出的基于Lagrange插值多項式的(t,n)門限方案,實現(xiàn)對管理員方密鑰的安全存儲,。其中t是重構(gòu)密鑰所需的密鑰影子個數(shù), n為產(chǎn)生的影子總數(shù),。選擇一個隨機素數(shù)p,使之比可能的影子數(shù)目和最大可能秘密都大,但需保存,。共享密鑰K時,需構(gòu)造一個次數(shù)最多為t-1的任意多項式:?
?????
??? 為秘密地隨機選取的元素,,每個參與者對應a(x)所確定的曲線上的一個點(xi,yi), 1≤i≤n,并存于n個USB Key中,,其中xi應互不相同,。當獲取其中t份密鑰影子時,,(xm1,ym1),(xm2,ym2),…(xmt,ymt),其中m[1,n],由插值公式:?
?????
??? 對用戶方密鑰采用備份機備份,備份流程如圖2所示,。?
?
?
??? 密鑰恢復分用戶方和管理員方密鑰恢復,。?
??? (1)用戶方存儲在USB Key內(nèi)的密鑰恢復流程:發(fā)出密鑰恢復申請→進行身份認證→認證成功→從密鑰備份機內(nèi)調(diào)出密鑰再分發(fā)給用戶USB Key。?
??? (2)管理員方密鑰的恢復:由于加密密鑰在存儲備份時采用秘密共享方案,,所以在恢復時亦需要t個以上管理員持有的密鑰影子才可以恢復,。密鑰恢復流程:發(fā)出密鑰恢復申請→進行t個管理員身份認證→認證成功→t份子密鑰恢復出密鑰再分發(fā)到管理員USB Key。?
1.3 身份認證?
??? 基于USB Key的身份認證方式是近幾年發(fā)展起來的一種方便,、安全的身份認證技術,。它采用軟硬件相結(jié)合、一次一密的強雙因子認證模式,,很好地解決了安全性與易用性之間的矛盾,。USB Key可以存儲用戶的認證密鑰,利用USB Key內(nèi)置的密碼算法實現(xiàn)對用戶身份的認證,。在登錄認證過程中通常是采用基于沖擊/響應的認證模式,,同時還設置了用戶PIN碼的最大可重試次數(shù)。當PIN碼連續(xù)輸入錯誤達到最大可重試次數(shù)時,,將會自動死鎖,,這樣就成功地防范了窮舉攻擊方式。當PIN碼被鎖死時,,需要KMC重新進行解鎖。 ?
??? 在實際的實現(xiàn)過程中,,需要在服務器端加入登錄認證程序模塊,,并且要獲取USB Key中存放的用戶身份ID、讀寫權(quán)限等信息,,以便FC加密卡根據(jù)該ID號進行訪問控制,。登錄認證模塊的關鍵流程如下:?
??? (1) 用戶插入USB Key,輸入用戶ID,、口令,,向服務器發(fā)出登錄認證請求。 ?
??? (2)服務器接到此請求后生成一個隨機數(shù)R并傳輸給USB Key(此為沖擊),。 ?
??? (3) USB Key使用該隨機數(shù)R,、口令和存儲在USB Key中的認證密鑰進行HMAC-MD5(隨機數(shù)R、口令,、認證密鑰)運算并得到一個結(jié)果作為認證證據(jù)傳給服務器(此為響應),。 ?
??? (4)與此同時,服務器也使用該隨機數(shù)R與存儲在服務器數(shù)據(jù)庫中的該客戶認證密鑰進行HMAC-MD5(隨機數(shù)R,,口令,,認證密鑰)運算,。如果服務器的運算結(jié)果與客戶端傳回的響應結(jié)果相同,則認為客戶端是一個合法用戶,,否則返回第1步,。?
??? (5) 保存用戶ID、讀寫權(quán)限等重要信息,,進入系統(tǒng),。?
??? 其實現(xiàn)流程如圖3所示。?
?
?
2 加密卡密鑰管理系統(tǒng)實現(xiàn)方案?
??? 本密鑰管理系統(tǒng)主要由密鑰管理中心,、FC加密卡和USB Key三部分實現(xiàn),。系統(tǒng)總體框圖如圖4所示。?
?
?
??? 密鑰管理中心是單獨的一套系統(tǒng),,需由專人進行維護管理,。密鑰管理中心主要由密鑰產(chǎn)生、密鑰分發(fā),、密鑰備份,、密鑰恢復等幾個功能模塊構(gòu)成。密鑰管理中心產(chǎn)生主密鑰,、被加密的工作密鑰,,以及用戶身份認證密鑰和訪問控制信息等,同時產(chǎn)生存儲加密設備管理員用戶的認證信息等,;然后將密鑰,、身份認證信息等分發(fā)到USB Key中,并對所有密鑰信息進行備份,。一個密鑰管理中心可以管理多個存儲加密設備的密鑰,。采用密鑰和存儲加密設備相分離的管理方式,即使存儲加密設備丟失,,只要USB Key保存完好,,存儲加密設備都是不可工作的,這樣就保證了存儲池中加密數(shù)據(jù)的安全性,。KMC備份和恢復工作流程如圖5所示,。FC加密卡的加密密鑰采用USB Key以密文的形式注入,配合主機輸入的解密密鑰將工作密鑰解密,。根據(jù)主機設定的控制策略,,對進出磁盤陣列的有效數(shù)據(jù)進行加解密。FC加密卡作為一種加密設備,,為使用該加密卡的磁盤陣列提供加密服務,。用戶的權(quán)限受到主機的控制。非授權(quán)用戶無法讀或?qū)懴嚓P的加密文檔,。磁盤的丟失也不會造成數(shù)據(jù)的丟失,。密鑰的丟失會造成數(shù)據(jù)可能的失密,,所以應妥善保管。用戶登錄采用USB Key加口令認證方式,。?
?
?
??? FC加密卡包含一塊加密卡硬件和相應的驅(qū)動程序及設備管理程序,。加密卡通過PCI-E接口連接到計算機主板。設備管理程序完成設備狀態(tài)檢測,、顯示和日志記錄等功能,。同時,密鑰的注入也由設備管理程序來完成,。?
??? 系統(tǒng)工作流程如下:?
??? (1) KMC向管理員和用戶分發(fā)USB Key并做好相關備份工作,。?
??? (2)管理員啟動設備時,要求必須插入管理員USB Key,,并輸入用戶名和口令進行身份認證,,通過認證后設備才能啟動。設備在啟動后要求插入存放密鑰的USB Key,,將密鑰注入加密卡,。主機將USB Key中的工作密鑰傳送給加密卡通信控制器寫入,經(jīng)過解密后保存在RAM中,,然后開始第二次密鑰注入過程,。兩次傳輸?shù)拿荑€一致后寫入密鑰/控制表,完成后返回確認信息,,加密卡即可進入正常工作模式,,否則加密卡處在監(jiān)聽轉(zhuǎn)發(fā)模式,密鑰注入過程完成,。在此期間,,管理員無法獲取密鑰任何信息。密鑰置入成功后,,必須拔下存放密鑰的USB Key。當加密卡掉電后里面的所有密鑰信息丟失,,需要重新注入密鑰,。FC加密卡中密鑰的注入流程都是通過FPGA實現(xiàn)的,由于流程在FPGA內(nèi)部實現(xiàn),,所以具有很高的安全性,。?
??? (3) 用戶插入用戶USB Key,并輸入用戶名和口令進行身份認證,,通過認證后將訪問控制表注入加密卡,,然后設備才進入正常工作狀態(tài),此時用戶可以進行正常的磁盤文件訪問,。?
??? (4) 加密卡查詢設備ACL(訪問控制列表),,判斷用戶是否有相關權(quán)限(讀,、寫),最后再將具有權(quán)限的用戶請求發(fā)送給存儲加密功能模塊對數(shù)據(jù)凈荷加解密,,將處理后的數(shù)據(jù)轉(zhuǎn)發(fā)出去,,不允許的訪問請求將被阻斷。?
3 分析與展望?
??? (1)加密數(shù)據(jù),,尤其在SAN對于大數(shù)據(jù)量的加密,,用軟件加密盡管實現(xiàn)起來相對容易,但是會加重服務器的工作負荷,,影響系統(tǒng)整體性能,。采用硬件安全設備加密,由于很多算法都是面向bit串操作,,因而實現(xiàn)速度快,。試驗表明,該系統(tǒng)能達到較高的數(shù)據(jù)吞吐量,,同時具備向更高數(shù)據(jù)吞吐量升級的能力,。硬件加密安全性好,相對而言,,軟件不可能實現(xiàn)物理保護,,攻擊者可以利用各種調(diào)試軟件來修改算法。?
??? (2)采用USB Key進行身份認證與密鑰存儲,,由于它采用軟硬件相結(jié)合,、一次一密的強雙因子認證模式,認證服務器與客戶端之間的數(shù)據(jù)往來每次都不相同,,如黑客簡單截獲到認證過程的數(shù)據(jù)仍無法在網(wǎng)絡中冒充客戶端,。算法采用的是值得信賴的MD5 HMAC算法,這樣,,算法,、密鑰、運算三個因素都是安全的,,從而確保了整個認證過程的安全,。?
??? (3) 對密鑰更新,目前的設計是由KMC設立專門的密鑰數(shù)據(jù)庫,,當需要吊銷或銷毀舊密鑰時,,由KMC進行相關登記,并分發(fā)新的USB Key;然后由加密卡自動完成更新,。但是牽涉到如何更新用舊密鑰加密的數(shù)據(jù)等一系列問題,。由于舊數(shù)據(jù)的更新也可由加密卡完成,所以完全可以利用某種控制算法來自動啟動數(shù)據(jù)的更新,,這樣可以省去很多問題,。由于密鑰更新算法研究也是系統(tǒng)安全性得以提高的一個很重要方面,,所以可把工作重點轉(zhuǎn)到密鑰更新算法研究。?
參考文獻?
[1] 王峰.網(wǎng)絡存儲在互聯(lián)網(wǎng)行業(yè)的應用[J].中國傳媒科技,,2007,,10:46-48.?
[2] NIST. FIPS PUB 197: Advanced Encryption Standard(AES)[S]. http://csrc.nist.gov/publications/, 2001.?
[3] 嚴波,郭莉,,潘棕強.基于USB Key的身份鑒別技術研究與應用[J]. 高性能計算技術,2005(3):36.?
[4] SHAMIR A. How to share a secret communications of the ACM,1979(22):612-613.?