專利名稱:基于組密鑰服務(wù)器的共享加密文件系統(tǒng)中的密鑰管理方法
基于組密鑰服務(wù)器的共享加密文件系統(tǒng)中的密鑰管理方法技術(shù)領(lǐng)域基于組密鑰服務(wù)器的共享加密文件系統(tǒng)中的密鑰管理方法屬于存儲安全領(lǐng)域,尤其涉及 其中的密鑰管理技術(shù)領(lǐng)域。
背景技術(shù):
共享加密文件系統(tǒng)是在文件系統(tǒng)層實(shí)現(xiàn)網(wǎng)絡(luò)存儲安全的方法,它提供了端到端的安全, 即文件數(shù)據(jù)經(jīng)過加密后存儲在文件服務(wù)器上,系統(tǒng)中所有涉及文件加解密的操作均在客戶端 完成。文件服務(wù)器上存儲的是密文數(shù)據(jù),可以防止因系統(tǒng)入侵或管理員越權(quán)操作造成的信息 泄漏。同時(shí),服務(wù)器端不參與計(jì)算量繁重的加解密操作,其工作負(fù)載不會(huì)受到影響。共享加 密文件系統(tǒng)面對的主要問題是密鑰管理,包括密鑰的創(chuàng)建、存取、分發(fā)和撤消。傳統(tǒng)的密鑰 管理方法有兩種 一種是在客戶端實(shí)現(xiàn),由用戶負(fù)責(zé)維護(hù)和分發(fā)系統(tǒng)中的所有密鑰。這種方 法增加了用戶負(fù)擔(dān),并且在擁有大量文件的存儲系統(tǒng)中是不現(xiàn)實(shí)的。 一種改進(jìn)的方法是將具 有相同訪問權(quán)限的文件進(jìn)行分組管理,為每個(gè)文件組關(guān)聯(lián)一個(gè)密鑰,這種方法減少了用戶需 要維護(hù)的密鑰數(shù)量,但增加了密鑰撤消的復(fù)雜性。另一種密鑰管理方法是在文件服務(wù)器端實(shí) 現(xiàn),對于每個(gè)擁有文件訪問權(quán)限的用戶,文件屬主使用該用戶的公鑰加密文件密鑰,將結(jié)果 作為文件元數(shù)據(jù)存放在服務(wù)器上。只有擁有對應(yīng)私鑰的用戶才能還原出文件密鑰,從而訪問 文件數(shù)據(jù)。這種方法需要存儲的密鑰元數(shù)據(jù)的數(shù)量隨著用戶數(shù)的增加而迅速增長,并且由于 采用了公鑰加密算法,用戶獲取文件密鑰付出的計(jì)算開銷要比采用對稱密鑰算法大的多。傳 統(tǒng)的密鑰管理方法中還缺少對密鑰操作的控制,使得這成為威脅系統(tǒng)安全的隱患。本發(fā)明提出了一種基于組密鑰服務(wù)器的密鑰管理方法,有效地解決了上述問題。發(fā)明內(nèi)容本發(fā)明的目的在于提供一種在共享加密文件系統(tǒng)中管理密鑰的方法,將系統(tǒng)中所有涉及 密鑰管理的操作分離出來,交給單獨(dú)的組密鑰服務(wù)器處理,后者通過用戶身份認(rèn)證和訪問權(quán) 限檢查實(shí)現(xiàn)對密鑰操作的集中控制。本發(fā)明的重點(diǎn)在于密鑰信息的組織方式,組密鑰服務(wù)器 的設(shè)計(jì)及各密鑰操作的實(shí)現(xiàn)。本發(fā)明的特征在于,它是在由以下設(shè)備構(gòu)成的共享加密文件系統(tǒng)中實(shí)現(xiàn)的,該系統(tǒng)中含有前端主機(jī),運(yùn)行共享加密文件系統(tǒng)的客戶端,給用戶提供文件訪問接口,主機(jī)上的密鑰 管理客戶端模塊向下述的組密鑰服務(wù)器發(fā)送密鑰操作和用戶身份認(rèn)證請求,加解密模塊負(fù)責(zé) 加解密文件數(shù)據(jù);組密鑰服務(wù)器,執(zhí)行密鑰管理客戶端發(fā)來的各種密鑰管理操作,并對用戶實(shí)施嚴(yán)格的身
份認(rèn)證和文件訪問權(quán)限檢查;元數(shù)據(jù)服務(wù)器,為文件元數(shù)據(jù),包括密鑰提供后端存儲,并向前端主機(jī)提供元數(shù)據(jù)服務(wù); 數(shù)據(jù)服務(wù)器,存儲加密后的文件數(shù)據(jù)。 上述設(shè)備通過以太網(wǎng)連接,使用TCP/IP協(xié)議進(jìn)行通信。所述的基于組密鑰服務(wù)器的共享加密文件系統(tǒng)中的密鑰管理方法依次含有以下步驟 步驟l:構(gòu)建軟件模塊密鑰管理客戶端模塊給應(yīng)用層和文件系統(tǒng)層提供了一套密鑰操作接口,將來自上層的密 鑰管理命令轉(zhuǎn)換成具體的操作請求,通過底層網(wǎng)絡(luò)通信接口發(fā)送給組密鑰服務(wù)器執(zhí)行;它維 護(hù)了用戶認(rèn)證信息,在進(jìn)行密鑰操作時(shí)向組密鑰服務(wù)器證明用戶身份;加解密模塊是文件系 統(tǒng)客戶端和底層塊設(shè)備驅(qū)動(dòng)之間的一個(gè)內(nèi)核模塊,負(fù)責(zé)加解密文件數(shù)據(jù)。組密鑰服務(wù)器的軟件運(yùn)行在linux系統(tǒng)上,由一組核心程序組成,包括管理員接口,是管理員執(zhí)行系統(tǒng)管理命令的界面。主要包括創(chuàng)建、撤消用戶和組,改變 用戶權(quán)限,配置網(wǎng)絡(luò)接口等。主機(jī)接口,負(fù)責(zé)與前端主機(jī)上的密鑰管理客戶端通信。密鑰管理客戶端發(fā)出的各種密鑰 管理請求通過網(wǎng)絡(luò)發(fā)送給主機(jī)接口,后者從中提取出用戶身份和密鑰信息,分別交給所述身 份認(rèn)證模塊和密鑰管理模塊處理。組密鑰服務(wù)器執(zhí)行密鑰操作的結(jié)果也經(jīng)由主機(jī)接口返回給 密鑰管理客戶端。身份認(rèn)證模塊,負(fù)責(zé)在處理密鑰操作前認(rèn)證用戶身份。組密鑰服務(wù)器采用Kerberos認(rèn)證 機(jī)制,由身份認(rèn)證模塊向用戶授予訪問許可票據(jù),并維護(hù)與用戶通信的會(huì)話密鑰。訪問許可 票據(jù)是用戶請求組密鑰服務(wù)器服務(wù)的憑證,會(huì)話密鑰用于保護(hù)用戶和組密鑰服務(wù)器之間消息 傳輸?shù)陌踩?。密鑰管理模塊,負(fù)責(zé)執(zhí)行各種密鑰操作,是組密鑰服務(wù)器實(shí)現(xiàn)密鑰管理的核心。它采用 文件擴(kuò)展訪問控制列表組織文件密鑰信息。所述列表包括文件密鑰和用戶訪問列表項(xiàng)兩部分。 每個(gè)列表項(xiàng)對應(yīng)于文件的一個(gè)用戶,記錄了其ID和訪問權(quán)限。密鑰管理模塊使用組密鑰服務(wù) 器的秘密密鑰對文件密鑰加密以保證其機(jī)密性,并使用HMAC算法對文件擴(kuò)展訪問控制列表計(jì) 算消息認(rèn)證碼以保證其完整性。在執(zhí)行密鑰操作時(shí),密鑰管理模塊使用列表項(xiàng)中的信息對用 戶進(jìn)行權(quán)限檢査,防止越權(quán)操作。網(wǎng)絡(luò)通信模塊,用于跟前端主機(jī)進(jìn)行TCP/IP通信。步驟2:啟動(dòng)組密鑰服務(wù)器,加載并初始化密鑰管理客戶端模塊和加解密模塊,創(chuàng)建用 戶和組組密鑰服務(wù)器啟動(dòng)后向系統(tǒng)注冊一個(gè)全局標(biāo)識,并創(chuàng)建一個(gè)秘密密鑰和一個(gè)認(rèn)證密鑰, 分別用于密鑰管理和身份認(rèn)證。系統(tǒng)管理員創(chuàng)建用戶和組,組密鑰服務(wù)器對用戶密碼進(jìn)行 SHA-1計(jì)算,將結(jié)果作為用戶的秘密密鑰并保存在本地,以備在認(rèn)證過程中使用。密鑰管理 客戶端模塊和加解密模塊都是內(nèi)核模塊,可動(dòng)態(tài)加載到客戶端內(nèi)核空間。配置密鑰管理客戶 端的通信接口,建立與組密鑰服務(wù)器的連接,將其全局標(biāo)識保存在本地文件中。步驟3:用戶登錄到系統(tǒng),組密鑰服務(wù)器向用戶授予訪問許可票據(jù)和會(huì)話密鑰,其步驟如下步驟3. 1:用戶通過密鑰管理客戶端向組密鑰服務(wù)器發(fā)送登錄請求; 步驟3. 2:組密鑰服務(wù)器使用Kerberos函數(shù)為用戶生成一個(gè)訪問許可票據(jù)和會(huì)話密鑰, 將二者封裝在應(yīng)答消息中返回給密鑰管理客戶端,該應(yīng)答消息使用用戶的秘密密鑰加密;步驟3.3:密鑰管理客戶端提示用戶輸入密碼,使用SHA-1計(jì)算出用戶的秘密密鑰,解 密收到的應(yīng)答消息,將訪問許可票據(jù)和會(huì)話密鑰保存在本地文件中。步驟4:應(yīng)用層或文件系統(tǒng)層發(fā)出密鑰管理請求時(shí),系統(tǒng)按如下步驟實(shí)現(xiàn)密鑰操作步驟4. 1:密鑰管理客戶端從元數(shù)據(jù)服務(wù)器獲得文件擴(kuò)展訪問控制列表;步驟4.2:密鑰管理客戶端使用訪問許可票據(jù)向組密鑰服務(wù)器發(fā)起雙向認(rèn)證請求,消息 請求的內(nèi)容使用所述的會(huì)話密鑰加密;步驟4.3:組密鑰服務(wù)器通過檢査訪問許可票據(jù)來認(rèn)證用戶身份,向密鑰管理客戶端返 回自己的認(rèn)證信息,該信息同樣使用會(huì)話密鑰加密;步驟4.4:密鑰管理客戶端使用會(huì)話密鑰解密消息,認(rèn)證組密鑰服務(wù)器的身份。通過認(rèn) 證后,密鑰管理客戶端向組密鑰服務(wù)器發(fā)送密鑰操作請求,請求中包含了用戶ID,具體的操 作命令和文件擴(kuò)展訪問控制列表;步驟4. 5:組密鑰服務(wù)器使用秘密密鑰和醒AC算法計(jì)算文件擴(kuò)展訪問控制列表的消息認(rèn) 證碼以驗(yàn)證其完整性,使用對應(yīng)用戶的訪問列表項(xiàng)檢査其訪問權(quán)限,執(zhí)行相應(yīng)的密鑰操作步驟4.5. 1:對于密鑰創(chuàng)建請求,組密鑰服務(wù)器生成新的加密密鑰和確認(rèn)-簽名密鑰并使 用其秘密密鑰加密,將用戶及其所在組的ID和訪問權(quán)限添加到擴(kuò)展訪問控制列表中,最后對 整個(gè)文件擴(kuò)展訪問控制列表進(jìn)行消息認(rèn)證碼計(jì)算;步驟4.5.2:對于密鑰分發(fā)和密鑰撤消請求,組密鑰服務(wù)器在文件擴(kuò)展訪問控制列表中 添加或刪除相應(yīng)用戶的列表項(xiàng),并重新計(jì)算消息認(rèn)證碼;步驟4.5.3:對于密鑰獲取(獲取解密后的文件密鑰)請求,組密鑰服務(wù)器使用其秘密 密鑰對文件密鑰解密;步驟4.5.4:組密鑰服務(wù)器向密鑰管理客戶端返回密鑰操作的執(zhí)行結(jié)果,對于密鑰創(chuàng)建、 分發(fā)和撤消操作,返回的是新生成的文件擴(kuò)展訪問控制列表;對于文件密鑰獲取請求,返回 的是解密后的文件密鑰;步驟4.6:密鑰管理客戶端將返回的文件擴(kuò)展訪問控制列表保存到元數(shù)據(jù)服務(wù)器上,將 解密后的文件密鑰緩存在本地供加解密模塊使用。
步驟5:在對某文件實(shí)施密鑰撤消后,文件的其他用戶在更新文件內(nèi)容時(shí)要重新加密該 文件,其步驟如下步驟5. 1:密鑰管理客戶端從元數(shù)據(jù)服務(wù)器上獲得文件擴(kuò)展訪問控制列表,向組密鑰服 務(wù)器發(fā)送密鑰創(chuàng)建請求;步驟5.2:組密鑰服務(wù)器按步驟4.5所述驗(yàn)證文件擴(kuò)展訪問控制列表的完整性并檢查用 戶權(quán)限后,創(chuàng)建新的文件密鑰,并重新計(jì)算消息認(rèn)證碼的值,將修改后的列表返回給密鑰管 理客戶端;
步驟5.3:前端主機(jī)上的加解密模塊使用新的文件密鑰重新加密文件,并由密鑰管理客 戶端將所述列表保存在元數(shù)據(jù)服務(wù)器上;步驟5.4:組密鑰服務(wù)器向文件的其他用戶發(fā)送密鑰無效請求,通知用戶該文件的密鑰 已被改;步驟5.5:其他用戶的密鑰管理客戶端丟棄緩存在本地的該文件的密鑰,向組密鑰服務(wù)器返回響應(yīng)。本發(fā)明在清華大學(xué)計(jì)算機(jī)系高性能所進(jìn)行了測試。結(jié)果表明,基于組密鑰服務(wù)器的共享 加密文件系統(tǒng)中的密鑰管理方法大大減少了密鑰元數(shù)據(jù)所占的存儲空間,用戶只需付出較小 的計(jì)算開銷即可獲取解密后的文件密鑰加解密文件,組密鑰服務(wù)器能夠?qū)γ荑€操作實(shí)施集中 的控制,有效提高了系統(tǒng)的安全性。
圖1.基于組密鑰服務(wù)器的共享加密文件系統(tǒng)的硬件結(jié)構(gòu)圖。圖2.基于組密鑰服務(wù)器的共享加密文件系統(tǒng)的軟件結(jié)構(gòu)圖。圖3.文件擴(kuò)展訪問控制列表的數(shù)據(jù)結(jié)構(gòu)圖。圖4.計(jì)數(shù)器模式的加解密過程示意圖。圖5.密鑰操作過程示意圖。圖6.密鑰撤消過程示意圖。圖7.本發(fā)明的程序流程框圖。
具體實(shí)施方式
基于組密鑰服務(wù)器的共享加密文件系統(tǒng)主要由前端主機(jī)、組密鑰服務(wù)器、元數(shù)據(jù)服務(wù)器 和數(shù)據(jù)服務(wù)器組成。其硬件結(jié)構(gòu)如圖1所示。前端主機(jī)上運(yùn)行的文件系統(tǒng)客戶端向用戶提供各種文件服務(wù)。組密鑰服務(wù)器負(fù)責(zé)執(zhí)行系 統(tǒng)中所有的密鑰管理操作,并實(shí)施嚴(yán)格的用戶身份認(rèn)證和文件訪問控制,保證密鑰操作的合 法性。元數(shù)據(jù)服務(wù)器維護(hù)系統(tǒng)中所有文件的元數(shù)據(jù),包括文件密鑰,并為前端主機(jī)提供各種 元數(shù)據(jù)服務(wù)。加密后的文件數(shù)據(jù)存放在數(shù)據(jù)服務(wù)器上。系統(tǒng)的各個(gè)組成部分使用以太網(wǎng)連接, 通過TCP/IP進(jìn)行通信?;诮M密鑰服務(wù)器的共享加密文件系統(tǒng)的軟件結(jié)構(gòu)如圖2所示。前端主機(jī)上的文件系統(tǒng) 客戶端處理應(yīng)用層發(fā)來的各種文件訪問請求,將其中涉及到的元數(shù)據(jù)操作和數(shù)據(jù)操作通過底 層的通信接口分別發(fā)往元數(shù)據(jù)服務(wù)器和數(shù)據(jù)服務(wù)器執(zhí)行,通過文件系統(tǒng)客戶端的組織,存放 在數(shù)據(jù)服務(wù)器上的文件就如同本地文件一樣,可以方便地為用戶訪問。加解密模塊位于文件系統(tǒng)客戶端和底層塊設(shè)備驅(qū)動(dòng)層之間,是系統(tǒng)中進(jìn)行明文/密文數(shù)據(jù) 轉(zhuǎn)換的核心模塊。加解密模塊采用128位密鑰的計(jì)數(shù)器模式的AES算法加解密文件。當(dāng)文件 系統(tǒng)客戶端執(zhí)行文件寫操作時(shí),數(shù)據(jù)在被發(fā)往底層塊設(shè)備驅(qū)動(dòng)前被加解密模塊截獲,后者使 用密鑰加密文件,將密文數(shù)據(jù)發(fā)往底層塊設(shè)備,再由網(wǎng)絡(luò)通信層將數(shù)據(jù)保存到遠(yuǎn)端數(shù)據(jù)服務(wù)
器;當(dāng)讀文件時(shí),前端主機(jī)上的塊設(shè)備驅(qū)動(dòng)通過網(wǎng)絡(luò)從數(shù)據(jù)服務(wù)器獲得加密后的文件數(shù)據(jù), 經(jīng)加解密模塊解密,將明文數(shù)據(jù)返回給文件系統(tǒng)客戶端。密鑰管理客戶端和組密鑰服務(wù)器是系統(tǒng)中管理密鑰的核心組件。共享加密文件系統(tǒng)里涉 及到的密鑰管理操作包括密鑰的創(chuàng)建、存取、分發(fā)和撤消,這些操作通常跟各種文件訪問操 作聯(lián)系在一起。如系統(tǒng)在創(chuàng)建文件時(shí)需要?jiǎng)?chuàng)建并存儲文件密鑰;在讀寫文件時(shí)需要獲取文 件密鑰;在多個(gè)用戶間共享文件時(shí)需要分發(fā)或撤消文件密鑰。密鑰管理客戶端接受應(yīng)用層和 文件系統(tǒng)客戶端發(fā)來的密鑰管理請求,轉(zhuǎn)換成具體的命令操作并發(fā)送到組密鑰服務(wù)器上執(zhí)行, 將密鑰信息保存在元數(shù)據(jù)服務(wù)器上。另外,密鑰管理客戶端還維護(hù)了用戶身份認(rèn)證信息,在 密鑰操作時(shí)與組密鑰服務(wù)器進(jìn)行雙向認(rèn)證。
組密鑰服務(wù)器是系統(tǒng)中密鑰管理操作的執(zhí)行者,也是用戶身份認(rèn)證和文件訪問控制的實(shí) 施者,它同時(shí)還維護(hù)了系統(tǒng)中的所有用戶和組信息。除了必要的網(wǎng)絡(luò)通信組件外,組密鑰服 務(wù)器主要由4個(gè)模塊組成管理員接口,主機(jī)接口,身份認(rèn)證模塊和密鑰管理模塊。
管理員接口,是管理員執(zhí)行系統(tǒng)管理命令的界面。主要包括創(chuàng)建、撤消用戶和組,改變 用戶權(quán)限,配置網(wǎng)絡(luò)接口等。主機(jī)接口,負(fù)責(zé)與前端主機(jī)上的密鑰管理客戶端通信。密鑰管理客戶端發(fā)出的各種密鑰 管理請求通過網(wǎng)絡(luò)發(fā)送給主機(jī)接口,后者從中提取出用戶身份和密鑰信息,分別交給所述的 身份認(rèn)證模塊和密鑰管理模塊處理。組密鑰服務(wù)器執(zhí)行密鑰操作的結(jié)果也經(jīng)由主機(jī)接口返回 給密鑰管理客戶端。身份認(rèn)證模塊,負(fù)責(zé)在處理密鑰操作時(shí)認(rèn)證用戶身份。組密鑰服務(wù)器采用Kerberos認(rèn)證 機(jī)制,由身份認(rèn)證模塊為用戶授予訪問許可票據(jù),并維護(hù)組密鑰服務(wù)器與用戶間的會(huì)話密鑰。 其中,訪問許可票據(jù)是用戶請求組密鑰服務(wù)器服務(wù)的憑證,會(huì)話密鑰用于保護(hù)用戶和組密鑰 服務(wù)器之間消息傳輸?shù)陌踩C荑€管理模塊,負(fù)責(zé)執(zhí)行各種密鑰操作,是組密鑰服務(wù)器實(shí)現(xiàn)密鑰管理的核心。它采用 文件擴(kuò)展訪問控制列表組織文件密鑰信息,并使用組密鑰服務(wù)器的秘密密鑰保護(hù)文件密鑰的 機(jī)密性和整個(gè)訪問控制列表的完整性。密鑰管理模塊還在執(zhí)行密鑰操作前對用戶進(jìn)行權(quán)限檢 査,防止越權(quán)操作。如上所述,系統(tǒng)采用文件擴(kuò)展訪問控制列表實(shí)現(xiàn)密鑰管理,其數(shù)據(jù)結(jié)構(gòu)如圖3所示。文 件擴(kuò)展訪問控制列表在組密鑰服務(wù)器創(chuàng)建密鑰信息時(shí)產(chǎn)生,以文件密鑰開頭,后跟多個(gè)訪問 列表項(xiàng),每個(gè)列表項(xiàng)對應(yīng)于一個(gè)文件用戶,記錄了其ID及訪問權(quán)限。組密鑰服務(wù)器為文件創(chuàng) 建兩種密鑰加密密鑰和確認(rèn)-簽名密鑰。加密密鑰是128位對稱密鑰,由系統(tǒng)隨機(jī)數(shù)生成函 數(shù)產(chǎn)生,用于加解密文件數(shù)據(jù),提供文件內(nèi)容的機(jī)密性保護(hù);確認(rèn)-簽名密鑰是一對公-私鑰, 由RSA算法產(chǎn)生,用于對文件內(nèi)容的散列值進(jìn)行確認(rèn)和簽名,提供文件內(nèi)容的完整性保護(hù)。 使用確認(rèn)-簽名密鑰的出發(fā)點(diǎn)是區(qū)分文件的讀者和寫者,提供細(xì)粒度的文件訪問控制。組密鑰 服務(wù)器僅對文件寫者授予簽名密鑰,后者在寫完文件后對文件內(nèi)容的散列值簽名。讀者沒有 簽名密鑰,這就避免了用戶繞過數(shù)據(jù)服務(wù)器上的訪問控制機(jī)制強(qiáng)行寫入文件而不被檢測到的 情況。
系統(tǒng)釆用了計(jì)數(shù)器模式的AES算法加解密文件數(shù)據(jù)。其過程示意如圖4所示。明文(密 文)被拆成固定大小的數(shù)據(jù)塊,其大小由加密算法決定。每個(gè)明文(密文)塊對應(yīng)于一個(gè)向 量值,該值可以由一個(gè)初始向量值加上數(shù)據(jù)塊號得到。計(jì)數(shù)器模式使用加密算法加密該向量 值,與明文(密文)塊作按位異或運(yùn)算,得到相應(yīng)的密文(明文)塊。使用計(jì)數(shù)器模式加解 密文件的好處是,相同的明文不一定對應(yīng)于相同的密文,而且數(shù)據(jù)塊之間不存在依賴關(guān)系, 彼此之間可以獨(dú)立地進(jìn)行加解密操作,有利于數(shù)據(jù)塊的隨機(jī)讀寫。系統(tǒng)為每個(gè)文件關(guān)聯(lián)一個(gè) 初始計(jì)數(shù)值用于計(jì)數(shù)器模式加解密,這個(gè)值與文件密鑰一起由組密鑰服務(wù)器在創(chuàng)建密鑰信息 時(shí)生成。文件擴(kuò)展訪問控制列表中的列表項(xiàng)記錄了該文件的用戶ID及訪問權(quán)限(讀、寫、執(zhí)行等)。 每個(gè)列表項(xiàng)是一個(gè)32位的值,其低24位表示用戶或組的ID,高8位表示訪問權(quán)限。用戶在 創(chuàng)建文件時(shí),組密鑰服務(wù)器創(chuàng)建文件密鑰,在列表項(xiàng)中記錄用戶及其所在組的ID,并根據(jù)系 統(tǒng)的掩碼值設(shè)定各自的訪問權(quán)限。文件擴(kuò)展訪問控制列表簡化了密鑰操作,例如當(dāng)文件屬主 希望與其他用戶或組共享文件,或希望撤消某用戶或組的文件訪問權(quán)限時(shí),組密鑰服務(wù)器只 要添加或刪除相應(yīng)用戶的列表項(xiàng)即可。文件擴(kuò)展訪問控制列表作為文件的擴(kuò)展屬性被存放在元數(shù)據(jù)服務(wù)器上。與文件數(shù)據(jù)面臨 的安全風(fēng)險(xiǎn)一樣,文件擴(kuò)展訪問控制列表也會(huì)被網(wǎng)絡(luò)上的惡意用戶竊取或篡改,因此同樣需 要機(jī)密性和完整性保護(hù)。組密鑰服務(wù)器使用自己的秘密密鑰對文件密鑰作對稱加密,并使用 HMAC算法對整個(gè)列表進(jìn)行消息認(rèn)證碼計(jì)算,將結(jié)果值附在列表最后。組密鑰服務(wù)器的秘密密 鑰在啟動(dòng)時(shí)生成。用戶在讀寫文件時(shí),需要將文件擴(kuò)展訪問控制列表發(fā)送給組密鑰服務(wù)器, 請求授予解密后的文件密鑰;而組密鑰服務(wù)器在執(zhí)行任何密鑰操作前,都要先對文件擴(kuò)展訪 問控制列表進(jìn)行消息認(rèn)證碼計(jì)算以驗(yàn)證其完整性。傳統(tǒng)的共享加密文件系統(tǒng)采用密鑰列表組織文件密鑰信息,其結(jié)構(gòu)與擴(kuò)展訪問控制列表 類似,但密鑰列表中的每個(gè)列表項(xiàng)除用戶ID外還包括了使用用戶公鑰加密過的文件密鑰。下 表對比了這兩種密鑰組織方法需要存儲的密鑰元數(shù)據(jù)數(shù)量。假設(shè)文件的讀寫用戶數(shù)各占一半, 對稱密鑰占128位,公-私鑰各占1024位,消息認(rèn)證碼占32位。10用戶20用戶50用戶文件擴(kuò)展訪問控制列表332字節(jié)372字節(jié)792字節(jié)密鑰列表1132宇節(jié)1972字節(jié)4492字節(jié)顯然,與密鑰列表相比,文件擴(kuò)展訪問控制列表大大減少了密鑰元數(shù)據(jù)的存儲數(shù)量,并 且由于采用了對稱加密算法保護(hù)文件密鑰,其計(jì)算開銷要比公鑰算法小的多。密鑰管理客戶端和組密鑰服務(wù)器通過各自的通信接口通過以太網(wǎng)進(jìn)行通信。通信以會(huì)話為基本單位, 一個(gè)完整會(huì)話由兩個(gè)部分組成1. 請求由通信模型的一端向另外一端發(fā)送一個(gè)請求包,包頭+數(shù)據(jù)(如果有)2. 應(yīng)答在另外一端受到請求的時(shí)候,就執(zhí)行這個(gè)請求,并返回一個(gè)包頭+數(shù)據(jù)(如 果有)的執(zhí)行結(jié)果如果在規(guī)定的時(shí)間內(nèi)沒有應(yīng)答的化,就認(rèn)為通信失敗,不再等待,認(rèn)為這個(gè)通信過程失敗。系統(tǒng)中涉及密鑰操作的請求類型主要有 LOGIN 登錄到組密鑰服務(wù)器 LOGOUT 從組密鑰服務(wù)器退出 AUTHENTICATE 身份認(rèn)證 CREATE—KEY 創(chuàng)建文件密鑰 GET_KEY 獲取解密后的文件密鑰 DISTRIBUTE_KEY 給某用戶分發(fā)文件密鑰 REVOKE—KEY 撤消某用戶的文件密鑰 INVALIDATE—KEY 使客戶端緩存的文件密鑰無效組密鑰服務(wù)器啟動(dòng)后生成一個(gè)秘密密鑰和一個(gè)認(rèn)證密鑰,分別用于密鑰管理和身份認(rèn)證。 系統(tǒng)管理員在組密鑰服務(wù)器上創(chuàng)建用戶和組,并由用戶設(shè)置登錄密碼。組密鑰服務(wù)器為每個(gè) 用戶維護(hù)一個(gè)秘密密鑰,用于密鑰操作過程中認(rèn)證用戶身份。該秘密密鑰由對用戶的登錄密 碼使用SHA-1算法計(jì)算生成,并由組密鑰服務(wù)器保存。另外,組密鑰服務(wù)器在啟動(dòng)時(shí)向系統(tǒng) 注冊一個(gè)全局標(biāo)識,密鑰管理客戶端通過該標(biāo)識來識別組密鑰服務(wù)器。用戶在登錄系統(tǒng)時(shí)也要登錄組密鑰服務(wù)器,這時(shí)密鑰管理客戶端向組密鑰服務(wù)器發(fā)送 LOGIN請求,作為認(rèn)證過程的一部分,組密鑰服務(wù)器在響應(yīng)中向密鑰管理客戶端發(fā)回一個(gè)訪 問許可票據(jù),由用戶保存在本地。該票據(jù)是密鑰管理客戶端隨后訪問組密鑰服務(wù)器的憑證, 其內(nèi)容及登錄過程將在后面詳述。為了保證與用戶之間會(huì)話的安全,組密鑰服務(wù)器還生成一 個(gè)會(huì)話密鑰并分發(fā)給用戶,隨后與該用戶間傳輸?shù)乃邢⒕迷摃?huì)話密鑰加密以保證傳輸 的安全。密鑰操作過程如圖5所示。密鑰管理客戶端首先從元數(shù)據(jù)服務(wù)器上獲得文件擴(kuò)展訪問控 制列表。在發(fā)出具體的密鑰操作請求前,密鑰管理客戶端先發(fā)起一個(gè)雙向認(rèn)證過程。密鑰管 理客戶端向組密鑰服務(wù)器發(fā)送AUTHENTICATE請求,請求中包含了訪問許可票據(jù)和用戶身份信 息。組密鑰服務(wù)器通過檢查訪問許可票據(jù)來驗(yàn)證用戶,并在響應(yīng)中包含自己的身份信息供密 鑰管理客戶端認(rèn)證。在雙向認(rèn)證完畢后,密鑰管理客戶端向組密鑰服務(wù)器發(fā)送密鑰操作請求 (GET_KEY、 REVOKE一KEY等),組密鑰服務(wù)器執(zhí)行相應(yīng)操作,將必要的密鑰信息包含在響應(yīng)中 返回給密鑰管理客戶端。用戶進(jìn)行密鑰操作時(shí),密鑰管理客戶端向組密服務(wù)器發(fā)送請求,請求包里包括了用戶ID, 具體操作命令(GET—KEY、 REVOKE_KEY等)和文件擴(kuò)展訪問控制列表。密鑰管理客戶端使用 會(huì)話密鑰加密請求包以保護(hù)消息傳輸?shù)陌踩=M密鑰服務(wù)器接收到請求包后,使用秘密密鑰 對文件擴(kuò)展訪問控制列表進(jìn)行消息認(rèn)證碼計(jì)算以驗(yàn)證其完整性,并根據(jù)列表項(xiàng)內(nèi)容對用戶作 訪問權(quán)限檢查,然后根據(jù)不同的命令請求執(zhí)行相應(yīng)的密鑰操作。對于CREATEJ(EY請求,組密 鑰服務(wù)器生成新的文件密鑰并使用其秘密密鑰加密,將用戶及其所在組的ID和訪問權(quán)限添加 到文件擴(kuò)展訪問控制列表中,最后使用秘密密鑰和服AC算法對整個(gè)列表進(jìn)行消息認(rèn)證碼計(jì) 算;對于DISTRIBUTE_KEY和REVOKE—KEY請求,組密鑰服務(wù)器在文件擴(kuò)展訪問控制列表中添 加或刪除相應(yīng)用戶的列表項(xiàng),并計(jì)算新的消息認(rèn)證碼;對于GET—KEY請求,組密鑰服務(wù)器使 用秘密密鑰對文件密鑰解密。對于CREATE—KEY、 DISTRIBUTE—KEY和REVOKE—KEY請求,組密 鑰服務(wù)器向密鑰管理客戶端返回的是新生成的文件擴(kuò)展訪問控制列表;對于GET_KEY請求, 返回的是解密后的文件密鑰。返回的響應(yīng)消息同樣使用會(huì)話密鑰加密。用戶在讀寫文件時(shí),首先需要通過密鑰管理客戶端發(fā)送GET_KEY請求給組密鑰服務(wù)器, 獲取解密后的文件密鑰。當(dāng)文件系統(tǒng)客戶端頻繁地進(jìn)行讀寫操作時(shí),與組密鑰服務(wù)器通信之 間大量的網(wǎng)絡(luò)通信將極大地影響系統(tǒng)性能。系統(tǒng)采用了密鑰緩存方法來避免這種情況。文件 系統(tǒng)客戶端在進(jìn)行第一次讀寫操作時(shí),將返回的文件密鑰緩存起來,以后對同一文件的讀寫 操作將直接使用緩存中的文件密鑰,無需再與組密鑰服務(wù)器通信。對于密鑰撤消操作來說,僅僅改變文件擴(kuò)展訪問控制列表是不夠的,還需要重新加密文 件內(nèi)容。系統(tǒng)采用了延遲加密技術(shù),將重新加密文件的時(shí)機(jī)推遲到下一次寫操作發(fā)生時(shí)。整 個(gè)密鑰撤消操作過程如圖6所示。圖中省去了密鑰管理客戶端與組密鑰服務(wù)器的雙向認(rèn)證過 程。首先密鑰管理客戶端向組密鑰服務(wù)器發(fā)送REVOKE—KEY請求,后者作必要的權(quán)限檢查后, 刪除文件擴(kuò)展訪問控制列表中對應(yīng)于被撤消密鑰用戶的列表項(xiàng),重新計(jì)算所述列表的消息認(rèn) 證碼值,向密鑰管理客戶端返回響應(yīng)。當(dāng)發(fā)生下一次對該文件的寫操作時(shí),密鑰管理客戶端 向組密鑰服務(wù)器發(fā)送CREATEJ(EY請求,將原有的文件擴(kuò)展訪問控制列表發(fā)送過去。組密鑰服 務(wù)器生成新的文件密鑰,替換列表中原有的文件密鑰,并重新計(jì)算消息認(rèn)證碼,把新的文件 擴(kuò)展訪問控制列表返回給密鑰管理客戶端。前端主機(jī)上的加解密模塊使用新密鑰重新加密文 件,并由密鑰管理客戶端保存所述列表到元數(shù)據(jù)服務(wù)器上。由于文件的其他用戶可能在其客 戶端緩存了舊的文件密鑰,于是組密鑰服務(wù)器根據(jù)文件擴(kuò)展訪問控制列表中的用戶ID信息向 這些用戶所在的前端主機(jī)發(fā)送INVALIDATEJ(EY請求,通知密鑰管理客戶端該文件的密鑰已被 改。后者丟棄緩存中的舊密鑰,向組密鑰服務(wù)器返回響應(yīng)。為了保證整個(gè)系統(tǒng)的安全,組密鑰服務(wù)器在進(jìn)行密鑰操作前需要確定密鑰管理客戶端真 實(shí)的用戶身份,同時(shí),密鑰管理客戶端也要確認(rèn)自己是在與真正的組密鑰服務(wù)器通信。系統(tǒng) 采用了Kerberos認(rèn)證機(jī)制提供這種保證,整個(gè)認(rèn)證過程分為兩個(gè)階段。第一階段發(fā)生在用戶 登錄到系統(tǒng)時(shí),其過程如下1、 用戶登錄到組密鑰服務(wù)器。密鑰管理客戶端向組密鑰服務(wù)器發(fā)送LOGIN請求,請求包 中包含用戶ID,組密鑰服務(wù)器的全局標(biāo)識和一個(gè)時(shí)間戳;2、 組密鑰服務(wù)器使用Kerberos函數(shù)為用戶生成一個(gè)會(huì)話密鑰和一個(gè)訪問許可票據(jù)。該 票據(jù)中包含會(huì)話密鑰,用戶ID,組密鑰服務(wù)器的全局標(biāo)識,票據(jù)的生存時(shí)間和一個(gè)時(shí)間戳, 并使用組密鑰服務(wù)器的認(rèn)證密鑰加密。組密鑰服務(wù)器的應(yīng)答消息中包括了會(huì)話密鑰,訪問許 可票據(jù)和一個(gè)時(shí)間戳,該消息使用用戶的秘密密鑰加密后返回給密鑰管理客戶端;3、 密鑰管理客戶端提示用戶輸入登錄密碼,對該密碼使用SHA-1算法計(jì)算生成秘密密鑰, 解密出會(huì)話密鑰和訪問許可票據(jù),將二者保存在本地文件中,丟棄秘密密鑰。認(rèn)證過程的第二階段發(fā)生在密鑰管理客戶端請求密鑰操作時(shí),其過程如下4、 密鑰管理客戶端向組密鑰服務(wù)器發(fā)送AUT服NTICATE請求,發(fā)起雙向認(rèn)證。請求包中
包含訪問許可票據(jù),用戶認(rèn)證信息和組密鑰服務(wù)器的全局標(biāo)識。用戶認(rèn)證信息包括了用戶ID 和一個(gè)時(shí)間戳,使用會(huì)話密鑰加密;5、 組密鑰服務(wù)器使用認(rèn)證密鑰解密訪問許可票據(jù),得到與該用戶的會(huì)話密鑰,后者可用 于解密用戶認(rèn)證信息。組密鑰服務(wù)器比較訪問許可票據(jù)和用戶認(rèn)證信息中的用戶ID來認(rèn)證用 戶的身份。如果通過認(rèn)證,組密鑰服務(wù)器向密鑰管理客戶端返回應(yīng)答消息,消息中包含了用 戶認(rèn)證信息中的時(shí)間戳,使用會(huì)話密鑰加密;6、 密鑰管理客戶端通過比較應(yīng)答消息中的時(shí)間戳和步驟5中用戶認(rèn)證信息中的時(shí)間戳即 可確定組密鑰服務(wù)器身份的真實(shí)性。在通過雙向認(rèn)證后,密鑰管理客戶端和組密鑰服務(wù)器開始正常的密鑰操作會(huì)話,通信過 程中傳送的消息均使用會(huì)話密鑰加密。在訪問許可票據(jù)的有效期內(nèi),密鑰管理客戶端在請求 密鑰操作時(shí)只需要進(jìn)行第二階段的認(rèn)證過程;反之,如果訪問許可票據(jù)失效,密鑰管理客戶 端需要重復(fù)第一階段過程,向組密鑰服務(wù)器申請新的訪問許可票據(jù)?;诮M密鑰服務(wù)器的共享加密文件系統(tǒng)中的密鑰管理方法具有如下特點(diǎn)(1) 組密鑰服務(wù)器負(fù)責(zé)執(zhí)行系統(tǒng)中的各種密鑰管理操作,并對用戶實(shí)施嚴(yán)格的身份認(rèn)證 和文件訪問權(quán)限檢查,所有涉及密鑰的操作均在組密鑰服務(wù)器的監(jiān)控下進(jìn)行,提高了系統(tǒng)的 安全性;(2) 用文件擴(kuò)展訪問控制列表組織文件密鑰信息,減少了密鑰元數(shù)據(jù)的存儲數(shù)量,節(jié)省 了存儲空間;文件擴(kuò)展訪問控制列表采用對稱密鑰算法保護(hù)文件密鑰,其計(jì)算開銷比公鑰算 法小得多;(3) 密鑰管理客戶端實(shí)現(xiàn)了密鑰緩存功能,可直接利用緩存在本地的密鑰對文件進(jìn)行多 次讀寫操作,減少了與組密鑰服務(wù)器的通信次數(shù);(4) 采用了延遲加密技術(shù)實(shí)現(xiàn)密鑰撤消操作,將重新加密文件的時(shí)機(jī)推遲到下一次寫操 作發(fā)生時(shí),最大限度地降低了重新加密操作對系統(tǒng)性能的影響。
權(quán)利要求
1.基于組密鑰服務(wù)器的共享加密文件系統(tǒng)中的密鑰管理方法,其特征在于,該方法是在共享加密文件系統(tǒng)中按以下步驟實(shí)現(xiàn)的步驟(1).初始化構(gòu)建一個(gè)通過以太網(wǎng)連接、使用TCP/IP協(xié)議通信的,由前端主機(jī)、組密鑰服務(wù)器、元數(shù)據(jù)服務(wù)器、數(shù)據(jù)服務(wù)器共同組成的共享加密文件系統(tǒng),其中前端主機(jī),設(shè)有共享加密文件系統(tǒng)客戶端、密鑰管理客戶端、加解密模塊和通信接口,其中共享加密文件系統(tǒng)客戶端,為用戶提供文件訪問接口,處理應(yīng)用層發(fā)來的各種文件訪問請求,把其中涉及到的元數(shù)據(jù)操作和數(shù)據(jù)操作通過底層的通信接口分別發(fā)往元數(shù)據(jù)服務(wù)器和數(shù)據(jù)服務(wù)器執(zhí)行;密鑰管理客戶端,向組密鑰服務(wù)器發(fā)送來自應(yīng)用層和文件系統(tǒng)層的密鑰操作請求和用戶身份認(rèn)證請求,并且維護(hù)了在密鑰操作時(shí)和組密鑰服務(wù)器進(jìn)行雙向認(rèn)證用的用戶身份信息;加解密模塊,位于文件系統(tǒng)客戶端和底層塊設(shè)備之間,使用高級加密標(biāo)準(zhǔn)算法AES加解密數(shù)據(jù),轉(zhuǎn)換明文/密文在執(zhí)行文件寫操作時(shí),用密鑰加密文件,形成密文后發(fā)往底層塊設(shè)備,再經(jīng)過通信接口把數(shù)據(jù)保存到數(shù)據(jù)服務(wù)器;在執(zhí)行文件讀操作時(shí),對從數(shù)據(jù)服務(wù)器獲得的密文數(shù)據(jù)進(jìn)行解密形成明文,返回給文件系統(tǒng)客戶端;組密鑰服務(wù)器,設(shè)有管理員接口模塊、主機(jī)接口模塊、身份認(rèn)證模塊和密鑰管理模塊,以執(zhí)行前端主機(jī)上密鑰管理客戶端發(fā)來的各種密鑰管理操作和用戶身份認(rèn)證請求,執(zhí)行用戶身份認(rèn)證和文件訪問權(quán)限檢查,同時(shí)維護(hù)著所有用戶和組信息,其中管理員接口模塊,是管理員執(zhí)行系統(tǒng)管理命令的界面,執(zhí)行以下操作創(chuàng)建、撤消用戶和組,改變用戶權(quán)限以及配置網(wǎng)絡(luò)接口;主機(jī)接口模塊,負(fù)責(zé)與前端主機(jī)上的密鑰管理客戶端之間的通信,執(zhí)行以下操作從網(wǎng)絡(luò)接收該密鑰管理客戶端發(fā)出的各種密鑰管理請求,從中提取出用戶身份和密鑰信息,分別交給所述身份認(rèn)證模塊和密鑰管理模塊處理;把組密鑰服務(wù)器執(zhí)行密鑰操作的結(jié)果返回給該密鑰管理客戶端;身份認(rèn)證模塊,采用現(xiàn)有的Kerberos認(rèn)證機(jī)制,向用戶授予訪問許可票據(jù)作為用戶請求組密鑰服務(wù)器服務(wù)的憑證,同時(shí)還維護(hù)與用戶通信的會(huì)話密鑰,以保護(hù)用戶和組密鑰服務(wù)器之間消息傳輸?shù)陌踩?;密鑰管理模塊,采用文件擴(kuò)展訪問控制列表實(shí)現(xiàn)密鑰管理,所述列表在組密鑰服務(wù)器創(chuàng)建密鑰信息時(shí)產(chǎn)生,以文件密鑰開頭,后跟多個(gè)訪問列表項(xiàng),每個(gè)列表項(xiàng)對應(yīng)于文件的一個(gè)用戶,記錄了用戶ID及用掩碼值設(shè)定的訪問權(quán)限,其中,所述的文件密鑰有兩種加密密鑰和確認(rèn)-簽名密鑰,加密密鑰是128位對稱密鑰,由系統(tǒng)隨機(jī)數(shù)生成函數(shù)產(chǎn)生,用于在計(jì)數(shù)器模式的高級加密標(biāo)準(zhǔn)算法AES中加解密文件數(shù)據(jù),提供文件內(nèi)容的機(jī)密性保護(hù);確認(rèn)-簽名密鑰是一對公-私鑰,由公鑰加密算法RSA產(chǎn)生,用于對文件內(nèi)容的散列值進(jìn)行確認(rèn)和簽名,提供文件內(nèi)容的完整性保護(hù);文件的所有讀者和寫者都被授予確認(rèn)密鑰,而僅有文件寫者被授予簽名密鑰,避免用戶繞過數(shù)據(jù)服務(wù)器上的訪問控制機(jī)制強(qiáng)行寫入文件而不被檢測到;所述列表作為文件的擴(kuò)展屬性存放在元數(shù)據(jù)服務(wù)器上。步驟(2).所述共享加密文件系統(tǒng)按以下步驟進(jìn)行密鑰管理步驟(2.1).系統(tǒng)管理員通過管理員接口模塊啟動(dòng)組密鑰服務(wù)器,加載并初始化密鑰管理客戶端,創(chuàng)建用戶和組并由用戶設(shè)置登錄密碼;而組密鑰服務(wù)器啟動(dòng)后要向系統(tǒng)注冊一個(gè)全局標(biāo)識,創(chuàng)建一個(gè)秘密密鑰和一個(gè)認(rèn)證密鑰,分別用于密鑰管理和身份認(rèn)證;在系統(tǒng)管理員創(chuàng)建用戶和組以后,組密鑰服務(wù)器使用安全哈希算法SHA-1對每個(gè)用戶的登錄密碼做散列值計(jì)算,將所得結(jié)果作為用戶的秘密密鑰保存在本地,以備在身份認(rèn)證過程中使用;系統(tǒng)管理員通過管理員接口模塊為該密鑰管理客戶端和組密鑰服務(wù)器之間建立一個(gè)通信連接,把組密鑰服務(wù)器的全局標(biāo)識保存在密鑰管理客戶端的本地文件中;步驟(2.2).用戶按以下步驟登錄到共享加密文件系統(tǒng),組密鑰服務(wù)器向用戶授予訪問許可票據(jù)和會(huì)話密鑰步驟(2.2.1).用戶通過所述密鑰管理客戶端向組密鑰服務(wù)器發(fā)送登錄請求;步驟(2.2.2).組密鑰服務(wù)器調(diào)用Kerberos函數(shù)為用戶生成一個(gè)訪問許可票據(jù)和會(huì)話密鑰,把兩者封裝在使用用戶秘密密鑰加密的應(yīng)答消息中返回給該密鑰管理客戶端;步驟(2.2.3).所述密鑰管理客戶端提示用戶輸入密碼,并使用安全哈希算法SHA-1對該密碼做散列值計(jì)算得到用戶的秘密密鑰,解密所收到的應(yīng)答消息,得到訪問許可票據(jù)和會(huì)話密鑰,由用戶保存在本地文件中;步驟(2.3).應(yīng)用層或文件系統(tǒng)層發(fā)出密鑰管理請求時(shí),共享加密文件系統(tǒng)按以下步驟實(shí)現(xiàn)密鑰操作步驟(2.3.1).前端主機(jī)的密鑰管理客戶端從元數(shù)據(jù)服務(wù)器獲得文件擴(kuò)展訪問控制列表;步驟(2.3.2).密鑰管理客戶端使用訪問許可票據(jù)和用戶身份信息向組密鑰服務(wù)器發(fā)起使用會(huì)話密鑰加密的雙向認(rèn)證請求;步驟(2.3.3).組密鑰服務(wù)器通過檢查訪問許可票據(jù)來認(rèn)證用戶身份信息,經(jīng)認(rèn)可后,向密鑰管理客戶端返回使用會(huì)話密鑰加密的認(rèn)證信息;步驟(2.3.4).密鑰管理客戶端使用會(huì)話密鑰解密收到的認(rèn)證信息,認(rèn)證組密鑰服務(wù)器的身份,認(rèn)可后,向組密鑰服務(wù)器發(fā)送密鑰操作請求,該請求中包含了用戶ID、具體的密鑰操作命令和文件擴(kuò)展訪問控制列表;步驟(2.3.5).組密鑰服務(wù)器按以下步驟使用自己的秘密密鑰和散列的消息認(rèn)證碼算法HMAC計(jì)算文件擴(kuò)展訪問控制列表的消息認(rèn)證碼以驗(yàn)證其完整性,使用所述列表中對應(yīng)用戶的訪問列表項(xiàng)檢查訪問權(quán)限,執(zhí)行相應(yīng)的密鑰操作步驟(2.3.5.1).對于密鑰創(chuàng)建請求,組密鑰服務(wù)器分別調(diào)用系統(tǒng)的隨機(jī)數(shù)生成函數(shù)和RSA算法生成加密密鑰和確認(rèn)-簽名密鑰,并使用自己的秘密密鑰加密,再把用戶及其所在組的ID和訪問權(quán)限添加到文件擴(kuò)展訪問控制列表中,最后使用秘密密鑰和散列的消息認(rèn)證碼算法HMAC對整個(gè)擴(kuò)展訪問控制列表進(jìn)行消息認(rèn)證碼計(jì)算,追加在表的末尾;步驟(2.3.5.2).對于密鑰分發(fā)和密鑰撤消請求,組密鑰服務(wù)器在文件擴(kuò)展訪問列表中添加或刪除相應(yīng)用戶的訪問列表項(xiàng),并重新計(jì)算消息認(rèn)證碼;步驟(2.3.5.3).對于獲取解密后的文件密鑰請求,組密鑰服務(wù)器使用其秘密密鑰對文件密鑰解密,用戶在進(jìn)行文件的第一次讀寫操作時(shí)把返回的文件密鑰緩存以備用;步驟(2.3.5.4).組密鑰服務(wù)器向密鑰管理客戶端返回密鑰操作的執(zhí)行結(jié)果,對于密鑰創(chuàng)建、分發(fā)和撤消操作,返回的是新生成的文件擴(kuò)展訪問控制列表;對于文件密鑰獲取請求,返回的是解密后的文件密鑰;步驟(2.3.6).密鑰管理客戶端把返回的文件擴(kuò)展訪問控制列表保存到元數(shù)據(jù)服務(wù)器上,把解密后的文件密鑰緩存在本地供加解密模塊使用;步驟(2.4).在對某文件實(shí)施密鑰撤消后,該文件的其他用戶在更新文件內(nèi)容時(shí),需要按以下步驟重新加密文件步驟(2.4.1).密鑰管理客戶端從元數(shù)據(jù)服務(wù)器獲得文件擴(kuò)展訪問控制列表,向組密鑰服務(wù)器發(fā)送密鑰創(chuàng)建請求;步驟(2.4.2).組密鑰服務(wù)器使用秘密密鑰和散列的消息認(rèn)證碼算法HMAC計(jì)算文件擴(kuò)展訪問控制列表的消息認(rèn)證碼以驗(yàn)證其完整性,再使用所述列表中對應(yīng)用戶的訪問列表項(xiàng)檢查訪問權(quán)限,然后,創(chuàng)建新的包括加密密鑰和確認(rèn)-簽名密鑰在內(nèi)的文件密鑰,并使用其秘密密鑰加密,重新計(jì)算文件擴(kuò)展訪問控制列表的消息認(rèn)證碼,把修改后的列表返回給密鑰管理客戶端;步驟(2.4.3).前端主機(jī)上的加解密模塊使用新的文件密鑰重新加密義件,并由密鑰管理客戶端把文件擴(kuò)展訪問控制列表保存在元數(shù)據(jù)服務(wù)器上;步驟(2.4.4).組密鑰服務(wù)器通知文件的其他用戶密鑰已被修改,使其緩存在本地的原文件密鑰無效;步驟(2.4.5).文件其他用戶的密鑰管理客戶端丟棄緩存在本地的文件密鑰,向組密鑰服務(wù)器返回響應(yīng)。
2. 根據(jù)權(quán)利要求1所述的基于組密鑰服務(wù)器的共享加密文件系統(tǒng)中的密鑰管理方法,其 特征在于,步驟(2.3.5)中所述的密鑰操作的類型有登錄到組密鑰服務(wù)器、從組密鑰服務(wù)器 退出、身份認(rèn)證、創(chuàng)建文件密鑰、獲取解密后的文件密鑰、給某用戶分發(fā)文件密鑰、撤消某 用戶的文件密鑰、使密鑰管理客戶端緩存的文件密鑰無效共八種。
3. 根據(jù)權(quán)利要求1所述的基于組密鑰服務(wù)器的共享加密文件系統(tǒng)中的密鑰管理方法,其 特征在于,所述訪問許可票據(jù)含有會(huì)話密鑰、用戶ID、組密鑰服務(wù)器的全局標(biāo)識、票據(jù)的 生存時(shí)間和一個(gè)時(shí)間戳,組密鑰服務(wù)器的應(yīng)答消息中含有會(huì)話密鑰、訪問許可票據(jù)和一個(gè) 時(shí)間戳。
4. 根據(jù)權(quán)利要求1所述的基于組密鑰服務(wù)器的共享加密文件系統(tǒng)中的密鑰管理方法,其 特征在于,密鑰管理客戶端向組密鑰服務(wù)器發(fā)送的認(rèn)證請求含有訪問許可票據(jù)、用戶認(rèn)證 信息和組密鑰服務(wù)器的全局標(biāo)識,用戶認(rèn)證信息含有用戶ID和一個(gè)時(shí)間戳。
5. 根據(jù)權(quán)利要求1、 4所述的基于組密鑰服務(wù)器的共享加密文件系統(tǒng)中的密鑰管理方法, 其特征在于,組密鑰服務(wù)器比較訪問許可票據(jù)和用戶認(rèn)證信息中的用戶ID信息來認(rèn)證用戶身 份。
6. 根據(jù)權(quán)利要求l、 3、 4所述的基于組密鑰服務(wù)器的共享加密文件系統(tǒng)中的密鑰管理方法,其特征在于,密鑰管理客戶端通過比較應(yīng)答消息中的時(shí)間戳和用戶認(rèn)證信息中的時(shí)間戳 來其認(rèn)組密鑰服務(wù)器的身份。
全文摘要
基于組密鑰服務(wù)器的共享加密文件系統(tǒng)中的密鑰管理方法屬于存儲安全領(lǐng)域,其特征在于組密鑰服務(wù)器處理系統(tǒng)中的各種密鑰管理請求,并實(shí)施嚴(yán)格的用戶身份認(rèn)證和訪問權(quán)限檢查,客戶端通過向組密鑰管理器發(fā)送請求進(jìn)行密鑰操作;采用擴(kuò)展訪問控制列表的組織密鑰信息,包括文件密鑰,用戶ID和訪問權(quán)限,組密鑰服務(wù)器使用自己的秘密密鑰保護(hù)其機(jī)密性和完整性;客戶端實(shí)現(xiàn)了密鑰緩存功能,減少了與組密鑰服務(wù)器的通信次數(shù);系統(tǒng)采用了延遲加密技術(shù)實(shí)現(xiàn)密鑰撤消,將重新加密文件的時(shí)機(jī)推遲到文件內(nèi)容更新時(shí),最大限度地降低了密鑰撤消操作對系統(tǒng)性能的影響。
文檔編號H04L9/32GK101159556SQ200710177068
公開日2008年4月9日 申請日期2007年11月9日 優(yōu)先權(quán)日2007年11月9日
發(fā)明者劉志材, 達(dá) 肖, 舒繼武, 巍 薛 申請人:清華大學(xué)