專利名稱:云計(jì)算環(huán)境中基于磁盤驅(qū)動(dòng)的數(shù)據(jù)底層加密方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種云計(jì)算環(huán)境中基于磁盤驅(qū)動(dòng)的數(shù)據(jù)底層加密方法。
技術(shù)背景
云計(jì)算是一種面向互聯(lián)網(wǎng)的分布式計(jì)算服務(wù)。云存儲(chǔ)是在云計(jì)算概念上延伸和發(fā) 展出來的一個(gè)新的概念,是指通過集群應(yīng)用、網(wǎng)格技術(shù)或分布式文件系統(tǒng)等功能,將網(wǎng)絡(luò)中 大量各種不同類型的存儲(chǔ)設(shè)備通過應(yīng)用軟件集合起來協(xié)同工作,共同對(duì)外提供數(shù)據(jù)存儲(chǔ)和 業(yè)務(wù)訪問功能的一個(gè)系統(tǒng)。當(dāng)云計(jì)算系統(tǒng)運(yùn)算和處理的核心是大量數(shù)據(jù)的存儲(chǔ)和管理時(shí), 云計(jì)算系統(tǒng)中就需要配置大量的存儲(chǔ)設(shè)備,那么云計(jì)算系統(tǒng)就轉(zhuǎn)變成為一個(gè)云存儲(chǔ)系統(tǒng), 所以云存儲(chǔ)是一個(gè)以數(shù)據(jù)存儲(chǔ)和管理為核心的云計(jì)算系統(tǒng)。公有云是為公共普通客戶使用 而構(gòu)建的,計(jì)算資源為所有的人共享。私有云是為一個(gè)客戶或者企業(yè)單獨(dú)使用而構(gòu)建的,因 而對(duì)數(shù)據(jù)、安全性和服務(wù)質(zhì)量有更高的要求。
在公有云和私有云環(huán)境中,后端數(shù)據(jù)存儲(chǔ)采用云存儲(chǔ)系統(tǒng),所謂云存儲(chǔ)就是將大 量不同類型的存儲(chǔ)設(shè)備通過軟件集合起來協(xié)同工作,共同對(duì)外提供數(shù)據(jù)存儲(chǔ)服務(wù)。這樣,在 用戶看來,云計(jì)算后端就是一個(gè)大的存儲(chǔ)池,這個(gè)存儲(chǔ)池被大量用戶共享,用戶要做的事情 就是往存儲(chǔ)池中放數(shù)據(jù),而不用關(guān)心數(shù)據(jù)是如何存放的。這樣的結(jié)果是,用戶A的私有數(shù)據(jù) 有可能和用戶B的數(shù)據(jù)存放在同一個(gè)存儲(chǔ)服務(wù)器上,甚至是同一塊磁盤上,用戶B如果是一 個(gè)黑客,他可以通過某種手段利用虛擬機(jī)竊取存儲(chǔ)池中的數(shù)據(jù),如果A用戶的數(shù)據(jù)是明文, 則用戶A的私密資料就完全泄漏了。
現(xiàn)有的技術(shù)是如何解決云存儲(chǔ)中的數(shù)據(jù)安全的問題的呢?談到數(shù)據(jù)安全,我們可 以從兩個(gè)方面來考慮。首先是數(shù)據(jù)完整性,即如何保證數(shù)據(jù)不會(huì)丟失,或在災(zāi)難面前保證數(shù) 據(jù)有異地的數(shù)據(jù)備份,能夠方便地實(shí)現(xiàn)丟失數(shù)據(jù)的恢復(fù),這項(xiàng)技術(shù)在云存儲(chǔ)中通常借助分 布式文件系統(tǒng)中的自恢復(fù)技術(shù)來實(shí)現(xiàn),比如,開源的集群文件系統(tǒng)項(xiàng)目gluster中,提供了 AFR功能,即auto file r印licate,自動(dòng)文件備份,通過把幾個(gè)存儲(chǔ)實(shí)體設(shè)置為一個(gè)組,同 組內(nèi)的存儲(chǔ)體的寫操作會(huì)引起其它實(shí)體的寫備份,當(dāng)其中一個(gè)存儲(chǔ)服務(wù)器宕機(jī)時(shí),仍能保 證數(shù)據(jù)安全可靠。另外一方面就是數(shù)據(jù)的隱秘性了。為解決數(shù)據(jù)隱私的保護(hù)問題,常見的 方法是由用戶對(duì)數(shù)據(jù)進(jìn)行加密,把加密后的密文信息存儲(chǔ)在服務(wù)端。在加密操作的具體實(shí) 現(xiàn)過程中,加密實(shí)現(xiàn)方法也是多種多樣,常見的用戶層工具種類繁多,它們的原理都是需要 用戶手動(dòng)把數(shù)據(jù)進(jìn)行加密,使用時(shí)再輸入對(duì)應(yīng)密鑰進(jìn)行解密;底層的加密方法有加密文件 系統(tǒng),加密文件系統(tǒng)(ER5)提供一種核心文件加密技術(shù),該技術(shù)用于在NTFS文件系統(tǒng)卷上 存儲(chǔ)已加密的文件。一旦加密了文件或文件夾,您就可以像使用其他文件和文件夾一樣使 用它們。對(duì)加密該文件的用戶,加密是透明的。這表明不必在使用前手動(dòng)解密已加密的文 件。您可以正常打開和更改文件。
數(shù)據(jù)完整性和數(shù)據(jù)的隱秘性二者共同保證了數(shù)據(jù)的安全屬性,本文不對(duì)數(shù)據(jù)完整 性做討論,只討論數(shù)據(jù)的隱秘性。
用戶層的加密工具雖然可選余地很大,但是它增加了用戶的操作負(fù)擔(dān),延緩了用戶正常的數(shù)據(jù)訪問流程,用戶會(huì)感覺很繁瑣,累贅。
加密文件系統(tǒng)對(duì)用戶來說確實(shí)是透明的,但是它對(duì)用戶使用的操作系統(tǒng)卻有特殊 的要求,并不是所有的操作系統(tǒng)都支持該種加密文件系統(tǒng),這樣就會(huì)限制用戶的使用自由, 給用戶帶來不便。發(fā)明內(nèi)容
本發(fā)明的目的是提供一種云計(jì)算環(huán)境中基于磁盤驅(qū)動(dòng)的數(shù)據(jù)底層加密方法,它可 確保用戶存放在云存儲(chǔ)中的重要數(shù)據(jù)是密文,即使存儲(chǔ)池完全暴露出來,也仍能為用戶的 私密數(shù)據(jù)提供安全保證。
本發(fā)明采用的技術(shù)解決方案為
一種云計(jì)算環(huán)境中基于磁盤驅(qū)動(dòng)的數(shù)據(jù)底層加密方法,適用于由前端驅(qū)動(dòng)和后端 驅(qū)動(dòng)組成的虛擬磁盤設(shè)備,前端驅(qū)動(dòng)是運(yùn)行在普通虛擬機(jī)內(nèi)核態(tài)的驅(qū)動(dòng)程序,負(fù)責(zé)創(chuàng)建虛 擬設(shè)備,并且轉(zhuǎn)發(fā)虛擬設(shè)備的I/O請(qǐng)求,后端驅(qū)動(dòng)是運(yùn)行在特權(quán)虛擬機(jī)中的內(nèi)核態(tài)的驅(qū)動(dòng) 程序,負(fù)責(zé)接收前端驅(qū)動(dòng)轉(zhuǎn)發(fā)的I/O請(qǐng)求,并且通過真正的設(shè)備驅(qū)動(dòng)來訪問物理設(shè)備,完成 I/O請(qǐng)求,其特征在于該方法包括以下步驟
(1)當(dāng)處理磁盤寫請(qǐng)求時(shí),前端驅(qū)動(dòng)首先利用授權(quán)表把用于存放讀取結(jié)果的內(nèi)存 頁面授予后端驅(qū)動(dòng)所在的特權(quán)虛擬機(jī),使后端驅(qū)動(dòng)具有對(duì)該內(nèi)存頁面頁面的訪問權(quán)限;
(2)前端驅(qū)動(dòng)判斷是否加密,若不加密則轉(zhuǎn)下一步驟,否則對(duì)內(nèi)存頁面中的數(shù)據(jù)進(jìn) 行加密,繼續(xù)下一步驟;
(3)把對(duì)該磁盤的寫請(qǐng)求放入一個(gè)和后端驅(qū)動(dòng)共享的共享緩沖區(qū)中,并通過事件 通道通知后端驅(qū)動(dòng);
(4)后端驅(qū)動(dòng)被喚醒后,讀取共享緩沖區(qū)中的寫磁盤請(qǐng)求,把對(duì)應(yīng)授權(quán)表中授權(quán)的 內(nèi)存頁面映射到自己的內(nèi)存空間里,生成一個(gè)真正的磁盤訪問請(qǐng)求;
(5)磁盤寫請(qǐng)求完成后,結(jié)果已在映射頁面里面,后端驅(qū)動(dòng)釋放該映射,在共享緩 沖區(qū)中放入一個(gè)應(yīng)答,同時(shí)通過事件通道喚醒前端驅(qū)動(dòng)。
本發(fā)明提供透明的加密操作,提供多操作系統(tǒng)加密支持,提供較之更底層的磁盤 I/O數(shù)據(jù)流加密。既對(duì)用戶屏蔽了加密的動(dòng)作,又能很容易地給用戶提供各種各樣的操作系 統(tǒng)版本,包括Windows系列,Iinux主流發(fā)行版等。從而在最大程度上既不改變用戶使用習(xí) 慣又為用戶提供數(shù)據(jù)的隱秘性保證。
圖1是前后端驅(qū)動(dòng)原理圖2是磁盤前后端驅(qū)動(dòng)模式數(shù)據(jù)流;
圖3是加密位置分析圖4是前端驅(qū)動(dòng)加密流程圖。
具體實(shí)施方式
本發(fā)明涉及一種云計(jì)算環(huán)境中基于磁盤驅(qū)動(dòng)的數(shù)據(jù)底層加密方法,它是基于磁盤 I/O級(jí)別所做的數(shù)據(jù)加密。因此,這里首先詳細(xì)闡述下xen的磁盤設(shè)備驅(qū)動(dòng)模型。Xen是一個(gè)開源虛擬化產(chǎn)品,Xen使用一個(gè)叫做hypervisor的軟件層來調(diào)節(jié)對(duì)真實(shí)硬件的訪問,實(shí) 現(xiàn)在一臺(tái)單獨(dú)的計(jì)算機(jī)上運(yùn)行多個(gè)子操作系統(tǒng)(也就是多個(gè)虛擬機(jī))。Xen虛擬化技術(shù)分為 全虛擬化和半虛擬化,與此對(duì)應(yīng),I/O子系統(tǒng)則可以分為前后端驅(qū)動(dòng)模式、仿真設(shè)備和直接 分配設(shè)備。Xen將客戶機(jī)稱之為虛擬域(Domain),其中0號(hào)虛擬域?yàn)榉?wù)域作為監(jiān)控程序 的擴(kuò)展提供系統(tǒng)的管理服務(wù)。監(jiān)控程序擁有部分硬件IO資源如定時(shí)器設(shè)備、中斷設(shè)備PIC/ Local APIC/IO APIC等,其他虛擬域也可以擁有部分的IO資源如硬盤網(wǎng)卡等。普通虛擬域 只有虛擬設(shè)備而不擁有直接的硬件設(shè)備資源訪問權(quán)。
這幾種方式各有優(yōu)缺點(diǎn),比如仿真設(shè)備方式由于是在平臺(tái)級(jí)別的虛擬化,因此具 有很好的通用性,能支持各種Guest OS (客戶機(jī)操作系統(tǒng),也就是VM上運(yùn)行的操作系統(tǒng)), 但這種方法引入了復(fù)雜的I/O操作路徑,不僅需要在兩個(gè)虛擬機(jī)之間切換,還需要多次的 處理器運(yùn)行模式的切換。由于上下文切換的代價(jià)是很大的,所以這種方法難以實(shí)現(xiàn)高性能 的設(shè)備。對(duì)于磁盤設(shè)備、網(wǎng)絡(luò)設(shè)備等I/O訪問非常頻繁的設(shè)備來說,這個(gè)缺點(diǎn)尤其明顯。
既然仿真設(shè)備的方法有性能上的瓶頸,那么,有什么辦法能夠進(jìn)一步提高虛擬設(shè) 備的性能呢?從上面的分析可以看出,提高性能的關(guān)鍵在于減少上下文切換的次數(shù)。仿真 設(shè)備的方法,只能根據(jù)設(shè)備硬件手冊所規(guī)定的接口來實(shí)現(xiàn),并且操作系統(tǒng)的驅(qū)動(dòng)程序也是 根據(jù)硬件手冊寫成,因此很難減少資源捕獲的次數(shù),也就是上下文切換的次數(shù)。因此一個(gè)很 自然的思路就是,重新定義并簡化虛擬設(shè)備的接口,在一次上下文切換中做盡量多的操作, 從而實(shí)現(xiàn)高效的I/O設(shè)備。這就是半虛擬化的前后端設(shè)備驅(qū)動(dòng)模型,該方法在I/O性能上 較仿真設(shè)備有了大幅度提升,是半虛擬化普遍采用的方法。
圖1中給出了半虛擬化前后端設(shè)備I/O模型的原理架構(gòu)。VBD是半虛擬化I/O模 型在Xen里面的實(shí)現(xiàn),意為虛擬磁盤設(shè)備。VBD由前端(frontend)和后端(kickend)組 成。前端是運(yùn)行在Domain (普通虛擬機(jī))內(nèi)核態(tài)的驅(qū)動(dòng)程序,負(fù)責(zé)創(chuàng)建虛擬設(shè)備,并且轉(zhuǎn) 發(fā)虛擬設(shè)備的1/0請(qǐng)求。后端是運(yùn)行在DomainO (特權(quán)虛擬機(jī))中的內(nèi)核態(tài)的驅(qū)動(dòng)程序, 負(fù)責(zé)接收前端轉(zhuǎn)發(fā)的1/0請(qǐng)求,并且通過真正的設(shè)備驅(qū)動(dòng)來訪問物理設(shè)備,完成1/0請(qǐng)求。 Hypervisor通過提供事件通道、授權(quán)表和環(huán)緩沖區(qū)來幫助前端與后端進(jìn)行通訊。VBD非常 簡單高效,唯一的缺點(diǎn)是相對(duì)缺乏通用性,因?yàn)閂BD是操作系統(tǒng)相關(guān)的,需要為每種操作系 統(tǒng)實(shí)現(xiàn)前端驅(qū)動(dòng)。Linux 2. 4,Linux 2. 6,Windows下面都有不同的前端實(shí)現(xiàn)。后端只需要 運(yùn)行在DomainO中。
顯然,后端驅(qū)動(dòng)是沒法直接訪問設(shè)備虛擬機(jī)里面的文件內(nèi)容的,需要借助前端驅(qū) 動(dòng)配合來完成。前端驅(qū)動(dòng)和后端驅(qū)動(dòng)使用事件通道實(shí)現(xiàn)控制信息的傳遞,使用授權(quán)表完成 內(nèi)存頁共享。磁盤訪問分為讀和寫兩類,我們以讀磁盤為例,說明VBD的處理流程。
(1)當(dāng)處理request ()時(shí),前端驅(qū)動(dòng)首先利用授權(quán)表把用于存放讀取結(jié)果的頁面 授予后端驅(qū)動(dòng)所在的特權(quán)虛擬機(jī),使后端驅(qū)動(dòng)具有對(duì)該頁面的訪問權(quán)限;
(2)前端驅(qū)動(dòng)把該磁盤請(qǐng)求(request)放入一個(gè)和后端共享的環(huán)形緩沖區(qū)中,并 通過事件通道通知后端驅(qū)動(dòng)。
(3)后端驅(qū)動(dòng)被喚醒后,讀取共享緩沖區(qū)中的請(qǐng)求,把對(duì)應(yīng)授權(quán)表中授權(quán)的頁面映 射到自己的內(nèi)存空間里,生成一個(gè)真正的磁盤請(qǐng)求。
(4)磁盤請(qǐng)求完成時(shí),結(jié)果已經(jīng)在映射頁面里面了。后端驅(qū)動(dòng)釋放該映射,在共享 緩沖區(qū)中放入一個(gè)應(yīng)答(response),同時(shí)通過事件通道喚醒前端驅(qū)動(dòng)。
此時(shí),前端驅(qū)動(dòng)中已經(jīng)有了讀取結(jié)果,做完一些日常清理工作,一次讀磁盤請(qǐng)求就 完成了。
闡述了前后端驅(qū)動(dòng)的工作原理,我們不難看出,從虛擬機(jī)到后端存儲(chǔ)設(shè)備的數(shù)據(jù) 流向如圖2所示普通虛擬域DomainU中的虛擬機(jī)用戶空間數(shù)據(jù)一虛擬機(jī)文件系統(tǒng)一虛擬 機(jī)虛擬磁盤一前端驅(qū)動(dòng)一特權(quán)虛擬域DomainO中的特權(quán)虛擬機(jī)的后端驅(qū)動(dòng)一物理磁盤。
有了清晰的數(shù)據(jù)流,我們就可以在數(shù)據(jù)流中找到合適點(diǎn)來給數(shù)據(jù)做加密工作,如 果加密的點(diǎn)放在用戶空間,則會(huì)增加用戶操作的負(fù)擔(dān),顯得繁瑣;如果加密點(diǎn)放置在后端驅(qū) 動(dòng)上,則又會(huì)失去靈活性,畢竟加密動(dòng)作要降低I/O操作的性能,對(duì)于用戶的非敏感數(shù)據(jù), 為了提高訪問速度,用戶可以選擇明文存儲(chǔ),而后端驅(qū)動(dòng)只會(huì)別無選擇的處理數(shù)據(jù)。因此, 最合適的加密點(diǎn)位置應(yīng)該是如圖3所示的前端驅(qū)動(dòng)和后端驅(qū)動(dòng)之間的位置,這里既對(duì)用戶 隱藏了加密動(dòng)作,不增加用戶操作負(fù)擔(dān),又可以靈活的處理是否需要做加密動(dòng)作。
安全性和I/O訪問速度總是矛盾的,安全性能增加了必然會(huì)降低速度,我們要做 的就是在保證安全性的同時(shí),最大限度的兼顧速度。那選擇什么加密算法呢?這里先梳理 加密算法的異同。根據(jù)密鑰類型不同將現(xiàn)代密碼技術(shù)分為兩類對(duì)稱加密算法(秘密鑰匙 加密)和非對(duì)稱加密算法(公開密鑰加密)。對(duì)稱鑰匙加密系統(tǒng)是加密和解密均采用同一 把秘密鑰匙,而且通信雙方都必須獲得這把鑰匙,并保持鑰匙的秘密。非對(duì)稱密鑰加密系統(tǒng) 采用的加密鑰匙(公鑰)和解密鑰匙(私鑰)是不同的。對(duì)稱與非對(duì)稱算法比較總體來說 主要有下面幾個(gè)方面的不同在管理方面非對(duì)稱密碼算法只需要較少的資源就可以實(shí)現(xiàn) 目的,在密鑰的分配上,兩者之間相差一個(gè)指數(shù)級(jí)別(一個(gè)是η —個(gè)是n2)。在安全方面由 于非對(duì)稱加密算法基于未解決的數(shù)學(xué)難題,在破解上幾乎不可能。而對(duì)稱加密算法,現(xiàn)在雖 說從理論來說是不可能破解,但從計(jì)算機(jī)的發(fā)展角度來看,非對(duì)稱加密算法更具有優(yōu)越性。 速度方面對(duì)稱加密算法實(shí)現(xiàn)速度已經(jīng)達(dá)到了每秒數(shù)兆或數(shù)十兆比特。是非對(duì)稱加密算法 的100倍。
考慮到磁盤數(shù)據(jù)操作和I/O速度密切相關(guān),本發(fā)明選擇了速度更有優(yōu)勢的對(duì)稱加 密算法,下面詳細(xì)闡述對(duì)稱加密算法。對(duì)稱加密算法用來對(duì)敏感數(shù)據(jù)等信息進(jìn)行加密,常用 的對(duì)稱加密算法包括DES(Data Encryption Standard):數(shù)據(jù)加密標(biāo)準(zhǔn),速度較快,適用于 加密大量數(shù)據(jù)的場合。3DES(Triple DES)是基于DES,對(duì)一塊數(shù)據(jù)用三個(gè)不同的密鑰進(jìn)行 三次加密,強(qiáng)度更高。AES (Advanced Encryption Standard)高級(jí)加密標(biāo)準(zhǔn),是下一代的加 密算法標(biāo)準(zhǔn),速度快,安全級(jí)別高。
因此,本發(fā)明選擇使用AES作為數(shù)據(jù)加密算法。AES算法基于排列和置換運(yùn)算。排 列是對(duì)數(shù)據(jù)重新進(jìn)行安排,置換是將一個(gè)數(shù)據(jù)單元替換為另一個(gè)。AES使用幾種不同的方法 來執(zhí)行排列和置換運(yùn)算。AES是一個(gè)迭代的、對(duì)稱密鑰分組的密碼,它可以使用128、192和 256位密鑰,并且用1 位(16字節(jié))分組加密和解密數(shù)據(jù)。與公共密鑰密碼使用密鑰對(duì)不 同,對(duì)稱密鑰密碼使用相同的密鑰加密和解密數(shù)據(jù)。通過分組密碼返回的加密數(shù)據(jù)的位數(shù) 與輸入數(shù)據(jù)相同。迭代加密使用一個(gè)循環(huán)結(jié)構(gòu),在該循環(huán)中重復(fù)置換和替換輸入數(shù)據(jù)。
對(duì)于加密操作來說,最主要是如何保存私鑰,這里給出兩種方法,一種是使用軟件 方法,一種是硬件方法。軟件方法可以在用戶創(chuàng)建虛擬機(jī)時(shí)根據(jù)用戶的自己的選擇生成私 鑰,并把私鑰和客戶虛擬機(jī)鏡像一起存儲(chǔ),當(dāng)用戶的磁盤操作數(shù)據(jù)流經(jīng)過前端驅(qū)動(dòng)時(shí),前端 驅(qū)動(dòng)判斷是否需要進(jìn)行數(shù)據(jù)加密,并根據(jù)結(jié)果做相應(yīng)的動(dòng)作。硬件方法采用USBKey,USBKey6作為一個(gè)安全模塊已經(jīng)出現(xiàn)很久了,它是一種USB接口的硬件設(shè)備,它內(nèi)置單片機(jī)或智能 卡芯片,有一定的存儲(chǔ)空間,可以存儲(chǔ)用戶的私鑰及數(shù)字證書,也可以提供硬件加密功能, 在用戶購買虛擬主機(jī)的同時(shí),可以要求云計(jì)算提供商提供高可靠性的安全服務(wù),在USBKey 中灌入私鑰,確保私鑰安全。
加密過程如圖4所示
1當(dāng)緩沖區(qū)中有文件后,判斷是讀還是寫?
2若是寫,則繼續(xù)判斷是否要加密?
3若加密,則獲取私鑰,對(duì)緩沖區(qū)中的數(shù)據(jù)進(jìn)行AES加密,通知后端驅(qū)動(dòng)取走密 文,再由后端驅(qū)動(dòng)進(jìn)行寫磁盤操作,若不加密則直接由后端驅(qū)動(dòng)進(jìn)行寫磁盤操作;
4若是讀,則通知后端驅(qū)動(dòng)獲取請(qǐng)求數(shù)據(jù),
5前端讀取緩沖區(qū)中的數(shù)據(jù)后,判斷是否已加密?
6若已加密,則獲取私鑰,對(duì)緩沖區(qū)中的數(shù)據(jù)進(jìn)行AES解密后,再通知文件系統(tǒng)讀 取數(shù)據(jù),若未加密,則直接通知文件系統(tǒng)讀取數(shù)據(jù)。
權(quán)利要求
1.一種云計(jì)算環(huán)境中基于磁盤驅(qū)動(dòng)的數(shù)據(jù)底層加密方法,適用于由前端驅(qū)動(dòng)和后端驅(qū) 動(dòng)組成的虛擬磁盤設(shè)備,前端驅(qū)動(dòng)是運(yùn)行在普通虛擬機(jī)內(nèi)核態(tài)的驅(qū)動(dòng)程序,負(fù)責(zé)創(chuàng)建虛擬 設(shè)備,并且轉(zhuǎn)發(fā)虛擬設(shè)備的I/O請(qǐng)求,后端驅(qū)動(dòng)是運(yùn)行在特權(quán)虛擬機(jī)中的內(nèi)核態(tài)的驅(qū)動(dòng)程 序,負(fù)責(zé)接收前端驅(qū)動(dòng)轉(zhuǎn)發(fā)的I/O請(qǐng)求,并且通過真正的設(shè)備驅(qū)動(dòng)來訪問物理設(shè)備,完成I/ 0請(qǐng)求,其特征在于該方法包括以下步驟(1)當(dāng)處理磁盤寫請(qǐng)求時(shí),前端驅(qū)動(dòng)首先利用授權(quán)表把用于存放讀取結(jié)果的內(nèi)存頁面 授予后端驅(qū)動(dòng)所在的特權(quán)虛擬機(jī),使后端驅(qū)動(dòng)具有對(duì)該內(nèi)存頁面頁面的訪問權(quán)限;(2)前端驅(qū)動(dòng)判斷是否加密,若不加密則轉(zhuǎn)下一步驟,否則對(duì)內(nèi)存頁面中的數(shù)據(jù)進(jìn)行加 密,繼續(xù)下一步驟;(3)把對(duì)該磁盤的寫請(qǐng)求放入一個(gè)和后端驅(qū)動(dòng)共享的共享緩沖區(qū)中,并通過事件通道 通知后端驅(qū)動(dòng);(4)后端驅(qū)動(dòng)被喚醒后,讀取共享緩沖區(qū)中的寫磁盤請(qǐng)求,把對(duì)應(yīng)授權(quán)表中授權(quán)的內(nèi)存 頁面映射到自己的內(nèi)存空間里,生成一個(gè)真正的磁盤訪問請(qǐng)求;(5)磁盤寫請(qǐng)求完成后,結(jié)果已在映射頁面里面,后端驅(qū)動(dòng)釋放該映射,在共享緩沖區(qū) 中放入一個(gè)應(yīng)答,同時(shí)通過事件通道喚醒前端驅(qū)動(dòng)。
2.如權(quán)利要求1所述的云計(jì)算環(huán)境中基于磁盤驅(qū)動(dòng)的數(shù)據(jù)底層加密方法,其特征在于在所述步驟O)中,采用對(duì)稱加密算法對(duì)緩沖區(qū)中的數(shù)據(jù)進(jìn)行加密。
3.如權(quán)利要求2所述的云計(jì)算環(huán)境中基于磁盤驅(qū)動(dòng)的數(shù)據(jù)底層加密方法,其特征在于采用的對(duì)稱加密算法為高級(jí)加密標(biāo)準(zhǔn)AES。
全文摘要
一種云計(jì)算環(huán)境中基于磁盤驅(qū)動(dòng)的數(shù)據(jù)底層加密方法。包括步驟(1)前端驅(qū)動(dòng)利用授權(quán)表把內(nèi)存空間中分配的頁面授予后端驅(qū)動(dòng)所在的設(shè)備虛擬機(jī);(2)前端對(duì)緩沖區(qū)中的數(shù)據(jù)進(jìn)行加密;(3)把對(duì)該磁盤的寫請(qǐng)求放入一個(gè)和后端驅(qū)動(dòng)共享的環(huán)形緩沖區(qū)中,并通過事件通道通知后端驅(qū)動(dòng);(4)后端驅(qū)動(dòng)被喚醒后,讀取共享緩沖區(qū)中的寫磁盤請(qǐng)求,把對(duì)應(yīng)授權(quán)表中授權(quán)的頁面映射到自己的內(nèi)存空間里,生成一個(gè)真正的磁盤訪問請(qǐng)求;(5)磁盤寫請(qǐng)求完成后,后端驅(qū)動(dòng)釋放該映射,在共享緩沖區(qū)中放入一個(gè)應(yīng)答,同時(shí)通過事件通道喚醒前端驅(qū)動(dòng)。它可確保用戶存放在云存儲(chǔ)中的重要數(shù)據(jù)是密文,即使存儲(chǔ)池完全暴露出來,也仍能為用戶的私密數(shù)據(jù)提供安全保證。
文檔編號(hào)G06F21/00GK102034046SQ201010587760
公開日2011年4月27日 申請(qǐng)日期2010年12月10日 優(yōu)先權(quán)日2010年12月10日
發(fā)明者任海寶, 宋卓, 徐安, 沈啟龍, 牛立新, 王鵬, 胡中 申請(qǐng)人:北京世紀(jì)互聯(lián)工程技術(shù)服務(wù)有限公司