專利名稱::具有用于改善用于認證實體的時間估計的準確度的電路的存儲器器件和其使用方法具有用于改善用于認證實體的時間估計的準確度的電路的存儲器器件和其使用方法相關申請的交叉引用本申請涉及"MethodforImprovingAccuracyofaTimeEstimate",美國專禾U申請序列號11/811284;"MemoryDevicewithCircuitryforImprovingAccuracyofaTimeEstimate",美國專利申請序列號11/811347;"MethodforlmprovingAccuracyofaTimeEstimateUsedtoAuthenticateanEntitytoaMemoryDevice",美國專利申請序列號11/811289;"MemoryDevicewithCircuitryforImprovingAccuracyofaTimeEstimateUsedtoAuthenticateanEntity",美國專利申請序列號11/811344;"MethodforImprovingAccuracyofaTimeEstimateUsedinDigitalRightsManagement(DRM)LicenseValidation",美國專禾U申請序列號11/811354;"MemoryDevicewithCircuitryforImprovingAccuracyofaTimeEstimateUsedinDigitalRightsManagement(DRM)LicenseValidation",美國專利申請序列號11/811348;"MethodforUsingTimefromaTrustedHostDevice",美國專利申請序列號11/811346;以及"MemoryDeviceUsingTimefromaTrustHostDevice",美國專利申請序列號11/811345;其每個都與此一起提交且通過引用合并于此。
背景技術:
:諸如來自SanDisk公司的TrustedFlash存儲器器件(device)的一些存儲器器件需要知道時間,以便進行基于時間的操作,諸如數(shù)字權限管理(DRM)許可證驗證(validation)。由于在這種操作中涉及的安全問題,存儲器器件可能不能信任主機設備來提供正確的時間。雖然存儲器器件可能能夠從網絡中的受信任的組件獲得正確的時間,但是在存儲器器件需要知道時間時,托管(host)存儲器器件的主機設備可能未連接到網絡。存儲器器件可以被設計來測量其活動的時間,但是,如果該存儲器器件沒有連續(xù)地測量活動時間(例如,如果在測量開始之后該存儲器器件斷電),則從測量的活動時間生成的時間估計將不是活動時間的真實量度。因此,從測量的活動時間生成的時間估計實際上僅指示活動時間可能的下限(lowerlimit),且這種時間估計可能不提供在某些基于時間的操作中期望的準確度。盡管可以為存儲器器件配備備用電池時鐘以便即使存儲器器件不活動時也連續(xù)地保持追蹤時間,但是這樣的時鐘可能增加存儲器器件的成本。
發(fā)明內容本發(fā)明由權利要求限定,并且此部分中的任何內容都不應當作是對這些權利要求的限制。通過介紹,以下描述的實施例提供具有用于改善用于認證實體的時間估計的準確性的電路的存儲器器件和使用其的方法。在一個實施例中,存儲器器件接收認證實體的請求。在試圖認證該實體之前,存儲器器件確定是否需要新的時間戳。如果需要新的時間戳,則存儲器器件接收新的時間戳,然后試圖使用基于該新的時間戳的時間估計來認證該實4體。在另一實施例中,存儲器器件包括指定何時需要新時間戳的多個不同的時間戳更新策略(TUP),且是否需要新的時間戳的確定是基于與該實體相關的TUP的。公開了其他實施例,且各個實施例可以單獨或組合到一起使用?,F(xiàn)在將參考附圖來描述這些實施例。圖1是一個實施例的系統(tǒng)的圖示。圖2是一個實施例的存儲器器件的方框圖。圖3是圖2的存儲器器件中的各種功能模塊的圖示。圖4是一個實施例的不對稱認證處理的協(xié)議圖。圖5是用于獲得時間戳的實施例的系統(tǒng)圖。圖6是用于獲得時間戳的實施例的方法的流程圖。圖7是用于檢查時間戳更新策略的實施例的方法的流程圖。圖8是對于在存儲器器件中運行的應用使用主機時間的實施例的存儲器器件的圖示。具體實施例方式現(xiàn)在轉向圖1,圖1是將用于說明這些實施例的系統(tǒng)10的圖示。如圖1所示,系統(tǒng)10包括與相應多個主機設備可移除地連接的多個存儲器器件20、30、40,多個主機設備是個人計算機(PC)50、數(shù)字媒體(例如MP3)播放器60和蜂窩電話70。主機設備是可以從存儲器器件讀數(shù)據和/或向存儲器器件寫數(shù)據的設備。數(shù)據可以包括但不限于數(shù)字媒體內容,諸如音頻或(具有或不具有音頻的)視頻文件、圖像、游戲、書籍、地圖、數(shù)據文件或軟件程序。例如,可以從網絡中的服務器將數(shù)據下載、由制造商或其他第三方預裝載、或從另一設備側面裝載(side-load)到存儲器器件中。主機設備可以采用任何適當?shù)男问?,且不局限于圖1所示的例子。例如,主機設備可以采用筆記本計算機、手持計算機、手持電子郵件/文本消息器件、手持游戲控制臺、視頻播放器(例如,DVD播放器或便攜式視頻播放器)、音頻和/或視頻記錄器、數(shù)字攝像機、機頂盒、顯示設備(例如電視)、打印機、車載音響、和導航系統(tǒng)的形式。而且,主機設備可以包括混合的功能。例如,主機設備可以是除了能夠發(fā)起和接收電話呼叫以外還能夠播放數(shù)字媒體(例如,音樂和/或視頻)文件的蜂窩電話。主機設備諸如PC50和蜂窩手機70可以具有通信地連接到網絡(諸如因特網80或無線網絡90,雖然可以使用其他類型的網絡)的能力。具有這種能力的主機設備在此將被稱為"連接的設備"。應當理解,"連接的設備"可能并不總是實際與網絡連接,諸如當蜂窩電話70以未連接模式操作時或當PC50未建立因特網連接時。自身不具有通信地連接到網絡的能力的主機設備(諸如,數(shù)字媒體播放器60)在此將被稱為"未連接的設備"??梢酝ㄟ^將未連接的設備與連接的設備連接,來將未連接的設備置于與網絡通信,如圖1所示,其中,數(shù)字媒體播放器60與PC50連接。即使以此方式連接,如果該未連接的設備未被設計用于這種功能(例如,簡單的MP3播放器),則未連接的設備也可能不能從網絡拉取(pull)信息。在這種情況下,在網絡中的組件可以將信息推向該設備。應該注意,雖然圖l示出了數(shù)字媒體播放器60經由有線連接而連接到PC50,但是可以使用無線連接。類似地,術語"連接"和"耦接"不一定指的是有線連接或直接連接。網絡(例如,因特網80或無線網絡90)可以允許連接的設備(或被連接到連接的設備的未連接的設備)訪問外部組件,諸如但不限于時間服務器IOO,其可以提供時間戳;和數(shù)字權限管理(digitalrightsmanagement,DRM)服務器110,其可以提供DRM保護的內容和用于訪問這種內容的許可證。以下將更詳細地描述這兩個服務器。雖然,在圖l中示出了時間服務器IOO和DRM服務器llO作為分離的設備,但是,這兩個服務器可以被組合到單個設備中。另外,這些服務器可以包含其他的功能。而且,如果需要的話,可以經由因特網80和無線網絡90來訪問除了時間服務器100和DRM服務器110以外的組件。再次轉到附圖,圖2是可以采用存儲卡或記憶棒的形式的一個實施例的存儲器器件200的方框圖。如圖2所示,存儲器器件200包括非易失性存儲器陣列(諸如閃存)210和電路的集合220。在該實施例中,非易失性存儲器陣列210采取固態(tài)存儲器,具體地閃存210的形式。應該注意,代替閃存,可以使用其他類型的固態(tài)存儲器。還應該注意,可以使用除了固態(tài)存儲器以外的存儲器,諸如但不限于磁盤和光盤CD。而且,為了簡化,術語"電路"這里將用于指純硬件實現(xiàn)和/或組合的硬件/軟件(或固件)實現(xiàn)。因此,"電路"可以采取特定用途集成電路(ASIC)、可編程邏輯控制器、嵌入式微控制器和單片計算機以及處理器和存儲可由處理器執(zhí)行的計算機可讀程序代碼(例如,軟件或固件)的計算機可讀介質中的一個或多個的形式。圖2中的電路的集合220包含多個組件主機接口模塊(HM)230、閃存接口模塊(FM)240、緩沖器管理單元(BMU)250、CPU260和硬件計時器塊270。HM230提供用于主機設備300的接口功能,以及FM240提供用于閃存210的接口功能。BMU250包括用于提供加密/解密功能的加密引擎(crypto-engine)252和用于分別與HM230和FM240通信的主機直接存儲器訪問(DMA)組件254和閃存DMA組件256。CPU260執(zhí)行在CPURAM260和/或閃存210中存儲的軟件和固件。以下將結合存儲器器件測量時間的能力來描述硬件計時器塊270。為了簡化附圖,未在圖2中示出存儲器器件200的其他組件,諸如用于將存儲器器件200可移除地連接到主機設備300的電氣和物理連接器。關于存儲器器件200和其操作的更多信息可以在美國專利申請序列號11/314411和11/557028中得到,其兩者通過引用合并于此。另外的信息可以在美國專利申請序列號11/322812和美國專利申請序列號11/322766中得到,其兩者通過引用合并于此。除非在權利要求中明確地指出,否則在那些文檔中描述的組件和功能不應該被理解入權利要求中。在這個實施例中,存儲器器件200存儲用于對在存儲器器件200上存儲的受保護內容解鎖的數(shù)字權限管理(DRM)密鑰和許可證。(應該注意,這些實施例也可以與不存儲用于對在存儲器器件上存儲的受保護內容解鎖的DRM密鑰和許可證的存儲器器件一起使用。)DRM密鑰和許可證可以由存儲器器件200生成、或在存儲器器件200外部生成(例如通過DRM服務器110)并發(fā)送到存儲器器件200。由于DRM密鑰和許可證隨著存儲器器件200而移動,因此,受保護內容被有效地綁縛(tie)于存儲器器件200而不是主機設備300,因此使得受保護內容可移動(portable)并可由任何能向存儲器器件200證明它是授權的設備的主機設備訪問。來自SanDisk公司的TrustedFlash存儲器器件是在存儲器器件上存6儲了DRM密鑰和許可證從而受保護內容可隨存儲器器件移動的存儲器器件的例子。在一些實施例中,存儲器器件200還用被存儲在存儲器器件200上的DRM密鑰來驗證(validate)DRM許可證,而在其他實施例中,存儲器器件200向主機設備300提供DRM密鑰以便其通過DRM密鑰驗證DRM許可證。在該實施例中,存儲器器件200的CPU260執(zhí)行安全存儲應用(SSA)以保證僅具有適當?shù)淖C明文件(credential)的被認證的實體可以訪問DRM密鑰和許可證。SSA的計算機可讀代碼可以被存儲在閃存210、CPURAM262或在存儲器器件200中的另一存儲位置中。在上述參考的'028專利申請中更詳細地描述了SSA。圖3是將被用于圖示SSA的操作的在存儲器器件200中的各種功能模塊的圖示。如圖3所示,存儲器器件200包括各種訪問控制記錄("ACR"):第一不對稱ACR201、第二不對稱ACR202和對稱ACR203。第一和第二不對稱ACR201、202包括第一和第二時間更新策略(分別地,TUP1和TUP2),其將在以下詳細地描述。雖然在圖3中示出了多個ACR,但是存儲器器件200可以僅包括單個ACR。每個ACR201、202和203規(guī)定了要使用的認證方法以及需要什么類型的證明文件來提供實體的身份的證明。每個ACR201、202和203還包括進行各種動作、諸如訪問DRM密鑰和許可證的許可。一旦ACR成功地認證了實體,則SSA系統(tǒng)打開會話,通過該會話可以執(zhí)行ACR的任何動作。如在此使用的,術語"實體"指的是試圖訪問存儲器器件200的任何人或事物。例如,實體可以是運行在主機設備上的應用、主機設備本身、或人類用戶。在圖3中,三個實體正試圖訪問存儲器器件200:媒體(例如,音頻和/或視頻)播放器301、存儲應用302和另一應用303。這些實體301、302、303可以在相同或不同的主機設備上。每個實體301、302、303與特定ACR(分別地,ACR201、202和203)相關。另外的實體(未示出)也可以與ACR201、202和203中的一個或多個相關。當實體發(fā)起登錄處理時,其發(fā)送包括其相關的ACR的標識符的用于認證的請求,該相關的ACR指定要使用的認證方法和需要什么類型的證明文件來提供實體的身份的證明。在圖3中,ACR201和202指定不對稱的認證方法,而ACR203指定了對稱的認證方法。應該注意,可以使用其他認證方法(諸如基于密碼的程序),且ACR還可以指定不需要認證。除了指定具體的認證方法以外,ACR還可以包括描述每個實體一旦被認證之后可以進行的動作的許可控制記錄(PCR)。—些認證機制(諸如,例如使用用于認證的X.509證書鏈的單向(oneiay)和雙向(twoiay)不對稱認證)可以是基于時間的,需要存儲器器件200知道時間以便確認(verify)由該實體提供的證明文件。(由對稱的ACR203使用的對稱認證機制不需要存儲器器件200知道時間。在對稱認證中,使用由實體和其相關ACR共享的密鑰來認證該實體。)在不對稱認證中,可能需要時間來評估由實體提供的證明文件諸如RSA證書和/或證書廢除列表(CRL)是否是有效的。(如在此使用的,"證書"可以指的是單個證書或多個證書(例如,證書鏈),且"CRL"可以指的是單個CRL或多個CRL)。在轉到存儲器器件200可以用來生成時間估計來進行這種驗證(validation)的機制之前,關于不對稱機制,將對證書和CRL加以簡短討論。不對稱認證使用公鑰架構(PKI)系統(tǒng),其中,已知作為證書授權機構(certificateauthority,CA)的受信任授權機構發(fā)出用于證明實體的身份的RSA證書。想要建立身份的證明的實體利用用于證明其身份的適當證據向CA來登記。在已經向CA證明7了實體的身份之后,CA向實體頒發(fā)證書。該證書典型地包括頒發(fā)該證書的CA的名字、被頒發(fā)該證書的實體的名字、該實體的公鑰和由CA的私鑰簽名(sign)(典型地通過對公鑰的摘要(digest)加密)的實體的公鑰。證書可以包含保持到期日期(e鄧irationdate)的數(shù)據字段。在這種情況下,保持證書的實體只能在有限的時間量期間(在證書過期之前)訪問受ACR保護的內容。證書還可以包含保持未來的有效時間的數(shù)據字段。在這種情況下,在證書變?yōu)橛行е?,ACR將不認證該實體。如果存儲器器件200確定當前日期是在到期日期之后或在有效日期之前(即,如果存儲器器件200確定該證書不是有效的),則該存儲器器件200將不認證提供該證書的實體。各種環(huán)境(諸如,例如名字的改變、在實體和CA之間的關聯(lián)的改變、和私鑰的泄漏(compromise)或疑似泄漏)可能使得證書在其到期日期之前變得無效。在這種情況下,CA需要廢除該證書。在操作中,CA周期性地發(fā)出證書廢除列表(CRL),其是包含所廢除的證書的蓋有時間戳的列表的簽名數(shù)據結構。因此,為了認證實體,存儲器器件200不僅檢查以看該證書是否是適時的,還檢查CRL以看該證書是否在CRL上列出。(該CRL可以與證書一起由該實體提供,或該存儲器器件200自己可以獲得CRL(例如,通過因特網80,如果存儲器器件200是連接的設備))。如果該證書在CRL上列出,該證書不再有效(即使其沒有過期),且該實體將不被認證。類似于證書,發(fā)布具有到期日期的CRL,其指示CRL何時應該被更新。這保證存儲器器件200正使用最新的CRL。在認證期間,如果存儲器器件200發(fā)現(xiàn)該當前的時間晚于CRL的到期日期(即,如果存儲器器件200確定該CRL不是有效的),則該CRL被視為有缺陷的,且優(yōu)選地不用于證書認證。如上所述,在該實施例中,該存儲器器件200需要知道時間以便確認這些證明文件(在此是證書和CRL)。存在用于允許存儲器器件知道現(xiàn)在何時的若干選擇。一個選擇是在每次存儲器器件需要知道時間時使得存儲器器件經由主機設備向受信的時間服務器請求時間戳。該解決方案適用于連接的設備;但是,由于存儲器器件既可以用在連接的設備也可以用在不連接的設備(例如,未連接到因特網的家庭PC、MP3播放器、斷網的蜂窩電話(例如,當在飛機上時))中,因此該存儲器器件當其需要知道時間用于認證過程時沒有可用的連接可以依賴。另一選擇是給存儲器器件裝配備用電池時鐘。但是,由于給存儲器器件增加了成本,這可能是不期望的。還有另一選擇是依賴主機設備(從其自身的內部時鐘或從外部源)向存儲器器件提供時間。但是,在許多情況下,存儲器器件不能信任主機設備提供準確的時間。如果允許用戶"往回調(backdate)"在主機設備上的時鐘(即,將主機設備上的時鐘設置為比當前時間更早的時間),該用戶將能夠避開存儲器器件需要強制服從(enforce)的嚴格的(very)時間限制。另一方面,如果存儲器器件(運行在存儲器器件中的應用)可以信任主機設備,存儲器器件(或運行在存儲器器件中的應用)將能夠在時間方面依賴主機設備。以下給出何時可以使用主機時間的更多信息。另一選擇——其用在本實施例中——是使用存儲器的有限時間跟蹤能力;具體地,存儲器器件200的測量其活動(active)時間的能力?;顒訒r間可以指存儲器器件200與主機設備相連且被實際地使用(即,相比于空閑(idle)或休眠模式,當在存儲器器件200和主機設備300之間的總線上存在活動(activity)時)的時間量?;蛘撸顒訒r間可以指存儲器器件200被連接到主機設備300且從主機設備300接收功率的整個時間量。術語"活動時間"和"使用時間"在此將可互換地使用。如以下描述的,在該實施例中,當硬件計時器塊270可以生成時鐘計時標記(clocktick)作為對CPU260的中斷時,存儲器器件200是活動的,且CPU260可以遞增活動時間計數(shù)器。在操作中,硬件計時器塊270(例如,ASIC控制器)包含生成周期性時鐘計時標記并向CPU260提供這種計時標記作為中斷的振蕩器。(優(yōu)選地,振蕩器以非常低的頻率操作,且當CPU260休眠時運行)。因此,硬件計時器塊270基于周期性(例如,每毫秒或微秒)來中斷CPU260。當CPU260得到該中斷時,專門的時鐘中斷服務例程(例如,在由CPU260運行的固件中)被調用,并且活動時間計數(shù)器增加一個周期/單位,該活動時間計數(shù)器被存儲在CPURAM262以及也被存儲在非易失性閃存210中,因此即使存在掉電(powerloss),計數(shù)器值也不會丟失。為了避免對存儲器210的過度損耗,優(yōu)選地,不是響應于每時鐘計時標記,而是周期性地(例如,每分鐘等,只要存儲器器件200通電)更新在存儲器210中的活動時間計數(shù)器。雖然,如果在活動時間計數(shù)器更新之前發(fā)生掉電則這可能導致在測量的時間中的另外的不準確性,但是考慮到存儲器器件耐久性(endurance)的益處,可能認為這種犧牲是可接受的。(為了進一步保護存儲器耐久性,被存儲于活動時間計數(shù)器的值可以包括指示計數(shù)器已經被寫入多少次的字段。如果寫入值超過了一定量,則該計數(shù)器可以被存儲在存儲器中的另一位置中。也可以對該計數(shù)器中的位進行移位,如果這有助于耐久性的話。)還優(yōu)選地,向活動時間計數(shù)器的寫不影響存儲器器件200的性能(除了進行該寫的功耗以外)以及常規(guī)活動。(換句話說,優(yōu)選地,向時間計數(shù)器的寫是服務(service)主機命令的處理的一部分。)例如,向活動時間計數(shù)器的寫可以被看作后臺任務,且在服務主機設備命令之前執(zhí)行。在主機設備命令的結尾,在存儲器器件200中的固件可以通過將數(shù)據從存儲器讀出以及將其與期望的值比較來確認活動時間計數(shù)器的編程成功了。而且,優(yōu)選地,該活動時間計數(shù)器的值被安全地存儲在存儲器210中(例如,使用密鑰散列消息認證碼(key-hashedmessageauthenticationcode,薩C)經由力口密弓l擎252簽名),從而其不能輕易地被篡改。在簽名不匹配的情況下,該數(shù)據可以被看作是未初始化的,就好像攻擊者篡改了它一樣。另外,應該注意,可以使用用于測量活動時間的其他機制。為了將在活動時間計數(shù)器中存儲的值轉換為真實時間,CPU260將所存儲的值與硬件計時器塊270生成時鐘計時標記的頻率相乘。例如,如果值500被存儲在活動時間計數(shù)器中,且硬件計時器塊270每5毫秒生成一個時鐘計時標記,則CPU260將計算得到2500(5的500倍)毫秒的活動時間。為了生成時間估計,所換算的活動時間被增加到由存儲器器件200從受信源接收的上次時間戳。換句話說,時間戳用作"開始線",而將存儲器器件的測量的活動時間增加到該時間戳。時間戳可以采用任何形式,且將時間指示到任何期望的精度(例如,年、月、日、小時、分、秒等)。優(yōu)選地,從存儲器器件200信任能給予其準確時間的實體(例如,時間服務器100或受信的主機設備)向存儲器器件200提供時間戳。時間戳可以采取任何形式,且其本身被發(fā)送或被包括在其他信息中發(fā)送。存儲器器件優(yōu)選地經由加密引擎252安全地存儲時間戳,因此其不能輕易地被篡改。當存儲器器件200接收新的時間戳時,在存儲器器件200中存儲該新的時間戳,且將活動時間計數(shù)器復位。因此,之后將相對于新的時間戳而不是舊的時間戳來測量活動時間。取代復位(因此"回退")計數(shù)器,可以記錄在新的時間戳時存在的活動時間計數(shù)器值,且將其從當前時間中減去以便測量活動時間。既然討論了存儲器器件的時間跟蹤能力,將描述認證過程的例子。再次轉到附圖,圖4是一個實施例的不對稱認證處理的協(xié)議圖。在以下例子中,播放器301正嘗試經由ACR201登錄存儲器器件200。如以下詳細描述的,播放器301包含證明文件(例如,RSA密鑰對,證書和證書廢除列表(CRL)),且該ACR201負責驗證播放器301的真實性(authenticity)和對象授權(在該情況下,建立在播放器301和DRM模塊207之間的安全通道)。如圖4所示,第一步是主機設備300向存儲器器件200發(fā)送用于認證播放器301的請求(動作402)。如果時間戳還沒有安裝在存儲器器件200中,則存儲器器件200用登錄失敗的消息來響應于該認證請求(動作404)。接下來的系列動作描述了向存儲器器件200提供時間戳的處理,且將結合圖5和6來描述,該圖5和6分別是系統(tǒng)圖和流程圖,其圖示了其中存儲器器件200可以獲得時間戳的一個具體方式。應該理解,存儲器器件200可以以不同的方式來獲得時間戳,而且時間戳可以采取不同的形式。還應該理解,與多個服務器或主機接口的單個存儲器器件可以同時處理多種形式。因此,該例子的細節(jié)不應該被讀入權利要求,除非其中明確指出。如圖5所示,該存儲器器件200經由存儲器器件_主機設備通信信道305與主機設備300通信,且該主機設備300經由主機設備-時間服務器通信信道315與時間服務器100通信。雖然該時間服務器100可以包括單個服務器,但是在該實施例中,該時間服務器100包括經由服務器間通信信道325而彼此同步的多個服務器102、104、106。而且,如上所述,取代使用時間服務器100來得到時間戳,可以使用來自主機設備300的時間戳,優(yōu)選地只有在其是受信的主機設備的情況下如此。在該實施例中,由主機設備300發(fā)起用于請求時間戳的過程,該主機設備300向存儲器器件200發(fā)送獲取現(xiàn)時命令(getnoncecommand)(動作405)(見圖4、5和6)。在該實施例中,現(xiàn)時(nonce)是由存儲器器件200使用來稍后確認由時間服務器100生成的時間戳的真實性的160比特隨機數(shù)。該存儲器器件200生成隨機數(shù)(現(xiàn)時)(動作410)并將其存儲在CPURAM(即易失性存儲器)262(或,替換地,存儲器210)中用于稍后的確認步驟。然后,存儲器器件200向主機設備300發(fā)送現(xiàn)時(動作415)。該存儲器器件200還開始測量時間(如以下描述)來稍后確定是否發(fā)生了超時。當主機設備300接收該現(xiàn)時時,它向時間服務器100發(fā)送包含該現(xiàn)時的獲取時間戳請求(動作420)。該時間服務器100用其私鑰給時間(例如,UTCZulu格式的世界時間)和現(xiàn)時簽名。然后,該時間服務器IOO向主機設備300發(fā)送時間戳響應,該時間戳響應在該實施例中包括現(xiàn)時、時間戳、證書鏈和CRL鏈(動作425)。(應該注意,該證書和CRL從時間服務器100被發(fā)送以認證它,且與被發(fā)送以認證播放器301的證書和CRL不同)。然后,該主機設備300向存儲器器件200發(fā)送具有該響應的時間更新命令(動作430)。響應于該命令,該存儲器器件200嘗試確認(verify)證書和CRL(動作435)。(再次,該證書和CRL不同于被發(fā)送以認證播放器301的那些)。如以下討論的,可以優(yōu)選地假設時間服務器IOO的證書和CRL的有效期(validityperiod)是有效的,而不相對于由存儲器器件200生成的時間估計而檢查其有效性。如果該確認失敗了,該存儲器器件200復位該易失性存儲器262并返回到空閑進程(動作440)。如果證書和CRL的確認通過(動作445),則存儲器器件200比較在該響應中的現(xiàn)時和在易失性存儲器262中的現(xiàn)時(動作450)。如果該比較失10敗,則存儲器器件復位該易失性存儲器262并返回到空閑進程(動作455)。如果該比較成功,則該存儲器器件200在存儲器210中存儲新的時間戳,優(yōu)選地以安全的方式以保護其不受篡改。應該注意,在存儲器器件200生成現(xiàn)時410且等待響應之后(動作460),可能的是,主機設備300可以向存儲器器件200發(fā)送另一獲取現(xiàn)時命令(動作465)。如上所述,該存儲器器件200在生成現(xiàn)時之后開始測量時間。如果在測量的時間到達特定超時限制之前接收到該新的現(xiàn)時命令(465),則優(yōu)選地存儲器器件200忽略該新的現(xiàn)時命令(465)。但是,如果在超時限制之后接收到新的現(xiàn)時命令(465),則存儲器器件200將復位該易失性存儲器262,并生成新的現(xiàn)時(動作470)。因此,該現(xiàn)時僅對于有限的時間有效,且該超時限制("行程時間錯誤(traveltimeerror)")是存儲器器件200考慮等待來自時間服務器100的時間戳的合法的最大時間。因為被存儲在存儲器器件200中的時間戳包含時間服務器100對數(shù)據串簽名的時間,因此取決于時間戳的精度(例如,年、月、日、小時、分、秒等)和在發(fā)送該請求和接收該響應中涉及的延遲,在該時間戳中指示的時間可能不是主機設備300請求時間戳的實際的、真實的世界時間或存儲器器件200存儲該時間戳的實際的、真實的世界時間。上述現(xiàn)時超時時段可以被設置為保證該時間戳將具有由存儲器器件200需要的精度的時間。因此,該存儲器器件200對在時間戳請求中的最大可接受延遲進行控制。而且,在另外的實施例中,由時間服務器IOO生成的時間戳可以指示另外的時間,諸如主機設備300請求該時間戳的估計時間、該時間戳將被存儲在存儲器器件200中的預期時間、或另外的時間。上述協(xié)議允許存儲器器件200在不安全的(unsecured)連接系統(tǒng)(例如,因特網、WiFi網絡、GSM網絡等)上與時間服務器100通信。該連接系統(tǒng)在存儲器器件200不能假定由時間服務器100發(fā)送的時間戳在傳輸期間不被篡改的含義上是不安全的。由于不能依賴該網絡來保護該時間戳,因此可以在時間服務器100和存儲器器件200之間使用上述保護機制(或一些其他保護機制)。該加密協(xié)議使得,如果時間戳被篡改,則該存儲器器件200可以檢測到它。換句話說,因為該連接系統(tǒng)是不安全的,因此,該系統(tǒng)本身不能防止人們改變在時間戳中的比特;但是,該存儲器器件200可以檢測到篡改,并拒絕該時間戳。在另外的實施例中,使用安全的通信系統(tǒng)(即,數(shù)據通信線路被保護),且由于沒有人可以篡改該時間戳,因此可以簡單地以明文發(fā)送該時間戳。返回圖4,在現(xiàn)在在存儲器器件200中存儲了新的時間戳的情況下,存儲器器件200向主機設備300發(fā)回"時間更新成功"消息(動作452),且主機設備300再一次向存儲器器件200發(fā)送對于認證的請求(動作454)。由于存儲器器件200具有時間戳,因此存儲器器件200將檢查ACR201的時間戳更新策略(TUP)(動作500)。因為時間估計是基于時間戳的,因此將時間估計基于廢棄的(obsolete)時間戳可能導致不準確的時間估計。因此,TUP被用來確定在存儲器器件200上的現(xiàn)有時間戳何時被考慮為廢棄的且需要刷新(renewal)(即,新的時間戳)。如圖3所示且在以下更詳細地討論,不同的ACR可以具有不同的TUP(S卩,不同的ACR可以具有不同的時間容忍級),這可以當創(chuàng)建ACR時建立。在該實施例中,由四個值來呈現(xiàn)TUP:(1)供電循環(huán)(cycle)的閾值數(shù)量,(2)活動時間的閾值,(3)"拉長的"活動時間的閾值,以及(4)指示在參數(shù)之間是否存在OR(或)關系(即,是否只要單個參數(shù)失敗則將需要時間更新,或是否只有所有參數(shù)失敗才將需要時間更新)的比特。以下將詳細描述這些參數(shù)的每個。(應該注意,可以考慮除了這些以外或取代這些的其他參數(shù))。圖7是示出檢查TUP動作(動作500)的更多細節(jié)的流程圖。首先,進行檢查以例如通過查找被存儲在存儲器210中的配置數(shù)據來確定是否初始化了存儲器器件200以檢查TUP(動作505)。如果存儲器器件200還沒有被初始化以檢查TUP,該存儲器器件200使用由存儲器器件200接收的最后時間戳來生成時間估計(動作510),且嘗試使用該時間估計來認證該實體。如果該存儲器器件200已經被初始化以檢查TUP,則該存儲器器件200開始該檢查。首先,存儲器器件200確定TUP是否包括自從最后時間戳以來的存儲器器件200的供電循環(huán)數(shù)的檢查(動作515)。在該實施例中,通過檢查上述"供電循環(huán)"值來進行此。如果"供電循環(huán)"值是O,則不檢查供電循環(huán)數(shù)。如果"供電循環(huán)"值不是O,則使用作為閾值的該值來檢查供電循環(huán)數(shù)。供電循環(huán)數(shù)是存儲器器件200上電(powerup)多少次的計數(shù),這指示自從最后時間戳以來存儲器器件200被斷電多少次(S卩,對于每次上電,必然會存在斷電)??梢杂蒀PU260來測量供電循環(huán)數(shù)。每次該存儲器器件200進行一個供電循環(huán),CPU260可以調用在固件中的器件復位例程。就像在CPU260向活動時間計數(shù)器增加一個單位的情況下那樣,通過器件復位例程,CPU260將向在CPURAM262和/或存儲器210中的供電循環(huán)計數(shù)器增加一個單位。就像對于活動時間計數(shù)器那樣,可以周期性地更新供電循環(huán)計數(shù)器來減少存儲器損耗。當存儲器器件200斷電時,存在未由測量的活動時間表現(xiàn)的至少一些實際的時間(這是因為,存儲器器件200當其不是"活動的"時不能測量其活動時間)。由于存儲器器件200不知道在供電循環(huán)之間經過了多少時間,因此,供電循環(huán)數(shù)不指示所測量的活動時間有多不準確。但是,它提供存儲器器件100是否在預期的使用模式(usagepattern)以外使用的感覺(sense),這可以粗略地指示所測量的活動時間可能多不準確。例如,當存儲器器件200自從最后時間戳以來具有十個供電循環(huán)時進行的時間估計可能比當存儲器器件200自從最后時間戳以來僅具有單個供電循環(huán)時進行的時間估計更不準確。如果TUP包括供電循環(huán)數(shù)的檢查,則存儲器器件200檢查自從最后時間戳以來存儲器器件200的供電循環(huán)數(shù),以看該數(shù)量是否超過在"供電循環(huán)"值中設置的閾值量(動作520)。該閾值數(shù)是每個ACR可配置來反映期望的時間容忍度的。例如,如果認證非常敏感并且需要保證證書或CRL的到期日期還沒有過去,則可以將閾值數(shù)設置為1。從而,如果存儲器器件200即使僅斷電一次(因此,至少存在不能由所測量的活動時間考慮的一些時間量),該參數(shù)的TUP檢查將失敗。另一方面,如果認證不那么敏感,則可以將供電循環(huán)數(shù)設置為更高的值(或根本不考慮)以允許即使存在一些數(shù)量的供電循環(huán)(因此,不由所測量的活動時間考慮的一些時間量)TUP檢查也通過。如果供電循環(huán)數(shù)的檢查失敗且確定在TUP參數(shù)之間存在OR(或)關系(動作525),則TUP檢查失敗(動作530)。存儲器器件200向主機設備300發(fā)送指示失敗的消息,且使用上述過程來獲得新的時間戳。如果供電循環(huán)數(shù)的檢查通過,或如果它失敗了且確定在TUP參數(shù)之間不存在OR(或)關系(動作525),則該處理通過確定TUP是否包括自從最后時間戳以來的活動時間的檢查而繼續(xù)(動作535)。類似于上述供電循環(huán)過程,如果"活動時間"值是0,則不檢查活動時間。但是,如果"活動時間"值不是O,則使用作為閾值數(shù)的秒(或時間的其他單位)的值來檢查活動時間。與供電循環(huán)數(shù)一樣,閾值活動時間量是每個ACR可配置以反應期望的時間容忍度的。通常,存儲器器件200活動得越久,所測量的活動時間將可能越不準確。因此,如果認證非常敏感且需要保證證書或CRL的到期日期還沒有經過,所測量的活動時間的閾值量可以被設置得非常低。相反,如果認證不那么敏感,則所測量的活動時間的閾值量可以被設置的更高(或根本不考慮)。如果活動時間的檢查失敗且確定在TUP參數(shù)之間存在OR(或)關系(動作545),則TUP檢查失敗(動作550)。該存儲器器件200向主機設備300發(fā)送指示失敗的消息,且使用上述過程來獲得新的時間戳。如果活動時間的檢查通過,或如果其失敗且確定在TUP參數(shù)之間不存在OR(或)關系(動作545),則該處理通過確定TUP是否包括"拉長的"活動時間的檢查而繼續(xù)(動作555)。如上所述,如果存儲器器件200沒有連續(xù)地測量活動時間,則所測量的活動時間可能不是實際的活動時間的真實量度。也就是說,如果存儲器器件200是"不活動的"(例如,當存儲器器件200處于空閑或休眠模式時、或當存儲器器件200斷電時、或當存儲器器件200從主機設備300移除時——在該實施例中,無論什么事件導致硬件計時器塊270停止生成時鐘計時標記和/或使得CPU260停止對這種計時標記反應),則所測量的活動時間將比自從測量開始以來經過的實際時間短,這是因為當存儲器器件200不活動時存儲器器件中不存在任何東西告知時間正在經過。例如,讓我們假設,在l月1日接收到時間戳,且存儲器器件200測量到兩天的活動時間。(為了簡化,在該例子中以天為單位測量時間。但是,如上所述,可以使用任何期望的時間單位)。因此,在此點上由存儲器器件200生成的時間估計將指示日期是1月3日(S卩,通過向1月1日的最后時間戳增加兩天的活動時間)。如果該存儲器器件200連續(xù)地測量了活動時間,則該時間估計將準確地呈現(xiàn)實際的時間(假設,硬件計時器塊270和CPU260準確地運行)。但是,如果存儲器器件200沒有連續(xù)地測量活動時間(即,如果存儲器器件200在其開始了測量活動時間之后在任何點上不活動),則該時間估計將不能準確地呈現(xiàn)實際時間。最多,該時間估計將指示該實際時間是至少1月3日。該實際時間可能是l月4日或一些更晚的時間(6月29日、11月2日、12月5日、下一年等)。因此,在動作540中的活動時間的檢查可能給不出準確的結果。為了解決這個問題,TUP可以包括"拉長的"活動時間的檢查(動作555和560)。"拉長的"活動時間是基于先前測量的活動時間的所確定的準確度來調整所測量的活動時間的結果。因此,如果存儲器器件200測量三天的活動時間,并得知上次(或多個上次)它測量活動時間時,它產生了作為實際時間的50%的值,則該存儲器器件200可以以因子2(因為,所測量的活動時間是實際時間的50%)來調整(或"拉長")所測量的三天的活動時間來得到6天。關于"拉長"活動時間的另外的信息在隨本申請?zhí)峤坏?MethodforlmprovingAccuracyofaTimeEstimatefromaMemoryDevice",美國專利申請序列號11/811284禾口"MemoryDevicewithCircuitryforImprovingAccuracyofaTimeEstimate",美國專利申請序列號11/811347中描述,其兩者被引用附于此。取代使用"拉長的"活動時間,可以使用"拉長的"當機(down)時間。當機時間指的是存儲器器件200在時間戳之間不活動的時間量。由于沒有測量存儲器器件200有多長時間不活動的方法,因此當機時間是計算的數(shù);具體地,當機時間=在時間戳之間的實際時間-活動時間。"拉長的"當機時間是基于先前測量的活動時間(或,基于所測量的活動時間的當機時間)的所確定的準確度而調整的當機時間計算。以下是可以考慮的其他當機時間變型的例子列表。在該列表中,"當機時間(DownTime)"指的是"拉長的"當機時間(例如,在先前知道的時間戳之間的當機時間的平均)??偖斬S幾時間估計(teDownTime):teDownTime=(timestamp「timestamPi—「ActiveTimei),其中索引i從第二時間戳到在存儲器器件200中配置的最后一個時間戳。自從對于特定時刻的最后(last)時間戳的當前當機時間(cDowntime)。這可以相對于自從最后時間戳更新以來的供電循環(huán)(PC)的數(shù)量(cDowntime=自從最后時間戳的PC*(teDownTime/PC))或相對于自從最后時間戳更新以來的活動時間(cDowntime=自從最后時間戳的ActiveTime*(teDownTime/ActiveTime))來計算。如果DownTime參數(shù)被配置為不使用,則DownTime值被設置為0。如果DownTime參數(shù)被配置為使用,則DownTime被設置為1。存儲器器件200將使用DownTime屬性來以如下方式評估何時需要時間戳更新當ServiceTime(例如,證書的有效性或CRL的有效性)_時間估計<DownTime時,需要時間戳更新。返回圖7,如果"拉長的"活動時間的檢查失敗(動作560),則TUP的檢查失敗(動作565),且存儲器器件200向主機設備300發(fā)送消息。然后使用上述程序來獲得新的時間戳。如果"拉長的"活動時間的檢查通過(或如果存儲器器件200不被初始化以檢查TUP),則存儲器器件200向主機設備300發(fā)回"TUP通過"消息510、570(見圖4)。然后,主機設備300向存儲器器件200發(fā)送實體的證書和CRL,且存儲器器件嘗試認證該實體(動作585)。具體地,存儲器器件200將基于上次接收的時間戳和所測量的活動時間來生成時間估計,以確認該證書(動作585),并確認CRL(動作590)。如果證書和CRL的到期時間晚于所生成的時間估計,則存儲器器件200向主機設備300發(fā)回0K消息,且如果需要,可以進行在認證方法中的其他步驟。如果該實體被認證了,則ACR201(在此,通過建立在播放器301和DRM模塊207之間的安全通道)給對象授予實體權利。否則,如果該證書和/或CRL已經過期了,則存儲器器件200可以向主機設備300發(fā)送聲明該認證嘗試已經失敗的消息。該存儲器器件200進而可以發(fā)起時間戳更新,如上所述。如上所述,通過向最后時間戳增加所測量的活動時間來生成用于認證嘗試的時間估計。由于所測量的活動時間可能是不準確的,因此可以使用上面討論的"時間拉長"技術來改善時間估計的準確度。但是,可能地,"拉長的"活動時間可能比實際時間大。在檢查TUP的情況下,這種"過度拉長的"活動時間將導致新的時間戳。但是,在確認證書或CRL的情況下,"過度拉長的"活動時間可能阻礙非此則為適當?shù)膶嶓w被認證。因此,當生成用于認證的時間估計時可能不期望使用"時間拉長"??傊?,通過上述方法,存儲器器件200接收認證實體的請求,并在嘗試認證該實體之前,存儲器器件200確定是否需要新的時間戳。如果需要新的時間戳,則存儲器器件200獲得新的時間戳,并然后嘗試通過基于該新的時間戳來生成時間估計并比較該時間估計與證書和/或CRL有效期來認證該實體。如果不需要新的時間戳,存儲器器件嘗試通過基于上次的時間戳來生成時間估計并比較該時間估計與證書和/或CRL有效期來認證該實體。應該注意,在該實施例中,在認證該實體之前,檢查TUP,且如果需要,獲得新的時間戳。換句話說,檢查TUP和獲得新的時間戳不要求該實體在檢查TUP之前或在獲得新的14時間戳之前被認證。這與使用單個服務器來提供時間戳和DRM許可證兩者的系統(tǒng)不同。這種服務器將需要在給存儲器器件提供時間戳(或其他信息)之前對存儲器器件認證。這出現(xiàn)了"自相矛盾(Catch22)"情況——為了認證該服務器,可能需要新鮮的時間,但是新鮮的時間戳僅在認證了服務器之后才可以獲得。為了避免這種情況,一些現(xiàn)有系統(tǒng)簡單地在認證處理中不使用時間。雖然避免了上述"自相矛盾(Catch22)"情況,但忽略時間可能導致不應該認證的實體(例如,因為它們的證書和/或CRL過期)被認證。通過將時間服務器100與嘗試對存儲器器件200認證的實體分開,該存儲器器件200在播放器301和存儲器器件的時間模塊204之間建立"自由通道",允許播放器301從時間服務器100遞送時間戳更新(見圖3)。然后,該時間戳將被用于生成時間估計,針對該時間估計,可以驗證該實體的證明文件以供認證。"自由通道"指的是在沒有首先認證實體的情況下建立的通信管道。相反。"安全通道"指的是僅在認證實體之后建立的通信管道。應該注意,雖然播放器301不需要被認證以便其被用作從時間服務器100給存儲器器件200供應時間戳的渠道,但是該時間服務器100優(yōu)選地被認證以保證該時間戳是來自受信源的。這在圖4和6中的動作435中示出,其中,時間服務器100的證書和CRL在接受其時間戳之前被確認。但是,為了避免上述"自相矛盾(catch22)"情況,存儲器器件200優(yōu)選地假設用于時間服務器100的證書和CRL的有效期是有效的,且因此,不針對所生成的時間估計確認有效期。當實體被認證給存儲器器件200時,它可以進行在ACR的許可控制記錄(PCR)中列出的各種動作。例如,再次參考圖3,播放器301可以經由安全通道與DRM模塊207通信以嘗試訪問在存儲器器件200中的受保護內容205。(作為另一例子,用于存儲應用302的ACR允許該應用302在存儲器器件200中存儲受保護內容205。)即使已經認證了播放器301,但是由于該內容受保護,因此DRM模塊207將嘗試在解鎖受保護內容之前(例如,通過確定該許可證是否仍然有效或其是否已過期)對于受保護內容205驗證DRM許可證206。為了這樣做,DRM模塊207將向在存儲器器件200中的時間模塊204請求時間估計。(該時間模塊204指的是上述用于存儲和生成用于生成時間估計的各種成分(例如,時間戳、活動時間、供電循環(huán)數(shù)、"拉長"因子等)的軟件和/或硬件)。DRM模塊207把所生成的時間估計與在許可證206中的到期日期和/或有效期相比較,以確定該許可證是否有效。該DRM模塊207可以進行另外的檢查以驗證該許可證,諸如但不限于,確定受保護的內容205是否被播放了多于指定的次數(shù)。如上所述,該時間戳越是最近的,該時間估計將可能越準確。在上述實施例中,在ACR中的TUP確定是否需要時間戳更新。因此,TUP有效地確定所生成的時間估計將對DRM許可證驗證來說有多準確。在確定TUP的參數(shù)時,需要在服務提供商——其提供具有到期考慮因素的服務——的需要和終端用戶——當他們需要將其主機設備連接到網絡以便得到新鮮的時間戳時,其可能感到不便——的需要之間達到平衡。如果時間容忍度太寬松,則服務提供商可能流失收入。另一方面,如果時間容忍度太嚴格,則如果頻繁地連接到網絡以獲得需求的時間戳更新太麻煩則終端用戶可能決定放棄該服務。當存儲器器件200有具有單個TUP的單個ACR(或所有都共享相同TUP的多個ACR)時,單個"尺寸通用的(onesizefitsall)"TUP可能不能對所有服務提供商都達到合適的平衡。因此,在該實施例中,存儲器器件200具有多個ACR201、202,每個具有可被其相15關的服務提供商配置的不同的TUP(TUP1、TUP2)。如上所述,通過使用不同的ACR,存儲器器件200可以被配置以使用不同的認證機制(對稱、不對稱認證等)來認證。不同的ACR的使用還允許可配置的時間容忍度。也就是說,通過在ACR中的可配置TUP的使用,服務提供商可以通過指定一個或多個存儲器器件的時間告知參數(shù)(例如活動時間、供電循環(huán)數(shù)、"拉長的"活動時間/當機時間)何時被視為廢棄的且應該觸發(fā)時間戳更新來定義其自身的時間容忍度。通過使得TUP可配置,服務提供商可以根據其具體需要和其與終端用戶的關系來配置其時間容忍度,而不依賴單個"尺寸通用的"TUP。例如,一些服務提供商發(fā)出很短的時間(例如十分鐘)的證書。通過強制終端用戶在每次他希望使用在存儲器器件200上的服務時得到新的證書,服務提供商可以密切地監(jiān)視終端用戶的行為,并在每次終端用戶請求證書時評定費用。因此,對于該商業(yè)模型,服務提供商需要緊的容忍度以供貨幣化。作為另一例子,如果服務提供商具有非常具有流動性的終端用戶安裝基礎,則服務提供商可以期望頻繁廢除證書作為其商業(yè)模型的主要部分。在這種情況下,該服務提供商將也希望緊的時間容忍度來保證最新的CRL正被用于認證。另一方面,如果該服務提供商正提供每月的訂閱服務,其中,用戶將規(guī)律地連接到服務提供商的網站來得到新的內容并接收強制的時間戳更新,則該服務提供商將不需要如此緊的時間容忍度,因為終端用戶將很可能連接到網絡來得到新的內容。取代或附加于使用在ACR上的可配置TUP,可配置TUP可以被放置在用于各個片斷的內容的DRM許可證上。以此方式,取代被認證的實體平等地對待所有內容,該實體可以被強制對于某個內容獲得新的時間戳,而對于其他內容使用已有的時間戳。(與僅在認證期間被檢查的ACR上的TUP不同,可以在每次DRM模塊207試圖驗證許可證時檢查在該許可證上的TUP。)例如,考慮如下情況其中,用戶向其存儲器器件下載兩小時的電影以及告知該電影僅可以觀看24小時的許可證。雖然該服務提供商可能不希望用戶在24小時時段以后觀看該電影,但是他可能也不希望通過將普通用戶連接到網絡以獲得新的時間戳來使得普通用戶不方便。因此,該服務提供商可以決定將TUP放置在許可證上,使得如果活動時間多于四個小時(觀看兩小時電影兩次所需要的活動時間量)則需要新的時間戳。如果當DRM模塊207試圖驗證該許可證時活動時間多于四小時,該用戶將不能觀看該電影——不一定因為許可證過期,而是因為需要新的時間戳。(取代或附加于活動時間,可以在TUP中使用供電循環(huán)數(shù)。例如,基于平均使用模式,十個或更多供電循環(huán)可以指示存儲器器件被使用了超過24小時)。如果用新的時間戳生成的時間估計指示該許可證有效,則DRM模塊207將允許再次播放該電影。通過允許TUP是每個許可證可配置的,TUP可以被定制于(tailoredto)該內容。因此,如果代替電影在24小時之后過期,電影在一星期以后過期,則可以不同地設置在許可證上的時間容忍度。例如,如果服務提供商估計存儲器器件平均每天使用十小時,則服務提供商可以設置在許可證中的TUP來在70小時(S卩,即每天10小時乘以7天)的活動時間之后觸發(fā)時間更新。作為另一例子,如果取代兩小時的電影,內容是僅應該被觀看一次的三分鐘的每次觀看付費的視頻,則可以設計TUP以便將在三分鐘活動時間之后需要新的時間戳。服務提供商的商業(yè)模型還可以是在設計TUP時的考慮。例如,當前,每月的訂閱服務是用于對受保護音樂分發(fā)權限的流行商業(yè)模型。在音樂訂閱服務中,用戶從服務提供商的網站下載如其想要的一樣多的音樂,且其被允許在一個月內以如其想要的一樣多的次數(shù)播放該音樂。在該月之后,該用戶將需要續(xù)訂(renew)其訂閱來續(xù)訂許可證;否則,許可證將過期,且該用戶將不再能夠播放存儲在其存儲器器件上的音樂。頻繁訪問服務提供商的網站來得到更多的歌曲的用戶將在他們連接到網站時接收新的時間戳;因此,他們的存儲器器件將能夠提供更準確的時間估計。但是,下載相對大量的音樂的用戶可能不一定在每月的許可證過期之前重新連接到服務提供商的網站。當用戶最終重新連接以得到更多音樂時,服務提供商可能針對用戶被允許在許可證期限外播放音樂的時間向用戶收費。因此,作為商業(yè)模型,每月的訂閱的服務提供商可能希望與每次使用付費的內容的服務提供商很不同的時間容忍度,在每次使用付費的情況下用戶可能不返回到他接收了每次使用付費的內容的網站。在這種情況下,因為與每次使用付費的服務中相比用戶可能在每月訂閱服務中返回以得到更多的音樂,因此,服務提供商可能不希望嚴格的時間容忍度,因為這可能由要求用戶獲得新的時間戳而使用戶厭煩,即使不這樣做的話用戶將最后返回到網站。具有不那么嚴格的時間容忍度可以意味著,從不返回服務提供商的網站的消費者將能夠比許可證的一月期限更長地(例如,一個月的活動時間而不是一個月的實際時間)播放音樂。但是,均衡各方面考慮,服務提供商可能決定這種未授權的使用是為了避免給返回的消費者帶來不便和煩擾所做出的可接受的犧牲。作為另一例子,考慮如下商業(yè)模型,其中服務提供商希望,當用戶使用其蜂窩電話來從存儲器器件播放音頻或視頻內容時,提供對蜂窩電話的點式廣告(pointadvertising)。如果點式廣告包含涉及靠近在正播放內容時蜂窩電話的位置的商店的廣告,當正播放內容時主機設備需要與網絡連接;否則,不能遞送針對特定位置的點式廣告。為了保證此發(fā)生,該內容的TUP可以被設置為很低的量(例如,一分鐘的活動時間)來保證用戶將連接到該網絡以得到新的時間戳。一旦用戶連接到網絡,則該網絡將知道該蜂窩電話的位置,且將能夠向該蜂窩電話推送適當?shù)膹V告內容。另一方面,如果服務提供商僅通過得知該內容被播放了多少次來掙錢,則時間容忍度可以遠不那么嚴格。如上述例子所示,通過在許可證文件上的可配置TUP的使用,具體內容的服務提供商可以達到其認為適當?shù)娜魏螘r間更新平衡,以便不會通過要求其顧客將其主機設備連接到網絡用于時間戳更新而使顧客厭煩。應該注意,因為在該實施例中的存儲器器件是具有多個TUP的多用途、多應用存儲器器件,則在存儲器器件上的一個服務可以在特定時間之后關閉,而在存儲器器件上的其他服務仍然被使能。也就是說,由于與不同的內容的許可證相關的不同TUP,所以播放器,即使被認證了,也可能能夠播放在存儲器器件上的特定內容,但可能被阻止播放在存儲器器件上的其他內容,除非獲得了新的時間戳。如上所述。在這些實施例中,存儲器器件包括兩個分離的組件中央安全系統(tǒng)和與中央安全系統(tǒng)分離的一個或多個應用。(因為應用與中央安全系統(tǒng)分離,因此,應用將有時被稱為"擴展"或"內部擴展")。在圖3所示的實施例中,應用采取DRM模塊207的形式。但是,可以使用其他應用,諸如提供例如電子商務、銀行、信用卡、電子貨幣、生物測量、訪問控制、個人數(shù)據或安全的電子郵件功能的那些應用。還應該注意,雖然僅在圖3中的存儲器器件200中示出了單個應用,但存儲器器件可以具有若干應用(例如,DRM模塊和電子商務模塊)。中央安全系統(tǒng),通過使用ACR,經由存儲器器件內部的應用(例如,DRM代理)認證試圖來訪問被存儲在存儲器器件中受保護的數(shù)據的實體。一旦實體對存儲器器件認證了,在實體和由用于認證該實體的ACR指定的應用之間打開安全會話。然后,該實體可以向相關應用發(fā)送命令/請求來訪問受保護數(shù)據。以此方式,中央安全系統(tǒng)擔當存儲器器件的主看門者。如在上述11/557028專利申請中詳細描述的,中央安全系統(tǒng)還可以隔離在存儲器器件200上運行的各種應用,以便一個應用不具有對與不同應用相關的數(shù)據的訪問。雖然中央安全系統(tǒng)提供訪問控制機制并保護被存儲在存儲器器件中的數(shù)據以便僅由適當?shù)氖跈嗟膶嶓w來訪問數(shù)據,但是中央安全系統(tǒng)本身可能不能理解和處理其正保護的數(shù)據。而是在存儲器器件上運行的應用可以理解和處理受保護的數(shù)據。例如,如果受保護數(shù)據是DRM許可證,則D歴代理——不是中央安全系統(tǒng)——將能夠驗證該許可證。因此,中央安全系統(tǒng)可以被視為可配置的獨立于應用的工具箱。在操作中,服務提供商將應用放置在存儲器器件上,并定義將具體實體與應用相關的ACR。從中央安全系統(tǒng)的角度看,它不知道應用做什么(例如,應用是否提供DRM許可證驗證、電子商務功能等),但卻知道僅對該具體ACR被認證的實體才被允許以與在該ACR中定義的應用通信。一旦由中央安全系統(tǒng)認證了實體,則中央安全系統(tǒng)在實體和該應用之間打開安全通道。在一些情況下,中央安全系統(tǒng)和應用都需要知道時間。例如,中央安全系統(tǒng)可能需要知道時間以用于基于時間的認證(例如不對稱認證),而該應用可能需要知道時間以用于基于時間的操作(例如DRM許可證驗證)。如上所述,該存儲器器件具有可以向中央安全系統(tǒng)和運行在存儲器器件上的應用兩者提供時間的中央時間模塊。例如,參考圖3,該時間模塊204可以向不對稱ACR201、202提供時間,以認證各種實體,以及向DRM模塊207提供時間以確認許可證有效性。如以下以及將結合圖8描述的,在一些情況下,附加于或取代來自存儲器器件的時間模塊的時間,存儲器器件上的應用可以選擇使用主機時間。圖8示出了與主機設備700通信的存儲器器件600。主機設備700包括實體(在此,播放器710),且具有用于提供時間720的一些機制(例如,備用電池時鐘)。在該例子中,存儲器器件600具有對稱的ACR610(雖然可以使用不對稱ACR)、時間模塊620、DRM模塊630、受保護內容640、和針對受保護內容640的許可證650。(在圖8中,存儲器器件中的應用是DRM模塊630。應該注意,可以使用其他類型的應用,且可以在存儲器器件中運行多于一個應用)。當播放器710使用對稱ACR610對存儲器器件600認證時,根據在對稱ACR610中建立的參數(shù)來在播放器710和DRM模塊630之間建立安全通道660。DRM模塊630和播放器710彼此并非不熟悉,因為服務提供商定義了對稱ACR610來將DRM模塊630與播放器710相關。因此,在DRM模塊630和播放器710之間由于它們是同一組的相對成員而存在一定級別的信任?;谠撔湃?,DRM模塊630可以被編程以接受來自作為時間源的播放器710的主機時間720來進行DRM許可證驗證。因此,DRM模塊630具有兩個獨立的可用以進行DRM許可證驗證的時間源主機時間720和來自存儲器器件的中央時間模塊620的時間。存在與這些時間源的每個相關的優(yōu)點和缺點。因為,存儲器器件的時間模塊620不連續(xù)地保持追蹤時間,因此來自時間模塊620的時間可能不像在可能由備用電池連續(xù)時鐘提供的主機時間720處那么準。另一方面,由于上述所有安全預警,來自時間模塊620的時間可能比主機時間720更安全,尤其是在主機設備700的用戶能夠使用簡單的用戶界面來改變主機時間720的情況下。在存儲器器件600上運行的應用(諸如DRM模塊630)可以被編程以通過期望的任何方式來使用這兩個不同的時間源以生成用于其基于時間的操作的時間估計。(但是,優(yōu)選地,應用不能使用主機時間720來更新該時間模塊620)。例如,應用可以被編程以總是使用主機時間720而不是來自時間模塊620的時間,或總是使用來自時間模塊620的時間而不是主機時間720。作為另一例子,應用可以被編程以使用主機時間720和來自時間模塊620的時間中的較晚的(或較早的)。應用還可以被編程來以某種方式使用兩種時間源(例如,采取主機時間720和來自時間模塊620的時間的平均值,等)來生成時間估計。作為另一例子,應用可以基于關于主機設備700的信息來確定使用哪個時間源。應用可以通過驗證處理來學習主機設備的類型(例如,如果使用不對稱認證,則該認證算法可以通知應用有關與主機設備700相關的個體和群組的身份)。該信息可能是重要的,因為一些主機設備可以比其他的更安全。例如,如果主機設備是PC(個人計算機),則其時鐘可能經由在軟件應用上的簡單用戶界面被容易地操縱。(除了不信任來自相對不信任的主機設備的主機時間以外,該應用可能不信任在具有例如內容密鑰、許可證值或期限或改變許可證的權限的這種主機設備上運行的實體。在這種情況下,DRM代理可能僅將內容從存儲器器件流出到主機設備(而不給主機設備加密密鑰和內容))。但是,如果主機是封閉式的系統(tǒng),諸如MP3播放器,則主機的時鐘可能更難以操縱。因此,與主機設備700是PC時相比,當主機設備700是MP3播放器時,在主機設備600上運行的應用可以更信任主機時間720。在一個實施例中,播放器710當它向DRM模塊630發(fā)送請求以播放歌曲時向DRM模塊630推送主機時間720。然后,該DRM模塊630決定使用主機時間720還是使用來自時間模塊620的時間,如上所述。優(yōu)選地,主機時間720將僅被用于特定登錄會話,其將是相對較短的時間間隔,而不被用作用于稍后會話的絕對當前時間測量。或者,該主機時間720可以被存儲用于未來由應用使用,且上述"時間拉長"和其他機制(可選地)用于改善該時間的準確度。但是,優(yōu)選地,主機時間僅用于應用的特定的基于時間的操作,而不用于更新在時間模塊620中的時間(因為應用是"擴展",而不是與中央安全系統(tǒng)相同的信任陣營的一部分)。優(yōu)選地,僅使用受信任的時間服務器(其是與中央安全系統(tǒng)相同的信任陣營的一部分)來更新在時間模塊620中的時間,如上所述。還應該注意,當在存儲器器件600上運行了若干應用時,每個應用可以具有兩個時間源來自時間模塊620的時間和來自操作與該應用通信的實體的主機設備的時間。但是,下面的可能是優(yōu)選的允許與一個應用相關的主機設備僅被該應用使用,而不被與不同的主機設備相關的其他應用使用。如上所討論的,在存儲器器件600上運行的應用(諸如,DRM模塊630)可以被編程以比較主機時間720和來自時間模塊620的時間,并使用兩個時間中的較晚的(或較早的)。主機時間720可能比來自時間模塊620的時間早,例如,因為主機700無法在足夠長的時間內連接到其時間服務器以至于在主機時間720中發(fā)生時間偏離(skew),或因為主機時鐘被黑了(hack)。如上所討論的,主機時間720可以被存儲用于未來由應用使用。結合這些想法,主機時間720可以被(單獨或與來自時間模塊620的時間一起)存儲且稍后用于與從不同的主機設備接收的時間進行比較。基于該比較,該存儲器器件可以決定使用來自當前主機設備的時間還是來自先前的主機設備的所存儲的時間來進行基于時間的操作。例如,該存儲器器件可以被編程以如果基于時間的操作是"不早于的"操作則取這兩個時間中的較早的,且如果基于時間的操作時間是"不晚于的"操作,則取這兩個時間中的較晚的。以此方式,從其他受信主機設備接收的時間戳可以被用作相對于單個時間服務器的、單個多主機防退后(anti-rollback)機制的參考。如上所討論的,可以使用不基于時間的認證系統(tǒng)(諸如對稱認證)來認證主機設備。這允許應用的基于時間的操作(例如DRM操作)與認證時間服務器獨立。也就是說,由于僅使用來自主機設備或DRM服務器的時間,則應用的基于時間的操作不依賴于來自認證時間服務器或存儲器器件的時間模塊的時間。因此,如果無論因為什么原因,認證時間服務器存在問題,或如果基于時間的應用選擇不使用基于認證時間服務器的時間,則基于時間的操作可以仍然使用主機時間來進行其操作。應該注意,上述實施例中的任何都可以被單獨或結合在一起使用。在通過弓I用并入的專利申請中描述了可以與這些實施例一起使用的其他實施例。另外,雖然當前優(yōu)選地在由Sandisk公司的TrustedFlashTM存儲器器件中實現(xiàn)這些實施例,但是應該理解,可以在任何類型的存儲器器件中使用這些實施例。而且,這些實施例可以被用在其中人們面對具有不準確的時鐘且需要知道或使用時間的普遍問題的非存儲器器件領域。另外,上述動作的一些或全部可以在主機設備(或一些其他設備)上而不是唯一地在存儲器器件上進行。意圖前述詳細的描述被理解為本發(fā)明可以采取的所選形式的圖示,而不是本發(fā)明的限制。僅權利要求、包括所有等同物旨在定義本發(fā)明的范圍。應該注意,在權利要求中引用的動作可以以任何順序進行——不一定按其被引用的順序。最后,應該注意,在此描述的優(yōu)選實施例的任一個的任何方面可以單獨或彼此結合使用。權利要求一種對于存儲器器件認證實體的方法,該方法包括利用存儲器器件接收認證實體的請求;在試圖認證該實體之前,確定是否需要新的時間戳;以及如果需要新的時間戳,則接收新的時間戳,然后試圖使用基于該新的時間戳的時間估計來認證該實體。2.根據權利要求1的方法,還包括利用該存儲器器件如果不需要新的時間戳,則試圖使用基于由存儲器器件接收的最后時間戳的時間估計來認證該實體。3.根據權利要求1的方法,其中,基于以下的一項或多項來確定是否需要新的時間戳自從由存儲器器件接收的最后時間戳以來的存儲器器件的供電循環(huán)數(shù)、自從最后時間戳以來存儲器器件的活動時間、和自從最后時間戳以來該存儲器器件的拉長的活動時間。4.根據權利要求1的方法,其中,使用不對稱認證程序來試圖認證該實體。5.根據權利要求1的方法,其中,試圖認證該實體包括確定證書是否有效。6.根據權利要求l的方法,其中,試圖認證該實體包括確定證書廢除列表(CRL)是否有效。7.根據權利要求l的方法,其中,該新的時間戳由與存儲器器件連接的主機設備來生成。8.根據權利要求l的方法,其中,該存儲器器件存儲用于對存儲在存儲器器件上的受保護內容解鎖的數(shù)字權限管理(DRM)密鑰和許可證。9.根據權利要求l的方法,其中,確定是否需要新的時間戳包括確定與所述實體相關的訪問控制記錄(ACR)的時間戳更新策略(TUP)是否需要新的時間戳。10.根據權利要求l的方法,其中,該新的時間戳是經由自由的通道發(fā)送的。11.一種存儲器器件,包括存儲器陣列,存儲指定何時需要新的時間戳的多個不同的時間戳更新策略(TUP);以及與該存儲器陣列通信且可操作來進行如下步驟的電路接收認證實體的請求;在試圖認證該實體之前,基于與該實體相關聯(lián)的TUP確定是否需要新的時間戳;以及如果需要新的時間戳,則接收新的時間戳,然后試圖使用基于該新的時間戳的時間估計來認證該實體。12.根據權利要求11的存儲器器件,其中,該電路進一步可操作來如果不需要新的時間戳,則試圖使用由存儲器器件接收的最后時間戳來認證該實體。13.根據權利要求ll的存儲器器件,其中,與該實體相關的TUP包括以下參數(shù)的一項或多項自從由存儲器器件接收的最后時間戳以來的存儲器器件的供電循環(huán)數(shù)、自從最后時間戳以來存儲器器件的活動時間、和自從最后時間戳以來該存儲器器件的拉長的活動時間。14.根據權利要求ll的存儲器器件,其中,該電路可操作來試圖使用不對稱認證程序來認證該實體。15.根據權利要求11的存儲器器件,其中,該電路可操作來通過確定證書是否有效來試圖認證該實體。16.根據權利要求ll的存儲器器件,其中,該電路可操作來通過確定證書廢除列表(CRL)是否有效來試圖認證該實體。17.根據權利要求ll的存儲器器件,其中,該新的時間戳由與存儲器器件連接的主機設備來生成。18.根據權利要求ll的存儲器器件,其中,該存儲器器件存儲用于對存儲在存儲器器件上的受保護內容解鎖的數(shù)字權限管理(DRM)密鑰和許可證。19.根據權利要求ll的存儲器器件,其中,所述多個TUP是各多個訪問控制記錄(ACR)的一部分。20.根據權利要求11的存儲器器件,其中,該新的時間戳是經由自由的通道發(fā)送的。全文摘要公開了具有用于改善用于認證實體的時間估計的準確性的電路的存儲器器件和使用其的方法。在一個實施例中存儲器器件接收認證實體的請求。在試圖認證該實體之前,存儲器器件確定是否需要新的時間戳。如果需要新的時間戳,則存儲器器件接收新的時間戳,然后試圖使用基于該新的時間戳的時間估計來認證該實體。在另一實施例中,存儲器器件包括指定何時需要新的時間戳的多個不同的時間戳更新策略(TUP),且確定是否需要新的時間戳的確定是基于與該實體相關的TUP的。公開了其他實施例,且各個實施例可以單獨或組合使用。文檔編號G06F21/10GK101779208SQ200880102320公開日2010年7月14日申請日期2008年6月5日優(yōu)先權日2007年6月8日發(fā)明者法布里斯·E·喬甘德-庫洛姆,羅恩·巴爾齊萊,羅特姆·西拉,邁克爾·霍爾茨曼申請人:桑迪士克公司