專利名稱:用于通用內(nèi)容控制的控制結(jié)構(gòu)和使用結(jié)構(gòu)的方法
技術(shù)領(lǐng)域:
本發(fā)明大體上涉及存儲器系統(tǒng),更明確地說,涉及一種具有通用內(nèi)容控制特征的存儲器系統(tǒng)。
背景技術(shù):
計(jì)算裝置市場正朝向在移動存儲裝置上包括內(nèi)容存儲以便通過產(chǎn)生較多數(shù)據(jù)交換來增加平均收入的方向發(fā)展。這意味著在將移動存儲媒體中的內(nèi)容用于計(jì)算裝置上時需要保護(hù)所述內(nèi)容。內(nèi)容包括有價值的數(shù)據(jù),此可為除了制造或出售所述存儲裝置的人之外的群體所擁有的數(shù)據(jù)。
在第6,457,126號美國專利中描述一種具有加密能力的存儲裝置。然而,此裝置所提供的能力非常有限。因此,需要提供一種具有較多通用內(nèi)容控制特征的存儲器系統(tǒng)。
發(fā)明內(nèi)容
移動存儲媒體中的內(nèi)容保護(hù)可涉及加密媒體中的數(shù)據(jù),以使得僅授權(quán)用戶或應(yīng)用程序可存取用于加密存儲在媒體中的數(shù)據(jù)的密鑰。在一些現(xiàn)有系統(tǒng)中,用于加密和解密數(shù)據(jù)的密鑰存儲在移動存儲媒體外部的裝置中。在此類情況下,擁有內(nèi)容所有權(quán)權(quán)益的公司或個人可能對媒體中內(nèi)容的使用沒有很多控制。由于用于加密媒體中數(shù)據(jù)的密鑰存在于媒體外部,因而可用不受內(nèi)容所有者控制的方式將此密鑰從一個裝置傳遞到另一個裝置。根據(jù)本發(fā)明的一個特征,如果加密-解密密鑰存儲在媒體自身中且實(shí)質(zhì)上不可由外部裝置存取,那么所有者權(quán)益的擁有者將占據(jù)控制存取媒體中內(nèi)容的較佳位置。
通過使得基本上不可從媒體外部存取密鑰,此特征對安全內(nèi)容提供可攜性。因此,含有以此類密鑰來加密的安全內(nèi)容的存儲裝置可用于由各種主機(jī)裝置來存取,而沒有破壞安全性的危險,因?yàn)樗鲅b置具有對存取密鑰的專有控制。只有那些具有適當(dāng)證書的主機(jī)裝置才能夠存取所述密鑰。
為了增強(qiáng)存儲在移動存儲媒體中的內(nèi)容的商業(yè)價值,需要內(nèi)容所有權(quán)權(quán)益的擁有者能夠?qū)⒉煌S可授權(quán)給不同實(shí)體以用于存取內(nèi)容。因此,本發(fā)明的另一特征基于以下認(rèn)識可存儲用于授權(quán)不同許可(例如,給不同經(jīng)授權(quán)實(shí)體)以存取存儲在媒體中的數(shù)據(jù)的存取策略。并入有所述兩個上述特征的組合的系統(tǒng)尤其有利。一方面,內(nèi)容擁有者或所有者具有通過使用實(shí)質(zhì)上外部裝置不可存取的密鑰來控制存取內(nèi)容的能力,且同時具有授權(quán)用于存取媒體中內(nèi)容的不同許可的能力。因此,即使在外部裝置獲得存取的情況下,其存取仍可受記錄在存儲媒體中的由內(nèi)容擁有者或所有者設(shè)定的不同許可支配。
又一特征基于以下認(rèn)識當(dāng)在快閃存取器中實(shí)施上述策略(其中將不同許可授權(quán)給不同經(jīng)授權(quán)實(shí)體)時,這導(dǎo)致對內(nèi)容保護(hù)尤其有用的的媒體。
許多存儲裝置不知道文件系統(tǒng),而許多計(jì)算機(jī)主機(jī)裝置以文件形式讀取和寫入數(shù)據(jù)。根據(jù)另一特征,主機(jī)裝置提供密鑰參考或ID,而存儲器系統(tǒng)作為響應(yīng)產(chǎn)生與所述密鑰ID相關(guān)聯(lián)的密鑰值,其中所述密鑰值用于密碼處理與所述密鑰ID相關(guān)聯(lián)的文件中的數(shù)據(jù)。主機(jī)將所述密鑰ID與待由存儲器系統(tǒng)密碼處理的文件進(jìn)行關(guān)聯(lián)。因此,密鑰ID由計(jì)算裝置和存儲器用作句柄,存儲器通過所述句柄保持對用于密碼處理的密鑰值的產(chǎn)生和使用的完全且專有控制,而主機(jī)保持對文件的控制。
在例如智能卡的一些移動存儲裝置中,卡控制器管理文件系統(tǒng)。在例如快閃存儲器、磁碟或光碟的許多其它類型的移動存儲裝置中,裝置控制器不知道文件系統(tǒng);而是,裝置控制器依賴主機(jī)裝置(例如,個人計(jì)算機(jī)、數(shù)碼相機(jī)、MP3播放器、個人數(shù)字助理、蜂窩式電話)來管理文件系統(tǒng)。本發(fā)明的各種方面可容易地并入到此些類型的存儲裝置中,其中所述裝置不知道文件系統(tǒng)。這意味著可在各種各樣的現(xiàn)有移動存儲裝置上實(shí)踐本發(fā)明的各種特征而無需重新設(shè)計(jì)此類裝置來使得此類裝置中的裝置控制器變得知道且能夠管理文件系統(tǒng)。
存儲媒體中所存儲的樹結(jié)構(gòu)提供對于實(shí)體在恰好獲得存取之后可進(jìn)行什么的控制。樹的每個節(jié)點(diǎn)指定對于已通過樹的此節(jié)點(diǎn)獲得入口的實(shí)體的許可。一些樹具有不同等級,其中在樹的一節(jié)點(diǎn)處的一個或多個許可與在同一樹中較高或較低或相同等級的另一節(jié)點(diǎn)處的一個或多個許可具有預(yù)定關(guān)系。通過要求實(shí)體遵守在每個節(jié)點(diǎn)處如此指定的許可,此應(yīng)用程序的樹特征允許內(nèi)容擁有者控制哪些實(shí)體可采取行動和每個實(shí)體可采取哪些行動,這與樹是否具有不同等級無關(guān)。
為了增強(qiáng)可由移動存儲媒體提供的商業(yè)價值,需要移動存儲裝置能夠同時支持一個以上應(yīng)用程序。當(dāng)兩個或兩個以上應(yīng)用程序正同時存取移動存儲裝置時,可能重要的是能夠分離所述兩個或兩個以上應(yīng)用程序的操作,以使得其不會以本文稱為串話的現(xiàn)象而彼此干擾。因此,本發(fā)明的另一特征基于以下認(rèn)識可提供優(yōu)選地為分級的兩個或兩個以上樹以用于控制存取存儲器。每個樹在不同等級包含節(jié)點(diǎn)以用于控制相應(yīng)組實(shí)體對數(shù)據(jù)的存取,其中每個樹的節(jié)點(diǎn)指定所述一個或多個相應(yīng)實(shí)體用于存取存儲器數(shù)據(jù)的一個或多個許可。在每個樹的節(jié)點(diǎn)處的所述一個或多個許可與在同一樹中較高或較低等級的另一節(jié)點(diǎn)處的一個或多個許可具有預(yù)定關(guān)系。優(yōu)選地,在所述樹的至少兩者之間不存在串話。
根據(jù)上文,將顯然看到樹是可用于內(nèi)容安全性的強(qiáng)有力結(jié)構(gòu)。所提供的一個重要控制是控制樹的創(chuàng)建。因此,根據(jù)本發(fā)明的另一特征,移動存儲裝置可具備能夠創(chuàng)建至少一個分級樹(其在不同等級處包含節(jié)點(diǎn)以用于由相應(yīng)實(shí)體控制存取存儲在存儲器中的數(shù)據(jù))的系統(tǒng)代理。樹的每個節(jié)點(diǎn)指定一個或多個相應(yīng)實(shí)體用于存取存儲器數(shù)據(jù)的一個或多個許可。在每個樹的節(jié)點(diǎn)處的所述一個或多個許可與在同一樹中較高或較低或相同等級的節(jié)點(diǎn)處的一個或多個許可具有預(yù)定關(guān)系。因此,可在尚未創(chuàng)建任何樹的情況下發(fā)行移動存儲裝置,以使得裝置的購買者可以自由地創(chuàng)建分級樹,所述分級樹適用于購買者所考慮的應(yīng)用程序?;蛘撸稍谝褎?chuàng)建樹的情況下發(fā)行移動存儲裝置,以使得購買者不必經(jīng)歷創(chuàng)建樹的麻煩。在這兩種情況下,優(yōu)選地,樹的特定功能性在裝置制成之后變得固定,以使得不能進(jìn)一步改變或修改所述功能性。這提供內(nèi)容擁有者對裝置中內(nèi)容存取的較強(qiáng)控制。因此,在一個實(shí)施例中,可優(yōu)選地禁用系統(tǒng)代理,以使得不會創(chuàng)建額外的樹。
在一些移動存儲裝置中,通過將存儲器劃分為多個獨(dú)立區(qū)域來提供內(nèi)容保護(hù),其中存取受保護(hù)區(qū)域要求在先認(rèn)證。盡管此特征提供某種保護(hù),但其不能保護(hù)以免通過非法途徑獲得口令的用戶存取。因此,本發(fā)明的另一方面基于以下認(rèn)識可提供一種機(jī)制或結(jié)構(gòu)來將存儲器劃分為多個分區(qū),且使得所述分區(qū)中的至少某些數(shù)據(jù)可用密鑰來加密,以使得除了存取某些所述分區(qū)所需要的認(rèn)證之外,可能需要存取一個或一個以上密鑰來解密此類分區(qū)中經(jīng)加密的數(shù)據(jù)。
在一些應(yīng)用中,可更方便地使得用戶能夠使用一個應(yīng)用程序登錄存儲器系統(tǒng),且接著能夠使用不同應(yīng)用程序來存取受保護(hù)內(nèi)容而無需再次登錄。在此類情況下,用戶想要以此方式存取的所有內(nèi)容可與第一帳戶相關(guān)聯(lián),以使得可經(jīng)由不同應(yīng)用程序(例如,音樂播放器、電子郵件、蜂窩式通信)來存取所有此類內(nèi)容而無需多次登錄。接著可將不同組認(rèn)證信息用于登錄以存取在與第一帳戶不同的帳戶中的受保護(hù)內(nèi)容,即使所述不同帳戶是針對相同用戶或?qū)嶓w的。
在存儲系統(tǒng)中可單獨(dú)使用上述特征或可以任何組合來組合上述特征,以提供內(nèi)容擁有者的控制和/或保護(hù)的較強(qiáng)通用性。
圖1是可用于說明本發(fā)明的與主機(jī)裝置通信的存儲器系統(tǒng)的方框圖。
圖2是存儲器的不同分區(qū)和存儲在不同分區(qū)中的未加密和加密文件的示意圖,其中存取特定分區(qū)和加密文件由存取策略和認(rèn)證程序控制,所述示意圖用以說明本發(fā)明的實(shí)施例。
圖3是說明存儲器中不同分區(qū)的存儲器的示意圖。
圖4是用于圖3所示的存儲器的不同分區(qū)的文件位置表的示意圖,其中所述分區(qū)中的某些文件經(jīng)加密以說明本發(fā)明的實(shí)施例。
圖5是存取受控記錄群組中的存取控制記錄和相關(guān)聯(lián)密鑰參考的示意圖,其用以說明本發(fā)明的實(shí)施例。
圖6是由存取受控記錄群組和存取受控記錄形成的樹結(jié)構(gòu)的示意圖,其用于說明本發(fā)明的實(shí)施例。
圖7是說明存取受控記錄群組的三個分級樹的樹的示意圖,其用以說明所述樹的形成過程。
圖8A和8B是說明由主機(jī)裝置和存儲器裝置(例如,用于創(chuàng)建和使用系統(tǒng)存取控制記錄的存儲卡)執(zhí)行的過程的流程圖。
圖9是說明使用系統(tǒng)存取控制記錄來創(chuàng)建存取受控記錄群組的過程的流程圖,其用以說明本發(fā)明。
圖10是說明用于創(chuàng)建存取控制記錄的過程的流程圖。
圖11是可用于說明分級樹的特定應(yīng)用程序的兩個存取控制記錄群組的示意圖。
圖12是說明用于授權(quán)特定權(quán)利的過程的流程圖。
圖13是存取受控記錄群組和存取控制記錄的示意圖,其用以說明圖12的授權(quán)過程。
圖14是說明用于創(chuàng)建用于加密和/或解密目的的密鑰的過程的流程圖。
圖15是說明用于根據(jù)存取受控記錄來取消存取權(quán)利和/或針對數(shù)據(jù)存取的許可的過程的流程圖。
圖16是說明當(dāng)存取權(quán)利和/或存取許可已被刪除或已期滿時請求存取的過程的流程圖。
圖17A和圖17B是說明用于認(rèn)證的規(guī)則結(jié)構(gòu)和用于授權(quán)存取密碼密鑰的策略的組織的示意圖,其用以說明本發(fā)明的另一實(shí)施例。
圖18是說明當(dāng)打開一些對話時認(rèn)證和存取對話的流程圖。
圖19-22是說明不同認(rèn)證過程的流程圖。
為了簡化說明,在此申請案中,用相同數(shù)字標(biāo)注相同元件。
具體實(shí)施例方式 圖1的方框圖說明其中可實(shí)施本發(fā)明各種方面的實(shí)例性存儲器系統(tǒng)。如圖1所示,存儲器系統(tǒng)10包括中央處理單元(CPU)12、緩沖器管理單元(BMU)14、主機(jī)接口模塊(HIM)16和快閃接口模塊(FIM)18、快閃存儲器20和外圍存取模塊(PAM)22。存儲器系統(tǒng)10通過主機(jī)接口總線26和端口26a與主機(jī)裝置24通信??梢允荖AND類型的快閃存儲器20為主機(jī)裝置24提供數(shù)據(jù)存儲。也可將CPU 12的軟件代碼存儲在快閃存儲器20中。FIM 18通過快閃接口總線28和端口28a連接到快閃存儲器20。HIM 16適于連接到例如數(shù)碼相機(jī)、個人計(jì)算機(jī)、個人數(shù)字助理(PDA)、數(shù)字媒體播放器、MP-3播放器、蜂窩式電話或其它數(shù)字裝置的主機(jī)系統(tǒng)。外圍存取模塊22選擇例如FIM、HIM和BMU的適當(dāng)控制器模塊以用于與CPU 12通信。在一個實(shí)施例中,可將虛線框內(nèi)的系統(tǒng)10的所有元件裝入例如存儲卡或棒10’的單個單元中且優(yōu)選地將其密封。
盡管本文參考快閃存儲器來說明本發(fā)明,但本發(fā)明也可適用于其它類型的存儲器,例如磁碟、光學(xué)CD以及其它類型的可重寫非易失性存儲器系統(tǒng)。
緩沖器管理單元14包括主機(jī)直接存儲器存取(HDMA)32、快閃直接存儲器存取(FDMA)34、仲裁器36、緩沖器隨機(jī)存取存儲器(BRAM)38和密碼引擎40。仲裁器36是共享總線仲裁器,以使得僅一個主導(dǎo)裝置或啟動器(其可以是HDMA 32、FDMA 34或CPU 12)可在任何時間起作用,且從屬裝置或目標(biāo)裝置是BRAM 38。仲裁器負(fù)責(zé)將適當(dāng)啟動器請求引導(dǎo)到BRAM 38。HDMA 32和FDMA 34負(fù)責(zé)在HIM 16、FIM 18與BRAM 38或CPU隨機(jī)存取存儲器(CPU RAM)12a之間傳送的數(shù)據(jù)。HDMA 32和FDMA34的操作是常規(guī)的,且不需要在本文詳細(xì)描述。BRAM 38用于存儲在主機(jī)裝置24與快閃存儲器20之間傳遞的數(shù)據(jù)。HDMA 32和FDMA 34負(fù)責(zé)在HIM 16/FIM 18與BRAM 38或CPU RAM 12a之間傳送數(shù)據(jù)且指示扇區(qū)完成。
針對存儲在存儲器20中的內(nèi)容的改進(jìn)安全性,存儲器系統(tǒng)10產(chǎn)生用于加密和/或解密的密鑰值,其中此值實(shí)質(zhì)上不可由例如主機(jī)裝置24的外部裝置存取。然而,通常逐個文件地進(jìn)行加密和解密,因?yàn)橹鳈C(jī)裝置以文件的形式讀取數(shù)據(jù)和將數(shù)據(jù)寫入存儲器系統(tǒng)10。如同許多其它類型的存儲裝置,存儲器裝置10不知道文件或文件系統(tǒng)。盡管存儲器20存儲其中識別文件的邏輯地址的文件分配表(FAT),但所述FAT通常由主機(jī)裝置24而并非由控制器12存取和管理。因此,為了加密特定文件中的數(shù)據(jù),控制器12將必須依賴主機(jī)裝置來發(fā)送存儲器20中的文件中的數(shù)據(jù)的邏輯地址,以使得可由系統(tǒng)10找到特定文件的數(shù)據(jù)并使用僅系統(tǒng)10可獲得的密鑰值對其進(jìn)行加密和/或解密。
為了為主機(jī)裝置24和存儲器系統(tǒng)10兩者提供句柄以參考用于密碼地處理文件中的數(shù)據(jù)的相同密鑰,主機(jī)裝置提供針對由系統(tǒng)10產(chǎn)生的每個密鑰值的參考,其中此參考可簡單地是密鑰ID。因此,主機(jī)24將由系統(tǒng)10密碼地處理的每個文件與密鑰ID進(jìn)行關(guān)聯(lián),且系統(tǒng)10將用于密碼地處理數(shù)據(jù)的每個密鑰值與由主機(jī)提供的密鑰ID進(jìn)行關(guān)聯(lián)。因此,當(dāng)主機(jī)請求密碼地處理文件時,其將把具有密鑰ID的請求連同待從存儲器20取出或存儲在存儲器20中的數(shù)據(jù)的邏輯地址發(fā)送到系統(tǒng)10。系統(tǒng)10產(chǎn)生密鑰值,并將由主機(jī)24提供的密鑰ID與此值進(jìn)行關(guān)聯(lián),且執(zhí)行密碼處理。以此方式,不需要對存儲器系統(tǒng)10操作且同時允許其使用密鑰完全控制加密處理(包括對密鑰值的專有存取)的方式作出改變。換句話說,系統(tǒng)10繼續(xù)允許主機(jī)24通過具有對FAT的專有控制來管理文件,而其維持對產(chǎn)生和管理用于密碼處理的密鑰值的專有控制。主機(jī)裝置24不參與產(chǎn)生和管理用于數(shù)據(jù)的密碼處理的密鑰值。
由主機(jī)24提供的密鑰ID和由存儲器系統(tǒng)產(chǎn)生的密鑰值形成兩個數(shù)量屬性,下文在一個實(shí)施例中稱為“內(nèi)容加密密鑰”或CEK。盡管主機(jī)24可將每個密鑰ID與一個或一個以上文件進(jìn)行關(guān)聯(lián),但主機(jī)24也可將每個密鑰ID與未組織數(shù)據(jù)或以任何方式組織的數(shù)據(jù)(且不限于組織成完整文件的數(shù)據(jù))進(jìn)行關(guān)聯(lián)。
為了使用戶或應(yīng)用程序能夠存取系統(tǒng)10中的受保護(hù)內(nèi)容或區(qū)域,將需要使用預(yù)先向系統(tǒng)10注冊的證書來認(rèn)證。證書與以此證書授予特定用戶或應(yīng)用程序的存取權(quán)利綁定。在預(yù)先注冊過程中,系統(tǒng)10存儲身份記錄和用戶或應(yīng)用程序的證書以及與由用戶或應(yīng)用程序確定且通過主機(jī)24提供的此識別和證書相關(guān)聯(lián)的存取權(quán)利。在完成預(yù)先注冊過程之后,當(dāng)用戶或應(yīng)用程序請求將數(shù)據(jù)寫入存儲器20時,將需要通過主機(jī)裝置提供其身份和證書、用于加密數(shù)據(jù)的密鑰ID和將存儲已加密數(shù)據(jù)的邏輯地址。系統(tǒng)10產(chǎn)生密鑰值,且將此值與由主機(jī)裝置提供的密鑰ID進(jìn)行關(guān)聯(lián),且將用于加密待寫入數(shù)據(jù)的密鑰值的密鑰ID存儲在其針對此用戶或應(yīng)用程序的記錄或表中。其隨后加密數(shù)據(jù)且將已加密數(shù)據(jù)存儲在由主機(jī)指定的地址處,以及存儲其產(chǎn)生的密鑰值。
當(dāng)用戶或應(yīng)用程序請求從存儲器20讀取已加密數(shù)據(jù)時,其將需要提供其身份和證書、先前用于加密所請求數(shù)據(jù)的密鑰的密鑰ID和存儲已加密數(shù)據(jù)的邏輯地址。系統(tǒng)10接著將由主機(jī)提供的用戶或應(yīng)用程序身份和證書與存儲在其記錄中的那些進(jìn)行匹配。如果它們匹配,那么系統(tǒng)10接著將從其存儲器取出與由用戶或應(yīng)用程序提供的密鑰ID相關(guān)聯(lián)的密鑰值,使用密鑰值來解密存儲在由主機(jī)裝置指定的地址處的數(shù)據(jù),且將已解密數(shù)據(jù)發(fā)送到用戶或應(yīng)用程序。
通過將認(rèn)證證書與用于密碼處理的密鑰管理分離,接著能夠在不共享證書的情況下共享存取數(shù)據(jù)的權(quán)利。因此,具有不同證書的一群組用戶或應(yīng)用程序可存取用于存取相同數(shù)據(jù)的相同密鑰,而此群組之外的用戶不能存取。雖然一群組內(nèi)的所有用戶或應(yīng)用程序可存取相同數(shù)據(jù),但是其仍可具有不同權(quán)利。因此,一些可具有只讀存取,而其它可具有只寫存取,而另一些可具有兩者。因?yàn)橄到y(tǒng)10維持用戶或應(yīng)用程序身份和證書、其可存取的密鑰ID和針對每個密鑰ID的相關(guān)聯(lián)存取權(quán)利的記錄,因而系統(tǒng)10能夠增加或刪除密鑰ID且改變針對特定用戶或應(yīng)用程序的與這些密鑰ID相關(guān)聯(lián)的存取權(quán)利、使存取權(quán)利在用戶或應(yīng)用程序之間彼此授權(quán)、或甚至刪除或增加針對用戶或應(yīng)用程序的記錄或表,這所有動作均由適當(dāng)認(rèn)證的主機(jī)裝置來控制。所存儲的記錄可指定需要安全通道來存取特定密鑰??墒褂脤ΨQ或不對稱算法以及口令來進(jìn)行認(rèn)證。
尤其重要的是存儲器系統(tǒng)10中的安全內(nèi)容的可攜性。由于密鑰值是由存儲器系統(tǒng)產(chǎn)生的且實(shí)質(zhì)上外部系統(tǒng)不可獲得,因而當(dāng)將存儲器系統(tǒng)或并入有所述系統(tǒng)的存儲裝置從一個外部系統(tǒng)轉(zhuǎn)移到另一者時,存儲在其中的內(nèi)容的安全得以維護(hù),且外部系統(tǒng)不能存取此內(nèi)容,除非其已經(jīng)被以完全由存儲器系統(tǒng)控制的方式認(rèn)證。即使在如此認(rèn)證之后,存取也完全由存儲器系統(tǒng)控制,且外部系統(tǒng)僅可以根據(jù)存儲器系統(tǒng)中的預(yù)設(shè)記錄控制的方式來存取。如果請求不遵守這些記錄,那么將拒絕請求。
為了在保護(hù)內(nèi)容時提供較大靈活性,構(gòu)思僅可由經(jīng)適當(dāng)認(rèn)證的用戶或應(yīng)用程序存取存儲器的以下稱為分區(qū)的某些區(qū)域。當(dāng)與以基于密鑰的數(shù)據(jù)加密的上述特征組合時,系統(tǒng)10提供較大數(shù)據(jù)保護(hù)能力。如圖2展示,快閃存儲器20可將其存儲能力劃分為若干分區(qū)用戶區(qū)域或分區(qū)和定制分區(qū)。用戶區(qū)域或分區(qū)P0可在無需認(rèn)證的情況下由所有用戶和應(yīng)用程序存取。盡管可由任何應(yīng)用程序或用戶讀取或?qū)懭氪鎯υ谟脩魠^(qū)域中的數(shù)據(jù)的所有位值,但如果數(shù)據(jù)讀取被加密,那么沒有解密權(quán)限的用戶或應(yīng)用程序?qū)⒉荒艽嫒∮纱鎯υ谟脩魠^(qū)域中的位值所表示的信息。這通過(例如)存儲在用戶區(qū)域P0中的文件102和104說明。同樣存儲在用戶區(qū)域中的還有未加密文件(例如106),其可由所有應(yīng)用程序和用戶讀取和理解。因此,以符號表示的方式,用與例如文件102和104的文件相關(guān)聯(lián)的閉鎖來展示已加密的文件。
盡管未經(jīng)授權(quán)的應(yīng)用程序或用戶不能理解用戶區(qū)域P0中的加密文件,但是這些應(yīng)用程序或用戶仍可能夠刪除或破壞文件,這可對于一些應(yīng)用程序來說是不良的。為此目的,存儲器20也可包括例如分區(qū)P1和P2的受保護(hù)定制分區(qū),所述分區(qū)不能在無先前認(rèn)證的情況下進(jìn)行存取。下文解釋此申請案的實(shí)施例中所允許的認(rèn)證過程。
同樣如圖2說明,多種用戶或應(yīng)用程序可存取存儲器20中的文件。因此,圖2中展示用戶1和2以及應(yīng)用程序1到4(在裝置上運(yùn)行)。在允許這些實(shí)體存取存儲器20中的受保護(hù)內(nèi)容之前,這些實(shí)體首先由認(rèn)證過程用下文解釋的方式來認(rèn)證。在此過程中,需要在主機(jī)側(cè)識別請求存取的實(shí)體以進(jìn)行基于任務(wù)的存取控制。因此,請求存取的實(shí)體首先通過提供例如“我是應(yīng)用程序2且我想要讀取文件1”的信息來自我識別。控制器12接著將身份、認(rèn)證信息和請求與存儲在存儲器20或控制器12中的記錄進(jìn)行匹配。如果滿足所有要求,那么接著對此實(shí)體授權(quán)存取。如圖2說明,允許用戶1從分區(qū)P1中的文件101讀取或?qū)懭氲轿募?01,但是除了用戶1具有無限制權(quán)利來從P0中的文件106讀取和寫入到文件106之外,僅可讀取文件102和104。另一方面,不允許用戶2存取文件101和104,但用戶2能夠讀取和寫入文件102。如圖2指示,用戶1和2具有相同登錄算法(AES),而應(yīng)用程序1和3具有不同登錄算法(例如,RSA和001001),這些算法也不同于用戶1和2的那些算法。
安全存儲應(yīng)用程序(SSA)是存儲器系統(tǒng)10的安全性應(yīng)用程序,且說明本發(fā)明的可用于實(shí)施許多上述特征的實(shí)施例??捎么鎯ζ?0或CPU 12中的非易失性存儲器(未圖示)中所存儲的數(shù)據(jù)庫來將SSA實(shí)施為軟件或計(jì)算機(jī)代碼,且將其讀取到RAM 12a中并由CPU 12執(zhí)行。在下表中闡述關(guān)于SSA而使用的首字母縮寫 定義、首字母縮寫&縮略語 SSA系統(tǒng)描述 數(shù)據(jù)安全性、完整性和存取控制是SSA的主要任務(wù)。所述數(shù)據(jù)是原本將簡單地存儲在某類型的大容量存儲裝置上的文件。SSA系統(tǒng)位于存儲系統(tǒng)上且增加用于所存儲的主機(jī)文件的安全層。
SSA的主要任務(wù)是管理與存儲器中的所存儲(且安全)內(nèi)容相關(guān)聯(lián)的不同權(quán)利。存儲器應(yīng)用程序需要管理多個用戶和內(nèi)容權(quán)利以成倍增加所存儲的內(nèi)容。來自其側(cè)的主機(jī)應(yīng)用程序看見此類應(yīng)用程序可見的驅(qū)動器和分區(qū)以及管理并描繪存儲裝置上的所存儲文件的位置的文件分配表(FAT)。
在此情況下,存儲裝置使用劃分為多個分區(qū)的NAND快閃芯片,但也可使用其它移動存儲裝置且這些其它裝置屬于本發(fā)明范圍內(nèi)。這些分區(qū)是邏輯地址的連續(xù)線程,其中開始和結(jié)束地址界定其邊界。因此,如果需要的話,可對隱藏分區(qū)的存取加上限制,這借助于將此類限制與此類邊界內(nèi)的地址進(jìn)行關(guān)聯(lián)的軟件(例如,存儲在存儲器20中的軟件)來進(jìn)行。分區(qū)可完全由SSA通過其邏輯地址邊界(由SSA管理)來識別。SSA系統(tǒng)使用分區(qū)來在實(shí)體上保護(hù)數(shù)據(jù)免受未授權(quán)的主機(jī)應(yīng)用程序存取。對于主機(jī),分區(qū)是界定存儲數(shù)據(jù)文件的所有權(quán)空間的機(jī)制。這些分區(qū)可以是共享的,其中存取存儲裝置的任何人可以看見且知道裝置上分區(qū)的存在,或者這些分區(qū)可為私有的或隱藏的,其中僅選定的主機(jī)應(yīng)用程序可存取且知道存儲裝置中分區(qū)的存在。
圖3是說明存儲器的分區(qū)P0、P1、P2和P3(明顯地,可采用少于或多于四個分區(qū))的存儲器的示意圖,其中P0是可由任何實(shí)體在無需認(rèn)證的情況下存取的公用分區(qū)。
私有分區(qū)(例如P1、P2或P3)隱藏對其內(nèi)的文件的存取。通過防止主機(jī)存取所述分區(qū),快閃裝置(例如,快閃卡)提供對分區(qū)內(nèi)的數(shù)據(jù)文件的保護(hù)。然而,此種保護(hù)通過對存取存儲在所述分區(qū)內(nèi)的邏輯地址處的數(shù)據(jù)加以限制來吞沒駐存在隱藏分區(qū)中的所有文件。換句話說,所述限制與一個范圍的邏輯地址相關(guān)聯(lián)。能夠存取所述分區(qū)的所有用戶/主機(jī)將能無限制地存取其內(nèi)部的所有文件。為了將不同文件-或文件群組-彼此隔離,SSA系統(tǒng)使用密鑰和密鑰參考或密鑰ID對每個文件-或文件群組-提供另一等級的安全性和完整性。可將用于加密在不同存取器地址處的數(shù)據(jù)的特定密鑰值的密鑰參考或密鑰ID比喻為含有已加密數(shù)據(jù)的容器或領(lǐng)域。鑒于此原因,在圖4中,將密鑰參考或密鑰ID(例如,“密鑰1”和密鑰“2”)以圖形方式展示為使用與密鑰ID相關(guān)聯(lián)的密鑰值加密的文件周圍的區(qū)域。
參看圖4,舉例來說,文件A可由所有實(shí)體存取而無需任何認(rèn)證,因?yàn)槲募嗀經(jīng)展示為未由任何密鑰ID包圍。即使公用分區(qū)中的文件B可由所有實(shí)體讀取或重寫,文件B也含有用具有ID“密鑰1”的密鑰來加密的數(shù)據(jù),以使得文件B中所含有的信息不可由實(shí)體存取,除非此實(shí)體能存取此密鑰。以此方式,使用密鑰值和密鑰參考或密鑰ID僅提供邏輯保護(hù),這與由上述分區(qū)所提供的保護(hù)類型相反。因此,可存取分區(qū)(公用或私有)的任何主機(jī)能夠讀取或?qū)懭胝麄€分區(qū)中的數(shù)據(jù),包括經(jīng)加密的數(shù)據(jù)。然而,由于數(shù)據(jù)被加密,因而未經(jīng)授權(quán)的用戶僅可將其破壞。其優(yōu)選地不能在沒有檢測的情況下改變數(shù)據(jù)或使用數(shù)據(jù)。通過限制對加密和/或解密密鑰的存取,此特征可僅允許經(jīng)授權(quán)的實(shí)體使用數(shù)據(jù)。也可使用P0中具有密鑰ID“密鑰2”的密鑰來加密文件B和C。
可通過使用內(nèi)容加密密鑰(CEK)的對稱加密方法(每個CEK對應(yīng)一種方法)來提供數(shù)據(jù)機(jī)密性和完整性。在SSA實(shí)施例中,通過僅內(nèi)部使用的快閃裝置(例如,快閃卡)來產(chǎn)生CEK,且將CEK保持為不為外界所知的秘密。經(jīng)加密或密碼化的數(shù)據(jù)也可被散列或者密碼被鏈?zhǔn)浇M塊,以確保數(shù)據(jù)完整性。
并非分區(qū)中的所有數(shù)據(jù)均由不同密鑰來加密且與不同密鑰ID相關(guān)聯(lián)。公用或用戶文件中或操作系統(tǒng)區(qū)域(即,F(xiàn)AT)中的某些邏輯地址可以不與任何密鑰或密鑰參考相關(guān)聯(lián),且因此可由自身可存取所述分區(qū)的任何實(shí)體獲得。
要求獲得創(chuàng)建密鑰和分區(qū)以及將數(shù)據(jù)寫入分區(qū)或從分區(qū)讀取數(shù)據(jù)或使用密鑰的能力的實(shí)體需要通過存取控制記錄(ACR)登錄至SSA系統(tǒng)。SSA系統(tǒng)中的ACR的特權(quán)被稱為動作。每個ACR可具有用以執(zhí)行以下三個種類的動作的許可創(chuàng)建分區(qū)和密鑰/密鑰ID、存取分區(qū)和密鑰以及創(chuàng)建/更新其它ACR。
ACR被組織成稱為ACR群組或AGP的群組。一旦ACR已成功認(rèn)證,SSA系統(tǒng)便打開對話,通過所述對話可執(zhí)行任何ACR動作。
用戶分區(qū) SSA系統(tǒng)管理一個或一個以上公用分區(qū)(也稱為用戶分區(qū))。此分區(qū)存在于存儲裝置上,且是可通過存儲裝置的標(biāo)準(zhǔn)讀取寫入命令存取的分區(qū)。獲得關(guān)于分區(qū)大小以及其存在于裝置上的信息優(yōu)選地不能向主機(jī)系統(tǒng)隱藏。
SSA系統(tǒng)使得能夠通過標(biāo)準(zhǔn)讀取寫入命令或SSA命令來存取此(些)分區(qū)。因此,存取分區(qū)優(yōu)選地不能只限于特定ACR。然而,SSA系統(tǒng)可使得主機(jī)裝置能夠限制對用戶分區(qū)的存取??蓡为?dú)啟用/禁用讀取和寫入存取。允許所有四個組合(例如,只寫、只讀(寫入保護(hù))、讀取和寫入以及無存取)。
SSA系統(tǒng)使得ACR能夠?qū)⒚荑€ID與用戶分區(qū)內(nèi)的文件相關(guān)聯(lián)并使用與這些密鑰ID相關(guān)聯(lián)的密鑰來加密各個文件。將使用SSA命令組(關(guān)于SSA命令的詳細(xì)描述,請參考附錄A——在附錄中,密鑰ID稱為“領(lǐng)域”)來進(jìn)行存取用戶分區(qū)內(nèi)的加密文件以及設(shè)定對所述分區(qū)的存取權(quán)利。以上特征也適用于未經(jīng)組織成文件的數(shù)據(jù)。
SSA分區(qū) 這些是可僅通過SSA命令來存取的隱藏(向主機(jī)操作系統(tǒng)或OS隱藏)分區(qū)。除了通過由登錄到ACR而建立的對話(下文描述)外,SSA系統(tǒng)將優(yōu)選地不允許主機(jī)裝置存取SSA分區(qū)。類似地,SSA優(yōu)選地將不提供關(guān)于SSA分區(qū)的存在、大小和存取許可的信息,除非此請求從所建立的對話傳出。
從ACR許可中導(dǎo)出對分區(qū)的存取權(quán)利。一旦ACR登錄到SSA系統(tǒng)中,其便可與其它ACR(下文描述)共享分區(qū)。當(dāng)創(chuàng)建分區(qū)時,主機(jī)提供用于所述分區(qū)的參考名稱或ID(例如,圖3和4中的P0-P3)。此參考用于對所述分區(qū)的進(jìn)一步讀取和寫入命令。
存儲裝置的分區(qū) 優(yōu)選地,將裝置的所有可用存儲容量分配給用戶分區(qū)和當(dāng)前配置的SSA分區(qū)。因此,任何重新分區(qū)操作可涉及對現(xiàn)有分區(qū)的重新配置。裝置容量(所有分區(qū)的大小總和)的凈改變將為零。通過主機(jī)系統(tǒng)來界定裝置存儲空間中的分區(qū)的ID。
主機(jī)系統(tǒng)可將一個現(xiàn)有分區(qū)重新分區(qū)為兩個較小分區(qū),或?qū)蓚€現(xiàn)有分區(qū)(可以是相鄰或不相鄰的)合并為一個。由主機(jī)決定,可擦除經(jīng)劃分或合并分區(qū)中的數(shù)據(jù)或使其未受影響。
由于存儲裝置的重新分區(qū)可造成數(shù)據(jù)損失(或者因?yàn)槠湓诖鎯ρb置的邏輯地址空間中被擦除或四處移動),因而由SSA系統(tǒng)管理對于重新分區(qū)的嚴(yán)格限制。僅允許駐留在根AGP(下文解釋)的ACR發(fā)出重新分區(qū)命令且其僅可參考其擁有的分區(qū)。由于SSA系統(tǒng)不知道如何將數(shù)據(jù)組織成分區(qū)(FAT或其它文件系統(tǒng)結(jié)構(gòu)),因而主機(jī)負(fù)責(zé)在對裝置進(jìn)行重新分區(qū)的任何時候重建這些結(jié)構(gòu)。
用戶分區(qū)的重新分區(qū)將改變主機(jī)OS所看見的此分區(qū)的大小和其它屬性。
在重新分區(qū)之后,主機(jī)系統(tǒng)負(fù)責(zé)確保SSA系統(tǒng)中的任何ACR不參考非現(xiàn)有分區(qū)。如果這些ACR未被適當(dāng)刪除或更新,那么將由系統(tǒng)檢測和拒絕存取非現(xiàn)有分區(qū)的未來努力(以這些ACR的名義)。對于已刪除密鑰和密鑰ID,采用類似照管。
密鑰、密鑰ID和邏輯保護(hù) 當(dāng)將文件寫入到特定隱藏分區(qū)時,將其向公眾隱藏。但是,一旦實(shí)體(敵對或非敵對的)獲得對此分區(qū)的認(rèn)識和存取,文件便變得可用且易于看見。為了進(jìn)一步保護(hù)文件,SSA可在隱藏分區(qū)中對其加密,其中用于存取用于解密文件的密鑰的證書優(yōu)選地不同于用于存取所述分區(qū)的那些證書。由于文件不為SSA所知(由主機(jī)完全控制和管理)的事實(shí),將CEK與文件進(jìn)行關(guān)聯(lián)是一個問題。將文件鏈接到SSA知道的某事物-密鑰ID-對此進(jìn)行調(diào)整。因此,當(dāng)由SSA創(chuàng)建密鑰時,主機(jī)將用于此密鑰的密鑰ID與使用由SSA創(chuàng)建的密鑰來加密的數(shù)據(jù)進(jìn)行關(guān)聯(lián)。
密鑰值和密鑰ID提供邏輯安全性。使用相同內(nèi)容加密密鑰(CEK)(其參考名稱或密鑰ID在創(chuàng)建時由主機(jī)應(yīng)用程序唯一提供)來加密與給定密鑰ID相關(guān)聯(lián)的所有數(shù)據(jù),而不管其位置如何。如果實(shí)體獲得對隱藏分區(qū)的存取(經(jīng)由通過ACR認(rèn)證),且希望讀取或?qū)懭氪朔謪^(qū)內(nèi)的加密文件,那么其需要能夠存取與文件相關(guān)聯(lián)的密鑰ID。當(dāng)授權(quán)存取針對此密鑰ID的密鑰時,SSA加載與此密鑰ID相關(guān)聯(lián)的CEK中的密鑰值,且在將數(shù)據(jù)發(fā)送到主機(jī)之前將其解密或在將數(shù)據(jù)寫入到快閃存儲器20之前將其加密。與密鑰ID相關(guān)聯(lián)的CEK中的密鑰值由SSA系統(tǒng)隨機(jī)創(chuàng)建一次且接著由其維護(hù)。SSA系統(tǒng)外部沒有裝置知道或存取CEK中的此密鑰值。外界僅提供和使用參考或密鑰ID,而并非CEK中的密鑰值。密鑰值由SSA完全管理且僅可由SSA存取。
SSA系統(tǒng)使用以下加密模式中的任何一者來保護(hù)與密鑰ID相關(guān)聯(lián)的數(shù)據(jù)(所使用的實(shí)際密碼算法以及CEK中的密鑰值受系統(tǒng)控制且不向外界展現(xiàn)) 塊模式-將數(shù)據(jù)劃分為塊,分別對其每一者進(jìn)行加密。通常認(rèn)為此模式較不安全且易受字典攻擊。然而,其將允許用戶隨機(jī)存取數(shù)據(jù)塊中的任何一者。
鏈模式-將數(shù)據(jù)劃分為塊,其在加密過程中被鏈接。將每個塊用作下個塊的加密過程的一個輸入。盡管認(rèn)為此模式較安全,但此模式要求從開始到結(jié)束總是按序?qū)懭牒妥x取數(shù)據(jù),從而造成總是不為用戶接受的額外開銷。
散列-具有可用于驗(yàn)證數(shù)據(jù)完整性的數(shù)據(jù)摘要的額外創(chuàng)建的鏈模式 ACR和存取控制 SSA經(jīng)設(shè)計(jì)以處理多個應(yīng)用程序,其中將每個應(yīng)用程序表示為系統(tǒng)數(shù)據(jù)庫中的節(jié)點(diǎn)樹。通過確保樹分枝之間沒有串話來實(shí)現(xiàn)應(yīng)用程序之間的相互排斥。
為了獲得對SSA系統(tǒng)的存取,實(shí)體需要經(jīng)由系統(tǒng)ACR中的一者來建立連接。由SSA系統(tǒng)根據(jù)嵌入在用戶選擇與其連接的ACR中的定義來管理登錄程序。
ACR是到SSA系統(tǒng)的各個登錄點(diǎn)。ACR持有登錄證書和認(rèn)證方法。同樣駐存在記錄中的還有SSA系統(tǒng)內(nèi)的登錄許可,在所述許可當(dāng)中是讀取和寫入特權(quán)。這在圖5中說明,圖5說明相同AGP中的n個ACR。這意味著所述n個ACR中至少一些可共享對相同密鑰的存取。因此,ACR#1和ACR#n共享對具有密鑰ID“密鑰3”的密鑰的存取,其中ACR#1和ACR#n是ACR ID,且“密鑰3”是針對用于加密與“密鑰3”相關(guān)聯(lián)的數(shù)據(jù)的密鑰的密鑰ID。也可使用相同密鑰來加密和/或解密多個文件或多組數(shù)據(jù)。
SSA系統(tǒng)支持若干類型的到系統(tǒng)的登錄,其中認(rèn)證算法和用戶證書可發(fā)生變化,同樣一旦用戶成功登錄其在系統(tǒng)中的特權(quán)也可變化。圖5再次說明不同登錄算法和證書。ACR#1要求口令登錄算法和口令作為證書,而ACR#2要求PKI(公用密鑰基礎(chǔ)結(jié)構(gòu))登錄算法和公用密鑰作為證書。因此,為了登錄,實(shí)體將需要出示有效ACR ID以及正確的登錄算法和證書。
一旦實(shí)體登錄到SSA系統(tǒng)的ACR中,便在與ACR相關(guān)聯(lián)的許可控制記錄(PCR)中定義其許可(其使用SSA命令的權(quán)利)。在圖5中,根據(jù)所展示的PCR,ACR#1對與“密鑰3”相關(guān)聯(lián)的數(shù)據(jù)授予只讀許可,且ACR#2對與“密鑰5”相關(guān)聯(lián)的數(shù)據(jù)授予讀取和寫入許可。
不同ACR可共享系統(tǒng)中(例如,用來進(jìn)行讀取和寫入的密鑰中)的共同權(quán)益和特權(quán)。為了實(shí)現(xiàn)此目的,將具有共同處的ACR分組為AGP(ACP群組)。因此,ACR#1和ACR#n共享對具有密鑰ID“密鑰3”的密鑰的存取。
以分級樹來組織AGP和其內(nèi)的ACR,且因此除了創(chuàng)建保持敏感數(shù)據(jù)安全的安全密鑰之外;ACR可優(yōu)選地還創(chuàng)建對應(yīng)于其密鑰ID/分區(qū)的其它ACR實(shí)體。這些ACR子代將具有與其父代(創(chuàng)建者)相同或比其少的許可,且可被給予針對父代ACR自身創(chuàng)建的密鑰的許可。不用說,子代ACR獲得對其創(chuàng)建的任何密鑰的存取許可。這在圖6中說明。因此,AGP 120中的所有ACR由ACR 122創(chuàng)建,且兩個此類ACR從ACR 122處繼承對與“密鑰3”相關(guān)聯(lián)的數(shù)據(jù)的存取的許可。
AGP 通過指定AGP和AGP內(nèi)的ACR來登錄到SSA系統(tǒng)上。
每個AGP具有唯一ID(參考名稱),其用作其在SSA數(shù)據(jù)庫中的入口的索引。當(dāng)創(chuàng)建AGP時,向SSA系統(tǒng)提供AGP名稱。如果所提供的AGP名稱已經(jīng)存在于系統(tǒng)中,那么SSA將拒絕創(chuàng)建操作。
使用AGP來管理對于授權(quán)存取和管理許可的限制,如將在以下部分中描述。由圖6中的兩個樹提供的功能之一是管理由完全分離的實(shí)體(例如兩個不同應(yīng)用程序或兩個不同計(jì)算機(jī)用戶)的存取。出于此類目的,其對于實(shí)質(zhì)上彼此獨(dú)立(即,實(shí)質(zhì)上無串話)的兩個存取過程來說是重要的,即使兩個過程同時發(fā)生。這意味著每個樹中的認(rèn)證、許可以及額外ACR和AGP的創(chuàng)建未連接到其它樹的那些且不依賴于其它樹的那些。因此,當(dāng)在存儲器10中使用SSA系統(tǒng)時,這允許存儲器系統(tǒng)10同時服務(wù)多個應(yīng)用程序。其也允許所述兩個應(yīng)用程序彼此獨(dú)立地存取兩個分離組的數(shù)據(jù)(例如,一組照片和一組歌曲)。這在圖6中說明。因此,與用于經(jīng)由圖6的頂部部分的樹中的節(jié)點(diǎn)(ACR)進(jìn)行存取的應(yīng)用程序或用戶的“密鑰3”、“密鑰X”和“密鑰Z”相關(guān)聯(lián)的數(shù)據(jù)可包含照片。與用于經(jīng)由圖6的底部部分的樹中的節(jié)點(diǎn)(ACR)進(jìn)行存取的應(yīng)用程序或用戶的“密鑰5”和“密鑰Y”相關(guān)聯(lián)的數(shù)據(jù)可包含歌曲。僅當(dāng)AGP沒有ACR實(shí)體時,創(chuàng)建AGP的ACR才具有將其刪除的許可。
實(shí)體的SSA入口點(diǎn)存取控制記錄(ACR) SSA系統(tǒng)中的ACR描述許可實(shí)體登錄到系統(tǒng)中的方式。當(dāng)實(shí)體登錄到SSA系統(tǒng)中時,其需要指定對應(yīng)于將要執(zhí)行的認(rèn)證過程的ACR。ACR包括許可控制記錄(PCR),所述PCR說明用戶一旦經(jīng)認(rèn)證(如圖5所說明的ACR中定義)便可執(zhí)行的經(jīng)授權(quán)動作。主機(jī)側(cè)實(shí)體提供所有ACR數(shù)據(jù)字段。
當(dāng)實(shí)體已成功登錄到ACR上時,實(shí)體將能夠詢問所有ACR分區(qū)和密鑰存取許可和ACAM許可(下文解釋)。
ACR ID 當(dāng)SSA系統(tǒng)實(shí)體初始化登錄過程時,其需要指定對應(yīng)于登錄方法的ACR ID(如當(dāng)創(chuàng)建ACR時由主機(jī)所提供),以使得當(dāng)已滿足所有登錄要求時SSA將建立正確的算法且選擇正確的PCR。當(dāng)創(chuàng)建ACR時,向SSA系統(tǒng)提供ACR ID。
登錄/認(rèn)證算法 認(rèn)證算法指定實(shí)體將使用哪種登錄程序和需要哪種證書來提供用戶身份的證明。SSA系統(tǒng)支持若干種標(biāo)準(zhǔn)登錄算法,這基于對稱或不對稱密碼從無程序(和無證書)和基于口令的程序到雙向認(rèn)證協(xié)議。
證書 實(shí)體的證書對應(yīng)于登錄算法且由SSA使用來驗(yàn)證和認(rèn)證用戶。證書的實(shí)例可以是用于口令認(rèn)證的口令/PIN編號、用于AES認(rèn)證的AES密鑰等。證書的類型/格式(即,PIN、對稱密鑰等)經(jīng)預(yù)先定義且得自認(rèn)證模式;當(dāng)創(chuàng)建ACR時,將其提供給SSA系統(tǒng)。SSA系統(tǒng)不參與定義、分配和管理這些證書,除了基于PKI的認(rèn)證之外,其中可使用裝置(例如,快閃卡)來產(chǎn)生RSA密鑰對且可輸出公用密鑰以用于憑證產(chǎn)生。
許可控制記錄(PCR) PCR展示在實(shí)體登錄到SSA系統(tǒng)中并成功通過ACR認(rèn)證過程之后向?qū)嶓w授予什么。存在三個類型的許可種類用于分區(qū)和密鑰的創(chuàng)建許可、對分區(qū)和密鑰的存取許可和用于實(shí)體-ACR屬性的管理許可。
存取分區(qū) PCR的此部分含有實(shí)體在成功完成ACR階段之后可存取的分區(qū)(使用其提供給SSA系統(tǒng)的ID)的列表。對于每個分區(qū)來說,存取類型可限于只寫或只讀,或者可指定全部寫入/讀取存取權(quán)利。因此,圖5中的ACR#1能夠存取分區(qū)#2而并非分區(qū)#1。PCR中指定的限制適用于SSA分區(qū)和公用分區(qū)。
可由到主導(dǎo)SSA系統(tǒng)的裝置(例如,快閃卡)的常規(guī)讀取和寫入命令或由SSA命令存取公用分區(qū)。當(dāng)根ACR(下文解釋)經(jīng)創(chuàng)建為具有用以限制公用分區(qū)的許可時,他可將所述許可傳遞給他的子代。ACR可優(yōu)選地僅限制常規(guī)讀取和寫入命令存取公用分區(qū)。SSA系統(tǒng)中的ACR可僅在其創(chuàng)建方面受到限制。一旦ACR具有用以讀取/寫入公用分區(qū)的許可,則優(yōu)選地其不能被取走。
存取密鑰ID PCR的此部分含有與當(dāng)實(shí)體的登錄過程已符合ACR策略時實(shí)體可存取的密鑰ID列表(如由主機(jī)提供給SSA系統(tǒng))相關(guān)聯(lián)的數(shù)據(jù)。所指定的密鑰ID與駐存在出現(xiàn)于PCR中的分區(qū)中的一個或多個文件相關(guān)聯(lián)。由于密鑰ID不與裝置(例如,快閃卡)中的邏輯地址相關(guān)聯(lián),因而當(dāng)一個以上分區(qū)與特定ACR相關(guān)聯(lián)時,文件可在任何一個所述分區(qū)中。PCR中所指定的密鑰ID可每一者具有不同組的存取權(quán)利。存取由密鑰ID指向的數(shù)據(jù)可限于只寫或只讀,或者可指定全部寫入/讀取存取權(quán)利。
ACR屬性管理(ACAM) 這部分描述在某些情況下可如何改變ACR的系統(tǒng)屬性。
可在SSA系統(tǒng)中許可的ACAM動作為 創(chuàng)建/刪除/更新AGP和ACR。
創(chuàng)建/刪除分區(qū)和密鑰。
授予對密鑰和分區(qū)的存取權(quán)利 父代ACR優(yōu)選地不能編輯ACAM許可。這將優(yōu)選地要求刪除和重新創(chuàng)建ACR。同樣,優(yōu)選地不能取走由ACR創(chuàng)建的對密鑰ID的存取許可。
創(chuàng)建/刪除/更新AGP和ACR ACR可具有創(chuàng)建其它ACR和AGP的能力。創(chuàng)建ACR也可意味著授予其由其創(chuàng)建者所擁有的ACAM許可中的一些或所有。具有用以創(chuàng)建ACR的許可意味著具有用于以下動作的許可 1.定義和編輯子代的證書——優(yōu)選地,認(rèn)證方法一旦由創(chuàng)建ACR設(shè)定便不能被編輯??稍谝呀?jīng)針對子代定義的認(rèn)證算法的邊界內(nèi)改變證書。
2.刪除ACR。
3.將創(chuàng)建許可授予子代ACR(因此具有孫代)。
具有用以創(chuàng)建其它ACR的許可的ACR具有用以將解鎖許可授予其創(chuàng)建的ACR的許可(盡管其很可能不具有用以解鎖ACR的許可)。父代ACR將在子代ACR中放置對其解鎖者的參考。
父代ACR是具有用以刪除其子代ACR的許可的唯一ACR。當(dāng)ACR刪除其創(chuàng)建的較低等級ACR時,那么由此較低等級ACR產(chǎn)生的所有ACR同樣被自動刪除。當(dāng)ACR被刪除時,那么其創(chuàng)建的所有密鑰ID和分區(qū)被刪除。
存在ACR可由此更新其自身記錄的兩個例外 盡管口令/PIN由創(chuàng)建者ACR設(shè)定,但僅可由包括其的ACR來更新。
根ACR可將其自身和其所駐存的AGP刪除。
授予對密鑰和分區(qū)的存取權(quán)利 將ACR和其AGP組合成分級樹,其中根AGP和其內(nèi)的ACR位于樹的頂部(例如,圖6中的根AGP 130和132)。在SSA系統(tǒng)中可存在若干AGP樹,盡管其完全彼此分離。AGP內(nèi)的ACR可將對其密鑰的存取許可授予其所在的同一AGR中的所有ACR以及由其創(chuàng)建的所有ACR。用以創(chuàng)建密鑰的許可優(yōu)選地包括用以授予存取許可以使用密鑰的許可。
將對密鑰的許可劃分為三個種類 1.存取-此定義針對密鑰的存取許可,即讀取、寫入。
2.擁有權(quán)-創(chuàng)建密鑰的ACR從定義上來說是其擁有者??蓪⒋藫碛袡?quán)從一個ACR授予給另一個ACR(只要其在相同AGP中或在子代AGP中)。密鑰的擁有權(quán)提供用以將其刪除的許可以及向其授予許可。
3.存取權(quán)利授予-此許可使得ACR能夠授予其持有的權(quán)利。
ACR可將存取許可授予其創(chuàng)建的分區(qū)以及其對此具有存取許可的其它分區(qū)。
通過將分區(qū)名稱和密鑰ID添加到指定ACR的PCR來進(jìn)行許可授予。授予密鑰存取許可可通過密鑰ID或通過規(guī)定存取許可是針對授權(quán)ACR的所有所創(chuàng)建密鑰的來進(jìn)行。
ACR的封鎖和解鎖 ACR可具有封鎖計(jì)數(shù)器,其在系統(tǒng)對于實(shí)體的ACR認(rèn)證過程不成功時遞增。當(dāng)達(dá)到不成功認(rèn)證的特定最大數(shù)目(MAX)時,ACR將由SSA系統(tǒng)封鎖。
經(jīng)封鎖的ACR可由另一ACR解鎖,其由所述經(jīng)封鎖的ACR參考。對于解鎖ACR的參考由其創(chuàng)建者設(shè)定。解鎖ACR優(yōu)選地與經(jīng)封鎖ACR的創(chuàng)建者位于相同的AGP中且具有“解鎖”許可。
系統(tǒng)中沒有其它ACR可解鎖經(jīng)封鎖的ACR。ACR可經(jīng)配置具有封鎖計(jì)數(shù)器而沒有解鎖器ACR。在此情況下,如果此ACR受到封鎖,那么其不能被解鎖。
根AGP-創(chuàng)建應(yīng)用程序數(shù)據(jù)庫 SSA系統(tǒng)經(jīng)設(shè)計(jì)以處理多個應(yīng)用程序和隔離每個應(yīng)用程序的數(shù)據(jù)。AGP系統(tǒng)的樹結(jié)構(gòu)是用于識別和隔離專用數(shù)據(jù)的主要工具。根AGP位于應(yīng)用程序SSA數(shù)據(jù)庫樹的尖端且遵守稍有不同的行為規(guī)則??稍赟SA系統(tǒng)中配置若干個根AGP。在圖6中展示兩個根AGP 130和132。顯然,可使用較少或較多AGP,且這在本發(fā)明的范圍內(nèi)。
通過將新的AGP/ACR樹添加到裝置的過程來進(jìn)行向所述裝置(例如,快閃卡)注冊所述裝置的新應(yīng)用程序和/或新應(yīng)用程序的發(fā)布證書。
SSA系統(tǒng)支持三種不同模式的根AGP創(chuàng)建(以及根AGP的所有ACR和其許可) 1.開放未請求任何種類的認(rèn)證的任何用戶或?qū)嶓w或通過系統(tǒng)ACR(下文解釋)認(rèn)證的用戶或?qū)嶓w可創(chuàng)建新的根AGP。所述開放模式使得能夠在無需任何安全措施且同時在開放通道上(即,在發(fā)布機(jī)構(gòu)的安全環(huán)境中)進(jìn)行所有數(shù)據(jù)傳送的情況下創(chuàng)建根AGP,或者通過經(jīng)由系統(tǒng)ACR認(rèn)證(即,無線(OTA)和后發(fā)布程序)建立的安全通道來創(chuàng)建根AGP。
如果未配置系統(tǒng)ACR(這是可選特征)并將根AGP創(chuàng)建模式設(shè)定為開放,那么僅開放通道選擇可用。
2.受控只有通過系統(tǒng)ACR認(rèn)證的實(shí)體可創(chuàng)建新的根AGP。如果未配置系統(tǒng)ACR,那么不可將SSA系統(tǒng)設(shè)定為此模式。
3.鎖定禁用根AGP的創(chuàng)建且不可向系統(tǒng)添加額外的根AGP。
控制此特征的兩個SSA命令(這些命令可用于任何用戶/實(shí)體而無需認(rèn)證) 1.方法配置命令-用于將SSA系統(tǒng)配置為使用所述三個根AGP創(chuàng)建模式中的任何一者。僅允許以下模式改變打開->受控、受控->鎖定(即,如果當(dāng)前將SSA系統(tǒng)配置為受控,那么可僅將其改變?yōu)殒i定)。
2.方法配置鎖定命令-用于禁用方法配置命令和永久地鎖定當(dāng)前所選擇的方法。
當(dāng)創(chuàng)建根AGP時,其具有特殊初始化模式,所述模式實(shí)現(xiàn)其ACR的創(chuàng)建和配置(使用適用于根AGP的創(chuàng)建的相同存取限制)。在根AGP配置過程的末端,當(dāng)實(shí)體明確地將其切換到操作模式時,不再能夠更新現(xiàn)有ACR且不再能夠創(chuàng)建額外的ACR。
一旦將根AGP置于標(biāo)準(zhǔn)模式中,僅可通過使其通過指派有用以刪除根AGP的許可的其一個ACR登錄到系統(tǒng)中來將其刪除。除了特殊初始化模式之外,這是根AGP的另一例外;其優(yōu)選地是可含有具有用以刪除其自身AGP的許可的ACR的唯一AGP,這與下一個樹等級中的AGP相反。
根ACR與標(biāo)準(zhǔn)ACR之間的第三個也是最后一個區(qū)別在于,其是系統(tǒng)中可具有用以創(chuàng)建和刪除分區(qū)的許可的唯一AGP。
SSA系統(tǒng)ACR 可將系統(tǒng)ACR用于以下兩個SSA操作 1.在敵對環(huán)境內(nèi)在安全通道的保護(hù)下創(chuàng)建ACR/AGR樹。
2.識別和認(rèn)證主導(dǎo)SSA系統(tǒng)的裝置。
優(yōu)選地,可在SSA中僅存在一個系統(tǒng)ACR,且一旦經(jīng)定義,其便優(yōu)選地不可改變。當(dāng)創(chuàng)建系統(tǒng)ACR時不需要系統(tǒng)認(rèn)證;僅需要SSA命令??山脛?chuàng)建系統(tǒng)ACR特征(類似于創(chuàng)建根AGP特征)。在創(chuàng)建系統(tǒng)ACR之后,創(chuàng)建系統(tǒng)ACR命令沒有效果,因?yàn)閮?yōu)選地,僅允許一個系統(tǒng)ACR。
當(dāng)在創(chuàng)建過程中時,系統(tǒng)ACR不操作。當(dāng)完成時,需要發(fā)布特殊命令來指示系統(tǒng)ACR得以創(chuàng)建且準(zhǔn)備好運(yùn)行。在此點(diǎn)之后,系統(tǒng)ACR優(yōu)選地不能被更新或取代。
系統(tǒng)ACR在SSA中創(chuàng)建根ACR/AGP。其具有用以增加/改變根等級直到滿足主機(jī)且主機(jī)將其封鎖為止的許可。封鎖根AGP實(shí)質(zhì)上切斷其與系統(tǒng)ACR的連接,且致使其防擾。在此點(diǎn)處,沒有一者能改變/編輯根AGP和其內(nèi)的ACR。此通過SSA命令進(jìn)行。禁用創(chuàng)建根AGP具有持久效應(yīng)且不可逆。圖7中說明以上涉及系統(tǒng)ACR的特征。系統(tǒng)ACR用于創(chuàng)建三個不同根AGP。在創(chuàng)建這些之后的某個時間,從主機(jī)發(fā)送SSA命令以封鎖來自系統(tǒng)ACR的根AGP,借此禁用創(chuàng)建根AGP特征,如圖7中將系統(tǒng)ACR連接到根AGP的虛線指示。這致使所述三個根AGP防擾。在封鎖根AGP之前或之后,所述三個根AGP可用于創(chuàng)建子代AGP以形成三個單獨(dú)樹。
上述特征為內(nèi)容擁有者在用內(nèi)容配置安全產(chǎn)品中提供較大靈活性。安全產(chǎn)品需要“經(jīng)發(fā)布”。發(fā)布是放置識別密鑰(裝置可通過這些密鑰來識別主機(jī)且反之亦然)的過程。識別裝置(例如,快閃卡)使得主機(jī)能夠決定其是否可將其秘密委托給所述裝置。另一方面,識別主機(jī)使得裝置能夠在僅當(dāng)主機(jī)被允許時實(shí)施安全策略(授予并執(zhí)行特殊主機(jī)命令)。
經(jīng)設(shè)計(jì)以服務(wù)多個應(yīng)用程序的產(chǎn)品將具有若干識別密鑰。產(chǎn)品可以“先發(fā)布”(在發(fā)貨之前在制造期間存儲密鑰)或“后發(fā)布”(在發(fā)貨之后添加新密鑰)。對于后發(fā)布來說,存儲器裝置(例如,存儲卡)需要含有某類型的用于識別被允許向裝置添加應(yīng)用程序的實(shí)體的主導(dǎo)裝置或裝置等級密鑰。
上述特征使得產(chǎn)品能夠經(jīng)配置以啟用/禁用后發(fā)布。另外,可在發(fā)貨之后安全地進(jìn)行后發(fā)布配置??蓪⒀b置作為零售產(chǎn)品來購買,其中在裝置上除了上述主導(dǎo)裝置或裝置等級密鑰之外沒有其它密鑰,且接著由新?lián)碛姓吲渲盟鲅b置以啟用另外的后發(fā)布應(yīng)用程序或?qū)⑵浣谩?br>
因此,系統(tǒng)ACR特征提供用以實(shí)現(xiàn)上述目標(biāo)的能力 -不具有系統(tǒng)ACR的存儲器裝置將允許無限制且不受控地添加應(yīng)用程序。
-不具有系統(tǒng)ACR的存儲器裝置可經(jīng)配置以禁用系統(tǒng)ACR創(chuàng)建,這意味著沒有方法來控制新應(yīng)用程序的添加(除非同樣禁用創(chuàng)建新根AGP的特征)。
-具有系統(tǒng)ACR的存儲器裝置將僅允許經(jīng)由安全通道受控地添加應(yīng)用程序以通過使用系統(tǒng)ACR證書的認(rèn)證程序來建立。
-在添加應(yīng)用程序之前或之后,具有系統(tǒng)ACR的存儲器裝置可經(jīng)配置以禁用應(yīng)用程序添加特征。
密鑰ID列表 對每個特定ACR請求創(chuàng)建密鑰ID;然而,在存儲器系統(tǒng)10中,僅由SSA系統(tǒng)使用這些密鑰ID。當(dāng)創(chuàng)建密鑰ID時,由創(chuàng)建ACR提供或向創(chuàng)建ACR提供以下數(shù)據(jù) 1.密鑰ID。所述ID由實(shí)體通過主機(jī)提供且用于參考密鑰和在所有進(jìn)一步讀取或?qū)懭氪嫒≈惺褂妹荑€加密或解密的數(shù)據(jù)。
2.密鑰密碼和數(shù)據(jù)完整性模式(上述塊、鏈和散列模式,且如下文解釋) 除了主機(jī)提供的屬性之外,由SSA系統(tǒng)維護(hù)以下數(shù)據(jù) 1.密鑰ID擁有者。作為擁有者的ACR的ID。當(dāng)創(chuàng)建密鑰ID時,創(chuàng)建者ACR是其擁有者。然而,可將密鑰ID擁有權(quán)轉(zhuǎn)移給另一ACR。優(yōu)選地,僅允許密鑰ID擁有者轉(zhuǎn)移密鑰ID的所有權(quán)和授權(quán)密鑰ID。將存取許可授予相關(guān)聯(lián)密鑰和撤銷這些權(quán)利可由密鑰ID擁有者或分配有授權(quán)許可的任何其它ACR來管理。無論何時試圖實(shí)行這些操作中的任何一者,SSA系統(tǒng)將僅在批準(zhǔn)請求ACR時向其授權(quán)。
2.CEK。這是用于加密與密鑰ID相關(guān)聯(lián)的內(nèi)容或由密鑰ID指向的內(nèi)容的CEK。CEK可以是由SSA系統(tǒng)產(chǎn)生的128位AES隨機(jī)密鑰。
3.MAC和IV值。用于鏈接塊密碼(CBC)加密算法中的動態(tài)信息(消息認(rèn)證代碼和初始向量)。
還參考圖8A-16中的流程圖來說明SSA的各種特征,其中步驟左側(cè)的“H”意味著操作由主機(jī)執(zhí)行,且“C”意味著操作由卡執(zhí)行。為了創(chuàng)建系統(tǒng)ACR,主機(jī)向存儲器裝置10中的SSA發(fā)布用以創(chuàng)建系統(tǒng)ACR的命令(方框202)。裝置10通過檢查系統(tǒng)ACR是否已經(jīng)存在來作出響應(yīng)(方框204,菱形206)。如果已經(jīng)存在,那么裝置10返回失敗結(jié)果并停止(橢圓形208)。如果不存在,那么存儲器10檢查以查看是否允許系統(tǒng)ACR創(chuàng)建(菱形210),且如果不允許則返回失敗狀態(tài)(方框212)。因此,可存在裝置發(fā)布者不允許創(chuàng)建系統(tǒng)ACR的情況,例如在已預(yù)先確定了所需要的安全性特征以使得不需要系統(tǒng)ACR的狀況下。如果這不被允許,那么裝置10返回OK狀態(tài)且等待來自主機(jī)的系統(tǒng)ACR證書(方框214)。主機(jī)檢查SSA狀態(tài)和裝置10是否已指示允許創(chuàng)建系統(tǒng)ACR(方框216和菱形218)。如果不允許創(chuàng)建或如果系統(tǒng)ACR已經(jīng)存在,那么主機(jī)停止(橢圓形220)。如果裝置10已指示允許創(chuàng)建系統(tǒng)ACR,那么主機(jī)發(fā)出SSA命令以定義其登錄證書并將其發(fā)送到裝置10(方框222)。裝置10用所接收的證書來更新系統(tǒng)ACR記錄并返回OK狀態(tài)(方框224)。響應(yīng)于此狀態(tài)信號,主機(jī)發(fā)出指示系統(tǒng)ACR已準(zhǔn)備好的SSA命令(方框226)。裝置10通過鎖定系統(tǒng)ACR以使得其不能被更新或取代來作出響應(yīng)(方框228)。這鎖定了系統(tǒng)ACR的特征和其用于向主機(jī)識別裝置10的身份。
通過在裝置中配置這些功能的方式來確定用于創(chuàng)建新樹(新的根AGP和ACR)的程序。圖9解釋所述程序。主機(jī)24與存儲器系統(tǒng)10兩者均遵守其。如果完全禁用添加新根AGP,那么不能添加新的根AGP(菱形246)。如果其被啟用但需要系統(tǒng)ACR,那么主機(jī)通過系統(tǒng)ACR來認(rèn)證并建立安全通道(菱形250,方框252),且之后發(fā)出創(chuàng)建根AGP命令(方框254)。如果不需要系統(tǒng)ACR(菱形248),那么主機(jī)24可發(fā)出創(chuàng)建根AGP命令而無需認(rèn)證,并進(jìn)入方框254。如果系統(tǒng)ACR存在,那么即使不需要,主機(jī)也可使用其(流程圖中未圖示)。如果禁用該功能,那么裝置(例如,快閃卡)將拒絕任何創(chuàng)建新根AGP的試圖,且如果需要系統(tǒng)ACR,那么其將拒絕在沒有認(rèn)證的情況下創(chuàng)建新根AGP的試圖(菱形246和250)?,F(xiàn)在將方框254中的新創(chuàng)建的AGP和ACR切換到操作模式,以使得這些AGP中的ACR不能被更新或改變,且不能將任何ACR添加到其(方框256)。接著視情況將系統(tǒng)鎖定,以使得不能創(chuàng)建額外的根AGP(方框258)。虛線框258是指示此步驟為可選步驟的常規(guī)方式。此應(yīng)用程序的圖式的流程圖中以虛線表示的所有框均是可選步驟。這允許內(nèi)容擁有者阻斷出于其它非法目的的裝置10的使用(其可模仿具有合法內(nèi)容的真正存儲器裝置)。
為了創(chuàng)建ACR(除了上述根AGP中的ACR),可用具有創(chuàng)建ACR權(quán)利的任何ACR來開始(方框270),如圖10所示。實(shí)體可試圖通過提供實(shí)體點(diǎn)ACR身份和具有其希望創(chuàng)建的所有必要屬性的ACR而經(jīng)由主機(jī)24進(jìn)入(方框272)。SSA檢查與ACR身份的匹配且具有此身份的ACR是否具有創(chuàng)建ACR的許可(菱形274)。如果請求被驗(yàn)證為經(jīng)授權(quán)的,那么裝置10中的SSA創(chuàng)建ACR(方框276)。
圖11展示兩個AGP,其說明可用于使用圖10的方法的安全應(yīng)用程序的樹。因此,營銷AGP中具有身份m1的ACR具有用以創(chuàng)建ACR的許可。ACR m1還可具有用以將密鑰用于讀取和寫入與密鑰ID“營銷信息”相關(guān)聯(lián)的數(shù)據(jù)和與密鑰ID“價格列表”相關(guān)聯(lián)的數(shù)據(jù)的許可。通過使用圖10的方法,其創(chuàng)建具有兩個ACR的銷售AGPs1和s2,其對用于存取與密鑰ID“價格列表”相關(guān)聯(lián)的定價數(shù)據(jù)的密鑰而不是對存取與密鑰ID“營銷信息”相關(guān)聯(lián)的數(shù)據(jù)所必要的密鑰的只讀許可。以此方式,具有ACR s1和s2的實(shí)體僅可讀取而不能改變定價數(shù)據(jù),且將不能存取營銷數(shù)據(jù)。另一方面,ACR m2不具有用以創(chuàng)建ACR的許可,且具有對用于存取與密鑰ID“價格列表”和密鑰ID“營銷信息”相關(guān)聯(lián)的數(shù)據(jù)的密鑰的只讀許可。
因此,可用上文解釋的方式授予存取權(quán)利,其中m1向s1和s2授予用以讀取定價數(shù)據(jù)的權(quán)利。這對于涉及較大營銷和銷售群組尤其有用。在僅存在一個或少數(shù)銷售人員的情況下,可能不需要使用圖10的方法。而是,可由ACR向在同一AGP內(nèi)較低或相同等級處的ACR授予存取權(quán)利,如圖12說明。首先,實(shí)體通過經(jīng)由主機(jī)用上文描述的方式在樹中指定ACR來進(jìn)入此AGP的樹(方框280)。接著,主機(jī)將指定ACR和授予其的權(quán)利。SSA檢查此ACR的樹和是否ACR具有將權(quán)利授予所指定的另一ACR的許可(菱形282)。如果具有,那么授予權(quán)利(方框284);如果沒有,那么停止。所述結(jié)果在圖13中說明。在此情況下,ACR m1具有授予ACR s1讀取許可的許可,以使得s1將能夠在授權(quán)之后使用密鑰來存取定價數(shù)據(jù)。如果m1具有用以存取定價數(shù)據(jù)的相同或較大權(quán)利和如此授權(quán)的許可,那么可執(zhí)行這項(xiàng)操作。在一個實(shí)施例中,m1在授權(quán)之后維持其存取權(quán)利。優(yōu)選地,可在例如有限時間、有限數(shù)目的存取等的受限條件下(而并非永久地)授予存取權(quán)利。
圖14中說明用于創(chuàng)建密鑰和密鑰ID的過程。實(shí)體通過ACR來認(rèn)證(方框302)。實(shí)體請求創(chuàng)建具有由主機(jī)指定的ID的密鑰(方框304)。SSA檢查并查看所指定的ACR是否具有這樣做的許可(菱形306)。舉例來說,如果將要把密鑰用于存取特定分區(qū)中的數(shù)據(jù),那么SSA將檢查并查看ACR是否可存取此分區(qū)。如果ACR被認(rèn)證,那么存儲器裝置10創(chuàng)建與由主機(jī)提供的密鑰ID相關(guān)聯(lián)的密鑰值(方框308),且將密鑰ID存儲在ACR中并將密鑰值存儲在其存儲器中(在與控制器相關(guān)聯(lián)的存儲器或存儲器20中),且根據(jù)由實(shí)體提供的信息分派權(quán)利和許可(方框310)并修改具有這些所分派的權(quán)利和許可的此ACR的PCR(方框312)。因此,密鑰的創(chuàng)建者具有所有可用權(quán)利,例如讀取和寫入許可、授予及與同一AGP中其它ACR或較低等級處的ACR共享的權(quán)利和轉(zhuǎn)移密鑰擁有權(quán)的權(quán)利。
ACR可改變SSA系統(tǒng)中另一ACR的許可(或連同存在),如圖15說明。實(shí)體可如同以前那樣通過ACR進(jìn)入樹;在一種情況下,實(shí)體經(jīng)認(rèn)證,且接著其指定ACR(方框330、332)。其要求刪除目標(biāo)ACR或目標(biāo)ACR中的許可(方框334)。如果所指定的ACR或此時活動的ACR具有這樣做的權(quán)利(菱形336),那么刪除目標(biāo)ACR,或改變目標(biāo)ACR的PCR以刪除此許可(方框338)。如果這未被認(rèn)證,那么系統(tǒng)停止。
在上述過程之后,目標(biāo)將不再能夠存取其在所述過程之前能夠存取的數(shù)據(jù)。如圖16所示,實(shí)體可試圖在目標(biāo)ACR處進(jìn)入(方框350)并發(fā)現(xiàn)認(rèn)證過程失敗,因?yàn)橄惹按嬖诘腁CR ID不再存在于SSA中,以使得存取權(quán)利被否定(菱形352)。假定尚未刪除ACRID,那么實(shí)體指定ACR(方框354)和特定分區(qū)中的密鑰ID和/或數(shù)據(jù)(方框356),且SSA接著根據(jù)此ACR的PCR檢查以查看密鑰ID或分區(qū)存取要求是否被許可(菱形358)。如果許可已被刪除或已期滿,那么再次拒絕請求。否則,授權(quán)請求(方框360)。
上述過程描述裝置(例如,快閃卡)如何管理存取受保護(hù)數(shù)據(jù),而不管ACR和其PCR是否剛由另一ACR改變或經(jīng)如此配置以開始。
對話 SSA系統(tǒng)經(jīng)設(shè)計(jì)以處理同時登錄的多個用戶。此特征要求由SSA接收的每個命令與特定實(shí)體相關(guān)聯(lián)且僅在用于認(rèn)證此實(shí)體的ACR具有針對所請求行動的許可時被執(zhí)行。
通過對話概念支持多個實(shí)體。在認(rèn)證過程期間建立對話,且所述對話由SSA系統(tǒng)分派對話id。所述對話id內(nèi)在地與用于登錄到系統(tǒng)中的ACR相關(guān)聯(lián),且經(jīng)輸出給實(shí)體以用于所有進(jìn)一步SSA命令。
SSA系統(tǒng)支持兩個類型的對話開放對話和安全對話。在ACR中界定與特定認(rèn)證過程相關(guān)聯(lián)的對話類型。SSA系統(tǒng)將以類似于其自身實(shí)施認(rèn)證的方式來實(shí)施對話建立。由于ACR界定實(shí)體許可,因而此機(jī)制使得系統(tǒng)設(shè)計(jì)者能夠?qū)踩泶┡c存取特定密鑰ID或調(diào)用特定ACR管理操作(即,創(chuàng)建新ACR和設(shè)定證書)進(jìn)行關(guān)聯(lián)。
開放對話 開放對話是用對話id而沒有總線加密來識別的對話,所有命令和數(shù)據(jù)被不受阻礙地傳遞。此操作模式優(yōu)選地用于多用戶或多實(shí)體環(huán)境中,其中實(shí)體既不是威脅模型的一部分,也不在總線上竊聽。
盡管既不保護(hù)數(shù)據(jù)的傳輸,也不啟用主機(jī)側(cè)上應(yīng)用程序之間的有效防火墻功能,但開放對話模式使得SSA系統(tǒng)能夠允許僅存取允許用于當(dāng)前經(jīng)認(rèn)證ACR的信息。
開放對話也可用于分區(qū)或密鑰需要保護(hù)的情況。然而,在有效認(rèn)證過程之后,將存取授予主機(jī)上的所有實(shí)體。為了獲得經(jīng)認(rèn)證ACR的許可,各種主機(jī)應(yīng)用程序需要共享的唯一事物是對話id。這在圖17A中說明。線400上的步驟是由主機(jī)24執(zhí)行的步驟。在針對ACR1認(rèn)證實(shí)體(方框402)之后,其請求存取存儲器裝置10中與密鑰ID X相關(guān)聯(lián)的文件(方框404、406和408)。如果ACR1的PCR允許此存取,那么裝置10授權(quán)所述請求(菱形410)。如果不允許,那么系統(tǒng)返回到方框402。在完成認(rèn)證之后,存儲器系統(tǒng)10僅通過所分派的對話id(而并非ACR證書)來識別發(fā)出命令的實(shí)體。一旦ACR1獲得對其PCR中的密鑰ID相關(guān)聯(lián)的數(shù)據(jù)的存取,那么在開放對話中,任何其它應(yīng)用程序或用戶可通過指定正確對話ID(其在主機(jī)24上的不同應(yīng)用程序之間共享)來存取相同數(shù)據(jù)。此特征在其中更方便地使得用戶能夠僅登錄一次且能夠存取與通過其為不同應(yīng)用程序執(zhí)行登錄的帳戶有關(guān)的所有數(shù)據(jù)的應(yīng)用中是有利的。因此,蜂窩式電話用戶可能能夠存取存儲器20中存儲的電子郵件和聽存儲器20中存儲的音樂而無需登錄多次。另一方面,ACR1為包含的數(shù)據(jù)將不可存取。因此,同一蜂窩式電話用戶可具有可通過單獨(dú)帳戶ACR2存取的有價值內(nèi)容(例如游戲和照片)。這是他不希望借用其電話的其他人存取的數(shù)據(jù),盡管他不介意其他人通過其第一帳戶ACR1存取可用的數(shù)據(jù)。將對數(shù)據(jù)的存取分為兩個單獨(dú)帳戶且同時允許在開放對話中存取ACR1提供了使用方便性且提供了對有價值數(shù)據(jù)的保護(hù)。
為了更進(jìn)一步方便在主機(jī)應(yīng)用程序當(dāng)中共享對話id的過程,當(dāng)ACR請求開放對話時,其可特別地請求向所述對話分派“0(零)”id。如此,應(yīng)用程序可經(jīng)設(shè)計(jì)以使用預(yù)定義的對話id。顯然,唯一限制是在特定時間僅可認(rèn)證請求對話0的一個ACR。認(rèn)證請求對話0的另一ACR的試圖將被拒絕。
安全對話 為了添加安全層,可使用對話id(如圖17B所示)。存儲器10接著還存儲活動對話的對話id。在圖17B中,舉例來說,為了能夠存取與密鑰ID X相關(guān)聯(lián)的文件,實(shí)體將需要在其被允許存取文件之前還提供對話id(例如,對話id“A”)(方框404、406、412和414)。以此方式,除非請求實(shí)體知道正確的對話id,否則其不能存取存儲器10。由于在對話結(jié)束之后刪除對話id且對話id對于每個對話是不同的,因而實(shí)體可僅在其已能夠提供對話號碼時獲得存取。
除了通過使用對話號碼之外,SSA系統(tǒng)沒有其它方法來確保命令確實(shí)來自經(jīng)正確認(rèn)證的實(shí)體。對于其中存在攻擊者將試圖使用開放通道來發(fā)送惡意命令的威脅的應(yīng)用程序和使用情況來說,主機(jī)應(yīng)用程序使用安全對話(安全通道)。
當(dāng)使用安全通道時,使用安全通道加密(對話)密鑰來加密對話id以及整個命令,且安全水平與主機(jī)側(cè)實(shí)施方案一樣高。
終止對話 在任何一種以下情形中,終止對話且退出ACR 1.實(shí)體發(fā)出明確的結(jié)束對話命令。
2.通信超時。特定實(shí)體未對定義作為一個ACR參數(shù)的時間周期發(fā)出命令。
3.在裝置(例如,快閃卡)復(fù)位和/或功率周期之后終止所有打開對話。
數(shù)據(jù)完整性服務(wù) SSA系統(tǒng)驗(yàn)證SSA數(shù)據(jù)庫(其含有所有ACR、PCR等)的完整性。此外,通過密鑰ID機(jī)制為實(shí)體數(shù)據(jù)提供數(shù)據(jù)完整性服務(wù)。
如果將散列用作其加密算法來配置密鑰ID,那么將散列值連同CEK和IV一起存儲在CEK記錄中。在寫入操作期間計(jì)算和存儲散列值。在讀取操作期間再次計(jì)算散列值并將其與在先前寫入操作期間存儲的值進(jìn)行比較。每次實(shí)體存取密鑰ID時,將額外數(shù)據(jù)連接(以密碼形式)到舊數(shù)據(jù)和經(jīng)更新的適當(dāng)散列值(用于讀取或用于寫入)。
由于只有主機(jī)知道與密鑰ID相關(guān)聯(lián)或由密鑰ID指向的數(shù)據(jù)文件,因而主機(jī)明確地用以下方式管理數(shù)據(jù)完整性功能的若干方面 1.從開始到結(jié)束寫入或讀取與密鑰ID相關(guān)聯(lián)或由密鑰ID指向的數(shù)據(jù)文件。任何存取部分文件的試圖將使其混亂,因?yàn)镾SA系統(tǒng)正使用CBC加密方法且產(chǎn)生整個數(shù)據(jù)的散列消息摘要。
2.無需處理相連流(數(shù)據(jù)流可與其它密鑰Id的數(shù)據(jù)流交錯且可在多個對話上分裂)中的數(shù)據(jù),因?yàn)橹虚g散列值由SSA系統(tǒng)維持。然而,如果重新開始數(shù)據(jù)流,那么實(shí)體將需要明確指示SSA系統(tǒng)重設(shè)散列值。
3.當(dāng)完成讀取操作時,主機(jī)必須明確請求SSA系統(tǒng)通過將讀取散列與在寫入操作期間計(jì)算出的散列值進(jìn)行比較來驗(yàn)證所述讀取散列。
4.SSA系統(tǒng)同樣提供“虛擬讀取”操作。此特征將使得數(shù)據(jù)串流通過密碼引擎,但將不會把其發(fā)送出到主機(jī)。此特征可用于在將數(shù)據(jù)實(shí)際從裝置(例如,快閃卡)讀出之前驗(yàn)證數(shù)據(jù)完整性。
隨機(jī)號碼產(chǎn)生 SSA系統(tǒng)將使得外部實(shí)體能夠利用內(nèi)部隨機(jī)號碼產(chǎn)生器并請求將隨機(jī)號碼在SSA系統(tǒng)外部使用。此服務(wù)可用于任何主機(jī)且不需要認(rèn)證。
RSA密鑰對產(chǎn)生 SSA系統(tǒng)將使得外部用戶能夠利用內(nèi)部RSA密鑰對產(chǎn)生特征并請求將RSA密鑰對在SSA系統(tǒng)外部使用。此服務(wù)可用于任何主機(jī)且不需要認(rèn)證。
替代實(shí)施例 代替使用分級方法,可使用數(shù)據(jù)庫方法來實(shí)現(xiàn)類似結(jié)果,如圖18說明。
如圖18所示,可將實(shí)體的證書、認(rèn)證方法、失敗試圖的最大數(shù)目和需要解鎖的證書的最小數(shù)目的列表輸入到存儲在控制器12或存儲器20中的數(shù)據(jù)庫中,這使得這些證書要求與數(shù)據(jù)庫中由存儲器10的控制器12執(zhí)行的策略(讀取、寫入存取密鑰和分區(qū)、安全通道要求)相關(guān)。同樣存儲在數(shù)據(jù)庫中的還有對存取密鑰和分區(qū)的約束和限制。因此,一些實(shí)體(例如,系統(tǒng)管理者)可在白名單上,這意味著這些實(shí)體可始終存取所有密鑰和分區(qū)。其它實(shí)體可在黑名單上,且其對存取任何信息的試圖將被阻斷。限制可以是全局的或密鑰和/或分區(qū)特定的。這意味著僅某些實(shí)體可始終存取某些特定密鑰和分區(qū),且某些實(shí)體始終不能存取。可對內(nèi)容本身進(jìn)行約束,而不管內(nèi)容所在的分區(qū)或用于將其加密或解密的密鑰。因此,某些數(shù)據(jù)(例如,歌曲)可具有其僅可由存取其的前面五個主機(jī)裝置來存取或其它數(shù)據(jù)(例如,電影)僅可被讀取有限次數(shù)(而不管哪些實(shí)體已進(jìn)行存取)的屬性。
認(rèn)證 口令保護(hù) ·口令保護(hù)意味著需要出示口令以存取受保護(hù)區(qū)域。除非其不能是一個以上口令,否則口令可與例如讀取存取或讀取/寫入存取的不同權(quán)利相關(guān)聯(lián)。
·口令保護(hù)意味著裝置(例如,快閃卡)能夠驗(yàn)證由主機(jī)提供的口令,即裝置也具有存儲在由裝置管理的安全存儲區(qū)域中的口令。
問題和限制 ·口令常遭受重放攻擊。因?yàn)榭诹钤诿看纬鍪局蟛话l(fā)生改變,所以其可被同樣地再次發(fā)送。這意味著如果待保護(hù)的數(shù)據(jù)是有價值的,且通信總線可易于存取,那么照現(xiàn)在的樣子不能使用口令。
·口令可保護(hù)對所存儲數(shù)據(jù)的存取,但不應(yīng)用于保護(hù)數(shù)據(jù)(并非密鑰) ·為了增加與口令相關(guān)聯(lián)的安全等級,可使用主密鑰來使口令多樣化,這導(dǎo)致一個口令被黑(hack)不會破壞整個系統(tǒng)?;趯υ捗荑€的安全通信通道可用于發(fā)送口令。
圖19是說明使用口令的認(rèn)證的流程圖。實(shí)體向系統(tǒng)10(例如,快閃存儲卡)呈報帳戶id和口令。系統(tǒng)檢查以查看所述口令是否與其存儲器中的口令匹配。如果匹配,那么返回受認(rèn)證狀態(tài)。否則,針對那個帳戶遞增錯誤計(jì)數(shù)器,且要求實(shí)體重新輸入帳戶id和口令。如果計(jì)數(shù)器溢出,那么系統(tǒng)返回拒絕存取的狀態(tài)。
質(zhì)詢響應(yīng) 圖20是說明使用質(zhì)詢/響應(yīng)型方法的認(rèn)證的流程圖。實(shí)體呈報帳戶id,且從系統(tǒng)10請求質(zhì)詢。系統(tǒng)10產(chǎn)生隨機(jī)號碼并將其呈現(xiàn)給主機(jī)。主機(jī)從所述號碼計(jì)算出響應(yīng),并將其發(fā)送給系統(tǒng)10。系統(tǒng)10將所述響應(yīng)與所存儲的值進(jìn)行比較。剩余步驟類似于圖19中用于確定是否授權(quán)存取的步驟。
圖21是說明使用另一質(zhì)詢/響應(yīng)型方法的認(rèn)證的流程圖。圖21與圖20的不同之處在于,除了要求主機(jī)由系統(tǒng)10認(rèn)證之外,其還要求系統(tǒng)10由質(zhì)詢/響應(yīng)認(rèn)證,其中系統(tǒng)10也從主機(jī)請求質(zhì)詢且返回響應(yīng)以由主機(jī)檢查。
圖22是說明使用另一質(zhì)詢/響應(yīng)型方法的認(rèn)證的流程圖。在此情況下,只有系統(tǒng)10需要被認(rèn)證,其中主機(jī)將質(zhì)詢發(fā)送給系統(tǒng)10,系統(tǒng)10計(jì)算出響應(yīng),所述響應(yīng)由主機(jī)檢查以確定與系統(tǒng)10的其記錄的匹配。
對稱密鑰 對稱密鑰算法意味著在兩側(cè)上使用SAME密鑰來進(jìn)行加密及解密。其意味著在通信之前密鑰必須被預(yù)先同意。而且,每側(cè)應(yīng)實(shí)施彼此反向的算法,即,一側(cè)上是加密算法而另一側(cè)上是解密算法。所述兩側(cè)不需要實(shí)施兩個算法來通信。
認(rèn)證 ·對稱密鑰認(rèn)證意味著裝置(例如,快閃卡)與主機(jī)共享相同密鑰且具有相同加密算法(直接和反向,例如DES和DES-1)。
·對稱密鑰認(rèn)證意味著質(zhì)詢-響應(yīng)(保護(hù)以免受重放攻擊)。受保護(hù)裝置產(chǎn)生對于另一裝置的質(zhì)詢,且兩者均計(jì)算響應(yīng)。認(rèn)證裝置發(fā)送回響應(yīng),且受保護(hù)裝置檢查響應(yīng)且因此驗(yàn)證認(rèn)證。接著可授權(quán)與認(rèn)證相關(guān)聯(lián)的權(quán)利。
認(rèn)證可以是 ·外部的裝置(例如,快閃卡)認(rèn)證外界,即,裝置驗(yàn)證給定主機(jī)或應(yīng)用程序的證書 ·相互的在兩側(cè)上產(chǎn)生質(zhì)詢 ·內(nèi)部的主機(jī)應(yīng)用程序認(rèn)證裝置(例如,快閃卡),即,主機(jī)檢查裝置對于其應(yīng)用程序來說是否是真實(shí)的 為了增加整個系統(tǒng)的安全等級(即,破壞一者不會破壞所有) ·通常可將對稱密鑰與使用主密鑰的多樣化結(jié)合 ·相互認(rèn)證使用來自兩側(cè)的質(zhì)詢以確保質(zhì)詢是真實(shí)質(zhì)詢 加密 對稱密鑰密碼術(shù)也用于加密,因?yàn)槠涫欠浅S行У乃惴?,即,其不需要?qiáng)大CPU來處理密碼術(shù)。
當(dāng)用于保護(hù)通信通道時 ·兩個裝置必須知道用以保護(hù)通道(即,加密所有傳出數(shù)據(jù)和解密所有傳入數(shù)據(jù))的對話密鑰。通常使用預(yù)先共享的秘密對稱密鑰或使用PKI來建立此對話密鑰。
·兩個裝置必須知道并實(shí)施相同密碼算法 簽名 對稱密鑰也可用于簽署數(shù)據(jù)。在所述情況下,簽名是加密的部分結(jié)果。保持結(jié)果不完整允許簽署進(jìn)行所需要的次數(shù)而不會暴露密鑰值。
問題和限制 對稱算法是非常有效且安全的,但其基于預(yù)先共享的秘密。發(fā)布以動態(tài)方式秘密地共享此秘密且可能使其為隨機(jī)的(如同對話密鑰)。此想法在于,共享秘密難以長期保持安全且?guī)缀醪豢赡芘c多人共享。
為了有利于此操作,已發(fā)明公用密鑰算法,因?yàn)槠湓试S交換秘密而無需共享秘密。
公用密鑰密碼術(shù) 不對稱密鑰算法通常指公用密鑰密碼。其是非常復(fù)雜且通常CPU密集的數(shù)學(xué)實(shí)施。已發(fā)明其來解決與對稱密鑰算法相關(guān)聯(lián)的密鑰分布的問題。其也提供用于確保數(shù)據(jù)完整性的簽署能力。
不對稱密鑰算法使用分別被稱為私有密鑰和公用密鑰的具有私有和公用元素的密鑰。私有密鑰與公用密鑰兩者以數(shù)學(xué)方式鏈接在一起。公用密鑰可被共享,而私有密鑰需要保密。至于所述密鑰,不對稱算法使用兩個數(shù)學(xué)函數(shù)(一個用于私有密鑰且一個用于公用密鑰)來提供包裹及解開或簽署和驗(yàn)證。
密鑰交換和密鑰分配 密鑰交換通過使用PK算法而變得非常簡單。裝置將其公用密鑰發(fā)送給其它裝置。其它裝置用所述公用密鑰來包裹其秘密密鑰,且將已加密的數(shù)據(jù)返回到第一裝置。第一裝置使用其私有密鑰來解開數(shù)據(jù),且檢索兩側(cè)現(xiàn)都知道且可用于交換數(shù)據(jù)的秘密密鑰。因?yàn)榭扇菀椎亟粨Q對稱密鑰,所以其通常是隨機(jī)密鑰。
簽名 由于其本性的緣故,公用密鑰算法通常僅用于簽署少量數(shù)據(jù)。為了確保數(shù)據(jù)完整性,其接著與提供消息的單向足跡的散列函數(shù)組合。
私有密鑰用于簽署數(shù)據(jù)。公用密鑰(可自由獲得)允許驗(yàn)證簽名。
認(rèn)證 認(rèn)證通常使用簽名質(zhì)詢經(jīng)簽署并返回以供驗(yàn)證。
密鑰的公用部分用于驗(yàn)證。因?yàn)槿魏稳丝僧a(chǎn)生密鑰對,所以需要證實(shí)公用密鑰的擁有者以便證明這是使用正確密鑰的合適人。憑證授權(quán)方提供憑證,且將在簽署憑證中包括公用密鑰。憑證由授權(quán)方自身簽署。接著使用公用密鑰來驗(yàn)證簽名意味著信任發(fā)出含有所述密鑰的憑證的授權(quán)方且能夠驗(yàn)證所述憑證尚未被黑掉,即,由授權(quán)方簽署的憑證散列是正確的;意味著用戶具有授權(quán)方公用密鑰憑證并信任所述授權(quán)方公用密鑰憑證。
提供PK認(rèn)證的最普通方法是信任授權(quán)方或根憑證且間接信任由給定授權(quán)方證實(shí)的所有密鑰對。那么認(rèn)證是通過簽署質(zhì)詢和提供質(zhì)詢響應(yīng)和憑證來證明所具有的私有密鑰與憑證匹配的事項(xiàng)。接著,檢查憑證以確保其尚未被黑掉且其由受信任的授權(quán)方簽署。接著,驗(yàn)證質(zhì)詢響應(yīng)。如果憑證被信任且質(zhì)詢響應(yīng)正確,那么認(rèn)證成功。
裝置(例如,快閃卡)中的認(rèn)證意味著對裝置加載受信任的根憑證且裝置能夠驗(yàn)證質(zhì)詢響應(yīng)以及憑證簽署的散列。
文件加密 PK算法并不用于加密大量數(shù)據(jù),因?yàn)槠涫沁^于CPU密集的,但PK算法通常用于保護(hù)經(jīng)產(chǎn)生以加密內(nèi)容的隨機(jī)化加密/解密密鑰。舉例來說,SMIME(安全電子郵件)產(chǎn)生接著用所有接受者的公用密鑰加密的密鑰。
問題和限制 因?yàn)槿魏问挛锟僧a(chǎn)生密鑰對,所以其必須被證實(shí)以確保其來源。在密鑰交換期間,一者可能想要確保秘密密鑰被提供給正確的裝置,即,將需要檢查所提供的公用密鑰的來源。那么憑證管理成為安全性的一部分,因?yàn)槠淇赏ㄖP(guān)于密鑰的有效性和密鑰是否已被撤銷。
盡管上文已參考各種實(shí)施例描述了本發(fā)明,但將了解,可在不脫離本發(fā)明范圍的情況下,對本發(fā)明作出各種改變和修改,本發(fā)明的范圍應(yīng)僅由所附權(quán)利要求書和其等效物界定。本文所提到的所有參考均以引用方式并入本文中。
1 SSA命令 使用標(biāo)準(zhǔn)(用于相關(guān)格式因數(shù)協(xié)議)寫入及讀取命令將SSA系統(tǒng)命令傳遞到存儲卡。因此,從主機(jī)的觀點(diǎn)來看,發(fā)送SSA命令真正意味著將數(shù)據(jù)寫入到存儲器裝置上用作緩沖文件的特殊文件。經(jīng)由從緩沖文件讀取數(shù)據(jù)來從SSA系統(tǒng)獲得信息。主機(jī)應(yīng)用程序必須確保數(shù)據(jù)總是從緩沖文件的第一LBA寫入和讀取。在主機(jī)OS中管理緩沖文件是超出本說明書的范圍的。
1.1與SSA系統(tǒng)通信 以下部分定義如何通過使用格式因數(shù)(form factor)標(biāo)準(zhǔn)寫入/讀取命令使SSA相關(guān)命令和數(shù)據(jù)與SSA系統(tǒng)通信。
1.1.1向SSA系統(tǒng)發(fā)送命令/數(shù)據(jù) 為通過簽名而掃描每個寫入命令的第一數(shù)據(jù)塊。如果發(fā)現(xiàn)通過簽名,那么將數(shù)據(jù)解釋為SSA命令。如果未發(fā)現(xiàn)通過簽名,那么將數(shù)據(jù)寫入到所指定的地址。
SSA應(yīng)用特定寫入命令可包括多個扇區(qū)轉(zhuǎn)移,其中第一扇區(qū)保持所需簽名和命令的引數(shù)且剩余數(shù)據(jù)塊保持相關(guān)數(shù)據(jù)(如果有的話)。
表...定義SSA命令的第一塊(如在標(biāo)準(zhǔn)OS文件系統(tǒng)中所使用,數(shù)據(jù)塊總是512字節(jié))的格式。
表1SSA命令引數(shù)LBA格式 1.1.2從SSA系統(tǒng)讀取數(shù)據(jù) 將分兩個部分執(zhí)行讀取命令 1.通過首先發(fā)送具有定義讀取命令的所有引數(shù)的單一數(shù)據(jù)塊的寫入命令來起始讀取命令。
2.在寫入命令將卡應(yīng)用程序設(shè)置在正確的轉(zhuǎn)移狀態(tài)上之后,使用讀取命令來起始從卡到主機(jī)的實(shí)際數(shù)據(jù)轉(zhuǎn)移。讀取命令必須使用前一寫入命令所使用的同一LBA地址。這是對卡的關(guān)于主機(jī)正試圖獲得SSA數(shù)據(jù)(先前所請求)的唯一指示。
讀取/寫入命令對必須小心地同步。下一對話定義如何處理及恢復(fù)序列誤差。如所定義,SSA系統(tǒng)支持可能同時登錄的多個主機(jī)側(cè)用戶。每個用戶期望獨(dú)立地且非同步地起始讀取/寫入命令對,因此不需要主機(jī)OS的任何特殊行為。從卡的觀點(diǎn)來看,通過在序列的寫入半側(cè)使用的LBA地址來識別這些個別對。從主機(jī)的觀點(diǎn)來看,這意味著每個用戶必須使用不同的文件緩沖。
1.1.3讀取/寫入序列誤差 1.2命令詳細(xì)描述 表2提供SSA命令的大體概述。
命令名稱欄提供了命令使用的基本描述和命令的詳細(xì)描述的索引。命令操作代碼是用于SSA命令中的實(shí)際值。引數(shù)長度(Arg Len)欄定義了命令的引數(shù)字段的大小(為零的值意味沒有引數(shù))。引數(shù)是命令特定的且在詳細(xì)命令描述中指定。
數(shù)據(jù)長度是與命令相關(guān)聯(lián)的額外數(shù)據(jù)塊中命令數(shù)據(jù)的大小。為零之值意味沒有數(shù)據(jù),值“Var”意味命令具有可變的數(shù)據(jù)大小且實(shí)際大小在命令本身中指定。對于固定大小數(shù)據(jù)命令,此欄存儲數(shù)據(jù)大小的大小。數(shù)據(jù)方向可為空白(如果命令不具有數(shù)據(jù)(意味如表1中所指定的命令引數(shù)都在字節(jié)76與字節(jié)511之間的空間中-超過此空間存在伴隨命令扇區(qū)的數(shù)據(jù)有效負(fù)載))、“寫入”(如果數(shù)據(jù)從主機(jī)移動到卡(附到寫入命令的引數(shù)塊)),或“讀取”(如果數(shù)據(jù)從卡移動到主機(jī))(如以上所述在提供引數(shù)的寫入命令之后的讀取命令中)。
表2SSA命令 1.2.1創(chuàng)建系統(tǒng)ACR 創(chuàng)建系統(tǒng)ACR在SSA數(shù)據(jù)庫中創(chuàng)建系統(tǒng)ACR條目。一旦創(chuàng)建起條目那么可根據(jù)指定的登錄算法來配置證書。最后使用CREATE_SYSTEM_ACR_DONE命令來終止序列并使系統(tǒng)ACR有效。
如果ACR條目已存在或創(chuàng)建系統(tǒng)ACR特征被禁用,那么將拒絕創(chuàng)建系統(tǒng)ACR命令。僅可用可用登錄模式的子集來配置系統(tǒng)ACR(細(xì)節(jié)請參考部分1.3.2)。如果使用無效模式那么命令將被拒絕。
在表3中給出命令引數(shù)。字節(jié)偏移與命令引數(shù)LBA的開始相關(guān)(見部分1.1.1)。引數(shù)長度以字節(jié)單位給出。引數(shù)名稱定義引數(shù)的目的且可用作詳細(xì)引數(shù)描述的索引。
表3創(chuàng)建系統(tǒng)ACR命令引數(shù) 1.2.2系統(tǒng)ACR創(chuàng)建完成 僅在系統(tǒng)ACR創(chuàng)建開始之后發(fā)送此命令。在任何其他時候?qū)⒕芙^所述命令。發(fā)送此命令終止系統(tǒng)ACR創(chuàng)建,且將當(dāng)前配置永遠(yuǎn)留給ACR。對于此命令不存在引數(shù)。
1.2.3 PASSWORD_CREDENTIAL 在發(fā)送SSA命令[28](CREATE_ACR)之后,發(fā)送ACR的證書。在此情況下證書是具有某長度的口令(以字節(jié)計(jì)的最大長度為20)。
表4口令證書命令引數(shù) 1.2.4 SYMMETRIC_CREDENTIAL 當(dāng)挑選ACR的對稱登錄程序時其隨后是以AES、DES或3DES密鑰的形式發(fā)送ACR的對稱證書。算法的特性將指示以字節(jié)計(jì)的證書(密鑰)長度??稍谡?guī)ACR和系統(tǒng)ACR創(chuàng)建時間使用此命令。
錯誤!未找到參考源。表13描述不同類型的非對稱證書。
表5對稱證書命令引數(shù) 1.2.5非對稱證書 對于具有非對稱登錄程序的ACR,存在必須傳遞到SSA的若干證書。以下表14描述不同類型的非對稱證書 表6非對稱證書命令引數(shù) 1.2.6.輸出公共密鑰 1.2.7輸入證書 1.2.8配置ACAM 發(fā)送此命令配置ACR管理許可。僅在ACR創(chuàng)建期間發(fā)送所述命令。對于系統(tǒng)ACR所述命令為無效的。ACAM類型和代碼在表16ACAM類型中描述 表7配置ACAM命令引數(shù) 1.2.9 創(chuàng)建根AGP 為創(chuàng)建安全通道下的根AGP,必須執(zhí)行經(jīng)系統(tǒng)ACR的SSA系統(tǒng)登錄。在登錄之后,對話ID將創(chuàng)建且用于創(chuàng)建序列。當(dāng)恰在完成系統(tǒng)ACR登錄序列之后請求系統(tǒng)命令返回狀態(tài)時對話ID是可用的。創(chuàng)建根AGP而不首先登錄到系統(tǒng)ACR(以安全通道創(chuàng)建根AGP)不需要對話ID。
表8回顧了命令引數(shù)。在不使用系統(tǒng)ACR時,對話ID字段保留為空(NULL)(NA)。在AGP名稱/ID前的是其長度的字節(jié)數(shù)。
表8創(chuàng)建根AGP命令引數(shù) 命令結(jié)構(gòu) ·命令名稱/操作代碼-1字節(jié)SSA_CREATE_ROOT_AGP_CMD[3] ·命令引數(shù)- 1.對話ID-是否需要??? 2.以字節(jié)計(jì)的AGP名稱/ID長度-1字節(jié) 3.AGP名稱/ID- 1.2.10根AGP創(chuàng)建完成 此命令在根AGP完成時傳遞-意味AGP中的所有ACR得以創(chuàng)建。此命令將鎖定AGP以便不再可創(chuàng)建更多ACR。
對于此命令不存在引數(shù)。
命令結(jié)構(gòu) ·命令名/操作代碼-1字節(jié) SSA_ROOT_AGP_CREATION_DONE_CMD[4] ·命令引數(shù)- 1.對話ID-是否需要??? 2.以字節(jié)計(jì)的AGP名稱/ID長度-1字節(jié) 3.AGP名稱/ID- 1.2.11 DISBALE_SYSTEM_ACR_CREATION 發(fā)送此命令將終止創(chuàng)建系統(tǒng)ACR的能力。此命令無引數(shù)。
1.2.12 SET_ROOT_AGP_CREATION_MODE 用SSA命令[19]SET_ROOT_AGP_CREATION_MODE處理對根AGP創(chuàng)建的控制。不同模式的代碼在表9中描述。此命令不需要登錄SSA因此不需要對話ID。
表9根AGP創(chuàng)建模式 表10設(shè)定根AGP創(chuàng)建模式命令引數(shù) 1.2.13 DISBALE_ROOT_AGP_CHANGE_MODE 此命令使SET_ROO_AGP_CREATION_MODE命令為不可操作的,且其將被SSA拒絕。此命令不具有引數(shù)。
1.2.14 創(chuàng)建AGP 表11創(chuàng)建AGP命令引數(shù) 命令結(jié)構(gòu) ·命令名稱/操作代碼-1字節(jié)SSA_CREATE_AGP_CMD[5] ·命令引數(shù)- 1對話ID-1字節(jié) 2.以字節(jié)計(jì)的AGP名稱/ID長度-1字節(jié) 3.AGP名稱/ID- 1.2.15刪除AGP 此命令對于創(chuàng)建AGP的ACR為有效的,且假定其無ACR。
命令結(jié)構(gòu) ·命令名稱/操作代碼-1字節(jié)SSA_DELETE_AGP_CMD[6] ·命令引數(shù)- 1.1對話ID-1字節(jié) 2.以字節(jié)計(jì)的AGP名稱/ID長度-1字節(jié) 3.AGP名稱/ID- 1.2.16創(chuàng)建ACR 命令結(jié)構(gòu) ·命令名稱/操作代碼-1字節(jié)SSA_CREATE_ACR_CMD[7] ·命令引數(shù)- 1.AGP名稱/ID- 2.ACR名稱/ID- 3.登錄算法-1字節(jié) 4.密鑰長度 5.解鎖ACR名稱/ID 6.管理權(quán)利(ACAM)的數(shù)目-1字節(jié) 7.ACAM#1 8.ACAM#n1.2.17更新ACR 此命令僅能由ACR創(chuàng)建者發(fā)送以更新子代ACR。駐留在根AGP中的ACR因其沒有父代ACR而不能被更新。
命令結(jié)構(gòu) ·命令名稱/操作代碼-1字節(jié)SSA_UPDATE_ACR_CMD[8] ·命令引數(shù)- 1.對話ID-1字節(jié) 2.以字節(jié)計(jì)的AGP名稱/ID長度-1字節(jié) 3.AGP名稱/ID- 4.以字節(jié)計(jì)的ACR名稱/ID長度-1字節(jié) 5.ACR名稱/ID- 1.2.18刪除ACR 此命令僅能由ACR創(chuàng)建者發(fā)送以刪除子代ACR。駐留在根AGP中的ACR具有刪除其自身的能力。
命令結(jié)構(gòu) ·命令名稱/操作代碼-1字節(jié)SSA_DELETE_ACR_CMD[9] ·命令引數(shù)- 1.對話ID-1字節(jié) 2.以字節(jié)計(jì)的AGP名稱/ID長度-1字節(jié) 3.AGP名稱/ID- 4.以字節(jié)計(jì)的ACR名稱/ID長度-1字節(jié) 5.ACR名稱/ID- 1.2.19解鎖ACR 此命令僅可由具有此明確許可的ACR發(fā)送以便解鎖某一ACR。
命令結(jié)構(gòu) ·命令名稱/操作代碼-1字節(jié)SSA_UNBLOCK_ACR_CMD[10] ·命令引數(shù)- 1.對話ID-1字節(jié) 2.以字節(jié)計(jì)的AGP名稱/ID長度-1字節(jié) 3.AGP名稱/ID- 4.以字節(jié)計(jì)的ACR名稱/ID長度-1字節(jié) 5.ACR名稱/ID- 1.2.20授權(quán)域許可 命令結(jié)構(gòu) ·命令名稱/操作代碼-1字節(jié) SSA_DELEGATE_DOMAIN_PERMISSION_CMD[11] ·命令引數(shù)- 1.對話ID-1字節(jié) 2.用于授權(quán)的許可數(shù)目-1字節(jié) 3.所授權(quán)的許可代碼 4.以字節(jié)計(jì)的域名/ID長度-1字節(jié) 5.域名/ID 1.2.21創(chuàng)建分區(qū) 此命令僅可由駐留在根AGP中的ACR發(fā)送。
命令結(jié)構(gòu) ·命令名稱/操作代碼-1字節(jié)SSA_CREATE_PARTITION_CMD[12] ·命令引數(shù)- 1.對話ID-1字節(jié) 2.以字節(jié)計(jì)的分區(qū)名稱/ID長度-1字節(jié) 3.分區(qū)名稱/ID 4.扇區(qū)中分區(qū)大小[512字節(jié)]-4字節(jié) 5.以字節(jié)計(jì)的減少的分區(qū)名稱/ID長度-1字節(jié) 6.減少的分區(qū)名稱/ID 1.2.22更新分區(qū) 此命令僅可由駐留在根AGP中的ACR發(fā)送。
命令結(jié)構(gòu) ·命令名稱/操作代碼-1字節(jié)SSA_UPDATE_PARTITION_CMD[13] ·命令引數(shù)- 1.對話ID-1字節(jié) 2.以字節(jié)計(jì)的分區(qū)名稱/ID長度-1字節(jié) 3.分區(qū)名稱/ID 4.扇區(qū)中分區(qū)大小[512字節(jié)]-4字節(jié) 5.以字節(jié)計(jì)的減少的分區(qū)名稱/ID長度-1字節(jié) 6.減少的分區(qū)名稱/ID 1.2.23刪除分區(qū) 此命令僅可由駐留在根AGP中的ACR發(fā)送。
命令結(jié)構(gòu) ·命令名稱/操作代碼-1字節(jié)SSA_DELETE_PARTITION_CMD[14] ·命令引數(shù)- 6.對話ID-1字節(jié) 7.以字節(jié)計(jì)的分區(qū)名稱/ID長度-1字節(jié) 8.分區(qū)名稱/ID 1.2.24限制公共域存取 此命令將限制到公共分區(qū)/來自公共分區(qū)(也稱為用戶區(qū)域)的正規(guī)讀取/寫入命令(由主機(jī)發(fā)送的且不是SSA命令協(xié)議的部分的命令)。
命令結(jié)構(gòu) ·命令名稱/操作代碼-1字節(jié) SSA_RESTRICT_PAUBLIC_PARTITION_CMD[15] ·命令引數(shù)- 1.對話ID-1字節(jié) 2.公共分區(qū)限制代碼-1字節(jié) 1.2.25創(chuàng)建域 命令結(jié)構(gòu) ·命令名稱/操作代碼-1字節(jié)SSA_CREATE_DOMAIN_CMD[16] ·命令引數(shù)- 1.對話ID-1字節(jié) 2.以字節(jié)計(jì)的分區(qū)名稱/ID長度-1字節(jié) 3.分區(qū)名稱/ID 4.以字節(jié)計(jì)的域名/ID長度-1字節(jié) 5.域名/ID 1.2.26刪除域 僅域所有者可發(fā)送此命令并刪除域。
命令結(jié)構(gòu) ·命令名稱/操作代碼-1字節(jié)SSA_DELETE_DOMAIN_CMD[17] ·命令引數(shù)- 1.對話ID-1字節(jié) 2.以字節(jié)計(jì)的分區(qū)名稱/ID長度-1字節(jié) 3.分區(qū)名稱/ID 4.以字節(jié)計(jì)的域名/ID長度-1字節(jié) 5.域名/ID 1.2.27系統(tǒng)登錄 當(dāng)主機(jī)用戶希望通過ACR中的一者使用SSA系統(tǒng)時頒發(fā)此命令。所述命令將開始登錄/認(rèn)證過程。
命令結(jié)構(gòu) ·命令名稱/操作代碼-1字節(jié)SSA_SYSTEM_LOGIN_CMD[18] ·命令引數(shù)- 1.以字節(jié)計(jì)的AGP名稱/ID長度-1字節(jié) 2.AGP名稱/ID- 3.以字節(jié)計(jì)的ACR名稱/ID長度-1字節(jié) 4.ACR名稱/ID- 1.2.28系統(tǒng)退出 當(dāng)主機(jī)用戶希望終止與SSA系統(tǒng)的工作對話時頒發(fā)此命令。所述命令結(jié)束當(dāng)前登錄對話的所有用戶活動。在此命令之后主機(jī)用戶將需要再次開始登錄過程以便能執(zhí)行與SSA系統(tǒng)的進(jìn)一步動作。
命令結(jié)構(gòu) ·命令名稱/操作代碼-1字節(jié)SSA_SYSTEM_LOGOUT_CMD[19] ·命令引數(shù)- 1.以字節(jié)計(jì)的AGP名稱/ID長度-1字節(jié) 2.AGP名稱/ID- 3.以字節(jié)計(jì)的ACR名稱/ID長度-1字節(jié) 4.ACR名稱/ID- 1.2.29讀取 命令結(jié)構(gòu) ·命令名稱/操作代碼-1字節(jié)SSA_READ_CMD[20] ·命令引數(shù)- 1.對話ID-1字節(jié) 2.以字節(jié)計(jì)的分區(qū)名稱長度-1字節(jié) 3.分區(qū)名稱 4.以字節(jié)計(jì)的域名長度-1字節(jié) 5.域名 6.分區(qū)地址(LBA)-4字節(jié) 7.將讀取的LBA的數(shù)目(扇區(qū)-扇區(qū)=512字節(jié))-4字節(jié) 1.2.30寫入 命令結(jié)構(gòu) ·命令名稱/操作代碼-1字節(jié)SSA_WRITE_CMD[21] ·命令引數(shù)- 1.對話ID-1字節(jié) 2.以字節(jié)計(jì)的分區(qū)名稱長度-1字節(jié) 3.分區(qū)名稱 4.以字節(jié)計(jì)的域名長度-1字節(jié) 5.域名 6.分區(qū)地址(LBA)-4字節(jié) 7.將讀取的LBA的數(shù)目(扇區(qū)-扇區(qū)=512字節(jié))-4字節(jié) 1.2.31命令狀態(tài) 可發(fā)送此狀態(tài)命令以便獲得所發(fā)送的前一命令的返回狀態(tài)。所述狀態(tài)處理命令過程和SSA系統(tǒng)狀態(tài)。
命令結(jié)構(gòu) ·命令名稱/操作代碼-1字節(jié)SSA_CMD_STATUS_CMD[22] ·命令引數(shù)- 1.對話ID-1字節(jié) 1.2.32系統(tǒng)詢問 系統(tǒng)詢問命令讀取登錄的ACR的范圍中的SSA信息。
命令結(jié)構(gòu) ·命令名稱/操作代碼-1字節(jié)SSA_SYS_QUERY_CMD[23] ·命令引數(shù)- 1.對話ID-1字節(jié) 1.2.33口令認(rèn)證命令 1.2.33.1發(fā)送口令到SSA 所述命令發(fā)送待由SSA驗(yàn)證的實(shí)際ACR口令。發(fā)送命令狀態(tài)命令(22)將使主機(jī)能讀取命令狀態(tài)且能在命令完成時讀取認(rèn)證過程的狀態(tài)-通過/失敗。
命令結(jié)構(gòu) ·命令名稱/操作代碼-1字節(jié)SSA_PWD_AUTH SEND PWD_CMD[24] ·命令引數(shù)- 1.以字節(jié)計(jì)的口令長度-1字節(jié) 2.口令數(shù)據(jù)。
1.2.34對稱認(rèn)證命令 1.2.34.1從SSA獲得質(zhì)詢 命令結(jié)構(gòu) ·命令名稱/操作代碼-1字節(jié)SSA_SYM AUTH_GET_CHLG_CMD[25] ·命令引數(shù)- 1.2.34.2向SSA發(fā)送質(zhì)詢 命令結(jié)構(gòu) ·命令名稱/操作代碼-1字節(jié) SSA_SYM_AUTH_SEND_CHLG_CMD[26] ·命令引數(shù)- 1.2.34.3從SSA獲得質(zhì)詢響應(yīng) 命令結(jié)構(gòu) ·命令名稱/操作代碼-1字節(jié) SSA_SYM_AUTH_GET_CHLG_RES_CMD[27] ·命令引數(shù)- 1.2.34.4從SSA發(fā)送質(zhì)詢響應(yīng) 命令結(jié)構(gòu) ·命令名稱/操作代碼-1字節(jié) SSA_SYM_AUTH_SEND_CHLG_RES_CMD[28] ·命令引數(shù)- 1.2.35非對稱認(rèn)證處理命令 1.2.35.1向SSA發(fā)送質(zhì)詢 命令結(jié)構(gòu) ·命令名稱/操作代碼-1字節(jié) SSA_ASYM_AUTH_SEND_CHLG_CMD[29] ·命令引數(shù)-質(zhì)詢隨機(jī)數(shù)-28字節(jié) 1.2.35.2從SSA獲得質(zhì)詢 命令結(jié)構(gòu) ·命令名稱/操作代碼-1字節(jié) SSA_ASYM_AUTH_GET_CHLG_CMD[30] ·命令引數(shù)-NA 1.2.35.3向SSA發(fā)送CA憑證 命令結(jié)構(gòu) ·命令名稱/操作代碼-1字節(jié) SSA_ASYM_AUTH_SEND_CA_CERT_CMD[31] ·命令引數(shù)- 1.2.35.4獲得SSA前主導(dǎo)裝置秘密 命令結(jié)構(gòu) ·命令名稱/操作代碼-1字節(jié) SSA_ASYM_AUTH_GET_PRE_MASTER_SECRET_CMD[32] ·命令引數(shù)- 1.2.35.5從SSA獲得ACR憑證 命令結(jié)構(gòu) ·命令名稱/操作代碼-1字節(jié) SSA_ASYM_AUTH_GET_CHLG_CMD[33] ·命令引數(shù)- 1.2.35.6將主機(jī)前主導(dǎo)裝置秘密發(fā)送給SSA 命令結(jié)構(gòu) ·命令名稱/操作代碼-1字節(jié) SSA_ASYM_AUTH_SEND_PRE_MASTER_SECRET_CMD[34] ·命令引數(shù)- 1.2.35.7發(fā)送開始對話消息 命令結(jié)構(gòu) ·命令名稱/操作代碼-1字節(jié) SSA_ASYM_AUTH_SEND_START_SESSION_MSG_CMD[35] ·命令引數(shù)- 1.PIN選項(xiàng)- 2.以字節(jié)計(jì)的PIN長度- 3.PIN串- 1.2.35.8從SSA獲得認(rèn)證完成消息 命令結(jié)構(gòu) ·命令名稱/操作代碼-1字節(jié)SSA_SYM_AUTH_GET_CHLG_CMD[36] ·命令引數(shù)- 1.3SSA命令引數(shù) 1.3.1不可應(yīng)用 在引數(shù)列表中定義為不可應(yīng)用(NA)的所有字段必須設(shè)定為0。
1.3.2口令和PIN結(jié)構(gòu) 口令和PIN片語為20字節(jié)長且為SSA系統(tǒng)的二進(jìn)制值。短于20字節(jié)的任何片語必須帶有“0”間隙。
1.3.3登錄算法 此引數(shù)定義ACR的邏輯算法。其為1字節(jié)長的??捎玫闹翟谝韵卤碇屑右远x 表12登錄算法類型 1.3.4對稱證書符號 表13對稱證書類型 1.3.5非對稱證書類型 表14非對稱證書類型 1.3.6分區(qū)權(quán)利 1.3.7域權(quán)利 1.3.8域許可代碼 表15域許可類型 1.3.9ACAM 表16ACAM類型 1.3.10公共分區(qū)限制代碼 表17公共分區(qū)限制類型 1.3.11命令狀態(tài) 1.3.12 SSA詢問 1.3.13命令序列 1.3.13.1經(jīng)由互相對稱認(rèn)證的SSA登錄的命令序列 當(dāng)成功地完成此序列時,SSA的ACR登錄且SSA操作可開始。
1.3.13.2用于創(chuàng)建根AGP的命令序列 可經(jīng)由系統(tǒng)ACR(其要求對系統(tǒng)ACR執(zhí)行登錄序列)或放棄安全通道且跳過系統(tǒng)ACR認(rèn)證過程來創(chuàng)建根AGP。將命令SSA_CREATE_ROOT_AGP_CMD[3]與根AGP的身份一起發(fā)送。
此命令之后可為SSA_CMD_STATUS_CMD[22]以便確信SSA未拒絕所述命令且所述命令在沒有錯誤的情況下完成。當(dāng)完成根AGP且隨后所有其ACR得以創(chuàng)建以便發(fā)送根AGP時,將發(fā)送SSA_ROOT_AGP_CREATION_DONE_CMD[4]命令。
1.3.13.3用于創(chuàng)建AGP的命令序列 為創(chuàng)建AGP,用戶必須首先通過執(zhí)行1.3.13.1中所展示的登錄命令序列來登錄SSA。必須在建立ACR的新群組之前創(chuàng)建AGP。通過與AGP名稱/ID一起發(fā)送命令SSA_CREATE_AGP_CMD[5]來創(chuàng)建AGP。
為驗(yàn)證CMD[5]在沒有誤差的情況下被接收和執(zhí)行,用戶發(fā)送SSA_CMD_STATUS_CMD[22]且讀取前一發(fā)送的命令的狀態(tài)。當(dāng)用戶完成創(chuàng)建AGP時,可以繼續(xù)創(chuàng)建ACR或從SSA系統(tǒng)退出。
1.3.13.4用于建立ACR的命令序列 為創(chuàng)建ACR,用戶必須首先通過執(zhí)行1.3.13.1中所展示的登錄命令序列來登錄SSA。同樣,必須存在新ACR所歸屬的AGP。隨后用戶與所有新ACR數(shù)據(jù)(名稱、AGP、登錄方法等)一起發(fā)送命令SSA_CREATE_ACR_CMD[7]。為驗(yàn)證CMD[7]在沒有錯誤的情況下被接收和執(zhí)行,用戶發(fā)送SSA_CMD_STATUS_CMD[22]且讀取前一發(fā)送的命令的狀態(tài)。當(dāng)用戶完成創(chuàng)建ACR時,可以繼續(xù)其他SSA操作或從SSA系統(tǒng)退出。
1.4產(chǎn)品參數(shù) ·最大數(shù)目的所有實(shí)體(MAROs、ARCR、并行對話等)。
·在適用處添加密碼參數(shù)的定義,即RSA密鑰長度。
·需要定義每協(xié)議的錯誤條件和消息。
·需要定義超時和忙處理。
·指定樹上的級數(shù)。
·根MAROS的限制#。
·子代(根上)的限制#在所有子代上?授權(quán)到。
·在CBC上下文(平行)的數(shù)目上將存在限制,例如5-10。
·協(xié)議和產(chǎn)品版本。
權(quán)利要求
1.一種用于操作存儲系統(tǒng)的方法,所述系統(tǒng)包括非易失性存儲器和控制對所述存儲器的存取的控制器,所述控制器或存儲器存儲至少第一和第二分級樹,所述分級樹包括位于不同等級的節(jié)點(diǎn),所述節(jié)點(diǎn)用于控制第一和第二相應(yīng)實(shí)體組對存儲在所述存儲器中的數(shù)據(jù)的存取,其中每個所述樹的節(jié)點(diǎn)均指定一個或多個相應(yīng)實(shí)體存取存儲器數(shù)據(jù)的一個或多個許可,其中每個所述樹的節(jié)點(diǎn)處的一個或多個許可與同一樹中的較高或較低等級上的另一節(jié)點(diǎn)處的一個或多個許可具有預(yù)定關(guān)系;所述方法包括
從所述第一和第二相應(yīng)實(shí)體組接收對存取存儲器數(shù)據(jù)的請求;以及
根據(jù)所述第一和第二分級樹的所述節(jié)點(diǎn)處的一個或多個許可來控制所述第一和第二相應(yīng)實(shí)體組對存儲器數(shù)據(jù)的存取,其中在所述第一和第二相應(yīng)實(shí)體組對存儲器數(shù)據(jù)的存取中沒有串話。
2.根據(jù)權(quán)利要求1所述的方法,其中所述樹中的所述至少兩者控制對所述存儲器中兩個單獨(dú)數(shù)據(jù)組的存取,以使得所述控制使得所述第一和第二相應(yīng)實(shí)體組中的每一組能夠存取所述兩個數(shù)據(jù)組中的相應(yīng)一組。
3.根據(jù)權(quán)利要求2所述的方法,其中所述控制使得所述第一和第二相應(yīng)實(shí)體組能夠借助于兩個單獨(dú)計(jì)算機(jī)應(yīng)用程序來存取數(shù)據(jù)。
4.根據(jù)權(quán)利要求1所述的方法,其中每個所述樹的節(jié)點(diǎn)處的所述一個或多個許可指示對所述存儲器中數(shù)據(jù)的存取權(quán)利,所述存取權(quán)利不少于由同一樹中的較低等級的節(jié)點(diǎn)處的一個或多個許可所指示的存取權(quán)利。
5.根據(jù)權(quán)利要求1所述的方法,其中所述樹中的至少一者的相同等級上的多個節(jié)點(diǎn)形成一個群組,且其中所述控制允許所述群組的節(jié)點(diǎn)處的相應(yīng)實(shí)體通過使用至少一個公用密鑰來存取所述存儲器中的數(shù)據(jù)。
6.根據(jù)權(quán)利要求5所述的方法,其中對所述群組的節(jié)點(diǎn)處的相應(yīng)實(shí)體的一個或多個許可允許使用所述至少一個公用密鑰來存取所述存儲器中的數(shù)據(jù)的不同權(quán)利。
7.根據(jù)權(quán)利要求6所述的方法,其中根據(jù)樹的節(jié)點(diǎn)處的一個或多個許可,所述控制允許第一實(shí)體通過使用所述至少一個公用密鑰來只讀存取所述存儲器中的數(shù)據(jù)以及第二實(shí)體通過使用至少一個公用密鑰來讀寫存取所述存儲器中的數(shù)據(jù)。
8.根據(jù)權(quán)利要求1所述的方法,其中樹的節(jié)點(diǎn)處的所述一個或多個許可用于存取用于加密和/或解密所述存儲器中的數(shù)據(jù)的密鑰。
9.根據(jù)權(quán)利要求1所述的方法,其中根據(jù)樹的節(jié)點(diǎn)處的一個或多個許可,所述控制允許存取所述存儲器的一個或一個以上分區(qū)。
10.一種安全存儲系統(tǒng),其包括
非易失性存儲器;以及
控制器,其控制對所述存儲器的存取,所述控制器或存儲器存儲至少第一和第二分級樹,所述分級樹包括位于不同等級處的節(jié)點(diǎn),所述節(jié)點(diǎn)用于控制第一和第二相應(yīng)實(shí)體組對存儲在所述存儲器中的數(shù)據(jù)的存取,其中每個所述樹的節(jié)點(diǎn)均指定一個或多個相應(yīng)實(shí)體存取存儲器數(shù)據(jù)的一個或多個許可,其中每個所述樹的節(jié)點(diǎn)處的一個或多個許可與同一樹中的較高或較低等級上的另一節(jié)點(diǎn)處的一個或多個許可具有預(yù)定關(guān)系,且其中所述樹中的至少兩者之間沒有串話。
11.根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述樹中的所述至少兩者控制對所述存儲器中兩個單獨(dú)數(shù)據(jù)組的存取,以使得所述至少兩個樹中的每一者均控制對所述兩個數(shù)據(jù)組中的相應(yīng)一組的存取。
12.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述樹中的所述至少兩者通過兩個單獨(dú)計(jì)算機(jī)應(yīng)用程序來控制存取。
13.根據(jù)權(quán)利要求10所述的系統(tǒng),其中每個所述樹的節(jié)點(diǎn)處的所述一個或多個許可指示對所述存儲器中數(shù)據(jù)的存取權(quán)利,所述存取權(quán)利不少于由同一樹中的較低等級的節(jié)點(diǎn)處的一個或多個許可所指示的存取權(quán)利。
14.根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述樹中的至少一者的相同等級上的多個節(jié)點(diǎn)形成一個群組,且對所述群組的節(jié)點(diǎn)處的相應(yīng)實(shí)體的一個或多個許可允許通過使用至少一個公用密鑰來存取所述存儲器中的數(shù)據(jù)。
15.根據(jù)權(quán)利要求14所述的系統(tǒng),其中對所述群組的節(jié)點(diǎn)處的相應(yīng)實(shí)體的一個或多個許可允許使用所述至少一個公用密鑰來存取所述存儲器中的數(shù)據(jù)的不同權(quán)利。
16.根據(jù)權(quán)利要求15所述的系統(tǒng),其中對所述群組的所述節(jié)點(diǎn)中的一者處的相應(yīng)實(shí)體的一個或多個許可允許第一實(shí)體通過使用所述至少一個公用密鑰來只讀存取所述存儲器中的數(shù)據(jù)以及第二實(shí)體通過使用所述至少一個公用密鑰來讀寫存取所述存儲器中的數(shù)據(jù)。
17.根據(jù)權(quán)利要求10所述的系統(tǒng),其中樹的節(jié)點(diǎn)處的所述一個或多個許可用于存取用于加密和/或解密所述存儲器中數(shù)據(jù)的密鑰。
18.根據(jù)權(quán)利要求10所述的系統(tǒng),其中樹的節(jié)點(diǎn)上的所述一個或多個許可用于存取所述存儲器的一個或一個以上分區(qū)。
全文摘要
本發(fā)明提供一種存儲在存儲媒體中的樹結(jié)構(gòu),其對實(shí)體恰在獲得存取之后可做什么提供控制。所述樹的每個節(jié)點(diǎn)指定已通過所述樹的此節(jié)點(diǎn)獲得入口的實(shí)體所具有的許可。一些樹具有不同的等級,其中所述樹的一節(jié)點(diǎn)處的一個或多個許可與在同一樹中更高或更低或相同等級處的另一節(jié)點(diǎn)處的一個或多個許可具有預(yù)定關(guān)系。通過要求實(shí)體遵守在每個所述節(jié)點(diǎn)處所指定的許可,此應(yīng)用程序的樹特征允許內(nèi)容擁有者控制哪些實(shí)體可采取動作以及每個所述實(shí)體可采取哪些動作,而不管所述樹是否具有不同等級。為了提高可由移動存儲媒體提供的商業(yè)價值,需要移動存儲裝置能夠同時支持一個以上應(yīng)用程序。當(dāng)兩個或兩個以上應(yīng)用程序正同時存取所述移動存儲裝置時,可能重要的是能夠分離所述兩個或兩個以上應(yīng)用程序的操作,以使得它們不以本文稱為串話的現(xiàn)象彼此發(fā)生干擾。兩個或兩個以上優(yōu)選分級樹控制對存儲器的存取。每個樹包含位于不同等級處的節(jié)點(diǎn),所述節(jié)點(diǎn)用于控制相應(yīng)一組實(shí)體對數(shù)據(jù)的存取,其中每個樹的節(jié)點(diǎn)指定一個或多個相應(yīng)實(shí)體存取存儲器數(shù)據(jù)的一個或多個許可。位于每個所述樹的一節(jié)點(diǎn)處的一個或多個許可與同一樹中更高或更低等級處的另一節(jié)點(diǎn)處的一個或多個許可具有預(yù)定關(guān)系。優(yōu)選地,在所述樹中的至少兩者之間沒有串話。
文檔編號G06F21/10GK101120356SQ200580048274
公開日2008年2月6日 申請日期2005年12月21日 優(yōu)先權(quán)日2004年12月21日
發(fā)明者法布里斯·約剛-庫侖, 邁克爾·霍爾茨曼, 巴赫曼·卡瓦米, 羅恩·巴爾齊萊 申請人:桑迪士克股份有限公司