專利名稱:通過設(shè)備驅(qū)動器與密鑰管理器的通信來支持加密存儲設(shè)備與加密未知的應(yīng)用程序的互操 ...的制作方法
技術(shù)領(lǐng)域:
概括地說,本發(fā)明涉及帶存儲系統(tǒng),更具體地,涉及將設(shè)備驅(qū)動器用 作在能夠加密的帶驅(qū)動和密鑰管理器之間的代理。
背景技術(shù):
眾所周知地,使用數(shù)據(jù)存儲系統(tǒng)中的高密度、可移動介質(zhì)存儲庫在網(wǎng) 絡(luò)化計算機系統(tǒng)中提供大量存儲。通常,這種數(shù)據(jù)存儲系統(tǒng)用于后備或其 它二級存儲目的,但是所述數(shù)據(jù)存儲系統(tǒng)還可用作在適合于序列數(shù)據(jù)訪問 等的環(huán)境中的主存儲器。數(shù)據(jù)常常存儲在介質(zhì)盒上,例如磁帶或光盤。已 知的介質(zhì)盒能夠存儲大量數(shù)據(jù)。存儲系統(tǒng)可包括多個舊式存儲設(shè)備(即, 沒有被特定設(shè)計為與更多當(dāng)前數(shù)據(jù)存儲系統(tǒng)工作的設(shè)備)。
對于能夠加密的驅(qū)動器已知地,從應(yīng)用帶內(nèi)地(例如經(jīng)由光纖通道)
獲得密鑰或帶外地(例如通過與庫的接口 (例如RS-422接口 ))獲得密 鑰。獲得密鑰的這些方式分別承認(rèn)應(yīng)用管理密鑰和庫管理密鑰。
然而,與能夠加密的帶驅(qū)動相關(guān)的問題涉及何時向能夠加密的帶驅(qū)動 提供來自舊式應(yīng)用(即,還沒有被修改以提供密鑰的應(yīng)用)的數(shù)據(jù)。與能 夠加密的帶驅(qū)動相關(guān)的附加問題涉及何時將能夠加密的帶驅(qū)動設(shè)置于舊式 自動帶庫(即,還沒有被修改以從應(yīng)用的驅(qū)動器透明地獲得密鑰的帶庫) 中。在這些情形的任一個或兩者中,能夠加密的帶驅(qū)動不能獲得加密密鑰。 這個問題還可能存在于其它環(huán)境中。例如,如果能夠加密的帶驅(qū)動處于電 橋箱中或安裝在機架上(因此不是自動的),或如果能夠加密的帶驅(qū)動處 于惡劣環(huán)境中(例如在除了帶驅(qū)動的制造廠之外的制造廠倉庫中)。還可能,不會誘發(fā)惡劣環(huán)境以使得密鑰能夠傳遞至能夠加密的帶驅(qū)動。
在每個這樣的情形下,期望提供一種能力,向能夠加密的帶驅(qū)動提供 密鑰,從而可通過數(shù)據(jù)存儲系統(tǒng)中執(zhí)行的任意應(yīng)用透明地執(zhí)行加密。
發(fā)明內(nèi)容
根據(jù)本發(fā)明,提供一種帶系統(tǒng),其具有能夠加密的帶驅(qū)動以及用于所 述能夠加密的帶驅(qū)動的能夠加密的帶驅(qū)動的設(shè)備驅(qū)動器。所述能夠加密的 帶驅(qū)動的設(shè)備驅(qū)動器用作將能夠加密的帶驅(qū)動與密鑰管理器連接的代理, 以便于加密操作,例如密鑰管理器向帶驅(qū)動提供密鑰。因此,能夠加密的 帶驅(qū)動的設(shè)備驅(qū)動器便于加密,而不依賴于主機是否能夠支持或執(zhí)行加密。 在本發(fā)明的一個方面中,當(dāng)能夠加密的設(shè)備驅(qū)動器向驅(qū)動器發(fā)送命令(例
如讀或?qū)懨?時,帶驅(qū)動^:配置為通過專用于密鑰管理器(例如外部密
鑰管理器(EKM))的消息響應(yīng)。能夠加密的設(shè)備驅(qū)動器識別出這是專用 于EKM 116的消息,并(例如經(jīng)由互聯(lián)網(wǎng)協(xié)議(IP)連接)將該消息轉(zhuǎn) 發(fā)至EKM。然后,EKM通過發(fā)出新密鑰(用于從帶起始(BOT)寫入的 新盒)或現(xiàn)有密鑰(用于需要讀取的盒)來響應(yīng)該密鑰請求。設(shè)備驅(qū)動器 連接能夠加密的帶驅(qū)動的所有EKM響應(yīng)和能夠加密的帶驅(qū)動可以從中獲 得其密鑰的EKM。
這樣,設(shè)備驅(qū)動器提供在能夠加密的帶驅(qū)動與能夠加密的帶驅(qū)動可以 從中獲得其密鑰的EKM之間的通信路徑。 一旦帶驅(qū)動獲得所有密鑰,然 后驅(qū)動器代理向設(shè)備驅(qū)動器發(fā)出加密功能消息,所述設(shè)備驅(qū)動器然后繼續(xù) 處理主機應(yīng)用命令,并向主機應(yīng)用傳回這個信息。因此,應(yīng)用數(shù)據(jù)開始在 驅(qū)動器和應(yīng)用之間流動。(在寫的情況下流向帶驅(qū)動,在讀的情況下從帶 驅(qū)動流出)。對于普通命令,設(shè)備驅(qū)動器繼續(xù)用作應(yīng)用和設(shè)備驅(qū)動器之間 的通信路徑。設(shè)備驅(qū)動器還檢測專用于EKM的擴展命令,并單獨提供這 種通信路徑。因此,帶系統(tǒng)具有帶內(nèi)通信路徑(即,在設(shè)備驅(qū)動器和帶驅(qū) 動之間的通信路徑)和帶外通信路徑(即,在設(shè)備驅(qū)動器和EKM之間的 通信路徑)。因此,在一個實施例中,本發(fā)明涉及一種存儲系統(tǒng),包括主機、耦 合至主機的存儲設(shè)備、以及在主機上執(zhí)行的設(shè)備驅(qū)動器。所述存^fti殳備與 存儲介質(zhì)交互以存儲信息以及從所述存儲介質(zhì)提取信息,并包括加密模 塊,能夠?qū)Υ鎯橘|(zhì)上存儲的數(shù)據(jù)加密和解密。設(shè)備驅(qū)動器檢查來自所述 存儲設(shè)備的加密相關(guān)信息。所述加密相關(guān)信息是響應(yīng)于由所述主機發(fā)出的 命令生成的。當(dāng)加密相關(guān)信息存在時,所述設(shè)備驅(qū)動器便于加密,而不依 賴于所述主才幾是否能夠加密。
在另一實施例中,本發(fā)明涉及一種存儲設(shè)備,用于與存儲介質(zhì)交互以 存儲信息以及從所述存儲介質(zhì)提取信息。所述存儲設(shè)備包括加密模塊、 耦合至所述加密模塊的控制器。加密模塊能夠?qū)Υ鎯橘|(zhì)上存儲的數(shù)據(jù)加 密和解密??刂破髋c所述加密模塊交互以能夠向所述存儲介質(zhì)存儲信息和 從所述存儲介質(zhì)提取信息;其中所述存儲設(shè)備從設(shè)備驅(qū)動器接收信息和向 設(shè)備驅(qū)動器發(fā)送信息,其中所述設(shè)備驅(qū)動器檢查來自所述存儲設(shè)備的加密 相關(guān)信息。所iii口密相關(guān)信息是響應(yīng)于由所述主機發(fā)出的命令通過所述存 儲設(shè)備生成的,當(dāng)加密相關(guān)信息存在時。所述設(shè)備驅(qū)動器便于加密,而不 依賴于所述主機是否能夠加密。
在另一實施例中,本發(fā)明涉及一種在主機上執(zhí)行并與存儲設(shè)備通信的 設(shè)備驅(qū)動器。所述設(shè)備驅(qū)動器包括命令發(fā)起部分,用于攔截由所述主機 向所述存儲設(shè)備發(fā)出的命令;命令執(zhí)行部分,用于在加密操作執(zhí)行完成之 后執(zhí)行所述命令;加密部分,用于檢查來自所述存儲設(shè)備的加密相關(guān)信息, 其中所述加密相關(guān)信息是響應(yīng)于由所述主機發(fā)出的命令通過所述存儲設(shè)備 生成的。當(dāng)加密相關(guān)信息存在時,所述設(shè)備驅(qū)動器便于加密,而不依賴于 所述主機是否能夠加密。
在另一實施例中,本發(fā)明涉及一種便于在能夠加密的存儲設(shè)備和主機 之間加密的方法。該方法包括向所述存儲設(shè)備發(fā)出命令;響應(yīng)于所述命 令攔截由所述存條沒備生成的加密相關(guān)信息;確定所述加密相關(guān)信息是否 表示在通過所述能夠加密的存儲設(shè)備執(zhí)行所述命令之前需要執(zhí)行加密操 作;當(dāng)所i^口密相關(guān)信息表示需要加密操作時,執(zhí)行加密操作,而不依賴于所述主機是否能夠加密;以及在所述加密操作執(zhí)行完成之后執(zhí)行所述命 令。
在另一實施例中,本發(fā)明涉及一種存儲系統(tǒng)。所述存儲系統(tǒng)包括主 機、耦合至所述主機的存儲設(shè)備、耦合至所述存儲設(shè)備的模塊、以及在所 述主機上執(zhí)行的設(shè)備驅(qū)動器。所述存儲設(shè)備與存儲介質(zhì)交互以存儲信息以 及從所述存儲介質(zhì)提取信息。設(shè)備驅(qū)動器檢查來自所述存儲設(shè)備的專用狀 態(tài)信息,其中所述專用狀態(tài)信息是響應(yīng)于由所述主機發(fā)出的命令生成的。 當(dāng)所述專用狀態(tài)信息存在時,所述設(shè)備驅(qū)動器便于加密,而不依賴于所述 主機是否能夠與所述模塊通信。
優(yōu)選地,通過推(push)方法向所述存儲設(shè)備提供密鑰。更優(yōu)選地, 通過拉(pull)方法向所述存儲設(shè)備提供密鑰。更優(yōu)選地,所述存儲設(shè)備 包括帶驅(qū)動。
優(yōu)選地,所述模塊包括密鑰管理器,所述密鑰管理器經(jīng)由所述設(shè)備 驅(qū)動器向所述存^i殳備提供密鑰。更優(yōu)選地,所述存儲系統(tǒng)還包括代理, 所述代理建立在所述存儲設(shè)備和所述密鑰管理器之間的通信路徑,以便于 向所述存^i殳備提供密鑰。
更優(yōu)選地,通過在所述主機上執(zhí)行的應(yīng)用發(fā)出所述命令。更優(yōu)選地,
在以下詳細(xì)描述的具體實施方式
中,本發(fā)明的上述和其它目的、特征 和優(yōu)點將變得清楚。
在所附權(quán)利要求中闡述了本發(fā)明的認(rèn)為有新穎性的特征。然而,在結(jié) 合附圖閱讀時,本發(fā)明本身及其優(yōu)選實施方式、與本發(fā)明的其它目的和優(yōu) 點可通過參照示例性實施例的以下具體實施方式
更好地理解,其中
圖1示出具有代表性帶存儲系統(tǒng)的示意性框圖。
圖2示出具有帶驅(qū)動和帶盒的示意性框圖。
圖3示出在執(zhí)行加密訪問時帶系統(tǒng)的操作的流程圖。圖4A-4D (統(tǒng)稱為圖4)示出用于密鑰管理器拉方法的執(zhí)行加密訪問 的帶系統(tǒng)的操作的流程圖。
圖5示出代表性帶存儲系統(tǒng)和密鑰管理器拉方法的流程路徑的示意性 框圖。
圖6A-6B (統(tǒng)稱為圖6)示出用于密鑰管理器推方法的執(zhí)行加密訪問 的帶系統(tǒng)的操作的流程圖。
圖7示出代表性帶存儲系統(tǒng)和密鑰管理器推方法的流程路徑的示意性 框圖。
M實施方式
在以下iJL明中,引用示出本發(fā)明幾個實施例的附圖。可以理解,可以 利用其它實施例,并且在不脫離本發(fā)明的范圍的情況下可以進(jìn)行結(jié)構(gòu)和操 作的改變。
參照圖1,示出在其中實現(xiàn)本發(fā)明的方面的帶存儲系統(tǒng)100的架構(gòu)。 帶存儲系統(tǒng)100包括主機IIO、帶驅(qū)動112和帶盒114。帶存儲系統(tǒng)100 還包括外部密鑰管理器(EKM) 116。
主機110包括設(shè)備驅(qū)動器120以及代理122。主枳還包括應(yīng)用124。帶 驅(qū)動包括控制器130以M。密模塊132。帶盒114包括非易失性盒式存儲 器140以及高容量磁帶142。
應(yīng)用124可包括后備程序,所述后備程序向帶驅(qū)動112和從帶驅(qū)動112 傳送數(shù)據(jù),以順序地向帶142寫入數(shù)據(jù),或從帶142讀取數(shù)據(jù)。應(yīng)用124 可使用SCSI帶命令向帶驅(qū)動112傳達(dá)I/O請求??蛇x地,應(yīng)用124可使 用其它數(shù)據(jù)訪問命令協(xié)議。為了提取數(shù)據(jù),應(yīng)用124可使得帶142順序地 或以隨機方式讀取。
盒式存儲器140保存與磁帶142上的數(shù)據(jù)的格式和布局相關(guān)的信息。 盒式存儲器140還保存用于對磁帶142上存儲的數(shù)據(jù)加密和解密的加密信 命
帶驅(qū)動112包括能夠向》茲帶142和從磁帶142傳送數(shù)據(jù)的讀/寫頭。帶驅(qū)動控制器130從主機系統(tǒng)110接收輸入/輸出(1/0)請求,并且能通過 以下方式執(zhí)行所接收的1/0請求,即,使用帶驅(qū)動機制和算法評估文件在 帶上的可能位置,以重繞帶并將帶頭定位在磁帶142上的特定位置。帶驅(qū) 動112可包含在主機系統(tǒng)110中,或是獨立單元,或包含在帶庫中。帶驅(qū) 動112可經(jīng)由直接接口 (例如SCSI、光纖通道等)與主機連接,或通過網(wǎng) 絡(luò)(例如局域網(wǎng)(LAN)、存儲域網(wǎng)(SAN)、廣域網(wǎng)(WAN)、互聯(lián)網(wǎng)、 內(nèi)聯(lián)網(wǎng)等)連接。
即使主機110或主機應(yīng)用124不能夠加密,在帶驅(qū)動能夠加密時,設(shè) 備驅(qū)動器120能使得帶系統(tǒng)100對帶盒142上的數(shù)據(jù)加密和解密。因此, 設(shè)備驅(qū)動器120是能夠加密的帶驅(qū)動的設(shè)備驅(qū)動器。能夠加密的帶驅(qū)動的 設(shè)備驅(qū)動器經(jīng)由代理122提供代理功能,所述代理將能夠加密的帶驅(qū)動112 與向帶驅(qū)動112提供密鑰的密鑰管理器116連接。因此,i殳備驅(qū)動器120 提供在能夠加密的帶驅(qū)動112和EKM 116之間的通信路徑,能夠加密的 帶驅(qū)動112可以從EKM 116獲得密鑰。對于普通(即,非加密相關(guān))命 令,設(shè)備驅(qū)動器120用作在應(yīng)用和設(shè)備驅(qū)動器之間的通信路徑。設(shè)備驅(qū)動 器120還可用作在代理122的控制下通向帶驅(qū)動112的通信路徑。設(shè)備驅(qū) 動器120還檢測專用于EKM的擴展命令,并單獨提供這種通信路徑。因 此,能夠加密的i殳備驅(qū)動器120使得帶系統(tǒng)100具有帶內(nèi)通信路徑(即, 在設(shè)備驅(qū)動器和帶驅(qū)動之間的通信路徑)和帶外通信路徑(即,在設(shè)備驅(qū) 動器和EKM之間的通信路徑)。
圖2示出具有帶驅(qū)動112和帶盒114的示意性框圖。帶驅(qū)動112包括 接口 220、加密模塊132 (可以是例如專用集成電路(ASIC))、讀/寫系 統(tǒng)230、和讀/寫頭240。帶驅(qū)動112還包括固件250,所述固件250耦合至 控制器130和加密模塊132。
在所示實例中,主機110例如通過使用小型計算機系統(tǒng)接口 (SCSI) 帶命令向帶驅(qū)動112傳達(dá)I/O請求或本領(lǐng)域已知的任意其它數(shù)據(jù)訪問命令 協(xié)議的方式向帶驅(qū)動112傳送數(shù)據(jù),以向帶盒114連續(xù)地寫入。
帶驅(qū)動112使用接口 220與主機110通信。讀/寫系統(tǒng)230與用于從可寫帶介質(zhì)130讀取信息和向可寫帶介質(zhì)130寫入信息的讀/寫頭240交互, 并控制所述讀/寫頭240。讀/寫系統(tǒng)230通過以期望的速度在頭240上移動 磁帶介質(zhì)130來控制讀/寫頭240相對于磁帶介質(zhì)130移動,并停止、開始 和反轉(zhuǎn)磁帶的移動方向。
帶驅(qū)動112中的控制系統(tǒng)(或控制器)130與接口 220、加密模塊132、 和讀/寫系統(tǒng)230通信。為了提取命令和交換用于操作盒式處理系統(tǒng)114的 信息,控制器130還控制接口 220以通過一個或多個端口 (未示出)通信。 加密模塊132使得安全地加密數(shù)據(jù)并將數(shù)據(jù)存儲到帶盒114,以及安全地 提取和解密在帶盒114上存儲的數(shù)據(jù)。在操作中,加密模塊132使用具有 任意期望密鑰長度(例如128或256位數(shù)據(jù)密鑰長度)的數(shù)據(jù)密鑰(例如 通過使用高級加密標(biāo)準(zhǔn)加密算法)執(zhí)行實際數(shù)據(jù)加密和解密,并且還執(zhí)行 其它編碼功能,例如數(shù)據(jù)壓縮和解壓縮以及數(shù)據(jù)緩沖。為了加密和解密數(shù) 據(jù),加密模塊132還通過組合、驗證、分配、存儲和提取加密封裝的數(shù)據(jù) 密鑰(EEDK )以及通過與關(guān)聯(lián)至EEDK的EKM 116安全地交換數(shù)據(jù)密 鑰(SEDK)來控制數(shù)據(jù)加密/解密。加密模塊132可通過硬件和/或軟件的 任意期望的組合來實現(xiàn)。例如,加密模塊132可通過由固件250和控制器 130控制并與它們交互的ASIC或FPGA電路來實現(xiàn)。
如上所述,帶系統(tǒng)IOO執(zhí)行多種功能,包括但不限于,通過使用數(shù)據(jù) 密鑰(例如AES加密密鑰)對要在盒114上存儲的數(shù)據(jù)加密;使用公共密 鑰加密技術(shù)通過不同密鑰對數(shù)據(jù)密鑰包裝,以形成一個或多個加密的數(shù)據(jù) 密鑰;向帶盒介質(zhì)130寫入以及從帶盒介質(zhì)130讀出加密的數(shù)據(jù)和加密的 數(shù)據(jù)密鑰(多個);以及通過對加密的數(shù)據(jù)密鑰解包裝獲得的數(shù)據(jù)密鑰對 存儲的加密數(shù)據(jù)進(jìn)行解密。這樣,帶系統(tǒng)IOO提供分布式密鑰存儲器,其 通過使用每個用戶的公共密鑰對數(shù)據(jù)密鑰包裝而生成單獨EEDK的方式允 許不同用戶訪問在一個帶盒114上的加密數(shù)據(jù)。
圖3示出在執(zhí)行加密訪問時帶系統(tǒng)100的操作的流程圖。更具體地, 帶系統(tǒng)執(zhí)行命令發(fā)起操作310、在帶驅(qū)動110和EKM 116之間的加密密鑰 管理操作312、和命令執(zhí)行操作314。命令發(fā)起操作310生成向設(shè)備驅(qū)動器器120提供的命令。加密密鑰管理操作312包括在步驟320,確定加密 是否存在于(或期望的)帶盒114上;在步驟322,執(zhí)行加密相關(guān)功能; 以及在步驟324,確定加密相關(guān)功能是否完成。當(dāng)加密相關(guān)功能完成時, 通過命令執(zhí)4亍操作314執(zhí)行在命令發(fā)起操作310生成的命令。
更具體地,在命令發(fā)起操作310期間,當(dāng)應(yīng)用124嘗試訪問帶驅(qū)動112 時發(fā)起訪問。應(yīng)用124經(jīng)由設(shè)備驅(qū)動器120訪問帶驅(qū)動112。能夠加密的 設(shè)備驅(qū)動器120使得命令(例如讀或?qū)懨?發(fā)送至帶驅(qū)動112。
在加密操作312期間,帶驅(qū)動112在步驟314通過專用于密鑰管理器 (例如EKM116)的消息響應(yīng)。能夠加密的設(shè)備驅(qū)動器120在步驟320識 別出這是專用于EKM 116的消息。在步驟322期間,設(shè)備驅(qū)動器120 (例 如經(jīng)由互聯(lián)網(wǎng)協(xié)議(IP)連接)將該消息轉(zhuǎn)發(fā)至EKM116。然后,EKM116 通過發(fā)出新密鑰(用于從帶起始(BOT)寫入的新盒)或現(xiàn)有密鑰(用于 需要讀取的盒)來響應(yīng)該密鑰請求。設(shè)備驅(qū)動器120在步驟322期間繼續(xù) 在帶驅(qū)動112和EKM 116之間的交互,在步驟324確定是否連接能夠加 密的帶驅(qū)動112的所有EKM響應(yīng)和能夠加密的帶驅(qū)動可以從中獲得其密 鑰的EKM116。 一旦帶驅(qū)動獲得所有密鑰,然后代理116在步驟314向設(shè) 備驅(qū)動器120發(fā)出加密功能消息,所述設(shè)備驅(qū)動器120然后執(zhí)行所述命令。
接下來,在步驟314的命令執(zhí)行操作之后,設(shè)備驅(qū)動器120將所述命 令完成信息傳達(dá)至主機應(yīng)用124。然后,應(yīng)用數(shù)據(jù)開始在驅(qū)動器和應(yīng)用之 間流動。(在寫的情況下流向帶驅(qū)動,在讀的情況下從帶驅(qū)動流出)。對 于普通(即,非加密相關(guān))命令,設(shè)備驅(qū)動器120用作應(yīng)用和設(shè)備驅(qū)動器 之間的通信路徑。設(shè)備驅(qū)動器120還檢測專用于EKM的擴展命令,并單 獨提供這種通信路徑。因此,能夠加密的設(shè)備驅(qū)動器120使得帶系統(tǒng)100 具有帶內(nèi)通信路徑(即,在設(shè)備驅(qū)動器和帶驅(qū)動之間的通信路徑)和帶外 通信路徑(即,在設(shè)備驅(qū)動器和EKM之間的通信路徑)。
現(xiàn)在參照圖4和5,圖4示出用于密鑰管理器拉方法的帶存儲系統(tǒng)的 操作的流程圖,圖5示出代表性帶存儲系統(tǒng)和密鑰管理器拉方法的流程路 徑的示意性框圖。為了更好地示出流程圖的步驟與帶存儲系統(tǒng)的流程路徑的相應(yīng)關(guān)系,在圖4的流程圖上的圓圏中表示的數(shù)字對應(yīng)于在圖5的框圖 上的圓圏中的相同數(shù)字。
當(dāng)在步驟410應(yīng)用(例如應(yīng)用124)發(fā)出帶命令(CMD)時,該方法 開始。當(dāng)應(yīng)用124發(fā)出命令時,該命令實際上發(fā)向帶驅(qū)動的驅(qū)動器120。 接下來,在步驟412驅(qū)動器120向帶驅(qū)動發(fā)出命令。當(dāng)在步驟414帶驅(qū)動 接收該命令時,在步驟416帶驅(qū)動復(fù)查該命令,以確定該命令是否為加密 相關(guān)并且需要與EKM 116通信(即,是否為需要執(zhí)行該命令的加密信息)。
如果該命令不需要與EKM 116的加密相關(guān)的交換,則在步驟420帶 驅(qū)動112執(zhí)行該命令,并在步驟422向設(shè)備驅(qū)動器120返回狀態(tài)指示(STS )。 在步驟424,設(shè)備驅(qū)動器120復(fù)查該狀態(tài)指示。如果該狀態(tài)指示不是專用 的(即,該命令不是加密相關(guān)的并且已經(jīng)完成),則在步驟426將該狀態(tài) 轉(zhuǎn)發(fā)至應(yīng)用,然后在步驟428所述應(yīng)用檢查該狀態(tài)指示以保證該命令已經(jīng) 執(zhí)行,并然后向應(yīng)用返回控制以發(fā)出另一命令(如果期望)。
如果該命令需要與EKM116的加密相關(guān)的交換,則在步驟430,帶驅(qū) 動112將專用狀態(tài)指示返回至設(shè)備驅(qū)動器120。(例如,在某些實施例中, 帶驅(qū)動112返回包括十六進(jìn)制的值EF的狀態(tài)指示,其表示廠商唯一的任 意加密指示)。在步驟424,設(shè)備驅(qū)動器120復(fù)查狀態(tài)指示。如果該狀態(tài) 指示是專用的(即,該命令是加密相關(guān)的),則在步驟440設(shè)備驅(qū)動器120 保留該命令用于以后的處理,并呼叫代理122。在步驟442,代理122查詢 帶驅(qū)動122以轉(zhuǎn)發(fā)信息。然后在步驟444,驅(qū)動器114建立用于加密的初 始命令,并經(jīng)由驅(qū)動器120向代理122發(fā)送該命令。然后在步驟446,代 理122打開與EKM 116的連接,并向EKM116發(fā)送該命令。(在某些實 施例中,驅(qū)動器112與EKM 116之間的連接可經(jīng)由TCP/IP套接字,所述 TCP/IP套接字或者已經(jīng)存在或者通過代理122建立。)
然后在步驟450, EKM116解析該命令。接下來在步驟452, EKM向 代理122發(fā)出加密命令。然后在步驟454,代理向驅(qū)動器112發(fā)出命令。 驅(qū)動器處理該命令,然后在步驟456響應(yīng)于代理。在步驟458,代理122 向EKM 116轉(zhuǎn)發(fā)驅(qū)動器響應(yīng)。EKM 116分析該響應(yīng),以在步驟460確定更多加密步驟是否必要(即,是否完成加密操作)。如果其它加密步驟是
必要的,則EKM返回步驟452,并向代理122發(fā)出另一加密命令。如果 沒有其它加密步驟是必要的,則在步驟470, EKM 116生成最終流程狀態(tài) 指示,并向代理轉(zhuǎn)發(fā)這個狀態(tài)指示。在步驟472,代理檢測這個最終流程 狀態(tài)指示,并在步驟474確定是否存在錯誤。如果存在錯誤(表示在加密 操作期間出現(xiàn)問題),則在步驟410代理向主機應(yīng)用轉(zhuǎn)發(fā)這個狀態(tài)指示。 如果不存在錯誤,則代理122提取在步驟440保留的命令,并在步驟476 向驅(qū)動器122發(fā)出這個命令。然后,在步驟414驅(qū)動器接收該命令,并繼 續(xù)處理該命令。因為加密操作已經(jīng)完成,所以帶驅(qū)動112應(yīng)該確定在步驟 416不需要加密相關(guān)交換,并且應(yīng)通過步驟420處理該命令。
現(xiàn)在參照圖6和7,圖6示出用于密鑰管理器推方法的帶存儲系統(tǒng)的 操作的流程圖,圖7示出代表性帶存儲系統(tǒng)和密鑰管理器推方法的流程路 徑的示意性框圖。為了更好地示出流程圖的步驟與帶存儲系統(tǒng)的流程路徑 的相應(yīng)關(guān)系,在圖6的流程圖上的圓圏中表示的數(shù)字對應(yīng)于在圖7的框圖 上的圓圏中的相同數(shù)字。
當(dāng)在步驟610應(yīng)用(例如應(yīng)用124)發(fā)出帶命令(CMD)時,該方法 開始。當(dāng)應(yīng)用124發(fā)出命令時,該命令實際上發(fā)向帶驅(qū)動的驅(qū)動器120。 接下來,在步驟612驅(qū)動器120向帶驅(qū)動發(fā)出命令。當(dāng)在步驟614帶驅(qū)動 接收該命令時,在步驟616帶驅(qū)動復(fù)查該命令,以確定該命令是否為加密 相關(guān)并且需要與EKM 116通信(即,是否為需要執(zhí)行該命令的加密信息)。
如果該命令不需要與EKM 116的加密相關(guān)的交換,則在步驟620帶 驅(qū)動112執(zhí)行該命令,并在步驟622向設(shè)備驅(qū)動器120返回狀態(tài)指示(STS )。 在步驟624,設(shè)備驅(qū)動器120復(fù)查該狀態(tài)指示。如果該狀態(tài)指示不是專用 的(即,該命令不是加密相關(guān)的并且已經(jīng)完成),則在步驟626將該狀態(tài) 轉(zhuǎn)發(fā)至應(yīng)用,然后在步驟628所述應(yīng)用檢查該狀態(tài)指示以保證該命令已經(jīng) 執(zhí)行,并然后向應(yīng)用返回控制以發(fā)出另一命令(如果期望)。
如果該命令需要與EKM116的加密相關(guān)的交換,則在步驟630,帶驅(qū) 動112將專用狀態(tài)指示返回至設(shè)備驅(qū)動器120。(例如,在某些實施例中,帶驅(qū)動112返回包括十六進(jìn)制的值EF的狀態(tài)指示,其表示廠商唯一的任 意加密指示)。在步驟624,設(shè)備驅(qū)動器120復(fù)查狀態(tài)指示。如果該狀態(tài) 指示是專用的(即,該命令是加密相關(guān)的),則在步驟640設(shè)備驅(qū)動器120 保留該命令用于以后的處理,并呼叫代理122。
在步驟642,代理122查詢帶驅(qū)動122以轉(zhuǎn)發(fā)信息。然后在步驟644, 驅(qū)動器112建立用于加密所必須的所有命令,并經(jīng)由驅(qū)動器120向代理122 發(fā)送這些命令。
然后在步驟646,代理122打開與EKM 116的連接,并向EKM 116 發(fā)送所述命令。(在某些實施例中,驅(qū)動器112與EKM 116之間的連接 可經(jīng)由TCP/IP套接字,所述TCP/IP套接字或者已經(jīng)存在或者通過代理 122建立。)
然后在步驟650, EKM 116處理所述加密命令。接下來在步驟670, EKM向代理122發(fā)出流程狀態(tài)指示。在步驟672,代理檢測這個流程狀態(tài) 信息,并在步驟674確定是否存在錯誤。如果存在錯誤(表示在加密操作 期間出現(xiàn)問題),則在步驟626代理向主機應(yīng)用轉(zhuǎn)發(fā)這個狀態(tài)指示。如果 不存在錯誤,則代理122提取在步驟640保留的命令,并在步驟676向驅(qū) 動器122發(fā)出這個命令。然后,在步驟614驅(qū)動器接收該命令,并繼續(xù)處 理該命令。因為加密操作已經(jīng)完成,所以帶驅(qū)動112應(yīng)該確定在步驟616 不需要加密相關(guān)交換,并且應(yīng)通過步驟620處理該命令。
盡管參照本發(fā)明優(yōu)選實施例具體顯示和描述了本發(fā)明,但是本領(lǐng)域普 通技術(shù)人員可以理解,在不脫離本發(fā)明的精神和范圍的情況下在形式和細(xì) 節(jié)上可以進(jìn)行上述和其它改變。
本發(fā)明還適用于達(dá)到上述和其中固有的其它優(yōu)點。盡管通過參照本發(fā) 明的具體實施例描繪、描述和限定了本發(fā)明,但是這種引用不暗示對本發(fā) 明的限制,并且不能推出這種限制。對于相關(guān)領(lǐng)域普通技術(shù)人員,本發(fā)明 可以在形式和功能上進(jìn)行相當(dāng)大的改變、變化和等效。所描繪和描述的實 施例僅是實例,并非本發(fā)明的全部范圍。
例如,其它存儲設(shè)備可使用類似的設(shè)備驅(qū)動器機制。此外,例如,可^沒想其它的帶驅(qū)動架構(gòu)。此外,例如,盡管將設(shè)備驅(qū)動器和代理闡述為單 獨模塊,可以理解,設(shè)備驅(qū)動器和代理可包括在一個模塊中。此外,例如, 可以理解,可經(jīng)由設(shè)備驅(qū)動器代理其它類型的補充模塊的其它類型的操作。
此外,例如,帶驅(qū)動112和帶盒114的功能可在統(tǒng)稱為虛擬帶庫的軟件中 實現(xiàn)。虛擬帶庫軟件可以與主機110通信,并模擬物理帶庫的功能,包括 從帶驅(qū)動的帶介質(zhì)讀取和向其寫入的功能。虛擬帶庫軟件可駐留在與主機 110耦合的單獨計算機系統(tǒng)上。作為另一實例,帶驅(qū)動112和帶盒114可 包括在帶庫中。
此外,例如,以上討論的實施例包括執(zhí)行某些任務(wù)的模塊。這里討論 的模塊可包括腳本、批處理、或其它可執(zhí)行文件。模塊可以在機器可讀或 計算機可讀存儲介質(zhì)(例如硬盤)上存儲。根據(jù)本發(fā)明實施例的用于存儲 才莫塊的存儲設(shè)備可以是磁帶、磁軟盤、硬盤、或光盤(例如CD-ROM或 CD-R)。根據(jù)本發(fā)明實施例的用于存儲固件或硬件模塊的存儲設(shè)備還可包 括基于半導(dǎo)體的存儲器,其可以永久地、可移動地或遠(yuǎn)程地耦合至微處理 器/存儲器系統(tǒng)。因此,模塊可以存儲在計算機系統(tǒng)存儲器中,以配置計算 機系統(tǒng)來執(zhí)行模塊的功能??墒褂闷渌滦秃透鞣N類型計算機可讀存儲介 質(zhì)來存儲這里討論的模塊。此外,本領(lǐng)域普通技術(shù)人員可以認(rèn)識到將功能 分到模塊中是用于示意性目的。可選實施例可將多個模塊的功能合并到一 個模塊中,或可對模塊功能施加交替分解。例如,可對用于調(diào)用子^t塊的 模塊進(jìn)行分解,從而每個子模塊執(zhí)行其功能并向另 一子模塊直接傳遞控制。
因此,本發(fā)明旨在僅受到所附權(quán)利要求的精神和范圍的限制,在所有 方面給出等同物的完全認(rèn)識。
權(quán)利要求
1. 一種存儲系統(tǒng),包括主機;存儲設(shè)備,耦合至所述主機,所述存儲設(shè)備與存儲介質(zhì)交互以存儲和從所述存儲介質(zhì)提取信息,所述存儲設(shè)備包括加密模塊,能夠?qū)Υ鎯橘|(zhì)上存儲的數(shù)據(jù)加密和解密;以及設(shè)備驅(qū)動器,用于檢查來自所述存儲設(shè)備的加密相關(guān)信息,所述加密相關(guān)信息是響應(yīng)于由所述主機發(fā)出的命令生成的,當(dāng)加密相關(guān)信息存在時,所述設(shè)備驅(qū)動器可操作以便于加密,而不依賴于所述主機是否能夠加密。
2. 如權(quán)利要求l的存儲系統(tǒng),還包括密鑰管理器,用于經(jīng)由所述設(shè)備驅(qū)動器向所述存儲設(shè)備提供密鑰。
3. 如權(quán)利要求2的存儲系統(tǒng),還包括代理,用于建立在所述存儲設(shè)備和所述密鑰管理器之間的通信路徑, 以便于向所述存儲設(shè)備提供密鑰。
4. 如權(quán)利要求2的存儲系統(tǒng),其中通過在所述主機上執(zhí)行的應(yīng)用發(fā)出所述命令,以及所述應(yīng)用包括向所 述存儲設(shè)備以及從所述存儲設(shè)備傳送數(shù)據(jù)的后備程序。
5. 如權(quán)利要求l的存儲系統(tǒng),其中所述加密相關(guān)信息包括由所述存儲設(shè)備發(fā)出的狀態(tài)指示,其表示在通 過所述存^i殳備執(zhí)行所述命令之前需要執(zhí)行加密操作。
6. —種存儲設(shè)備,用于與存儲介質(zhì)交互以存儲和從所述存儲介質(zhì)提 取信息,所述存^i殳備包括加密模塊,能夠?qū)Υ鎯橘|(zhì)上存儲的數(shù)據(jù)加密和解密;以及 控制器,耦合至所述加密模塊,用于與所述加密模塊交互以能夠向所述存儲介質(zhì)存儲信息以及從所述存儲介質(zhì)提取信息;其中所述存儲設(shè)備可操作以從設(shè)備驅(qū)動器接收信息以及向設(shè)備驅(qū)動器發(fā)送信息,其中所述設(shè)備驅(qū)動器可操作以檢查來自所述存儲設(shè)備的加密相關(guān)信息,所述加密相關(guān)信息是響應(yīng)于由所述主機發(fā)出的命令通過所述存儲設(shè)備 生成的,當(dāng)加密相關(guān)信息存在時,所述設(shè)備驅(qū)動器可操作以便于加密,而 不依賴于所述主機是否能夠加密。
7. 如權(quán)利要求6的存儲設(shè)備,其中所述設(shè)備驅(qū)動器可操作以與密鑰管理器交互,其中所述密鑰管理器可 操作以經(jīng)由所述設(shè)備驅(qū)動器向所述存儲設(shè)備提供密鑰。
8. 如權(quán)利要求7的存儲設(shè)備,其中所述設(shè)備驅(qū)動器可操作以與代理交互,其中所述代理可操作以建立在 所述存儲設(shè)備和所述密鑰管理器之間的通信路徑,以便于向所述存儲設(shè)備 提供密鑰。
9. 如權(quán)利要求6的存儲設(shè)備,其中通過在所述主機上執(zhí)行的應(yīng)用發(fā)出所述命令,以及所述應(yīng)用包括向所 述存儲設(shè)備以及從所述存儲設(shè)備傳送數(shù)據(jù)的后備程序。
10. 如權(quán)利要求6的存儲設(shè)備,其中所述加密相關(guān)信息包括由所述存儲設(shè)備發(fā)出的狀態(tài)指示,其表示在通 過所述存儲設(shè)備執(zhí)行所述命令之前需要執(zhí)行加密操作。
11. 一種在主機上執(zhí)行的并與存儲設(shè)備通信的設(shè)備驅(qū)動器,所述設(shè)備 驅(qū)動器包括命令發(fā)起部分,用于攔截由所述主機向所述存^i殳備發(fā)出的命令; 加密部分,用于檢查來自所述存^i殳備的加密相關(guān)信息,所述加密相 關(guān)信息是響應(yīng)于由所述主機發(fā)出的命令通過所述存儲設(shè)備生成的,當(dāng)加密 相關(guān)信息存在時,其中所述設(shè)備驅(qū)動器可操作以便于加密,而不依賴于所 述主機是否能夠加密。
12. 如權(quán)利要求11的設(shè)備驅(qū)動器,還包括 命令執(zhí)行部分,用于在加密操作執(zhí)行完成之后執(zhí)行所述命令。
13. 如權(quán)利要求11的設(shè)備驅(qū)動器,其中所述設(shè)備驅(qū)動器可操作以與密鑰管理器通信,其中所述密鑰管理器可 操作以經(jīng)由所述i殳備驅(qū)動器向所述存^ft^殳備提供密鑰。
14. 如權(quán)利要求13的設(shè)備驅(qū)動器,還包括代理,用于建立在所述存儲設(shè)備和所述密鑰管理器之間的通信路徑, 以便于向所述存儲設(shè)備提供密鑰。
15. 如權(quán)利要求13的設(shè)備驅(qū)動器,其中通過在所述主機上執(zhí)行的應(yīng)用發(fā)出所述命令,以及所述應(yīng)用包括向所 述存儲設(shè)備以及從所述存儲設(shè)備傳送數(shù)據(jù)的后備程序。
16. 如權(quán)利要求ll的設(shè)備驅(qū)動器,其中所述加密相關(guān)信息包括由所述存儲設(shè)備發(fā)出的狀態(tài)指示,其表示在通 過所述存儲設(shè)備執(zhí)行所述命令之前需要執(zhí)行加密操作。
17. —種在能夠加密的存儲設(shè)備和主機之間便于加密的方法,包括 向所述存儲設(shè)備發(fā)出命令;響應(yīng)于所述命令攔截由所述存儲設(shè)備生成的加密相關(guān)信息;確定 所述加密相關(guān)信息是否表示在通過所述能夠加密的存儲設(shè)備執(zhí)行所述命令之前需要執(zhí)行加密操作;以及當(dāng)所i^口密相關(guān)信息表示需要加密操作時,執(zhí)行加密操作,而不依賴于所述主4幾是否能夠加密。
18. 如權(quán)利要求17的方法,還包括以下步驟 在所述加密操作執(zhí)行完成之后執(zhí)行所述命令。
19. 如才又利要求17的方法,其中 通過能夠加密的i殳備驅(qū)動器執(zhí)行所述攔截步驟;以及 所述設(shè)備驅(qū)動器與密鑰管理器通信,所述密鑰管理器經(jīng)由所述設(shè)備驅(qū)動器向所述能夠加密的存^i殳備提供密鑰。
20. 如4又利要求19的方法,還包括經(jīng)由代理建立在所述能夠加密的存儲設(shè)備和所述密鑰管理器之間的通 信路徑,以便于向所述存儲設(shè)備提供密鑰。
21. 如權(quán)利要求19的方法,其中通過在所述主機上執(zhí)行的應(yīng)用發(fā)出所述命令,以及所述應(yīng)用包括向所 述能夠加密的存儲設(shè)備以及從所述能夠加密的存儲設(shè)備傳送數(shù)據(jù)的后備程序。
22. 如權(quán)利要求17的方法,其中所述加密相關(guān)信息包括由所述能 夠加密的存儲設(shè)備發(fā)出的狀態(tài)指示。
23. —種計算機程序,包括在計算機上運行所述程序時適用于執(zhí)行 權(quán)利要求17至22中任一個的所有步驟的程序代碼裝置。
全文摘要
提供一種帶系統(tǒng),其具有能夠加密的帶驅(qū)動以及用于能夠加密的帶驅(qū)動的能夠加密的帶驅(qū)動的設(shè)備驅(qū)動器。所述能夠加密的帶驅(qū)動的設(shè)備驅(qū)動器用作將能夠加密的帶驅(qū)動與向帶驅(qū)動提供密鑰密鑰管理器連接的代理。當(dāng)能夠加密的設(shè)備驅(qū)動器向驅(qū)動器發(fā)送命令時,帶驅(qū)動被配置為通過專用于密鑰管理器(例如外部密鑰管理器(EKM))的消息響應(yīng)。能夠加密的設(shè)備驅(qū)動器識別出這是專用于EKM 116的消息,并(例如經(jīng)由互聯(lián)網(wǎng)協(xié)議(IP)連接)將該消息轉(zhuǎn)發(fā)至EKM。然后,EKM通過發(fā)出新密鑰(用于從帶起始(BOT)寫入的新盒)或現(xiàn)有密鑰(用于需要讀取的盒)來響應(yīng)該密鑰請求。設(shè)備驅(qū)動器連接能夠加密的帶驅(qū)動的所有EKM響應(yīng)和能夠加密的帶驅(qū)動可以從中獲得其密鑰的EKM。
文檔編號G06F3/00GK101506816SQ200780031105
公開日2009年8月12日 申請日期2007年8月23日 優(yōu)先權(quán)日2006年9月7日
發(fā)明者G·A·伽奎特, P·M·格雷科 申請人:國際商業(yè)機器公司