国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      使用證書撤回列表的內(nèi)容控制系統(tǒng)和方法

      文檔序號:6455433閱讀:285來源:國知局

      專利名稱::使用證書撤回列表的內(nèi)容控制系統(tǒng)和方法
      技術(shù)領(lǐng)域
      :本發(fā)明大體涉及存儲器系統(tǒng),且明確地說涉及一種具有通用內(nèi)容控制特征的存儲器系統(tǒng)。
      背景技術(shù)
      :例如快閃存儲器卡的存儲裝置已成為用于存儲例如照片等數(shù)字內(nèi)容的首選存儲媒體??扉W存儲器卡還可用于分配其它類型的媒體內(nèi)容。此外,越來越多種類的主機裝置,例如計算機、數(shù)碼相機、蜂窩式電話、個人數(shù)字助理(PDA)和媒體播放器(例如,MP3播放器),現(xiàn)具有呈現(xiàn)存儲在快閃存儲器卡中的媒體內(nèi)容的能力。因此,快閃存儲器卡以及其它類型的移動存儲裝置存在巨大潛力變?yōu)橛糜诜峙鋽?shù)字內(nèi)容的廣泛使用的媒介物。數(shù)字內(nèi)容的所有者和分配者的重要關(guān)注點之一是,在內(nèi)容已經(jīng)通過從例如因特網(wǎng)的網(wǎng)絡(luò)下載或通過存儲裝置上的內(nèi)容的分配而被分配之后,應(yīng)僅允許經(jīng)授權(quán)方存取所述內(nèi)容。避免未經(jīng)授權(quán)存取的方式之一是使用一種用于在向一方準(zhǔn)予內(nèi)容存取之前建立所述方的身份的系統(tǒng)。已開發(fā)出例如公共密鑰基礎(chǔ)結(jié)構(gòu)(PKI)的系統(tǒng)以用于此目的。在PKI系統(tǒng)中,稱為證書授權(quán)方(CertificateAuthority,CA)的置信授權(quán)方發(fā)布證書,以證明個人和組織的身份。希望建立身份的證明的各方(例如組織和個人)可用適當(dāng)?shù)淖C據(jù)向所述證書授權(quán)方注冊,以證明其身份。在已經(jīng)向CA證明一方的身份之后,CA將發(fā)布證書給該方。所述證書通常包含發(fā)布所述證書的CA的名稱、所述證書被發(fā)布給予的一方的名稱、所述方的公共密鑰,以及通過CA的專用密鑰簽署(通常通過將所述公共密鑰的摘要加密)的所述方的公共密鑰。CA的專用密鑰和公共密鑰是相關(guān)的,使得使用公共密鑰加密的任何數(shù)據(jù)可以通過所述專用密鑰予以解密,且反之亦然。因此,專用密鑰和公共密鑰形成一密鑰對。在RSA安全性(RSASecurity)有限公司在2002年6月14日提出的"PKCS#1第2.1版:RSA密碼術(shù)標(biāo)準(zhǔn)(RSACryptographyStandard)"中提供對用于密碼術(shù)的專用和公共密鑰對的闡釋。CA的公共密鑰可公開取用。因此,當(dāng)一方希望檢驗由另一方所提供的證書是否真實時,檢驗方可使用解密算法,簡單地使用CA的公共密鑰來解密證書內(nèi)的公共密鑰的經(jīng)加密摘要。通常,還在所述證書中識別所述解密算法。如果所述證書內(nèi)的公共密鑰的經(jīng)加密摘要與所述證書內(nèi)的未經(jīng)加密公共密鑰的摘要匹配,那么基于對CA和CA的公共密鑰的真實性的信任,這證明所述證書內(nèi)的公共密鑰尚未被竄改且是真實的。為了檢驗一方的身份,通常檢驗方將發(fā)送詢問(例如,隨機數(shù)),且要求另一方發(fā)送其證書以及對所述詢問的響應(yīng)(即,以另一方的專用密鑰加密的隨機數(shù))。當(dāng)所述響應(yīng)和證書被接收時,檢驗方首先通過上述過程檢驗所述證書內(nèi)的公共密鑰是否真實。如果所述公共密鑰被檢驗為真實的,那么檢驗方可接著使用所述證書內(nèi)的公共密鑰來解密所述響應(yīng),且將結(jié)果與原始發(fā)送的隨機數(shù)進(jìn)行比較。如果其匹配,那么這意味著另一方確實具有正確的專用密鑰,且出于所述理由而已證明其身份。如果所述證書內(nèi)的公共密鑰不是真實的,或如果所述經(jīng)解密響應(yīng)未能與所述詢問匹配,那么驗證失敗。因此,希望證明其身份的一方將需要擁有所述證書和相關(guān)聯(lián)的專用密鑰兩者。通過上述機制,可能不彼此信任的兩方可使用上述過程,通過檢驗另一方的證書中另一方的公共密鑰而建立信任。來自國際電信聯(lián)盟(ITU)的電信標(biāo)準(zhǔn)化部門(ITU-T)的建議書X.509是規(guī)定證書框架的標(biāo)準(zhǔn)。關(guān)于證書及其使用的更詳細(xì)信息可參閱此標(biāo)準(zhǔn)。在行政機構(gòu)中和在大型組織中,為了便利起見,對稱為根CA的較高級CA來說,向若干較低級CA授權(quán)發(fā)布證書的責(zé)任可能是適當(dāng)?shù)?。舉例來說,在兩級式層級中,在最高級的根CA發(fā)布證書給較低級CA,以鑒定這些較低級授權(quán)方的公共密鑰是真實的。這些較低級授權(quán)方又通過上述注冊過程發(fā)布證書給各方。檢驗過程從證書鏈的頂端開始。檢驗方將首先使用所述根CA的所述公共密鑰(已知為真實的)以首先檢驗較低級CA的公共密鑰的真實性。一旦所述較低級CA的所述公共密鑰的真實性已經(jīng)被檢驗,就可通過使用所述較低級CA的經(jīng)檢驗的公共密鑰來檢驗較低級將證書發(fā)布到的一方的公共密鑰的真實性。接著,由所述根CA和較低級CA發(fā)布的證書形成身份正被檢驗的一方的兩個證書的證書鏈。證書層級當(dāng)然可包含兩個以上級,其中除了根CA以外的在較低級的每一CA從較高級CA導(dǎo)出其權(quán)限,且具有含有由較高級CA發(fā)布的其公共密鑰的證書。因此,為了檢驗另一方的公共密鑰的真實性,可能有必要追蹤到根CA的證書的路徑或鏈。換句話說,為了建立一方的身份,身份需要被證明的一方可能需要產(chǎn)生整個證書鏈,從其自身的證書一直到根CA證書。發(fā)布證書持續(xù)某一有效周期。然而,證書可能在有效周期期滿之前歸因于例如名稱改變、與證書發(fā)布者的關(guān)聯(lián)性改變、相應(yīng)專用密鑰受損害或可疑損害等事件而變得無效。7在這些情況下,證書授權(quán)方(CA)需要撤回證書。證書授權(quán)方周期性地公布證書撤回列表,其列出已被撤回的所有證書的序列號。在常規(guī)的證書檢驗方法中,期望驗證實體擁有或能夠檢索來自證書授權(quán)方(CA)的證書撤回列表且對照所述列表來檢查為驗證而呈現(xiàn)的證書的序列號,以確定所呈現(xiàn)的證書是否巳被撤回。在驗證實體為存儲器或存儲裝置的情況下,所述裝置本身尚未被用以檢索來自證書授權(quán)方的證書撤回列表。因此,為驗證而呈現(xiàn)的證書不能通過存儲器或存儲裝置來檢驗。因此,需要提供一種使存儲器或存儲裝置能夠檢驗證書而不必獲得證書撤回列表的改進(jìn)的系統(tǒng)。
      發(fā)明內(nèi)容存儲器裝置本身尚未被用于獲得證書撤回列表。因此,當(dāng)主機裝置向存儲裝置呈現(xiàn)證書以供驗證而不同時呈現(xiàn)與所述證書有關(guān)的證書撤回列表時,存儲裝置將不能確定由主機裝置呈現(xiàn)的證書是否在有關(guān)證書撤回列表上。因此,本發(fā)明的一個實施例基于以下認(rèn)識可通過其中主機裝置除了呈現(xiàn)證書外還呈現(xiàn)與所述證書有關(guān)的證書撤回列表的系統(tǒng)來避免此問題。以此方式,存儲裝置能夠通過檢査證書的識別(例如,在由主機裝置發(fā)送的證書撤回列表中的其序列號)來檢驗證書的真實性。如果證書撤回列表含有被撤回的證書的大量識別(例如,其序列號),那么所述列表可能相當(dāng)長。因此,在另一實施例中,由一裝置接收證書撤回列表的若干部分,且所述裝置循序地處理所述部分。所述裝置還搜索對在列表上的從主機接收的證書的參考或所述證書的識別,其中處理與搜索同時發(fā)生。由于處理與搜索同時發(fā)生,所以檢驗證書的過程變得較有效。如上所述,存儲裝置尚未被用以獲得證書撤回列表,而主機裝置已被用以獲得證書撤回列表。因此,在另一實施例中,雖然主機裝置需要呈現(xiàn)證書撤回列表連同供驗證主機裝置用的證書,但不需要使存儲裝置或存儲器裝置這樣做,所述存儲裝置或存儲器裝置將僅需要呈現(xiàn)證書。接著,由主機裝置獲得有關(guān)證書撤回列表以用于檢驗存儲器裝置證書。雖然有可能將主機裝置用以自由地獲得證書撤回列表,但許多消費者可能發(fā)現(xiàn)必須頻繁地(例如,每當(dāng)消費者希望存取存儲裝置中的經(jīng)加密內(nèi)容時)獲得證書撤回列表是十分麻煩的。因此,在另一實施例中,將至少一個證書撤回列表存儲于存儲器的公共區(qū)域中所述存儲器還存儲用戶或消費者可能希望存取的受保護(hù)數(shù)據(jù)或內(nèi)容。以此方式,消費者或用戶將無需每當(dāng)需要對存儲于存儲器中的內(nèi)容進(jìn)行存取時從證書授權(quán)方獲得證書撤回列表。事實上,消費者或用戶可僅僅檢索存儲于存儲器的公共區(qū)域中的至少一個8證書撤回列表,且接著轉(zhuǎn)向并將相同的證書撤回列表呈現(xiàn)給存儲器以供驗證和內(nèi)容存取。許多類型的存儲器的公共區(qū)域通常由主機裝置管理,而非由存儲器自身管理。本文參考的所有專利、專利申請案、論文、書籍、說明書、標(biāo)準(zhǔn)、其它出版物、文獻(xiàn)和內(nèi)容全文出于所有目的以引用的方式并入本文中。在所并入的出版物、文獻(xiàn)或內(nèi)容的任一者與本文獻(xiàn)的原文之間的術(shù)語的定義或使用中的任何不一致或沖突的范圍內(nèi),所述術(shù)語在本文獻(xiàn)中的定義或使用將為主導(dǎo)。圖1是與主機裝置通信的存儲器系統(tǒng)的方框圖,其可用于說明本發(fā)明。圖2是存儲器的不同分區(qū)以及存儲在不同分區(qū)中的未加密和加密文件的示意圖,其中對某些分區(qū)和加密文件的存取由存取策略和驗證程序控制,所述示意圖可用于說明本發(fā)明的不同實施例。圖3是說明存儲器中的不同分區(qū)的存儲器的示意圖。圖4是用于圖3所示的存儲器的不同分區(qū)的文件位置表的示意圖,其中分區(qū)中的一些文件經(jīng)加密,所述示意圖可用于說明本發(fā)明的不同實施例。圖5是存取受控記錄群組中的存取控制記錄和相關(guān)聯(lián)密鑰參考的示意圖,其可用于說明本發(fā)明的不同實施例。圖6是由存取受控記錄群組和存取受控記錄形成的樹結(jié)構(gòu)的示意圖,其可用于說明本發(fā)明的不同實施例。圖7是說明存取受控記錄群組的三個層級樹的樹的示意圖,其用以說明樹的形成過程。圖8A和8B是說明由主機裝置和存儲器裝置實行的過程的流程圖,所述存儲器裝置例如為用于創(chuàng)建并使用系統(tǒng)存取控制記錄的存儲器卡。圖9是說明使用系統(tǒng)存取控制記錄來創(chuàng)建存取受控記錄群組的過程的流程圖,其可用于說明不同實施例。圖IO是說明用于創(chuàng)建存取控制記錄的過程的流程圖。圖11是兩個存取控制記錄群組的示意圖,其可用于說明層級樹的特定應(yīng)用。圖12是說明特定權(quán)利的授權(quán)過程的流程圖。圖13是存取受控記錄群組和存取控制記錄的示意圖,其用以說明圖12的授權(quán)過程。圖14是說明創(chuàng)建用于加密和/或解密目的的密鑰的過程的流程圖。圖15是說明用于根據(jù)所存取受控記錄移除存取權(quán)和/或?qū)?shù)據(jù)存取的準(zhǔn)許的過程的9流程圖。圖16是說明用于當(dāng)存取權(quán)和/或?qū)Υ嫒〉臏?zhǔn)許已被刪除或已期滿時請求存取的過程的流程圖。圖17A和17B是說明針對用于準(zhǔn)予對密碼密鑰的存取的驗證和策略的規(guī)則結(jié)構(gòu)的組織的示意圖,其可用于說明本發(fā)明的不同實施例。圖18是說明用于根據(jù)策略控制對受保護(hù)信息的存取的替代方法的數(shù)據(jù)庫結(jié)構(gòu)的方框圖。圖19是說明使用密碼的驗證過程的流程圖。圖20是說明若干主機證書鏈的圖。圖21是說明若干裝置證書鏈的圖。圖22和23是說明用于單向和相互驗證方案的過程的協(xié)議圖。圖24是可用于說明本發(fā)明的一個實施例的證書鏈的圖。圖25是說明處于證書緩沖器之前的控制扇區(qū)中的由主機為將最后證書發(fā)送到存儲器裝置而發(fā)送的信息的表,其展示所述證書是證書鏈中的最后證書的指示,所述表用以說明本發(fā)明的另一實施例。圖26和27是說明分別針對其中存儲器卡正驗證主機裝置的驗證方案的卡和主機過程的流程圖。圖28和29是說明分別針對其中主機裝置正驗證存儲器卡的驗證方案的卡和主機過程的流程圖。圖30和31是說明分別由主機裝置和存儲器裝置實行的過程的流程圖,其中存儲在存儲器裝置中的證書撤回列表由主機裝置檢索,所述流程圖用以說明本發(fā)明的又一實施例。圖32是展示列表中的字段的證書撤回列表的圖,其用以說明本發(fā)明的再一實施例。圖33和34是說明分別用于使用證書撤回列表檢驗證書的卡和主機過程的流程圖。圖35是說明用于卡對發(fā)送到主機的數(shù)據(jù)進(jìn)行簽署以及用于解密來自主機的數(shù)據(jù)的卡過程的流程圖。圖36是說明其中卡對發(fā)送到主機的數(shù)據(jù)進(jìn)行簽署的主機過程的流程圖。圖37是說明其中主機將經(jīng)加密數(shù)據(jù)發(fā)送到存儲器卡的主機過程的流程圖。圖38和39是說明分別用于一般信息査詢和謹(jǐn)慎信息查詢的過程的流程圖。圖40A是連接到主機裝置的存儲器裝置(例如,快閃存儲器卡)中的系統(tǒng)結(jié)構(gòu)的功能方框圖,其用以說明本發(fā)明的一實施例。圖40B是圖40A的SSM核心的內(nèi)部軟件模塊的功能方框圖。圖41是用于產(chǎn)生一次性密碼的系統(tǒng)的方框圖。圖42是說明一次性密碼(OTP)種子供應(yīng)和OTP產(chǎn)生的功能方框圖。圖43是說明種子供應(yīng)階段的協(xié)議圖。圖44是說明一次性密碼產(chǎn)生階段的協(xié)議圖。圖45是說明DRM系統(tǒng)的功能方框圖。圖46是說明用于許可證供應(yīng)和內(nèi)容下載的過程的協(xié)議圖,其中密鑰在許可證對象中提供。圖47是說明用于重放操作的過程的協(xié)議圖。圖48是說明用于許可證供應(yīng)和內(nèi)容下載的過程的協(xié)議圖,其中密鑰不在許可證對象中提供。圖式說明本發(fā)明各方面的各種實施例中的特征。為了描述的簡單起見,本申請案中,相同組件由相同標(biāo)號標(biāo)記。具體實施例方式其中可實施本發(fā)明各方面的實例存儲器系統(tǒng)由圖1的方框圖說明。如圖l所示,存儲器系統(tǒng)IO包含中央處理單元(CPU)12、緩沖器管理單元(BMU)14、主機接口模塊(HIM)16和快閃接口模塊(FIM)18、快閃存儲器20以及外圍存取模塊(PAM)22。存儲器系統(tǒng)10通過主機接口總線26和端口26a與主機裝置24通信??赡転镹AND型的快閃存儲器20為主機裝置24提供數(shù)據(jù)存儲裝置,主機裝置24可以是數(shù)碼相機、個人計算機、個人數(shù)字助理(PDA)、數(shù)字媒體播放器(例如,MP-3播放器)、蜂窩式電話、機頂盒或其它數(shù)字裝置或器具。用于CPU12的軟件代碼也可存儲在快閃存儲器20中。FIM18通過快閃接口總線28和端口28a連接到快閃存儲器20。HIM16適于連接到主機裝置。外圍存取模塊22選擇適當(dāng)?shù)目刂破髂K(例如,F(xiàn)IM、HIM和BMU)以用于與CPU12通信。在一個實施例中,虛線框內(nèi)的系統(tǒng)10的所有組件可封閉在單一單元中(例如,存儲器卡或棒IO'中)且優(yōu)選地被囊封。存儲器系統(tǒng)10可移除地連接到主機裝置24,使得系統(tǒng)10中的內(nèi)容可由許多不同主機裝置的每一者存取。在下文的描述中,存儲器系統(tǒng)10也稱為存儲器裝置10,或簡爭.地稱為存儲器裝置或裝置。雖然本文中參考快閃存儲器說明本發(fā)明,但本發(fā)明也可應(yīng)用于其它類型的存儲器,例如磁盤、光學(xué)CD,以及所有其它類型的可重寫非易失性存儲器系統(tǒng)。緩沖器管理單元14包含主機直接存儲器存取(HDMA)32、快閃直接存儲器存取(FDMA)34、仲裁器36、緩沖器隨機存取存儲器(BRAM)38和加密引擎40。仲裁器36是共享總線仲裁器,使得在任何時間僅一個主控裝置或起始器(其可為HDMA32、FDMA34或CPU12)可為處于活動狀態(tài)的,且從屬裝置或目標(biāo)為BRAM38。仲裁器負(fù)責(zé)將適當(dāng)起始器請求多路傳輸?shù)紹RAM38。HDMA32和FDMA34負(fù)責(zé)在HIM16、FIM18與BRAM38或CPU隨機存取存儲器(CPURAM)12a之間傳送的數(shù)據(jù)。HDMA32和FDMA34的操作是常規(guī)的且本文中不需要詳細(xì)描述。BRAM38用于存儲主機裝置24與快閃存儲器20之間傳遞的數(shù)據(jù)。HDMA32和FDMA34負(fù)責(zé)在HIM16/FIM18與BRAM38或CPURAM12a之間傳遞數(shù)據(jù)且用于指示扇區(qū)完成。在一個實施例中,存儲器系統(tǒng)10產(chǎn)生用于加密和/或解密的密鑰值,其中此值優(yōu)選地實質(zhì)上不可由例如主機裝置24等外部裝置存取?;蛘?,也可在系統(tǒng)10外部(例如由許可證服務(wù)器)產(chǎn)生密鑰值,并將其發(fā)送到系統(tǒng)IO。不管如何產(chǎn)生密鑰值,一旦密鑰值存儲在系統(tǒng)10中,就只有經(jīng)驗證實體將能夠存取密鑰值。然而,通常逐個文件地進(jìn)行加密和解密,因為主機裝置以文件的形式讀取數(shù)據(jù)和將數(shù)據(jù)寫入到存儲器系統(tǒng)10。如同許多其它類型的存儲裝置那樣,存儲器裝置IO不管理文件。雖然存儲器20確實存儲文件分配表(FAT)(其中識別文件的邏輯地址),但FAT通常由主機裝置24而不由控制器12存取和管理。因此,為了加密特定文件中的數(shù)據(jù),控制器12必須依賴于主機裝置來發(fā)送存儲器20中的文件中的數(shù)據(jù)的邏輯地址,使得系統(tǒng)IO可使用僅可由系統(tǒng)IO使用的密鑰值找到并加密和/或解密特定文件的數(shù)據(jù)。為了向主機裝置24和存儲器系統(tǒng)10兩者提供句柄以參考相同密鑰來用密碼方法處理文件中的數(shù)據(jù),主機裝置提供針對由系統(tǒng)10產(chǎn)生或發(fā)送到系統(tǒng)10的密鑰值的每一者的參考,其中此類參考可簡單地為密鑰ID。因此,主機24將由系統(tǒng)IO用密碼方法處理的每一文件與密鑰ID相關(guān)聯(lián),且系統(tǒng)IO將用于用密碼方法處理數(shù)據(jù)的每一密鑰值與由主機提供的密鑰ID相關(guān)聯(lián)。因此,當(dāng)主機請求用密碼方法處理數(shù)據(jù)時,其將把所述請求連同密鑰ID連同待從存儲器20獲取或存儲在存儲器20中的數(shù)據(jù)的邏輯地址一起發(fā)送到系統(tǒng)10。系統(tǒng)10產(chǎn)生或接收密鑰值并將由主機24提供的密鑰ID與此值相關(guān)聯(lián),且執(zhí)行密碼處理。以此方式,不需要在存儲器系統(tǒng)IO操作的方式方面作出變化,同時允許其使用密鑰完全控制密碼處理,包含對密鑰值的專有存取。換句話說,一旦密鑰值存儲在系統(tǒng)10中或由系統(tǒng)10產(chǎn)生,系統(tǒng)就繼續(xù)允許主機24通過擁有對FAT的專有控制來管理文件,同時其維持針對對用于密碼處理的密鑰值的管理的專有控制。在密鑰值存儲在存12儲器系統(tǒng)10中之后,主機裝置24與對用于數(shù)據(jù)的密碼處理的密鑰值的管理無關(guān)。由主機24提供的密鑰ID和發(fā)送到存儲器系統(tǒng)或由存儲器系統(tǒng)產(chǎn)生的密鑰值形成一量的兩個屬性,下文在實施例的一者中稱為"內(nèi)容加密密鑰"或CEK。雖然主機24可使每一密鑰ID與一個或一個以上文件相關(guān)聯(lián),但主機24也可使每一密鑰ID與未經(jīng)組織的數(shù)據(jù)或以任何方式組織的數(shù)據(jù)相關(guān)聯(lián),且不限于組織為完整文件的數(shù)據(jù)。為了使用戶或應(yīng)用程序獲得對系統(tǒng)IO中的受保護(hù)內(nèi)容或區(qū)域的存取,其將需要使用向系統(tǒng)IO預(yù)先注冊的憑證來驗證。憑證與以此憑證準(zhǔn)予給特定用戶或應(yīng)用程序的存取權(quán)相聯(lián)系。在預(yù)先注冊過程中,系統(tǒng)IO存儲用戶或應(yīng)用程序的身份和憑證以及由用戶或應(yīng)用程序確定并通過主機24提供的與此身份和憑證相關(guān)聯(lián)的存取權(quán)的記錄。在預(yù)先注冊已完成之后,當(dāng)用戶或應(yīng)用程序請求將數(shù)據(jù)寫入到存儲器20時,其將需要通過主機裝置提供其身份和憑證、用于加密數(shù)據(jù)的密鑰ID,以及經(jīng)加密數(shù)據(jù)將被存儲到的邏輯地址。系統(tǒng)IO產(chǎn)生或接收密鑰值并使此值與由主機裝置提供的密鑰ID相關(guān)聯(lián),且將針對用于加密待寫入的數(shù)據(jù)的密鑰值的密鑰ID存儲在其針對此用戶或應(yīng)用程序的記錄或表中。其接著加密數(shù)據(jù)并將經(jīng)加密數(shù)據(jù)及其產(chǎn)生或接收的密鑰值存儲在由主機指定的地址處。當(dāng)用戶或應(yīng)用稈序請求從存儲器20讀取經(jīng)加密數(shù)據(jù)時,其將需要提供其身份和憑證、針對先前用于加密所請求的數(shù)據(jù)的密鑰的密鑰ID,以及經(jīng)加密數(shù)據(jù)被存儲到的邏輯地址。系統(tǒng)IO將接著將由主機提供的用戶或應(yīng)用程序身份和憑證與存儲在其記錄中的用戶或應(yīng)用程序身份和憑證進(jìn)行匹配。如果它們匹配,那么系統(tǒng)IO將接著從其存儲器中獲取與由用戶或應(yīng)用程序提供的密鑰ID相關(guān)聯(lián)的密鑰值,使用密鑰值解密存儲在由主機裝置指定的地址處的數(shù)據(jù),并將經(jīng)解密數(shù)據(jù)發(fā)送到用戶或應(yīng)用程序。通過將驗證憑證與對用于密碼處理的密鑰的管理分離,則有可能在不共享憑證的情況下共享存取數(shù)據(jù)的權(quán)利。因此,具有不同憑證的用戶或應(yīng)用程序的群組可存取用于存取相同數(shù)據(jù)的相同密鑰,而此群組外的用戶不具有存取權(quán)。雖然群組內(nèi)的所有用戶或應(yīng)用程序可存取相同數(shù)據(jù),但其可能仍具有不同權(quán)利。因此,一些用戶或應(yīng)用程序可能具有只讀存取權(quán),而其它用戶或應(yīng)用程序可能僅具有寫入存取權(quán),而另外其它用戶或應(yīng)用程序可能具有兩者。由于系統(tǒng)IO維持用戶或應(yīng)用程序身份和憑證、其能夠存取的密鑰ID以及與密鑰ID的每一者相關(guān)聯(lián)的存取權(quán)的記錄,所以系統(tǒng)10有可能針對特定用戶或應(yīng)用程序添加或刪除密鑰ID并改變與此類密鑰ID相關(guān)聯(lián)的存取權(quán),從一個用戶或應(yīng)用程序向另一用戶或應(yīng)用程序授權(quán)存取權(quán),或甚至刪除或添加用于用戶或應(yīng)用程序的記錄或表,所有均如經(jīng)適當(dāng)驗證的主機裝置所控制。所存儲的記錄可指定需要安全通道用于存13取某些密鑰??墒褂脤ΨQ或不對稱算法以及密碼來完成驗證。尤其重要的是,存儲器系統(tǒng)IO中的安全內(nèi)容的便攜性。在其中對密鑰值的存取由存儲器系統(tǒng)控制的實施例中,當(dāng)存儲器系統(tǒng)或并入有所述系統(tǒng)的存儲裝置從一個外部系統(tǒng)轉(zhuǎn)移到另一外部系統(tǒng)時,維持存儲在其中的內(nèi)容的安全性。不管密鑰由存儲器系統(tǒng)產(chǎn)生還是源自存儲器系統(tǒng)外部,外部系統(tǒng)均不能存取系統(tǒng)IO中的此類內(nèi)容,除非其已用完全由存儲器系統(tǒng)控制的方式經(jīng)驗證。即使在如此經(jīng)驗證之后,存取也完全由存儲器系統(tǒng)控制,且外部系統(tǒng)僅可以根據(jù)存儲器系統(tǒng)中的預(yù)設(shè)記錄而控制的方式存取。如果請求不遵守此類記錄,那么請求將被拒絕。為了提供保護(hù)內(nèi)容方面的較大靈活性,預(yù)想下文中稱為分區(qū)的存儲器的某些區(qū)域僅可由經(jīng)適當(dāng)驗證的用戶或應(yīng)用程序來存取。當(dāng)與基于密鑰的數(shù)據(jù)加密的上述特征組合時,系統(tǒng)IO提供較大的數(shù)據(jù)保護(hù)能力。如圖2所示,快閃存儲器20可將其存儲容量劃分為若干分區(qū)用戶區(qū)域或分區(qū)和定制分區(qū)。用戶區(qū)域或分區(qū)PO可由所有用戶和應(yīng)用程序在不驗證的情況下存取。雖然存儲在用戶區(qū)域中的數(shù)據(jù)的所有位值可由任何應(yīng)用程序或用戶讀取或?qū)懭?如果數(shù)據(jù)讀取經(jīng)加密的話),但沒有解密權(quán)限的用戶或應(yīng)用程序?qū)⒉荒艽嫒∮纱鎯υ谟脩魠^(qū)域中的位值表示的信息。這(例如)由存儲在用戶區(qū)域PO中的文件102和104說明。同樣存儲在用戶區(qū)域中的是未加密文件(例如,106),其可由所有應(yīng)用程序和用戶讀取和理解。因此,象征性地,經(jīng)加密的文件展示為具有與其相關(guān)聯(lián)的例如用于文件102和104的鎖。雖然用戶區(qū)域PO中的經(jīng)加密文件無法由未經(jīng)授權(quán)應(yīng)用程序或用戶理解,但此類應(yīng)用程序或用戶可能仍能夠刪除或破壞文件,這對于一些應(yīng)用來說可能是不合需要的。出于此目的,存儲器20還包含受保護(hù)定制分區(qū),例如分區(qū)P1和P2,其不能在沒有預(yù)先驗證的情況下被存取。下文中闡釋本申請案中的實施例中準(zhǔn)許的驗證過程。同樣如圖2中所說明,多種用戶或應(yīng)用程序可存取存儲器20中的文件。因此,用戶1和2以及應(yīng)用程序1-4(在裝置上運行)在圖2中展示。在允許這些實體存取存儲器20中的受保護(hù)內(nèi)容之前,其首先以下文中闡釋的方式由驗證過程驗證。在此過程中,正請求存取的實體需要在主機側(cè)被識別以實現(xiàn)基于角色的存取控制。因此,請求存取的實體首先通過供應(yīng)例如"我是應(yīng)用程序2,且我希望讀取文件1"等信息來識別其自身??刂破?2接著將身份、驗證信息和請求與存儲在存儲器20或控制器12中的記錄進(jìn)行匹配。如果滿足所有要求,那么接著向此實體準(zhǔn)予存取權(quán)。如圖2中所說明,允許用戶1從分區(qū)Pl中的文件101讀取和向其進(jìn)行寫入,但除了用戶1具有從PO中的文件106讀取和向其進(jìn)行寫入的不受限權(quán)利外,用戶1僅可讀取文件102和104。另一方面,不允許用戶2存取文件101和104但用戶2具有對文件102的讀取和寫入存取權(quán)。如圖2中所指示,用戶l和2具有相同登錄算法(AES),而應(yīng)用程序l和3具有不同登錄算法(例如,RSA和001001),其也不同于用戶l和2的登錄算法。安全存儲應(yīng)用程序(SSA)是存儲器系統(tǒng)IO的安全性應(yīng)用,且說明本發(fā)明的一實施例,其可用于實施上文識別的特征中的許多特征。SSA可體現(xiàn)為軟件或計算機代碼,其中數(shù)據(jù)庫存儲在存儲器20或CPU12中的非易失性存儲器(未圖示)中,且被讀取到RAM12a中并由CPU12執(zhí)行。下表中陳述參考SSA使用的首字母縮略詞<table>tableseeoriginaldocumentpage15</column></row><table>SSA系統(tǒng)描述數(shù)據(jù)安全性、完整性和存取控制是SSA的主要作用。數(shù)據(jù)是原本會清楚地存儲在某種大容量存儲裝置上的文件。SSA系統(tǒng)位于存儲系統(tǒng)的頂部且為所存儲的主機文件添加安全性層,并通過下文描述的安全性數(shù)據(jù)結(jié)構(gòu)提供安全性功能。SSA的主要任務(wù)是管理與存儲器中存儲(且安全)的內(nèi)容相關(guān)聯(lián)的不同權(quán)利。存儲器應(yīng)用程序需要管理多個用戶和對多個所存儲內(nèi)容的內(nèi)容權(quán)利。主機應(yīng)用程序從其側(cè)看到此類應(yīng)用程序可見的驅(qū)動程序和分區(qū),以及管理并描繪存儲裝置上所存儲文件的位置的文件分配表(FAT)。在此情況下,存儲裝置使用劃分為分區(qū)的NAND快閃芯片,但也可使用其它移動存儲裝置且其在本發(fā)明的范圍內(nèi)。這些分區(qū)是連續(xù)的邏輯地址線程,其中開始和結(jié)束地址界定其邊界。因此,可視需要借助軟件(例如,存儲在存儲器20中的軟件)向?qū)﹄[藏分區(qū)的存取強加限制,所述軟件使此類限制與此類邊界內(nèi)的地址相關(guān)聯(lián)。SSA可通過由其管理的分區(qū)的邏輯地址邊界來完全辨別分區(qū)。SSA系統(tǒng)使用分區(qū)來物理上保護(hù)數(shù)據(jù)使其免于未經(jīng)授權(quán)的主機應(yīng)用程序的影響。對于主機,分區(qū)是界定在其中存儲數(shù)據(jù)文件的專門空間的機制。這些分區(qū)可為公共的,其中具有對存儲裝置的存取權(quán)的任何人均可了解并意識到裝置上分區(qū)的存在;或者分區(qū)為專用或隱藏的,其中僅選定的主機應(yīng)用程序可存取并意識到其存在于存儲裝置中。圖3是說明存儲器的分區(qū)P0、Pl、P2和P3(顯然,可使用少于或多于四個分區(qū))的存儲器的示意圖,其中PO是可由任何實體在不驗證的情況下存取的公共分區(qū)。專用分區(qū)(例如,Pl、P2或P3)隱藏對其內(nèi)部的文件的存取。通過防止主機存取所述分區(qū),快閃裝置(例如,快閃卡)給予對分區(qū)內(nèi)部的數(shù)據(jù)文件的保護(hù)。然而,這種保護(hù)通過向?qū)Υ鎯υ诜謪^(qū)內(nèi)的邏輯地址處的數(shù)據(jù)的存取強加限制而涵蓋了駐存在隱藏分區(qū)中的所有文件。換句話說,所述限制與某一邏輯地址范圍相關(guān)聯(lián)。能夠存取所述分區(qū)的所有用戶/主機將具有對內(nèi)部所有文件的不受限存取權(quán)。為了將不同文件(或文件群組)彼此隔離,SSA系統(tǒng)使用密鑰和密鑰參考或密鑰ID提供每文件或文件群組的另一水平的安全性和完整性。用于加密不同存儲器地址處的數(shù)據(jù)的特定密鑰值的密鑰參考或密鑰ID可類推到含有經(jīng)加密數(shù)據(jù)的容器或域。出于這個原因,在圖4中,密鑰參考或密鑰ID(例如,"密鑰1"和"密鑰2")用圖形展示為圍繞使用與密鑰ID相關(guān)聯(lián)的密鑰值加密的文件的區(qū)域。參看圖4,舉例來說,文件A可由所有實體在不驗證的情況下存取,因為其展示為未被任何密鑰ID封閉。盡管公共分區(qū)中的文件B可由所有實體讀取或重寫,但其含有以具有ID"密鑰1"的密鑰加密的數(shù)據(jù),使得文件B中所含的信息不可由實體存取,除非此實體具有對此密鑰的存取權(quán)。以此方式,使用密鑰值和密鑰參考或密鑰ID僅提供邏輯保護(hù),這與由上文描述的分區(qū)提供的保護(hù)類型形成對比。因此,可存取分區(qū)(公共或?qū)S?的任何主機能夠讀取或?qū)懭胝麄€分區(qū)中的數(shù)據(jù),包含經(jīng)加密數(shù)據(jù)。然而,由于數(shù)據(jù)經(jīng)加密,所以未經(jīng)授權(quán)的用戶僅可破壞它。其優(yōu)選地不能在不被檢測到的情況下改變數(shù)據(jù)。通過限制對加密和/或解密密鑰的存取權(quán),此特征可僅允許經(jīng)授權(quán)的實體使用所述數(shù)據(jù)。文件B和C也在P0中使用具有密鑰ID"密鑰2"的密鑰加密??赏ㄟ^使用內(nèi)容加密密鑰(CEK)的對稱加密方法(每CEK—種方法)來提供數(shù)據(jù)機密性和完整性。在SSA實施例中,CEK中的密鑰值由僅在內(nèi)部使用的快閃裝置(例如,快閃卡)產(chǎn)生或接收,并對于外界保持作為秘密。經(jīng)加密或譯成密碼的數(shù)據(jù)也可為散列的或密碼被鏈?zhǔn)椒謮K以確保數(shù)據(jù)完整性。并非分區(qū)中的所有數(shù)據(jù)由不同密鑰加密并與不同密鑰ID相關(guān)聯(lián)。公共或用戶文件中或操作系統(tǒng)區(qū)域(即,F(xiàn)AT)中的某些邏輯地址可能不與任何密鑰或密鑰參考相關(guān)聯(lián),且因此可由可存取分區(qū)本身的任何實體使用。調(diào)用創(chuàng)建密鑰和分區(qū)以及從其中進(jìn)行數(shù)據(jù)寫入和讀取或使用密鑰的能力的實體需要通過存取控制記錄(ACR)登錄SSA系統(tǒng)。SSA系統(tǒng)中的ACR的特權(quán)稱為動作。每個ACR可具有許可以執(zhí)行以下三個類別的動作創(chuàng)建分區(qū)和密鑰/密鑰ID、存取分區(qū)和密鑰,以及創(chuàng)建/更新其它ACR。ACR以群組來組織,稱為ACR群組或AGP。一旦ACR已經(jīng)成功驗證,SSA系統(tǒng)就打開一對話,通過所述對話可執(zhí)行ACR的動作的任一者。ACR和AGP是用于根據(jù)策略控制對分區(qū)和密鑰的存取的安全性數(shù)據(jù)結(jié)構(gòu)。用戶分區(qū)SSA系統(tǒng)管理一個或一個以上公共分區(qū),也稱為用戶分區(qū)。此分區(qū)存在于存儲裝置上,且是可通過存儲裝置的標(biāo)準(zhǔn)讀取寫入命令存取的分區(qū)。獲得關(guān)于分區(qū)大小以及其在裝置上的存在狀態(tài)的信息優(yōu)選地不能向主機系統(tǒng)隱藏。SSA系統(tǒng)使得能夠通過標(biāo)準(zhǔn)讀取寫入命令或SSA命令存取此分區(qū)。因此,存取分區(qū)優(yōu)選地不可限于特定ACR。然而,SSA系統(tǒng)可使主機裝置能夠?qū)⒋嫒∠抻谟脩舴諶??蓚€別地啟用/停用讀取和寫入存取。允許所有四個組合(例如,僅寫入、僅讀取(寫入保護(hù))、讀取和寫入,以及無存取)。SSA系統(tǒng)使ACR能夠?qū)⒚荑€ID與用戶分區(qū)內(nèi)的文件相關(guān)聯(lián),并使用與此類密鑰ID相關(guān)聯(lián)的密鑰來加密個別文件。存取用戶分區(qū)內(nèi)的經(jīng)加密文件以及設(shè)定對分區(qū)的存取權(quán)將使用SSA命令集來完成。以上特征也適用于未組織為文件的數(shù)據(jù)。SSA分區(qū)這些是僅可通過SSA命令存取的隱藏(對未經(jīng)授權(quán)方隱藏)分區(qū)。除了通過借助登錄到ACR上建立的對話(下文描述)來存取SSA分區(qū)之外,SSA系統(tǒng)將優(yōu)選地不允許主機裝置存取SSA分區(qū)。類似地,優(yōu)選地,SSA將不提供關(guān)于SSA分區(qū)的存在、大小和存取許可的信息,除非此請求通過所建立的對話而到來。對分區(qū)的存取權(quán)是從ACR許可導(dǎo)出的。一旦ACR登錄到SSA系統(tǒng)中,其就可與其它ACR共享分區(qū)(下文描述)。當(dāng)創(chuàng)建分區(qū)時,主機為分區(qū)提供參考名稱或ID(例如,圖3和4中的P0-P3)。此參考用于對分區(qū)的進(jìn)一步讀取和寫入命令中。存儲裝置的分割裝置的所有可用存儲容量優(yōu)選地分配到用戶分區(qū)和當(dāng)前配置的SSA分區(qū)。因此,任17何再分割操作可能涉及現(xiàn)有分區(qū)的重新配置。對裝置容量(所有分區(qū)的大小之和)的凈變化將為零。裝置存儲器空間中的分區(qū)的ID由主機系統(tǒng)界定。主機系統(tǒng)可將現(xiàn)有分區(qū)的一者再分割為兩個較小分區(qū)或?qū)蓚€現(xiàn)有分區(qū)(其可能或可能不鄰近)合并為一個。經(jīng)劃分或合并的分區(qū)中的數(shù)據(jù)可由主機斟酌而擦除或保持不受影響。由于存儲裝置的再分割可能導(dǎo)致數(shù)據(jù)損失(因為其在存儲裝置的邏輯地址空間中被擦除或到處移動),所以SSA系統(tǒng)管理對再分割的嚴(yán)格限制。僅允許駐存在根AGP(下文闡釋)中的ACR發(fā)布再分割命令,且其僅可參考其所擁有的分區(qū)。由于SSA系統(tǒng)不知道數(shù)據(jù)在分區(qū)中如何組織(FAT或其它文件系統(tǒng)結(jié)構(gòu)),所以主機的責(zé)任是在再分割裝置的任何時間重建這些結(jié)構(gòu)。用戶分區(qū)的再分割將改變主機OS所看到的此分區(qū)的大小和其它屬性。再分割之后,主機系統(tǒng)的責(zé)任是確保SSA系統(tǒng)中的任何ACR不在參考非現(xiàn)有分區(qū)。如果這些ACR未被適當(dāng)刪除或更新,那么代表這些ACR存取非現(xiàn)有分區(qū)的將來嘗試將被系統(tǒng)檢測到并拒絕。關(guān)于刪除的密鑰和密鑰ID予以類似注意。密鑰、密鑰ID和邏輯保護(hù)當(dāng)將文件寫入到某一隱藏分區(qū)時,其向一般公眾隱藏。但是,一旦一實體(敵對或不敵對)獲得了解和對此分區(qū)的存取權(quán),文件就變得可用且容易看見。為了進(jìn)一步保護(hù)文件,SSA可在隱藏分區(qū)中對其進(jìn)行加密,其中用于存取用于對文件進(jìn)行解密的密鑰的憑證優(yōu)選地不同于那些用于存取分區(qū)的憑證。由于文件完全由主機控制和管理的事實,所以使CEK與文件相關(guān)聯(lián)成為問題。將文件鏈接到SSA確認(rèn)的某一內(nèi)容(密鑰ID)將對此進(jìn)行校正。因此,當(dāng)SSA創(chuàng)建密鑰時,主機使此密鑰的密鑰ID與使用由SSA創(chuàng)建的密鑰加密的數(shù)據(jù)相關(guān)聯(lián)。如果所述密鑰連同密鑰ID—起被發(fā)送到SSA,那么所述密鑰和密鑰ID可容易地彼此相關(guān)聯(lián)。密鑰值和密鑰ID提供邏輯安全性。與給定密鑰ID相關(guān)聯(lián)的所有數(shù)據(jù)(不管其位置如何)用內(nèi)容加密密鑰(CEK)中的相同密鑰值譯成密碼,所述CEK的參考名稱或密鑰ID在由主機應(yīng)用程序創(chuàng)建時唯一地提供。如果一實體獲得對隱藏分區(qū)的存取權(quán)(通過經(jīng)由ACR驗證)并希望讀取或?qū)懭氪朔謪^(qū)內(nèi)的經(jīng)加密文件,那么其需要能夠存取與所述文件相關(guān)聯(lián)的密鑰ID。當(dāng)準(zhǔn)予對針對此密鑰ID的密鑰的存取時,SSA將密鑰值加載于與此密鑰ID相關(guān)聯(lián)的CEK中,并在將數(shù)據(jù)發(fā)送到主機之前對數(shù)據(jù)進(jìn)行解密,或在將數(shù)據(jù)寫入到快閃存儲器20之前對數(shù)據(jù)進(jìn)行加密。在一個實施例中,SSA系統(tǒng)隨機創(chuàng)建與密鑰ID相關(guān)聯(lián)的CEK中的密鑰值一次,并由SSA系統(tǒng)維持所述密鑰值。SSA系統(tǒng)外部沒有任一方了解或能夠存取CEK中的此密鑰值。外界僅提供并使用參考或密鑰ID,而不是CEK中的密鑰值。密鑰值完全由SSA管理且優(yōu)選地僅可由SSA存取?;蛘?,可將密鑰提供給SSA系統(tǒng)。SSA系統(tǒng)使用以下密碼模式中的任一者(用戶定義)來保護(hù)與密鑰ID相關(guān)聯(lián)的數(shù)據(jù)(所使用的實際密碼算法以及CEK中的密鑰值由系統(tǒng)控制且不揭示給外界)區(qū)塊模式-數(shù)據(jù)劃分為區(qū)塊,每一區(qū)塊經(jīng)個別加密。此模式通常視為不太安全且容易受字典攻擊。然而,其將允許用戶隨機存取數(shù)據(jù)區(qū)塊中的任一者。鏈接模式-數(shù)據(jù)劃分為區(qū)塊,所述區(qū)塊在加密過程期間鏈接。每個區(qū)塊被用作對下一區(qū)塊的加密過程的輸入中的一個輸入。在此模式中(盡管視為較安全的),從開始到結(jié)束循序?qū)懭牒妥x取數(shù)據(jù),從而創(chuàng)建可能不可被用戶接受的額外開銷。散列的-額外創(chuàng)建了可用于證實數(shù)據(jù)完整性的數(shù)據(jù)摘要的鏈模式。ACR和存取控制SSA經(jīng)設(shè)計以處置多個應(yīng)用程序,其中所述應(yīng)用程序的每一者在系統(tǒng)數(shù)據(jù)庫中表示為節(jié)點樹。通過確保樹分支之間無串?dāng)_來實現(xiàn)應(yīng)用程序之間的相互排斥。為了獲得對SSA系統(tǒng)的存取權(quán),實體需要經(jīng)由系統(tǒng)的ACR的一者建立連接。SSA系統(tǒng)根據(jù)用戶選擇與其連接的ACR中內(nèi)嵌的定義來管理登錄程序。ACR是到達(dá)SSA系統(tǒng)的個別登錄點。ACR保持登錄憑證和驗證方法。同樣駐存在記錄中的是SSA系統(tǒng)內(nèi)的登錄許可,其中是讀取和寫入特權(quán)。這在圖5中說明,圖5說明同一AGP中的n個ACR。這意味著n個ACR中的至少一些可共享對同一密鑰的存取權(quán)。因此,ACR#1和ACR并n共享對具有密鑰ID"密鑰3"的密鑰的存取權(quán),其中ACR并1禾BACR井n是ACRID,且"密鑰3"是用于加密與"密鑰3"相關(guān)聯(lián)的數(shù)據(jù)的密鑰的密鑰ID。同一密鑰還可用于加密和/或解密多個文件,或多個數(shù)據(jù)集。SSA系統(tǒng)支持到系統(tǒng)上的若干類型的登錄,其中驗證算法和用戶憑證可變化,如一旦用戶成功登錄則用戶在系統(tǒng)中的特權(quán)可變化那樣。圖5再次說明不同的登錄算法和憑證。ACR弁1指定密碼登錄算法且密碼作為憑證,而ACR弁2指定PKI(公共密鑰基礎(chǔ)結(jié)構(gòu))登錄算法且公共密鑰作為憑證。因此,為了登錄,實體將需要提供有效的ACRID,以及正確的登錄算法和憑證。一旦實體已登錄到SSA系統(tǒng)的ACR中,就在與ACR相關(guān)聯(lián)的許可控制記錄(PCR)中界定其許可(其使用SSA命令的權(quán)利)。在圖5中,根據(jù)所展示的PCR,ACR#1準(zhǔn)予19對與"密鑰3"相關(guān)聯(lián)的數(shù)據(jù)的僅讀取許可,且ACR弁2準(zhǔn)予讀取和寫入與"密鑰5"相關(guān)聯(lián)的數(shù)據(jù)的許可。不同的ACR可在系統(tǒng)中共享共同興趣和特權(quán),例如用以讀取和寫入的密鑰方面的共同興趣和特權(quán)。為了實現(xiàn)這一目的,具有共同之處的ACR分組為AGP—ACR群組。因此,ACR#1和ACR弁n共享對具有密鑰ID"密鑰3"的密鑰的存取權(quán)。AGP和其內(nèi)部的ACR以層級樹組織,且因此除了創(chuàng)建保持敏感數(shù)據(jù)安全的安全密鑰以外,ACR可優(yōu)選地還創(chuàng)建對應(yīng)于其密鑰ID/分區(qū)的其它ACR實體。這些ACR子代將具有與其父代(創(chuàng)建者)相同或少于其父代的許可,且可被給予針對父代ACR自身創(chuàng)建的密鑰的許可。不言而喻,子代ACR獲得對其所創(chuàng)建的任何密鑰的存取許可。這在圖6中說明。因此,AGP120中的所有ACR均由ACR122創(chuàng)建,且此類ACR中的兩個從ACR122繼承對存取與"密鑰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時,AGP名稱提供到SSA系統(tǒng)。如果所提供的AGP名稱已存在于系統(tǒng)中,那么SSA將拒絕創(chuàng)建操作。AGP用于管理對如以下段落中將描述的存取和管理許可的授權(quán)的限制。圖6中的兩個樹所提供的功能之一是管理完全分離實體(例如,兩個不同應(yīng)用程序,或兩個不同計算機用戶)的存取。出于此類目的,可能重要的是,兩個存取過程大體彼此獨立(即,實質(zhì)上無串?dāng)_),即使兩者同時發(fā)生。這意味著每一樹中的驗證、許可以及額外ACR和AGP的創(chuàng)建不連接到且不依賴于另一樹的驗證、許可以及額外ACR和AGP的創(chuàng)建。因此,當(dāng)SSA系統(tǒng)用于存儲器IO中時,這允許存儲器系統(tǒng)10同時服務(wù)于多個應(yīng)用程序。其還允許兩個應(yīng)用程序彼此獨立地存取兩個單獨數(shù)據(jù)集(例如,照片集和歌曲集)。這在圖6中說明。因此,與針對經(jīng)由圖6的頂部部分中的樹中的節(jié)點(ACR)的應(yīng)用程序或用戶存取的"密鑰3"、"密鑰X"和"密鑰Z"相關(guān)聯(lián)的數(shù)據(jù)可包括照片。與針對經(jīng)由圖6的底部部分中的樹的節(jié)點(ACR)的應(yīng)用程序或用戶存取的"密鑰5"和"密鑰Y"相關(guān)聯(lián)的數(shù)據(jù)可包括歌曲。創(chuàng)建AGP的ACR具有僅當(dāng)AGP沒有ACR條目時刪除所述AGP的許可。實體的SSA入口點存取控制記錄(ACR)SSA系統(tǒng)中的ACR描述準(zhǔn)許實體登錄到系統(tǒng)中的方式。當(dāng)實體登錄到SSA系統(tǒng)中時,其需要指定對應(yīng)于其即將執(zhí)行的驗證過程的ACR。ACR包含許可控制記錄(PCR),其說明一旦如圖5中說明的ACR中所定義而經(jīng)驗證用戶就可執(zhí)行的所準(zhǔn)予的動作。主機側(cè)實體提供所有ACR數(shù)據(jù)字段。當(dāng)實體已成功登錄到ACR上時,實體將能夠查詢所有ACR的分區(qū)以及密鑰存取許可和ACAM許可(下文闡釋)。ACRID當(dāng)SSA系統(tǒng)實體啟始登錄過程時,其需要指定對應(yīng)于登錄方法的ACRID(由主機當(dāng)創(chuàng)建ACR時提供),使得當(dāng)己滿足所有登錄要求時SSA將設(shè)置正確算法并選擇正確PCR。當(dāng)創(chuàng)建ACR時,將ACRID提供到SSA系統(tǒng)。登錄/驗證算法驗證算法指定什么種類的登錄程序?qū)⒈粚嶓w使用,以及需要什么種類的憑證來提供用戶身份的證明。SSA系統(tǒng)支持若干標(biāo)準(zhǔn)登錄算法,在從無程序(以及無憑證)和基于密碼的程序到基于對稱或不對稱密碼術(shù)的雙向驗證協(xié)議的范圍內(nèi)變化。憑證實體的憑證對應(yīng)于登錄算法,且由SSA使用以檢驗并驗證用戶。憑證的實例可以是用于密碼驗證的密碼/PIN數(shù)字、用于AES驗證的AES密鑰等。憑證的類型/格式(即,PIN、對稱密鑰等)經(jīng)預(yù)先定義并從驗證模式導(dǎo)出;當(dāng)創(chuàng)建ACR時,將其提供到SSA系統(tǒng)。SSA系統(tǒng)與定義、分配和管理這些憑證無關(guān),基于PKI的驗證除外,其中裝置(例如,快閃卡)可用于產(chǎn)生RSA或其它類型的密鑰對,且公共密鑰可被導(dǎo)出以用于證書產(chǎn)生。許可控制記錄(PCR)PCR展示在登錄到SSA系統(tǒng)中并成功通過ACR的驗證過程之后準(zhǔn)予實體的內(nèi)容。存在三種類型的許可類別用于分區(qū)和密鑰的創(chuàng)建許可、針對分區(qū)和密鑰的存取許可,以及用于實體-ACR屬性的管理許可。存取分區(qū)PCR的此段落含有實體在成功完成ACR階段后可存取的分區(qū)的列表(使用如提供到SSA系統(tǒng)的其ID)。對于每一分區(qū),存取類型可限于僅寫入或僅讀取,或可指定完全寫入/讀取存取權(quán)。因此,圖5中的ACR弁1能夠存取分區(qū)#2而不是分區(qū)#1。PCR中指定的限制適用于SSA分區(qū)和公共分區(qū)??赏ㄟ^到達(dá)代管SSA系統(tǒng)的裝置(例如,快閃卡)的規(guī)則讀取和寫入命令或通過SSA命令來存取公共分區(qū)。當(dāng)以限制公共分區(qū)的許可創(chuàng)建根ACR(下文闡釋)時,其可將所述許可傳遞到其子代。ACR可優(yōu)選地僅限制規(guī)則讀取和寫入命令存取公共分區(qū)。SSA系21統(tǒng)中的ACR可優(yōu)選地僅在其創(chuàng)建后被限制。一旦ACR具有從公共分區(qū)讀取/向公共分區(qū)寫入的許可時,優(yōu)選地其不能被取走。存取密鑰IDPCR的此段落含有與當(dāng)實體的登錄過程已滿足ACR策略時實體可存取的密鑰ID(如由主機提供到SSA系統(tǒng))的列表相關(guān)聯(lián)的數(shù)據(jù)。所指定的密鑰ID與駐存在PCR中出現(xiàn)的分區(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)中可準(zhǔn)許的ACAM動作是1.創(chuàng)建/刪除/更新AGP和ACR。2.創(chuàng)建/刪除分區(qū)和密鑰。3.授權(quán)對密鑰和分區(qū)的存取權(quán)。父代ACR優(yōu)選地不能編輯ACAM許可。這將優(yōu)選地需要刪除和重新創(chuàng)建ACR。并且,對由ACR創(chuàng)建的密鑰ID的存取許可優(yōu)選地不能被取走。ACR可具有創(chuàng)建其它ACR和AGP的能力。創(chuàng)建ACR也可意味著向其授權(quán)由其創(chuàng)建者擁有的一些或所有ACAM許可。具有創(chuàng)建ACR的許可意味著具有對于以下動作的許可1.定義和編輯子代的憑證一驗證方法優(yōu)選地一旦通過創(chuàng)建ACR設(shè)定就不能被編輯??稍谝厌槍ψ哟x的驗證算法的邊界內(nèi)改變憑證。2.刪除ACR。3.授權(quán)對子代ACR的創(chuàng)建許可(因此具有孫代)。具有創(chuàng)建其它ACR的許可的ACR具有向其所創(chuàng)建的ACR授權(quán)解除封鎖許可的許可(盡管其可能不具有對ACR進(jìn)行解除封鎖的許可)。父代ACR將把對其解除封鎖者的參考放置在子代ACR中。父代ACR是具有刪除其子代ACR的許可的唯一ACR。當(dāng)ACR刪除其創(chuàng)建的較低層的ACR時,接著由此較低層ACR產(chǎn)生的所有ACR也自動刪除。當(dāng)刪除ACR時,接著刪除其創(chuàng)建的所有密鑰ID和分區(qū)。存在ACR可更新其自身的記錄的兩個例外情況1.密碼/PIN(盡管由創(chuàng)建者ACR設(shè)定)僅可由包含其的ACR更新。2.根ACR可刪除其本身和其所駐存在的AGP。授權(quán)對密鑰和分區(qū)的存取權(quán)ACR及其AGP組合在層級樹中,其中根AGP和其內(nèi)部的ACR處于樹的頂部(例如,圖6中的根AGP130和132)。SSA系統(tǒng)中可存在若干AGP樹,但其完全彼此分離。AGP內(nèi)的ACR可向其所處的同一AGP內(nèi)的所有ACR以及向由其創(chuàng)建的所有ACR授權(quán)對其密鑰的存取許可。創(chuàng)建密鑰的許可優(yōu)選地包含授權(quán)使用密鑰的存取許可的許可。對密鑰的許可劃分為三個類別1.存取一這定義對于密鑰的存取許可,即讀取、寫入。2.所有權(quán)一依據(jù)定義,創(chuàng)建密鑰的ACR是其所有者。此所有權(quán)可從一個ACR授權(quán)給另一ACR(倘若其處于同一AGP中或子代AGP中)。密鑰的所有權(quán)提供刪除密鑰以及授權(quán)對于所述密鑰的許可的許可。3.存取權(quán)授權(quán)一此許可使ACR能夠授權(quán)其所持有的權(quán)利。ACR可授權(quán)對其所創(chuàng)建的分區(qū)以及其具有存取許可的其它分區(qū)的存取許可。通過將分區(qū)的名稱和密鑰ID添加到所指定的ACR的PCR來完成許可授權(quán)。授權(quán)密鑰存取許可可通過密鑰ID或通過陳述存取許可是針對授權(quán)ACR的所有所創(chuàng)建密鑰來進(jìn)行。ACR的封鎖和解除封鎖ACR可具有封鎖計數(shù)器,其當(dāng)實體向系統(tǒng)進(jìn)行的ACR驗證過程不成功時遞增。當(dāng)達(dá)到不成功驗證的某一最大數(shù)目(MAX)時,SSA系統(tǒng)將封鎖ACR。被封鎖ACR可由被封鎖ACR所參考的另一ACR解除封鎖。對解除封鎖ACR的參考由其創(chuàng)建者設(shè)定。解除封鎖ACR優(yōu)選地處于與被封鎖ACR的創(chuàng)建者相同的AGP中,且具有"解除封鎖"許可。系統(tǒng)中沒有其它ACR可對被封鎖ACR解除封鎖。ACR可能配置有封鎖計數(shù)器但沒有解除封鎖者ACR。在此情況下,如果此ACR被封鎖,那么其無法被解除封鎖。根AGP—創(chuàng)建應(yīng)用程序數(shù)據(jù)庫SSA系統(tǒng)經(jīng)設(shè)計以處置多個應(yīng)用程序并使其每一者的數(shù)據(jù)隔離。AGP系統(tǒng)的樹結(jié)構(gòu)是用于識別并隔離應(yīng)用程序特定數(shù)據(jù)的主要工具。根AGP處于應(yīng)用程序SSA數(shù)據(jù)庫樹的尖端處并遵守稍許不同的行為規(guī)則。若干根AGP可配置于SSA系統(tǒng)中。兩個根AGP130和132展示于圖6中。顯然,可使用更少或更多AGP,且其在本發(fā)明的范圍內(nèi)。通過將新AGP/ACR樹添加到裝置的過程,針對新應(yīng)用程序和/或裝置的新應(yīng)用程序的發(fā)布憑證來注冊裝置(例如,快閃卡)。SSA系統(tǒng)支持根AGP創(chuàng)建(以及根AGP的所有ACR及其許可)的三種不同模式1.開放不要求任何種類的驗證的任何用戶或?qū)嶓w或通過系統(tǒng)ACR(下文闡釋)驗證的用戶/實體可創(chuàng)建新的根AGP。開放模式使得能夠在當(dāng)所有數(shù)據(jù)傳遞在開放通道上完成(即,在發(fā)布代理的安全環(huán)境中)時沒有任何安全性措施的情況下,或通過經(jīng)由系統(tǒng)ACR驗證建立的安全通道(即,在空中(OTA))和發(fā)布后程序)創(chuàng)建根AGP。如果系統(tǒng)ACR未經(jīng)配置(這是可選特征)且根AGP創(chuàng)建模式設(shè)定為開放,那么僅開放通道選項可用。2.受控只有通過系統(tǒng)ACR驗證的實體可創(chuàng)建新的根AGP。如果系統(tǒng)ACR未經(jīng)配置,那么不可將SSA系統(tǒng)設(shè)定到此模式。3.鎖定停用根AGP的創(chuàng)建,且不可將額外根AGP添加到系統(tǒng)。兩個SSA命令控制此特征(這些命令可由任何用戶/實體在不驗證的情況下使用)1.方法配置命令一用于配置SSA系統(tǒng)使用三種根AGP創(chuàng)建模式中的任一者。僅允許以下模式變化開放-〉受控、受控->鎖定(即,如果SSA系統(tǒng)當(dāng)前配置為受控,那么其僅可改變?yōu)殒i定)。2.方法配置鎖定命令一用于停用方法配置命令,并永久鎖定當(dāng)前選擇的方法。當(dāng)創(chuàng)建根AGP時,其處于使得能夠創(chuàng)建和配置其ACR(使用施加到根AGP的創(chuàng)建的相同存取限制)的特殊初始化模式中。在根AGP配置過程結(jié)束時,當(dāng)實體明確地將其切換到操作模式時,現(xiàn)有ACR不再可被更新且不再可創(chuàng)建額外ACR。一旦根AGP被置于標(biāo)準(zhǔn)模式中,其僅可通過經(jīng)由其ACR中被指派有刪除根AGP的許可的一個ACR登錄到系統(tǒng)中而被刪除。除了特殊初始化模式外,這是根AGP的另一例外情況;其優(yōu)選地是可含有具有刪除其自身的AGP的許可的ACR的唯一AGP,與下一樹層中的AGP形成對比。根ACR與標(biāo)準(zhǔn)ACR之間的第三且最終差異是,其是系統(tǒng)中可具有創(chuàng)建和刪除分區(qū)的許可的唯一ACR。SSA系統(tǒng)ACR系統(tǒng)ACR可用于以下兩種SSA操作1.在敵對環(huán)境內(nèi)的安全通道的保護(hù)下創(chuàng)建ACR/AGP樹。2.識別并驗證代管SSA系統(tǒng)的裝置。優(yōu)選地,SSA中僅可存在一個系統(tǒng)ACR,且一旦經(jīng)界定,其就優(yōu)選地不能改變。當(dāng)創(chuàng)建系統(tǒng)ACR時不需要系統(tǒng)驗證;僅需要SSA命令。可停用創(chuàng)建系統(tǒng)ACR特征(類似于創(chuàng)建根AGP特征)。創(chuàng)建系統(tǒng)ACR之后,創(chuàng)建系統(tǒng)ACR命令沒有效果,因為優(yōu)選地僅允許一個系統(tǒng)ACR。當(dāng)處于創(chuàng)建過程中時,系統(tǒng)ACR不操作。完成后,需要發(fā)布特殊命令,其指示系統(tǒng)ACR己創(chuàng)建且準(zhǔn)備執(zhí)行。在此點之后,系統(tǒng)ACR優(yōu)選地不能被更新或替代。系統(tǒng)ACR在SSA中創(chuàng)建根ACR/AGP。其具有添加/改變根層的許可,直到主機對其滿意并將其封鎖時為止。封鎖根AGP本質(zhì)上切斷其到系統(tǒng)ACR的連接且致使其防竄改。此時,沒有一方可改變/編輯根AGP和內(nèi)部的ACR。這通過SSA命令來完成。停用根AGP的創(chuàng)建具有永久影響且不能顛倒。以上涉及系統(tǒng)ACR的特征在圖7中說明。系統(tǒng)ACR用于創(chuàng)建三個不同的根AGP。在創(chuàng)建這些根AGP之后的某一時間,從主機發(fā)送SSA命令以封鎖來自系統(tǒng)ACR的根AGP,藉此停用創(chuàng)建根AGP特征,如圖7中將系統(tǒng)ACR連接到根AGP的虛線所指示。這致使三個根AGP防竄改。在根AGP被封鎖之前或之后,三個根AGP可用于創(chuàng)建子代AGP以形成三個單獨樹。上述特征為內(nèi)容所有者在配置具有內(nèi)容的安全產(chǎn)品方面提供較大靈活性。需要"發(fā)布"安全產(chǎn)品。發(fā)布是提出識別密鑰的過程,裝置可借助識別密鑰來識別主機,且反之亦然。識別裝置(例如,快閃卡)使主機能夠決定其是否可信任其與裝置的秘密。另一方面,識別主機使裝置能夠只有當(dāng)主機被允許時才實行安全性策略(準(zhǔn)予和執(zhí)行特定主機命令)。經(jīng)設(shè)計以服務(wù)于多個應(yīng)用程序的產(chǎn)品將具有若千識別密鑰。產(chǎn)品可"預(yù)先發(fā)布"一在裝運之前在制造期間存儲密鑰,或"之后發(fā)布"一在裝運之后添加新密鑰。對于之后發(fā)布,存儲器裝置(例如,存儲器卡)需要含有某種主控裝置或裝置層密鑰,其可用于識別經(jīng)允許以將應(yīng)用程序添加到裝置的實體。上述特征使得產(chǎn)品能夠經(jīng)配置以啟用/停用之后發(fā)布。另外,之后發(fā)布配置可在裝運之后安全地完成。裝置可被作為零售產(chǎn)品購買,其上除了上述主控裝置或裝置層密鑰外沒有其它密鑰,且接著所述裝置由新的所有者配置以啟用進(jìn)一步的之后發(fā)布應(yīng)用程序或?qū)⑵渫S?。因此,系統(tǒng)ACR特征提供實現(xiàn)以上目的的能力-不具有系統(tǒng)ACR的存儲器裝置將允許應(yīng)用程序的無限制和不受控添加。25-不具有系統(tǒng)ACR的存儲器裝置可經(jīng)配置以停用系統(tǒng)ACR創(chuàng)建,這意味著沒有辦法控制新應(yīng)用程序的添加(除非創(chuàng)建新的根AGP的特征也被停用)。-具有系統(tǒng)ACR的存儲器裝置將僅允許經(jīng)由使用系統(tǒng)ACR憑證通過驗證程序建立的安全通道受控地添加應(yīng)用程序。-具有系統(tǒng)ACR的存儲器裝置可經(jīng)配置以在已添加應(yīng)用程序之前或之后停用應(yīng)用程序添加特征。密鑰ID列表根據(jù)特定ACR請求創(chuàng)建密鑰ID;然而,在存儲器系統(tǒng)10中,其僅由SSA系統(tǒng)使用。當(dāng)創(chuàng)建密鑰ID時,創(chuàng)建ACR提供以下數(shù)據(jù)或?qū)⒁韵聰?shù)據(jù)提供到創(chuàng)建ACR:1.密鑰ID。所述ID由實體通過主機提供,且用于在所有進(jìn)一步讀取或?qū)懭氪嫒≈袇⒖济荑€和使用密鑰加密或解密的數(shù)據(jù)。2.密鑰密碼和數(shù)據(jù)完整性模式(上文中以及如下文所闡釋的分塊、鏈接和散列模式)。除了主機提供的屬性外,以下數(shù)據(jù)由SSA系統(tǒng)維持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。授權(quán)對相關(guān)聯(lián)密鑰的存取許可以及撤回這些權(quán)利可由密鑰ID所有者或被指派有授權(quán)許可的任何其它ACR來管理。每當(dāng)試圖實行這些操作中的任一者時,SSA系統(tǒng)將僅當(dāng)請求ACR經(jīng)授權(quán)時才準(zhǔn)予所述操作。2.CEK。這是密鑰值被用于將與密鑰ID相關(guān)聯(lián)的或由密鑰ID指向的內(nèi)容譯成密碼的CEK。密鑰值可以是由SSA系統(tǒng)產(chǎn)生的128位AES隨機密鑰。3.MAC和IV值。鏈接區(qū)塊密碼(CBC)加密算法中使用的動態(tài)信息(消息驗證代碼和啟始向量)。還參看圖8A-16的流程圖說明SSA的各種特征,其中步驟左側(cè)的"H"意味著操作由主機執(zhí)行,且"C"意味著操作由卡執(zhí)行。雖然參考存儲器卡說明這些SSA特征,但將了解,這些特征也適用于其它物理形式的存儲器裝置。為了創(chuàng)建系統(tǒng)ACR,主機向存儲器裝置10中的SSA發(fā)布創(chuàng)建系統(tǒng)ACR的命令(方框202)。裝置IO通過檢查系統(tǒng)ACR是否已存在來作出響應(yīng)(方框204,菱形206)。如果其己存在,那么裝置IO傳回失敗并停止(橢圓形208)。如果其不存在,那么存儲器IO檢查是否允許系統(tǒng)ACR創(chuàng)建(菱形210),且在不允許的情況下傳回失敗狀態(tài)(方框212)。因此,可存在裝置發(fā)布者不允許創(chuàng)建系統(tǒng)ACR的實例,例如在所需的安全性特征已經(jīng)預(yù)定使得不需要任何系統(tǒng)ACR的情況下。如果允許系統(tǒng)ACR創(chuàng)建,那么裝置10傳回OK狀態(tài)并等待來自主機的系統(tǒng)ACR憑證(方框214)。主機檢查SSA狀態(tài)以及裝置IO是否已指示允許創(chuàng)建系統(tǒng)ACR(方框216和菱形218)。如果不允許創(chuàng)建或如果系統(tǒng)ACR已存在,那么主機停止(橢圓形220)。如果裝置10已指示允許創(chuàng)建系統(tǒng)ACR,那么主機發(fā)布SSA命令以界定其登錄憑證并將其發(fā)送到裝置10(方框222)。裝置IO用所接收的憑證更新系統(tǒng)ACR記錄并傳回OK狀態(tài)(方框224)。響應(yīng)于此狀態(tài)信號,主機發(fā)布指示系統(tǒng)ACR準(zhǔn)備就緒的SSA命令(方框226)。裝置IO通過鎖定系統(tǒng)ACR使得其不能被更新或替代來作出響應(yīng)(方框228)。這鎖住系統(tǒng)ACR的特征及其用于向主機識別裝置10的身份。用于創(chuàng)建新樹(新的根AGP和ACR)的程序通過這些功能在裝置中配置的方式而確定。圖9闡釋所述程序。主機24和存儲器系統(tǒng)IO兩者均遵循此程序。如果完全停用添加新的根AGP,那么不能添加新的根AGP(菱形246)。如果其被啟用但需要系統(tǒng)ACR,那么主機在發(fā)布創(chuàng)建根一AGP命令(方框254)之前通過系統(tǒng)ACR驗證并建立安全通道(菱形250,方框252)。如果不需要系統(tǒng)ACR(菱形248),那么主機24可在不驗證的情況下發(fā)布創(chuàng)建根AGP命令并行進(jìn)到方框254。如果系統(tǒng)ACR確實存在,那么即使不需要系統(tǒng)ACR主機也可使用所述系統(tǒng)ACR(流程圖中未展示)。裝置(例如,快閃卡)將拒絕任何創(chuàng)建新的根AGP的嘗試(如果所述功能被停用),且其將拒絕在不驗證的情況下創(chuàng)建新的根AGP的嘗試(如果需要系統(tǒng)ACR)(菱形246和250)。方框254中新創(chuàng)建的AGP和ACR現(xiàn)切換到操作模式,使得此類AGP中的ACR不能被更新或以另外的方式改變,且不可將任何ACR添加到所述ACR(方框256)。系統(tǒng)接著被任選地鎖定,使得不能創(chuàng)建額外的根AGP(方框258)。虛線框258是指示此步驟為任選步驟的慣例。本說明書的圖式的流程圖中的所有虛線框均是任選步驟。這允許內(nèi)容所有者封鎖出于可能模仿具有合法內(nèi)容的真實存儲器裝置的其它非法目的而對裝置io的使用。為了創(chuàng)建ACR(不同于上述根AGP中的ACR),可以具有創(chuàng)建ACR的權(quán)利的任何ACR開始(方框270),如圖IO所示。實體可試圖通過提供入口點ACR身份和具有其希望創(chuàng)建的所有必要屬性的ACR來通過主機24輸入(方框272)。SSA檢查與ACR身份的匹配以及具有此身份的ACR是否具有創(chuàng)建ACR的許可(菱形274)。如果請求被檢驗為經(jīng)授權(quán),那么裝置10中的SSA創(chuàng)建ACR(方框276)。圖11展示說明在使用圖10的方法的安全性應(yīng)用中有用的樹的兩個AGP。因此,營銷AGP中具有身份ml的ACR具有創(chuàng)建ACR的許可。ACRml還具有使用密鑰的許可,27所述密鑰用于讀取和寫入與密鑰ID"營銷信息"相關(guān)聯(lián)的數(shù)據(jù)以及與密鑰ID"價格列表"相關(guān)聯(lián)的數(shù)據(jù)。使用圖10的方法,其創(chuàng)建具有兩個ACRsl和s2的銷售AGP,其僅具有對用于存取與密鑰ID"價格列表"相關(guān)聯(lián)的定價數(shù)據(jù)的密鑰的讀取許可,而不具有對存取與密鑰ID"營銷信息"相關(guān)聯(lián)的數(shù)據(jù)所必需的密鑰的讀取許可。以此方式,具有ACRsl和s2的實體僅可讀取而不能改變定價數(shù)據(jù),且將不具有對營銷數(shù)據(jù)的存取權(quán)。另一方面,ACRm2不具有創(chuàng)建ACR的許可,且僅具有對用于存取與密鑰ID"價格列表"相關(guān)聯(lián)以及與密鑰ID"營銷信息"相關(guān)聯(lián)的數(shù)據(jù)的密鑰的讀取許可。因此,可以上文闡釋的方式授權(quán)存取權(quán),其中ml向sl和s2授權(quán)讀取定價數(shù)據(jù)的權(quán)利。這在涉及較大營銷和銷售群組的情況下尤其有用。在僅存在一個或幾個銷售人員的情況下,可能不需要使用圖IO的方法。事實上,可由ACR向同一AGP內(nèi)的較低或相同層處的ACR授權(quán)存取權(quán),如圖12中所說明。首先,實體通過以上文描述的方式經(jīng)由主機指定樹中的ACR而進(jìn)入此類AGP的樹(方框280)。接下來,主機將指定要授權(quán)到的ACR和權(quán)利。SSA檢查樹以查看此類ACR以及所述ACR是否具有將權(quán)利授權(quán)給指定的另一ACR的許可(菱形282)。如果是,那么授權(quán)所述權(quán)利(方框284);如果不是,那么其停止。結(jié)果在圖13中說明。此情況下的ACRml具有將讀取許可授權(quán)給ACRsl的許可,使得在授權(quán)之后sl將能夠使用密鑰來存取定價數(shù)據(jù)。這可在ml具有相同或更大權(quán)利存取定價數(shù)據(jù)和如此授權(quán)的許可的情況下執(zhí)行。在一個實施例中,在授權(quán)之后ml保留其存取權(quán)。優(yōu)選地,可在例如持續(xù)有限的時間、有限的存取次數(shù)等受限條件(而不是永久地)下授權(quán)存取權(quán)。用于創(chuàng)建密鑰和密鑰ID的過程在圖14中說明。實體通過ACR驗證(方框302)。所述實體請求創(chuàng)建具有由主機指定的ID的密鑰(方框304)。SSA檢查所指定的ACR是否具有如此做的許可(菱形306)。舉例來說,如果密鑰將用于存取特定分區(qū)中的數(shù)據(jù),那么SSA將檢查ACR是否可存取此分區(qū)。如果ACR經(jīng)授權(quán),那么存儲器裝置10創(chuàng)建與由主機提供的密鑰ID相關(guān)聯(lián)的密鑰值(方框308),并將密鑰ID存儲在ACR中且將密鑰值存儲在其存儲器中(控制器相關(guān)聯(lián)存儲器或存儲器20中),并根據(jù)實體供應(yīng)的信息指派權(quán)利和許可(方框310),且以此類指派的權(quán)利和許可修改此類ACR的PCR(方框312)。因此,密鑰的創(chuàng)建者具有所有可用權(quán)利,例如讀取和寫入許可、授權(quán)和與同一AGP中的其它ACR或處于較低層的ACR共享的權(quán)利,以及轉(zhuǎn)移密鑰的所有權(quán)的權(quán)利。ACR可改變SSA系統(tǒng)中的另一ACR的許可(或完全改變其存在),如圖15中所說明。實體可如之前一樣通過ACR進(jìn)入樹;在一種情況下,實體經(jīng)驗證且接著其指定ACR(方框330、332)。其請求刪除目標(biāo)ACR或目標(biāo)ACR中的許可(方框334)。如果所指定的ACR或此時處于活動狀態(tài)的ACR具有如此做的權(quán)利(菱形336),那么刪除目標(biāo)ACR,或改變目標(biāo)ACR的PCR以刪除此類許可(方框338)。如果這未經(jīng)授權(quán),那么系統(tǒng)停止。在上述過程之后,目標(biāo)將不再能夠存取其在過程之前能夠存取的數(shù)據(jù)。如圖16所示,實體可試圖在目標(biāo)ACR處進(jìn)入(方框350)并發(fā)現(xiàn)驗證過程失敗,因為先前現(xiàn)有的ACRID不再存在于SSA中,使得存取權(quán)被拒絕(菱形352)。假定ACRID尚未被刪除,實體指定ACR(方框354)以及特定分區(qū)中的密鑰ID和/或數(shù)據(jù)(方框356),且SSA接著檢査密鑰ID或根據(jù)此類ACR的PCR準(zhǔn)許分區(qū)存取請求(菱形358)。如果許可已被刪除或已期滿,那么再次拒絕請求。否則,準(zhǔn)予所述請求(方框360)。上述過程描述裝置(例如,快閃卡)如何管理對受保護(hù)數(shù)據(jù)的存取,而不管ACR及其PCR是否剛剛由另一ACR改變或如此經(jīng)配置以作為開始。對話SSA系統(tǒng)經(jīng)設(shè)計以處置同時登錄的多個用戶。當(dāng)使用此特征時,SSA接收的每個命令與特定實體相關(guān)聯(lián),且只有當(dāng)用于驗證此實體的ACR具有對所請求動作的許可時才被執(zhí)行。通過對話概念來支持多個實體。對話在驗證過程期間建立且由SSA系統(tǒng)指派得到對話id。對話id在內(nèi)部與用于登錄到系統(tǒng)中的ACR相關(guān)聯(lián),且經(jīng)導(dǎo)出到實體以用于所有進(jìn)一步SSA命令中。SSA系統(tǒng)支持兩種類型的對話開放式對話和安全對話。在ACR中界定與特定驗證過程相關(guān)聯(lián)的對話類型。SSA系統(tǒng)將以類似于其本身實行驗證的方式實行對話建立。由于ACR界定實體許可,所以此機制使系統(tǒng)設(shè)計者能夠?qū)踩┧砼c存取特定密鑰ID或調(diào)用特定ACR管理操作(即,創(chuàng)建新的ACR和設(shè)定憑證)相關(guān)聯(lián)。開放式對話開放式對話是以對話id但沒有總線加密來識別的對話,所有命令和數(shù)據(jù)不受阻礙地通過。此操作模式優(yōu)選地用于多用戶或多實體環(huán)境中,其中實體不是威脅模型的一部分,也不在總線上竊聽。盡管不保護(hù)數(shù)據(jù)的傳輸也不啟用主機側(cè)上的應(yīng)用程序之間的有效防火墻,但開放式對話模式使SSA系統(tǒng)能夠允許僅存取允許用于當(dāng)前經(jīng)驗證ACR的信息。開放式對話還可用于分區(qū)或密鑰需要受保護(hù)的情況。然而,在有效驗證過程之后,向主機上的所有實體準(zhǔn)予存取權(quán)。為了獲得經(jīng)驗證ACR的許可,各種主機應(yīng)用程序唯一29需要共享的是對話id。這在圖17A中說明。線400上方的步驟是由主機24采取的步驟。在實體針對ACRl經(jīng)驗證(方框402)之后,其請求對與存儲器裝置10中的密鑰IDX相關(guān)聯(lián)的文件的存取(方框404、406和408)。如果ACR1的PCR允許此存取,那么裝置10準(zhǔn)予所述請求(菱形410)。如果不,那么系統(tǒng)返回到方框402。在驗證完成之后,存儲器系統(tǒng)10僅通過所指派的對話id(而不是ACR憑證)來識別發(fā)布命令的實體。在開放式對話中,一旦ACR1獲得對與其PCR中的密鑰ID相關(guān)聯(lián)的數(shù)據(jù)的存取權(quán),任何其它應(yīng)用程序或用戶就可通過指定在主機24上的不同應(yīng)用程序之間共亨的正確對話ID來存取相同數(shù)據(jù)。此特征在以下應(yīng)用中較有利用戶僅能夠登錄一次并能夠存取與針對不同應(yīng)用程序執(zhí)行登錄所通過的賬戶聯(lián)系的所有數(shù)據(jù)是較為便利的。因此,蜂窩式電話用戶可能能夠存取所存儲的電子郵件,并收聽存儲器20中存儲的音樂,而不必登錄多次。另一方面,未被ACR1包含的數(shù)據(jù)將不可存取。因此,相同蜂窩式電話用戶可具有可通過單獨賬戶ACR2存取的有價值的內(nèi)容,例如游戲和照片。這是其不希望借走其電話的其他人存取的數(shù)據(jù),盡管其可能不介意其他人通過其第一賬戶ACR1存取可用的數(shù)據(jù)。將對數(shù)據(jù)的存取分為兩個單獨賬戶同時允許在開放式對話中存取ACR1提供了使用的方便性以及提供對有價值數(shù)據(jù)的保護(hù)。為了更進(jìn)一步使在主機應(yīng)用程序之間共享對話id的過程方便,當(dāng)ACR請求開放式對話時,其可明確地請求對話將被指派得到"0(零)"id。以此方式,應(yīng)用程序可經(jīng)設(shè)計以使用預(yù)先定義的對話id。由于明顯的原因,唯一的限制是僅一個請求對話O的ACR可在特定時間被驗證。驗證另一請求對話0的ACR的嘗試將被拒絕。安全對話為了添加安全性層,可如圖17B所示而使用對話id。存儲器IO接著還存儲處于活動狀態(tài)的對話的對話id。舉例來說,在圖17B中,為了能夠存取與密鑰IDX相關(guān)聯(lián)的文件,實體在被允許存取文件之前將還需要提供對話id(例如,對話id"A")(方框404、406、412和414)。以此方式,除非請求實體知道正確的對話id,否則其不能存取存儲器10。由于在對話結(jié)束之后刪除對話id且對話id對于每一對話將不同,所以實體僅在其已能夠提供對話號時才可獲得存取權(quán)。SSA系統(tǒng)通過使用對話號跟蹤命令是否真的來自正確的經(jīng)驗證實體。對于存在攻擊者將試圖使用開放式通道來發(fā)送惡意命令的威脅的應(yīng)用和使用情況,主機應(yīng)用程序使用安全對話(安全通道)。當(dāng)使用安全通道時,用安全通道加密(對話)密鑰對對話id以及整個命令加密,且安全性等級與主機側(cè)實施方案一樣高。終止對話在以下情形的任一者中,終止對話,且注銷ACR:1.實體發(fā)布明確的結(jié)束對話命令。2.通信超時。特定實體在界定為ACR參數(shù)的一者的時間周期內(nèi)未發(fā)布命令。3.所有開放式對話在裝置(例如,快閃卡)重設(shè)和/或功率循環(huán)之后終止。數(shù)據(jù)完整性服務(wù)SSA系統(tǒng)檢驗SSA數(shù)據(jù)庫(其含有所有ACR、PCR等)的完整性。另外,通過密鑰ID機制為實體數(shù)據(jù)提供數(shù)據(jù)完整性服務(wù)。如果密鑰ID配置為將散列作為其加密算法,那么散列值與CEK和IV—起存儲在CEK記錄中。在寫入操作期間計算和存儲散列值。在讀取操作期間再次計算散列值,并將其與先前寫入操作期間存儲的值進(jìn)行比較。每次實體正存取密鑰ID時,將額外數(shù)據(jù)連接(以密碼方式)到舊數(shù)據(jù)且更新適當(dāng)?shù)纳⒘兄?針對讀取或針對寫入)。由于只有主機知道與密鑰ID相關(guān)聯(lián)或由密鑰ID指向的數(shù)據(jù)文件,所以主機以以下方式明確地管理數(shù)據(jù)完整性功能的若干方面1.從開始到結(jié)尾寫入或讀取與密鑰ID相關(guān)聯(lián)或由密鑰ID指向的數(shù)據(jù)文件。任何存取文件的部分的嘗試將使文件混亂,因為SSA系統(tǒng)正使用CBC加密方法并產(chǎn)生整個數(shù)據(jù)的散列消息摘要。2.不需要以鄰接流處理數(shù)據(jù)(所述數(shù)據(jù)流可與其它密鑰Id的數(shù)據(jù)流交錯且可分割在多個對話上),因為中間散列值由SSA系統(tǒng)維持。然而,如果數(shù)據(jù)流重新開始,那么實體將需要明確地指示SSA系統(tǒng)重設(shè)散列值。3.當(dāng)讀取操作完成時,主機明確地請求SSA系統(tǒng)通過將所讀取的散列與寫入操作期間計算的散列值進(jìn)行比較來驗證所述讀取的散列。4.SSA系統(tǒng)還提供"虛設(shè)讀取"操作。此特征將使數(shù)據(jù)串流通過加密引擎但將不會將其發(fā)出到主機。此特征可用于在實際上從裝置(例如,快閃卡)讀出數(shù)據(jù)之前檢驗數(shù)據(jù)完整性。隨機數(shù)產(chǎn)生SSA系統(tǒng)將使外部實體能夠利用內(nèi)部隨機數(shù)產(chǎn)生器并請求在SSA系統(tǒng)外部使用隨機數(shù)。此服務(wù)可由任何主機使用且不需要驗證。RSA密鑰對產(chǎn)生SSA系統(tǒng)將使外部用戶能夠利用內(nèi)部RSA密鑰對產(chǎn)生特征并請求在SSA系統(tǒng)外部使用密鑰對。此服務(wù)可由任何主機使用且不需要驗證。替代實施例替代于使用層級方法,可使用數(shù)據(jù)庫方法來實現(xiàn)類似結(jié)果,如圖18中所說明。如圖18所示,可將實體的憑證列表、驗證方法、失敗嘗試的最大數(shù)目和解除封鎖所需的憑證的最小數(shù)目輸入到存儲在控制器12或存儲器20中的數(shù)據(jù)庫中,所述數(shù)據(jù)庫將此類憑證要求與由存儲器IO的控制器12實行的數(shù)據(jù)庫中的策略(對密鑰和分區(qū)的讀取、寫入存取、安全通道要求)相關(guān)。還存儲在數(shù)據(jù)庫中的是對密鑰和分區(qū)的存取的約束和限制。因此,一些實體(例如,系統(tǒng)管理員)可能在白列表上,這意味著這些實體可存取所有密鑰和分區(qū)。其它實體可能在黑列表上,且其存取任何信息的嘗試將被封鎖。限制可為全局的或密鑰和/或分區(qū)特定的。這意味著僅某些實體可存取某些特定密鑰和分區(qū),且某些實體不能這樣做。還可對內(nèi)容本身施加約束,不管其所處的分區(qū)或用于對其進(jìn)行加密或解密的密鑰如何。因此,某些數(shù)據(jù)(例如,歌曲)可能具有僅可被存取其的前五個主機裝置存取的屬性,或其它數(shù)據(jù)(例如,電影)僅可被讀取有限次數(shù),而不管哪些實體具有存取權(quán)。驗證密碼保護(hù)密碼保護(hù)意味著需要提供密碼來存取受保護(hù)區(qū)域。除非其不能為一個以上密碼,否則密碼可與不同權(quán)利(例如,讀取存取權(quán)或讀取/寫入存取權(quán))相關(guān)聯(lián)。密碼保護(hù)意味著裝置(例如,快閃卡)能夠檢驗由主機提供的密碼,即裝置還具有存儲在裝置管理的安全存儲器區(qū)域中的密碼。發(fā)布和限制密碼經(jīng)受重放攻擊。因為密碼在每次提供之后不變,所以其可相同地再發(fā)送。這意味著如果待保護(hù)的數(shù)據(jù)有價值且通信總線容易存取,那么不應(yīng)按現(xiàn)狀使用密碼。密碼可保護(hù)對所存儲數(shù)據(jù)的存取但不應(yīng)用于保護(hù)數(shù)據(jù)(不是密鑰)。為了增加與密碼相關(guān)聯(lián)的安全性等級,可使用主密鑰使其多樣化,結(jié)果是竊取一個密碼不會使整個系統(tǒng)崩潰?;趯υ捗荑€的安全通信通道可用于發(fā)送密碼。圖19是說明使用密碼進(jìn)行驗證的流程圖。實體將賬戶id和密碼呈遞給系統(tǒng)10(例如,快閃存儲器卡)。系統(tǒng)檢查所述密碼是否與其存儲器中的密碼匹配。如果其匹配,那么傳回經(jīng)驗證狀態(tài)。否則,錯誤計數(shù)器針對所述賬戶遞增,且要求實體重新輸入賬戶id和密碼。如果計數(shù)器溢出,那么系統(tǒng)傳回存取被拒絕的狀態(tài)。對稱密鑰對稱密鑰算法意味著相同密鑰用于兩側(cè)以進(jìn)行加密和解密。這意味著在通信之前已預(yù)先同意密鑰。并且,每一側(cè)應(yīng)實施彼此的反向算法,即一側(cè)上為加密算法且另一側(cè)上為解密算法。兩側(cè)不需要實施兩種算法來進(jìn)行通信。驗證對稱密鑰驗證意味著裝置(例如,快閃卡)和主機共享相同密鑰且具有相同密碼算法(直接和反向,例如DES和DES-1)。對稱密鑰驗證意味著詢問-響應(yīng)(防護(hù)重放攻擊)。受保護(hù)裝置針對其它裝置產(chǎn)生詢問且兩者均計算響應(yīng)。驗證裝置發(fā)送回響應(yīng),且受保護(hù)裝置檢查響應(yīng)并相應(yīng)地確認(rèn)驗證。接著可準(zhǔn)予與驗證相關(guān)聯(lián)的權(quán)利。驗證可為外部的裝置(例如,快閃卡)驗證外界,即裝置確認(rèn)給定主機或應(yīng)用程序的憑證。相互的在兩側(cè)均產(chǎn)生詢問。內(nèi)部的主機應(yīng)用程序驗證裝置(例如,快閃卡),即主機檢查裝置對于其應(yīng)用程序是否為真的。為了增加整個系統(tǒng)的安全性等級(即,破壞一部分不會破壞全部)通常將對稱密鑰與使用主密鑰的多樣化進(jìn)行組合。相互驗證使用來自兩側(cè)的詢問以確保詢問為真實詢問。加密對稱密鑰密碼術(shù)還用于加密,因為其是非常有效的算法,即其不需要強大的CPU來處置密碼術(shù)。當(dāng)用于保護(hù)通信通道時兩個裝置均必須知道用于保護(hù)通道的對話密鑰(即,加密所有傳出數(shù)據(jù)并解密所有傳入數(shù)據(jù))。此對話密鑰通常是使用預(yù)先共享的秘密對稱密鑰或使用PKI來建立。兩個裝置均必須知道并實施相同密碼算法。簽名對稱密鑰還可用于簽署數(shù)據(jù)。在所述情況下,簽名是加密的部分結(jié)果。保持結(jié)果為部分的允許在不暴露密鑰值的情況下簽署與所需一樣多的次數(shù)。發(fā)布和限制對稱算法非常有效且安全,但其基于預(yù)先共享的秘密。發(fā)布是以動態(tài)方式安全地共享此秘密且可能使其為隨機的(如同對話密鑰)。觀點是共享的秘密難以長期保持安全且?guī)缀醪豢赡芘c多個人共享。為了促進(jìn)此操作,已發(fā)明公共密鑰算法,其允許在不共享秘密的情況下交換秘密。不對稱驗證程序基于不對稱密鑰的驗證使用最終構(gòu)成用于安全通道通信的對話密鑰的一系列數(shù)據(jù)傳遞命令?;緟f(xié)議向SSA系統(tǒng)驗證用戶。協(xié)議變化允許相互驗證(其中用戶檢驗其希望使用的ACR)和雙因數(shù)驗證。SSA的不對稱驗證協(xié)議優(yōu)選地使用公共密鑰基礎(chǔ)結(jié)構(gòu)(PKI)和RSA算法。如這些算法所定義,允許驗證過程中的每一方創(chuàng)建其自身的RSA密鑰對。每對密鑰由公共和專用密鑰組成。由于密鑰是匿名的,所以其不能提供身份的證明。PKI層調(diào)用第三置信方,其簽署公共密鑰的每一者。置信方的公共密鑰在將驗證彼此的各方之間預(yù)先共享,且用于檢驗各方的公共密鑰。一旦建立信任(兩方均確定可信任另一方提供的公共密鑰),協(xié)議就繼續(xù)驗證(檢驗每一方持有匹配的專用密鑰)和密鑰交換。這可通過下文描述的圖22和23中說明的詢問響應(yīng)機制來完成。含有經(jīng)簽署公共密鑰的結(jié)構(gòu)稱為證書。簽署證書的置信方稱為證書授權(quán)方(CA)。為了驗證一方,其具有RSA密鑰對和證實公共密鑰的真實性的證書。所述證書由另一(驗證)方所信任的證書授權(quán)方簽署。驗證方預(yù)期擁有其置信CA的公共密鑰。SSA允許證書鏈接。這意味著被識別方的公共密鑰可由不同的CA(不同于識別方所信任的CA)來簽署。在此情況下,被識別方將除了其自身的證書外還提供簽署其公共密鑰的CA的證書。如果此第二級證書仍不為另一方所信任(未由其置信CA簽署),那么可提供第三級證書。在此證書鏈接算法中,每一方將擁有驗證其公共密鑰所需的證書的完整列表。這在圖23和24中說明。此類型的ACR進(jìn)行相互驗證所需的憑證是選定長度中的RSA密鑰對。SSA證書SSA使用[X.509]版本3數(shù)字證書。[X.509]是通用標(biāo)準(zhǔn);此處描述的SSA證書簡檔進(jìn)一步指定并限制證書的所定義字段的內(nèi)容。證書簡檔還定義為證書鏈的管理定義的信任層級、SSA證書的確認(rèn)以及證書撤回列表(CRL)簡檔。證書被認(rèn)為是公共信息(作為內(nèi)部的公共密鑰)且因此不被加密。然而,其包含檢驗公共密鑰以及所有其它信息字段未被竄改的RSA簽名。34[X.509]定義使用ASN.l標(biāo)準(zhǔn)格式化每一字段,所述ASN.l標(biāo)準(zhǔn)又使用DER格式進(jìn)行數(shù)據(jù)編碼。SSA證書概述圖20和21中描繪的SSA證書管理結(jié)構(gòu)的一個實施例由針對主機的無限制層級層和針對裝置的至多三個層級層組成,但可針對裝置使用多于或少于三個的層級層數(shù)。主機證書層級裝置基于兩個因素驗證主機存儲在裝置中的根CA證書(作為在創(chuàng)建ACR時存儲的ACR憑證),和由試圖存取裝置的實體供應(yīng)的證書/證書鏈(針對所述特定ACR)。對于每一ACR,主機證書授權(quán)方用作根CA(這是駐存在ACR憑證中的證書)。舉例來說對于一個ACR,根CA可以是"主機lCA(層2)證書",且對于另一ACR,其可以是"主機根CA證書"。對于每一ACR,持有由根CA簽署的證書(或?qū)⒏鵆A連接到終端實體證書的證書鏈)的每個實體可登錄到所述ACR中,只要其具有針對終端實體證書的相應(yīng)專用密鑰。如上文所提及,證書是公共知識,且不保持為秘密的。由根CA發(fā)布的所有證書持有者(和相應(yīng)專用密鑰)可登錄到所述ACR中的事實意味著對特定ACR的驗證由存儲在ACR憑證中的根CA的發(fā)布者確定。換句話說'根CA的發(fā)布者可以是管理ACR的驗證方案的實體。主機根證書根證書是SSA用于開始檢驗試圖登錄(主機)的實體的公共密鑰的置信CA證書。此證書在ACR被創(chuàng)建作為ACR憑證的一部分時提供。其是PKI系統(tǒng)的信任的根源,且因此假定其由置信實體(父代ACR或制造/配置置信環(huán)境)提供。SSA使用其公共密鑰檢驗此證書以檢驗證書簽名。主機根證書以加密狀態(tài)存儲在非易失性存儲器(圖1未圖示)中,其中裝置的秘密密鑰優(yōu)選地僅可由系統(tǒng)IO的圖1的CPU12存取。主機證書鏈這些是驗證期間提供給SSA的證書。鏈的處理完成之后,主機證書鏈的再收集不應(yīng)存儲在裝置中。圖20是說明若干不同主機證書鏈的主機證書層層級的示意圖。如圖20中所說明,主機證書可具有許多不同證書鏈,其中僅說明三個Al.主機根CA證書502、主機1CA(層2)證書504和主機證書506;Bl.主機根CA證書502、主機nCA(層2)證書508、主機1CA(層3)證書510、主機證書512;Cl.主機根CA證書502、主機nCA(層2)證書508和主機證書514。以上三個證書鏈Al、Bl和CI說明可用于證明主機的公共密鑰為真的三個可能的主機證書鏈。參考以上證書鏈Al且在圖20中,主機1CA(層2)證書504中的公共密鑰由主機根CA的專用密鑰簽署(即,通過加密公共密鑰的摘要),所述主機根CA的公共密鑰在主機根CA證書502中。主機證書506中的主機公共密鑰又由主機1CA(層2)的專用密鑰簽署,主機1CA(層2)的公共密鑰提供在主機1CA(層2)證書504中。因此,具有主機根CA的公共密鑰的實體將能夠檢驗以上證書鏈A1的真實性。作為第一步驟,所述實體使用其擁有物中的主機根CA的公共密鑰來解密由主機發(fā)送到其處的主機lCA(層2)證書504中的所簽署的公共密鑰,并將經(jīng)解密的所簽署的公共密鑰與由主機發(fā)送的主機1CA(層2)證書504中的未簽署的公共密鑰的摘要進(jìn)行比較。如果兩者匹配,那么主機1CA(層2)的公共密鑰經(jīng)驗證,且實體將接著使用主機1CA(層2)的經(jīng)驗證的公共密鑰來解密由主機所發(fā)送的主機證書506中的主機1CA(層2)的專用密鑰簽署的主機的公共密鑰。如果此經(jīng)解密的所簽署值與由主機發(fā)送的主機證書506中的公共密鑰的摘要的所簽署值匹配,那么接著主機的公共密鑰也經(jīng)驗證。證書鏈Bl和Cl可用于以類似方式進(jìn)行驗證。如從以上涉及鏈Al的過程中將注意到,來自需要由實體檢驗的主機的第一公共密鑰是主機1CA(層2)而不是主機根CA證書中的公共密鑰。因此,主機需要發(fā)送到實體的全部內(nèi)容是主機lCA(層2)證書504和主機證書506,使得主機1CA(層2)證書將是鏈中需要發(fā)送的第一個證書。如上文所說明,證書檢驗序列如下。檢驗實體(在此情況下為存儲器裝置10)首先檢驗鏈中第一證書(其在此情況下為根CA下的CA的證書504)中的公共密鑰的真實性。在此證書中的公共密鑰檢驗為真之后,裝置10接著繼續(xù)檢驗下一證書(在此情況下為主機證書506)。出于同樣的原因,在證書鏈含有兩個以上證書的情況下可應(yīng)用類似的檢驗序列,從緊接在根證書下方的證書開始并以待驗證的實體的證書結(jié)束。裝置證書層級主機基于兩個因數(shù)驗證裝置存儲在主機中的裝置根CA,和由裝置供應(yīng)到主機的證書/證書鏈(其在創(chuàng)建ACR作為憑證時供應(yīng)到裝置)。主機驗證裝置的過程類似于上文描述的裝置驗證主機的過程。裝置證書鏈這些是ACR的密鑰對的證書。其在創(chuàng)建ACR時提供到卡。SSA個別地存儲這些證36書,且將在驗證期間將它們逐個提供到主機。SSA使用這些證書來向主機驗證。裝置能夠處置3個證書的鏈,但可使用不同于3個的證書數(shù)目。證書的數(shù)目可依據(jù)ACR不同而變化。其在創(chuàng)建ACR時確定。裝置能夠?qū)⒆C書鏈發(fā)送到主機,然而,其不需要對它們進(jìn)行解析,因為其不使用證書鏈數(shù)據(jù)。圖21是說明裝置證書層層級的示意圖,所述層級用于說明針對使用SSA的裝置(例如,存儲裝置)的l到n個不同證書鏈。圖21中說明的n個不同證書鏈如下A2.裝置根CA證書520、裝置1CA(制造商)證書522和裝置證書524;B2.裝置根CA證書520、裝置nCA(制造商)證書526和裝置證書528。SSA裝置可由l到n個不同制造商制造,每一制造商具有其自身的裝置CA證書。因此,針對特定裝置的裝置證書中的公共密鑰將由其制造商的專用密鑰簽署,且制造商的公共密鑰又由裝置根CA的專用密鑰簽署。裝置的公共密鑰被檢驗的方式類似于上文描述的主機的公共密鑰的情況下的方式。與上文針對主機描述的鏈Al的檢驗的情況下一樣,不需要發(fā)送裝置根CA證書,且鏈中將需要發(fā)送的第一證書是裝置iCA(制造商)證書,之后是裝置證書,i是從l到n的整數(shù)。在圖21中說明的實施例中,裝置將提供兩個證書裝置iCA(制造商)證書,之后是其自身的裝置證書。裝置iCA(制造商)證書是制造此裝置的制造商的證書,且所述制造商是提供專用密鑰以簽署裝置的公共密鑰的制造商。當(dāng)主機接收到裝置iCA(制造商)證書時,主機將使用其擁有物中的根CA的公共密鑰來解密和檢驗裝置iCA(制造商)公共密鑰。如果此檢驗失敗,那么主機將中止過程并通知裝置驗證已失敗。如果驗證成功,那么主機接著將對下一證書的請求發(fā)送到裝置。裝置將接著發(fā)送其自身的裝置證書以由主機以類似方式檢驗。上述檢驗過程還在圖22和23中更詳細(xì)說明。在圖22中,"SSM系統(tǒng)"是實施本文描述的SSA系統(tǒng)以及下文描述的其它功能的軟件模塊。SSA可實施為軟件或計算機代碼,其具有存儲在存儲器20或CPU12中的非易失性存儲器(未圖示)中的數(shù)據(jù)庫,且被讀取到RAM12a中并由CPU12執(zhí)行。如圖22所示,在過程中存在三個階段,其中在裝置10中的SSM系統(tǒng)542驗證主機系統(tǒng)540。在第一公共密鑰檢驗階段,主機系統(tǒng)540在SSM命令中將主機證書鏈發(fā)送到SSM系統(tǒng)542。SSM系統(tǒng)542使用位于ACR550中的主機根證書548中的根證書授權(quán)方公共密鑰來檢驗(方框552)主機證書544和主機公共密鑰546的真實性。當(dāng)涉及到根證書授權(quán)方與主機之間的中間證書授權(quán)方的情況下,中間證書549也用于方框552中的37檢驗。假定檢驗或過程(方框552)成功,那么SSM系統(tǒng)542接著行進(jìn)到第二階段。SSM系統(tǒng)542產(chǎn)生隨機數(shù)554并將其作為詢問發(fā)送到主機系統(tǒng)540。系統(tǒng)540使用主機系統(tǒng)的專用密鑰547來簽署隨機數(shù)554(方框556)并作為對詢問的響應(yīng)而發(fā)送經(jīng)簽署的隨機數(shù)。使用主機公共密鑰546來解密響應(yīng)(方框558),并將響應(yīng)與隨機數(shù)554進(jìn)行比較(方框560)。假定經(jīng)解密響應(yīng)與隨機數(shù)554匹配,那么詢問響應(yīng)成功。在第三階段,使用主機公共密鑰546來加密隨機數(shù)562。此隨機數(shù)562接著為對話密鑰。主機系統(tǒng)540可通過使用其專用密鑰來解密(方框564)來自SSM系統(tǒng)542的經(jīng)加密隨機數(shù)562而獲得對話密鑰。借助此對話密鑰,接著可啟始主機系統(tǒng)540與SSM系統(tǒng)542之間的安全通信。圖22說明其中主機系統(tǒng)540由裝置10中的SSM系統(tǒng)542驗證的單向不對稱驗證。圖23是說明類似于圖22的單向驗證協(xié)議的雙向相互驗證過程的協(xié)議圖,其中圖23中的SSM系統(tǒng)542也由主機系統(tǒng)540驗證。圖24是用于說明本發(fā)明的一個實施例的證書鏈590的圖。如上所述,需要呈現(xiàn)以用于檢驗的證書鏈可包含若干證書。因此,圖24的證書鏈包含總共九(9)個證書,其全部可能需要經(jīng)檢驗以用于驗證。如上文背景部分中所闡釋,在用于證書檢驗的現(xiàn)有系統(tǒng)中,發(fā)送不完整證書鏈,或在發(fā)送完整證書的情況下,不以任何特定次序發(fā)送證書使得接收者將在已接受并存儲整個群組的證書后才能分析證書。由于鏈中證書的數(shù)目事先不知道,所以這可引起問題??赡苄枰A舸罅看鎯臻g以用于存儲不確定長度的證書鏈。這對于執(zhí)行檢驗的存儲裝置可能成問題。本發(fā)明的一個實施例是基于以下認(rèn)識一其中主機裝置以與證書鏈將被存儲裝置檢驗的次序相同的次序發(fā)送其證書鏈的系統(tǒng)可減輕所述問題。因此,如圖24所示,證書的鏈590以作為緊接在主機根證書以下的證書的證書鏈590(1)開始,且以作為主機證書的證書590(9)結(jié)束。因此,裝置10將首先檢驗證書590(1)中的公共密鑰,之后檢驗證書590(2)中的公共密鑰等等,直到證書590(9)中的主機公共密鑰經(jīng)檢驗為止。這接著完成整個證書鏈5卯的檢驗過程。因此,如果主機裝置以與證書鏈將被檢驗的次序或序列相同的次序或序列將證書鏈590發(fā)送到存儲器裝置10,那么存儲器裝置10可在接收到每一證書時開始檢驗每一證書,而不必等到已接收鏈590中的全部9個證書為止。因此,在一個實施例中,主機裝置一次將鏈590中的一個證書發(fā)送到存儲器裝置10。存儲器裝置IO將接著必須一次存儲單一證書。在已檢驗證書之后,其可由主機所發(fā)送的下一證書(鏈中的最后一個證書除外)重寫。以此方式,存儲器裝置IO將需要保留空間以用于在任何時間僅存儲單一證書。存儲器裝置將需要知道何時已接收整個鏈590。因此,優(yōu)選地,最后一個證書590(9)含有這是鏈中的最后一個證書的指示符或指示。此特征在圖25中說明,圖25是說明處于證書緩沖器之前的控制扇區(qū)中的由主機發(fā)送到存儲器裝置10的信息的表。如圖25所示,證書590(9)的控制扇區(qū)含有自變量名稱"'為最終'旗標(biāo)"。存儲器裝置10可接著通過檢查"為最終"旗標(biāo)是否經(jīng)設(shè)定來檢驗證書590(9)是鏈中最后一個證書,以確定所接收的證書是否為鏈中最后一個證書。在替代實施例中,鏈590中的證書可不逐個發(fā)送,而是以一個、兩個或三個證書的群組發(fā)送。顯然,可使用具有其它數(shù)目的證書的群組或群組中相同數(shù)目的證書。因此,鏈590包含證書591、593、595、597和599的五(5)個連續(xù)串。所述串的每一者含有至少一個證書。證書的連續(xù)串是含有緊接于鏈中討論中的一個串之前的串的證書(開始證書)、緊接于鏈中一個串之后的串的證書(結(jié)束證書)和開始證書與結(jié)束證書之間的所有證書的串。舉例來說,串593含有所有三個證書590(2),590(3)和590(4)。五個證書串由存儲器裝置10以以下序列檢驗591、593、595、597,并以599結(jié)束。因此,如果五個串以與存儲器裝置IO所執(zhí)行的檢驗相同的序列發(fā)送和接收,那么存儲器裝置在串已被檢驗之后將不需要存儲串的任一者,且除最后一個串以外的所有串可由從主機到達(dá)的下一串重寫。如在先前實施例中一樣,鏈中最后一個證書需要含有設(shè)定為特定值以指示其為鏈中最后一個證書的指示符(例如,旗標(biāo))。在此實施例中,存儲器裝置將僅需要保留足以存儲五個串中最大數(shù)目的證書的空間。因此,如果主機首先通知存儲器裝置IO其打算發(fā)送的最長串,那么存儲器裝置IO將僅需要保留足夠的空間用于最長串。優(yōu)選地,由主機發(fā)送的鏈中每一證書的長度不大于由證書鑒定的公共密鑰的長度的四倍。類似地,由存儲器裝置IO發(fā)送到主機裝置以鑒定存儲器裝置的公共密鑰的證書的長度優(yōu)選地不大于由證書鑒定的公共密鑰的長度的四倍。上述用于檢驗證書鏈的實施例在圖26的流程圖中說明,在圖26中為了簡單起見,每一群組中的證書數(shù)目假定為一。如圖26所示,主機將鏈中的證書循序發(fā)送到卡。以鏈中的第一證書(通常是緊跟如上文所闡釋的根證書之后的證書)開始,卡循序地從正被驗證的主機接收證書鏈(方框602)??ń又鴻z驗所接收的證書的每一者并在證書的任一者未能被檢驗的情況下中止過程。如果證書的任一者未能被檢驗,那么卡通知主機(方框604、606)??▽⒔又鴻z測最后一個證書是否已被接收和檢驗(菱形608)。如果最后一個證書未被接收和檢驗,那么卡接著返回到方框602以繼續(xù)接收和檢驗來自主機的證39書。如果最后一個證書已被接收和檢驗,那么卡接著在證書檢驗之后行進(jìn)到下一階段(610)。雖然圖26和以下的后續(xù)圖式中的特征參考存儲器卡作為實例,但將了解,這些特征也可應(yīng)用于具有非存儲器卡的物理形式的存儲器裝置。當(dāng)卡正驗證主機時主機實行的過程在圖27中說明。如圖27所示,主機將鏈中的下一證書發(fā)送到卡(方框620)(通常以緊跟根證書之后的一個證書開始)。主機接著確定是否已從卡接收指示驗證失敗的中止通知(菱形622)。如果已接收中止通知,那么主機停止(方框624)。如果尚未接收中止通知,那么主機通過檢查所發(fā)送的最后一個證書中是否已設(shè)定"為最終旗標(biāo)"來檢査是否巳發(fā)送鏈中的最后一個證書(菱形626)。如果己發(fā)送最后一個證書,那么主機接著在證書檢驗之后行進(jìn)到下一階段(方框628)。如圖22和23中所說明,下一階段可以是詢問響應(yīng),之后是對話密鑰創(chuàng)建。如果尚未發(fā)送鏈中的最后一個證書,那么主機返回到方框620以發(fā)送鏈中的最后一個證書。當(dāng)卡正被驗證時卡和主機采取的動作在圖28和29中說明。如圖28所示,在開始之后,卡等待來自主機的發(fā)送鏈中的證書的請求(方框630、菱形632)。如果未接收到來自主機的請求,那么卡將返回到菱形632。如果接收到來自主機的請求,那么卡將接著發(fā)送鏈中的下一證書,以應(yīng)發(fā)送的第一證書開始(通常以緊跟根證書之后的一個證書開始)(方框634)??ù_定是否己從主機接收失敗通知(菱形636)。如果已接收失敗通知,那么卡停止(方框637)。如果未接收失敗通知,那么卡接著確定是否已發(fā)送最后一個證書(菱形638)。如果尚未發(fā)送最后一個證書,那么卡返回到菱形632并等待直到其從主機接收到發(fā)送鏈中的下一證書的下一請求為止。如果已發(fā)送最后一個證書,那么卡接著行進(jìn)到下一階段(方框639)。圖29說明當(dāng)卡正被驗證時主機采取的動作。主機將對鏈中的下一證書的請求發(fā)送到卡,以對待發(fā)送的第一證書的請求開始(方框640)。主機接著檢驗所接收的每一證書,并中止過程且通知卡檢驗是否失敗(方框642)。如果檢驗通過,那么主機檢查是否已接收并成功檢驗最后一個證書(菱形644)。如果尚未接收和成功檢驗最后一個證書,那么主機接著返回到方框640以發(fā)送對鏈中的下一證書的請求。如果已接收和成功檢驗最后一個證書,那么主機接著在證書檢驗之后行進(jìn)到下一階段(方框646)。證書撤回當(dāng)發(fā)布證書時,預(yù)期其用于其整個有效性周期。然而,各種情形可導(dǎo)致證書在有效性周期期滿之前變得無效。此類情形包含名稱改變、主題與CA之間的關(guān)聯(lián)改變(例如,職員終止與機構(gòu)的雇用關(guān)系),以及相應(yīng)專用密鑰的泄密或可疑泄密。在此類情形下,CA需要撤回證書。SSA以不同方式實現(xiàn)證書撤回,每一ACR可經(jīng)配置以用于特定的撤回證書的方法。ACR可經(jīng)配置以不支持撤回方案。在此情況下,認(rèn)為每一證書有效直到其期滿日期為止?;蛘呖墒褂米C書撤回列表(CRL)。作為又一替代方案,撤回方案可特定針對特定應(yīng)用,或為應(yīng)用特定的,其將在下文中闡釋。ACR通過指定撤回值而指定采用三種撤回方案中的哪一種。如果在無撤回方案的情況下創(chuàng)建ACR,那么其有可能采用可由ACR所有者激活的撤回方案。存儲器裝置證書的撤回由主機而不是由SSA安全性系統(tǒng)實行。ACR所有者負(fù)責(zé)管理主機根證書的撤回,完成此動作所借助的機制是通過更新ACR的憑證來進(jìn)行。證書撤回列表(CRL)SSA系統(tǒng)使用撤回方案,其涉及每一CA周期性地發(fā)布稱為證書撤回列表(CRL)的經(jīng)簽署數(shù)據(jù)結(jié)構(gòu)。CRL是經(jīng)時間戳記的列表,其識別由CA(發(fā)布討論中的證書的同一CA)簽署的撤回的證書,且可由公眾自由使用。每一撤回的證書在CRL中由其證書序列號識別。CRL的大小是任意的百.依賴于被撤回的未期滿證書的數(shù)目。當(dāng)裝置使用證書(例如,用于檢驗主機的身份)時,裝置不僅檢査證書簽名(和有效性),而且對照通過CRL接收的序列號的列表對其進(jìn)行檢驗。如果在由發(fā)布證書的CA發(fā)布的CRL上發(fā)現(xiàn)例如證書的序列號等識別信息,那么這指示證書已被撤回且不再有效。CRL還將需要被檢驗為真的以便使其可用于驗證證書的目的。使用發(fā)布CRL的CA的專用密鑰來簽署CRL,且可通過使用CA的公共密鑰對經(jīng)簽署CRL進(jìn)行解密而將CRL檢驗為真的。如果經(jīng)解密CRL與未經(jīng)簽署的CRL的摘要匹配,那么這意味著CRL尚未被竄改且是真的。CRL使用散列算法頻繁地經(jīng)散列以獲得其摘要,且摘要通過CA的專用密鑰加密。為了檢驗CRL是否有效,使用CA的公共密鑰解密經(jīng)簽署CRL(即,散列和經(jīng)加密CRL)以得到經(jīng)解密和散列的CRL(即,CRL的摘要)。這接著與散列CRL進(jìn)行比較。因此,檢驗過程可能頻繁地涉及散列CRL以與經(jīng)解密和散列的CRL進(jìn)行比較的步驟。CRL方案的特性之一是,證書的確認(rèn)(對照CRL)可與獲得CRL分離執(zhí)行。CRL也由相干證書的發(fā)布者簽署,且以類似于證書的檢驗的方式使用以上述方式發(fā)布CRL的CA的公共密鑰而被檢驗。存儲器裝置檢驗簽名是CRL的,且CRL的發(fā)布者與證書的發(fā)布者匹配。CRL方案的另一特性是,可借助與證書本身完全相同的手段,即經(jīng)由非置信服務(wù)器和非置信通信來分布CRL。CRL及其特性在X.509標(biāo)準(zhǔn)中詳細(xì)闡釋。CRL的SSA基礎(chǔ)結(jié)構(gòu)SSA為使用CRL方案的主機的撤回提供基礎(chǔ)結(jié)構(gòu)。當(dāng)以CRL撤回方案向基于RSA的ACR驗證時,主機向設(shè)定證書命令添加一個CRL(如果發(fā)布者CA未撤回任何證書,那么可能為空的CRL)作為額外字段。此字段將含有由證書的發(fā)布者簽署的CRL。當(dāng)此字段存在時,存儲器裝置10首先檢驗設(shè)定證書命令中的證書。獲得和存取CRL儲存庫完全是主機的責(zé)任。CRL以其在期間有效的時間周期(CRL期滿時間周期或CET)來發(fā)布。在檢驗期間,如果發(fā)現(xiàn)當(dāng)前時間不在此時間周期內(nèi),那么認(rèn)為CRL有缺陷,且不能用于證書檢驗。因而結(jié)果是,證書的驗證失敗。在常規(guī)證書檢驗方法中,驗證或檢驗實體預(yù)期擁有或能夠從證書授權(quán)方(CA)檢索證書撤回列表,并對照列表檢査經(jīng)呈現(xiàn)用于驗證的證書的序列號以確定所呈現(xiàn)的證書是否已被撤回。在驗證或檢驗實體為存儲器裝置的情況下,存儲器裝置可能未獨立地用于從CA檢索證書撤回列表。如果證書撤回列表預(yù)先存儲在裝置中,那么此列表可變得過期使得安裝日期之后撤回的證書將不會出現(xiàn)在列表上。這將使用戶能夠使用撤回的證書存取存儲裝置。這是不合需要的。在一個實施例中,上述問題可由一系統(tǒng)解決,其中希望被驗證的實體將證書撤回列表連同待驗證的證書一起提供到驗證實體(其可為存儲器裝置10)。驗證實體接著檢驗證書和所接收的證書撤回列表的真實性。驗證實體通過檢査證書的識別信息(例如證書的序列號)是否存在于列表上來檢査證書是否在撤回列表上。鑒于以上內(nèi)容,不對稱驗證方案可用于主機裝置與存儲器裝置IO之間的相互驗證。希望向存儲器裝置IO驗證的主機裝置將需要提供其證書鏈和相應(yīng)CRL兩者。另一方面,主機裝置已用于連接到CA以獲得CRL,使得當(dāng)存儲器裝置IO將由主機裝置驗證時,存儲器裝置不需要將CRL連同其證書或證書鏈一起呈現(xiàn)給主機裝置。近年來,存在可用于播放內(nèi)容的擴增數(shù)目的不同類型的便攜式裝置,例如不同內(nèi)嵌式或獨立音樂播放器、mp3播放器、蜂窩式電話、個人數(shù)字助理和筆記本計算機。雖然有可能將此類裝置連接到環(huán)球網(wǎng)以便存取來自證書授權(quán)方的證書檢驗列表,但許多用戶通常不每日連接到網(wǎng)絡(luò),而是將連接到網(wǎng)絡(luò)僅為了獲得新內(nèi)容或更新預(yù)訂(例如每隔幾個星期)。因此,此類用戶必須較頻繁地從證書授權(quán)方獲得證書撤回列表可能是麻煩的。對于此類用戶,證書撤回列表以及(任選地)將需要呈現(xiàn)到存儲裝置以存取受保護(hù)內(nèi)容的主機證書可存儲在存儲裝置本身的優(yōu)選未受保護(hù)區(qū)域中。在許多類型的存儲裝置(例如,快閃存儲器)中,存儲裝置的未受保護(hù)區(qū)域由主機裝置而不是由存儲裝置本身管理。42以此方式,用戶不需要(通過主機裝置)必須連接到網(wǎng)絡(luò)以獲得更多最新證書撤回列表。主機裝置可簡單地從存儲裝置的未受保護(hù)區(qū)域檢索此類信息,并接著轉(zhuǎn)向且將此類證書和列表呈現(xiàn)到存儲裝置或存儲器裝置以存取存儲裝置中的受保護(hù)內(nèi)容。由于用于存取受保護(hù)內(nèi)容的證書及其相應(yīng)證書撤回列表通常在某些時間周期內(nèi)有效,所以只要其仍有效,用戶就將不必獲得最新證書或證書撤回列表。以上特征使用戶能夠在適當(dāng)長的周期期間在證書和證書撤回列表兩者均仍有效的情況下便利地存取證書和證書撤回列表,而不必連接到證書授權(quán)方來獲得更新的信息。上述過程在圖30和31的流程圖中說明。如圖30所示,主機24從存儲器裝置10的未受保護(hù)的公共區(qū)域讀取關(guān)于主機將呈現(xiàn)給存儲器裝置以用于驗證的證書的CRL(方框652)。由于CRL存儲在存儲器的未受保護(hù)區(qū)域中,所以在主機可獲得CRL之前不需要驗證。因為CRL存儲在存儲器裝置的公共區(qū)域中,所以CRL的讀取受主機裝置24控制。主機又將CRL和待檢驗的證書一起發(fā)送到存儲器裝置(方框654),且除非其從存儲器裝置10接收到失敗通知,否則行進(jìn)到下一階段(方框656)。參看圖31,存儲器裝置從主機接收CRL和證書(方框658)并檢查證書序列號是否在CRL上(方框660),以及檢査其它方面(例如,CRL是否已期滿)。如果發(fā)現(xiàn)證書序列號在CRL上或由于其它原因而失敗,那么存儲器裝置接著將失敗通知發(fā)送到主機(方框662)。以此方式,不同的主機可獲得存儲在存儲器裝置的公共區(qū)域中的CRL,因為所述同一CRL可用于不同主機的驗證。如上所述,為了用戶的便利,將使用CRL檢驗的證書也可與CRL—起優(yōu)選地存儲在存儲器裝置IO的未受保護(hù)區(qū)域中。然而,證書可用于僅由證書被發(fā)布到的主機向存儲器裝置驗證。在CRL在其字段中含有下一更新的時間(如圖32中所說明)的情況下,裝置10中的SSA還對照此時間檢査當(dāng)前時間以査看當(dāng)前時間是否在此時間之后;如果是,那么驗證也失敗。SSA因此優(yōu)選地對照當(dāng)前時間(或?qū)φ沾鎯ζ餮b置IO接收到CRL時的時間)檢查下一更新的時間以及CET兩者。如上所述,如果CRL含有被撤回證書的識別信息的長列表,那么處理(例如散列)和搜索列表以獲得由主機呈現(xiàn)的證書的序列號可能花費較長時間,尤其是在處理和搜索依序?qū)嵭械那闆r下。因此,為了加速過程,這些可同時實行。此外,如果需要在處理和搜索整個CRL之前接收整個CRL,那么過程也可能耗時。申請人認(rèn)識到,可通過處理和搜索CRL的若干部分(在其被接收時(在進(jìn)行中))來加速過程,使得當(dāng)接收到CRL的最后部分時,過程即將完成。圖33和34說明撤回方案的以上特征。在驗證實體(例如,存儲器裝置,比如存儲器卡)處,從希望被驗證的實體接收證書和CRL(方框702)。處理(例如散列)未加密CRL的若干部分,且對這些部分同時執(zhí)行搜索以用于所呈現(xiàn)的證書的識別(例如,序列號)。將經(jīng)處理(例如散列)的CRL部分編譯為完整的散列CRL,其與通過用從希望被驗證的實體接收的部分編譯經(jīng)解密CRL部分而形成的完整的經(jīng)解密和散列的CRL進(jìn)行比較。如果比較指示比較中不存在匹配,那么驗證失敗。驗證實休還對照當(dāng)前時間檢查下一更新的時間以及CET兩者(方框706、708)。如果發(fā)現(xiàn)所呈現(xiàn)的證書的識別信息在CRL上或當(dāng)前時間不在CET內(nèi),或如果下一更新的CRL的時間已過去,那么驗證也失敗(方框710)。在一些實施方案中,為編譯而存儲散列CRL部分和經(jīng)解密散列CRL部分可能不需要大量存儲器空間。當(dāng)實體(例如,主機)希望被驗證時,其將把其證書和CRL發(fā)送到驗證實體(方框722),并行進(jìn)到下一階段(方框724)。這在圖34中說明。如果實體呈現(xiàn)用于識別的證書鏈,那么可實施與上文類似的過程。在此情況下,將需要針對鏈中每一證書以及其相應(yīng)CRL重復(fù)上述過程。每一證書及其CRL可在其被接收時處理,而不用等待接收證書鏈的其余部分以及其相應(yīng)CRL。身份對象(IDO)身份對象是經(jīng)設(shè)計以允許存儲器裝置10(例如,快閃存儲器卡)存儲RSA密鑰對或其它類型的密碼ID的受保護(hù)對象。身份對象包含可用于簽署和檢驗身份以及加密和解密數(shù)據(jù)的任何類型的密碼ID。身份對象還包含來自CA的證書(或來自多個CA的證書鏈),其鑒定密鑰對中的公共密鑰為真。身份對象可用于提供外部實體或內(nèi)部卡實體(即,裝置本身、內(nèi)部應(yīng)用程序等,稱為身份對象的所有者)的身份的證明。因此,卡不使用RSA密鑰對或其它類型的密碼ID來通過詢問響應(yīng)機制驗證主機,而是作為通過簽署提供到其處的數(shù)據(jù)流進(jìn)行識別的證明。換句話說,身份對象含有其所有者的密碼ID。為了存取身份對象中的密碼ID,主機將首先需要被驗證。如下文所描述,借助ACR來控制驗證過程。在主機已被成功驗證之后,身份對象所有者可使用密碼ID向另一方建立所有者的身份。舉例來說,密碼ID(例如,公共-專用密鑰對的專用密鑰)可用于簽署由另一方通過主機呈現(xiàn)的數(shù)據(jù)。代表身份對象所有者向另一方呈現(xiàn)身份對象中的經(jīng)簽署的數(shù)據(jù)和證書。證書中的公共-專用密鑰對的公共密鑰由CA(即,置信授權(quán)方)鑒定為真,使得另一方可信任此公共密鑰為真。另一方可接著使用證書中的公共密鑰解密經(jīng)簽署的數(shù)據(jù),且將經(jīng)解密數(shù)據(jù)與由另一方發(fā)送的數(shù)據(jù)進(jìn)行比較。如果經(jīng)解密數(shù)據(jù)與由另一方發(fā)送的數(shù)據(jù)匹配,那么這展示身份對象的所有者確實能夠存取真實的專用密鑰,且因此確實是其所代表的實體。身份對象的第二用途是保護(hù)使用密碼ID(例如RSA密鑰本身)向IDO的所有者指定的數(shù)據(jù)。所述數(shù)據(jù)預(yù)期使用IDO公共密鑰來加密。存儲器裝置10(例如,存儲器卡)將使用所述專用密鑰來解密所述數(shù)據(jù)。IDO是可針對任何類型的ACR創(chuàng)建的對象。在一個實施例中,ACR可僅具有一個IDO對象。數(shù)據(jù)簽署和保護(hù)特征均是SSA系統(tǒng)正提供給能夠向ACR驗證的任何實體的服務(wù)。IDO的保護(hù)等級與ACR的登錄驗證方案一樣高??舍槍Ρ厝痪哂蠭DO的ACR選擇任何驗證算法。由創(chuàng)建者(主機)來決定和評估哪一算法可較好地保護(hù)IDO使用。具有IDO的ACR響應(yīng)于獲取IDO公共密鑰的命令而提供其證書鏈。當(dāng)IDO正用于數(shù)據(jù)保護(hù)時,從卡輸出的經(jīng)解密數(shù)據(jù)可能需要進(jìn)一步保護(hù)。在此情況下,鼓勵主機使用通過可用驗證算法的任一者建立的安全通道。當(dāng)創(chuàng)建IDO時,選擇密鑰長度以及PKCS弁1版本。在一個實施例中,公共和專用密鑰使用如PKCS#1v2.1中定義的(指數(shù),模數(shù))表示形式。在一個實施例中,創(chuàng)建IDO期間所包含的數(shù)據(jù)是選定長度中的RSA密鑰對,以及遞歸地證實公共密鑰的真實性的證書鏈。擁有IDO的ACR將允許簽署用戶數(shù)據(jù)。這通過兩個SSA命令來完成設(shè)定用戶數(shù)據(jù)提供待簽署的自由格式數(shù)據(jù)緩沖器。獲取SSA簽名。卡將提供RSA簽名(使用ACR專用密鑰)。所述簽名的格式和大小可依據(jù)對象類型根據(jù)PKCS#1V1.5或V2.1來設(shè)定。使用IDO的操作在圖35-37中說明,其中存儲器裝置IO為快閃存儲器卡,且所述卡是IDO的所有者。圖35說明卡在簽署發(fā)送到主機的數(shù)據(jù)時所實行的過程。參看圖35,在主機如由上述樹結(jié)構(gòu)的節(jié)點處的ACR所控制而被驗證(方框802)之后,卡等待主機對于證書的請求(菱形804)。在接收到請求之后,卡發(fā)送證書并返回到菱形804以進(jìn)行下一主機請求(方框806)。如果需要發(fā)送證書鏈以證明卡所擁有的IDO的公共密鑰,那么重復(fù)以上動作直到鏈中所有證書已發(fā)送到主機為止。在每一證書已發(fā)送到主機之后,卡等待來自主機的其它命令(菱形808)。如果在預(yù)設(shè)時間周期內(nèi)未從主機接收到命令,那么卡返回到菱形804。在從主機接收數(shù)據(jù)和命令后,卡檢查確認(rèn)命令是否用于簽署數(shù)據(jù)(菱形810)。如果命令是用于簽署數(shù)據(jù),那么卡用IDO中的專用密鑰簽署數(shù)據(jù)并將經(jīng)簽署數(shù)據(jù)發(fā)送到主機(方框812)且返回到菱形804。如果來自主機的命令不是用于簽署45來自主機的數(shù)據(jù),那么卡使用IDO中的專用密鑰來解密所接收的數(shù)據(jù)(方框814)并返回到菱形804。圖36說明在卡簽署待發(fā)送到主機的數(shù)據(jù)時主機所實行的過程。參看圖36,主機將驗證信息發(fā)送到卡(方框822)。在如由上述樹結(jié)構(gòu)的節(jié)點處的ACR所控制而成功驗證之后,主機將對證書鏈的請求發(fā)送到卡并接收鏈(方框824)。在已檢驗卡的公共密鑰之后,主機將數(shù)據(jù)發(fā)送到卡以用于簽署并接收由卡的專用密鑰簽署的數(shù)據(jù)(方框826)。圖37說明當(dāng)主機使用卡的公共密鑰加密數(shù)據(jù)并將經(jīng)加密數(shù)據(jù)發(fā)送到卡時主機所實行的過程。參看圖37,主機將驗證信息發(fā)送到卡(方框862)。在由ACR控制的驗證成功執(zhí)行之后,主機將對檢驗IDO中卡的公共密鑰所需的證書鏈的請求發(fā)送到卡(方框864)并將對數(shù)據(jù)的請求發(fā)送到卡。在已檢驗IDO中卡的公共密鑰之后,主機使用卡的經(jīng)檢驗公共密鑰加密來自卡的數(shù)據(jù)并將其發(fā)送到卡(方框866、868)。查詢主機和應(yīng)用程序需要擁有關(guān)于正與其一起工作的存儲器裝置或卡的某些信息以便執(zhí)行系統(tǒng)操作。舉例來說,主機和應(yīng)用程序可能需要知道存儲在存儲器卡上的哪些應(yīng)用程序可用于調(diào)用。主機所需的信息有時不是公共知識,這意味著并非每個人有權(quán)擁有所述信息。因此,為了區(qū)分經(jīng)授權(quán)和未經(jīng)授權(quán)用戶,需要提供可由主機使用的兩種查詢方法。一般信息查詢。此查詢給出沒有限制的系統(tǒng)公共信息。存儲在存儲器裝置中的機密信息包括兩個部分共享部分和非共享部分。機密信息的一個部分包含可由個別實體專有的信息,使得應(yīng)允許每一實體僅存取其自身的專有信息,而不能存取其它方的專有機密信息。此類型的機密信息不共享,且形成機密信息的非共享部分。通常認(rèn)為是公共的某些信息在一些情況下可能被視為機密的,例如駐存在卡中的應(yīng)用程序的名稱及其生命周期狀態(tài)。此情形的另一實例可能是根ACR名稱'其被認(rèn)為是公共的但對于一些SSA使用情況可能是機密的。對于這些情況,系統(tǒng)將響應(yīng)于一般信息查詢提供保持此信息僅可由所有經(jīng)驗證用戶而不可由未經(jīng)驗證用戶使用的選項。此類信息組成機密信息的共享部分。機密信息的共享部分的實例可包含根ACR列表一當(dāng)前存在于裝置上的所有根ACR的列表。通過一般信息査詢對公共信息的存取不需要主機/用戶登錄到ACR中。因此已知SSA標(biāo)準(zhǔn)的任何人可執(zhí)行和接收所述信息。根據(jù)SSA術(shù)語,此查詢命令在無對話號的情況下被處置。然而,如果需要實體對機密信息的共享部分的存取,那么所述實體需要首先通過控制對存儲器裝置中的數(shù)據(jù)的存取的控制結(jié)構(gòu)的任一者(例如,ACR的任一者)經(jīng)驗46證。在成功驗證之后,實體將能夠通過一般信息查詢存取機密信息的共享部分。如上文所闡釋,驗證過程將產(chǎn)生用于存取的SSA對話號或id。謹(jǐn)慎信息査詢關(guān)于個別ACR及其系統(tǒng)存取和資產(chǎn)的專用信息視為謹(jǐn)慎的且需要明確驗證。因此,這種查詢要求在接收對信息査詢的授權(quán)之前進(jìn)行ACR登錄和驗證(如果驗證由ACR指定的話)。此查詢需要SSA對話號。在詳細(xì)描述兩種類型的査詢之前,首先描述索引群組的概念作為用于實施查詢的實踐解決方案將是有用的。索引群組主機上的操作系統(tǒng)(OS)和系統(tǒng)驅(qū)動程序請求在潛在SSA主機上運行的應(yīng)用程序以指定既定被讀取的扇區(qū)數(shù)目。這又意味著主機應(yīng)用程序需要知道對于每個SSA讀取操作需要讀取多少扇區(qū)。因為査詢操作的性質(zhì)是供應(yīng)一般不為請求信息的人知道的信息,所以主機應(yīng)用程序發(fā)布查詢和猜測此操作所需的扇區(qū)數(shù)目較困難。為了解決此問題,SSA查詢輸出緩沖器每査詢請求僅由一個扇區(qū)(512字節(jié))組成。作為輸出信息的一部分的對象以稱為索引群組的群組來組織。每一類型的對象可具有不同字節(jié)大小,這慮及可適合單一扇區(qū)的對象的數(shù)目。這定義此對象的索引群組。如果對象具有20字節(jié)大小,那么此對象的索引群組將含有至多達(dá)25個對象。如果存在總共56個此類對象,那么其原本將組織在3個索引群組中,其中對象"0"(第一對象)將開始第一索引群組,對象"25"將開始第二索引群組,且對象50將開始第3(最后一個)索引群組。系統(tǒng)查詢(一般信息查詢)此查詢提供關(guān)于裝置中所支持的SSA系統(tǒng)和如同在裝置上運行的不同樹和應(yīng)用程序被設(shè)置的當(dāng)前系統(tǒng)的一般公共信息。類似于下文描述的ACR查詢(謹(jǐn)慎查詢),系統(tǒng)査詢將經(jīng)構(gòu)造以給出若干査詢選項一般一支持SSA的版本。SSA應(yīng)用程序一當(dāng)前存在于裝置上的所有SSA應(yīng)用程序(包含其運行狀態(tài))的列表。上文列舉的信息是公共信息。與ACR査詢一樣,為了排除主機需要知道針對查詢輸出緩沖器讀取多少扇區(qū),將有一個扇區(qū)從裝置發(fā)送回,同時仍使主機能夠進(jìn)一步查詢額外索引群組。因此,如果根ACR對象的數(shù)目超過針對索引群組"0"的輸出緩沖器大小,那么主機可關(guān)于隨后的索引群組("1")發(fā)送另一査詢請求。ACR查詢(謹(jǐn)慎信息査詢)SSAACR査詢命令希望向ACR用戶供應(yīng)關(guān)于ACR的系統(tǒng)資源(比如密鑰和應(yīng)用程序ID、分區(qū)和子代ACR)的信息。查詢信息僅關(guān)于登錄的ACR且沒有關(guān)于系統(tǒng)樹上的其它ACR的信息。換句話說,存取僅限于機密信息的在所涉及的ACR的許可下可存取的所述部分。存在用戶可查詢的三種不同的ACR對象分區(qū)一名稱和存取權(quán)(所有者、讀取、寫入)。密鑰ID和應(yīng)用程序ID—名稱和存取權(quán)(所有者、讀取、寫入)。子代ACR—直接子代ACR的ACR和AGP名稱。IDO和安全數(shù)據(jù)對象(下文描述)一名稱和存取權(quán)(所有者、讀取、寫入)。因為與ACR連接的對象的數(shù)目可變化且信息可能多于512字節(jié)(一個扇區(qū))。在事先不知道對象的數(shù)目的情況下,用戶沒有辦法知道需要從裝置中的SSA系統(tǒng)讀取多少扇區(qū)以便獲取完全列表。因此,SSA系統(tǒng)提供的每一對象列表劃分為索引群組,類似于上述系統(tǒng)查詢的情況。索引群組是配合到一個扇區(qū)中的對象的數(shù)目,即可在一個扇區(qū)中將多少對象從裝置中的SSA系統(tǒng)發(fā)送到主機。這使裝置中的SSA系統(tǒng)發(fā)送所請求索引群組的一個扇區(qū)。主機/用戶將接收所查詢對象的緩沖器,緩沖器中的對象的數(shù)目。如果緩沖器已滿,那么用戶可査詢下一對象索引群組。圖38是說明涉及一般信息查詢的操作的流程圖。參看圖38,當(dāng)SSA系統(tǒng)從實體接收一般信息查詢時(方框902),系統(tǒng)確定實體是否己被驗證(菱形904)。如果其已被驗證,那么系統(tǒng)向?qū)嶓w供應(yīng)公共信息和機密信息的共享部分(方框卯6)。如果其未被驗證,那么系統(tǒng)僅向?qū)嶓w供應(yīng)公共信息(方框908)。圖39是說明涉及謹(jǐn)慎信息查詢的操作的流程圖。參看圖39,當(dāng)SSA系統(tǒng)從實體接收謹(jǐn)慎信息査詢時(方框922),系統(tǒng)確定實體是否已被驗證(菱形924)。如果其已被驗證,那么系統(tǒng)向?qū)嶓w供應(yīng)機密信息(方框926)。如果其未被驗證,那么系統(tǒng)拒絕實體對機密信息的存取(方框928)。特征集延伸(FSE)在許多情況下,非常有利的是在卡上的SSA內(nèi)部運行數(shù)據(jù)處理活動(例如,DRM許可證對象確認(rèn))。所得系統(tǒng)相對于其中所有數(shù)據(jù)處理任務(wù)均在主機上執(zhí)行的替代解決方案來說將較安全、較有效,且較不依賴于主機。SSA安全性系統(tǒng)包括一組驗證算法和授權(quán)策略,其經(jīng)設(shè)計以控制對由存儲器卡存儲、管理和保護(hù)的對象的集合的存取及其使用。一旦主機獲得存取權(quán),主機就將接著對存儲在存儲器裝置中的數(shù)據(jù)實行處理,其中對存儲器裝置的存取由SSA控制。然而,假定數(shù)據(jù)在性質(zhì)上極大程度上為應(yīng)用特定的,且因此SSA中未定義數(shù)據(jù)格式也未定義數(shù)據(jù)處理,所述SSA不處理存儲在裝置上的數(shù)據(jù)。本發(fā)明的一個實施例基于以下認(rèn)識SSA系統(tǒng)可經(jīng)增強以允許主機執(zhí)行通常由主機在存儲器卡中執(zhí)行的功能中的一些功能。因此,主機的一些軟件功能可分為兩個部分一個部分仍由主機執(zhí)行且另一部分現(xiàn)由卡執(zhí)行。這增強了針對許多應(yīng)用程序的數(shù)據(jù)處理的安全性和效率。出于這個目的,可添加稱為FSE的機制以增強SSA的能力。FSE中由卡以此方式執(zhí)行的主機應(yīng)用程序在本文中也稱為內(nèi)部應(yīng)用程序或裝置內(nèi)部應(yīng)用程序。增強的SSA系統(tǒng)提供用以延伸基本SSA命令集的機制,其經(jīng)由卡應(yīng)用程序的引入提供對卡的驗證和存取控制。假定卡應(yīng)用程序除了SSA的那些服務(wù)以外還實施其它服務(wù)(例如,DRM方案、電子商務(wù)交易)。SSA特征集延伸(FSE)是經(jīng)設(shè)計以增強具有數(shù)據(jù)處理軟件/硬件模塊(其可為專有的)的標(biāo)準(zhǔn)SSA安全性系統(tǒng)的機制。由SSAFSE系統(tǒng)定義的服務(wù)使主機裝置除了可使用上述查詢獲得的信息外還能夠向卡查詢可用應(yīng)用程序,選擇特定應(yīng)用程序并與特定應(yīng)用程序通信。上文描述的一般和謹(jǐn)慎查詢可用于此目的。利用延伸SSAFSE中的卡特征集的兩種方法提供服務(wù)一通過允許經(jīng)授權(quán)實體使用稱為通信管道的命令通道(其可為專有的)直接與內(nèi)部應(yīng)用程序通信來啟用此特征。SSA標(biāo)準(zhǔn)存取控制策略的延伸一通過使內(nèi)部受保護(hù)數(shù)據(jù)對象(例如,CEK、安全數(shù)據(jù)對象或下文描述的SDO)與內(nèi)部卡應(yīng)用程序相關(guān)聯(lián)來啟用此特征。每當(dāng)存取此對象時,如果滿足所定義的標(biāo)準(zhǔn)SSA策略,那么調(diào)用相關(guān)聯(lián)的應(yīng)用程序以借此除了標(biāo)準(zhǔn)SSA策略外還強加至少一個條件。此條件優(yōu)選地將不與標(biāo)準(zhǔn)SSA策略沖突。僅當(dāng)同樣滿足此額外條件時才準(zhǔn)予存取權(quán)。在進(jìn)一步詳細(xì)闡述FSE的能力之前,現(xiàn)將敘述FSE的結(jié)構(gòu)方面以及通信管道和SDO。SSM模塊和相關(guān)模塊圖40A是連接到主機裝置24的存儲器裝置10(例如,快閃存儲器卡)中的系統(tǒng)結(jié)構(gòu)1000的功能方框圖,其用以說明本發(fā)明的一實施例???0的存儲器裝置中的軟件模塊的主要組件如下SSA傳送層1002SSA傳送層依賴于卡協(xié)議。其在卡IO的協(xié)議層上處置主機側(cè)SSA請求(命令),且接著將其中繼到SSMAPI。所有主機-卡同步和SSA命令識別均在此模塊處完成。傳送層還負(fù)責(zé)主機24與卡IO之間的所有SSA數(shù)據(jù)傳遞。安全服務(wù)模塊核心(SSM核心)1004此模塊是SSA實施方案的重要部分。SSM核心實施SSA結(jié)構(gòu)。更明確地說,SSM核心實施SSA樹和ACR系統(tǒng)以及上文描述的組成系統(tǒng)的所有相應(yīng)規(guī)則。SSM核心模塊使用密碼庫1012來支持SSA安全性和密碼特征,例如加密、解密和散列。SSM核心API1006這是其中主機和內(nèi)部應(yīng)用程序?qū)⑴cSSM核心介接以實行SSA操作的層。如圖40A所示,主機24和內(nèi)部裝置應(yīng)用程序IOIO兩者將使用相同API。安全應(yīng)用程序管理器模塊(SAMM)1008SAMM不是SSA系統(tǒng)的一部分,但其是卡中控制與SSA系統(tǒng)介接的內(nèi)部裝置應(yīng)用程序的重要模塊。SAMM管理所有內(nèi)部裝置運行應(yīng)用程序,其包含1.應(yīng)用程序生命周期監(jiān)視和控制。2.應(yīng)用程序初始化。3.應(yīng)用程序/主機/SSM接口。裝置內(nèi)部應(yīng)用程序1010這些是經(jīng)批準(zhǔn)在卡側(cè)運行的應(yīng)用程序。其由SAMM管理且可能夠存取SSA系統(tǒng)。SSM核心還提供主機側(cè)應(yīng)用程序與內(nèi)部應(yīng)用程序之間的通信管道。此類內(nèi)部運行應(yīng)用程序的實例是DRM應(yīng)用程序和一次性密碼(OTP)應(yīng)用程序,如下文進(jìn)一步闡釋。裝置管理系統(tǒng)(DMS)1011這是含有在運輸后(通常稱為發(fā)布后)模式中更新卡的系統(tǒng)和應(yīng)用程序固件以及添加/去除服務(wù)所需的過程和協(xié)議的模塊。圖40B是SSM核心1004的內(nèi)部軟件模塊的功能方框圖。如圖40B所示,核心1004包含SSA命令處置器1022。處置器1022在源自主機或源自裝置內(nèi)部應(yīng)用程序1010的SSA命令傳遞到SSA管理器1024之前解析所述命令。所有SSA安全性數(shù)據(jù)結(jié)構(gòu)(例如AGP和ACR)以及所有SSA規(guī)則和策略均存儲在SSA數(shù)據(jù)庫1026中。SSA管理器1024實施由ACR和AGP以及存儲在數(shù)據(jù)庫1026中的其它控制結(jié)構(gòu)施加的控制。例如IDO和安全數(shù)據(jù)對象等其它對象也存儲在SSA數(shù)據(jù)庫1026中。SSA管理器1024實施由ACR和AGP以及存儲在數(shù)據(jù)庫1026中的其它控制結(jié)構(gòu)施加的控制。不涉及SSA的非安全操作由SSA非安全操作模塊1028處置。SSA結(jié)構(gòu)下的安全操作由SSA安全操作模塊1030處置。模塊1032是將模塊1030連接到密碼庫1012的接口。1034是將模塊1026和1028連接到圖1中的快閃存儲器20的層。通信(或通過)管道通過管道對象使經(jīng)授權(quán)主機側(cè)實體能夠與如由SSM核心和SAMM控制的內(nèi)部應(yīng)用程序通信。主機與內(nèi)部應(yīng)用程序之間的數(shù)據(jù)傳遞在發(fā)送和接收命令(下文定義)上實行。實際命令是應(yīng)用程序特定的。創(chuàng)建管道的實體(ACR)將需要提供管道名稱和其將開放通道到的應(yīng)用程序的ID。與所有其它受保護(hù)對象一樣,ACR變成其所有者且被允許根據(jù)標(biāo)準(zhǔn)授權(quán)規(guī)則和限制向其它ACR授權(quán)使用權(quán)以及所有權(quán)。如果在經(jīng)驗證實體的ACAM中已設(shè)定創(chuàng)建—管道許可,那么經(jīng)驗證實體將被允許創(chuàng)建管道對象。僅當(dāng)在內(nèi)部應(yīng)用程序的PCR中已設(shè)定寫入或讀取管道許可時,才允許與內(nèi)部應(yīng)用程序的通信。僅當(dāng)實體是管道所有者或在其PCR中已設(shè)定授權(quán)存取權(quán)時,才允許所有權(quán)和存取權(quán)授權(quán)。與當(dāng)向另一ACR授權(quán)所有權(quán)權(quán)利時的所有其它許可一樣,原始所有者將優(yōu)選地從所有其對此裝置應(yīng)用程序的許可剝離。優(yōu)選地,僅針對特定應(yīng)用程序創(chuàng)建一個通信管道。創(chuàng)建第二管道并將其連接到已連接的應(yīng)用程序的嘗試將優(yōu)選地被SSM系統(tǒng)1000拒絕。因此,優(yōu)選地,裝置內(nèi)部應(yīng)用程序1010的一者與通信管道之間存在一對一關(guān)系。然而,多個ACR可與一個裝置內(nèi)部應(yīng)用程序通信(經(jīng)由授權(quán)機制)。單一ACR可與若干裝置應(yīng)用程序通信(經(jīng)由授權(quán)或連接到不同應(yīng)用程序的多個管道的所有權(quán))??刂撇煌艿赖腁CR優(yōu)選地位于完全分離的樹的節(jié)點中,使得通信管道之間不存在串?dāng)_。使用以下命令在主機與特定應(yīng)用程序之間傳遞數(shù)據(jù)寫入通過(WRITEPASSTHROUGH)—將從主機將未格式化數(shù)據(jù)緩沖器傳遞到裝置內(nèi)部應(yīng)用程序。讀取通過(READPASSTHROUGH)—將從主機將未格式化數(shù)據(jù)緩沖器傳遞到裝置內(nèi)部應(yīng)用程序,且一旦內(nèi)部處理完成,就將未格式化數(shù)據(jù)緩沖器輸出回到主機。寫入和讀取通過命令提供主機希望與其通信的裝置內(nèi)部應(yīng)用程序1008的ID作為參數(shù)。將確認(rèn)實體許可,且如果請求實體(即,代管此實體正使用的對話的ACR)具有使用連接到所請求應(yīng)用程序的管道的許可,那么數(shù)據(jù)緩沖器將被解譯且執(zhí)行命令。此通信方法允許主機應(yīng)用程序?qū)①u主/專有特定命令通過SSAACR對話通道傳遞到內(nèi)部裝置應(yīng)用程序。安全數(shù)據(jù)對象(SDO)可結(jié)合FSE使用的有用對象是SDO。SDO充當(dāng)用于敏感信息的安全存儲的通用容器。類似于CEK對象,其為ACR所有,且可在ACR之間授權(quán)存取權(quán)和所有權(quán)。其含有根據(jù)預(yù)定義策略限制而受保護(hù)和使用的數(shù)據(jù),且任選地具有到裝置內(nèi)部應(yīng)用程序1008的鏈接。敏感數(shù)據(jù)優(yōu)選地不由SSA系統(tǒng)使用或解譯,而是由對象的所有者和用戶使用或解譯。換句話說,SSA系統(tǒng)不辨出由其處置的數(shù)據(jù)中的信息。以此方式,對象中的數(shù)據(jù)的所有者和用戶可較不關(guān)注于當(dāng)在主機與數(shù)據(jù)對象之間傳遞數(shù)據(jù)時由于與SSA系統(tǒng)介接而引起的敏感信息的損失。因此,SDO對象由主機系統(tǒng)(或內(nèi)部應(yīng)用程序)創(chuàng)建,且被指派有串ID,與創(chuàng)建CEK的方式類似。在創(chuàng)建后,主機除了名稱外還提供鏈接到SDO的應(yīng)用程序的應(yīng)用程序ID,和將由SSA存儲、進(jìn)行完整性檢驗以及檢索的數(shù)據(jù)區(qū)塊。類似于CEK,優(yōu)選地僅在SSA對話內(nèi)創(chuàng)建SDO。用于打開對話的ACR變成SDO的所有者且有權(quán)將其刪除、寫入和讀取敏感數(shù)據(jù)以及向另一ACR(其子代或在同一AGP內(nèi))授權(quán)所有權(quán)和存取SDO的許可。專門為SDO的所有者保留寫入和讀取操作。寫入操作用所提供的數(shù)據(jù)緩沖器重寫現(xiàn)有SDO對象數(shù)據(jù)。讀取操作將檢索SDO的完整數(shù)據(jù)記錄。向具有適當(dāng)存取許可的非所有者ACR允許SDO存取操作。定義以下操作設(shè)定SDO,應(yīng)用程序ID已定義數(shù)據(jù)將由具有應(yīng)用程序ID的內(nèi)部SSA應(yīng)用程序處理。應(yīng)用程序通過與SDO的關(guān)聯(lián)而被調(diào)用。作為任選結(jié)果,應(yīng)用程序?qū)懭隨DO對象。設(shè)定SDO,應(yīng)用程序ID為空此選項無效且將提示非法命令錯誤。設(shè)定命令需要在卡中運行的內(nèi)部應(yīng)用程序。獲取SDO,應(yīng)用程序ID已定義請求將由具有應(yīng)用程序ID的裝置內(nèi)部應(yīng)用程序處理。應(yīng)用程序通過與SDO的關(guān)聯(lián)而被調(diào)用。輸出(盡管未定義)將被發(fā)送回到請求者。應(yīng)用程序?qū)⑷芜x地讀取SDO對象。獲取SDO,應(yīng)用程序ID為空此選項無效且將提示非法命令錯誤。獲取命令需要在卡中運行的內(nèi)部應(yīng)用程序。SDO相關(guān)許可ACR可以是SDO所有者或僅具有存取許可(設(shè)定、獲取或兩者)。52另外,可準(zhǔn)許ACR將其存取權(quán)傳遞到其不擁有的SDO,傳遞到另一ACR??擅鞔_地準(zhǔn)許ACR創(chuàng)建SDO并在其具有ACAM許可的情況下授權(quán)存取權(quán)。內(nèi)部ACR內(nèi)部ACR類似于任何具有PCR的ACR,只是裝置10的外部實體不能登錄到此ACR。事實上,當(dāng)調(diào)用處于其控制下的對象或與其相關(guān)聯(lián)的應(yīng)用程序時,圖40B的SSA管理器1024自動登錄到內(nèi)部ACR。由于試圖獲取存取權(quán)的實體是卡或存儲器裝置內(nèi)部的實體,所以不需要驗證。SSA管理器1024將簡單地將對話密鑰傳遞到內(nèi)部ACR以啟用內(nèi)部通信。將使用兩個實例說明FSE的能力一次性密碼產(chǎn)生和數(shù)字權(quán)利管理。在描述一次性密碼產(chǎn)生實例之前,將首先敘述雙因素驗證的問題。OTP實施例雙因素驗證(DFA)DFA是驗證協(xié)議,其經(jīng)設(shè)計以通過將額外秘密"第二因素"添加到標(biāo)準(zhǔn)用戶憑證(即,用戶名稱和密碼)來增強向(作為一實例)網(wǎng)絡(luò)服務(wù)服務(wù)器的個人登錄安全性。第二秘密通常是存儲用戶所擁有的物理安全令牌中的某一內(nèi)容。在登錄過程期間,用戶需要提供所擁有的證明作為登錄憑證的一部分。證明所擁有的通常使用的方式是使用一次性密碼(OTP),即僅適于單一登錄的密碼,其由安全令牌產(chǎn)生并從安全令牌輸出。如果用戶能夠提供正確的OTP,那么其被認(rèn)為是擁有令牌的充分證明,因為其不能以密碼方式實行在沒有令牌的情況下計算OTP。由于OTP僅適于一次登錄,所以用戶應(yīng)在登錄時具有令牌,因為從先前登錄俘獲的舊密碼的使用將不再有效。以下段落中描述的產(chǎn)品利用SSA安全性數(shù)據(jù)結(jié)構(gòu),加上一個FSE設(shè)計以計算OTP序列中的下一密碼,從而以多個"虛擬"安全令牌實施快閃存儲器卡,每一"虛擬"安全令牌產(chǎn)生不同序列的密碼(其可用于登錄到不同網(wǎng)站)。此系統(tǒng)的方框圖在圖41中描繪。完整的系統(tǒng)1050包括驗證服務(wù)器1052、因特網(wǎng)服務(wù)器1054和用戶1056以及令牌1058。第一步驟是約定驗證服務(wù)器與用戶之間的共享秘密(也稱為種子供應(yīng))。用戶1056將請求發(fā)布秘密或種子且將把它存儲在安全令牌1058中。下一步驟是將所發(fā)布的秘密或種子與特定網(wǎng)絡(luò)服務(wù)服務(wù)器聯(lián)系。一旦這完成,就可發(fā)生驗證。用戶將指示令牌產(chǎn)生OTP。OTP和用戶名稱及密碼發(fā)送到因特網(wǎng)服務(wù)器1054。因特網(wǎng)服務(wù)器1054將OTP轉(zhuǎn)發(fā)到驗證服務(wù)器1052,從而要求其檢驗用戶身份。驗證服務(wù)器也將產(chǎn)生OTP,且由于其是從與令牌共享的秘密產(chǎn)生,所以其應(yīng)與從令牌產(chǎn)生的otp匹配。如果找到匹配,那么檢驗用戶身份且驗證服務(wù)器將把肯定確認(rèn)傳回到因特網(wǎng)服務(wù)器1054,因特網(wǎng)服務(wù)器1054將完成用戶登錄過程。用于otp產(chǎn)生的fse實施方案具有以下特性otp種子安全地存儲(加密)在卡中。在卡內(nèi)部執(zhí)行密碼產(chǎn)生算法。裝置10可模仿多個虛擬令牌,其每一者存儲不同種子,且可使用不同的密碼產(chǎn)生算法。裝置IO提供安全協(xié)議以將種子從驗證服務(wù)器傳送到裝置中。用于otp種子供應(yīng)和otp產(chǎn)生的ssa特征在圖42中說明,其中實線箭頭說明所有權(quán)或存取權(quán),且虛線箭頭說明關(guān)聯(lián)或鏈路。如圖42所示,在ssafse系統(tǒng)1100中,可通過由n個應(yīng)用程序acru06的每一者控制的一個或一個以上通信管道u04存取軟件程序代碼fse1102。在下文描述的實施例中,僅說明一個fse軟件應(yīng)用程序,且對于每一fse應(yīng)用程序,僅存在一個通信管道。然而,將了解,可利用一個以上fse應(yīng)用程序。雖然圖42中僅說明一個通信管道,但將了解,可使用多個通信管道。所有此類變化均是可能的。參看圖40a、40b和42,fse1102可以是用于otp供應(yīng)的應(yīng)用程序并形成圖40a的裝置內(nèi)部應(yīng)用程序1010的子集??刂平Y(jié)構(gòu)(acr1101、1103、1106、1110)是ssa中的安全性數(shù)據(jù)結(jié)構(gòu)的一部分且存儲在ssa數(shù)據(jù)庫1026中。例如ido1120、sdo對象1122和通信管道1104等數(shù)據(jù)結(jié)構(gòu)也存儲在ssa數(shù)據(jù)庫1026中。參看圖40a和40b,涉及acr和數(shù)據(jù)結(jié)構(gòu)的安全性相關(guān)操作(例如,對話中的數(shù)據(jù)傳遞,和例如加密、解密和散列等操作)由模塊1030在接口1032和密碼庫1012的輔助下處置。ssm核心api1006不區(qū)分涉及與主機交互的acr(夕卜部acr)和不與主機交互的內(nèi)部acr的操作,且因此不區(qū)分涉及主機與裝置內(nèi)部應(yīng)用程序1010的操作。以此方式,相同控制機制用于控制主機側(cè)實體的存取和裝置內(nèi)部應(yīng)用程序1010的存取。這提供在主機側(cè)應(yīng)用程序與裝置內(nèi)部應(yīng)用程序1010之間劃分?jǐn)?shù)據(jù)處理的靈活性。內(nèi)部應(yīng)用程序1010(例如,圖42中的fse1102)與內(nèi)部acr(例如,圖42中的acr1103)相關(guān)聯(lián)且通過內(nèi)部acr的控制被調(diào)用。此外,具有相關(guān)聯(lián)ssa規(guī)則和策略的安全性數(shù)據(jù)結(jié)構(gòu)(例如,acr和agp)優(yōu)選地控制對例如sdo中的內(nèi)容或可從sdo中的內(nèi)容導(dǎo)出的信息等重要信息的存取,使得外部或內(nèi)部應(yīng)用程序僅可根據(jù)ssa規(guī)則和策略存取此內(nèi)容或信息。舉例來說,如果兩個54不同用戶可調(diào)用裝置內(nèi)部應(yīng)用程序1010中的個別一者來處理數(shù)據(jù),那么位于單獨層級樹中的內(nèi)部ACR用于控制所述兩個用戶的存取,使得其間沒有串?dāng)_。以此方式,兩個用戶可存取裝置內(nèi)部應(yīng)用程序1010的共同集來處理數(shù)據(jù),而不會在SDO中的內(nèi)容或信息的所有者方面擔(dān)心失去對內(nèi)容或信息的控制。舉例來說,對存儲由裝置內(nèi)部應(yīng)用程序1010存取的數(shù)據(jù)的SDO的存取可由位于單獨層級樹中的ACR控制,使得其間沒有串?dāng)_。此控制方式類似于上文描述的SSA控制對數(shù)據(jù)的存取的方式。這向內(nèi)容所有者和用戶提供存儲在數(shù)據(jù)對象中的數(shù)據(jù)的安全性。參看圖42,OTP相關(guān)主機應(yīng)用程序所需的軟件應(yīng)用程序代碼的一部分有可能存儲(例如,在存儲器卡發(fā)布之前預(yù)先存儲或在存儲器卡發(fā)布之后加載)在存儲器裝置IO中作為FSE1102中的應(yīng)用程序。為了執(zhí)行此代碼,主機將需要首先通過N個驗證ACR1106的一者驗證,N是正整數(shù),以便獲取對管道1104的存取權(quán)。主機還將需要提供應(yīng)用程序ID以便識別其希望調(diào)用的OTP相關(guān)應(yīng)用程序。在成功驗證之后,可存取此代碼用于通過與OTP相關(guān)應(yīng)用程序相關(guān)聯(lián)的管道1104執(zhí)行。如上所述,管道1104與特定應(yīng)用程序(例如,OTP相關(guān)內(nèi)部應(yīng)用程序)之間優(yōu)選地存在一對一關(guān)系。如圖42所示,多個ACR1106可共享對共同管道1104的控制。ACR也可控制一個以上管道。圖42中說明統(tǒng)稱為對象1114的安全數(shù)據(jù)對象SDO1、SD02和SD03,其每一者含有數(shù)據(jù),例如用于OTP產(chǎn)生的種子,所述種子有價值且優(yōu)選經(jīng)加密。三個數(shù)據(jù)對象與FSE1102之間的鏈路或關(guān)聯(lián)1108說明對象的屬性,即當(dāng)存取對象中的任一者時,具有在SDO的屬性中的應(yīng)用程序ID的FSE1102中的應(yīng)用程序?qū)⒈徽{(diào)用,且所述應(yīng)用程序?qū)⒂纱鎯ζ餮b置的CPU12執(zhí)行而不需要接收任何進(jìn)一步主機命令(圖1)。參看圖42,在用戶能夠開始OTP過程之前,已創(chuàng)建安全性數(shù)據(jù)結(jié)構(gòu)(ACR1101、1103、1106和1110),其PCR用于控制OTP過程。用戶將需要具有存取權(quán)以通過驗證服務(wù)器ACR1106的一者調(diào)用OTP裝置內(nèi)部應(yīng)用程序1102。用戶還將需要具有通過N個用戶ACR1110的一者對將產(chǎn)生的OTP的存取權(quán)??稍贠TP種子供應(yīng)過程期間創(chuàng)建SDO1114。IDO1116優(yōu)選地己創(chuàng)建且由內(nèi)部ACR1103控制。內(nèi)部ACR1103還在創(chuàng)建SDO1114之后控制所述SDO1114。當(dāng)存取SDO1114時,圖40B中的SSA管理器1024自動登錄到ACR1103。內(nèi)部ACR1103與FSE1102相關(guān)聯(lián)。在如虛線1108展示的OTP種子供應(yīng)過程期間,SDO1114可變得與FSE相關(guān)聯(lián)。在關(guān)聯(lián)處于適當(dāng)位置之后,當(dāng)主機存取SDO時,關(guān)聯(lián)1108將促使調(diào)用FSE1102,而沒有來自主機的進(jìn)一步請求。當(dāng)通過N個ACR1106的一者存取通信管道1104時,圖40B中的SSA管理器1024也將自動登錄到55ACR1103。在兩種情況(存取SDO1114和管道1104)下,SSA管理器將把對話號傳遞到FSE1102,所述對話號將識別到達(dá)內(nèi)部ACR1103的通道。OTP操作涉及兩個階段圖43中說明的種子供應(yīng)階段和圖44中說明的OTP產(chǎn)生階段。還將參看圖40-42,其輔助描述。圖43是說明種子供應(yīng)過程的協(xié)議圖。如圖43所示,主機(例如,主機24)以及卡采取各種動作。采取各種動作的卡上的一個實體是圖40A和40B的SSM系統(tǒng),包含SSM核心1004。采取各種動作的卡上的另一實體是圖42所示的FSE1102。在雙因素驗證中,用戶請求發(fā)布種子,且一旦發(fā)布種子,所述種子就將存儲在安全令牌中。在此實例中,安全令牌是存儲器裝置或卡。用戶向圖42中的驗證ACR1106的一者驗證以獲得對SSM系統(tǒng)的存取權(quán)(箭頭1122)。假定驗證成功(箭頭1124),用戶接著請求種子(箭頭1126)。主機通過選擇用于簽署種子請求的特定應(yīng)用程序1102將簽署種子請求的請求發(fā)送到卡。如果用戶不知道需要調(diào)用的特定應(yīng)用程序ID,那么可(例如)通過對裝置的謹(jǐn)慎查詢從裝置IO獲得此信息。用戶接著輸入應(yīng)調(diào)用的應(yīng)用程序的應(yīng)用程序ID,借此還選擇對應(yīng)于應(yīng)用程序的通信管道。用戶命令接著在通過命令中通過相應(yīng)通信管道轉(zhuǎn)發(fā)到由來自用戶的應(yīng)用程序ID指定的應(yīng)用程序(箭頭1128)。所調(diào)用的應(yīng)用程序請求借助所指定IDO(例如,圖42中的IDO1112)中的公共密鑰進(jìn)行簽名。SSM系統(tǒng)使用IDO的公共密鑰簽署種子請求并通知應(yīng)用程序簽署完成(箭頭1132)。所調(diào)用的應(yīng)用程序接著請求IDO的證書鏈(箭頭1134)。作為響應(yīng),SSM系統(tǒng)提供由ACR1103控制的IDO的證書鏈(箭頭1136)。所調(diào)用的應(yīng)用程序接著將經(jīng)簽署的種子請求和IDO的證書鏈通過通信管道提供到SSM系統(tǒng),所述SSM系統(tǒng)將其轉(zhuǎn)發(fā)到主機(箭頭1138)。經(jīng)簽署的種子請求和IDO證書鏈通過通信管道的發(fā)送是通過在圖40A的SAMM1008與SSM核心1004之間建立的回叫功能來進(jìn)行,其中將在下文中詳細(xì)闡述所述回叫功能。主機所接收的經(jīng)簽署的種子請求和IDO證書鏈接著發(fā)送到圖41所示的驗證服務(wù)器1052。由卡提供的證書鏈鑒定經(jīng)簽署的種子請求是源自置信令牌,使得驗證服務(wù)器1052愿意向卡提供秘密種子。驗證服務(wù)器1052因此將以IDO的公共密鑰加密的種子連同用戶ACR信息一起發(fā)送到主機。用戶信息指示產(chǎn)生用戶在其下有權(quán)存取OTP的N個用戶ACR中的哪一者。主機通過供應(yīng)應(yīng)用程序ID來調(diào)用FSE1102中的OTP應(yīng)用程序,借此還選擇對應(yīng)于應(yīng)用程序的通信管道,并將用戶ACR信息轉(zhuǎn)發(fā)到SSM系統(tǒng)(箭頭1140)。經(jīng)加密種子和用戶ACR信息接著通過通信管道轉(zhuǎn)發(fā)到選定的應(yīng)用程序(箭頭1142)。所56調(diào)用的應(yīng)用程序?qū)⑹褂肐DO的專用密鑰解密種子的請求發(fā)送到SSM系統(tǒng)(箭頭1144)。SSM系統(tǒng)解密種子并將解密已完成的通知發(fā)送到應(yīng)用程序(箭頭ii46)。所調(diào)用的應(yīng)用程序接著請求創(chuàng)建安全數(shù)據(jù)對象和將種子存儲在安全數(shù)據(jù)對象中。其還請求使SDO與用于產(chǎn)生一次性密碼的OTP應(yīng)用程序(其可以是正作出請求的同一應(yīng)用程序)的ID相關(guān)聯(lián)(箭頭1148)。SSM系統(tǒng)創(chuàng)建SDO1114的一者并將種子存儲在所述SDO內(nèi)部且使所述SDO與OTP應(yīng)用程序的ID相關(guān)聯(lián),并在完成時將通知發(fā)送到應(yīng)用程序(箭頭1150)。應(yīng)用程序接著請求SSM系統(tǒng)基于主機供應(yīng)的用戶信息向適當(dāng)?shù)挠脩鬉CR授權(quán)內(nèi)部ACR1103存取SDO1114的存取權(quán)(箭頭1152)。在授權(quán)已完成之后,SSM系統(tǒng)通知應(yīng)用程序(箭頭1154)。應(yīng)用程序接著通過回叫功能將SDO的名稱(槽ID)通過通信管道發(fā)送到SSM系統(tǒng)(箭頭1156)。SSM系統(tǒng)接著將其轉(zhuǎn)發(fā)到主機(箭頭1158)。主機接著使SDO的名稱與用戶ACR聯(lián)系,使得用戶現(xiàn)可存取SDO。現(xiàn)將參考圖44中的協(xié)議圖描述OTP產(chǎn)生的過程。為了獲得一次性密碼,用戶將登錄到其有存取權(quán)的用戶ACR(箭頭1172)。假定驗證成功,SSM系統(tǒng)通知主機且主機將"獲取SDO"命令發(fā)送到SSM(箭頭1174、1176)。如上所述,存儲種子的SDO已與用于產(chǎn)生OTP的應(yīng)用程序相關(guān)聯(lián)。因此,代替于與之前一樣通過通信管道選擇應(yīng)用程序,借助由箭頭1176中的命令存取的SDO與OTP產(chǎn)生應(yīng)用程序之間的關(guān)聯(lián)來調(diào)用OTP產(chǎn)生應(yīng)用程序(箭頭1178)。OTP產(chǎn)生應(yīng)用程序接著請求SSM系統(tǒng)從SDO讀取內(nèi)容(即,種子)(箭頭1180)。優(yōu)選地,SSM不知道包含在SDO的內(nèi)容中的信息,且將簡單地如FSE所指示處理SDO中的數(shù)據(jù)。如果種子經(jīng)加密,那么這可能涉及如FSE所命令在讀取之前解密種子。SSM系統(tǒng)從SDO讀取種子,并將種子提供到OTP產(chǎn)生應(yīng)用程序(箭頭1182)。OTP產(chǎn)生應(yīng)用程序接著產(chǎn)生OTP并將其提供到SSM系統(tǒng)(箭頭1184)。OTP接著由SSM轉(zhuǎn)發(fā)到主機(箭頭1186),主機又將OTP轉(zhuǎn)發(fā)到驗證服務(wù)器1052以完成雙因素驗證過程。回叫功能在圖40A的SSM核心1004與SAMM1008之間建立一般回叫功能。可以此功能注冊不同的裝置內(nèi)部應(yīng)用程序和通信管道。因此,當(dāng)調(diào)用裝置內(nèi)部應(yīng)用程序時,應(yīng)用程序可使用此回叫功能在處理之后將數(shù)據(jù)通過曾用于將主機命令傳遞到應(yīng)用程序的相同通信管道傳遞到SSM系統(tǒng)。DRM系統(tǒng)實施例圖45是說明DRM系統(tǒng)的功能方框圖,所述DRM系統(tǒng)使用通信管道1104'、具有到FSE應(yīng)用程序1102'的鏈路1108'的CEK1114',以及用于控制實施DRM功能的功能的控制結(jié)構(gòu)1101'、U03'、1106'。如將注意到,圖45中的結(jié)構(gòu)相當(dāng)類似于圖42的結(jié)構(gòu),只是安全性數(shù)據(jù)結(jié)構(gòu)現(xiàn)包含許可證服務(wù)器ACR1106'和重放ACR1110'以代替驗證服務(wù)器ACR和用戶ACR,及CEK1114'以代替SDO。另外,不涉及IDO,且因此在圖45中省略IDO。可在許可證供應(yīng)過程中創(chuàng)建CEK1114'。協(xié)議46說明用于許可證供應(yīng)和內(nèi)容下載的過程,其中密鑰在許可證對象中提供。如OTP實施例中一樣,希望獲取許可證的用戶將首先需要在N個ACR1106'的一者以及N個ACR1110'的一者下獲取存取權(quán),使得可借助例如媒體播放器軟件應(yīng)用程序等媒體播放器來呈現(xiàn)內(nèi)容。如圖46所示,主機向許可證服務(wù)器ACR1106'驗證(箭頭1202)。假定驗證成功(箭頭1204),許可證服務(wù)器將許可證文件連同CEK(密鑰ID和密鑰值)一起提供給主機。主機還通過將應(yīng)用程序ID供應(yīng)到卡上的SSM系統(tǒng)來選擇待調(diào)用的應(yīng)用程序。主機還發(fā)送播放器信息(例如,關(guān)于媒體播放器軟件應(yīng)用程序的信息)(箭頭1206)。播放器信息將指示播放器在N個重放ACR1110'的哪一者下具有存取權(quán)。SSM系統(tǒng)將許可證文件和CEK通過對應(yīng)于選定的應(yīng)用程序的通信管道轉(zhuǎn)發(fā)到DRM應(yīng)用程序(箭頭1208)。所調(diào)用的應(yīng)用程序接著請求SSM系統(tǒng)將許可證文件寫入到隱藏分區(qū)(箭頭1210)。當(dāng)已如此寫入許可證文件時,SSM系統(tǒng)通知應(yīng)用程序(箭頭1212)。DRM應(yīng)用程序接著請求創(chuàng)建CEK對象1114'并將來自許可證文件的密鑰值存儲在其中。DRM應(yīng)用程序還請求使CEK對象與檢査與所提供的密鑰相關(guān)聯(lián)的許可證的DRM應(yīng)用程序的ID相關(guān)聯(lián)(箭頭1214)。SSM系統(tǒng)完成這些任務(wù)且因此通知應(yīng)用程序(箭頭1216)。應(yīng)用程序接著請求基于主機所發(fā)送的播放器信息將對CEKU14'的讀取存取權(quán)授權(quán)給播放器經(jīng)許可存取其內(nèi)容的重放ACR(箭頭1218)。SSM系統(tǒng)執(zhí)行授權(quán)且因此通知應(yīng)用程序(箭頭1220)。應(yīng)用程序通過通信管道將許可證的存儲已完成的消息發(fā)送到SSM系統(tǒng),且SSM系統(tǒng)將其轉(zhuǎn)發(fā)到許可證服務(wù)器(箭頭1222和1224)?;亟泄δ芡ㄟ^通信管道用于此動作。在接收此通知后,許可證服務(wù)器接著提供用提供到卡的CEK中的密鑰值加密的內(nèi)容文件。經(jīng)加密內(nèi)容由主機存儲在公共卡區(qū)域中。經(jīng)加密內(nèi)容文件的存儲不涉及安全性功能,使得SSM系統(tǒng)不參與到所述存儲中。圖47中說明重放操作。用戶通過主機向適當(dāng)?shù)闹胤臕CR(即,上文在箭頭1152和1154中已將讀取權(quán)授權(quán)到的重放ACR)驗證(箭頭1242)。假定驗證成功(箭頭1244),用戶接著發(fā)送讀取與密鑰ID相關(guān)聯(lián)的內(nèi)容的請求(箭頭1246)。當(dāng)接收請求后,SSM系統(tǒng)將發(fā)現(xiàn)DRM應(yīng)用程序ID與正被存取的CEK對象相關(guān)聯(lián),且因此將促使調(diào)用經(jīng)識別的DRM應(yīng)用程序(箭頭1248)。DRM應(yīng)用程序請求SSM系統(tǒng)讀取與密鑰ID相關(guān)聯(lián)的數(shù)據(jù)(即,許可證)(箭頭1250)。SSM不知道其被請求讀取的數(shù)據(jù)中的信息,且簡單地處理來自FSE的執(zhí)行數(shù)據(jù)讀取過程的請求。SSM系統(tǒng)從隱藏分區(qū)讀取數(shù)據(jù)(即,許可證)并將數(shù)據(jù)提供到DRM應(yīng)用程序(箭頭1252)。DRM應(yīng)用程序接著解譯數(shù)據(jù)并檢査數(shù)據(jù)中的許可證信息以査看許可證是否有效。如果許可證仍有效,那么DRM應(yīng)用程序?qū)⒁虼送ㄖ猄SM系統(tǒng)批準(zhǔn)內(nèi)容解密(箭頭1254)。SSM系統(tǒng)接著使用CEK對象中的密鑰值解密所請求的內(nèi)容并將經(jīng)解密內(nèi)容供應(yīng)到主機以進(jìn)行重放(箭頭1256)。如果許可證不再有效,那么拒絕對內(nèi)容存取的請求。在來自許可證服務(wù)器的許可證文件中未提供密鑰的情況下,許可證供應(yīng)和內(nèi)容下載將稍許不同于圖46中說明的許可證供應(yīng)和內(nèi)容下載。此不同方案在圖48的協(xié)議圖中說明。圖46與48之間的相同步驟由相同標(biāo)號識別。因此,主機和SSM系統(tǒng)首先參與驗證(箭頭1202、1204)。許可證服務(wù)器將許可證文件和密鑰ID(沒有密鑰值)提供到主機,且主機將把這些與其希望調(diào)用的DRM應(yīng)用程序的應(yīng)用程序ID—起轉(zhuǎn)發(fā)到SSM系統(tǒng)。主機還發(fā)送播放器信息(箭頭1206')。SSM系統(tǒng)接著將許可證文件和密鑰ID通過對應(yīng)于選定的應(yīng)用程序的通信管道轉(zhuǎn)發(fā)到選定的DRM應(yīng)用程序(箭頭1208)。DRM應(yīng)用程序請求將許可證文件寫入到隱藏分區(qū)(箭頭1210)。當(dāng)已如此寫入許可證文件時,SSM系統(tǒng)通知DRM應(yīng)用程序(箭頭1212)。DRM應(yīng)用程序接著請求SSM系統(tǒng)產(chǎn)生密鑰值,創(chuàng)建CEK對象,將密鑰值存儲在其中并使CEK對象與DRM應(yīng)用程序的ID相關(guān)聯(lián)(箭頭1214')。在已遵照請求之后,SSM系統(tǒng)將通知發(fā)送到DRM應(yīng)用程序(箭頭1216)。DRM應(yīng)用程序?qū)⒔又埱骃SM系統(tǒng)基于來自主機的播放器信息向重放ACR授權(quán)對CEK對象的讀取存取權(quán)(箭頭1218)。當(dāng)此完成時,SSM系統(tǒng)因此通知DRM應(yīng)用程序(箭頭1220)。DRM應(yīng)用程序接著通知SSM系統(tǒng)已存儲許可證,其中借助回叫功能通過通信管道發(fā)送所述通知(箭頭1222)。此通知由SSM系統(tǒng)轉(zhuǎn)發(fā)到許可證服務(wù)器(箭頭1224)。許可證服務(wù)器接著將與密鑰ID相關(guān)聯(lián)的內(nèi)容文件發(fā)送到SSM系統(tǒng)(箭頭1226)。SSM系統(tǒng)在不涉及任何應(yīng)用程序的情況下用由密鑰ID識別的密鑰值加密內(nèi)容文件。如此加密并存儲在卡上的內(nèi)容可使用圖47的協(xié)議重放。在上文的OTP和DRM實施例中,F(xiàn)SE1102和1102'可含有許多不同OTP和DRM應(yīng)用程序供主機裝置選擇。用戶可具有選擇和調(diào)用所需裝置內(nèi)部應(yīng)用程序的選擇。然而,SSM模塊與FSE之間的總體關(guān)系保持相同,使得用戶和數(shù)據(jù)提供者可使用標(biāo)準(zhǔn)集的協(xié)議來與SSM模塊交互并調(diào)用FSE。用戶和提供者不必涉及到許多不同裝置內(nèi)部應(yīng)用程序(其中一些可能為專用的)的特殊性中。此外,供應(yīng)協(xié)議可能稍許不同,如圖46和48中的情況一樣。在圖46的情況中許可證對象含有密鑰值,但在圖48的情況中沒有密鑰值。此差異要求如上文說明的稍許不同的協(xié)議。然而,圖47中的重放是相同的,不管如何供應(yīng)許可證。因此,此差異將僅關(guān)系到內(nèi)容提供者和分配者,而通常不關(guān)系到消費者,消費者通常僅在重放階段中涉及。此結(jié)構(gòu)因此為內(nèi)容提供者和分配者定制協(xié)議提供巨大靈活性,同時仍容易由消費者使用。顯然,從通過兩組以上供應(yīng)協(xié)議供應(yīng)的數(shù)據(jù)導(dǎo)出的信息可能仍可使用第二協(xié)議存取。以上實施例提供的另一優(yōu)點是,雖然例如用戶的外部實體與裝置內(nèi)部應(yīng)用程序可共享由安全性數(shù)據(jù)結(jié)構(gòu)控制的數(shù)據(jù)的使用,但用戶僅能夠存取由裝置內(nèi)部應(yīng)用程序從所存儲數(shù)據(jù)導(dǎo)出的結(jié)果。因此,在OTP實施例中,用戶通過主機裝置僅能夠獲得OTP,而不能獲得種子值。在DRM實施例中,用戶通過主機裝置僅能夠獲得所呈現(xiàn)的內(nèi)容,而不能獲得對許可證文件或密碼密鑰的存取權(quán)。此特征在不危及安全性的情況下為消費者提供便利。在一個DRM實施例中,裝置內(nèi)部應(yīng)用程序或主機均不具有對密碼密鑰的存取權(quán);僅安全性數(shù)據(jù)結(jié)構(gòu)具有此存取權(quán)。在其它實施例中,除安全性數(shù)據(jù)結(jié)構(gòu)以外的實體也可存取密碼密鑰。所述密鑰也可借助裝置內(nèi)部應(yīng)用程序產(chǎn)生,且接著由安全性數(shù)據(jù)結(jié)構(gòu)控制。對裝置內(nèi)部應(yīng)用程序以及對信息(例如,OTP和所呈現(xiàn)的內(nèi)容)的存取由相同安全性數(shù)據(jù)結(jié)構(gòu)控制。這減小了控制系統(tǒng)的復(fù)雜性和成本。通過提供向控制主機對通過調(diào)用裝置內(nèi)部應(yīng)用程序獲得的信息的存取的ACR授權(quán)來自控制對裝置內(nèi)部應(yīng)用程序的存取的內(nèi)部ACR的存取權(quán)的能力,此特征使得可能實現(xiàn)上文的特征和功能。應(yīng)用程序特定撤回方案當(dāng)調(diào)用裝置內(nèi)部應(yīng)用程序時,還可修改安全性數(shù)據(jù)結(jié)構(gòu)的存取控制協(xié)議。舉例來說,證書撤回協(xié)議可以是使用CRL的標(biāo)準(zhǔn)協(xié)議或?qū)S脜f(xié)議。因此,通過調(diào)用FSE,標(biāo)準(zhǔn)CRL撤回協(xié)議可由FSE專用協(xié)議代替。除了支持CRL撤回方案外,SSA還使駐存在裝置中的特定內(nèi)部應(yīng)用程序能夠通過裝置內(nèi)部應(yīng)用程序與CA或任何其它撤回授權(quán)方之間的專用通信通道調(diào)用主機。內(nèi)部應(yīng)用程序?qū)S贸坊胤桨冈谥鳈C-應(yīng)用程序的關(guān)系方面是受限制的。當(dāng)配置應(yīng)用程序特定撤回方案時,SSA系統(tǒng)將拒絕CRL(如果提供的話),否則將使用證書和專用應(yīng)用程序數(shù)據(jù)(先前通過應(yīng)用程序特定通信管道提供)來決定是否撤回給定的鑒定。如上所述,ACR通過指定撤回值來指定采用三種撤回方案(無撤回方案、標(biāo)準(zhǔn)CRL方案和應(yīng)用程序特定撤回方案)中的哪一種。當(dāng)選擇應(yīng)用程序特定撤回方案選項時,ACR還將針對負(fù)責(zé)撤回方案的內(nèi)部應(yīng)用程序ID指定一ID,且CET/APP—ID字段中的值將對應(yīng)于負(fù)責(zé)撤回方案的內(nèi)部應(yīng)用程序ID。當(dāng)驗證裝置時,SSA系統(tǒng)將接著遵守內(nèi)部應(yīng)用程序的專用方案。代替于用另一協(xié)議集代替一個協(xié)議集,裝置內(nèi)部應(yīng)用程序的調(diào)用可向SSA已施加的存取控制強加額外存取條件。舉例來說,存取CEK中的密鑰值的權(quán)利可由FSE進(jìn)一步審査。在SSA系統(tǒng)確定ACR具有對密鑰值的存取權(quán)之后,將在準(zhǔn)予存取之前咨詢FSE。此特征允許內(nèi)容所有者控制對內(nèi)容的存取方面的巨大靈活性。雖然上文已參考各種實施例描述本發(fā)明,但將了解,可在不脫離本發(fā)明的范圍的情況下作出變化和修改,本發(fā)明的范圍將僅由所附權(quán)利要求書及其等效物界定。6權(quán)利要求1.一種使用證書撤回列表來檢驗證書的方法,其中在裝置處從實體接收所述證書撤回列表的若干部分,所述方法包括使用所述裝置來循序地處理證書撤回列表的所述部分;以及使用所述裝置在所述列表上搜索對所述證書的參考,其中所述處理與搜索同時執(zhí)行。2.根據(jù)權(quán)利要求1所述的方法,其中以時間序列從所述實體接收所述列表的若干部分,且在接收到所述列表的所述部分時同時執(zhí)行所述處理。3.根據(jù)權(quán)利要求l所述的方法,其中所述處理在所述證書撤回列表的若干部分已被處理之后丟棄所述部分。4.根據(jù)權(quán)利要求1所述的方法,其中所述處理包含在所述列表的所述部分被接收時通過散列算法散列所述列表的所述部分,以獲得經(jīng)散列的證書撤回列表。5.根據(jù)權(quán)利要求4所述的方法,其中在所述裝置處接收經(jīng)加密散列證書撤回列表的若干部分,所述處理包含對所述經(jīng)加密散列部分進(jìn)行解密以獲得經(jīng)解密且散列的證書撤回列表,以及將所述經(jīng)散列的證書撤回列表與所述經(jīng)解密且散列的證書撤回列表進(jìn)行比較。6.根據(jù)權(quán)利要求1所述的方法,其中所述部分包含所述列表上被撤回的證書的序列號。7.—種向存儲器系統(tǒng)驗證主機的方法,所述存儲器系統(tǒng)經(jīng)配置以可移除地連接到所述主機,所述存儲器系統(tǒng)包括非易失性存儲器,其存儲至少一個證書撤回列表,所述非易失性存儲器能夠存儲數(shù)據(jù);以及控制器,其通過驗證過程而控制所述主機對所述數(shù)據(jù)的存取,在所述驗證過程中,所述主機將至少一個證書呈現(xiàn)給所述存儲器系統(tǒng);所述方法包括響應(yīng)于來自所述主機的請求,將所述至少一個證書撤回列表提供給所述主機,而無需驗證所述主機;接收由所述主機呈現(xiàn)的所述至少一個證書和所述至少一個證書撤回列表;檢查由所述主機呈現(xiàn)的所述至少一個證書是否在所述至少一個證書撤回列表上;以及當(dāng)由所述主機呈現(xiàn)的所述至少一個證書在所述至少一個證書撤回列表上時,使所述驗證過程失敗。28.—種用于非易失性存儲器裝置與主機之間相互驗證的方法,所述非易失性存儲器裝置可移除地連接到所述主機,其中由所述主機向所述存儲器裝置呈現(xiàn)第一證書和證書撤回列表,所述證書撤回列表用于由所述存儲器裝置對所述第一證書進(jìn)行檢驗;以及由所述存儲器裝置向所述主機呈現(xiàn)用于由所述主機進(jìn)行檢驗的第二證書,而沒有證書撤回列表。9.根據(jù)權(quán)利要求8所述的方法,其中所述非易失性存儲器裝置存儲用于所述主機的所述證書撤回列表,所述方法進(jìn)一步包括所述主機從所述非易失性存儲器裝置獲得所述證書撤回列表。10.根據(jù)權(quán)利要求9所述的方法,其進(jìn)一步包括所述非易失性存儲器裝置從所述主機接收所述證書撤回列表,以用于驗證來自所述主機的所述第一證書。11.一種通過存儲器系統(tǒng)來驗證主機裝置的方法,其包括將所述存儲器系統(tǒng)可移除地連接到所述主機裝置;以及將來自所述主機裝置的證書和證書撤回列表發(fā)送到所述存儲器系統(tǒng)。12.—種經(jīng)配置以可移除地連接到主機的存儲器系統(tǒng),其包括非易失性存儲器,其存儲至少一個證書撤回列表,所述非易失性存儲器能夠存儲數(shù)據(jù);以及控制器,其通過驗證過程控制所述主機對所述數(shù)據(jù)的存取,在所述驗證過程中,所述主機將至少一個證書呈現(xiàn)給所述存儲器系統(tǒng),且所述控制器檢查由所述主機呈現(xiàn)的所述至少一個證書是否在所述至少一個證書撤回列表上,且當(dāng)由所述主機呈現(xiàn)的所述至少一個證書在所述至少一個證書撤回列表上時,使所述驗證過程失敗。13.根據(jù)權(quán)利要求12所述的存儲器系統(tǒng),所述非易失性存儲器包含未受保護(hù)區(qū)域,所述未受保護(hù)區(qū)域可供所述主機存取而無需通過所述驗證過程驗證所述主機,其中所述至少一個證書撤回列表被存儲于所述未受保護(hù)區(qū)域中。14.一種可移除地連接到主機的非易失性存儲器裝置,所述主機將證書撤回列表的若干部分循序地發(fā)送到所述存儲器裝置以用于證書的檢驗,所述存儲器裝置包括控制器,所述控制器檢驗所述證書撤回列表,循序地處理所述證書撤回列表的所述部分并在所述列表上搜索證書的識別,其中所述處理與搜索同時執(zhí)行。15.根據(jù)權(quán)利要求14所述的裝置,其中所述控制器在從所述主機接收所述列表的所述部分時同時執(zhí)行所述處理。16.根據(jù)權(quán)利要求14所述的裝置,其中所述控制器在所述證書撤回列表的若干部分已被處理之后丟棄所述部分。17.根據(jù)權(quán)利要求14所述的裝置,其中所述控制器在所述列表的所述部分被接收時,通過散列所述部分來處理所述列表的所述部分以獲得經(jīng)散列的證書撤回列表。18.根據(jù)權(quán)利要求17所述的裝置,其中在所述裝置處接收經(jīng)加密的散列證書撤回列表的若干部分,且所述控制器通過對經(jīng)加密的散列證書撤回列表的若干部分進(jìn)行解密來處理所述經(jīng)加密的散列部分以獲得經(jīng)解密且散列的證書撤回列表,并將所述經(jīng)散列的證書撤回列表與所述經(jīng)解密且散列的證書撤回列表進(jìn)行比較。19.根據(jù)權(quán)利要求14所述的裝置,其中所述部分包含所述列表上被撤回的證書的序列號。全文摘要主機裝置將主機證書和有關(guān)的證書撤回列表呈現(xiàn)給存儲器裝置以供驗證,使得所述存儲器裝置無需自己獲得所述列表。可由所述存儲器裝置同時執(zhí)行對所述證書撤回列表的處理與對于證書識別的搜索。為了方便用戶起見,可將用于向存儲器裝置驗證主機裝置的所述證書撤回列表存儲于所述存儲器裝置的未受保護(hù)區(qū)域中。文檔編號G06F21/00GK101490688SQ200780025785公開日2009年7月22日申請日期2007年6月28日優(yōu)先權(quán)日2006年7月7日發(fā)明者法布里斯·約剛-庫侖,羅恩·巴爾齊萊,羅特姆·塞拉,邁克爾·霍爾茨曼申請人:桑迪士克股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1