專利名稱::用于控制盜版和啟用交互式內(nèi)容的可重編程的安全性的制作方法
技術(shù)領(lǐng)域:
:本申請案大體涉及保護(hù)數(shù)字內(nèi)容和其它數(shù)據(jù)的分發(fā),防止盜版和其它未授權(quán)的使用或再分發(fā)。
背景技術(shù):
:已提出很多種系統(tǒng)來保護(hù)數(shù)字內(nèi)容。多數(shù)所述方案對內(nèi)容加密以在將其存儲于媒體上或經(jīng)由非受信的通信信道發(fā)送時(shí)保護(hù)其免于未授權(quán)的使用和復(fù)制。接著解密算法和密鑰由經(jīng)設(shè)計(jì)以執(zhí)行訪問控制規(guī)則(其可為固定的或可配置的)的受信的防篡改軟件或硬件模塊加以管理,所述訪問控制規(guī)則規(guī)定可如何使用所述內(nèi)容。內(nèi)容保護(hù)方案通常是針對特定的重放環(huán)境而定制的。舉例而言,為個(gè)人計(jì)算機(jī)設(shè)計(jì)的純軟件流內(nèi)容播放器中的反盜版系統(tǒng)缺少防篡改硬件的安全性益處,但是其通??奢^方便地升級(例如,如果用戶卸載播放器并從制造商網(wǎng)站下載更新版)。因此,所述系統(tǒng)比基于硬件的播放器提供較不可靠的安全性,但是因?yàn)榭赏ㄟ^修改內(nèi)容流并要求用戶升級其軟件來運(yùn)用升級的安全性特征,所以攻擊的后果相對較小。相反,嵌入于播放光學(xué)媒體的消費(fèi)性電子硬件裝置中的保護(hù)方法眾所周知是難于升級的。安全性挑戰(zhàn)包括光學(xué)媒體的長壽命(其阻止了不是向后兼容的安全性升級)、缺少將更新傳遞給播放器的便利且可靠的方式、和缺乏播放器實(shí)施之間的標(biāo)準(zhǔn)化。與重放裝置的長壽命和所有新穎內(nèi)容在舊播放器上播放的消費(fèi)者期望相結(jié)合的這些困難使得引入安全性升級極其困難。因而,多數(shù)消費(fèi)性電子裝置提供很少保護(hù)或沒有提供實(shí)際保護(hù)來防止復(fù)制,且在消費(fèi)性電子裝置中運(yùn)用的少數(shù)內(nèi)容保護(hù)標(biāo)準(zhǔn)常常是提供較少靈活性和可更新性的簡單、死板的方案。圖1圖示了
背景技術(shù):
的典型內(nèi)容保護(hù)系統(tǒng)。內(nèi)容播放器100包括在非易失性程序存儲器105中的軟件,其實(shí)施播放器的安全策略110、解密代碼120和播放器密鑰130。此代碼和密鑰由處理器140使用以驗(yàn)證從媒體150讀取的內(nèi)容是否有效,且如果有效,那么對內(nèi)容解密并將結(jié)果提供到輸出接口160。類似圖示于圖1中的保護(hù)系統(tǒng)的實(shí)例包括用于數(shù)字音頻磁帶的復(fù)制控制方案、用以保護(hù)DVD視頻的內(nèi)容擾亂系統(tǒng)(CSS)和為保護(hù)DVD音頻而提出的CPPM方案。在
背景技術(shù):
中已知多種不同技術(shù)訪問控制策略在
背景技術(shù):
中已知很多種訪問策略和用于規(guī)定所述策略的方法。舉例而言,Hellman的第4,658,093號美國專利的軟件保護(hù)系統(tǒng)使用了一種直接了當(dāng)?shù)挠沙霭嫔贪l(fā)布的授權(quán)碼。相反,Ginter等人的第5,982,891號美國專利描述了涉及大量參與者的多種非常復(fù)雜的訪問規(guī)則。諸如PolicyMaker和X.509證書格式的用于對訪問策略編碼的標(biāo)準(zhǔn)(用于配合內(nèi)容分發(fā)和其它應(yīng)用一起使用)也已提出。殺毒軟件在
背景技術(shù):
已熟知用于檢測并阻止已知病毒、特洛伊木馬程序和其它惡意代碼的方法。這些方法大體涉及掃描已知病毒的諸如已知指令序列的屬性。這些程序可采用多種方式工作,諸如在啟動期間掃描文件、實(shí)時(shí)(on-the-fly)掃描文件、當(dāng)程序執(zhí)行時(shí)掃描程序、掃描存儲器、掃描新的媒體、掃描網(wǎng)絡(luò)通信等等。內(nèi)容保護(hù)系統(tǒng)和DRM已提出很多種內(nèi)容保護(hù)系統(tǒng)(其有時(shí)也被稱為數(shù)字權(quán)限管理(DRM)系統(tǒng))。
背景技術(shù):
:的DRM系統(tǒng)大體提供以加密的形式分發(fā)內(nèi)容,接著為合法的購買者提供解密密鑰或執(zhí)行解密運(yùn)算。商業(yè)DRM中已提出或包括了許多特征,包括支持超分發(fā)(加密的內(nèi)容可在用戶之間交換)、按次付費(fèi)計(jì)費(fèi)(包括具有經(jīng)由電話線的報(bào)告(reporting)的離線按次付費(fèi))、可變費(fèi)率(基于促銷、使用的數(shù)量或持續(xù)時(shí)間、請求的用戶操作、用戶歷史等等收取不同費(fèi)用)、保護(hù)各種數(shù)據(jù)類型(音頻、視頻、文本、軟件,等等)、支持各種格式和支持各種重放裝置類型(便攜式、置頂式、具有硬件輔助的基于計(jì)算機(jī)的、純軟件的,等等)。復(fù)制保護(hù)用于復(fù)制保護(hù)個(gè)人計(jì)算機(jī)軟件的方法為已知的且廣泛運(yùn)用于某些種類的軟件,諸如計(jì)算機(jī)游戲。這些方法一般涉及將軟件程序綁定到經(jīng)設(shè)計(jì)為難于復(fù)制的物理媒體(例如,通過有意地并入難于復(fù)制的錯(cuò)誤或非標(biāo)準(zhǔn)的格式編排)。其它復(fù)制保護(hù)系統(tǒng)涉及(例如)通過要求用戶從服務(wù)器獲取授權(quán)碼來保護(hù)安裝過程。在某些情形下,復(fù)制保護(hù)特征設(shè)計(jì)于系統(tǒng)中。在其它情形下(包括用于計(jì)算機(jī)軟件、錄像帶和音頻CD的復(fù)制保護(hù)系統(tǒng)),復(fù)制保護(hù)通過產(chǎn)生具有非標(biāo)準(zhǔn)編碼的媒體而實(shí)施,所述非標(biāo)準(zhǔn)編碼允許在多數(shù)播放器上進(jìn)行重放但會干擾復(fù)制媒體的多數(shù)嘗試。復(fù)制保護(hù)系統(tǒng)的主要設(shè)計(jì)挑戰(zhàn)為最小化對合法用戶的影響(意即,獲取較高的可播放性和用戶認(rèn)可度)同時(shí)盡可能有效地防止不當(dāng)?shù)膭幼?意即,獲取良好的安全性)。密碼函數(shù)包括塊密碼、散列函數(shù)、數(shù)字簽名系統(tǒng)(和其它公開密鑰系統(tǒng))、密鑰管理系統(tǒng)等等的很多種基本密碼函數(shù)為已知的。關(guān)于基礎(chǔ)的密碼學(xué)的更多信息,參見BruceSchneier的《應(yīng)用密碼學(xué)》(AppliedCryptography)。密碼啟示器使用塊密碼或其它密碼函數(shù),有可能構(gòu)造對任意的外部提供的輸入消息應(yīng)用秘密的密碼轉(zhuǎn)換并返回結(jié)果的“密碼啟示器”??蓪γ艽a啟示器進(jìn)行構(gòu)造使得了解啟示器的算法和協(xié)議的攻擊者無法用計(jì)算的方式判定啟示器的密鑰。另外,因?yàn)閷⑹酒鞯目赡艿妮斎氲臄?shù)量可非常大(例如,對于由256-位塊密碼構(gòu)造的啟示器達(dá)到2256),所以攻擊者不可能預(yù)測或預(yù)計(jì)算對隨機(jī)查詢的回應(yīng)。解釋器、仿真器和虛擬機(jī)多種解釋型計(jì)算機(jī)語言在
背景技術(shù):
中是已知的。諸如Java的某些解釋型語言要求一編譯過程以將源代碼轉(zhuǎn)換成可執(zhí)行的或可解釋的形式。相反,多數(shù)BASIC解釋器直接對源代碼操作。某些解釋器允許自修改代碼,而其它的不允許。用于實(shí)施解釋器和用于仿真匯編語言的技術(shù)在
背景技術(shù):
中也是已知的。舉例而言,諸如VirtualPC和SoftWindows的復(fù)雜的仿真器可在AppleMac計(jì)算機(jī)上運(yùn)行為MicrosoftWindows設(shè)計(jì)的程序。諸如那些用于Java和JavaCard的虛擬機(jī)(VM)設(shè)計(jì)是已知的,且VM可與計(jì)算機(jī)上的本地代碼(nativecode)交互作用或調(diào)用在不同存儲器空間中的其它VM函數(shù)也是已知的。(許多Java實(shí)施提供這些能力。)解釋型語言普遍用于應(yīng)用程序或要求跨平臺兼容性的場合下,諸如用于創(chuàng)建獨(dú)立于處理器的裝置驅(qū)動程序格式。(例如,參見WritingFCode2.xPrograms,SunMicrosystems,1993,第5頁。)密鑰管理已提出用于分配和管理密碼編譯密鑰的很多種方法已知裝置可具有對裝置為特定的密鑰、群組密鑰、公開密鑰、私人密鑰、證書,等等。密鑰可分配到個(gè)別裝置、選定的裝置群組(例如,如在Fiat的第5,592,552號美國專利中所描述的)、所有裝置,等等。裝置可包含多種不同類型的密鑰,包括對稱密鑰、公開密鑰(例如,用以檢驗(yàn)證書和數(shù)字簽名)和不對稱私人密鑰。媒體已知可提供極大的存儲容量、低制造成本和良好的耐久性的媒體技術(shù)。當(dāng)前媒體技術(shù)的實(shí)例包括光盤(CD、DVD,等等)、磁性媒體、閃存和ROM。諸如全息存儲器的更新穎的技術(shù)也在開發(fā)。已知單片媒體可包括許多不同類型的數(shù)據(jù)。舉例而言,壓縮光盤(compactdisc)可包含標(biāo)準(zhǔn)紅皮書(RedBook)音頻歌曲以及用于個(gè)人計(jì)算機(jī)上的數(shù)據(jù)會話(例如,包含軟件、壓縮的附送歌曲、圖像、視頻、歌詞,等等)。用于個(gè)人計(jì)算機(jī)的壓縮光盤可包含加密的內(nèi)容以及播放內(nèi)容所需的重放軟件。網(wǎng)絡(luò)通信包括因特網(wǎng)的復(fù)雜的數(shù)據(jù)網(wǎng)絡(luò)是已知的。這些網(wǎng)絡(luò)可提供靈活的、可靠的、高帶寬的數(shù)據(jù)通信。盡管具有物理連接的網(wǎng)絡(luò)一般提供較高的帶寬,但無線通信信道也為流行的。可更新的安全性在某些情形下,提出保證能夠防止所有可能的攻擊的安全系統(tǒng)是不實(shí)際的。因此,需要在受到攻擊后有可能更新安全性,(例如)通過中止使用任何已泄漏的密鑰并改正弱點(diǎn)。盡管可更新的安全性是理想的,但許多已運(yùn)用和提議的系統(tǒng)缺乏任何針對許多種攻擊的有效的恢復(fù)機(jī)制。沙盒技術(shù)沙盒技術(shù)涉及在程序不能夠進(jìn)行任何可損害系統(tǒng)的操作的受控環(huán)境中執(zhí)行軟件程序。Java“虛擬機(jī)”支持沙盒技術(shù),使得可執(zhí)行非受信的小程序(applet)(諸如那些經(jīng)由因特網(wǎng)下載的)。安全模塊許多安全系統(tǒng)使用抽取式安全模塊,使得安全性升級可在不必費(fèi)力花錢地替換系統(tǒng)的其它部分的情況下執(zhí)行。舉例而言,抽取式安全模塊用于許多付費(fèi)電視系統(tǒng)中。軟件更新安全的軟件更新可通過接收提議的軟件更新、檢驗(yàn)驗(yàn)證所述更新的數(shù)字簽名或消息鑒別代碼、接著(如果簽名有效)執(zhí)行更新而執(zhí)行。舉例而言,已知數(shù)字音頻播放器可接收代碼更新、檢驗(yàn)關(guān)于更新的數(shù)字簽名或消息鑒別代碼并(如果有效)更新其代碼。用于確保以正確的順序(例如,使用順序計(jì)數(shù)器)應(yīng)用更新和用于從失敗的或不成功的更新恢復(fù)(例如,通過回復(fù)到前一軟件版本或通過激活專用恢復(fù)代碼)的方法也是已知的。軟件更新可實(shí)質(zhì)上經(jīng)由諸如因特網(wǎng)、光學(xué)媒體、盒式只讀存儲器等等的很多種分發(fā)機(jī)制而傳遞也為已知的。軟件更新已用于通過將代碼更新與信號一起分發(fā)到解擾器來防止付費(fèi)電視盜版,所述解擾器應(yīng)用并成功執(zhí)行新的代碼以計(jì)算下一視頻片段的正確的解密密鑰這些更新被普遍用于通過禁用或甚至破壞未授權(quán)的解擾器來防止未授權(quán)的觀看。隱寫術(shù)(Steganography)隱寫術(shù)涉及將信息隱藏于數(shù)據(jù)中。舉例而言,已知可將加密數(shù)據(jù)置于圖像或錄音的最低有效位中。因?yàn)榈碗A位一般顯現(xiàn)為隨機(jī)的,且由強(qiáng)加密算法產(chǎn)生的密文在沒有密鑰的情況下無法區(qū)別于隨機(jī)數(shù)據(jù),所以獲取此圖像或錄音但不知道解密密鑰的攻擊者甚至不能夠判定是否存在任何隱藏?cái)?shù)據(jù)。防篡改已知許多用于設(shè)計(jì)和構(gòu)造抗攻擊的裝置的方法。防篡改硬件普遍用于需要防止攻擊者對裝置進(jìn)行逆向工程或從密碼模塊提取密鑰的系統(tǒng)中。舉例而言,WaveSystems出售被稱為“Embassy”的基于微處理器的防篡改集成電路產(chǎn)品,所述產(chǎn)品可與內(nèi)容播放器或通用計(jì)算機(jī)集成且據(jù)宣傳可用于保護(hù)數(shù)字內(nèi)容分發(fā)的安全。用于實(shí)施防篡改軟件的方法也已提出(例如,參見Aucsmith等人的第5,892,899號美國專利。)叛逆者追蹤已提出叛逆者追蹤方案,通常通過追蹤用于未授權(quán)裝置中的密鑰而回溯到為消費(fèi)者特定的裝置或已泄漏的裝置來識別泄漏或攻擊的來源。水印技術(shù)水印為嵌入于內(nèi)容中的可由專用檢測器檢測但在播放時(shí)不影響(或最小地影響)人對內(nèi)容的感知的信號。嵌入于圖片、錄音和圖像中的水印已由版權(quán)持有者用于指示復(fù)制為未授權(quán)的。“穩(wěn)固”的水印已知可承受格式之間的轉(zhuǎn)換(包括從模擬輸出重新記錄)且針對試圖去除水印的攻擊提供不同程度的安全性。相反,“脆弱”的水印具有較少或沒有承受格式轉(zhuǎn)換的能力,但較容易設(shè)計(jì)且可承載更多信息。盡管沒有反盜版系統(tǒng)可完全地防止所有可能的攻擊,但
背景技術(shù):
的系統(tǒng)不能提供對可解決問題的實(shí)際解決方案,所述問題諸如使用數(shù)字到數(shù)字復(fù)制或?qū)⑹鼙Wo(hù)格式高速拆解為不受保護(hù)格式的偶然盜版行為。
背景技術(shù):
:的許多系統(tǒng)的顯著的限制包括(無限制性)依賴于全局秘密許多保護(hù)系統(tǒng)要求將解碼所需的密夿算法、密鑰和其它信息保持秘密。因此,無法將解碼過程記錄于開放的標(biāo)準(zhǔn)文獻(xiàn)中而不危害系統(tǒng)的安全性。同樣,如果存有大量的實(shí)施,那么攻擊者通過攻擊最薄弱的實(shí)施可潛在地破壞整個(gè)方案。(此種攻擊最近在DVD視頻保護(hù)系統(tǒng)上發(fā)生了。)雖然所述系統(tǒng)可用于封閉的單一銷售商環(huán)境中,但其不能夠標(biāo)準(zhǔn)化且不提供有效的長期安全性。缺乏標(biāo)準(zhǔn)化內(nèi)容出版商已熱衷于不兼容的多種數(shù)據(jù)格式和解密算法。不同內(nèi)容保護(hù)系統(tǒng)使得可使用不同商務(wù)模型,且已熱衷于一模型的出版商很可能反對任何要求不同模型的安全系統(tǒng)。與產(chǎn)品類型不兼容許多安全特征不能夠與所有產(chǎn)品尖型結(jié)合。舉例而言,用于個(gè)人計(jì)算機(jī)的可下載的純軟件播放器不能夠包括防篡改硬件類似地,頻繁的軟件更新難于傳遞給沒有因特網(wǎng)連接的播放器。用戶界面許多提議涉及復(fù)雜的用戶界面。對于誠實(shí)的用戶來說安全性應(yīng)為不可見的。用戶很可能會拒絕要求明確的用戶參與的方案(例如,獲取或輸入授權(quán)代碼)。一般而言,諸如汽車音響和視盤播放器的消費(fèi)性電子裝置必須易于使用,因?yàn)楸仨毷乖S多用戶滿意,即使他們不閱讀說明文檔、討厭技術(shù)問題、具有較差的視力或其它缺陷、或不熟悉播放器支持的語言。法律挑戰(zhàn)某些安全系統(tǒng)要求競爭者之間的合作。歸因于反托拉斯法規(guī),所述合作可為違法的。制造商得不到利益制造商將反對會增加播放器成本、上市時(shí)間(time-to-market)、防止包括合法特征或以其它方式使其產(chǎn)品較不有效或較不理想的安全性特征。盡管半導(dǎo)體技術(shù)的進(jìn)步在減少實(shí)現(xiàn)安全系統(tǒng)所需的成本,但設(shè)計(jì)并生產(chǎn)有效的防篡改硬件仍然為困難且昂貴的。因此,依賴制造商生產(chǎn)良好實(shí)施的內(nèi)容保護(hù)系統(tǒng)將失敗,除非其向供應(yīng)的產(chǎn)品(offering)更安全的制造商提供真正的市場優(yōu)勢。不確定的安全性策略有效的安全系統(tǒng)必須規(guī)定用于判定是不允許或阻止用戶請求的特定動作的規(guī)則或其它決策過程。在許多系統(tǒng)中,這些規(guī)則或過程并未很好地規(guī)定。不靈活的安全性策略內(nèi)容保護(hù)系統(tǒng)具有支持用于不同出版商、內(nèi)容類型、范圍、重放環(huán)境等等的不同模式的靈活性是理想的。系統(tǒng)應(yīng)當(dāng)提供必要的靈活性而不變得過于復(fù)雜。薄弱的長期安全性安全系統(tǒng)必須足夠的穩(wěn)固知靈活以保持長期有效
背景技術(shù):
的內(nèi)容保護(hù)系統(tǒng)很少能夠作為高級類(high-profile)格式的一部分持續(xù)使用超過幾年,而流行的格式可持續(xù)超過30年。攻擊的不可跟蹤性如果攻擊真的發(fā)生,那么系統(tǒng)應(yīng)當(dāng)能夠識別攻擊的來源,以使得可撤銷已泄漏(或誤用)的裝置且起訴罪犯。
發(fā)明內(nèi)容本申請涉及一可采用在很多種互通性平臺上提供靈活的且可更新的內(nèi)容保護(hù)的方式而實(shí)施的可標(biāo)準(zhǔn)化的內(nèi)容保護(hù)系統(tǒng)的各種實(shí)施例和方面。所述系統(tǒng)為參與者(制造商、出版商、藝術(shù)家和/或消費(fèi)者,等等)提供了作出關(guān)于安全性和功能性的決定時(shí)的無比的靈活性。一可與所述系統(tǒng)一起使用的示范性播放器(意即,一希望對受保護(hù)的內(nèi)容解密或以其它方式訪問其的裝置)包括若干組件。第一個(gè)為一諸如用于一光盤驅(qū)動器的數(shù)據(jù)或媒體輸入接口。為起始重放,播放器從所述輸入接口載入數(shù)據(jù)處理命令的序列并使用一解釋器或其它執(zhí)行模塊開始執(zhí)行這些命令。此執(zhí)行環(huán)境優(yōu)選地提供一圖靈完整性語言(Turing-completelanguage)(一可執(zhí)行任何算法、服從播放器的存儲器、用戶界面和性能限制的語言)。從所述執(zhí)行環(huán)境,所述內(nèi)容可查詢所述播放器以判定重放環(huán)境的配置并使用所述播放器的密鑰執(zhí)行密碼運(yùn)算。因此可對內(nèi)容進(jìn)行設(shè)計(jì)使得重放將僅在向查詢提供滿意的回應(yīng)的播放器上進(jìn)行。出版商也可提供有限制的重放。舉例而言,較不安全的平臺可提供CD音質(zhì)的立體聲音頻或常規(guī)清晰度的圖像,而更為安全的平臺可提供更多的音頻信道、高清晰度圖像、更高采樣速率和更高質(zhì)量的壓縮。即使在重放開始后,重放可保持由內(nèi)容的數(shù)據(jù)處理命令控制。一示范性實(shí)施例包括執(zhí)行穩(wěn)固的、實(shí)質(zhì)上實(shí)時(shí)(on-the-fly)的水印處理的能力。允許內(nèi)容本身控制播放哪些數(shù)據(jù)區(qū)域使得通過在具有微小差別的輸出數(shù)據(jù)版本之間選擇而在輸出中嵌入信息成為可能。通過分析這些差別可追蹤盜版拷貝而回溯到一具體播放器。因?yàn)樗鰞?nèi)容包含并強(qiáng)制實(shí)施其自己的安全策略,所以出現(xiàn)的攻擊可通過設(shè)計(jì)并發(fā)布有抵抗力的新的內(nèi)容來應(yīng)付。通過允許內(nèi)容強(qiáng)制實(shí)施其自己的安全策略而提供的靈活性也允許支持藝術(shù)家的偏好、區(qū)域性“合理使用”規(guī)定,等等。新的播放器特征可通過增加新的內(nèi)容可訪問(content-accessible)的播放器功能而容易地增加。從商業(yè)角度看,任何可用于將內(nèi)容出版商和消費(fèi)電子制造商聯(lián)合在提供最大可能的安全性的共同目標(biāo)下的內(nèi)容保護(hù)系統(tǒng)需要符合于所述出版商和制造商的商業(yè)和操作限制。本文中所揭示的系統(tǒng)允許出版商判定其自己的安全要求、接著允許內(nèi)容本身實(shí)施考慮到多種因素并判定是否(或如何)在每一環(huán)境中播放的策略。同樣,可激勵(lì)制造商設(shè)計(jì)可提供良好安全性且不促進(jìn)盜版的產(chǎn)品,使得其消費(fèi)者可接觸可能的最廣泛內(nèi)容。圖1展示使用
背景技術(shù):
的內(nèi)容保護(hù)方法的媒體播放器。圖2說明使用本文揭示的內(nèi)容保護(hù)方法的示范性媒體播放器。圖3說明一示范性實(shí)施例的解密部分。圖4說明用于在不需要集中的代碼簽名機(jī)關(guān)的情形下保護(hù)對非易失性存儲器的訪問的播放器方法的一示范性實(shí)施例。圖5說明當(dāng)附著到非易失性存儲器插槽時(shí)的示范性驗(yàn)證過程。具體實(shí)施例方式圖2展示使用物理媒體200的播放器的一示范性實(shí)施例。重放過程由可通過媒體接口205訪問媒體200的處理器210控制。當(dāng)安裝媒體200時(shí)(例如,當(dāng)將其首次插入或重新初始化系統(tǒng)時(shí),等等),處理器210以初始化媒體接口、讀取媒體的目錄(tableofcontents)并認(rèn)出所支持的保護(hù)系統(tǒng)而開始。如果這樣,那么處理器將媒體200的較小初始部分載入執(zhí)行和數(shù)據(jù)RAM220中。處理器210使用解釋器215開始執(zhí)行由所載入媒體部分規(guī)定的數(shù)據(jù)處理運(yùn)算。解釋器215提供一組預(yù)定的數(shù)據(jù)處理運(yùn)算,根據(jù)其可完成更復(fù)雜的任務(wù)。解釋型語言優(yōu)選地為圖靈完整的(Turing-Complete)。圖靈完整性程序設(shè)計(jì)語言的特征在于在一所述語言中可實(shí)施的算法可在任何其它語言中實(shí)施,且實(shí)施將具有類似的漸近性能特征。圖靈完整性程序設(shè)計(jì)語言的實(shí)例包括(無限制)C、C++、BASIC、Fortran、Pascal、Java和實(shí)質(zhì)上所有的匯編語言。所載入部分通過調(diào)用由解釋器215提供的過程調(diào)用而繼續(xù)。盡管載入RAM220中的初始數(shù)據(jù)可相對較小,但是運(yùn)行于解釋器215上的代碼通過過程調(diào)用可從媒體載入額外的數(shù)據(jù)(包括代碼),從而允許執(zhí)行更復(fù)雜的運(yùn)算。其它過程調(diào)用允許內(nèi)容判定重放環(huán)境配置225。內(nèi)容因此可分析重放環(huán)境特征(例如,播放器類型、請求的用戶動作,等等)來判定重放是否應(yīng)繼續(xù)。在一示范性實(shí)施例中,如果檢測到可改正的問題(例如,如果媒體包含用于播放器的安全性固件升級),那么可處理這些問題。如果支持,那么內(nèi)容也可查詢輸出接口250和(如果支持)目標(biāo)程序/裝置260(例如,放大器、數(shù)字揚(yáng)聲器、揚(yáng)聲器驅(qū)動程序,等等)以檢查安全性特征、載入密碼編譯密鑰、規(guī)定輸出參數(shù)(例如,如果安全性不確定,那么規(guī)定降低的輸出質(zhì)量),等等。在一示范性實(shí)施例中,內(nèi)容也可查詢密碼啟示器230,其可實(shí)施于外部抽取式安全模塊235(諸如智能卡,等等)中以允許安全硬件升級。啟示器也可實(shí)施于(無限制性)處理器210、播放器中的其它硬件、媒體、諸如揚(yáng)聲器的附加裝置等等中。密碼啟示器230可提供給內(nèi)容關(guān)于播放器身份的可驗(yàn)證的證據(jù)。對啟示器230查詢的結(jié)果可用于對隨后的內(nèi)容或代碼部分解密,從而提供沒有有效密鑰(或密鑰已撤銷)的播放器不能夠?qū)?nèi)容解密的強(qiáng)加密保證。在一示范性實(shí)施例中,解釋器執(zhí)行由“沙盒”中的內(nèi)容所規(guī)定的數(shù)據(jù)處理命令,意謂內(nèi)容不能夠接觸密碼秘密(諸如啟示器密鑰),其原本可能危害播放器的安全。在不一定所有內(nèi)容均為值得信賴的情況下,沙盒技術(shù)是有用的。舉例而言,攻擊者可設(shè)法產(chǎn)生試圖從播放器提取密碼編譯密鑰的惡意內(nèi)容。(下文提供關(guān)于示范性密碼啟示器及其操作的額外信息。)如果內(nèi)容判定重放應(yīng)不繼續(xù)(例如,如果用戶試圖復(fù)制且內(nèi)容經(jīng)配置成禁止復(fù)制),那么內(nèi)容可報(bào)告錯(cuò)誤并拒絕所請求的動作?;蛘撸瑑?nèi)容可控制再現(xiàn)和/或輸出過程以降低輸出的質(zhì)量,使得未授權(quán)的拷貝的質(zhì)量降低,且因此具有較低吸引力。如果內(nèi)容判定重放應(yīng)繼續(xù),那么內(nèi)容等候來自播放器的規(guī)定重放應(yīng)從媒體上的特定位置(例如,特定的軌道)開始的信號。解釋器215使用當(dāng)安裝媒體時(shí)載入執(zhí)行/數(shù)據(jù)RAM220中的數(shù)據(jù)處理指令來處理請求。如果內(nèi)容決定重放應(yīng)繼續(xù),那么其使用過程調(diào)用以控制媒體接口205開始從媒體200上的適當(dāng)位置載入加密的內(nèi)容。內(nèi)容規(guī)定用于塊解密模塊240的有效解密密鑰和參數(shù),所述塊解密模塊240從RAM220(或者,直接從媒體接口205)檢索加密的內(nèi)容并將其解密。經(jīng)解密的內(nèi)容接著提供到輸出接口205,其將所述內(nèi)容轉(zhuǎn)換成適于目標(biāo)程序或裝置260的模擬或數(shù)字格式。隨著重放繼續(xù),由解釋器215處理的數(shù)據(jù)處理指令可載入新的解密參數(shù)、規(guī)定將從媒體200讀取的新的數(shù)據(jù)區(qū)塊,等等。當(dāng)重放完成時(shí),內(nèi)容可重新初始化RAM220。在以下部分提供了關(guān)于解釋器、重放系統(tǒng)的和其它實(shí)施例及方面的額外信息。回應(yīng)攻擊廣泛實(shí)施于軟件和低成本消費(fèi)性電子裝置中的反盜版系統(tǒng)并不能夠防止所有可能的攻擊。本文中所揭示的技術(shù)可用于在受到攻擊后促進(jìn)以實(shí)質(zhì)上阻止現(xiàn)有攻擊的方式來制作新的內(nèi)容。雖然職業(yè)盜版者可設(shè)法不斷地尋求并安裝新的規(guī)避系統(tǒng),但是偶然的盜版將涉及不斷爭取開發(fā)和維護(hù)攻擊工具,且因此將有希望比僅合法地購買內(nèi)容更加困難。以下部分描述如何將本文中揭示的技術(shù)用于處理某些常見攻擊。第一種攻擊涉及試圖使用未泄漏的播放器執(zhí)行未授權(quán)的動作。舉例而言,可制作內(nèi)容以允許從原始媒體復(fù)制但不允許從拷貝復(fù)制。如果試圖從拷貝復(fù)制所述內(nèi)容(內(nèi)容可(例如)通過檢測在復(fù)制過程期間插入的修改或通過將當(dāng)前媒體的序號和/或類型與原始媒體比較而識別這種情況),那么解釋器代碼可阻止重放?;蛘撸忉屍骺稍试S以降低的保真度播放內(nèi)容(諸如,即使具有較高采樣速率的多信道音頻為可用的,但仍播放具有44.1千赫采樣速率的立體聲音頻)或通過插入額外的反盜版警告來播放內(nèi)容。因此,通過分析提供到解釋器的信息,在未泄漏的播放器上可檢測并處理不適當(dāng)?shù)挠脩粽埱?。第二種攻擊涉及播放器的密碼編譯密鑰的泄漏。如果播放器的密碼編譯密鑰已泄漏,那么攻擊者可通過仿真密碼啟示器和(視情形)提供對關(guān)于重放環(huán)境的查詢的虛假回應(yīng)而(至少在理論上)完全地仿真已泄漏的重放環(huán)境。在受到所述攻擊后,安全性可通過使未來內(nèi)容中的解釋型代碼要求并未提供于已泄漏的裝置中的至少一密碼編譯密鑰而重新建立。如果特定的播放器模型或制造商是許多攻擊的來源(例如,因?yàn)椴シ牌鲗?shí)施具有不充分的安全性),那么出版商可產(chǎn)生無法在所述平臺上播放(或?qū)⒁越档偷馁|(zhì)量播放)的內(nèi)容。第三種攻擊涉及使特定的一段內(nèi)容或包含類似的解釋器安全代碼的一組主題泄漏??蓾撛诘赝ㄟ^修改內(nèi)容本身以避開安全檢查或通過產(chǎn)生經(jīng)定制以播放目標(biāo)主題的惡意解釋器(maliciousinterpreter)而發(fā)起所述攻擊。所述攻擊可通過在未來內(nèi)容中運(yùn)用不同或更好的保護(hù)軟件來應(yīng)付。第四種攻擊涉及將內(nèi)容從受保護(hù)媒體復(fù)制為不受保護(hù)的格式,接著以新格式再分發(fā)所述內(nèi)容。沒有內(nèi)容保護(hù)系統(tǒng)可完全地防止所述攻擊,但是本文中揭示的技術(shù)和系統(tǒng)提供了可用于追蹤一泄漏而回溯到特定裝置的強(qiáng)大的、靈活的水印能力,接著可撤銷所述特定裝置以防止未來攻擊。因?yàn)橹鲃拥厣陷d內(nèi)容以進(jìn)行盜版的用戶數(shù)量相對較少,所以盜版行為可通過識別并撤銷這些用戶的播放器而顯著地減少??赏ㄟ^選擇性地略過密文的一些部分而在解密輸出中引入極細(xì)微的差別。舉例而言,在一示范性實(shí)施例中,內(nèi)容可通過控制播放器的解密模塊解密并輸出第一密文部分、接著略過第二密文部分而水印“零”位。為水印“一”位,內(nèi)容可控制所述模塊略過第一密文部分并輸出第二密文部分。通過對一系列所述位編碼,內(nèi)容可水印有解釋器代碼可利用的任何數(shù)據(jù),包括(無限制)播放器身份、密碼運(yùn)算結(jié)果、用戶動作描述、輸出裝置信息等等。如果發(fā)現(xiàn)了內(nèi)容的盜版拷貝,那么可對水印進(jìn)行分析以追蹤非法拷貝而回溯到單一播放器,接著可在未來內(nèi)容版本中撤銷所述播放器。因?yàn)橛锌赡艽_切地證明特定的拷貝源自特定的播放器,所以此能力也適用于執(zhí)法和取證用途。因?yàn)榭紤]制造非法拷貝的人會由于知道其可能被識別、抓住和起訴而被嚇阻,所以用于追蹤拷貝的特征也可用于抑制盜版。當(dāng)然,沒有消費(fèi)者易用(consumer-friendly)的反盜版系統(tǒng)可以可靠地防止在所有環(huán)境中的所有可能的攻擊。舉例而言,可從模擬輸出記錄音頻和視頻。(即使水印已嵌入于內(nèi)容中,但沒有水印檢測器的記錄器是可用的。)從模擬輸出截獲的數(shù)據(jù)接著可被重新制作于新的數(shù)字或模擬媒體上,并在沒有原始的安全性特征的情況下被再分發(fā)。類似地,由具有制造精確的媒體拷貝所需的設(shè)備的職業(yè)盜版者所制造的拷貝不能夠由播放器檢測到,但是本文中揭示的技術(shù)及系統(tǒng)可幫助防止媒體克隆。舉例而言,媒體上的光盤制造商標(biāo)識符可由內(nèi)容檢查以確保誠實(shí)的或粗心的復(fù)制設(shè)施不會被盜版者欺騙。媒體類型標(biāo)識符可防止在只讀媒體上出售的內(nèi)容被再分發(fā)于可記錄媒體上。對于具有因特網(wǎng)、電話/調(diào)制解調(diào)器或其它網(wǎng)絡(luò)支持的播放器而言,內(nèi)容在重放(或首次重放)之前可(例如)從服務(wù)器獲取鑒別以驗(yàn)證媒體是有效的。具有非易失性存儲器的播放器甚至可存儲已知為壞的媒體序號的表格,內(nèi)容和/或播放器可查詢所述表格以判定媒體是否已撤銷。查詢和控制重放環(huán)境可對內(nèi)容進(jìn)行配置以決定其是否會允許其本身被解碼。為輔助作出此決定,播放器可提供給內(nèi)容關(guān)于重放環(huán)境的信息。盡管非常有限的信息(諸如用戶所請求的動作和播放器模型)在許多情形下可為足夠的,但是需要更加詳細(xì)且準(zhǔn)確的信息,使得內(nèi)容可針對重放是否應(yīng)繼續(xù)而作出更加全面的評估。盡管提供給內(nèi)容的具體信息和能力取決于播放器實(shí)施,下文描述了(無限制)可提供到內(nèi)容的某些示范性功能和能力。應(yīng)注意,對于由多個(gè)連接的組件(諸如輸出端口、連接的輸出裝置、操作系統(tǒng)裝置驅(qū)動程序、安全模塊,等等)構(gòu)造的播放器而言,可為這些連接的裝置以及包含解釋器的播放器的主要部分提供某些或所有以下信息。安全支持信息安全規(guī)范版本、所支持的查詢功能、和/或安全模塊構(gòu)成因素(可替代的硬件、嵌入的硬件、可更新的固件、ROM固件、PC軟件,等等),等等。(下文詳細(xì)論述示范性密碼處理功能和重放控制/解密功能。)制造商信息名稱、標(biāo)識符、網(wǎng)站、公開密鑰/證書、制造批次、制造日期/時(shí)間、制造區(qū)域、制造國家、制造商地址、技術(shù)支持聯(lián)系信息和/或制造商保證信息,等等。裝置信息生產(chǎn)線、序號、模型號、固件/軟件版本、裝置公開密鑰/證書標(biāo)識符、GPS位置或其它物理位置/區(qū)域、支持內(nèi)容(contentsupported)的編碼譯碼器類型、網(wǎng)絡(luò)/因特網(wǎng)支持信息、網(wǎng)絡(luò)地址、裝置電話號碼、IP地址、水印支持、解釋器性能等級、安全認(rèn)證等級、裝置銷售商、裝置零售商、裝置構(gòu)成因素和/或安全規(guī)范,等等。用戶信息用戶名、地理區(qū)域、國家、地址、GPS位置或其它物理位置/區(qū)域/國家/等等、用戶電話號碼、IP地址、e-mail地址、網(wǎng)址、首選語言、對有爭議材料的容忍度、首選支付方法/帳號、支付限制、購買歷史和/或隱私首選項(xiàng),等等。媒體控制查詢媒體格式(可記錄的對不可記錄的)、媒體序號、記錄裝置類型、記錄裝置所有者、記錄裝置序號、記錄裝置安全性信息和/或記錄裝置水印檢查能力,等等。功能也可允許從媒體讀取、寫入媒體、格式化媒體、測試媒體和/或彈出媒體,等等。額外的功能可提供對密碼函數(shù)或由特定媒體格式支持的其它特殊能力的應(yīng)用。請求的用戶操作例如,播放、記錄、轉(zhuǎn)化成新的格式、載入到便攜式裝置、制造首個(gè)拷貝、制造多個(gè)拷貝、和/或同時(shí)播放/記錄,等等。也可給予內(nèi)容起始或修改所請求的操作的能力。輸出信息關(guān)于輸出端口、輸出端口配置、輸出端口安全性特征、連接的裝置、輸出數(shù)據(jù)格式和/或輸出數(shù)據(jù)質(zhì)量/分辨率等等的信息。如果支持,內(nèi)容可直接查詢輸出裝置以獲取關(guān)于裝置的額外信息、和/或請求密碼操作,等等。播放器也可允許內(nèi)容修改這些參數(shù),例如,如果安全性較差,則規(guī)定質(zhì)量降低的輸出。環(huán)境平臺上其它運(yùn)行的程序和裝置驅(qū)動程序的身份/散列值/版本;存儲器的內(nèi)容或散列值;已安裝的攻擊檢測模塊的版本;系統(tǒng)掃描攻擊的結(jié)果和/或篡改檢測器的狀態(tài),等等。這些功能也可允許內(nèi)容修改存儲器,例如,改正其它程序中的安全性弱點(diǎn)。時(shí)間日期、時(shí)間、時(shí)區(qū)、消逝的時(shí)鐘周期計(jì)數(shù)、自上次重置以來的時(shí)間、自制造以來的時(shí)間、自上次安全性升級以來的時(shí)間、自上次更換電池以來的時(shí)間和/或電池估計(jì)剩余壽命,等等。連接性判定播放器通信能力、檢查當(dāng)前連接狀態(tài)、建立網(wǎng)絡(luò)連按、建立調(diào)制解調(diào)器連接、規(guī)定建立網(wǎng)絡(luò)連接的臨界狀態(tài)、檢查/規(guī)定連接安全性特征、傳輸數(shù)據(jù)、接收數(shù)據(jù)、關(guān)閉連接和/或使連接空閑,等等。用戶界面顯示用戶消息、顯示歌詞、顯示圖形圖像、打印圖形圖像、顯示廣告/促銷消息、識別可用的用戶界面控制、獲取用戶輸入、使用播放器的語音合成器來對用戶播放語音和/或報(bào)告錯(cuò)誤,等等。水印控制選擇待輸出的內(nèi)容區(qū)域、選擇外部水印算法、控制外部水印檢測器和/或檢查標(biāo)記檢測器(markdetector)狀態(tài),等等。其它播放器/重放狀態(tài)信息、按次付費(fèi)計(jì)費(fèi)控制(例如,基于播放器的資金來源)、錯(cuò)誤處理、重放終止、保護(hù)非易失性存儲器支持(見下文)、應(yīng)用播放器固件更新和/或調(diào)用外部模塊(諸如動態(tài)鏈接庫),等等。為確保實(shí)施之間的互用性(例如,使得內(nèi)容可在內(nèi)容最初出版之后所設(shè)計(jì)的播放器環(huán)境中有效地發(fā)揮作用)和簡化編輯安全性內(nèi)容的任務(wù),功能和參數(shù)的某些標(biāo)準(zhǔn)化是有用的。對于其中多種不同制造商的產(chǎn)品會提供相同類型的信息或操作的功能來說標(biāo)準(zhǔn)化尤其是有用的。舉例而言,可標(biāo)準(zhǔn)化用來允許內(nèi)容判定播放器構(gòu)成因素(家庭音頻/視頻、便攜式、汽車用的、純個(gè)人計(jì)算機(jī)軟件、具有硬件輔助的個(gè)人計(jì)算機(jī)軟件、專業(yè)制片廠、影院,等等)的功能和回應(yīng)代碼。標(biāo)準(zhǔn)化的額外益處是,防止了制造商設(shè)法通過以預(yù)先存在的內(nèi)容不能理解的非標(biāo)準(zhǔn)格式來報(bào)告有關(guān)的風(fēng)險(xiǎn)相關(guān)(risk-related)信息而避免安全性控制。當(dāng)然,也可對系統(tǒng)進(jìn)行配置以允許制造商增加所有權(quán)功能,以供選用其的內(nèi)容制造者使用。對于希望為其產(chǎn)品增加新的特征的制造商而言增加新功能的能力尤其有價(jià)值,因?yàn)樗麄兛稍黾舆@些特征,然后與內(nèi)容出版商建立合作的商業(yè)關(guān)系以支持所述特征。可容易地對所述實(shí)施例進(jìn)行擴(kuò)展,同時(shí)(視需要)維持向后兼容性。制造商負(fù)責(zé)向內(nèi)容提供準(zhǔn)確的信息。雖然內(nèi)容一般不能夠直接檢驗(yàn)其所接收的大多數(shù)信息的準(zhǔn)確性,但是在制造商具有確保此信息正確的強(qiáng)烈動機(jī)的情況下,這并不是嚴(yán)格地必需的。舉例來說,出版商可防止其未來內(nèi)容在由無信譽(yù)的制造商制造的產(chǎn)品上播放。盡管播放器為提供給內(nèi)容的信息提供密碼鑒別可為有益的(例如,通過包括使用已認(rèn)證的播放器或制造商密鑰而發(fā)布的數(shù)字簽名),但是所述鑒別對于多數(shù)數(shù)據(jù)并非為強(qiáng)制的。對于系統(tǒng)的經(jīng)由潛在地非受信接口而連接的其它部分或輸出裝置(諸如要求高質(zhì)量的數(shù)字音頻數(shù)據(jù)的數(shù)字揚(yáng)聲器)來說,密碼鑒別更為重要,以使得可檢測并避免模仿受信裝置的惡意裝置。密碼處理除提供描述重放環(huán)境的信息以外,示范性播放器也實(shí)施可由內(nèi)容調(diào)用的密碼運(yùn)算。這些運(yùn)算可具有類似密碼啟示器的行為,從而允許內(nèi)容提供輸入數(shù)據(jù)(例如,64-位明文區(qū)塊),并返回密碼計(jì)算的結(jié)果。在一示范性實(shí)施例中,密碼計(jì)算的輸入包括至少一密鑰(其值一般未知且內(nèi)容無法訪問)和內(nèi)容規(guī)定的輸入數(shù)據(jù)。以下為可提供給內(nèi)容的用于包括(無限制性)鑒別重放環(huán)境、導(dǎo)出內(nèi)容解密密鑰等等用途的密碼原語(cryptographicprimitive)的實(shí)例(無限制性)塊密碼啟示器啟示器使用秘密密鑰對輸入消息加密(或解密)從而產(chǎn)生密文(或明文)結(jié)果。散列函數(shù)啟示器通常使用秘密密鑰來對輸入消息進(jìn)行散列處理(例如使用諸如HMAC-SHA的算法)以產(chǎn)生結(jié)果。數(shù)字簽名啟示器使用秘密(私人)密鑰對輸入消息進(jìn)行數(shù)字簽名以產(chǎn)生結(jié)果。所述功能也可向內(nèi)容提供公開密鑰和其證書。隨機(jī)數(shù)字產(chǎn)生器隨機(jī)數(shù)字產(chǎn)生器可提供給內(nèi)容不可預(yù)測的信息,(例如)以用于防止在線連接中的回復(fù)攻擊。數(shù)學(xué)函數(shù)可提供基礎(chǔ)數(shù)學(xué)運(yùn)算以幫助內(nèi)容最優(yōu)化其計(jì)算過程。舉例來說,最優(yōu)化的模乘法或指數(shù)函數(shù)可由內(nèi)容使用以執(zhí)行Rivest等人的第4,405,829號美國專利的RSA算法,以產(chǎn)生并檢驗(yàn)數(shù)字簽名并對消息加密和解密。最優(yōu)化的密碼原語標(biāo)準(zhǔn)密碼算法的最優(yōu)化實(shí)施可幫助提高性能。這些運(yùn)算可用于幫助對數(shù)據(jù)區(qū)塊進(jìn)行解密或散列處理,所述數(shù)據(jù)區(qū)塊包括(無限制)解釋器代碼空間的區(qū)域或從媒體載入的內(nèi)容的區(qū)段。解密控制如果內(nèi)容判定重放已授權(quán),那么解釋器代碼可使用每一內(nèi)容片段的正確的解密密鑰來初始化內(nèi)容解密模塊。另外,解釋器代碼可規(guī)定應(yīng)被再現(xiàn)或略過的內(nèi)容部分(例如,以允許重放期間的實(shí)時(shí)水印插入)。為確保解釋器與來自媒體的內(nèi)容流之間的同步,密鑰改變(或略過的區(qū)域)可被預(yù)先規(guī)定,接著由內(nèi)容中的信號觸發(fā)。舉例來說,一示范性實(shí)施例可允許內(nèi)容規(guī)定當(dāng)在密文中出現(xiàn)時(shí)觸發(fā)密鑰改變的64-位的值、在密鑰改變之后將略過的密文字節(jié)數(shù)和將使用的新的密鑰值。密鑰管理這些函數(shù)允許內(nèi)容判定哪些密鑰是播放器已知的。在運(yùn)算未并入隨機(jī)參數(shù)或其它所述可變數(shù)據(jù)的密碼啟示器的一示范性實(shí)施例中,可對系統(tǒng)進(jìn)行配置以使得可預(yù)先計(jì)算特定輸入的預(yù)期結(jié)果(例如,當(dāng)制作內(nèi)容時(shí))。出版商可因此規(guī)劃所述內(nèi)容以向啟示器提交經(jīng)選擇的輸入,接著檢驗(yàn)預(yù)期的結(jié)果已被獲取。缺少授權(quán)的密碼編譯密鑰的惡意播放器將不能夠計(jì)算正確的啟示器回應(yīng)。因?yàn)榭赡艿膯⑹酒鬏斎氲臄?shù)量是龐大的(例如,對于使用具有128位的塊大小的塊密碼的啟示器為2128),所以攻擊者預(yù)先計(jì)算或存儲所有可能查詢的結(jié)果實(shí)際上是不可行的。除驗(yàn)證有效播放器以外,密碼啟示器也可用于識別無效播放器。舉例來說,如果從合法播放器提取的密鑰被用于未授權(quán)的用途,那么可制作內(nèi)容使得其將拒絕在包含被撤銷的啟示器的播放器上播放。因?yàn)闆]有有效密鑰的情況下內(nèi)容將不播放,所以未授權(quán)的播放器必須包括竊取的密鑰。然而,通過使用這些竊取的密鑰,未授權(quán)的裝置將其狀態(tài)暴露給意識到泄漏的新內(nèi)容。很多種方法可用于并入啟示器結(jié)果或檢查特定啟示器查詢回應(yīng)是否有效。最簡單的方法為僅僅執(zhí)行與預(yù)期值的比較。因?yàn)檫@可(至少在理論上)由表現(xiàn)為似乎所有比較均匹配的惡意設(shè)計(jì)的解釋器所回避,所以內(nèi)容可包括預(yù)期會失敗的“假”比較或經(jīng)設(shè)計(jì)以挫敗惡意解釋器的其它所述測試。啟示器本身也可用于解密代碼或影響自修改代碼。舉例來說,啟示器的輸入可為所要代碼的加密版本。取決于其配置,所述啟示器因此允許內(nèi)容出版商將其包括在僅可由授權(quán)的播放器或播放器的子集解密的媒體代碼上,從而幫助使?jié)撛诘墓粽卟荒艿玫絻?nèi)容的代碼。使用啟示器的另一方式為使用其輸出作為密碼編譯密鑰或使用其以導(dǎo)出密鑰。這些密鑰可接著(例如)用于解密代碼、內(nèi)容、其它密鑰或任何其它數(shù)據(jù)。此靈活的解密能力可用于在內(nèi)容中實(shí)施很多種協(xié)議和策略。舉例來說,如果播放器具有足夠分類的密鑰,那么可對內(nèi)容進(jìn)行規(guī)劃以使用諸如Fiat和Naor的方法的方案(參見A.Fiat和M.Naor的“廣播加密(BroadcastEncryption)”,AdvancesinCryptology,編者DouglasStinson,第480頁;SpringerVerlag,1993)。視需要甚至可實(shí)施諸如Ginter等人的第5,982,891號美國專利中描述的復(fù)雜的訪問控制系統(tǒng)(當(dāng)然,前提為播放器提供必需的用戶界面、網(wǎng)絡(luò)、數(shù)據(jù)存儲器和密碼函數(shù))。對于制作內(nèi)容,出版商可得益于能夠訪問啟示器輸入/輸出對。在啟示器使用諸如RSA的不對稱密碼系統(tǒng)的私人密鑰的情形下,出版商簡單地獲取公開密鑰并使用其以執(zhí)行啟示器運(yùn)算的逆運(yùn)算對于使用塊密碼所構(gòu)造的對稱啟示器,播放器制造商可為出版商計(jì)算提供于每一播放器中的對稱啟示器的逆運(yùn)算。舉例來說,如果播放器啟示器使用塊密碼解密具有一個(gè)秘密密鑰的256-位數(shù)據(jù)區(qū)塊,那么制造商可提供給出版商對對應(yīng)的加密功能的訪問。因?yàn)閷δ鎲⑹酒鞯脑L問不允許泄漏啟示器,所以制造商可(例如)使用SSL經(jīng)由公眾可訪問的網(wǎng)絡(luò)服務(wù)器來提供逆啟示器計(jì)算。制造商也可提供給出版商來自隨機(jī)選擇的啟示器輸入的輸出。(盡管制造商可向出版商提供如在播放器中實(shí)施的實(shí)際啟示器函數(shù),但是這些函數(shù)可潛在地被誤用于構(gòu)造仿真合法播放器的未授權(quán)播放器。)用于將密鑰分配到播放器和制造商的具體方法取決于具體實(shí)施例和安全目標(biāo)。舉例來說,在一示范性實(shí)施例中,播放器被分配了多種對稱密碼啟示器密鑰,包括(無限制)從所述密鑰的較大全局池(偽)隨機(jī)選擇的播放器對稱密鑰;由制造商(偽)隨機(jī)生成的播放器專用對稱密鑰;對制造商、播放器模型等等來說是唯一的對稱密鑰;和/或鑒別播放器不具有特定特征(例如,不是由特定制造商制造的)的對稱密鑰。在此示范性實(shí)施例中,內(nèi)容可通過調(diào)用可返回所支持密鑰的列表的單獨(dú)函數(shù)而識別哪些密鑰實(shí)施于播放器中。播放器也可包含不對稱密鑰。舉例來說,在示范性實(shí)施例中,播放器具有播放器專用的公開/私人密鑰對;由制造商通過使用制造商的私人密鑰簽名播放器的公開密鑰而發(fā)布的播放器證書;由驗(yàn)證制造商的公開密鑰的根密鑰發(fā)證機(jī)關(guān)(rootkeyissuingauthority)發(fā)布的證書;用于驗(yàn)證訪問播放器的安全存儲區(qū)域的請求的公開密鑰(見下文);和/或用于驗(yàn)證播放器固件更新的公開密鑰。在涉及多個(gè)播放器制造商的基礎(chǔ)設(shè)施中,使一個(gè)或一個(gè)以上中央管理組織管理播放器、制造商等等的密鑰可為有幫助的。中央管理者也可有助于強(qiáng)制推行最低的安全標(biāo)準(zhǔn)、確保播放器向內(nèi)容代碼提供準(zhǔn)確的信息、保留用于新制造商的密鑰(使得其產(chǎn)品能夠播放舊的內(nèi)容)、跟蹤泄漏的密鑰、為內(nèi)容出版商執(zhí)行密碼啟示器運(yùn)算,等等。安全存儲器和計(jì)數(shù)器可用于內(nèi)容的存儲器通常為易失性的,從而在內(nèi)容每次運(yùn)行時(shí)提供給內(nèi)容“干凈的”執(zhí)行環(huán)境。然而,對于某些特征來說,內(nèi)容能夠在播放之間和在主題之間存儲數(shù)據(jù)是有用的。為滿足此需要,播放器可提供給內(nèi)容用于在播放之間維持狀態(tài)的安全的、非易失性存儲器。所述存儲器可要求額外的安全保護(hù)以確保只有授權(quán)的解釋型代碼能夠讀取或修改非易失性存儲器內(nèi)容。對于出版商而言確保非易失性存儲器的安全是重要的,以使得(例如)可信任此存儲器來追蹤離線按次付費(fèi)觀看歷史,以用于后來的計(jì)費(fèi)。在媒體上僅具有一個(gè)用于解鎖每一存儲器插槽的密鑰是不夠的,因?yàn)榇嗣荑€將很快被盜版者發(fā)現(xiàn),從而危害到所有播放器的存儲器插槽的安全。因此,一實(shí)施例提供了對訪問這些安全的非易失性存儲器區(qū)域的代碼的清楚的密碼鑒別。在此實(shí)施例中,播放器包含非易失性存儲器的若干區(qū)塊,其默認(rèn)地被鎖定(意即,拒絕讀取和寫入)。播放器也包含用于鑒別解鎖存儲器區(qū)塊的請求的公開密鑰。為獲得對此存儲器區(qū)塊的訪問,內(nèi)容調(diào)用一個(gè)將經(jīng)授權(quán)以訪問所述存儲器的代碼區(qū)塊的數(shù)字簽名當(dāng)作輸入的函數(shù)。此簽名可使用嵌入于播放器中的公開密鑰來檢驗(yàn),且規(guī)定了要解鎖的存儲器區(qū)塊和在區(qū)塊的每一部分中所授權(quán)的訪問特權(quán)(任意的讀取、任意的寫入、增量、減量、歸零,等等)。解釋器檢驗(yàn)數(shù)字簽名并(如果簽名有效)解鎖存儲器且執(zhí)行數(shù)字簽名的代碼。以下展示此過程的用于對具有偶爾(例如,每月)的審計(jì)的離線按次付費(fèi)內(nèi)容計(jì)費(fèi)的一實(shí)例(a)出版商X與播放器制造商Y協(xié)商對制造商Y的播放器的非易失性存儲器中的4-字節(jié)計(jì)數(shù)器的控制權(quán)。(b)出版商X為解釋器編寫一個(gè)檢查存儲器內(nèi)容的函數(shù)。如果值低于支出限度,那么函數(shù)使計(jì)數(shù)器增量。否則,函數(shù)建立與出版商之間的因特網(wǎng)連接、傳輸包括計(jì)數(shù)器值、隨機(jī)數(shù)和支付信息(諸如信用卡號或存儲于播放器中的其它資金來源)的支付請求。如果出版商接受由計(jì)數(shù)器指示的過去購買加上當(dāng)前購買的支付,那么出版商將密碼授權(quán)傳輸?shù)讲シ牌饕郧宄?jì)數(shù)器,播放器檢驗(yàn)所述密碼授權(quán)且(如果有效)歸零計(jì)數(shù)器。播放器通過重新鎖定存儲器并返回指示成功或失敗的代碼而結(jié)束。(c)制造商Y用識別出版商X的存儲器區(qū)域、訪問特權(quán)等等的參數(shù)來數(shù)字簽名存儲器更新代碼。(d)出版商X制造包括已簽名的代碼的內(nèi)容并將其分發(fā)到用戶。(e)用戶的播放器開始載入內(nèi)容,所述內(nèi)容提供給用戶一個(gè)購買選項(xiàng)。如果用戶拒絕購買,那么重放不會繼續(xù)。(f)內(nèi)容使用指向步驟(b)處編寫的代碼和步驟(c)處產(chǎn)生的數(shù)字簽名的指針來調(diào)用存儲器解鎖函數(shù)。(g)存儲器解鎖函數(shù)試圖執(zhí)行如在步驟(b)中描述的購買,并報(bào)告成功或失敗。(h)如果購買成功,那么為用戶播放內(nèi)容。否則,重放終止。當(dāng)然,通過使用上文所描述的安全計(jì)數(shù)器機(jī)制可采用更加復(fù)雜的購買機(jī)制。對于在內(nèi)容中可實(shí)施什么的唯一真正限制來自播放器的能力和出版商的創(chuàng)造力。包括(無限制)閃存、磁性存儲裝置(例如,硬盤)、有電池支持(battery-backed)的RAM等等的各種存儲技術(shù)可與本文中揭示的系統(tǒng)和技術(shù)一起使用。(在
背景技術(shù):
中已知用于提供非易失性存儲裝置和用于加密或以其他方式保護(hù)所述存儲裝置的很多種方法。)安全存儲裝置可(無限制)定位于播放器之外,包括(無限制)在抽取式模塊(諸如智能卡)中、在附著的輸出外圍設(shè)備(諸如揚(yáng)聲器、顯示器、家庭網(wǎng)絡(luò)中的遠(yuǎn)程裝置,等等)中、遠(yuǎn)程地在計(jì)算機(jī)網(wǎng)絡(luò)上,等等。例如,可基于可用空間、以保證的方式(例如,通過插槽號)或基于優(yōu)先級而配置/再循環(huán)來提供存儲器區(qū)塊分配。因?yàn)榍宄蜥尫糯鎯ζ鞑宀劭蓪?dǎo)致未報(bào)告的按次付費(fèi)記錄的丟失,所以可給予內(nèi)容規(guī)定可重寫插槽的條件的能力。對于可同時(shí)播放多個(gè)主題但僅具有一組非易失性存儲器插槽的播放器而言,鎖定機(jī)制可為需要的以確保一段內(nèi)容將訪問正由另一段內(nèi)容修改的插槽。在一實(shí)施例中,預(yù)付智能卡由消費(fèi)者購買并插入播放器上的插槽內(nèi)。所述卡包含播放器可寫入對應(yīng)于按次付費(fèi)內(nèi)容主題的標(biāo)識符的多個(gè)一次寫入的存儲器插槽。一旦寫入,內(nèi)容標(biāo)識符被并入實(shí)施于所述卡中的密碼啟示器計(jì)算中。因此,通過在允許重放之前檢驗(yàn)已存在正確的啟示器,內(nèi)容可檢驗(yàn)購買已完成。應(yīng)注意,上文所描述的用于鑒別對播放器函數(shù)的調(diào)用的一般方法并不限于配合安全計(jì)數(shù)器一起使用。舉例來說,相同的方法可用于保護(hù)對僅可由授權(quán)的出版商利用的特殊播放器特征的訪問。因?yàn)樗鐾緩教峁┝擞糜诒Wo(hù)對計(jì)算函數(shù)的訪問的通用但極其靈活的方法,所以其也具有區(qū)別于本文中所揭示的技術(shù)和系統(tǒng)的其它方面的適用性?;诿艽a的安全特征對比基于語言的安全特征安全策略可采用若干不同方式而執(zhí)行。密碼保護(hù)允許構(gòu)造內(nèi)容使得撤銷的或未授權(quán)的播放器將沒有解密內(nèi)容所必需的密碼編譯密鑰。未授權(quán)的播放器不能夠訪問其沒有密鑰的內(nèi)容(當(dāng)然,前提為使用有效的密碼)。因?yàn)榇送緩絻H提供給內(nèi)容所有者在特定裝置上阻止重放的能力,所以其相對較不靈活。(雖然更加復(fù)雜的實(shí)施例可使用不同的密鑰集來提供更加詳細(xì)的控制,但是基于密鑰的控制缺少解決更加復(fù)雜的訪問控制挑戰(zhàn)所需的靈活性。)然而,其在處理特定播放器已泄漏或以其他方式被認(rèn)為不應(yīng)被信賴以具有解密內(nèi)容的能力的情形時(shí)是極其有效的。相反,基于語言的控制在播放器已泄漏(或出于某些其它原因?yàn)橥耆鞘苄?的情形下有效性較差,但是其可執(zhí)行極其復(fù)雜的安全策略。如前文所提及的,內(nèi)容可分析重放環(huán)境并調(diào)用密碼啟示器,且如果認(rèn)為結(jié)果為不滿意的,那么拒絕播放。此途徑實(shí)質(zhì)上提供無限的靈活性,從而使其理想地適于控制在通常表現(xiàn)誠實(shí)地但可支持某些出版商會希望防止的關(guān)于特定內(nèi)容的操作(諸如拆解為不受保護(hù)的格式)的播放器上進(jìn)行重放所涉及的風(fēng)險(xiǎn)。盡管攻擊者可(至少在理論上)分析并攻擊個(gè)別段內(nèi)容(尤其是如果內(nèi)容的代碼編寫地不好),但是這些攻擊無法普遍化且可通過小心地使用密碼啟示器而可靠地對付。此外,本文中描述的解密控制能力使得觀察到其內(nèi)容的盜版拷貝的出版者能夠識別已泄漏的裝置并產(chǎn)生不易受攻擊的新內(nèi)容。進(jìn)展需要向內(nèi)容所有者提供長期保持安全的分發(fā)基礎(chǔ)結(jié)構(gòu)。先前的內(nèi)容保護(hù)系統(tǒng)在此方面已極度失?。浑m然實(shí)施者最初在尋求內(nèi)容所有者對新格式的支持時(shí)對安全性是盡心盡力的,但是安全級別傾向于在一種格式確保成功后顯著地降低。多種因素造成此下降趨勢,包括可攻擊更多的實(shí)施(增加了出售易損產(chǎn)品的可能性)、隨著更多受保護(hù)的內(nèi)容變得可用而對盜版的需求的增長、和攻擊者的技巧的增加??蓪Ρ疚闹薪沂镜南到y(tǒng)和技術(shù)的示范性實(shí)施例進(jìn)行配置以允許內(nèi)容所有者即使在媒體格式已標(biāo)準(zhǔn)化后繼續(xù)規(guī)定將如何保護(hù)其內(nèi)容,同時(shí)允許實(shí)質(zhì)上無限的可更新性,使得如果發(fā)現(xiàn)攻擊,安全性不會永遠(yuǎn)喪失。如果安全策略不是靜態(tài)的,那么制造商具有持續(xù)的長期動力來提供有效的安全性。舉例來說,內(nèi)容所有者可有能力阻止在密鑰已泄漏的裝置或普遍用于盜版的產(chǎn)品上進(jìn)行重放(或防止高質(zhì)量的重放)。因此,與傳統(tǒng)系統(tǒng)不同的是,產(chǎn)品制造商在進(jìn)行競爭來以最低可能的價(jià)格提供其產(chǎn)品時(shí)不能夠犧牲安全性,因?yàn)橄M(fèi)者也將尋求具有穩(wěn)固的安全性的產(chǎn)品,因?yàn)檫@些產(chǎn)品將提供最好的和最可靠的重放體驗(yàn)。即使本意良好的制造商也會偶然地制造出后來發(fā)現(xiàn)具有安全性缺陷的產(chǎn)品。因此,我們揭示了可用于回應(yīng)泄漏和安全性弱點(diǎn)的多種方法。舉例來說,播放器密碼編譯密鑰和軟件可使用數(shù)字簽名的代碼或密鑰更新來更新??稍诎瑘?zhí)行密鑰更新的軟件的媒體上將這些更新傳遞到播放器。舉例來說,如果合法用戶的播放器因?yàn)橄惹八姓咝孤┢浒踩远怀蜂N,那么新的所有者可撥打所述產(chǎn)品的技術(shù)支持電話并獲取新的密鑰。(當(dāng)然,客戶服務(wù)人員可希望獲取諸如姓名、地址、信用卡號、電話號碼、e-mail地址、IP地址等等的某些用戶信息,以阻止盜版者撥打電話請求新的密鑰以用于未授權(quán)的用途。)更新也可經(jīng)由因特網(wǎng)(或其它網(wǎng)絡(luò)連接)、調(diào)制解調(diào)器呼叫、經(jīng)由遠(yuǎn)端控制或鍵盤的輸入等等而分發(fā)。當(dāng)然,只要有可能就應(yīng)對更新進(jìn)行密碼保護(hù),使得攻擊者不能夠使用更新過程注入泄漏的密鑰或以其他方式攻擊播放器。制造商減少泄漏的后果的另一方式為包括一抽取式安全模塊,諸如智能卡。智能卡將實(shí)施某些或所有密碼啟示器以及提供給內(nèi)容的其它與安全性相關(guān)的功能。如果泄漏確實(shí)發(fā)生或如果發(fā)現(xiàn)安全性缺陷,有可能替換智能卡而不替換或升級整個(gè)播放器。應(yīng)注意,可以僅僅提供智能卡插槽,且直至當(dāng)出于安全原因有必要時(shí)才部署智能卡為防止智能卡被從合法的播放器取下并用于惡意播放器中,可在將播放器和/或卡發(fā)送到消費(fèi)者之前將智能卡密碼地聯(lián)系到接收器(例如,通過使其共享一個(gè)對稱密鑰)。制作和DRM內(nèi)容所有者關(guān)注制作內(nèi)容所涉及的任何新的成本是合理的。如果使用簡單的安全措施,那么可運(yùn)用本文中揭示的技術(shù)和系統(tǒng)以避免制作過程的新的重大成本。雖然開發(fā)執(zhí)行復(fù)雜的安全策略的內(nèi)容明顯地會要求更多的開發(fā)和測試努力,但是此花費(fèi)是完全可選擇的。(其它保護(hù)系統(tǒng)完全消除此選擇權(quán),從而迫使所有內(nèi)容出版商使用相同的安全系統(tǒng)、策略,等等。)當(dāng)然,因?yàn)楸疚闹薪沂镜南到y(tǒng)和技術(shù)也允許第三方DRM銷售商提供安全模塊和制作系統(tǒng),所以出版商無需自主開發(fā)安全系統(tǒng)。這些銷售商將通過提供最好的特征、最好的安全性、最低的成本、最大的靈活性、最大易用性、最好的性能、最小的代碼大小、范圍最廣的撤銷列表等等來競爭以得到出版商的生意。本文中揭示的技術(shù)和系統(tǒng)可充當(dāng)一個(gè)平臺,內(nèi)容所有者能夠基于所述平臺做出其自己的安全性決策。水印和泄漏追蹤在多數(shù)常規(guī)水印方法中,標(biāo)記檢測過程是標(biāo)準(zhǔn)化的并實(shí)施于大量廣泛運(yùn)用的產(chǎn)品中。此靜態(tài)算法令人遺憾地造成了嚴(yán)重的風(fēng)險(xiǎn),因?yàn)閷z測算法的了解通常允許攻擊者去除水印而不嚴(yán)重降低內(nèi)容的質(zhì)量。在一示范性實(shí)施例中,本文中揭示的系統(tǒng)和技術(shù)可包括實(shí)時(shí)水印插入,其不易受普通標(biāo)記去除攻擊的影響,因?yàn)闃?biāo)記格式、編碼過程和檢測過程全部由出版商選擇。在一示范性實(shí)施例中,出版商(或更準(zhǔn)確地說,由出版商編寫的控制程序)希望在某些輸出內(nèi)容中嵌入某些信息??赏ㄟ^解密和輸出第一內(nèi)容部分或第二部分而編碼此信息的每一位。這些部分可為媒體上的不同的加密區(qū)域且可使用不同的密鑰而加密。這些部分之間的差別可由出版商在制作內(nèi)容時(shí)選擇,且可為從微小的變化直至完全的不同的任何差異。因?yàn)閮蓚€(gè)部分之間沒有預(yù)定的關(guān)系,所以僅知道一部分(包括所述部分的解密密鑰)的盜版者無法判定另一部分。因?yàn)槊艽a控制和基于程序的控制可用于選擇哪些區(qū)域被解密,所以攻擊者不能夠判定替代的區(qū)域包含什么。實(shí)際上,(例如)通過對控制代碼加密(使得不同播放器使用不同代碼)和通過包括沒有播放器或僅有極少數(shù)播放器可解密的假區(qū)域,可對內(nèi)容進(jìn)行設(shè)計(jì)使得攻擊者甚至不能夠識別替代的區(qū)域是否存在。在一示范性實(shí)施例中,對內(nèi)容進(jìn)行編輯使得僅僅所有播放器的一個(gè)子集具有解密內(nèi)容的某區(qū)域的每一版本所需的密鑰,然而大體上所有的播放器都具有解密所述區(qū)域的至少一版本所需的密鑰。因此,通過分析此區(qū)域的未授權(quán)的拷貝,出版商可判定關(guān)于攻擊者的信息。應(yīng)注意,此甚至在攻擊者設(shè)法分析了一個(gè)(易受攻擊的)程序并解密了一個(gè)以上替代區(qū)域的情形下仍是成立的,因?yàn)槿舾蓞^(qū)域的所得組合仍向出版商揭示了哪些版本被解密。最終,用戶避免將其身份(或其播放器的身份)暴露給出版商的反盜版執(zhí)行專家的唯一可靠的方式是開始就不參與盜版。因?yàn)闃?biāo)記檢測過程無需標(biāo)準(zhǔn)化,所以此通用標(biāo)記方法不同于常規(guī)的水印處理。此差別允許顯著增大的安全性;實(shí)際上,可顯示不存在對此標(biāo)記方案的普通攻擊。此外,因?yàn)榻?jīng)水印的位在輸出中產(chǎn)生差別,所以這些水印可極其穩(wěn)固且可經(jīng)設(shè)計(jì)而在數(shù)字/模擬轉(zhuǎn)換、編輯、格式轉(zhuǎn)換、惡意攻擊等等后繼續(xù)存在。如何配置和使用內(nèi)容標(biāo)記能力的決定通常由出版商作出。某些藝術(shù)家會希望避免任何會進(jìn)行任何修改(無論多小)的技術(shù),從而排除了在其作品上使用水印特征的可能性。在其它情形下,某些類型的內(nèi)容被廣泛地盜版,且是大量使用標(biāo)記能力的適合的候選物。雖然各部分通常被選擇而僅具有細(xì)微的差別,但是編碼哪些替代版本的選擇、如何在可能的輸出版本之間選擇和這些部分的解密密鑰的管理是由內(nèi)容控制的。因?yàn)闃?biāo)記能力由與內(nèi)容結(jié)合的數(shù)據(jù)處理指令所控制,所以所述技術(shù)可用于其它特征,包括(無限制性)實(shí)施其中贏家的播放器輸出一個(gè)祝賀消息的抽獎(jiǎng)(sweepstake)、向其播放器安全性不足的用戶傳遞安全警告、和向某些用戶提供附送內(nèi)容。當(dāng)然,其它水印方案也可與本文中揭示的技術(shù)和系統(tǒng)一起使用。舉例來說,傳統(tǒng)水印(對于其標(biāo)記檢測算法是標(biāo)準(zhǔn)化的)也可由內(nèi)容的代碼或由外部水印嵌入電路(其可由內(nèi)容控制或可不由內(nèi)容控制)嵌入于輸出中。類似地,可讀出(同樣地,由內(nèi)容的代碼或由外部檢測器)傳入內(nèi)容中的水印,(例如)以檢測制造未授權(quán)的拷貝或引入未授權(quán)的內(nèi)容的嘗試。對嵌入哪些水印和如何回應(yīng)已檢測的水印的選擇可實(shí)施于播放器和/或內(nèi)容中。實(shí)例遷移路徑CD音頻如今,數(shù)字內(nèi)容的絕大多數(shù)以未受保護(hù)的或受最小程度保護(hù)的格式分發(fā)。舉例來說,CD音頻標(biāo)準(zhǔn)不包含反復(fù)制特征,且DVD視頻中的保護(hù)方案已受到很大地破壞。因?yàn)榕f式媒體播放器不支持足夠的安全性,所以需要升級或替換其。新的安全系統(tǒng)的成功取決于建立巨量的兼容播放器。通過使本文中揭示的技術(shù)和系統(tǒng)與用于制造受復(fù)制保護(hù)的CD的現(xiàn)有方法組合,制造向后兼容的CD是可能的。所述CD將利用非標(biāo)準(zhǔn)CD格式化以制造在多數(shù)音頻CD播放器上正確地播放但使基于計(jì)算機(jī)的拆解軟件混淆的光盤。經(jīng)授權(quán)的(例如,得到許可的)個(gè)人計(jì)算機(jī)軟件也可通過改正不正確讀取的或以其他方式使計(jì)算機(jī)混淆的部分來播放光盤。因此,允許在(多數(shù))舊式音頻播放器上重放,因?yàn)槠淇刹シ欧菢?biāo)準(zhǔn)的(受復(fù)制保護(hù)的)紅皮書音頻部分,且允許在具有適當(dāng)播放器軟件(其可(例如)包括于CD上或可經(jīng)由因特網(wǎng)下載)的個(gè)人計(jì)算機(jī)上進(jìn)行重放。盡管長期支持對現(xiàn)有CD音頻播放器的向后兼容性可引入額外的安全性風(fēng)險(xiǎn),但是其作為鼓勵(lì)運(yùn)用可播放新的安全格式的音頻播放器的長期策略的一部分可為有益的,以使得(最終)內(nèi)容可僅以安全格式出售。實(shí)例高清晰度DVD由當(dāng)前DVD視頻播放器使用的復(fù)制保護(hù)系統(tǒng)已受到很大地破壞。因?yàn)閿?shù)百萬的DVD播放器已出售且不可升級到新的保護(hù)系統(tǒng),在不放棄對這些舊用戶的支持的情況下沒有直接的方式來升級當(dāng)前DVD格式。幸運(yùn)地是,DVD播放器的已安裝的基座僅設(shè)計(jì)用于支持“標(biāo)準(zhǔn)”清晰度電視(例如,NTSC的525線,PAL的625線,等等),但不支持由高清晰度電視(HDTV)格式提供的更高質(zhì)量的信號。因?yàn)榕f式播放器不支持HDTV,所以本文揭示的新的安全特征可并入于支持HDTV的DVD上。在一示范性實(shí)施例中,播放器將具有用戶可接近的媒體輸入端(由用于一個(gè)或一個(gè)以上光盤的機(jī)械化托盤組成),所述輸入端將媒體裝載到一個(gè)主軸,在所述主軸上媒體被旋轉(zhuǎn)并使用激光被讀取。從媒體讀取的數(shù)據(jù)傳輸?shù)揭粋€(gè)基于微處理器的電路,其分析光盤編碼以判定光盤容量、格式化類型和安全方法。如果光盤為使用舊式安全方案(CSS)的舊式(低分辨率)DVD,那么使用
背景技術(shù):
中已知的方法播放光盤。如果光盤為使用如本文所揭示的可編程安全方法的高密度DVD,那么從光盤載入用于內(nèi)容的安全策略的程序代碼(數(shù)據(jù)處理指令)并由播放器予以執(zhí)行。播放器視情形也可支持使用改良的安全性的低密度DVD以及使用舊式保護(hù)方法的高密度DVD(盡管對于新的內(nèi)容使用已受到很大破壞的安全方案一般無甚益處)。從DVD播放器的輸出的質(zhì)量可由內(nèi)容控制。舉例來說,如果播放器和/或HDTV輸出裝置不提供足夠的安全性,那么內(nèi)容可選擇輸出較低分辨率的輸出。在此情形下,內(nèi)容可(舉例來說且無限制)控制播放器將HDTV信號向下轉(zhuǎn)換到較低分辨率(例如,使用專門設(shè)計(jì)用于此用途的降級模塊)、僅提供給播放器解密所述信號的較低分辨率部分所需的密鑰(且拒給較高分辨率部分所需的密鑰)或控制播放器輸出內(nèi)容的與較高分辨率版本分離地編碼于媒體上的低分辨率版本。解釋器結(jié)構(gòu)在一示范性實(shí)施例中,解釋型語言基于DLX匯編語言?;綝LX處理器結(jié)構(gòu)在
背景技術(shù):
中是熟知的(例如,參見Hennessy等人的ComputerArchitectureAQuantitativeApproach,第二版)。執(zhí)行于解釋器的存儲器空間(在一示范性實(shí)施例中,其由8兆字節(jié)的RAM組成)中的代碼經(jīng)沙盒處理(sandboxed)使得其僅可訪問此存儲器和處理器的寄存器組。無效指令(或其它運(yùn)算)可作為NOP處理(意即,什么都不做)或可觸發(fā)一個(gè)異常(exception)。類似地,逾界(out-of-bounds)存儲器訪問可觸發(fā)異?;蚩杀桓恼?例如,在從8兆字節(jié)地址空間進(jìn)行32-位讀取的情形下,通過使地址與十六進(jìn)制0x007FFFFC邏輯乘來使逾界訪問繞回到存儲器的開始并確保32-位對準(zhǔn))。DLX“trap(自陷)”指令用于提供對外部過程調(diào)用的使用。“trap”指令調(diào)用播放器中的可擴(kuò)展到沙盒外的運(yùn)算(意即,超出正常指令可訪問的寄存器和存儲器)。對于所述運(yùn)算的描述,參見“查詢和控制重放環(huán)境”部分。對于專用的硬件實(shí)施例而言也可能使用DLX處理器的ASIC或FPGA(或其它硬件)實(shí)施而不是基于軟件的解釋器/仿真器,在此情形下“trap”指令可(例如)經(jīng)配置以觸發(fā)處理器進(jìn)入一個(gè)更高特權(quán)級別、擴(kuò)大其地址空間以包括一ROM或EEPROM區(qū)域(例如,通過啟用額外的地址線)、存儲返回程序計(jì)數(shù)器(returnprogramcounter)并跳轉(zhuǎn)到經(jīng)擴(kuò)大的地址空間中的預(yù)定地址以進(jìn)行進(jìn)一步處理。更高特權(quán)級別也可啟用處理器核心中的額外的指令或能力,諸如與外部外圍設(shè)備(例如,非易失性存儲器、密碼加速器、密鑰管理組件、光學(xué)媒體驅(qū)動器、數(shù)據(jù)網(wǎng)絡(luò)、衛(wèi)星接收器,等等)互相作用的能力。硬件實(shí)施中的存儲器保護(hù)能力可包括限制地址線的數(shù)量(從而防止逾界訪問)或使用
背景技術(shù):
中已知的其它存儲器保護(hù)方法。在完成“trap”調(diào)用后,處理器將減少特權(quán)級別并繼續(xù)執(zhí)行內(nèi)容代碼。在用于解密分發(fā)于高密度光盤上的視頻的一示范性DLX實(shí)施中,提供“trap”運(yùn)算以允許內(nèi)容從光盤讀取數(shù)據(jù)。為從物理媒體載入數(shù)據(jù),內(nèi)容代碼通常規(guī)定一個(gè)地址(例如,光盤上的扇區(qū)號)、數(shù)據(jù)在DLX存儲器空間中的目標(biāo)地址、將載入的數(shù)據(jù)量和(視情形)解碼參數(shù)(諸如錯(cuò)誤改正多項(xiàng)式(errorcorrectionpolynomial)/參數(shù)、解碼密鑰,等等)。內(nèi)容可使用數(shù)據(jù)執(zhí)行任何方式的處理步驟,甚至包括將數(shù)據(jù)作為代碼執(zhí)行。因?yàn)楣鈱W(xué)驅(qū)動器、硬盤驅(qū)動器和其它數(shù)據(jù)源一般具有相當(dāng)大的等待時(shí)間(尤其當(dāng)執(zhí)行諸如搜尋新的軌道的操作時(shí)),所以單獨(dú)的“trap”運(yùn)算可用于預(yù)先規(guī)定預(yù)期會需要、請求數(shù)據(jù)、檢查待處理請求的狀態(tài)和/或?qū)嶋H地將數(shù)據(jù)載入于DLX存儲器空間中的區(qū)域。內(nèi)容代碼也可調(diào)用trap運(yùn)算以在存儲器上執(zhí)行高速密碼運(yùn)算。舉例來說,示范性批量解密“trap”運(yùn)算利用AES加密算法并允許內(nèi)容規(guī)定(a)從存儲于播放器中(或播放器可訪問)的秘密密鑰之中選擇的指數(shù)、(b)加密的密鑰、(c)待解密的數(shù)據(jù)在DLX存儲器空間中的地址和(d)待解密的數(shù)據(jù)的長度。trap(a)使用由指數(shù)值識別的密鑰來對從內(nèi)容接收的加密密鑰解密,并(b)使用已解密的密鑰在ECB模式中利用AES算法對在指示的地址處的規(guī)定數(shù)量的數(shù)據(jù)區(qū)塊解密??捎芍笖?shù)選擇的密鑰-解密-密鑰可包括存儲于播放器中的密鑰(包括(無限制性)播放器專用密鑰、制造商密鑰、群組密鑰、媒體密鑰等等,其視情形可存儲于具有密碼能力的內(nèi)部防篡改芯片和內(nèi)部非易失性存儲器中)、存儲于外部裝置中的密鑰(包括(無限制性)密碼模塊、光盤驅(qū)動器、可訪問遠(yuǎn)程網(wǎng)絡(luò)的裝置/服務(wù)器、顯示器、揚(yáng)聲器等等)。為判定哪些密鑰是可利用的,內(nèi)容代碼可分析諸如播放器的類型、播放器的序號、播放器所包括的密鑰列表/描述(且視情形由播放器制造商或一信任方數(shù)字簽名)、經(jīng)由網(wǎng)絡(luò)獲取的數(shù)據(jù)、和關(guān)于播放器或重放環(huán)境的任何其它可利用的數(shù)據(jù)(參見“查詢和控制重放環(huán)境”部分)。任何方式的其它密碼能力也可由內(nèi)容提供給播放器,包括(無限制)加密、解密、對稱算法(具有任何操作模式的流密碼、塊密碼、散列算法、消息鑒別代碼等等)、公開密鑰算法(簽名、驗(yàn)證、加密、解密、密鑰管理、零知識(zeroknowledge)操作,等等)、密鑰和證書管理,等等。內(nèi)容代碼可對解密結(jié)果執(zhí)行額外的處理(或預(yù)處理)操作。舉例來說,可執(zhí)行XOR運(yùn)算以將ECB解密結(jié)果轉(zhuǎn)換成CBC解密結(jié)果??蓱?yīng)用解擾步驟以防止盜版者使用從播放器提取的密鑰解密內(nèi)容而不執(zhí)行其解釋型代碼??蓱?yīng)用的步驟的實(shí)例包括(無限制)切換(toggle)位、使用簡單的二進(jìn)制運(yùn)算進(jìn)行改變、重排序區(qū)塊、安置或插入偏移/地址(例如,以組合一個(gè)符合MPEG-2或其它視頻壓縮標(biāo)準(zhǔn)的數(shù)據(jù)流)、應(yīng)用公開密鑰運(yùn)算(諸如以復(fù)合數(shù)為模求模平方或立方)、應(yīng)用對稱密碼運(yùn)算和更新內(nèi)部檢驗(yàn)和。也可將后處理步驟用于引入或修改取證水印(例如)以允許追蹤拷貝到具體裝置。經(jīng)解碼/經(jīng)處理的數(shù)據(jù)也可使用解釋器執(zhí)行,從而允許解密/重放代碼本身的部分以加密的形式分發(fā)并允許內(nèi)容利用很多種代碼隱藏和模糊技術(shù),諸如使用自修改代碼。甚至可能構(gòu)造多功能數(shù)據(jù),例如,當(dāng)被執(zhí)行時(shí)執(zhí)行有用的任務(wù)但也表示有效的壓縮視頻的數(shù)據(jù)。當(dāng)處理完成且預(yù)備好輸出數(shù)據(jù)時(shí),內(nèi)容代碼可調(diào)用播放器中的額外的過程調(diào)用(例如,DLX“trap”運(yùn)算)以向用戶輸出數(shù)據(jù)。所述調(diào)用可(例如)傳送數(shù)據(jù)到一個(gè)或一個(gè)以上視頻解碼器(例如,MPEG-2解碼器)、音頻解碼器(例如,MP3或AC-3解碼器)或圖形重疊系統(tǒng)(例如,具有透明/重疊能力且支持靜態(tài)圖像和/或動畫引擎,諸如GL、ShockWave或Flash)。如果適當(dāng),那么數(shù)據(jù)將被轉(zhuǎn)換(例如解壓縮),接著被呈現(xiàn)。呈現(xiàn)可包括將數(shù)據(jù)傳送到諸如音頻揚(yáng)聲器或視頻顯示器的一個(gè)或一個(gè)以上物理分離的裝置。將解密和解壓縮/輸出作為獨(dú)立的API調(diào)用的實(shí)施例的優(yōu)點(diǎn)為,其允許內(nèi)容進(jìn)行更大控制,但潛在缺點(diǎn)為,會增加內(nèi)容需從存儲器讀取和寫入存儲器的次數(shù)。然而,實(shí)際上隨機(jī)存取存儲器通常充分地快,使得甚至對于諸如具有影院播放質(zhì)量的高清晰度視頻的極高位速率的內(nèi)容來說,額外的等待時(shí)間也是可控制的。在高速實(shí)施上,因?yàn)榻鈮嚎s可實(shí)施于解釋型代碼中,所以播放器編碼譯碼器可為不需要的。播放器也可提供單指令多數(shù)據(jù)并行處理能力(例如,通過提供經(jīng)由大致類似于x86處理器上的MMX、SSE和SSE2指令的過程調(diào)用可訪問的單指令多數(shù)據(jù)數(shù)學(xué)運(yùn)算)以改進(jìn)使用解釋型代碼實(shí)施的編碼譯碼器、圖形處理運(yùn)算等等的性能??赡苁褂枚喾N解釋器實(shí)施策略。在一實(shí)施例中,解釋器實(shí)施在運(yùn)行于一般微處理器上的軟件中。在另一實(shí)施例中,解釋器使用諸如現(xiàn)場可編程門陣列的可重新配置的邏輯而實(shí)施。在另一實(shí)施例中,專用的硬件裝置履行解釋器的角色。在所有三種情形下,過程調(diào)用可使用(無限制)本地軟件、硬件加速和對外部裝置或組件的調(diào)用的任何組合而實(shí)施。本地代碼除解釋獨(dú)立于播放器的沙盒化代碼以外,播放器也可允許內(nèi)容提交本地代碼以供執(zhí)行和/或存儲。在接受可訪問密鑰或其它特許資源的軟件或邏輯之前,播放器驗(yàn)證代碼。驗(yàn)證可(例如)通過確定代碼包括一個(gè)由播放器制造商或另一受信方發(fā)布的有效RSA數(shù)字簽名而執(zhí)行。經(jīng)成功驗(yàn)證的本地代碼可存儲于易失性存儲器中以用于由當(dāng)前載入的內(nèi)容執(zhí)行,或其可存儲于播放器的非易失性存儲器中,在其中所述代碼可由其它主題利用。舉例來說,為避免對其它主題可能的負(fù)面影響,可在易失性存儲器中存儲僅由當(dāng)前載入的主題使用的用以改正播放器中的裝飾(cosmeticquirk)或提供性能優(yōu)化的修補(bǔ)程序。相反,用于改正安全弱點(diǎn)的升級將通常永久地存儲于播放器的非易失性存儲器中。本地代碼通常特定于單一播放器平臺或播放器應(yīng)用,從而使其可移植性比解釋型代碼較差。其優(yōu)點(diǎn)為當(dāng)使用解釋型代碼不能夠處理的需要出現(xiàn)時(shí)可使用其。舉例來說,本地代碼可由內(nèi)容用作區(qū)別合法播放器與未授權(quán)的仿真器或“復(fù)制品”的方式,從而避免在每次攻擊者發(fā)現(xiàn)產(chǎn)品的設(shè)計(jì)中的嚴(yán)重的安全弱點(diǎn)時(shí)撤銷每一潛在受影響的裝置的必要。作為對所述攻擊的防御,產(chǎn)品銷售商可包括難于仿真或進(jìn)行逆向工程的內(nèi)置的本地代碼能力或解釋器運(yùn)算。應(yīng)注意,設(shè)計(jì)用以幫助檢測或回應(yīng)對特定播放器的攻擊的能力可為銷售商所有的和/或播放器特定的,因?yàn)槠鋵H回應(yīng)特定播放器的問題而被激活。具體措施可包括(無限制)簡單的無記錄的特征、定時(shí)敏感的常用程序、明確地設(shè)計(jì)成難于以軟件全速地逆向工程或仿真的操作(例如,參見Kocher等人的第6,289,455號美國專利PseudoasymmetricFunction,其全文以引用的方式并入本文中)、和完全的密碼啟示器(對稱或不對稱)在其中的解釋器實(shí)施于專用硬件中的裝置的情形下,“本地”代碼和解釋型代碼可為類似的或相同的(盡管其可以不同特權(quán)操作,在此情形下播放器可將在較高特權(quán)級別的執(zhí)行限制于經(jīng)特殊鑒別的代碼)。在使用本地代碼的內(nèi)容的一示范性實(shí)施例中,媒體包括由當(dāng)解釋時(shí)載入額外的可解釋代碼的解釋型代碼組成的初始引導(dǎo)程序部分。內(nèi)容代碼(例如,由引導(dǎo)程序部分載入的代碼)接著將向播放器發(fā)出過程調(diào)用并分析結(jié)果以判定包括播放器類型的關(guān)于重放環(huán)境的信息。內(nèi)容也可(例如)通過要求播放器(或其它組件)使用對已報(bào)告的重放環(huán)境特征為特定(或表示所述環(huán)境特征的特點(diǎn))的密鑰來執(zhí)行密碼運(yùn)算而檢驗(yàn)重放環(huán)境。為阻止惡意解釋器篡改驗(yàn)證結(jié)果,所述運(yùn)算的結(jié)果可用于隨后的解碼和重放過程。(例如,通過將來自播放器的密碼結(jié)果并入解密密鑰計(jì)算中,內(nèi)容可穩(wěn)固地防止在自稱具有某特定播放器類型或重放環(huán)境屬性但缺少對應(yīng)的密碼編譯密鑰的惡意播放器上重放。結(jié)果也可與預(yù)期值比較、使用公開密鑰方案檢驗(yàn),等等。)內(nèi)容接著判定播放器是否為(默認(rèn)地)包括需要改正的安全性缺陷(或其它問題)的類型。在進(jìn)行此判定時(shí),內(nèi)容代碼可分析來自播放器中的信息(例如,在可由內(nèi)容訪問的非易失性存儲器中的數(shù)據(jù)、來自播放器中的時(shí)鐘的日期/時(shí)間信息,等等)和/或從外部獲取的信息(例如,通過查詢附加的裝置或經(jīng)由網(wǎng)絡(luò)通信)。如果識別出問題,那么獲取對應(yīng)的反措施(例如,從媒體或經(jīng)由諸如因特網(wǎng)的數(shù)據(jù)網(wǎng)絡(luò))。取決于問題的本質(zhì),反措施可涉及解釋型代碼和/或本地代碼。在本地代碼反措施為必需的情形下,內(nèi)容可將反措施代碼作為數(shù)字簽名的數(shù)據(jù)提交到播放器,包括指示所述代碼是否應(yīng)緩存在易失性存儲器中用于未來用途(例如,經(jīng)由過程調(diào)用)、是否應(yīng)永久存儲(例如,以改正在現(xiàn)有非易失性存儲器中的程序錯(cuò)誤)和/或是否應(yīng)立即執(zhí)行的指令。本地代碼也可經(jīng)配置以執(zhí)行可識別的運(yùn)算(諸如可與內(nèi)容解密過程結(jié)合的密碼計(jì)算),以使得內(nèi)容代碼可確定所述本地代碼確實(shí)由播放器執(zhí)行。本地代碼也可經(jīng)配置以禁用惡意播放器,(例如)通過重寫密鑰。內(nèi)容也可查詢、分析代碼及代碼更新(本地或解釋型)并將其傳遞到諸如經(jīng)由數(shù)字接口連接的顯示器或揚(yáng)聲器的其它裝置。一旦重放環(huán)境為可接受的,那么內(nèi)容代碼(例如)通過從媒體載入數(shù)據(jù)塊、在插入取證水印的同時(shí)執(zhí)行解密運(yùn)算并傳遞供解壓縮和輸出的解密數(shù)據(jù)而按用戶請求繼續(xù)重放。標(biāo)準(zhǔn)化知性能考慮通常需要具有足夠詳細(xì)地定義重放環(huán)境的標(biāo)準(zhǔn),以使兼容播放器的制造者可確信其產(chǎn)品將能夠播放兼容的內(nèi)容(服從安全策略,等等)。所述標(biāo)準(zhǔn)一般會規(guī)定解釋器的基本指令集(或均等物)和所需的過程調(diào)用??赡芤残枰獮榭砂ㄓ诮獯a過程的實(shí)時(shí)部分中的任何指令和過程調(diào)用定義性能要求。(對于僅在啟動、關(guān)閉和其它非實(shí)時(shí)操作期間執(zhí)行的運(yùn)算而言,性能要求通常為較不關(guān)鍵的。)舉例來說,一個(gè)示范性規(guī)范可要求兼容解釋器能夠每秒鐘最少執(zhí)行八百萬“時(shí)間單位”(TU),其中正常的低級別解釋器運(yùn)算可各占用達(dá)到一個(gè)TU,且乘法和除法運(yùn)算可各占用4TU。對播放器提供的過程(例如,DLX“trap”)的調(diào)用的性能要求取決于所請求的運(yùn)算。舉例來說,AES加密運(yùn)算可占用多達(dá)100TU加上每塊密碼計(jì)算的12TU。字對準(zhǔn)的存儲器復(fù)制可占用多達(dá)50TU加上每16字節(jié)(或其分?jǐn)?shù))的1TU。緩沖一個(gè)媒體讀取請求或檢查已緩沖的請求的完成狀態(tài)可占用達(dá)到100TU。讀取請求以提交的順序但與其它處理并行地一次執(zhí)行一個(gè),且可占用多達(dá)10,000TU加上每2048-字節(jié)扇區(qū)的1500TU。非順序讀取可占用額外的(20000+640000×扇區(qū)中的尋道距離/每媒體最大扇區(qū)數(shù))個(gè)TU以用于尋道開銷。從完成的讀取載入數(shù)據(jù)(意即,將數(shù)據(jù)從驅(qū)動器的緩沖器傳送到解釋器的存儲器空間)可占用多達(dá)100TU加上每傳送2048-字節(jié)扇區(qū)的128TU。將數(shù)據(jù)傳送到編碼譯碼器或其它輸出端可占用多達(dá)100TU加上每傳送16字節(jié)(或其分?jǐn)?shù))的1TU。當(dāng)然,這些時(shí)序值是出于示范性用途而提供的;具體性能指標(biāo)將取決于系統(tǒng)的要求。也可規(guī)定更復(fù)雜的性能要求(例如,規(guī)定指令序列的總的計(jì)算時(shí)間)以為播放器實(shí)施者提供更大的靈活性或?yàn)閮?nèi)容作者提供更好的性能保證。實(shí)際上,許多實(shí)施將比性能最低值運(yùn)行地快得多。此僅僅意謂數(shù)據(jù)將在需要其之前就已準(zhǔn)備好。舉例來說,每常規(guī)解釋型指令占用40時(shí)鐘周期的基于軟件的解釋器在2GHz微處理器上將表現(xiàn)為約50百萬TU/秒的處理速度。類似地,以25MHz的頻率和每指令2時(shí)鐘周期的速度運(yùn)行的專用硬件實(shí)施也將比每秒鐘8百萬TU快得多。應(yīng)注意,標(biāo)準(zhǔn)開發(fā)者面臨系統(tǒng)的簡單性與性能之間的平衡。具體來說,對于基于軟件的實(shí)施,一般可假定執(zhí)行于過程調(diào)用中的運(yùn)算比解釋型代碼中的相同運(yùn)算運(yùn)行地快得多。另一方面,這些運(yùn)算通常必須提前定義且在其性能假定中通常也包括進(jìn)入/退出開銷。然而,用于諸如存儲器復(fù)制、搜索、大數(shù)目算術(shù)和密碼計(jì)算的普通運(yùn)算的過程調(diào)用可提供顯著的性能益處。一種替代性能增強(qiáng)方法是使解釋器在執(zhí)行之前或執(zhí)行期間分析內(nèi)容代碼以識別可最優(yōu)化的區(qū)域(例如,轉(zhuǎn)換成本地代碼)。內(nèi)容代碼也可包括“提示”以通知解釋器適合于最優(yōu)化的候選區(qū)域?!疤崾尽狈椒ǖ暮锰幨牵布?shí)施(其傾向于較快的,但執(zhí)行復(fù)雜運(yùn)算較困難)可忽略提示(例如,通過將其視為NOP)并正常地處理隨后代碼。軟件實(shí)施(其傾向于較慢,但具有更高速度的本地代碼能力)可使用提示來用功能兼容的本地代碼常用程序替代解釋型代碼。如果需要,性能標(biāo)準(zhǔn)可規(guī)定普通構(gòu)造的播放器性能要求。播放器也可允許內(nèi)容在始終保證滿足性能最低值的解釋器模式(例如用于實(shí)時(shí)任務(wù))與具有較好的平均狀況性能的模式(例如,用于非實(shí)時(shí)任務(wù))之間選擇。當(dāng)編輯內(nèi)容時(shí),內(nèi)容開發(fā)者需要檢驗(yàn)其已編寫的軟件滿足由所述標(biāo)準(zhǔn)規(guī)定的性能最低值。用于檢驗(yàn)時(shí)序符合程度的專門的測試系統(tǒng)將內(nèi)容代碼在執(zhí)行時(shí)的最差狀況性能特征制表(tabulate)。其通過仿真重放過程同時(shí)將播放器執(zhí)行每一子運(yùn)算可占用的最大允許時(shí)間制表而操作。如果重放過程太慢(例如,如果測量到的最差狀況播放器性能落后于提供到編碼譯碼器的數(shù)據(jù)中的時(shí)間戳記,或如果編碼譯碼器變得缺乏數(shù)據(jù)),那么所述工具可通知媒體作者,媒體作者接著可改正問題。編輯工具可使用相同的方法以確保其輸出將可靠地播放。保護(hù)非易失性存儲器如前文所描述的,播放器裝置可為內(nèi)容提供由內(nèi)容使用的非易失性(NV)存儲能力。因?yàn)榫帉憙?nèi)容的實(shí)體的數(shù)量可為較大的(可能包括小藝術(shù)家、學(xué)生、家庭用戶等等以及大制片廠),在假定某些內(nèi)容可為不嚴(yán)謹(jǐn)?shù)貙懭牖蛏踔翋阂獾貙懭氲那樾蜗?,?nèi)容和播放器強(qiáng)制執(zhí)行對NV存儲器用途的限制可為有利的。因此,播放器可希望限制每一主題的能力以保存NV存儲器和讀取、修改及重寫已存儲的數(shù)據(jù)。題為“安全存儲器和計(jì)數(shù)器”的部分描述使用數(shù)字簽名來驗(yàn)證訪問非易失性存儲器的代碼。然而,在某些情形下,可需要(例如,出于政治和/或技術(shù)原因)非易失性存儲器安全機(jī)制在沒有集中的認(rèn)證機(jī)關(guān)的情況下操作同時(shí)仍允許內(nèi)容主題配置和/或控制非易失性存儲器區(qū)域。以下部分描述了播放器的一示范性實(shí)施例,其在不需要集中的簽名機(jī)關(guān)的情形下為內(nèi)容提供了對非易失性存儲器的安全訪問。參看圖4,示范性存儲器管理器控制對128千字節(jié)閃存的訪問,所述128千字節(jié)閃存分成511個(gè)各為256字節(jié)的插槽(slot)和用于額外數(shù)據(jù)的256字節(jié)。插槽0[410]、插槽1[412]、插槽2[414]和從440之后的每一插槽包含識別最初被分配所述插槽的主題的媒體ID的128-位創(chuàng)作者媒體ID420;識別最近修改所述插槽的主題的媒體ID的128-位最后更新媒體ID422;識別所述插槽最近更新是何時(shí)的40-位最后更新順序計(jì)數(shù)器424;如果插槽需要被重寫指示插槽的級別的8-位插槽優(yōu)先級值426;僅可由授權(quán)的代碼訪問的16字節(jié)私有數(shù)據(jù)428;經(jīng)授權(quán)訪問所述插槽的代碼的160-位散列值430;和主要插槽有效載荷數(shù)據(jù)432。當(dāng)播放器在工廠初始化時(shí),這些值可全部初始化為零以指示所述插槽為空的。128千字節(jié)非易失性存儲器的最后256字節(jié)用于存儲以下值,包括秘密播放器密鑰444;包含已重寫的優(yōu)先級6插槽的數(shù)量的計(jì)數(shù)器445;包含已重寫的優(yōu)先級7插槽的數(shù)量的計(jì)數(shù)器446;及存儲為高部分447和低部分448的插槽寫入計(jì)數(shù)器。因?yàn)椴宀蹖懭胗?jì)數(shù)器頻繁更新且某些非易失性存儲器技術(shù)在過多寫入周期后會用壞,所以此計(jì)數(shù)器以限制任何特定存儲器單元更新的次數(shù)的形式來存儲。所述計(jì)數(shù)器的增量方式為,設(shè)置在低部分448中的位,除非在低部分的1024個(gè)位中的1023個(gè)已滿,在后一情形下高部分447增量且低部分448的所有1024個(gè)位被清除。通過將高部分447乘以1024再加上在低部分449中設(shè)置的位的數(shù)字而讀取計(jì)數(shù)器值。當(dāng)播放器在工廠初始化時(shí),除播放器密鑰應(yīng)當(dāng)初始化為秘密(偽)隨機(jī)值之外,這些值可全部初始化到零。播放器也保持了可存儲于易失性存儲器(例如,常規(guī)RAM)中的若干值。這些值包括媒體密鑰450、媒體標(biāo)識符452、指示當(dāng)前附著哪一插槽(意即,從數(shù)字0到510)的值456和指示在NV存儲器中到目前為止由當(dāng)前主題寫入的最高優(yōu)先級插槽的值。當(dāng)主題被初始化時(shí)(例如,當(dāng)媒體插入或播放器重置時(shí)),附著的插槽標(biāo)識符454、附著的插槽優(yōu)先級456和最大創(chuàng)作優(yōu)先級458被重置。媒體密鑰450優(yōu)選地從媒體的在消費(fèi)者可記錄媒體上以消費(fèi)者可記錄裝置不可寫入的部分載入。接著通過應(yīng)用諸如
背景技術(shù):
中熟知的安全散列算法(SHA-1)的單向密碼轉(zhuǎn)換而從媒體密鑰得到媒體標(biāo)識符452。為提供額外的保證,媒體可承載一個(gè)鑒別媒體密鑰450和/或媒體標(biāo)識符452的密碼簽名,其接著可由播放器和/或內(nèi)容代碼鑒別。替代實(shí)施例可包括其它值(諸如制造或壓制所述媒體的設(shè)施的身份和/或?qū)τ诿襟w的某特殊段為特定的標(biāo)識符)且不一定要在標(biāo)識符與密鑰之間具有固定的關(guān)系。一般而言,可允許內(nèi)容代碼具有對除每一插槽的私有數(shù)據(jù)428以外的非易失性存儲器內(nèi)容的相當(dāng)無限制的讀取訪問權(quán)。此讀取訪問可使用允許內(nèi)容規(guī)定插槽號并檢索內(nèi)容的過程調(diào)用(例如,DLX“trap”運(yùn)算)而實(shí)施。如果所請求的插槽當(dāng)前未附著(意即,由附著的插槽標(biāo)識符454所識別),那么不返回插槽私有數(shù)據(jù)428(例如,對于這些位置,返回零)。在示范性實(shí)施例中,內(nèi)容具備以下基本運(yùn)算以從非易失性存儲器插槽讀取、請求對非易失性存儲器插槽的訪問(“附著”)和修改非易失性存儲器插槽插槽讀取(SlotRead)此過程調(diào)用將規(guī)定的插槽的內(nèi)容讀取到可由內(nèi)容代碼訪問的存儲器空間中。此過程的輸入?yún)?shù)包括插槽號和指示將結(jié)果存儲在內(nèi)容的存儲器中的何處的指針。返回全部插槽內(nèi)容(除私有數(shù)據(jù)域428外,其在讀取結(jié)果中一般設(shè)為零)。如果規(guī)定的插槽號為(-1),那么讀取由附著的插槽標(biāo)識符454所識別的插槽且檢索并存儲全部內(nèi)容(包括私有數(shù)據(jù)428)。所述操作的返回值為一整數(shù),其包含所讀取的插槽號(例如,如果規(guī)定了插槽(-1),則為所附著的插槽標(biāo)識符454)抑或指示為何請求失敗的錯(cuò)誤代碼。插槽附著(SlotAttach)此過程調(diào)用用于請求對規(guī)定插槽的特許訪問權(quán)。在準(zhǔn)許此訪問之前,鑒別進(jìn)行請求的代碼。所述過程的輸入?yún)?shù)識別插槽號、代碼長度和所請求的優(yōu)先等級。所述過程判定待準(zhǔn)許訪問的代碼的起始地址(例如,內(nèi)容的存儲器中的在調(diào)用插槽附著操作的指令之后的地址)。使用地址和規(guī)定的長度,所述過程接著計(jì)算代碼的密碼散列值(例如,使用SHA-1)。如果散列結(jié)果與存儲于所述插槽中的授權(quán)散列430的值不匹配或如果所請求的優(yōu)先級經(jīng)判定為無效的(例如,如下文關(guān)于圖5所描述的),那么附著插槽零(意即,將附著的插槽標(biāo)識符454和附著的插槽優(yōu)先級456設(shè)置為零)且返回一個(gè)錯(cuò)誤信息。否則,所請求的插槽號變?yōu)楫?dāng)前附著的插槽(意即,將附著的插槽標(biāo)識符454設(shè)置為所請求的插槽號,且設(shè)置附著的插槽優(yōu)先級456)。作為特殊情形,調(diào)用代碼可規(guī)定為(-1)的插槽號以請求配置新的插槽。在此情形下,播放器驗(yàn)證所請求的優(yōu)先級(例如,如下文關(guān)于圖5所描述)且如果優(yōu)先級無效,那么返回一個(gè)錯(cuò)誤信息。否則,播放器選擇一個(gè)插槽來重寫(如下文所描述的),將其清除(例如,通過將創(chuàng)作者媒體ID420設(shè)置為當(dāng)前媒體ID452、歸零其它插槽域并增量寫入計(jì)數(shù)器447/448),附著到所述插槽(例如,通過將附著的插槽標(biāo)識符454設(shè)定為插槽號并將優(yōu)先級456設(shè)定為所請求的優(yōu)先級),并將最大創(chuàng)作優(yōu)先級458設(shè)定為其當(dāng)前值與所請求的優(yōu)先級456的較大者。如果解釋器支持中斷或可引起潛在非受信代碼的意外執(zhí)行的其它能力,那么應(yīng)禁用這些能力以避免在附著插槽的同時(shí)引入惡意代碼。返回值為所附著的插槽號454,或如果操作失敗,那么為錯(cuò)誤代碼(例如,由于代碼散列值不匹配或無效的所請求優(yōu)先級)。插槽寫入(SlotWrite)此過程調(diào)用寫入數(shù)據(jù)到當(dāng)前附著的插槽。此過程的輸入?yún)?shù)指向插槽私有數(shù)據(jù)428、鑒別散列430和有效載荷432的新內(nèi)容,所述新內(nèi)容與其它插槽域的更新值一起寫入。(具體來說,創(chuàng)作者媒體ID420未改變,最后更新媒體ID422被設(shè)置為當(dāng)前媒體ID452,最后更新順序計(jì)數(shù)器424被設(shè)置為插槽寫入計(jì)數(shù)器447/448,且插槽優(yōu)先級426被設(shè)置為附著的插槽優(yōu)先級456。)在插槽寫入之前,通過更新插槽寫入計(jì)數(shù)器的低部分448和(如果需要)高部分447而增量插槽寫入計(jì)數(shù)器。如果自從上電/媒體插入以來已執(zhí)行過多(例如,多于128次)寫入,那么使用具有有限壽命的非易失性存儲器(例如,許多閃存和EEPROM存儲器額定為一百萬寫入周期)的播放器可拒絕寫入。寫入操作將附著的插槽標(biāo)識符454和附著的插槽優(yōu)先級456都重置到零。返回值為指示寫入是否成功的狀態(tài)碼。提供插槽優(yōu)先級管理支持以平衡若干潛在矛盾的目標(biāo),包括(a)內(nèi)容應(yīng)當(dāng)能夠按其合理的需要訪問盡量多的非易失性存儲器;(b)內(nèi)容應(yīng)當(dāng)確信其非易失性存儲器不會被意外地重寫;(c)一主題不應(yīng)當(dāng)能夠保留過量的非易失性存儲器且從而阻止其它主題保留任何非易失性存儲器;(d)如果在非易失性存儲器中沒有可用的空插槽,則應(yīng)當(dāng)再循環(huán)很少使用的插槽以為新的內(nèi)容提供一些非易失性存儲空間;和(e)一主題不應(yīng)當(dāng)能夠提交有意使合法插槽被再循環(huán)的大量請求。一般而言,如果播放器的插槽用完,那么具有較高優(yōu)先級的插槽較不易被重寫。在一示范性實(shí)施例中,優(yōu)先級規(guī)則被設(shè)計(jì)成確保每一媒體主題能夠具有至多一個(gè)最高優(yōu)先級插槽(優(yōu)先級7)。另外,僅允許媒體在每一插入或播放器關(guān)機(jī)再開機(jī)(powercycle)期間創(chuàng)建一個(gè)具有2或更高優(yōu)先級的插槽。雖然當(dāng)制造播放器時(shí)保留的插槽可具有高于7的優(yōu)先級級別,但是內(nèi)容不能夠創(chuàng)建優(yōu)先級高于7的插槽。圖5說明了一個(gè)用于驗(yàn)證為所附著插槽請求的優(yōu)先級是否可接受的一示范性過程。當(dāng)附著或創(chuàng)建插槽時(shí)(見上文的“插槽附著”部分),內(nèi)容規(guī)定所請求的優(yōu)先級值。在步驟500處,播放器檢查是否分配了新的插槽(例如,插槽號規(guī)定為-1)。如果是,在步驟510處,播放器檢查所請求的優(yōu)先級是否超過插槽的現(xiàn)有優(yōu)先級426,且如果是,播放器返回一個(gè)指示所請求的優(yōu)先級過大的錯(cuò)誤信息。否則,在步驟520處,允許附著請求使用所請求的優(yōu)先級繼續(xù)。若步驟500斷定所述請求是要分配新的插槽,那么在步驟530處,播放器檢查所請求的優(yōu)先級是否等于或小于7,且如果不是,那么返回錯(cuò)誤信息。否則,在步驟540處,播放器檢查所請求的優(yōu)先級是否超過2,且若不是,那么將所請求的優(yōu)先級接受為對于分配插槽為有效的。否則,在步驟550處,播放器檢查最大創(chuàng)建優(yōu)先級458以判定自從媒體插入或播放器重置以來是否已創(chuàng)建具有大于2的優(yōu)先級的任何插槽,且如果是,那么拒絕所請求的優(yōu)先級。否則,在步驟560處,播放器檢查所請求的優(yōu)先級是否為7,且如果不是,那么將所請求的優(yōu)先級接受為對于分配插槽為有效的。否則,在步驟570處,播放器檢查是否已存在其所存儲的創(chuàng)作者媒體ID420等于當(dāng)前媒體ID452的優(yōu)先級為7的插槽,且如果是,那么播放器將所請求的優(yōu)先級作為無效的而拒絕。否則,接受所請求的優(yōu)先級以分配插槽。當(dāng)分配新的插槽時(shí)(意即,內(nèi)容以插槽-1調(diào)用插槽附著(SlotAttach)),播放器選擇具有最低優(yōu)先級426的插槽用于重寫。在工廠,空插槽以最低可能的優(yōu)先級(零)初始化且因此通常將被首先使用。如果多個(gè)插槽共享最低優(yōu)先級,那么選擇具有最低寫入順序計(jì)數(shù)器值的插槽。如果具有優(yōu)先級6或7的插槽被選擇用于重寫,那么對應(yīng)的計(jì)數(shù)器(優(yōu)先級6重寫計(jì)數(shù)445或優(yōu)先級7重寫計(jì)數(shù)446)增量。或者,如果請求將要求或以其它方式涉及重寫高優(yōu)先級插槽,那么具有用于大量插槽的空間的播放器可僅僅失敗。在工廠,某些插槽可用用于鑒別散列432的預(yù)定值和非零插槽優(yōu)先級來初始化。插槽的功能性和/或安全要求取決于經(jīng)散列處理的代碼。舉例來說,可配置用于確定預(yù)定鑒別散列的代碼以執(zhí)行以下步驟(a)初始化所有寄存器(例如,堆棧指針,等等)到“安全”值;(b)從在經(jīng)鑒別的代碼區(qū)域外部的預(yù)定地址載入RSA簽名值;(c)使用嵌入于由插槽附著操作所鑒別的區(qū)域中的公開密鑰來判定RSA簽名是否為解釋器的存儲器的某區(qū)域的有效簽名;和(d)如果RSA簽名為無效的,那么從當(dāng)前插槽分離(例如,通過附著到通常可訪問的插槽0),否則跳轉(zhuǎn)到經(jīng)數(shù)字簽名的區(qū)域的第一地址。如果僅希望經(jīng)數(shù)字簽名的代碼在特定播放器上播放,那么可(例如)配置代碼以檢查播放器的身份(或其它屬性)和/或使用播放器密鑰在運(yùn)行所述代碼的一部分之前對其解密。在前述段落中的實(shí)例說明了一種用于使用基于散列的插槽驗(yàn)證方案來實(shí)施不對稱簽名驗(yàn)證的方法(例如,如在題為“安全存儲器和計(jì)數(shù)器”的部分中所描述)。此方法允許將插槽保留用于未來用途,其中當(dāng)制造播放器或定義標(biāo)準(zhǔn)時(shí),無需規(guī)定所述未來用途。也有可能使用基于公開密鑰(public-keybased)的代碼驗(yàn)證系統(tǒng)來簽名實(shí)施基于散列(hash-based)的方法的代碼??赡軐我徊宀塾糜诙鄠€(gè)用途。舉例來說,多個(gè)代碼片段可經(jīng)數(shù)字簽名以通過諸如上文所描述的檢驗(yàn)過程。可配置這些代碼片段中的每一個(gè)以修改插槽的不同部分并在完成時(shí)適當(dāng)?shù)胤蛛x。因?yàn)椴宀鄣乃接袛?shù)據(jù)域428使得代碼能夠加密插槽內(nèi)容,所以其也值得注意。雖然任何內(nèi)容都可讀取主要插槽有效載荷,但是只有已授權(quán)(例如,使用插槽附著過程)的代碼可讀取私有數(shù)據(jù)428。授權(quán)的代碼因此可使用私有數(shù)據(jù)428作為密鑰(或?qū)С鲆粋€(gè)密鑰)以對插槽內(nèi)容加密和解密。以此方式,可確保存儲于插槽中的數(shù)據(jù)的私密性。如果需要,內(nèi)容也具有為插槽內(nèi)容附加鑒別代碼或數(shù)字簽名的能力。所述簽名可由內(nèi)容代碼(視情形使用播放器密鑰)而產(chǎn)生,可由播放器而產(chǎn)生,或可由外部方或裝置(諸如主題的出版商或播放器制造商)而產(chǎn)生。然后可配置隨后的主題以搜尋所有插槽,尋找指示(例如)某些安全檢查為必要的或特定媒體ID已撤銷的經(jīng)數(shù)字簽名(或以其它方式鑒別)的值。基于插槽的特征可由多個(gè)主題共享。舉例來說,可能實(shí)施為內(nèi)容提供最新已知日期的日期管理器。使用此能力的每一主題將帶有當(dāng)其被制作時(shí)的當(dāng)前日期的一個(gè)經(jīng)數(shù)字簽名的表示和與插槽的鑒別散列430匹配的若干預(yù)定代碼。用于管理插槽的代碼將(a)檢查內(nèi)容所帶有的日期的數(shù)字簽名,且如果無效,那么從插槽分離并停止;(b)讀取當(dāng)前插槽內(nèi)容;(c)將來自主題的現(xiàn)已檢驗(yàn)的日期與插槽的有效載荷432中的日期比較;(d)如果主題的日期較后,那么將主題的日期置于插槽內(nèi)容中并調(diào)用插槽寫入以將新的日期存儲于非易失性存儲器中同時(shí)保持插槽的剩余部分不變;(e)從插槽分離;和(f)從RAM擦除插槽私有數(shù)據(jù)(以及任何其它不重要的值)。所述操作將返回錯(cuò)誤信息或所述較后的日期值(意即,主題所帶有的經(jīng)鑒別日期和先前存儲于插槽中的日期的較后者)。代碼可視情形存儲具有日期的數(shù)字簽名以使得遭破壞的日期不會被誤解釋為在遙遠(yuǎn)的未來。另外,日期也可被加密地存儲(例如,使用私有數(shù)據(jù)域428的值作為密鑰)以將對已存儲的數(shù)據(jù)值的讀取訪問限制于包括當(dāng)前日期的主題。播放器中的日期值可(例如)由內(nèi)容用以判定安全更新是否需要、是否到達(dá)進(jìn)行在線安全檢查的時(shí)間、是否到達(dá)提交按次付費(fèi)購買記錄的時(shí)間,等等。在某些實(shí)施例(例如,提供實(shí)時(shí)網(wǎng)絡(luò)能力的實(shí)施例)中,當(dāng)啟用網(wǎng)絡(luò)支持時(shí)使播放器限制對非易失性存儲器的訪問可為有利的。此限制可幫助確保用戶的隱私,(例如)通過防止惡意內(nèi)容從非易失性存儲器提取數(shù)據(jù)并經(jīng)由網(wǎng)絡(luò)將其傳輸。作為特定的實(shí)例,可防止使用網(wǎng)絡(luò)訪問能力的主題從插槽讀取數(shù)據(jù)(或讀取某些插槽,諸如那些可包含用戶識別信息或由其它主題創(chuàng)建的插槽)。播放器也可允許主題終止其網(wǎng)絡(luò)訪問特權(quán)并獲取更廣泛的插槽訪問權(quán)(例如,在一旦不再需要網(wǎng)絡(luò)訪問后獲取用于取證水印的值)。應(yīng)注意,嵌入于取證水印中的信息并不引起相同的隱私關(guān)注,因?yàn)榇藬?shù)據(jù)僅可從內(nèi)容的拷貝恢復(fù)。上文對具體的非易失性存儲器管理的描述意欲說明特定實(shí)施例。當(dāng)然,可能有許多變化。舉例來說,出于說明的目的,提供了具體的插槽配置、插槽管理操作和優(yōu)先權(quán)管理方法。除將存儲器配置成固定大小的插槽以外,可使用其它存儲器管理方法(包括使用并不基于插槽的配置方法)。也可使用其它訪問控制機(jī)制(諸如并不基于媒體標(biāo)識符的機(jī)制)。用于插槽的非易失性存儲器總量可為可變的(或?qū)嶋H上無限的,如在硬盤或其它高容量存儲技術(shù)的情形下)??砂▎为?dú)的非易失性存儲能力以跟蹤媒體/光盤插入歷史。使用密碼學(xué)來加密和/或鑒別非易失性存儲器(或諸如可由內(nèi)容訪問的存儲器的其它存儲器)的內(nèi)容以防止未授權(quán)的讀取/修改可為有利的。在軟件實(shí)施中,可使用多種代碼、地址、數(shù)據(jù)和算法模糊技術(shù)以防止播放器密鑰被提取(或篡改)。也可在插槽中存儲任何形式的數(shù)據(jù),包括(無限制)按次付費(fèi)購買記錄、任何種類的計(jì)數(shù)器(例如,購買計(jì)數(shù)器、信用/借記或其它余額計(jì)數(shù)器、失敗計(jì)數(shù)器、媒體/光盤插入計(jì)數(shù)器,等等)、在線或基于電話的安全檢查的結(jié)果、觀看記錄/歷史、代碼(可解釋的或本地的)、撤銷數(shù)據(jù)(對于播放器、外圍設(shè)備等等而言)、到其它主題的信號、用于評估回扣或折扣的資格的信息、交易和重放歷史數(shù)據(jù)、數(shù)字簽名和密鑰。媒體撤銷一值得注意的情形為播放器是可信賴的但媒體已被盜版的情況。這是職業(yè)盜版者的典型情況,因?yàn)樗麄円话銜で筇峁┡c合法的拷貝盡可能接近的“產(chǎn)品”。如果盜版者開發(fā)出了用于生產(chǎn)播放器不能與原始媒體物理地區(qū)分開的合法媒體的拷貝的方法,那么所有離線媒體重放裝置都潛在地易受此類攻擊。可使用難于復(fù)制的媒體特征(諸如光盤上的軌道的擺動特征的測量)來使精確的復(fù)制更加困難,但很堅(jiān)決的盜版者仍可找到制造拷貝的方式。類似地,取證水印允許內(nèi)容所有者識別用于盜版先前的內(nèi)容的設(shè)備,但是不阻止盜版內(nèi)容的播放。為應(yīng)付盜版者制造媒體的未授權(quán)拷貝的風(fēng)險(xiǎn),內(nèi)容所有者可在合法媒體上設(shè)置每一拷貝的一個(gè)唯一的標(biāo)識符。對于光盤來說,此數(shù)據(jù)可置于可在工廠中被唯一地寫入的區(qū)域中(諸如在某些現(xiàn)有的壓制的光盤上的燒錄區(qū))或可記錄光盤部分上(例如,利用諸如當(dāng)前用于制造可記錄CD和DVD、磁光盤等等的技術(shù)的存儲技術(shù))??晌ㄒ坏貙懭氲膮^(qū)域僅需要承載少量的信息(例如,幾個(gè)字節(jié)到幾百個(gè)字節(jié))。具體來說,此區(qū)域可承載所記錄的序號、用戶信息(姓名、電話號碼,等等)、密碼編譯密鑰等等,以及鑒別這些值的數(shù)字簽名。對于消費(fèi)者可記錄的媒體而言,可為所制造的每片空白媒體記錄一個(gè)唯一的媒體序號(以及視情形一個(gè)相關(guān)數(shù)字證書)。媒體上的內(nèi)容代碼可經(jīng)配置以使得當(dāng)插入媒體以進(jìn)行重放時(shí),其唯一數(shù)據(jù)的真實(shí)性受到檢驗(yàn)。取決于媒體類型和記錄的數(shù)據(jù),此檢驗(yàn)過程通常包括檢驗(yàn)對于某片媒體為唯一的數(shù)字簽名。為防止對手避開此檢驗(yàn)檢查,檢驗(yàn)可使用模糊代碼而執(zhí)行,檢查可執(zhí)行多次(例如,在重放期間的不同時(shí)間)且檢驗(yàn)結(jié)果可與隨后的解密過程結(jié)合。如果唯一數(shù)據(jù)無效,那么內(nèi)容代碼通常將拒絕重放。否則,內(nèi)容代碼可確信(a)媒體是合法的,抑或(b)其是從一片具有所述唯一數(shù)據(jù)的合法媒體復(fù)制的。接著,為判定所述唯一媒體是有效的還是撤銷的,內(nèi)容檢查播放器的非易失性存儲器區(qū)域中的指示當(dāng)前插入的媒體的撤銷狀態(tài)的數(shù)據(jù)域。如果沒有發(fā)現(xiàn)匹配的撤銷信息,那么假定所述媒體為有效的。為防止疏忽的或惡意的撤銷,可通過檢查數(shù)字簽名或其它鑒別數(shù)據(jù)(諸如密碼散列的預(yù)映射)來鑒別撤銷數(shù)據(jù)。播放器的非易失性存儲器中的數(shù)據(jù)也可指示哪些動作(如果有的話)是推薦的,諸如(a)通知用戶拷貝為違法的、(b)允許重放在降低的分辨率下進(jìn)行、(c)完全防止重放、或(d)允許用戶合法地購買內(nèi)容(例如,通過撥打一個(gè)電話號碼并輸入解鎖碼,或通過經(jīng)由因特網(wǎng)與一臺服務(wù)器互動)。非易失性存儲器也可覆蓋(over-ride)前一撤銷訊息,(例如)使得如果需要內(nèi)容可被“解除撤銷”。如果存在多個(gè)矛盾的狀態(tài)指示器,那么可將序號或日期用于判定哪個(gè)是最新的。在某些情形下,創(chuàng)建僅可在諸如已預(yù)注冊的裝置的經(jīng)特別授權(quán)的裝置上播放的媒體是有用的。在此情形下,可將唯一的媒體信息用于啟用媒體激活,而不是提供撤銷。舉例來說,預(yù)覽(advancereview)的拷貝和試制的拷貝一般無需(且不應(yīng)當(dāng))可在所有播放器上播放。記錄于可寫入部分中的數(shù)據(jù)可包括解密密鑰或?qū)τ诿科襟w的經(jīng)授權(quán)接受者為特定的其它信息。唯一記錄的區(qū)域也可包括姓名、e-mail地址、帳號、或識別具體接受者的其它數(shù)據(jù)(例如,用于取證水印用途、交互特征,等等)或接受者的特征(例如,觀看偏好、授權(quán)數(shù)據(jù)、群組標(biāo)識符、郵政編碼,等等)。這些域也可在媒體出售期間或之后寫入,例如作為防止偷自商店的媒體被播放的激活步驟(從而降低將媒體陳列于其貨架上的商店遭入店行竊的風(fēng)險(xiǎn))。后端系統(tǒng)可針對一直未激活的媒體而賠償商人,或當(dāng)媒體激活時(shí)針對媒體向商人收費(fèi)。此能力的另一用途為在官方發(fā)布日期之前分發(fā)“鎖定的”媒體,接著當(dāng)重放被授權(quán)時(shí)在可寫區(qū)域上寫入啟用重放的密鑰。信息可由制造媒體者以外的實(shí)體或設(shè)施記錄,例如零售設(shè)施、運(yùn)輸設(shè)施或安全代理機(jī)構(gòu)(例如,如果壓制設(shè)施不是完全可信的)。如果最終用戶的裝置可對媒體的部分進(jìn)行寫入,那么也可能當(dāng)播放或解鎖媒體時(shí)記錄數(shù)據(jù)(諸如授權(quán)密鑰、播放器標(biāo)識符、等等)。媒體上的可寫入部分可(例如)用于實(shí)施諸如“附送”材料的特征,可付費(fèi)而解鎖所述“附送”材料接著在多個(gè)播放器上播放。對于離線播放器,通常將在隨后的主題上傳遞撤銷通知。舉例來說,新的主題可承載識別已撤銷媒體的序號列表(具有隨附的鑒別數(shù)據(jù))。如果播放器具有足夠的非易失性存儲空間(例如,硬盤),那么整個(gè)撤銷列表可由播放器存儲。否則,可對照播放器的插入歷史和/或非易失性存儲器插槽檢查撤銷數(shù)據(jù)以判定已由播放器播放的任何媒體中是否有撤銷的。如果是,那么將對應(yīng)的撤銷數(shù)據(jù)存儲于播放器的非易失性存儲器中。以此方法,盜版“克隆”媒體在其第一次插入時(shí)將可播放,但在插入了一片撤銷所述盜版媒體的媒體后將被撤銷(或以其它方式“標(biāo)記”出)。一般來說,媒體撤銷是有價(jià)值的,因?yàn)槠涫沟脤τ谙M(fèi)者來說盜版媒體比合法媒體更沒有吸引力。媒體激活/撤銷可用于實(shí)施多種促銷和安全特征。舉例來說,可以包含不同版本(例如,寬銀幕、拉移(pan-scan)、導(dǎo)演剪輯版,等等)的多個(gè)媒體來出售一部電影。為防止有人單獨(dú)地出售或出租所述媒體,其內(nèi)容代碼可檢驗(yàn)一個(gè)或一個(gè)以上其它媒體被表現(xiàn)于播放器的非易失性存儲器中。視情形,也可要求已在最近(例如,在一定時(shí)間內(nèi)或插槽寫入計(jì)數(shù)器447/448的一定數(shù)目的增量內(nèi))插入其它媒體。作為另一選擇,媒體也可需要用戶在重放期間插入另一片媒體(例如,通過從所述另一媒體載入密鑰值)??山⒁环N促銷模式,其中如果用戶已播放其它內(nèi)容的某些組合,那么用戶將可訪問附送材料當(dāng)然,重放決定也與其它信息相聯(lián)系,諸如播放器的特征和/或重放環(huán)境。具有在線能力的播放器可檢查當(dāng)前插入的主題的撤銷狀態(tài)以及表示于播放器的媒體插入歷史和/或非易失性存儲器插槽中的其它主題。此檢查可實(shí)施于內(nèi)容代碼中或可由播放器執(zhí)行。在線檢查也可用于檢測多個(gè)播放器同時(shí)播放單片媒體(例如,指示媒體已被盜版)或過多數(shù)量的播放器已使用過特定的一片媒體(例如,指示其已違反許可協(xié)議而被出租)的情形。盜版者可設(shè)法通過修改內(nèi)容的代碼來避開撤銷檢查。在此情形下,代碼的隨后部分(例如,在重放期間稍后執(zhí)行的代碼)可(例如)通過重復(fù)所述檢查或通過重新載入并檢驗(yàn)媒體的包含驗(yàn)證代碼的部分而檢測所述修改。撤銷檢查結(jié)果也可與解密過程結(jié)合。當(dāng)然,可使用所述媒體撤銷方法的變體。舉例來說,播放器可存儲經(jīng)配置以識別撤銷的媒體的經(jīng)數(shù)字簽名的解釋型代碼。這些代碼片斷(snippet)可在每次媒體被插入時(shí)執(zhí)行以判定新插入的主題是否是撤銷的。主題將能夠存儲撤銷檢查代碼(優(yōu)選地具有將由播放器檢驗(yàn)的對應(yīng)的數(shù)字簽名),播放器將保留所述撤銷檢查代碼以用于檢查未來媒體。媒體撤銷檢查也可由播放器的ROM中的代碼來執(zhí)行,(例如)通過在播放器的非易失性存儲器中存儲已撤銷的光盤的扇區(qū)號和散列值的表格。如果媒體為可寫的,那么內(nèi)容也可在媒體本身上存儲并獲取撤銷數(shù)據(jù)(或可在媒體上存儲任何其它種類和用途的數(shù)據(jù),諸如用戶偏好、用戶信息等等)。媒體也可用于承載關(guān)于記錄裝置的撤銷數(shù)據(jù)。舉例來說,如果消費(fèi)者記錄裝置經(jīng)配置成將識別數(shù)據(jù)置于其記錄物上,那么播放器裝置可維持已撤銷的記錄器的記錄。這些記錄可由承載于媒體上的撤銷數(shù)據(jù)來更新。可記錄媒體也可經(jīng)制造而具有識別已撤銷的記錄器的信息以防止已撤銷的記錄器寫入媒體。與撤銷相關(guān)的數(shù)據(jù)域可經(jīng)密碼鑒別,(例如)以防止對合法裝置的惡意或疏忽的撤銷。舉例來說,由記錄裝置設(shè)置的識別數(shù)據(jù)可包括記錄器數(shù)字證書和關(guān)于媒體序號的數(shù)字簽名。可加密(例如使用第三方代理機(jī)構(gòu)的公開密鑰)設(shè)置于可記錄媒體上的識別數(shù)據(jù)以保護(hù)用戶的隱私。也可使用門檻密碼學(xué)(Thresholdcryptography),(例如)以要求多個(gè)媒體識別一個(gè)記錄裝置。(應(yīng)注意,門檻密碼學(xué)也可使用于本文所揭示的技術(shù)的其它方面,例如配合取證標(biāo)記使用以確保需要一定數(shù)量的已復(fù)制材料來恢復(fù)標(biāo)記。)媒體撤銷的另一用途是提供除可利用的其它方法外的一種額外的針對偶然的盜版行為的威懾。嵌入于取證水印中的數(shù)據(jù)可識別由一裝置播放的先前的媒體。取決于實(shí)施選擇,撤銷其ID是從盜版拷貝的取證水印判定的其它媒體、撤銷其序號接近于用于分發(fā)盜版材料的媒體的可記錄媒體、在從有問題的媒體進(jìn)行重放之前要求額外的授權(quán)步驟等等可為有利的雜項(xiàng)特征和能力安全覆蓋密鑰(SecurityOver-RideKey)可對內(nèi)容進(jìn)行設(shè)計(jì)使得了解安全覆蓋密鑰的播放器可避開某些或所有安全檢查,從而允許對部分或所有內(nèi)容的訪問。通過支持所述密鑰,內(nèi)容所有者可準(zhǔn)許對作品的限制部分的訪問(例如,如果一個(gè)區(qū)域要求內(nèi)容所有者準(zhǔn)許評論家對視頻進(jìn)行基于逐幀的“合理使用”的訪問)。(例如)如果保護(hù)特征設(shè)計(jì)地不好(造成可播放性問題),那么這些覆蓋密鑰也可用于將內(nèi)容從其受保護(hù)的形式中“釋放”出來。如果需要,這些密鑰可由第三方保管(或存儲于以第三方的公開密鑰加密的媒體上)。也可將覆蓋密鑰預(yù)定為在版權(quán)期滿時(shí)釋放,(例如)以處理反盜版機(jī)制可能防止內(nèi)容進(jìn)入公眾領(lǐng)域的問題。多回合共謀分析(MultipleRoundCollusionAnalysis)在某些情形下,堅(jiān)定的盜版者可組合來自大量裝置的輸出以試圖防止取證水印的恢復(fù)。如果盜版者已危害了如此多的裝置使得內(nèi)容不能夠直接識別不法裝置,那么有可能組合從多個(gè)內(nèi)容版本搜集的取證信息。舉例來說,從第一主題搜集的信息可縮小可能由盜版者使用的裝置的范圍,但并不唯一地識別所有不法裝置。當(dāng)制作第二主題時(shí),可使用此知識以創(chuàng)建將提供關(guān)于攻擊者和/或其設(shè)備的進(jìn)一步信息的取證水印??芍貜?fù)此過程直至已唯一地識別盜版者。對惡意解釋器的反措施可能設(shè)計(jì)惡意播放器以設(shè)法認(rèn)出內(nèi)容中與安全相關(guān)的代碼。舉例來說,惡意播放器可試圖識別內(nèi)容在哪里執(zhí)行RSA簽名檢驗(yàn)操作并修改結(jié)果,(例如)使無效RSA簽名看似有效。如果制成所述播放器,那么內(nèi)容所有者可編輯新的內(nèi)容來使用經(jīng)設(shè)計(jì)以規(guī)避此識別的不同RSA簽名計(jì)算例行程序??墒褂玫牟僮鞯膶?shí)例包括(無限制)重寫代碼以避免不可靠的操作;使代碼模糊;消息堵塞;檢查試計(jì)算結(jié)果以檢測攻擊;和將中間值和/或結(jié)果與其它密碼運(yùn)算(諸如解密步驟)結(jié)合。交互性虛擬機(jī)/解釋器可用于非安全任務(wù)以及安全用途。舉例來說,內(nèi)容代碼可用于將菜單、文本、圖形、動畫、用戶界面要素等等顯示給用戶。類似地,內(nèi)容可接收包括(無限制)鼠標(biāo)輸入(例如,移動、點(diǎn)擊)、按鍵(諸如鍵盤或遠(yuǎn)端控制輸入)、光筆輸入和控制桿動作的用戶命令或回應(yīng)。也可搜集并使用關(guān)于本地播放器的信息(諸如相機(jī)輸入、麥克風(fēng)輸入、用戶身體位置的改變,等等)以(例如)控制重放。播放器也可提供特征以輔助進(jìn)行用戶界面實(shí)施,包括(無限制)顯示對話框、管理顯示窗口、進(jìn)行語音識別、管理用戶偏好等等的能力。作為對盜版行為的威懾,實(shí)施交互式用戶特征的代碼可與安全代碼組合,使得盜版者不能夠容易地將其區(qū)分開。經(jīng)由網(wǎng)絡(luò)訪問和交換內(nèi)容雖然多數(shù)消費(fèi)性視頻和音頻內(nèi)容當(dāng)前是在光學(xué)媒體上分發(fā)的,但是可預(yù)計(jì)流下載的流行性會不斷增加。本文提供的安全措施可經(jīng)重新設(shè)計(jì)以支持替代物理媒體或除物理媒體以外的流內(nèi)容或本地高速緩沖存儲的內(nèi)容。作為從實(shí)際定位于播放器處的媒體載入數(shù)據(jù)的替代,經(jīng)由網(wǎng)絡(luò)檢索內(nèi)容代碼和數(shù)據(jù)。舉例來說,作為發(fā)布從媒體請求數(shù)據(jù)扇區(qū)的過程調(diào)用的替代,內(nèi)容將發(fā)布經(jīng)由網(wǎng)絡(luò)請求數(shù)據(jù)的過程調(diào)用。與被動媒體不同的是,遠(yuǎn)端服務(wù)器本身可具有處理能力,例如允許其向內(nèi)容發(fā)送請求(例如,以使播放器執(zhí)行密碼運(yùn)算)并驗(yàn)證結(jié)果。用于保護(hù)經(jīng)由網(wǎng)絡(luò)交換的數(shù)據(jù)的安全協(xié)議(包括(無限制性),SSL)可實(shí)施于內(nèi)容的代碼或播放器(或其它組件)中。簡單的服務(wù)器實(shí)施將從已驗(yàn)證的用戶(例如,為訪問內(nèi)容已付費(fèi)的用戶)接收傳入請求、從其自己的本地存儲裝置讀取對應(yīng)的數(shù)據(jù)并傳遞結(jié)果。更加復(fù)雜的服務(wù)器可實(shí)時(shí)選擇和/或修改數(shù)據(jù)(例如)以嵌入取證水印,且可與其它服務(wù)器交互作用。服務(wù)器也可存儲關(guān)于或代表遠(yuǎn)端播放器的信息(例如,作為基于播放器的非易失性存儲器的替代)、傳遞為最終用戶定制的安全代碼、執(zhí)行實(shí)時(shí)撤銷檢查、將安全升級自動插入到內(nèi)容中、提供因特網(wǎng)/網(wǎng)絡(luò)代理能力和向內(nèi)容代碼提供其它服務(wù)。舉例來說,示范性事務(wù)處理包括以下步驟(a)內(nèi)容服務(wù)器從最終用戶的播放器接收購買請求;(b)內(nèi)容服務(wù)器檢驗(yàn)支付;(c)內(nèi)容服務(wù)器傳輸經(jīng)配置以分析用戶的播放器的功能特性和/或安全特性的可解釋代碼的部分;(d)用戶的播放器運(yùn)行解釋型代碼并返回關(guān)于其特性的信息;(e)內(nèi)容服務(wù)器分析回應(yīng)并將安全檢驗(yàn)邏輯(其包括解釋型代碼和/或本地代碼且可自定義生成)傳輸?shù)接脩舻牟シ牌鳎?f)用戶的播放器處理檢驗(yàn)邏輯并將回應(yīng)返回到服務(wù)器;(g)服務(wù)器驗(yàn)證回應(yīng);(h)內(nèi)容服務(wù)器將加密的數(shù)字內(nèi)容(例如,音頻、視頻和/或圖像)傳輸(例如,連續(xù)播送(stream))到用戶的播放器;和(i)用戶的播放器對內(nèi)容解密(解密過程的正確運(yùn)算可要求正確的密鑰或來自安全檢驗(yàn)邏輯的結(jié)果)。服務(wù)器進(jìn)程本身可由解釋型代碼控制,其視情形使用與播放器端相同的解釋器結(jié)構(gòu)(例如,DLX)。這樣作的好處是,可在不考慮服務(wù)器的物理硬件結(jié)構(gòu)的情況下編輯內(nèi)容。對于家庭網(wǎng)絡(luò)環(huán)境,因?yàn)榉?wù)器保持安全性和解碼“智能”,同時(shí)內(nèi)容可向外連續(xù)播送到已鑒別的本地裝置,所以此為尤其具有吸引力的模式。類似地,對于將經(jīng)由多種不同因特網(wǎng)服務(wù)而連續(xù)播送的內(nèi)容,服務(wù)器端的解釋器可允許內(nèi)容被編輯一次并從任何兼容服務(wù)連續(xù)播送。在某些情形下,接收者裝置也可擁有作出其自己的安全決策的能力,諸如在接收裝置希望高速緩存內(nèi)容并稍后將其傳輸?shù)皆诔跏紓魉推陂g身份未知的隨后的裝置的情形下在此情形下,初始傳送可包括由接受者裝置用于作出其與安全相關(guān)的決策的可解釋的代碼和/或本地可執(zhí)行的代碼。因?yàn)橛蓚鬏斞b置運(yùn)行的代碼并不必與接收裝置所運(yùn)行的代碼相同,所以所有的裝置支持相同的解釋器或可編程技術(shù)是不必需的。在某些情形下,可涉及多個(gè)服務(wù)器和/或內(nèi)容傳送。舉例來說,內(nèi)容可包括從多個(gè)實(shí)體獲取的安全代碼,所述實(shí)體包括(例如)由播放器制造商和內(nèi)容所有者操作的服務(wù)器。在某些個(gè)人計(jì)算機(jī)環(huán)境中,使用多個(gè)解釋器也可為有用的。舉例來說,解釋器可包括于媒體接口(例如,光盤驅(qū)動器)、操作系統(tǒng)、應(yīng)用軟件(例如,播放器)、輸出裝置(例如,放大器)等等中?;蛘呋蛄硗獾兀艽a啟示器也可提供于組件中。播放器操作調(diào)用和標(biāo)記法播放器裝置提供允許內(nèi)容代碼執(zhí)行多種個(gè)別操作的(通常以軟件實(shí)施的)解釋器(虛擬機(jī))。所述操作包括操縱虛擬寄存器和訪問屬于內(nèi)容代碼的存儲器。另外,內(nèi)容代碼也可調(diào)用TRAP(實(shí)施于播放器中的外部操作)。TRAP可用于執(zhí)行內(nèi)容代碼通過操縱其自己的資源不能夠直接執(zhí)行的操作(諸如訪問外圍設(shè)備),或用于提供比原本可由內(nèi)容代碼保證的性能更高的性能。用于此部分的標(biāo)記法被設(shè)計(jì)成為C/C++程序設(shè)計(jì)員所熟悉。類型UINT8、UINT32和UINT64分別用于表示8-、32-和64-位無符號整數(shù)。在一示范性實(shí)施例中,每一原型對應(yīng)于在調(diào)用適當(dāng)?shù)腡RAP運(yùn)算之前應(yīng)當(dāng)進(jìn)入堆棧的32-位值的序列。因?yàn)槎褩V械乃兄荡笮?2位,所以小于32位的參數(shù)被擴(kuò)展到32位,且較大值使用多個(gè)32位值來存儲。在每一TRAP運(yùn)算中涉及的32位值的實(shí)際數(shù)量可為零(如果參數(shù)列表為空)。參數(shù)的數(shù)量也可為可變的,在此情形下原型將以“...”結(jié)束。表示為“typename[size]”的陣列,例如“UINT32test[16]”代表十六個(gè)32位字的陣列。指針表示為“type*name”,例如一或多個(gè)32位無符號整數(shù)的命名為testPtr的指針將為“UINT32*testPtr”。堆棧本身可僅為可由內(nèi)容代碼和實(shí)施每一TRAP的播放器的部分訪問的存儲器中的區(qū)域。舉例來說,示范性堆??赏ㄟ^將可由內(nèi)容代碼訪問的仿真寄存器指定為堆棧指針而實(shí)施。當(dāng)調(diào)用TRAP時(shí),此寄存器的值由內(nèi)容代碼讀取以定位已傳遞的參數(shù)值。(如果堆棧指針或堆棧內(nèi)容無效,那么采取諸如忽略TRAP運(yùn)算或替換有效值的適當(dāng)動作。)使一整數(shù)進(jìn)棧的示范性進(jìn)程涉及首先從堆棧指針減去4、接著存儲該值以前進(jìn)到由新的堆棧指針?biāo)?guī)定的存儲器地址。使一值出棧是通過首先從由堆棧指針指定的存儲器地址讀取值、接著使堆棧指針增加4而執(zhí)行。在TRAP運(yùn)算之后,內(nèi)容代碼和/或?qū)嵤㏕RAP的代碼(例如)通過恢復(fù)堆棧指針值而從堆棧清除所述參數(shù)。其它堆棧,且更一般地,函數(shù)調(diào)用和參數(shù)傳遞技術(shù)在
背景技術(shù):
中是已知的且也可配合本發(fā)明使用。為調(diào)用TRAP,調(diào)用者首先推動每一參數(shù)(從原形定義中最右邊的參數(shù)開始)、調(diào)用適當(dāng)?shù)腡RAP運(yùn)算并獲取返回值(例如,通過讀取常規(guī)地存儲于寄存器1中的結(jié)果值)。舉例來說,考慮以下表示為“UINT32TRAP_Random(UINT8*dst,UINT32len);”的TRAP。在調(diào)用trap運(yùn)算前,調(diào)用者(內(nèi)容代碼)將首先推動32-位值“l(fā)en”,接著推動32-位指針值“dst”(其為應(yīng)當(dāng)存儲結(jié)果的存儲器地址)。接著調(diào)用者將調(diào)用適當(dāng)?shù)牡图塗RAP運(yùn)算。一般地(盡管不必如此),調(diào)用TRAP的內(nèi)容代碼線程將在執(zhí)行所請求的運(yùn)算的同時(shí)停止。TRAP的返回值(以實(shí)例原型中的左側(cè)“UINT-32”表示)被置于其可由內(nèi)容代碼檢索的位置中(例如,通過將返回值置于預(yù)定寄存器中)。多數(shù)示范性TRAP返回狀態(tài)值(例如,指示成功的常數(shù)STATUS_OK,或指示錯(cuò)誤狀況的值,或以其它方式描述系統(tǒng)或操作的結(jié)果或狀態(tài)的值)。為簡潔起見,如果值僅為狀態(tài)值,那么在下文TRAP描述中一般省略返回值的內(nèi)容。某些TRAP不返回任何狀態(tài)值但可能失敗(例如,如果提供了非法輸入?yún)?shù)),在此情形下內(nèi)容代碼可需要確保提供了適當(dāng)?shù)妮斎牒?或檢驗(yàn)操作如期完成。使用TRAP運(yùn)算所交換的值可(例如)使用加密和/或數(shù)字簽名來受到密碼保護(hù)。舉例來說,傳遞到TRAP的值可使用播放器或其它裝置的公開密鑰加密。值也可使用對稱密碼學(xué)加密,例如使用塊密碼或流密碼。值也可經(jīng)數(shù)字簽名?;貞?yīng)也可經(jīng)密碼保護(hù)。舉例來說,回應(yīng)可(例如)由播放器、播放器的制造商、外部裝置、格式實(shí)體等等數(shù)字簽名。使用的密碼保護(hù)(和對應(yīng)的密鑰,等等)的具體組合可被規(guī)定或可基于內(nèi)容代碼請求、播放器請求、外部裝置、播放器的狀態(tài),等等。用于保護(hù)數(shù)據(jù)的密鑰可未包含于播放器中(或不可由播放器訪問),例如在端點(diǎn)為內(nèi)容代碼和外部裝置但穿過播放器的數(shù)據(jù)通信的情形下。TRAP運(yùn)算經(jīng)常使系統(tǒng)狀態(tài)改變。舉例來說,內(nèi)容代碼可見的寄存器值和存儲器內(nèi)容可被改變。舉例來說,上文的“TRAP_Random”實(shí)例將存儲來自隨機(jī)數(shù)生成器的輸出以由內(nèi)容代碼使用。不受內(nèi)容代碼直接控制的重放系統(tǒng)的部分一般也由TRAP運(yùn)算訪問或修改。舉例來說,TRAP_SlotWrite可改變播放器非易失性存儲器插槽的內(nèi)容,且TRAP_MediaReadRequest將一個(gè)請求增加到待處理的媒體讀取的隊(duì)列。這些改變可在內(nèi)容代碼的直接監(jiān)視下或可不在其直接監(jiān)視下。播放器模作以下描述由一示范性實(shí)施例支持的TRAP運(yùn)算。應(yīng)注意,限制、常數(shù)和設(shè)計(jì)的其它方面反映了示范性實(shí)施例而不必反映其它實(shí)施例。voidTRAP_Yield(UINT32sleepTime);交出對解釋器的控制直至(a)以微秒計(jì)的規(guī)定時(shí)間或(b)一事件發(fā)生(例如,媒體讀取完成,等等)的較前者出現(xiàn)。當(dāng)調(diào)用TRAP_Yield時(shí)實(shí)施無需暫停解釋器,然而暫停解釋器可為理想的,尤其是為了節(jié)省便攜式裝置上的電池電力或保存多線程系統(tǒng)上的處理器周期。實(shí)施也可選擇忽略sleepTime參數(shù)。此操作可消耗1微秒,即使對sleepTime規(guī)定了較小值或一事件先發(fā)生。如果事件發(fā)生,那么控制將在事件后的1微秒內(nèi)再繼續(xù)。如果沒有事件發(fā)生,可暫停執(zhí)行多達(dá)sleepTime微秒。TRAP不返回任何信息;當(dāng)播放器準(zhǔn)備好時(shí),執(zhí)行在下一指令時(shí)繼續(xù)。UINT32TRAP_Random(UINT8*dst,UINT32len);存儲由播放器生成的len隨機(jī)(或強(qiáng)偽隨機(jī))字節(jié)于dst處。UINT32TRAP_Sha(UINT8*dst,UINT8*src,UINT32len,UINT32op);對src處的len字節(jié)執(zhí)行SHA-1算法并在dst處存儲結(jié)果。Op的值包括增加更多數(shù)據(jù)到現(xiàn)有SHA狀態(tài)的SHA_UPDATE(0);在散列處理數(shù)據(jù)之前開始新的SHA上下文的SHA_INIT(1);當(dāng)散列更新完成時(shí)執(zhí)行結(jié)束運(yùn)算的SHA_FINAL(2);和執(zhí)行完整區(qū)塊運(yùn)算的SHA_BLOCK(3)(等效于設(shè)置SHA_INIT和SHA_FINAL兩者)。在dst處應(yīng)當(dāng)存在至少512字節(jié)的可用空間,且所述空間的內(nèi)容在結(jié)束運(yùn)算(例如,op=SHA_FINAL)發(fā)生之前將為不確定的。播放器實(shí)施可使用dst處的512字節(jié)用于狀態(tài)的暫時(shí)存儲,但應(yīng)假定dst的內(nèi)容是由內(nèi)容代碼惡意地選擇的。如果成功,那么返回STATUS_OK,否則返回定義的錯(cuò)誤代碼中的一個(gè)。UINT32TRAP_Aes(UINT8*dst,UINT8*src,UINT32len,UINT8*key,UINT32opOrKeyID);使用key處的密鑰對來自src的len區(qū)塊執(zhí)行AESECB算法(如下文所轉(zhuǎn)換)并存儲解密結(jié)果于dst處。OpOrKeyID的值規(guī)定應(yīng)當(dāng)如何導(dǎo)出密鑰和是否執(zhí)行AES加密或解密。支持OpOrKeyID的以下值●opOrKeyID=AES_ECB_ENCRYPT(0xFFF10000)-使用ECB模式以key處的16-字節(jié)密鑰對數(shù)據(jù)加密。●opOrKeyID=AES_ECB_DECRYPT(0xFFF10001)-使用ECB模式以key處的16-字節(jié)密鑰對數(shù)據(jù)解密?!駉pOrKeyID=AES_ECB_DECRYPT_MEDIA_KEY(0xFFF10002)-使用用于當(dāng)前插入的媒體的媒體密鑰對key處的已加密的密鑰值解密,接著使用結(jié)果作為密鑰使用ECB模式對src處的數(shù)據(jù)解密?!駉pOrKeyID=任何其它值。使用由opOrKeyID識別的播放器密鑰對指針key處的加密密鑰解密,接著使用所得的解密密鑰使用ECB模式對指針src處的數(shù)據(jù)解密。(注意內(nèi)容代碼可檢查播放器的證書以判定播放器的主AES密鑰集的密鑰范圍;這些密鑰不一定要在0處開始,且可存在多個(gè)密鑰集。)雖然由opOrKeyID選定的密鑰可位于播放器應(yīng)用程序中,但密鑰也可(無限制)位于驅(qū)動器中、裝置驅(qū)動程序中、顯示器/輸出裝置中、遠(yuǎn)程地位于網(wǎng)絡(luò)上、位于用戶抽取式智能卡(或其它防篡改芯片)中、位于非抽取式防篡改芯片中、分置于多個(gè)裝置中,等等。第一解密運(yùn)算(解密規(guī)定內(nèi)容的加密密鑰)可由包含已識別密鑰的裝置所執(zhí)行,同時(shí)成批處理(意即,解密src處的數(shù)據(jù))可在別處執(zhí)行(例如,在缺乏用于密鑰存儲的非易失性存儲器的高速密碼模塊中)。密碼運(yùn)算,尤其是涉及外部裝置的密碼運(yùn)算也可經(jīng)由TRAP_DeviceDiscovery和/或TRAP_DeviceAccess而實(shí)施。可使用內(nèi)容代碼由ECB運(yùn)算實(shí)施密碼塊鏈接(CBC)、計(jì)數(shù)器模式和其它塊密碼模式(視情況使用諸如TRAP_Xor的運(yùn)算)。替代實(shí)施例也可直接提供除AES以外的算法和/或除ECB以外的模式。UINT32TRAP_PrivateKey(UINT8*dst,UINT8*src,UINT32srcLen,UINT32controlWord,UINT32keyID);此運(yùn)算使用由keyID(通常為0)選擇的RSA私人密鑰或播放器中(或可由播放器訪問的裝置中)的某些其它不對稱密鑰來轉(zhuǎn)換某些數(shù)據(jù)。從keyID,結(jié)果的長度和運(yùn)算類型(例如,簽名或解密)是隱含的。關(guān)于可用密鑰的信息,包括對應(yīng)的公開密鑰和證書(內(nèi)容代碼可檢驗(yàn)其),可使用TRAP_DeviceDiscovery和/或TRAP_DeviceAccess而獲取。選擇提交哪些數(shù)據(jù)由內(nèi)容代碼決定(例如,可提交來自媒體和/或TRAP的任何數(shù)據(jù)的任何函數(shù))。舉例來說,針對簽名運(yùn)算所提交的值可通過在產(chǎn)生所簽名的數(shù)據(jù)時(shí)并入事件數(shù)據(jù)(見TRAP_EventGet)而與用戶界面(和其它)事件關(guān)聯(lián)。對于播放器的主RSA私人密鑰(keyID=0),此運(yùn)算產(chǎn)生SHA-1散列的2048-位的RSA簽名。計(jì)算該散列如下(a)散列處理作為4字節(jié)編碼的srcLen的值(MSB首先);(b)散列處理規(guī)定用戶的緩沖器的內(nèi)容(意即,src處的srcLen字節(jié));(c)散列處理作為4字節(jié)編碼的controlWord的值(MSB首先);(d)如果設(shè)置了controlWord位31(MSB),散列處理媒體ID的值;(e)如果設(shè)置了controlWord位30,設(shè)置目標(biāo)指針為PC+4,覆蓋dst;(f)如果設(shè)置了controlWord位29,散列處理以當(dāng)前程序計(jì)數(shù)器開始的(controlwordmod216)代碼字節(jié);接著(g)如果設(shè)置了controlWord位28,將PC的當(dāng)前值并入散列中。接著通過將“0x00||0x01||0xFF(重復(fù)233次)||00”加到SHA-1散列開始處(prepend)而填補(bǔ)SHA-1散列結(jié)果填補(bǔ)的值接著被提高到播放器的秘密指數(shù)(secretexponent),以播放器的公開模數(shù)為模。對于檢驗(yàn)簽名,播放器的公開指數(shù)為3,且公開模數(shù)可由內(nèi)容代碼通過使用系統(tǒng)范圍的公開密碼(其可為包含于內(nèi)容代碼中的常數(shù),視情形為模糊形式)來檢驗(yàn)播放器的證書而獲取。由控制字提供的選項(xiàng)允許內(nèi)容代碼獲取關(guān)于執(zhí)行環(huán)境的證明,諸如檢測其中簽名是由不同于包含解釋器的裝置的兼容裝置所執(zhí)行的情形。解釋器與內(nèi)容代碼之間的可驗(yàn)證的綁定可用于應(yīng)付以下情形,即攻擊者設(shè)法使用運(yùn)行于合法播放器上的惡意內(nèi)容來產(chǎn)生用于由運(yùn)行合法內(nèi)容的惡意播放器使用的密碼結(jié)果。實(shí)施例可支持不對稱密碼算法(RSA、DSA、橢圓曲線變量、Diffie-Hellman,等等)的任何組合,可支持多個(gè)運(yùn)算(簽名、檢驗(yàn)、密鑰協(xié)議,等等)和多個(gè)密鑰大小。對稱運(yùn)算也可與不對稱運(yùn)算結(jié)合。應(yīng)注意,諸如RSA簽名檢驗(yàn)的某些密碼運(yùn)算可實(shí)施于內(nèi)容代碼中而沒有任何特殊的trap(自陷),或僅使用通用性能加速運(yùn)算(例如,TRAP_AddWithCarry,等等)。更復(fù)雜的密碼TRAP的實(shí)例將進(jìn)行某些或所有以下步驟(a)執(zhí)行RSA公開密鑰運(yùn)算以檢驗(yàn)數(shù)據(jù)區(qū)塊的簽名;(b)如果簽名有效,執(zhí)行RSA私人密鑰運(yùn)算以對已檢驗(yàn)部分中的區(qū)塊數(shù)據(jù)解密以恢復(fù)對稱密鑰;(c);如果RSA解密成功,使用對稱密鑰對某些數(shù)據(jù)(例如,在加密密鑰后的簽名區(qū)塊中的數(shù)據(jù))解密和檢驗(yàn)(例如,使用HMAC-SHA),接著(d)使用解釋器將已解密的數(shù)據(jù)處理為代碼。在替代實(shí)施例中,可提供密碼支持以用于簽名、檢驗(yàn)、解密、加密或以其它方式處理其它計(jì)算操作(諸如其它TRAP)的任何方式的輸入和輸出。UINT32TRAP_AddWithCarry(UINT32*dst,UINT32*src,UINT32len);此運(yùn)算執(zhí)行具有進(jìn)位傳送的多字加法運(yùn)算。將src處的值加到dst。值src和dst可各自被檢驗(yàn)為指向存儲為len字的較大數(shù)且分別使用地址src或dst處的最高有效字進(jìn)行編碼。最低有效字分別位于src[len-1]和dst[len-1]處。舉例來說,數(shù)0x08090A0B0C0D0E0F將具有l(wèi)en=2,且將以0x08090A0B在由指針規(guī)定的位置處(例如,src)和值0x0C0D0E0F在由指針加上4所引用的字節(jié)偏移處(例如,src[1])的方式來存儲。如果源和目標(biāo)區(qū)域重疊,則只有在src=dst時(shí)才能保證正確的運(yùn)算。如果最后(最高有效或左側(cè))的加法步驟產(chǎn)生進(jìn)位,那么運(yùn)算的返回值為1,且否則為0。(注意TRAP_AddWithCarry運(yùn)算連同各種其它TRAP操作也可在沒有單獨(dú)的TRAP的情況下使用內(nèi)容代碼而實(shí)施,但是專用的TRAP使得播放器設(shè)計(jì)者能夠選擇在每一平臺上可用的最有效的技術(shù),從而允許在很多種可能的播放器設(shè)計(jì)中實(shí)現(xiàn)更好的性能保證。)UINT32TRAP_SubtractWithBorrow(UINT32*dst,UINT32*src,UINT32len);此運(yùn)算執(zhí)行具有借位(進(jìn)位)傳送的多字減法運(yùn)算。具體來說,從dst減去src處的值。值src和dst各自指向存儲為len字的較大數(shù)且分別使用地址src或dst處的最高有效字進(jìn)行編碼。舉例來說,數(shù)0x08090A0B0C0D0E0F將具有l(wèi)en=2,且將以0x08090A0B在由指針規(guī)定的位置處(例如,src)和值0x0C0D0E0F在由指針加上4所引用的字節(jié)偏移處(例如,src[1])的方式來存儲。如果源和目標(biāo)區(qū)域重疊,則只有在src=dst時(shí)才能保證正確的運(yùn)算。如果最后(最高有效,或左側(cè))的減法步驟要求借位,那么運(yùn)算的返回值為1,且否則為0。UINT32TRAP_MultiplyWithRipple(UINT32*dst,UINT32*src,UINT32multiplicand,UINT32len);此運(yùn)算使multiplicand與dst中的數(shù)相乘。結(jié)果的長度為len+1字。結(jié)果的最高有效字被返回,且其余部分存儲于dst中。dst的值應(yīng)當(dāng)指向存儲為len字的較大數(shù)且使用由dst指向的地址處的最高有效字進(jìn)行編碼。返回結(jié)果的最高有效32位。(此等于multiplicand與dst的乘積的最高有效32位。)voidTRAP_XorBlock(UINT32*dst,UINT32*src,UINT32len);此運(yùn)算計(jì)算兩個(gè)存儲器區(qū)塊的異或運(yùn)算結(jié)果。將存儲于src處的數(shù)據(jù)與dst處的數(shù)據(jù)進(jìn)行異或運(yùn)算。此運(yùn)算(例如)在產(chǎn)生CBC模式塊密碼運(yùn)算時(shí)是有用的。未定義src和dst區(qū)塊重疊時(shí)的運(yùn)算。不提供返回值。voidTRAP_Memmove(UINT8*dst,UINT8*src,UINT32len);此運(yùn)算將len字節(jié)從src復(fù)制到dst。即使源與目標(biāo)區(qū)塊重疊,結(jié)果也是正確的。不提供返回值。UINT32TRAP_Memcmp(UINT8*ptr1,UINT8*ptr2,UINT32maxlen);此運(yùn)算將ptr1處的存儲器與ptr2處的存儲器比較,比較多達(dá)maxlen字節(jié)。如果沒有發(fā)現(xiàn)差別,返回值為0;如果在第一個(gè)差別處ptr1處的值較大,返回值為1;且如果在第一個(gè)差別處ptr1處的值較小,返回值為0xFFFFFFFF。voidTRAP_Memset(UINT8*dst,UINT8fillvalue,UINT32len);此運(yùn)算以由fillvalue規(guī)定的字節(jié)值填充存儲器。目標(biāo)地址由dst規(guī)定且待存儲的字節(jié)的數(shù)目由len規(guī)定。不提供返回值。UINT8*TRAPMemsearch(UINT8*region,UINT32regionLen,UINT8*searchData,UINT32searchDataLen);此運(yùn)算搜索存儲器尋找一個(gè)或一個(gè)以上字節(jié)。具體來說,其在region(其具有regionLen字節(jié)的長度)中發(fā)現(xiàn)searchData(其具有searchDataLen字節(jié)的長度)的第一次出現(xiàn)。如果searchData完全在region中,那么將找到匹配;不計(jì)數(shù)在此范圍內(nèi)開始但延伸超出末端的匹配。運(yùn)算返回指向第一匹配的指針。如果在region中未發(fā)現(xiàn)匹配,那么返回值為NULL(零)。UINT32TRAP_SlotAttach(UINT32slot,UINT32codeLen,UINT32reqPriority);此運(yùn)算對現(xiàn)有非易失性存儲器插槽進(jìn)行附著或配置新的插槽(如果slot的規(guī)定值為零)。如果規(guī)定的代碼(在調(diào)用者的PC處開始并延伸codeLen字節(jié))與插槽的authorizationHash不匹配,那么插槽附著運(yùn)算將失敗(默認(rèn)為插槽零)。(要獲得關(guān)于非易失性存儲器支持的額外的信息,參見題為“保護(hù)非易失性存儲器”的部分。)UINT32TRAP_SlotRead(UINT8*dst,UINT32slot);此運(yùn)算試圖讀取非易失性存儲器插槽,且如果成功,將結(jié)果存儲于規(guī)定的位置處。如果規(guī)定的插槽不是當(dāng)前附著的插槽,那么不返回插槽內(nèi)容的私有數(shù)據(jù)部分。(要獲取額外的信息,參見題為“保護(hù)非易失性存儲器”的部分。)UINT32TRAP_SlotWrite(UINT8*newContents);此運(yùn)算試圖寫入當(dāng)前附著的非易失性存儲器插槽。(為獲取額外的信息,參見題為“保護(hù)非易失性存儲器”的部分。)插槽寫入運(yùn)算為極快的(atomic),意謂播放器保證如果運(yùn)算失敗(例如,歸因于無法預(yù)期的停電)運(yùn)算將全部完成或根本沒有開始。TRAP_SlotWrite運(yùn)算確保寫入的數(shù)據(jù)具有用于插槽的若干部分的正確值,包括creatorMediaID(最初創(chuàng)建插槽的內(nèi)容代碼所在的媒體的標(biāo)識符)、lastUpdateMediaID(最近寫入插槽的內(nèi)容代碼所在的媒體的標(biāo)識符)、lastUpdateSequenceCounter(全局寫入計(jì)數(shù)器的值,其每次寫入單調(diào)地增加一次)和slotPriority(其規(guī)定插槽的重寫優(yōu)先級)。內(nèi)容代碼控制寫入通用區(qū)域的數(shù)據(jù)??纱鎯Φ男畔⒌膶?shí)例包括(無限制)重放狀態(tài)信息(諸如暫停/停止重放的位置和配置)、審計(jì)信息(包括運(yùn)行散列或其它密碼鑒別法以審計(jì)數(shù)據(jù))、電子游戲的高得分、用于自動完成電子購買的默認(rèn)信息(用戶姓名、用戶地址、信用卡號、信用卡期限、郵寄賬單地址、運(yùn)輸?shù)刂贰㈦娫捥柎a、e-mail地址,等等)、可執(zhí)行的代碼(例如,新的安全邏輯、改正主題或播放器的問題的修補(bǔ)程序,等等)、密鑰(和其它安全信息),等等。返回值指示寫入操作是否成功和媒體的大體狀態(tài)(例如,如果非易失性存儲器歸因于過多數(shù)目的寫入循環(huán)而接近耗盡則為警告)。讀取操作可在寫入之后執(zhí)行,以額外地檢驗(yàn)寫入已成功。UINT32TRAP_MediaEject(void);此運(yùn)算試圖彈出當(dāng)前驅(qū)動器中的任何抽取式媒體。在成功的調(diào)用TRAP_MediaEject()后,解釋器可繼續(xù)操作,盡管在許多情形下解釋器接著將通過調(diào)用TRAP_Shutdown()而自己關(guān)閉。不要求播放器支持自動彈出,在此情形下所述操作將失敗。(內(nèi)容代碼可使用TRAP_DeviceDiscovery來檢測彈出支持和其它播放器能力。)在某些情形下,在改換媒體的同時(shí)保存內(nèi)容代碼的存儲器空間的部分可為有利的。舉例來說,此可有用于當(dāng)在多光盤集中的光盤之間切換時(shí)比容易地存儲于非易失性存儲器中保存更大量的數(shù)據(jù)。在此情形下,TRAP_MediaEject用于彈出初始媒體。用戶接著插入另一片內(nèi)容(例如,在受到一個(gè)重疊(overlay)的提示后)??山?jīng)由TRAP_DeviceDiscovery判定新插入的內(nèi)容的身份。為防止未預(yù)期的媒體改變,要求對TRAP_DeviceAccess的明確的調(diào)用以啟用新的媒體。接著可載入新的媒體的標(biāo)記為授權(quán)進(jìn)行通常讀取的部分。(某些部分可被指定了其僅應(yīng)由媒體自己的內(nèi)容代碼讀取。)要求更復(fù)雜的媒體到媒體(例如,光盤到光盤)鏈接能力的實(shí)施例可允許初始媒體上的代碼鑒別第二媒體,且也允許第二媒體上的代碼鑒別源媒體。媒體鑒別也可由播放器執(zhí)行,例如基于數(shù)字簽名的規(guī)則和承載于源光盤和目標(biāo)光盤上的證書。UINT32TRAP_MediaReadRequest(UINT32offsetHigh,UINT32offsetLow,UINT32len);此運(yùn)算通知媒體子系統(tǒng)開始檢索某些數(shù)據(jù)。在示范性實(shí)施例中,len的值可不超過1兆字節(jié)(1048675字節(jié)),包括扇區(qū)邊界在內(nèi)。(如果偏移不在扇區(qū)邊界上,意即,不是SECTOR_SIZE的整數(shù)倍,那么長度不得超過1兆字節(jié)減去扇區(qū)偏移,所述扇區(qū)偏移按照offsetLow模SECTOR_SIZE來計(jì)算。當(dāng)前將SECTOR_SIZE定義為2048字節(jié)。)播放器允許緩沖至少兩個(gè)未完成的請求(例如,一個(gè)當(dāng)前正在被服務(wù)和一個(gè)接著將被服務(wù))。此允許內(nèi)容保持驅(qū)動器連續(xù)地忙碌。播放器通常將為每一待處理請求使用單獨(dú)的一兆字節(jié)的等待緩沖器。一沒有任何錯(cuò)誤的返回意謂將試圖讀取(意即,所述請求不是明顯地有錯(cuò)誤),但是不保證讀取將實(shí)際地成功。(參見TRAP_MediaReadFinal。)雖然此運(yùn)算僅要求執(zhí)行讀取(且實(shí)際并不將任何數(shù)據(jù)載入于內(nèi)容代碼的存儲器區(qū)域中),但是替代實(shí)施例可規(guī)定目標(biāo)地址并(例如)通過接收一事件或通過檢查目標(biāo)緩沖器是否已填滿來檢測讀取是否已完成如果所述途徑配合基于代碼的NVRAM安全能力一起使用(例如,參見TRAP_SlotAttach),那么可要求安全措施以確保盜版者不使用待處理的請求來破壞與解鎖的NVRAM插槽相關(guān)聯(lián)的安全代碼或以其它方式攻擊安全性。舉例來說,播放器可在NVRAM插槽解鎖的同時(shí)暫?;蚪姑襟w讀取,和/或在所述運(yùn)算待處理的同時(shí)拒絕NVRAM插槽附著請求。UINT32TRAP_MediaReadFinal(UINT8*dst);此運(yùn)算檢查最早的(第一個(gè)進(jìn)入)所請求讀取是否已完成。如果沒有,那么返回STATUS_NOT_DONE的返回值。如果沒有讀取是待處理的,返回STATUS_NOT_FOUND的返回值。如果讀取請求失敗,返回STATUS_ERROR。否則,所將請求的數(shù)據(jù)從驅(qū)動器的緩沖器傳送到內(nèi)容代碼的存儲器空間的規(guī)定地址處,且返回值STATUS_OK。如果地址為0xFFFFFFFF,那么放棄數(shù)據(jù)。應(yīng)注意,使用TRAP_DeviceAccess而不是此運(yùn)算來配置和執(zhí)行特殊的讀取(諸如燒錄區(qū)的讀取、在錯(cuò)誤檢測/改正被禁用的情況下的數(shù)據(jù)讀取,等等)。UINT32TRAP_MediaWrite(UINT32offsetHigh,UINT32offsetLow,UINT8*src,UINT32len);此運(yùn)算將規(guī)定的數(shù)據(jù)寫入媒體,在規(guī)定的偏移處開始。(偏移為64-位值,作為32-位上方值和32-位下方值而被編碼。)此運(yùn)算僅適用于支持寫入的媒體格式??蓪懭?yún)^(qū)域也可限于媒體的特定部分。在特定情形下也可禁止寫入(例如,如果已改變媒體、如果媒體上的記錄器標(biāo)識符與當(dāng)前裝置不匹配、如果媒體沒有授權(quán)使用寫入能力的有效證書,等等)。TRAP_DeviceAccess可用于提供保護(hù)或啟用寫入所需的任何必需的鑒別或密鑰協(xié)議。對于一次寫入的媒體,可拒絕重寫先前已寫入部分的嘗試(和冒破壞所述位置處的媒體的風(fēng)險(xiǎn)),除非已獲取明確的授權(quán)(例如,經(jīng)由TRAP_DeviceAccess)。(雖然通常為不需要的,但是所述寫入在特定情形下可為有用的,例如,用以使媒體回應(yīng)于攻擊而自毀。)如果驅(qū)動器允許對寫入頭調(diào)制、循軌控制、糾錯(cuò)碼、讀取/寫入頭光學(xué)特性或其它配置參數(shù)的直接控制,那么也可經(jīng)由TRAP_DeviceAccess調(diào)整這些。出于取證用途可對已寫入的媒體的特征進(jìn)行修改,例如允許內(nèi)容所有者判定哪一寫入裝置制造特定的一片光學(xué)媒體。UINT32TRAP_EventGet(UINT8*evBuf,UINT32len);此運(yùn)算檢查是否有任何事件(諸如用戶界面操作、安全改變,等等)為待處理的,且如果是,存儲關(guān)于第一個(gè)(或優(yōu)先級最高的)事件的信息于由event規(guī)定的地址處。如果沒有發(fā)現(xiàn)事件,返回值STATUS_NOT_FOUND且event的內(nèi)容不改變否則,trap返回STATUS_OK且存儲描述該事件的信息于evBuf處(但不會存儲超過len字節(jié))。在事件緩沖器(evBuf)中返回的數(shù)據(jù)取決于事件。如果返回用戶界面事件,那么在由evBuf規(guī)定的存儲器地址處存儲以下數(shù)據(jù)結(jié)構(gòu)typedefstruct{UINT32Source;/*Devicetypethatproducedevent*/UINT32Action;/*Actual/suggestedactionforevent*/UINT32Char;/*UTF-8valueofevent(ifapplicable)*/UINT32Direction;/*Compassvaluesforevent*/UINT32Xpos;/*PointerXpositionforevent*/UINT32Ypos;/*PointerYpositionforevent*/UINT32Reserved[10];/*Donotinterpret(futureuse)*/}EventInfo_UserInterface;Source域識別事件所起始于的裝置。Source域的解釋可預(yù)先判定或由內(nèi)容代碼判定(例如,經(jīng)由從TRAP_DeviceDiscovery獲取的信息)??芍付ǖ目赡艿膩碓吹膶?shí)例包括(無限制)遠(yuǎn)程控制、鍵盤、面板鍵、鼠標(biāo)(和其它指向裝置)、媒體驅(qū)動器、外部裝置、計(jì)時(shí)器、編碼譯碼器、未知/未規(guī)定的來源,等等。Action域規(guī)定對于事件所建議的動作或觸發(fā)事件的動作。此值可為模態(tài)的(例如,影響播放器的當(dāng)前狀態(tài))或可為恒定的。動作可改變重放狀態(tài)或具有其它效應(yīng)。可能的動作的實(shí)例包括(無限制)播放、暫停、停止、倒回(以各種速率)、快進(jìn)(以各種速率)、慢動作(以各種速率)、斷電、彈出、頻道升高、頻道下調(diào)、選擇、進(jìn)入、音量調(diào)整(或靜音)、引導(dǎo)/菜單選擇、改變視角、跳進(jìn)(skip-forward)、情景選擇、用戶語言選擇、字幕控制、視頻角度(videoangle)改變、選擇、后退、前進(jìn)、是、否、購買、退出、幫助、錯(cuò)誤、輸出裝置改變通知、重放環(huán)境重新配置通知、安全警告,等等。如果為未知的(諸如沒有對應(yīng)于事件的動作的情形),那么此域?yàn)榱恪?注意此域?qū)τ谟脩艚缑媸录约捌渌录际怯行У?。所述值的最高有效?6位識別例如EventInfo_UserInterface、EventInfo_SecurityAlert等等的隨后域的結(jié)構(gòu)。)Char域規(guī)定對應(yīng)于鍵的字符(例如,使用ASCII編碼的、雙字節(jié),等等)。如果為未知的(諸如沒有對應(yīng)于事件的字符的情形),那么此域?yàn)榱?。Direction域規(guī)定事件指示的方向,或如果沒有,那么為零。盡管可將方向量化為某些預(yù)定值(例如,北/上、東北/右上、右/東,等等),方向可為任何角度。如果可將事件解釋為指針在標(biāo)準(zhǔn)X/Y柵格上的移動或動作,那么Xpos和Ypos域指示一位置。如果事件與X和/或Y座標(biāo)不對應(yīng),那么設(shè)置對應(yīng)的域?yàn)榱恪?yīng)注意,可采用多種方式解釋單一事件(諸如遠(yuǎn)程輸入裝置上的按鍵動作)。舉例來說,在某些輸入裝置上,用作“上”的按鈕也對應(yīng)于數(shù)字8。在此情形下,將產(chǎn)生一具有“上”的方向和數(shù)字“8”的Char域的事件。內(nèi)容代碼將使用其對需要什么輸入的當(dāng)前認(rèn)識來判定哪一個(gè)是適當(dāng)?shù)摹?在一替代實(shí)施例中,播放器可提供單獨(dú)的能力或信息以輔助內(nèi)容代碼解釋用戶事件,或允許內(nèi)容代碼規(guī)定如何解釋具有若干可能的解釋的事件。)如果內(nèi)容接收未知的事件類型,那么其可安全地忽略其(除非規(guī)定于source域中的關(guān)鍵位另作指示)。對于非用戶界面事件(諸如宣布裝置添加、裝置去除、裝置重新配置、其它重放環(huán)境配置改變、來自外部組件的對數(shù)據(jù)的請求、操作已完成的通知等等的事件)或?qū)τ趤碜云渌N類的用戶界面(諸如語音識別能力或經(jīng)配置以監(jiān)視用戶姿態(tài)的數(shù)碼相機(jī))的事件,可提供其它數(shù)據(jù)域。對于某些事件,內(nèi)容代碼調(diào)用額外的TRAP(諸如銷售商專用的TRAP)以獲取額外的信息可為必需的。應(yīng)注意,雖然TRAP_EventGet運(yùn)算使用輪詢來檢測改變,但是替代實(shí)施例可使用中斷或其它熟知的機(jī)制來處理事件。UINT32TRAP_CodecOutput(UINT32idx,UINT8*buf,UINT32len);此運(yùn)算將數(shù)據(jù)傳輸?shù)骄幋a譯碼器。簡單的播放器可支持僅僅一個(gè)編碼譯碼器(例如,CODEC_AUDIO_AND_VIDEO)或兩個(gè)編碼譯碼器(例如,CODEC_VIDEO_MPEG2和CODEC_AUDIO_MPEG),而更復(fù)雜的播放器可支持許多個(gè),例如支持多個(gè)種類的內(nèi)容流并啟用諸如畫中畫(picture-in-picture)的特征??墒褂肨RAP_DeviceAccess運(yùn)算設(shè)置編碼譯碼器參數(shù)。UINT32TRAP_CodecSetTime(UINT64time);此運(yùn)算設(shè)置主編碼譯碼器時(shí)鐘。規(guī)定值為零使得時(shí)鐘與嵌入于提供到TRAP_CodecOutput的數(shù)據(jù)中的視頻時(shí)間戳記重新同步。使用視頻緩沖器對此命令緩沖,因此效應(yīng)被延遲,直至遇到該命令。使用TRAP_CodecFlush,此運(yùn)算用于啟用實(shí)時(shí)視頻拼接并允許內(nèi)容代碼從一個(gè)壓縮的視頻/音頻流無縫地切換到另一個(gè)。UINT32TRAP_CodecSetRate(UINT32rate);此運(yùn)算設(shè)置編碼譯碼器消耗數(shù)據(jù)的速率和方向。rate值經(jīng)轉(zhuǎn)換成一帶符號整數(shù)并由因數(shù)64按比例減小。舉例來說,速率為0意謂“暫?!保?28為以正常重放速度的2倍快進(jìn),-256(0xFFFFFF00)為以4倍速倒回,和16為以0.25倍速緩慢前進(jìn)播放。如果不支持所請求的值,那么編碼譯碼器通過忽略符號并四舍五入較大的、遵守播放器的最大速率來挑選下一個(gè)最接近的值。例外為某些分?jǐn)?shù)重放速率,其中編碼譯碼器不應(yīng)四舍五入為0(暫停)或64(正常)。如果規(guī)定負(fù)的重放速率(相反的),那么編碼譯碼器(經(jīng)由TRAP_CodecStatus)將通常以相反的順序請求視頻GOP。默認(rèn)地,對于除64以外的重放速率,音頻為靜音。UINT32TRAP_CodecFlush(void);此運(yùn)算刷新視頻和音頻編碼譯碼器緩沖區(qū)。如果內(nèi)容代碼希望刪除編碼譯碼器緩沖區(qū)中的數(shù)據(jù)以便從一個(gè)流快速地切換到另一流,那么通常使用此命令。舉例來說,如果用戶請求跳進(jìn)1分鐘,那么內(nèi)容代碼可使用此運(yùn)算以清除編碼譯碼器緩沖區(qū)中的任何數(shù)據(jù),使得可立即解碼新提交的數(shù)據(jù)。UINT32TRAP_CodecStatus(CodecInfo*info);此運(yùn)算檢索關(guān)于編碼譯碼器的FIFO隊(duì)列的信息和編碼譯碼器期望的下一個(gè)視頻塊或音頻塊。返回的數(shù)據(jù)值包括當(dāng)前時(shí)間戳記(包括對應(yīng)于當(dāng)前被顯示/輸出的視聽信息的、當(dāng)前未被壓縮的信息的、和當(dāng)前在編碼譯碼器緩沖器中的信息的時(shí)間戳記)、直到編碼譯碼器緩沖區(qū)變空的時(shí)間的量、編碼譯碼器緩沖區(qū)中可用的字節(jié)的數(shù)目、下一個(gè)應(yīng)當(dāng)被增加到編碼譯碼器緩沖區(qū)的數(shù)據(jù)(例如,當(dāng)以高速后退播放MPEG-2視頻時(shí),此可為前一個(gè)“I”幀)的位置(例如,下一個(gè)、前一個(gè)、尋道距離)和類型(例如,完整的GOP或“I”幀)。在適用的情況下,對于每一編碼譯碼器(音頻、視頻,等等)提供單獨(dú)的信息。UINT32TRAP_OverlaySetup(UINT32idx,UINT32width,UINT32height);此運(yùn)算配置具有指數(shù)值idx的重疊平面,所述重疊平面具有規(guī)定的尺寸且是空白的(完全透明的)。UINT32TRAP_OverlaySetPosition(UINT32idx,UINT32x,UINT32y);此運(yùn)算設(shè)置規(guī)定的重疊平面在顯示器上(其中0,0為左側(cè)角落)的(x,y)位置。此運(yùn)算實(shí)際并不顯示重疊;其僅規(guī)定當(dāng)調(diào)用TRAP_OverlayShow()時(shí)將在哪里顯示重疊。UINT32TRAP_OverlayShow(UINT32idx,UINT64pts);此運(yùn)算顯示重疊。pts值規(guī)定重疊應(yīng)當(dāng)出現(xiàn)的時(shí)間,例如用于使重疊與下層的視頻同步。對TRAP_OverlayShow的多個(gè)調(diào)用(連同對其他用以實(shí)際創(chuàng)建適當(dāng)圖像、設(shè)定調(diào)色板,等等的重疊運(yùn)算的調(diào)用)可用于創(chuàng)建動畫菜單、簡單的畫中畫視頻和任何方式的其它動畫重疊。UINT32TRAP_OverlayHide(UINT32idx,UINT64pts);此運(yùn)算隱藏但不清除重疊。隱藏重疊使得其可用于稍后再次被顯示在規(guī)定的時(shí)間(pts)隱藏重疊。UINT32TRAP_OverlayClear(UINT32idx);此運(yùn)算清除重疊。清除重疊會擦除其內(nèi)容,使得在再次顯示其之前需要再次設(shè)置其(參見TRAP_OverlaySetup)。UINT32TRAP_OverlaySetPalette(UINT32idx,UINT32*color,UINT8*trans);此運(yùn)算規(guī)定重疊的調(diào)色板,包括256個(gè)調(diào)色板值中每一個(gè)的色彩(例如,RGB或YUV)和透明度(不透明性)。對調(diào)色板的改變可用于使重疊具有動畫效果或修改重疊(例如,以增亮圍繞選定區(qū)域的邊緣、改變半透明重疊窗格(overlaypane)的不透明性、使圖像可見,等等)。UINT32TRAP_OverlayBitmapDraw(UINT32idx,UINT32x,UINT32y,UINT32width,UINT32height,UINT8*bmp);此運(yùn)算在規(guī)定的重疊上繪制位圖。繪制超過重疊區(qū)域的邊界的重疊將產(chǎn)生錯(cuò)誤,或可產(chǎn)生美學(xué)上不可預(yù)測的結(jié)果。然而,在所述情形下播放器不應(yīng)使緩沖區(qū)溢出或造成任何其它安全性缺口(securitybreach)。參數(shù)bmp規(guī)定要繪制的圖像(其可為壓縮的或未壓縮的)。替代實(shí)施例可提供繪制操作或可提供執(zhí)行縮放和其它圖像操縱的能力,從而從內(nèi)容代碼卸載這些進(jìn)程(一般為計(jì)算頻繁的)。UINT32TRAP_OverlayTextDraw(UINT32idx,UINT32x,UINT32y,UINT32size,UINT8*text);此運(yùn)算在規(guī)定的重疊上繪制文本。調(diào)色板中的頭十一個(gè)項(xiàng)用于文本的著色(包括與半透明邊緣的抗鋸齒)。內(nèi)容代碼也可使用圖像繪制能力來顯示文本,例如如果播放器缺乏所需的字體、字符集,等等。如果文本行與重疊不配合,那么將其剪修(crop)。沒有提供對換行符的支持;此為調(diào)用者的責(zé)任。size參數(shù)規(guī)定要繪制的文本的大小,且可為播放器默認(rèn)的(例如,反映用戶偏好、當(dāng)前顯示器的特征,等等)。UINT32TRAP_OverlayRectDraw(UINT32idx,UINT32x1,UINT32y1,UINT32x2,UINT32y2,UINT32color,UINT32filled);此運(yùn)算在規(guī)定的重疊上繪制一矩形。輸入?yún)?shù)規(guī)定重疊指數(shù)(idx)、上-左側(cè)座標(biāo)(x1,y1)、下-右側(cè)座標(biāo)(x2,y2)、color和指示是否應(yīng)填充矩形的布林(Boolean)值(filled)。UINT32TRAP_SockConnect(UINT8*name,UINT32port);此運(yùn)算在由port規(guī)定的端口上打開一到由name所規(guī)定的地址的基于套接字的網(wǎng)絡(luò)連接。TRAP_DeviceAccess可用于配置套接字設(shè)置并判定網(wǎng)絡(luò)連接是當(dāng)前可利用的、是潛在地可利用的(例如,通過試圖經(jīng)由調(diào)制解調(diào)器進(jìn)行撥號)、還是確定不可利用的。網(wǎng)絡(luò)連接的存在和可靠性取決于實(shí)施(例如,與蜂窩電話集成的便攜式裝置很可能具有網(wǎng)絡(luò)連接,但沒有任何無線連接性支持的裝置可能就不具有)。對套接字/網(wǎng)絡(luò)操作的播放器支持為可選擇的,但為標(biāo)準(zhǔn)化的以提供內(nèi)容可借以訪問遠(yuǎn)程網(wǎng)絡(luò)資源(當(dāng)可用時(shí))的一致的接口。套接字支持為異步的;要求同步訪問的內(nèi)容應(yīng)輪詢直至已檢索到所需數(shù)據(jù)。經(jīng)由TRAP_DeviceDiscovery和TRAP_DeviceAccess執(zhí)行網(wǎng)絡(luò)參數(shù)的檢測和配置。UINT32TRAP_SockClose(void);此運(yùn)算關(guān)閉當(dāng)前打開的連接。UINT32TRAP_SockRecv(UINT8*buf,UINT32len);此運(yùn)算接收來自一個(gè)打開的連接的在buf中的數(shù)據(jù)。內(nèi)容代碼控制如何使用所接收的數(shù)據(jù)。實(shí)例包括(無限制)獲取最新的安全代碼、檢查撤銷狀態(tài)、處理支付、買(和購買)貨物/業(yè)務(wù)、下載附送內(nèi)容、下載更新的出價(jià)/廣告(包括定價(jià)和購買信息)、實(shí)施多用戶交互式系統(tǒng)(電影觀看者聊天,等等)、網(wǎng)絡(luò)瀏覽(視情形借助于播放器實(shí)施的網(wǎng)頁再現(xiàn)和/或?yàn)g覽能力),等等。UINT32TRAP_SockSend(UINT8*buf,UINT32len);此運(yùn)算將由buf指向的數(shù)據(jù)發(fā)送到打開的連接。UINT32TRAP_DeviceDiscovery(UINT32dev,UINT32qID,UINT8*buf,UINT32*len);播放器環(huán)境發(fā)現(xiàn)過程(TRAP_DeviceDiscovery和TRAP_DeviceAccess)向內(nèi)容代碼提供關(guān)于重放環(huán)境的信息且提供控制環(huán)境的能力。舉例來說,內(nèi)容可希望執(zhí)行以下操作,諸如(無限制)判定播放器設(shè)置(諸如默認(rèn)播放器語言、音量、亮度、對比度、輸出分辨率、等等);發(fā)現(xiàn)支持哪些可選擇的過程調(diào)用;判定重放環(huán)境配置(附著的裝置、活動中的軟件驅(qū)動器/程序、重放環(huán)境組件的狀態(tài)、等等);鑒別輸出裝置;查找組件(是存在于本地的、直接連接的、還是經(jīng)由網(wǎng)絡(luò)連接的,等等)和訪問可選擇的或抽取式裝置。TRAP_DeviceDiscovery提供對由dev規(guī)定的裝置的由qID所規(guī)定的問題的答案。為了知道關(guān)于重放環(huán)境的信息,重放代碼可詢問每一裝置一列表的標(biāo)準(zhǔn)問題。所支持的問題的實(shí)例包括(無限制)裝置支持哪些qID(問題ID)?如果有的話,該裝置的母裝置和子裝置的裝置ID是什么?該裝置在系統(tǒng)中的角色(存儲裝置、用戶界面、視頻顯示器、揚(yáng)聲器、便攜式裝置、聯(lián)網(wǎng)組件,等等)是什么?裝置的身份(序號、制造商信息、型號、版本、日期、產(chǎn)品有效期,等等)是什么?裝置的證書(和其它密碼數(shù)據(jù)和能力)是什么?裝置包含(或能夠訪問)哪些密碼編譯密鑰?裝置的哪些角色(記錄、轉(zhuǎn)發(fā)、顯示,等等)當(dāng)前在使用且哪些角色是未激活的?裝置支持哪些協(xié)議且哪些協(xié)議(及協(xié)議參數(shù))是當(dāng)前啟用的?裝置是否支持接收可執(zhí)行代碼?如果支持,執(zhí)行環(huán)境特征(解釋型還是本地的、所支持的規(guī)范版本、多線程還是單線程、安全證書)是什么?裝置的當(dāng)前定時(shí)器的值(包括時(shí)區(qū),等等)是多少?裝置支持哪些可配置的參數(shù)且其當(dāng)前值是什么?裝置的狀態(tài)怎樣?標(biāo)準(zhǔn)問題列表可隨著時(shí)間擴(kuò)充;在特定問題(qID)成為標(biāo)準(zhǔn)問題列表的部分之前制造的裝置將用錯(cuò)誤代碼STATUS_QUESTION_UNKNOWN回應(yīng)具有所述qID的查詢。同樣應(yīng)注意,標(biāo)準(zhǔn)問題列表上的問題將始終使qID的最高有效位(位31)清除。此最高有效位已設(shè)定的問題ID是保留用于擴(kuò)展的裝置專用的問題的。(經(jīng)設(shè)計(jì)以發(fā)現(xiàn)關(guān)于具體裝置的擴(kuò)展信息的內(nèi)容代碼必須知道裝置的擴(kuò)展qID列表和回應(yīng)方法。)調(diào)用例行程序應(yīng)傳遞由作為位置的buf所指向的緩沖器的最大長度(以字節(jié)計(jì)),其由len指出。于Len中返回的值將指示實(shí)際寫入buff的字節(jié)的數(shù)目。當(dāng)將裝置連接到系統(tǒng)時(shí),播放器向所述裝置分配裝置ID。將裝置從系統(tǒng)斷開連接并不引起裝置ID丟失或被重新分配到另一裝置。裝置ID零保留用于主播放器本身(盡管播放器也可具有額外的ID)。裝置ID在插入新的媒體或以裝置ID(dev)零調(diào)用TRAP_DeviceDiscovery之前是不變的。當(dāng)在dev設(shè)置為零和qID設(shè)置為零時(shí)調(diào)用TRAP_DeviceDiscovery時(shí),放棄所有當(dāng)前分配的裝置ID,如果適當(dāng)則執(zhí)行對所有裝置的重新掃描,且重新分配裝置ID。裝置或裝置配置的改變通常產(chǎn)生事件(由TRAP_EventGet獲取)。由TRAP_DeviceDiscovery提供的信息可由內(nèi)容代碼用于判定是否播放、判定怎么播放或播放什么、導(dǎo)出解密密鑰或其它密碼參數(shù)、轉(zhuǎn)換隨后將作為代碼被執(zhí)行的數(shù)據(jù)、識別(或解決)兼容性問題、評估風(fēng)險(xiǎn)、判定播放器能力、識別用戶偏好并執(zhí)行其它安全和非安全角色。TRAP_DeviceDiscovery不應(yīng)當(dāng)改變系統(tǒng)的狀態(tài);改變裝置狀態(tài)的操作應(yīng)當(dāng)使用TRAP_DeviceAccess。UINT32TRAP_DeviceAccess(UINT32dev,UINT32opID,UINT8*buf,UINT32*len);此運(yùn)算請求由dev規(guī)定的裝置執(zhí)行由opID規(guī)定的裝置操作。操作通常為針對特定裝置的。此TRAP(和/或套接字TRAP)通常用于在裝置之間或裝置內(nèi)的消息傳遞,以及用于設(shè)置配置參數(shù)和一般地管理重放環(huán)境。所傳遞的參數(shù)的內(nèi)容取決于opID。取決于opID,緩沖器(buf)可用于從內(nèi)容傳遞信息或傳遞信息到內(nèi)容或上述兩種情形。TRAP_DeviceAccess可用于實(shí)施非常廣泛的能力。舉例來說,安全參數(shù)(諸如密鑰和影響如何從物理媒體載入數(shù)據(jù)的其它參數(shù))可使用TRAP_DeviceAccess而規(guī)定。所述運(yùn)算也用于與遠(yuǎn)程裝置和其它組件(包括硬件和軟件組件)交互作用,包括(無限制)傳輸數(shù)據(jù)、接收數(shù)據(jù)、執(zhí)行密鑰協(xié)議、判定撤銷狀態(tài)、執(zhí)行筌別、改變配置狀態(tài)、控制電源管理特征、終止/控制進(jìn)程,等等。舉例來說,TRAP_DeviceAccess可用于將電影的拷貝傳送到遠(yuǎn)程裝置。運(yùn)行于發(fā)送裝置上的內(nèi)容代碼可首先識別目標(biāo)裝置和用于該傳送的適當(dāng)操作ID。其也將執(zhí)行任何裝置鑒別、密鑰交換或其它所需安全操作。(盡管最普遍地在傳送之前進(jìn)行安全分析,但是可額外地或替代地在主要的數(shù)據(jù)傳送期間或之后執(zhí)行密鑰分發(fā)和其它與安全相關(guān)的過程。)接著,其將向遠(yuǎn)程裝置提交電影的部分(如果接受者支持,視情形還連同可解釋的代碼)。發(fā)送的數(shù)據(jù)的格式由內(nèi)容代碼和目標(biāo)裝置協(xié)商且最終地由內(nèi)容代碼控制。舉例來說,進(jìn)行傳輸?shù)膬?nèi)容代碼可從由目標(biāo)裝置支持的多個(gè)格式選擇、重新調(diào)節(jié)或以其它方式轉(zhuǎn)換內(nèi)容、將取證標(biāo)記嵌入于內(nèi)容中和在將內(nèi)容提供到目標(biāo)裝置之前對其解密/重新加密。與內(nèi)容一起發(fā)送的代碼也可不同于實(shí)際上正由發(fā)送裝置解釋的代碼(例如,如果解釋器為不同的類型、執(zhí)行不同的作用,等等)。也可省略或修改代碼、密鑰、數(shù)據(jù)和其它部分,例如去除接收者裝置不支持的(或未授權(quán)由其執(zhí)行的)功能性,諸如制造隨后的拷貝的能力。代碼或數(shù)據(jù)也可采用加密的形式提供且無需由發(fā)送內(nèi)容代碼解密。(在某些情形下,發(fā)送裝置甚至不可訪問解密密鑰。)通常在經(jīng)受任何必需的安全處理或其它轉(zhuǎn)換后,內(nèi)容將由發(fā)送者從媒體部分地載入、接著輸出。接收方裝置也可運(yùn)行解釋型代碼。舉例來說,裝置到裝置的傳送可涉及首先將某些初始代碼傳輸?shù)浇邮照?,所述代碼將執(zhí)行對所述接收者的任何所需的安全檢查、接著管理隨后數(shù)據(jù)的接收。(例如,在接收端,TRAP_DeviceAccess可用于接收數(shù)據(jù)并將其存儲于(例如)文件系統(tǒng)中,或TRAP_CodecOutput可用于顯示數(shù)據(jù)。)甚至在發(fā)送到不可編程的裝置時(shí),發(fā)送代碼也可執(zhí)行安全和撤銷檢查、管理接口協(xié)議的安全部分,等等。在某些情形下(例如,如果裝置和傳送協(xié)議比內(nèi)容代碼更新),內(nèi)容代碼可允許裝置管理傳送過程的安全,同時(shí)在需要的和/或可實(shí)行的范圍內(nèi)監(jiān)視該過程(例如,通過訪問安全過程的細(xì)節(jié)并在識別到安全問題的情形下阻止傳送)。傳送可伴隨有NVRAM插槽寫入、媒體寫入、與外部服務(wù)器的“握手”或其它過程(例如)以強(qiáng)制實(shí)施諸如“只限復(fù)制一次”策略的限制。UINT32TRAP_RunNative(UINT8*signature,UINT32sigLen,UINT8*code,UINT32codeLen);此運(yùn)算用以允許內(nèi)容代碼在播放器上執(zhí)行本地代碼。播放器可要求本地代碼由播放器制造商或另一受信方數(shù)字簽名。(其目的是為了阻止惡意內(nèi)容運(yùn)行惡意的本地代碼)本地代碼的操作通常對于播放器實(shí)施(或最終運(yùn)行本地代碼的任何其它裝置)為特定的。因此,內(nèi)容代碼通常使用關(guān)于播放器的特征的信息(例如,從TRAP_DeviceDiscovery判定的)以判定播放器要求什么本地代碼(或相反地,判定播放器是否與某本地代碼兼容)。TRAP_RunNative的使用的實(shí)例包括(無限制)●安裝軟件更新到播放器或系統(tǒng)的其它部分(例如,通過將更新的代碼寫入包含于消費(fèi)性電子裝置中的非易失性存儲器、修改安裝于PC上的軟件程序,等等);●更新存儲于播放器中的密鑰或密碼參數(shù);●掃描重放環(huán)境(存儲器、存儲裝置,等等)以搜尋惡意的(或潛在地惡意的)軟件(諸如偽裝為視頻驅(qū)動程序的視頻捕獲軟件、偽裝為光盤驅(qū)動器或其它媒體輸入裝置的媒體仿真軟件、用于篡改執(zhí)行程序的調(diào)試器、TRAP_DeviceDiscovery未正確地報(bào)告的任何活動中軟件、任何缺乏有效的未撤銷的數(shù)字簽名的軟件,等等);●檢測在裝置上是否已執(zhí)行惡意的(或潛在地惡意的)修改(諸如未授權(quán)的固件改變、FPGA的重新配置、硬件組件的替換,等等);●就裝置的證書、公開密鑰、對稱密鑰和其它密碼屬性方面檢驗(yàn)?zāi)逞b置屬于預(yù)期的類型(見下文);●提供對程序錯(cuò)誤(諸如播放器的重疊/菜單能力中的缺陷、存儲器泄漏、存儲器破壞問題、不正確的解釋器運(yùn)算、性能問題、安全策略解釋缺陷,等等)的解決方案;和●啟用對外圍設(shè)備的直接訪問(例如,以獲取關(guān)于系統(tǒng)的原本不可訪問的信息或以現(xiàn)有TRAP不支持的方式修改系統(tǒng)狀態(tài))。TRAP_RunNative可幫助在盜版者找到從一類合法播放器提取密碼編譯密鑰的方式并配合惡意的軟件程序一起使用那些密鑰的情形下重新建立安全性。在此情形下,撤銷所有易受攻擊的播放器的密鑰通常是不可行的,因?yàn)樵S多這樣的播放器將由合法用戶所擁有,他們會對將其設(shè)備撤銷感到不滿。一示范性媒體承載針對密鑰提取攻擊的反措施且包括進(jìn)行以下操作的內(nèi)容代碼首先,媒體上的內(nèi)容代碼通過檢驗(yàn)播放器的證書來判定播放器的據(jù)稱的序號。播放器序號暗示播放器的類型和播放器承載的具體的密碼編譯密鑰(例如,在TRAP_Aes中)兩者。(某些示范性密鑰管理方法描述于“示范性對稱密鑰管理”部分中。)接著,內(nèi)容代碼檢驗(yàn)播放器了解其應(yīng)當(dāng)了解的密鑰。(舉例來說,此可通過調(diào)用其中src和dst指向包含重放所需的加密的代碼或數(shù)據(jù)的緩沖器、len包含緩沖器長度的、key指向已使用所關(guān)心的播放器密鑰加密的緩沖器的解密密鑰的值、和opOrKeyID參考播放器密鑰的TRAP_Aes而完成??蓤?zhí)行多個(gè)TRAP_Aes調(diào)用,包括來自先前運(yùn)算的輸出被用于制定隨后運(yùn)算的輸入的情形。也可包括其它步驟,諸如執(zhí)行具有恒定輸入的TRAP_Aes運(yùn)算、接著通過異或運(yùn)算或增加“修正”值來“改正”結(jié)果。)對于易受攻擊的播放器的密鑰,因?yàn)檫@些播放器要求額外地鑒別以區(qū)別在易受攻擊的播放器上執(zhí)行重放的情形與在使用從易受攻擊的播放器提取的密鑰的惡意播放器上執(zhí)行重放的情形,所以密鑰驗(yàn)證步驟將失敗(或至少沒有完全地完成)。此可通過執(zhí)行TRAP_RunNative而執(zhí)行,TRAP_RunNative運(yùn)行經(jīng)配置以區(qū)別仿真的與合法的播放器接著根據(jù)結(jié)果修改解釋器狀態(tài)(例如,通過返回結(jié)果值、基于結(jié)果對解釋器的存儲器區(qū)域的部分解密或以其它方式處理,等等)的本地代碼。替代地或額外地,本地代碼可在解釋器外有影響,例如通過與外部裝置通信、修改輸出(例如,以引入取證標(biāo)記)等等。由本地代碼執(zhí)行的運(yùn)算接著可由內(nèi)容代碼要求以用于正確的重放,例如通過并入或以其它方式要求視頻或所需的代碼/數(shù)據(jù)的解密密鑰的導(dǎo)出的結(jié)果。除非仿真器是理想的(考慮到現(xiàn)代計(jì)算裝置的復(fù)雜性,其為極其難以實(shí)現(xiàn)的前提),本地代碼才有可能成功地區(qū)別。本地代碼可用于區(qū)別合法播放器與仿真播放器的特征的實(shí)例包括(無限制)運(yùn)行特定類型的本地代碼的能力、存儲于硬件寄存器中的值、修改硬件寄存器的效果、存儲器內(nèi)容和校驗(yàn)和/散列值、當(dāng)執(zhí)行非標(biāo)準(zhǔn)運(yùn)算時(shí)的行為、銷售商專用的安全特征的正確實(shí)施(例如,視頻解碼器芯片中的未正式記錄的安全能力)、編碼譯碼器四舍五入錯(cuò)誤、錯(cuò)誤條件的處理、可選擇的用戶界面組件(諸如LCD顯示器或鍵盤輸入)、合法裝置所沒有的能力的存在和運(yùn)算的性能和時(shí)序。在一示范性實(shí)施例中,內(nèi)容規(guī)定了執(zhí)行一個(gè)或一個(gè)以上播放器安全測試、導(dǎo)出基于測試結(jié)果的密鑰并使用導(dǎo)出的密鑰對解釋器的存儲器區(qū)域的一部分解密的本地代碼。接著內(nèi)容代碼經(jīng)配置以在本地代碼的所有(或充分多的)檢查指示播放器為合法的情況下進(jìn)行正確地播放。如果播放器不合法,那么內(nèi)容代碼和/或本地代碼可停止重放、報(bào)告錯(cuò)誤、要求額外的鑒別、要求播放器升級、拒絕對電影的末尾解碼、禁用附送特征、以降低的分辨率播放或以反映與重放環(huán)境相關(guān)聯(lián)的更高風(fēng)險(xiǎn)的其它方式回應(yīng)。UINT32TRAP_VendorSpecific(UINT32select,...);此運(yùn)算用以允許播放器制造者增加對其自己的安全性和非安全性操作的支持。舉例來說(且無限制),某些實(shí)施例可提供文件訪問(打開、讀取、寫入、搜索、關(guān)閉、設(shè)置屬性,等等)、對銷售商專用的安全操作的訪問(諸如可在主要密碼能力遭破壞的情形下充當(dāng)備份的非標(biāo)準(zhǔn)密碼支持、輔助密碼轉(zhuǎn)換、硬件視頻解碼電路中的安全特征,等等)、對經(jīng)由TRAP_DeviceAccess不可利用的特殊能力(三維顯示、氣味輸出、操縱桿振動,等等)的訪問、對原始幀緩沖器內(nèi)容的訪問,等等。集成的安全服務(wù)示范性實(shí)施例可允許發(fā)證實(shí)體(或其它實(shí)體)向內(nèi)容作者提供一套集成的安全服務(wù)。雖然安全服務(wù)可由內(nèi)容所有者自己提供,但是將這些能力外包給第三方可減少內(nèi)容所有者參與該過程的需要,同時(shí)(例如)通過使一個(gè)安全提供者能夠服務(wù)于多個(gè)內(nèi)容所有者而允許了規(guī)模經(jīng)濟(jì)效益。無論安全服務(wù)是由單一實(shí)體還是由多個(gè)實(shí)體提供,相關(guān)任務(wù)可包括(無限制)●開發(fā)安全代碼或服務(wù),其將視聽內(nèi)容與安全反措施、解密邏輯、取證標(biāo)記嵌入功能性、撤銷策略的實(shí)施、與非易失性存儲能力的結(jié)合、和與非安全特征用戶界面的結(jié)合相組合;●使用自動搜索工具和/或手動過程來查找經(jīng)由計(jì)算機(jī)網(wǎng)絡(luò)和其它分發(fā)渠道可利用的潛在盜版材料,手動和/或自動檢查并分析盜版拷貝以恢復(fù)嵌入于取證標(biāo)記中的信息,接著使用已恢復(fù)的信息搜集關(guān)于盜版者的裝置或方法的信息;●收集、存檔并分析關(guān)于盜版的其它信息,例如通過分析盜版軟件/裝置和盜版者之間(例如,在在線聊天室中)的討論;●使用收集的信息來幫助減少盜版,包括(無限制)撤銷盜版者裝置、制定針對盜版者攻擊的反措施、協(xié)助對有嫌疑的盜版者的起訴,等等;●管理密鑰、播放器和其它組件的撤銷列表,諸如懷疑為已泄漏的、不安全的、涉及盜版的或原本不應(yīng)當(dāng)用于解密內(nèi)容的密鑰、播放器和其它組件。所述列表可用電子方法管理且包括(無限制)與每一項(xiàng)的狀態(tài)相關(guān)聯(lián)的多個(gè)參數(shù),以使得可定制撤銷數(shù)據(jù)以滿足與個(gè)別主題、過程等等相關(guān)聯(lián)的風(fēng)險(xiǎn)輪廓;●產(chǎn)生或獲取用于塊解密運(yùn)算(諸如TRAP_Aes)的輸入/輸出,例如用于編輯內(nèi)容使得其僅可由未撤銷的裝置解密;●開發(fā)或管理攻擊的反措施,包括針對特定播放器的攻擊的反措施。舉例來說,在播放器制造商必須開發(fā)并數(shù)字簽名基于本地代碼的安全反措施的格局中,所述服務(wù)可包括(無限制)識別要求所述反措施的情形、向制造商提供關(guān)于風(fēng)險(xiǎn)的信息、輔助反措施開發(fā)、提供對反措施的測試(包括安全測試和兼容性測試)、開發(fā)由內(nèi)容用于識別每一反措施應(yīng)當(dāng)被使用的重放環(huán)境的代碼或策略、使反措施代碼與其它解密過程和其它安全特征結(jié)合(例如,用以防止反措施被略過或繞過)和組合媒體上的來自多個(gè)單獨(dú)的播放器類型/制造者的反措施;●管理與非易失性存儲器插槽相關(guān)聯(lián)的數(shù)據(jù),包括密鑰、代碼、標(biāo)識符、安全策略和其它屬性;●配合在線的或其它基于網(wǎng)絡(luò)的或交互式的組件操作或與之結(jié)合(例如,用于在解碼涉及一個(gè)或一個(gè)以上具有不可靠的安全性的裝置或環(huán)境時(shí)提供增強(qiáng)的用戶或播放器鑒別步驟);●對完成的媒體執(zhí)行質(zhì)量控制;●將內(nèi)容與特殊的營銷特征、用戶特征、存在于個(gè)別平臺上的非標(biāo)準(zhǔn)特征等等結(jié)合;●執(zhí)行播放器兼容性測試;●開發(fā)代碼并與之結(jié)合,所述代碼用于檢測具有問題(包括(無限制性)菜單程序錯(cuò)誤、編碼譯碼器限制、顯示器限制、非工作特征、可改正的安全性缺陷等等)的播放器并運(yùn)用適當(dāng)?shù)慕鉀Q方案(其可包括避免受影響的操作、使用未受影響的簡化特征、安裝播放器修補(bǔ)程序和執(zhí)行本地代碼來處理所述問題);●與復(fù)制器(replicator)結(jié)合以確保用適當(dāng)?shù)拇a和數(shù)據(jù)正確地制造媒體,從而實(shí)現(xiàn)上文所描述的特征;和/或●提供任何方式的其它任務(wù)以輔助內(nèi)容所有者、播放器開發(fā)者、用戶、執(zhí)法者或其它方。取證標(biāo)記嵌入和恢復(fù)技術(shù)為獲得針對相對較大規(guī)模的共謀攻擊(意即,盜版者組合來自多個(gè)解碼裝置的解碼輸出的攻擊,通常意圖是清除原本可用于識別并撤銷共謀裝置的取證標(biāo)記)的最大可能的安全性,具有在輸出中引入相對較大數(shù)量的變化的能力一般為有利的。為完全的MPEG-2視頻GOP存儲完全單獨(dú)的版本當(dāng)然是可能的,盡管如果必須存儲大量替代視頻序列(諸如電影中的幾百萬個(gè)替代),存儲要求會高得令人無法接受。為適應(yīng)所述情形,最小化所需存儲空間的量是有利的。盡管取證標(biāo)記所需的具體要求和屬性取決于情形而變化,但是理想的屬性通常包括底層的變化被緊湊地表現(xiàn)出來(意謂為編碼變化要求較小的存儲空間或帶寬)、耐久(意謂所述變化可從質(zhì)量降低的拷貝恢復(fù),諸如通過使用消費(fèi)性可攜式攝像機(jī)從電視屏幕記錄而制造的拷貝)、似是而非(意謂無法通過檢查輸出而自動地識別和去除其)和其為藝術(shù)上可接受的(意謂變化不會過度降低內(nèi)容的質(zhì)量或?qū)?nèi)容的體驗(yàn))。這些要求可變化(例如,在主題、內(nèi)容作者的要求、重放環(huán)境特征等等之間)。對于支持取證標(biāo)記的示范性光學(xué)視頻光盤來說,內(nèi)容作者查找或產(chǎn)生可應(yīng)用于壓縮的視頻的多個(gè)替代(或其它修改)。這些替代被識別為視頻壓縮過程的部分,其中對所述視頻壓縮過程進(jìn)行修改以識別潛在的變化、接著根據(jù)多個(gè)標(biāo)準(zhǔn)(例如,存儲大小、耐久性、似真性、藝術(shù)可接受性,等等)評價(jià)其適用性。如果變化為適合的,那么將其作為適合的變化輸出。舉例來說,可對壓縮邏輯進(jìn)行配置以識別變化單一位(或單一字節(jié)、單一字、單一區(qū)塊,等等)的值會產(chǎn)生適合的替代視頻序列的位置。在一替代實(shí)施例中,可使用常規(guī)壓縮算法,且可作為一后壓縮步驟產(chǎn)生并驗(yàn)證替代。舉例來說,可使用自動化軟件來(a)識別對視頻流的候選修改,例如通過使用(偽)隨機(jī)數(shù)生成器來選擇壓縮視頻的任意字節(jié)和該字節(jié)的新值;(b)執(zhí)行視頻的試驗(yàn)解壓縮,且如果流被變化變得無效,那么將候選修改作為無效的而拒絕;和(c)將試驗(yàn)解壓縮的輸出與對原始流解壓縮的結(jié)果比較,且如果差別不滿足所述要求,那么拒絕候選修改。舉例來說,步驟(c)可拒絕過小的修改(意即,不夠耐久的)或過大的修改(意即,并非似是而非的和/或藝術(shù)上可接受的)。可執(zhí)行額外的測試以檢驗(yàn)修改彼此將不交互作用(例如,在某些情形下,如果單獨(dú)應(yīng)用修改,那么其可為可接受的;如果同時(shí)應(yīng)用修改,那么其可為不可接受的)。保存通過測試的修改。當(dāng)編輯使用取證標(biāo)記的示范性媒體時(shí),準(zhǔn)備初始壓縮視頻數(shù)據(jù)流。此數(shù)據(jù)由視情形已應(yīng)用了某些修改的主壓縮視頻組成(其視情形可包括某些替代或破壞視頻的其它修改)。準(zhǔn)備識別對視頻的有效修改的數(shù)據(jù)結(jié)構(gòu)(例如,應(yīng)用先前已識別但未應(yīng)用的修改或解除已應(yīng)用的修改),包括對于使視頻可播放為強(qiáng)制性的任何修改。替代可為非常緊湊的(例如,在MPEGGOP中的24-位字節(jié)偏移及8-位替代值可用4字節(jié)表示),從而使得能夠在僅僅幾兆字節(jié)的數(shù)據(jù)中定義差不多數(shù)百萬的改變。內(nèi)容作者接著準(zhǔn)備程序邏輯以基于重放環(huán)境特征而選擇并應(yīng)用變化。應(yīng)當(dāng)對此程序邏輯進(jìn)行配置以對視頻序列應(yīng)用改變,其中所應(yīng)用的改變的組合通常是基于對取證用途有用的信息(諸如序號、密碼地識別裝置的值、型號/制造商信息、關(guān)于連接的裝置的信息,等等)。另外,應(yīng)當(dāng)可對程序邏輯進(jìn)行配置以應(yīng)用產(chǎn)生有效視頻流所需的任何改變(至少在操作于可接受的重放環(huán)境中時(shí))。(具有“強(qiáng)制的”改變可適用于幫助挫敗盜版者試圖禁用應(yīng)用所述改變的內(nèi)容代碼部分的攻擊)。內(nèi)容代碼邏輯可包括密碼學(xué)的使用,例如僅在應(yīng)當(dāng)應(yīng)用那些替代的播放器上使用播放器密鑰來對替代集解密。類似地,內(nèi)容代碼可包括錯(cuò)誤校正碼的使用(例如)以使得恢復(fù)已標(biāo)記視頻的一方在即使標(biāo)記恢復(fù)不可靠時(shí)(例如,歸因于攻擊或質(zhì)量降低)也能夠恢復(fù)播放器信息。嵌入的值可包括數(shù)字簽名、MAC或鑒別嵌入的信息的其它值,使得恢復(fù)標(biāo)記的一方能夠?qū)σ鸦謴?fù)信息的有效性有信心。當(dāng)恢復(fù)盜版拷貝時(shí),內(nèi)容作者可分析拷貝以識別存在的變化。雖然此分析可手動進(jìn)行(例如,通過將盜版視頻的幀與在每一位置處的每一可能的變體相比較,接著將變化的列表映射回到重放環(huán)境特征),但是為了更高的效率和使得能夠分析具有更高復(fù)雜性的標(biāo)記,此分析過程可為自動的。示范性自動取證標(biāo)記分析系統(tǒng)使用具有定制的軟件的計(jì)算機(jī)而實(shí)施。分析軟件以原始的壓縮視頻、修改的列表和已恢復(fù)的盜版視頻的數(shù)字表示而開始。接著,分析軟件使原始視頻中的幀與盜版視頻中的幀匹配,并識別盜版視頻的與原始視頻(和/或已應(yīng)用了修改的原始視頻)的對應(yīng)幀最接近地匹配的幀的轉(zhuǎn)換(旋轉(zhuǎn)、縮放、彎曲、色移、亮度調(diào)整、時(shí)移,等等)。分析軟件接著比照原始視頻的每一變體的對應(yīng)部分來比較盜版視頻的幀(或幀的部分、或幀的集合,等等)。軟件接著基于指示已恢復(fù)的視頻與每一變體匹配的接近程度的相似性/差別來計(jì)算一得分。此得分可(例如)使用(已轉(zhuǎn)換的)盜版視頻圖像與原始視頻的變體之間的最小平方差而計(jì)算。在計(jì)算得分時(shí),可忽略未受改變影響的區(qū)域,且對于諸如交錯(cuò)、幀間模糊等等的失真可進(jìn)行進(jìn)一步的調(diào)整。圖像分析軟件也可提供“手動模式”用戶界面,所述“手動模式”用戶界面允許操作者在原始視頻的變體(具有可選擇的放大和突出顯示以輔助視覺上定位變化)旁邊觀看盜版視頻的幀(具有或不具有調(diào)整的轉(zhuǎn)換);且提供用戶界面選項(xiàng)以允許操作者選擇哪一變化存在于盜版視頻中(或指示變化為未知的)、前移和后移每一視頻源中的幀、快速前進(jìn)到下一變化和保存當(dāng)前程序狀態(tài)。圖像分析過程的輸出(無論是手動執(zhí)行還是自動執(zhí)行)為分配給可存在于視頻中的可能變化的相對得分的列表。(其簡化形式為輸出僅僅識別每一變體的最可能的選項(xiàng))。自動和/或手動過程接著用于將已恢復(fù)的變化數(shù)據(jù)轉(zhuǎn)換成關(guān)于重放環(huán)境的信息。舉例來說,如果標(biāo)記嵌入最初是基于應(yīng)用于播放器序號的錯(cuò)誤校正碼的輸出,那么可使恢復(fù)的選擇值轉(zhuǎn)換成一適當(dāng)解碼過程的輸入,所述解碼過程將恢復(fù)序號(假定錯(cuò)誤的數(shù)目不是過多的)。類似地,如果選擇過程使用以序號的一部分為種子的偽隨機(jī)數(shù)生成器(PRNG)而執(zhí)行,那么分析過程可涉及將使用每一可能的種子值的PRNG輸出與對盜版視頻的觀測結(jié)果相關(guān)聯(lián)。變化也可使用除修改壓縮視頻流以外的其它手段而嵌入于內(nèi)容中。舉例來說,內(nèi)容代碼可通過控制播放器將圖像重疊于已解碼的視頻上而引入修改。舉例來說,取證標(biāo)記可通過在MPEG-2解碼視頻上繪制一個(gè)或一個(gè)以上半透明的重疊幀(或類似地,通過使內(nèi)容代碼直接或間接地修改輸出幀緩沖區(qū))而嵌入。重疊也可為高度可見的。舉例來說,陳述“ScreenerforFirstNameLastName’s.DoNotCopy.”的動態(tài)生成的移動半透明重疊可提供對盜版的公開的威懾,且可通過判定觀眾的名稱(例如,從光盤的燒錄區(qū)、從NVRAM插槽、從服務(wù)器,等等)并顯示適當(dāng)?shù)闹丿B而產(chǎn)生。重疊也可用于(例如)通過在(有意地)有缺陷的部分上繪制來改正或修改未壓縮的視頻。因?yàn)楸硎居糜诶L制重疊的代碼所需的數(shù)據(jù)量可非常少,所以對于媒體上的存儲空間來說重疊可為非常有效率的?;谥丿B的標(biāo)記使產(chǎn)生具有大量變體的視頻部分變得有效率(,可容易地使單一視頻幀的較小部分唯一地識別播放器,例如,通過簡單地將播放器序號的表示重疊在那個(gè)區(qū)域中)?;谥丿B的標(biāo)記也可簡化制造標(biāo)記過程,所述標(biāo)記變化廣泛,因?yàn)?例如)當(dāng)可能顯示微弱的半透明重疊圖像時(shí)對于屏幕位置(x,y)和時(shí)間可存在很多選項(xiàng)。這些特征可尤其有助于在盜版者設(shè)法通過組合來自多個(gè)播放器的輸出而隱藏其拷貝的來源的情形下識別裝置。取證標(biāo)記也可嵌入于包括(無限制)音頻、靜態(tài)圖像、控制數(shù)據(jù)、媒體寫入模式等等的其它數(shù)據(jù)中。媒體和內(nèi)容鑒別當(dāng)插入媒體和/或其后載入數(shù)據(jù)時(shí),內(nèi)容代碼和/或播放器可密碼地鑒別媒體。在一示范性實(shí)施例中,使用散列樹對媒體的所有或某些個(gè)別數(shù)據(jù)部分(例如,扇區(qū))進(jìn)行數(shù)字簽名。根散列由監(jiān)督格式的實(shí)體(或另一受信實(shí)體)數(shù)字簽名并置于媒體上。根散列簽名也可識別復(fù)制和/或制作設(shè)施、版權(quán)所有者、發(fā)布日期、描述得到授權(quán)(或未得到授權(quán))訪問媒體的播放器裝置的標(biāo)準(zhǔn)和其它所述信息。當(dāng)數(shù)據(jù)區(qū)塊(例如,扇區(qū)、GOP、軌道、文件,等等)從媒體載入時(shí)(或其后),其可由驅(qū)動器、內(nèi)容代碼、播放器應(yīng)用程序和/或其它播放器裝置/部分通過使載入數(shù)據(jù)與適當(dāng)?shù)闹虚g散列值組合以重新產(chǎn)生根散列而驗(yàn)證??稍跈z驗(yàn)媒體簽名后緩存根散列的值,使得無需為每一讀取重復(fù)(相對較慢的)公開密鑰簽名檢驗(yàn)步驟。類似地,中間散列值可與數(shù)據(jù)區(qū)塊一起被存儲、緩存、視需要計(jì)算或從媒體檢索。媒體也可包含多個(gè)根散列或可使用其它鑒別方案(諸如通過檢驗(yàn)每一扇區(qū)、GOP或其它數(shù)據(jù)部分上的數(shù)字簽名)。為減少存儲開銷,可使用允許消息恢復(fù)的簽名和填補(bǔ)方案。數(shù)字簽名也可鑒別光盤內(nèi)容的部分,諸如包含于光盤上的啟動代碼或存儲于可寫入部分(或可重寫入)部分中的數(shù)據(jù),或所有數(shù)據(jù)。簽名(或其它密碼值或非密碼值)也可規(guī)定或限制可由特定的光盤或代碼部分執(zhí)行的運(yùn)算。舉例來說,數(shù)字簽名可由授權(quán)和允許內(nèi)容訪問特定的播放器特征或能力的發(fā)證機(jī)關(guān)所發(fā)布。所述授權(quán)可用于確保已支付許可費(fèi)或阻止未授權(quán)的盜版媒體的生產(chǎn)。在一示范性實(shí)施例中,希望大量生產(chǎn)包含電影的光盤的每一內(nèi)容作者(或其復(fù)制設(shè)施)將向發(fā)證實(shí)體提供識別待生產(chǎn)的光盤的信息。所述信息可包括(無限制)主題、合法版權(quán)持有者的身份、待授權(quán)的拷貝的數(shù)目、光盤內(nèi)容的至少一部分的散列、媒體序號、要求的所要能力和鑒別請求的數(shù)字簽名。作為回應(yīng),版權(quán)持有者將接收授權(quán)生產(chǎn)媒體的一個(gè)或一個(gè)以上數(shù)字簽名。發(fā)證實(shí)體也可接收并處理來自內(nèi)容作者(或其代理人)的支付以此方式,許可費(fèi)有可能直接與由內(nèi)容實(shí)際使用的具體能力(安全性或其他)相關(guān)。施加于內(nèi)容代碼的操作的限制也可基于非密碼旗標(biāo)(例如,與用于指示是否可復(fù)制廣播電視信號的廣播旗標(biāo)類似)。許可也可基于先前動作(例如,拒絕已訪問私人用戶信息的內(nèi)容代碼對網(wǎng)絡(luò)資源的訪問以確保維護(hù)用戶隱私、授予已獲取用戶的許可或已從遠(yuǎn)程服務(wù)器獲取鑒別的內(nèi)容代碼更大訪問權(quán),等等),且對于不同線程、內(nèi)容代碼部分等等可為不同的。數(shù)字簽名可與內(nèi)容一起分發(fā)或單獨(dú)地分發(fā),且可設(shè)置于媒體的任何部分上,且還可附有加密密鑰、用于導(dǎo)出解密密鑰的邏輯、安全策略信息,等等。舉例來說,在光學(xué)媒體的情形下,將數(shù)字簽名設(shè)置于對于每一光盤可單獨(dú)地寫入的媒體部分上可為有利的(從而提供已鑒別的唯一的光盤序號,例如用于配合媒體撤銷能力一起使用,以便清楚地規(guī)定哪些裝置應(yīng)當(dāng)能夠播放媒體,等等)。對于包含非易失性存儲器(EEPROM、閃存,等等)的媒體來說,可正常地存儲唯一性數(shù)據(jù),而其它媒體類型可要求其它技術(shù)。舉例來說,壓制的光學(xué)媒體可在燒錄區(qū)(BCA)中帶有數(shù)據(jù),其通常是使用高能量激光而寫入的。有意的缺陷或改變的模式也可被引入于媒體表面中且由播放器和/或內(nèi)容代碼讀取(例如,通過在錯(cuò)誤檢測和錯(cuò)誤校正被禁用的情況下直接處理所產(chǎn)生的讀取結(jié)果)。對于基于半導(dǎo)體的ROM來說,可使用熔絲和其它一次寫入特征。除簽名和證書以外,媒體唯一性區(qū)域可用于承載(無限制)定位信息、加密密鑰(例如,允許具體播放器對例如樣片(screener)、演示或希望用于受控分發(fā)的其它光盤的當(dāng)前或未來媒體解碼的密鑰;允許讀取、解密和/或?qū)懭氩シ牌鞣且资源鎯ζ鲾?shù)據(jù)的密鑰,等等)、未加密密鑰(例如,在壓制的媒體的生產(chǎn)后寫入以防止對由盜版者從復(fù)制設(shè)施竊取的媒體或數(shù)據(jù)進(jìn)行解碼)、識別信息(諸如接收者名稱,例如用于在重疊中顯示和用于取證標(biāo)記中)、營銷和促銷數(shù)據(jù)(例如,允許參與試用、抽獎(jiǎng)、在線服務(wù)等等的值)、電話號碼、數(shù)據(jù)網(wǎng)絡(luò)地址、可執(zhí)行代碼或可由內(nèi)容代碼和/或播放器使用的任何方式的其它密碼數(shù)據(jù)或非密碼數(shù)據(jù)。當(dāng)從光盤唯一性區(qū)域載入數(shù)據(jù)時(shí),驅(qū)動器可應(yīng)用單向轉(zhuǎn)換(例如,SHA散列、以由內(nèi)容代碼規(guī)定的值為鍵值的HMAC-SHA、RSA公開密鑰運(yùn)算,等等),使得其不輸出(例如,不輸出到應(yīng)用程序或內(nèi)容代碼)偽造光盤唯一性區(qū)域的內(nèi)容所需的信息。記錄裝置也可使用散列處理或其它密碼轉(zhuǎn)換以阻止盜版者使用從合法媒體提取的信息來制造精確的非法拷貝。媒體唯一性區(qū)域也可被預(yù)先記錄(例如,具有在空白的消費(fèi)者可記錄媒體上的序號)或由記錄裝置寫入(例如,具有記錄裝置的標(biāo)識符,其可經(jīng)數(shù)字簽名,其可由合法裝置檢驗(yàn)以確保記錄器未撤銷且可在恢復(fù)非法拷貝以識別和/或撤銷用于制造其的記錄裝置時(shí)使用)。對于支持媒體別和防偽技術(shù)的媒體格式來說(諸如調(diào)制凹區(qū)(modulatingpit)特征或擺動軌道內(nèi)容,如在第6,646,967號美國專利中所概述的),從這些特征導(dǎo)出的值也可由播放器讀取(或檢測)并由播放器和/或內(nèi)容代碼鑒別。在讀取所述物理特征后,驅(qū)動器可在輸出此值之前應(yīng)用單向密碼轉(zhuǎn)換,使得知道所轉(zhuǎn)換的特征的惡意方不能夠以可由未修改的驅(qū)動器接受的方式來偽造底層的特征。內(nèi)容代碼(和/或驅(qū)動器、播放器應(yīng)用程序或其它組件)可鑒別已轉(zhuǎn)換的特征(例如,通過檢驗(yàn)媒體帶有來自受信方的具有所述特征的值的簽名)。引導(dǎo)、安全分析和重放將描述具有示范性光盤的示范性播放器的實(shí)際操作,以將光盤插入驅(qū)動器中開始。通過從光盤載入并執(zhí)行代碼和/或數(shù)據(jù)的初始部分而首先引導(dǎo)解釋器。此初始部分可較小且較簡單,例如,其可簡單地通知用戶主題正在載入、接著開始將額外的代碼和數(shù)據(jù)從媒體載入到內(nèi)容的存儲器區(qū)域中。此代碼可接著載入額外的代碼(例如,其可檢查播放器類型、接著載入對于那個(gè)播放器類型為特定的代碼)。取決于播放器設(shè)計(jì)和媒體,可執(zhí)行任何數(shù)目的代碼載入檢查。播放器也可檢測插入的媒體缺少代碼(或運(yùn)行代碼所需的特征)的情形,且如果檢測到,那么播放器使用內(nèi)置于播放器中的能力來播放光盤。所述支持適用于(例如)允許從諸如DVD、CD、DVD音頻等等的舊式媒體格式進(jìn)行重放。示范性媒體接著使用播放器的密碼接口(例如,TRAP_Aes)以導(dǎo)出一個(gè)或一個(gè)以上主題專用的解密密鑰。對內(nèi)容代碼進(jìn)行配置使得只有未撤銷的播放器能夠?qū)С鲇行У慕饷苊荑€。(為完成此,內(nèi)容代碼可使用(無限制性)諸如廣播加密、密鑰-加密-密鑰、模糊軟件等等的技術(shù)。)這些解密密鑰可接著(例如)用于解密額外的加密代碼、視頻或其它數(shù)據(jù)。引導(dǎo)也可包括從媒體載入數(shù)據(jù)、視需要解壓縮數(shù)據(jù)和執(zhí)行任何方式的安全分析運(yùn)算(在以下子部分中更詳細(xì)地論述)。實(shí)際的重放接著通常包括重復(fù)地執(zhí)行多種步驟或檢查,其可包括(無限制)●處理事件。此可包括檢測并處理用戶界面事件(諸如按鍵、按壓遠(yuǎn)程控制按鈕、鼠標(biāo)移動、指針/光標(biāo)移動、選擇輸入,等等)和其它事件(例如,斷電請求/通知、硬件重新配置請求/通知、軟件改變請求/通知、錯(cuò)誤警告、媒體彈出請求/通知,等等)(參見TRAP_GetEvent。)用于處理一事件的適當(dāng)方法可取決于事件、主題、播放器屬性和重放過程的狀態(tài)(例如,當(dāng)顯示菜單時(shí)用于處理事件的邏輯可不同于當(dāng)播放視頻時(shí)使用的邏輯)舉例來說,某些事件可(無限制)通過切換到新的視頻流、改變播放器配置位、請求動作(例如,回應(yīng)彈出請求而調(diào)用“媒體彈出”TRAP)、更新菜單、改變(例如,動畫化、更新,等等)重疊圖形、將網(wǎng)絡(luò)連接起始/更新/等等、改變重放配置(重放速度,等等)、載入并運(yùn)行新的內(nèi)容代碼、跳轉(zhuǎn)到視頻流中的新的位置(其可要求改變/清空緩沖的媒體請求、清除數(shù)據(jù)緩沖的編碼譯碼器,等等)、終止重放、執(zhí)行安全檢查、顯示錯(cuò)誤等等而處理。某些事件也可要求內(nèi)容代碼檢查所請求的操作是得到授權(quán)的。不能夠立即執(zhí)行的操作可被緩沖直至其可執(zhí)行。也可忽略某些事件?!窆芾砻襟w接口。在一示范性實(shí)施中,處理例行程序的媒體負(fù)責(zé)確保有可用于視頻和音頻編碼譯碼器和其它用途的穩(wěn)定的數(shù)據(jù)供應(yīng)。舉例來說,如果媒體為光盤,那么內(nèi)容代碼可檢查驅(qū)動器的狀態(tài)、檢索已成功讀取的數(shù)據(jù)、提交新的讀取請求、清除不再需要的讀取請求、為預(yù)讀(read-ahead)能力或高速緩沖存儲器提供提示(例如,載入視頻中的即將到來的分支的每一可能的分叉中的數(shù)據(jù)以確保不間斷的重放)、規(guī)定數(shù)據(jù)應(yīng)載入內(nèi)容代碼的存儲器區(qū)域中的何處(或其它地方,例如編碼譯碼器、幀緩沖器、解密模塊,等等)、檢查錯(cuò)誤、控制應(yīng)當(dāng)如何處理錯(cuò)誤、規(guī)定驅(qū)動器或其它組件的密碼編譯密鑰、提供與驅(qū)動器讀取/寫入請求相結(jié)合的別信息、規(guī)定解碼參數(shù)(諸如錯(cuò)誤校正信息、密鑰、扇區(qū)地址映射、讀取頭深度/焦距/等等、文件訪問特權(quán)、等等)、等等?!癜踩蕴幚泶诉壿嬁蓤?zhí)行任何額外需要的解密或處理步驟,諸如導(dǎo)出密鑰、鑒別載入數(shù)據(jù)(例如,使用MAC、散列樹、數(shù)字簽名,等等)和運(yùn)行可執(zhí)行的部分(例如,與音頻或視頻的特定部分相關(guān)聯(lián)的安全性代碼)。此步驟也可包括嵌入取證標(biāo)記(例如,通過選擇輸出載入數(shù)據(jù)的哪些部分、對數(shù)據(jù)進(jìn)行修改,等等)。在一示范性實(shí)施例中,此運(yùn)算包括導(dǎo)出MPEGGOP的密鑰、對GOP的數(shù)據(jù)執(zhí)行AES解密運(yùn)算和使用內(nèi)容代碼在解密前/后進(jìn)行預(yù)處理和后處理(重排序數(shù)據(jù)、區(qū)塊XOR、替代、字節(jié)修改,等等)以確保對區(qū)塊AES密鑰本身的了解不會允許盜版者解密光盤的內(nèi)容?!駥?shù)據(jù)傳送到編碼譯碼器。此代碼也可檢測并處理錯(cuò)誤條件,諸如由于從媒體需要的數(shù)據(jù)不可利用而無法避免編碼譯碼器缺乏數(shù)據(jù)(codecstarvation)的情形。此代碼還可檢測編碼譯碼器狀態(tài)以確保編碼譯碼器緩沖區(qū)不溢出或下溢,且確保媒體接口代碼正載入正確的數(shù)據(jù)?!裉幚碇丿B和特殊特征。此邏輯負(fù)責(zé)繪制和去除菜單、重疊、字幕和類似的特征。其還處理畫中畫視頻和某些種類的取證標(biāo)記(諸如使用重疊而繪制的取證標(biāo)記)。特殊的情形(諸如游戲/字謎、菜單、菜單選擇的處理、隱藏的“復(fù)活節(jié)彩蛋”、等等)可要求特殊的代碼。如果提供多線程解釋器(諸如Java虛擬機(jī)),那么單獨(dú)的線程可用于不同運(yùn)算(管理事件、重疊、視頻、等等),且解釋器對在線程和/或共享的存儲器區(qū)域之間傳遞的消息的支持可用于線程之間的同步和控制。類似地,狀態(tài)校驗(yàn)和消息傳遞可用于確保解釋器與其它組件同步。播放器也可提供用于各種操作的默認(rèn)處理器(例如)以改進(jìn)用戶界面一致性、減少內(nèi)容編輯努力、增加性能,等等。在完成之后(諸如用戶按壓播放器上的彈出按鈕的情形),可通知內(nèi)容代碼正在進(jìn)行關(guān)閉。內(nèi)容代碼接著可通知遠(yuǎn)程裝置、清理其內(nèi)部狀態(tài)(例如,完成任何所需的非易失性存儲器寫入,等等)并退出。如果內(nèi)容代碼在預(yù)定的一段時(shí)間內(nèi)(例如,5秒)未退出,那么播放器裝置終止內(nèi)容代碼并彈出媒體。安全分析運(yùn)算內(nèi)容代碼可分析重放環(huán)境以尋找安全問題。此過程通常包括獲取并處理關(guān)于播放器和重放環(huán)境的其它部分的信息。此信息可包括用于播放器或內(nèi)容代碼可檢驗(yàn)的其它組件的數(shù)字簽名和/或密碼證書。從播放器獲取的此信息描述播放器和重放環(huán)境的特征(或據(jù)稱的特征)。某些特征(諸如特定TRAP的存在)被直接報(bào)告。其它特征可間接推斷,例如,播放器中的密碼編譯密鑰的具體組合可由播放器的序號部分地或完全地判定。偽裝為合法播放器但沒有正確的密碼編譯密鑰的播放器由于其不能夠執(zhí)行使用其沒有的密鑰的密碼運(yùn)算(解密、簽名,等等),因而可被“捉住”。類似地,其它不一致性可用于識別問題。安全分析過程可涉及于多種與重放相關(guān)的過程中,包括導(dǎo)出用于壓縮視頻、代碼、音頻和/或其它數(shù)據(jù)的密鑰。舉例來說,如果特定類型的合法播放器支持運(yùn)行本地代碼(運(yùn)行于機(jī)器中的本地處理器上的代碼,與運(yùn)行于標(biāo)準(zhǔn)的解釋器/虛擬機(jī)中的代碼相對)的能力和/或支持未記錄的對播放器類型為特定的計(jì)算,那么內(nèi)容可使用這些能力來鑒別播放器類型。如果內(nèi)容發(fā)現(xiàn)其運(yùn)行于聲稱為特定的型號但不能夠正確地執(zhí)行由那種型號所支持的操作的播放器上,那么內(nèi)容可合理地推斷出其運(yùn)行于一(例如)使用從一遭惡意泄漏的此類型播放器所提取的密鑰而偽裝為此播放器類型的裝置上。安全檢查可涉及分析組件或?qū)傩缘娜魏谓M合。舉例來說,媒體、媒體驅(qū)動器和硬件組件的特征可用于檢測偽造播放器出售于預(yù)先記錄的或“壓制”的媒體上的內(nèi)容可查詢驅(qū)動器以判定其是否運(yùn)行于消費(fèi)者可記錄媒體上,且如果是,那么其拒絕播放,因?yàn)榇私^對不應(yīng)當(dāng)發(fā)生。如果特定的主題在某些情形下(例如,如果已完成支付)允許記錄到消費(fèi)者可記錄的媒體,那么內(nèi)容僅在存有(例如)明確地授權(quán)從具有特定的序號和/或帶有特定記錄裝置的標(biāo)識符的媒體重放的有效數(shù)字簽名(由內(nèi)容所有者的授權(quán)代表發(fā)布)的情況下,才可允許從消費(fèi)者可記錄的媒體重放。可對輸出裝置、裝置驅(qū)動程序和其它重放組件(包括將(或可能)接收內(nèi)容者)執(zhí)行安全檢查。此能力尤其適用于處理內(nèi)容可能是使用惡意或泄漏的輸出裝置所記錄的情形。輸出裝置的檢驗(yàn)操作僅由裝置的能力所限制。舉例來說,輸出裝置檢驗(yàn)可包括(無限制)將本地代碼發(fā)送到輸入或輸出裝置(例如,用以檢測安全性問題、修正程序錯(cuò)誤,等等)、執(zhí)行與其它裝置的密碼“握手”、比照承載于媒體上的撤銷列表來測試裝置的密鑰,等等。輸出裝置也可請求播放器的檢驗(yàn),在此情形下適當(dāng)?shù)臋z驗(yàn)可由該播放器、內(nèi)容代碼或這些(或其它組件)的組合來提供。如果多個(gè)輸出裝置連接成串(例如,播放器裝置可將數(shù)字音頻發(fā)送到混頻器,混頻器將數(shù)字音頻提供到放大器,放大器接著將模擬輸出提供到揚(yáng)聲器),那么每一裝置可向播放器提供關(guān)于其計(jì)劃怎樣處理內(nèi)容的信息,并允許始發(fā)(或其它)裝置將消息傳遞到隨后的裝置。以此方式,內(nèi)容代碼可鑒別重放過程中涉及的任意一長串裝置(或裝置網(wǎng)絡(luò))中的每一裝置。如果檢測到非受信裝置(或諸如記錄裝置的未授權(quán)的裝置),那么內(nèi)容代碼可確保作出適當(dāng)?shù)幕貞?yīng)(包括(無限制性)拒絕播放、拒絕輸出到非受信裝置、控制中間裝置不發(fā)送內(nèi)容到非受信裝置、重新配置非受信裝置以改正問題、降低輸出質(zhì)量、執(zhí)行額外的安全鑒別步驟等等)。如果存在與因特網(wǎng)的連接或另一數(shù)據(jù)連接,那么安全檢查可包括從遠(yuǎn)程網(wǎng)站下載額外的與安全相關(guān)的信息。類似地,遠(yuǎn)程裝置和本地存儲裝置(例如,NVRAM)也可用于獲取有用的信息,諸如最新的證書撤銷表格或比媒體上的代碼更新的數(shù)字簽名的安全代碼。雖然安全檢查通常在重放之前執(zhí)行,但是內(nèi)容代碼可在任何時(shí)候執(zhí)行安全檢查。對于可重新配置的重放環(huán)境,或在可利用其它新的與安全相關(guān)的信息的情形下,周期性或經(jīng)常地執(zhí)行額外的安全檢查可為有利的。如果檢測到重大的改變,那么內(nèi)容代碼可終止重放或暫停重放直至可重新建立對重放環(huán)境的信心??墒褂帽砀窕驔Q策樹以迅速地選擇在特定播放器屬性的情形下哪一安全分析代碼(如果有的話)是適當(dāng)?shù)?。不適用于當(dāng)前播放器的安全代碼無需運(yùn)行(或甚至無需從媒體載入),從而防止任何不必要的性能影響且防止可由在不支持某安全代碼的播放器上運(yùn)行該安全代碼而導(dǎo)致的兼容性問題如前文所描述的,安全檢查可與密碼編譯密鑰導(dǎo)出運(yùn)算結(jié)合(例如,在要求特定安全檢查的裝置必須實(shí)際執(zhí)行檢查以正確地導(dǎo)出所需的密鑰而不要求安全檢查的裝置能夠直接獲取密鑰的情形下)。示范性密鑰管理一示范性播放器由其制造商用唯一的密鑰組合來初始化。這些密鑰從由控制媒體格式的實(shí)體所授權(quán)的密鑰管理機(jī)關(guān)獲取。密鑰管理機(jī)關(guān)接收來自授權(quán)的制造商的請求、驗(yàn)證請求、提供播放器密鑰集并接收對密鑰的支付(和對應(yīng)的許可費(fèi))。示范性播放器的密鑰集由從最高級別256-位AES密鑰(僅為密鑰管理機(jī)關(guān)所知)導(dǎo)出的128個(gè)各為128位的AES密鑰、一32-位群組ID(識別播放器的制造商)和一32-位裝置ID(識別播放器的序號)組成。群組標(biāo)識符和裝置標(biāo)識符共同唯一地識別播放器且表示于播放器的數(shù)字證書中。在示范性實(shí)施例中,密鑰集內(nèi)的128個(gè)密鑰(密鑰ID值從0到127)的每一個(gè)由密鑰管理機(jī)關(guān)通過首先從密鑰ID、群組ID和/或裝置ID計(jì)算密鑰選擇區(qū)塊而導(dǎo)出。接著(如果需要)填補(bǔ)密鑰選擇區(qū)塊并使用最高級別的密鑰加密。可對所得的值進(jìn)行后處理(例如,舍位),從而產(chǎn)生實(shí)際的密鑰。用于從規(guī)定的參數(shù)導(dǎo)出密鑰選擇區(qū)塊的方法取決于密鑰ID。以下表格說明可用于將密鑰ID、群組ID和裝置ID轉(zhuǎn)換成密鑰選擇區(qū)塊的示范性規(guī)則。密鑰ID按照密鑰ID列出的密鑰選擇區(qū)塊的內(nèi)容0...31群組ID||(裝置ID>>密鑰ID)32..63(群組ID>>(密鑰ID-32))||0x0000000064..79KeySelector(群組ID,裝置ID,15,8)80..83KeySelector(群組ID,裝置ID,16,8)84KeySelector(群組ID,裝置ID,17,9)85KeySelector(群組ID,裝置ID,18,9)86KeySelector(群組ID,裝置ID,19,10)87KeySelector(群組ID,裝置ID,20,10)88KeySelector(群組ID,裝置ID,21,11)89KeySelector(群組ID,裝置ID,22,11)90KeySelector(群組ID,裝置ID,23,12)91KeySelector(群組ID,裝置ID,24,12)92KeySelector(群組ID,裝置ID,25,13)93KeySelector(群組ID,裝置ID,26,13)94KeySelector(群組ID,裝置ID,27,14)95KeySelector(群組ID,裝置ID,28,14)96KevSelector(群組ID,裝置ID,29,15)97KeySelector(群組ID,裝置ID,30,15)98KeySelector(群組ID,裝置ID,31,16)99KeySelector(群組ID,裝置ID,32,16)1000x00000000||裝置ID101..127群組ID||裝置ID將密鑰分配到偽隨機(jī)裝置子集(根據(jù)其群組ID和裝置ID)的示范性函數(shù)KeySelector(群組ID,裝置ID,g,d)為LethashequalthebytesoftheSHAhashof密鑰ID||群組ID.LetAND_MASK=(1<<g)-1.Fori=0uptod-1Letn=hash[i]mod(g-i).ClearthenthsetbitinAND_MASK.EndFor.LetXOR_MASK=hash[16..19]AND(AND_MASKXOR((1<<g)-1)).ComputedeviceHashastheSHAhashof密鑰ID||群組ID||裝置ID.Return0x00000000||((deviceHash[16..19]ANDAND_MASK)XORXOR_MASK).注意“||”表示串聯(lián)?!?x”表示以下為32-位十六進(jìn)制值?!埃迹肌北硎咀笠莆贿\(yùn)算?!?”表示減法?!癆ND”表示逐位邏輯與?!癤OR”表示逐位邏輯異或。應(yīng)注意,包括不同種類的密鑰。舉例來說,密鑰0和密鑰101到127將被唯一地分配到裝置。相反,密鑰1到31將在相同群組中的越來越大的裝置集合中共享。密鑰32到63在多個(gè)群組之間共享。最后,密鑰64到99在裝置的各種(在此情形下為偽隨機(jī)的)子集之間共享。密鑰100由跨越不同群組的具有相同裝置ID的裝置共享。充分地保護(hù)裝置密鑰是重要的。舉例來說,將裝置的實(shí)際密鑰設(shè)置于媒體上有在主題的安全被破壞的情況下泄漏播放器的密鑰的風(fēng)險(xiǎn)。類似地,在內(nèi)容出版商的安全遭破壞的情形下,將裝置密鑰提供給內(nèi)容出版商可將密鑰置于風(fēng)險(xiǎn)中。為應(yīng)付這些風(fēng)險(xiǎn),本發(fā)明并不要求準(zhǔn)備并加密內(nèi)容的實(shí)體為受信的。舉例來說,密鑰管理機(jī)關(guān)可提供一服務(wù),任何一方可借以識別播放器密鑰的集合和一個(gè)或一個(gè)以上輸入值。作為回應(yīng),機(jī)關(guān)可提供以每一已識別的密鑰對規(guī)定的輸入解密(或加密)的結(jié)果?;蛘撸瑑?nèi)容出版商可提供其選擇的明文/密文對。在任一情形下,編輯內(nèi)容的各方可獲取明文/密文對,但不可獲取密鑰本身這些對接著可用于安全媒體的生產(chǎn)。示范性媒體的生產(chǎn)包括以下步驟(a)內(nèi)容出版商定義任何已撤銷的播放器都不知道的播放器密鑰的集合,但每一有效的播放器包含所述集合中的至少一密鑰;(b)內(nèi)容出版商選擇任意的明文值;(c)內(nèi)容出版商將所要的明文值連同所選定集合中密鑰的識別信息一起安全地傳輸?shù)矫荑€管理機(jī)關(guān);(d)密鑰管理機(jī)關(guān)檢驗(yàn)明文值先前并未由另一方提交;(e)密鑰管理機(jī)關(guān)導(dǎo)出所請求的集合中的每一播放器密鑰并使用每一密鑰對明文值加密;(f)密鑰管理機(jī)關(guān)向內(nèi)容出版商提供所得的密文;(g)內(nèi)容出版商對具有明文值的內(nèi)容(或某些代碼、密鑰或其它數(shù)據(jù))的一部分加密;和(h)內(nèi)容出版商將已加密的內(nèi)容與密文列表和對應(yīng)的代碼存儲于媒體上,所述代碼經(jīng)配置以識別運(yùn)行代碼的播放器是否包含所述集合中的任何密鑰;且如果包含判定播放器中的密鑰ID、在密文列表中查找對應(yīng)于密鑰ID的密文、和解密已加密的內(nèi)容部分,(例如)通過以加密的內(nèi)容部分作為源數(shù)據(jù)、以密文作為密鑰參數(shù)、以及選定的密鑰ID值來調(diào)用TRAP_Aes。接著內(nèi)容代碼可向編碼譯碼器提供解密的結(jié)果或以其它方式適當(dāng)?shù)厥褂脭?shù)據(jù)。替代實(shí)施例可(無限制性)使用多個(gè)級別的解密運(yùn)算、使密碼結(jié)果與取證標(biāo)記和其它運(yùn)算結(jié)合、使用多個(gè)密鑰機(jī)關(guān)和使用安全代碼或其它過程以進(jìn)一步保護(hù)或處理值(密鑰、明文、密文,等等),等等。如果使用公開密鑰密碼學(xué),那么密鑰管理機(jī)關(guān)可提供(或公開)播放器的公開密鑰(或.也可使用基于身份的密碼學(xué)以使密鑰列表不必要)。對于數(shù)字簽名密鑰,密鑰管理機(jī)關(guān)也可提供由內(nèi)容代碼使用的參考簽名(例如,消息/簽名對)。公開/私人密鑰可在裝置群組之間共享(例如,通過將諸如KeySelector的運(yùn)算作為用來生成密鑰對的強(qiáng)PRNG的種子來使用、隨機(jī)地生成和分配密鑰,等等)。當(dāng)然,上文的角色可在多方之間劃分。舉例來說,密鑰管理機(jī)關(guān)還可管理集中的撤銷列表,從而使內(nèi)容出版商不需要判定哪些密鑰有效和哪些無效。類似地,內(nèi)容出版商可將與安全相關(guān)的任務(wù)外包給其它方(包括密鑰管理機(jī)關(guān))。上文的用于導(dǎo)出播放器密鑰的示范性過程是確定的。其它實(shí)施例可涉及隨機(jī)地生成密鑰且可使用其它技術(shù)。用于導(dǎo)出密鑰的運(yùn)算(例如,AES加密)為示范性的且可使用其它運(yùn)算(諸如MAC、公開密鑰運(yùn)算、其它算法,等等)而替代。版本當(dāng)對內(nèi)容解碼時(shí),通常地要么(a)內(nèi)容會比播放器舊,要么(b)播放器會比內(nèi)容舊。在兩種情形下,假定播放器正確地實(shí)施所有的所需TRAP(包括任何必需的密碼編譯密鑰)且滿足由與內(nèi)容相關(guān)聯(lián)的代碼強(qiáng)制實(shí)施的安全規(guī)則,那么重放應(yīng)當(dāng)正常地發(fā)生。當(dāng)然,如果內(nèi)容代碼為不嚴(yán)謹(jǐn)?shù)貙懭耄绻シ牌饔腥毕莼蛉绻诰庉嫼笠殉霈F(xiàn)嚴(yán)重的安全性問題,那么重放可不自動工作。為處理內(nèi)容代碼未能在合法播放器上正確地播放的情形,內(nèi)容可(例如)經(jīng)編輯以檢查播放器來尋找針對特定光盤的安全覆蓋密鑰,且如果發(fā)現(xiàn),那么使用密鑰來對一個(gè)避開通常會執(zhí)行的一個(gè)或一個(gè)以上安全檢查或其它運(yùn)算的內(nèi)容代碼部分解密。此“避開”邏輯可采用加密的形式承載于媒體上,從而確保其不可被使用,除非確實(shí)已釋放解密密鑰。如果要求覆蓋,那么覆蓋密鑰可(例如)存儲于播放器的非易失性存儲器中(例如,以加密的形式)、經(jīng)由網(wǎng)絡(luò)而被檢索、經(jīng)由TRAP訪問,等等。不影響安全性的措施(諸如禁用具有顯示限制的播放器的圖形化菜單)可為用戶可配置的且不要求安全性鑒別。也可對內(nèi)容代碼進(jìn)行配置以使得用戶能夠應(yīng)付檢測到安全性失敗或風(fēng)險(xiǎn)的情形。舉例來說,如果調(diào)制解調(diào)器、因特網(wǎng)連接或其它數(shù)據(jù)信道是可利用的,那么內(nèi)容可與鑒別服務(wù)器通信以獲取更新的安全代碼和/或獲取繼續(xù)進(jìn)行重放的許可。也可顯示(或可聽見地播放)一代碼,用戶可將其提供到提供一激活值的自動免費(fèi)電話服務(wù)。(所述服務(wù)可(例如)通過使用語音識別系統(tǒng)、通過檢測DTMF音頻或通過檢測從用戶的揚(yáng)聲器傳到電話聽筒中的聲音來經(jīng)由電話接收信息。類似地,信息可返回給用戶用于鍵盤輸入、從電話聽筒傳到播放器上的麥克風(fēng),等等。)回應(yīng)可由內(nèi)容代碼檢驗(yàn)(例如,通過檢查數(shù)字簽名、MAC、模糊校驗(yàn)和,等等)和/或用于隨后的密碼處理(例如,作為密鑰)。挑戰(zhàn)/回應(yīng)鑒別結(jié)果可與取證標(biāo)記一起使用(例如)以允許追蹤拷貝而回溯到特定的用戶或標(biāo)識符。舉例來說,如果激活值為唯一的且包括于取證水印中,那么內(nèi)容所有者可使用取證水印以追蹤已恢復(fù)的盜版拷貝而回溯到產(chǎn)生給定激活值的處理。因此,內(nèi)容所有者在提供激活值之前獲取關(guān)于用戶的信息(例如,撥號者的使用ANI的電話號碼或撥號者ID、姓名、信用卡號,等等)可為有利的。激活值可存儲于播放器的非易失性存儲器中(例如,用于未來用途和供其它主題使用)。媒體編碼和解碼在一示范性實(shí)施例中,內(nèi)容代碼可規(guī)定(經(jīng)由TRAP)為從媒體讀取并解碼數(shù)據(jù)所需的參數(shù)。對從光學(xué)媒體讀取的扇區(qū)的實(shí)際處理可包括以下步驟中的任何或所有步驟●向光學(xué)驅(qū)動器(或負(fù)責(zé)執(zhí)行部分或所有扇區(qū)解碼的其它組件)提供扇區(qū)解碼參數(shù)?!耱?qū)動器讀取對應(yīng)于所請求的數(shù)據(jù)(例如,扇區(qū))的原始數(shù)據(jù)。實(shí)際載入可包括使用扇區(qū)標(biāo)識符(或其它尋址信息)以在媒體上查找數(shù)據(jù)、接著從媒體實(shí)際載入適當(dāng)?shù)臄?shù)據(jù)驅(qū)動器也可去除或處理與載入數(shù)據(jù)包括在一起的未加密部分(諸如導(dǎo)航域)?!駥υ忌葏^(qū)數(shù)據(jù)應(yīng)用糾錯(cuò)。糾錯(cuò)過程可涉及一可調(diào)整的多項(xiàng)式或其它參數(shù)。內(nèi)容代碼也可禁用糾錯(cuò)和/或檢錯(cuò),例如如果其希望自己執(zhí)行這些操作?!窠饷芑蚱渌艽a轉(zhuǎn)換也可與糾錯(cuò)包括在一起,并在ECG之前執(zhí)行和/或在其后執(zhí)行??蛇x擇應(yīng)用于未糾錯(cuò)數(shù)據(jù)的解密過程以避免傳送錯(cuò)誤。舉例來說,可在糾正位錯(cuò)誤之前執(zhí)行具有流密碼的解密(例如,以計(jì)數(shù)器模式的RC4或AES)。解密(或其它處理步驟)可由驅(qū)動器、內(nèi)容代碼、編碼譯碼器、驅(qū)動程序或任何其它組件應(yīng)用。也可選擇解密過程以具有單向特性(例如)以使盜版者不能夠使用已記錄的輸出來計(jì)算使用其它解碼參數(shù)將會產(chǎn)生的輸出。舉例來說,驅(qū)動器可將每一扇區(qū)的密鑰作為160-位(或其他大小)導(dǎo)入值(其不由驅(qū)動器返回)的使用由內(nèi)容規(guī)定的密鑰的HMAC-SHA來計(jì)算。在不知道導(dǎo)入值的情況下,盜版者不能夠?qū)⑹褂靡阎挠蓛?nèi)容規(guī)定的密鑰產(chǎn)生的解密輸出轉(zhuǎn)換成應(yīng)該使用其它由內(nèi)容規(guī)定的密鑰值產(chǎn)生的輸出。因此,盜版者缺乏復(fù)制媒體或仿真其(例如,使用硬盤驅(qū)動器和惡意的裝置驅(qū)動程序)所需的信息。雖然盜版者有可能存儲對于特定密鑰值的解碼扇區(qū)表示,但是拷貝/仿真將在任何時(shí)候內(nèi)容代碼使用對應(yīng)的輸出未知的密鑰請求扇區(qū)時(shí)失敗。因?yàn)榻獯a密鑰的總的數(shù)目可極其大,例如對于256-位密鑰為2256,所以盜版者不可能存儲所有可能的扇區(qū)解碼。內(nèi)容代碼可執(zhí)行不同組合的請求,且對于某些請求,使用或檢查所載入的實(shí)際數(shù)據(jù)。播放器(或其它組件)可對扇區(qū)數(shù)據(jù)執(zhí)行不對稱密碼轉(zhuǎn)換。舉例來說,可使用分塊簽名以阻止盜版者在沒有獲得許可的情況下制作新的主題。在一實(shí)施例中,公開密鑰由嵌入于驅(qū)動器中的2048-位RSA模數(shù)組成(盡管其也可從媒體獲取、從證書提取,等等)。為了提高簽名檢驗(yàn)操作的效率,將RSA模數(shù)產(chǎn)生為接近2的整冪,例如使最高有效128位等于“1”。當(dāng)制作媒體時(shí),每一區(qū)塊(例如,扇區(qū))通過使扇區(qū)數(shù)據(jù)與密鑰流進(jìn)行異或運(yùn)算而首先隨機(jī)化,所述密鑰流是通過將媒體ID、區(qū)塊的地址和區(qū)塊數(shù)據(jù)的SHA散列種入(seeding)流密碼而產(chǎn)生。接著將區(qū)塊數(shù)據(jù)分成若干256-字節(jié)(2048-位)塊,所述塊各自通過使用RSA私人密鑰對所述塊執(zhí)行模指數(shù)運(yùn)算而被數(shù)字簽名。簽名的塊與SHA散列記錄在一起。因此,區(qū)塊僅擴(kuò)展20字節(jié)(如果區(qū)塊為2048字節(jié)的扇區(qū),那么小于1%)。假定流密碼有效地隨機(jī)化,那么模指數(shù)運(yùn)算的輸入大于公開模數(shù)的概率為可忽略的(約2-128)。因此,對于此情形無需特殊處理。當(dāng)從媒體讀取并解碼數(shù)據(jù)區(qū)塊(例如,扇區(qū))時(shí),執(zhí)行對應(yīng)的檢驗(yàn)和解碼過程,且包括(a)讀取256字節(jié)塊和SHA散列;(b)使用公開模數(shù)和公開指數(shù)(例如,3)對每一塊執(zhí)行模指數(shù)運(yùn)算;(c)逆轉(zhuǎn)所述隨機(jī)化過程,例如通過使用包含的載入SHA散列值來計(jì)算一密鑰流,將所述密鑰流與所述塊進(jìn)行異或運(yùn)算;(d)通過散列處理媒體ID、區(qū)塊地址和區(qū)塊數(shù)據(jù)并使結(jié)果與載入的散列值比較來檢驗(yàn)解碼數(shù)據(jù)的完整性;和(e)如果散列匹配,那么返回解碼數(shù)據(jù)區(qū)塊。如果散列不匹配,那么返回一錯(cuò)誤。如果性能是一個(gè)問題,可概率地來執(zhí)行檢驗(yàn)(例如,在隨機(jī)選擇的扇區(qū)上)和/或僅在包含更關(guān)鍵的數(shù)據(jù)的區(qū)域上進(jìn)行。當(dāng)寫入可記錄的媒體(或制造用于復(fù)制的原版)時(shí),記錄裝置可接收其使用單向密碼函數(shù)(諸如SHA、HMAC-MD5、使用AES而構(gòu)造的單向函數(shù),等等)進(jìn)行轉(zhuǎn)換并寫入媒體上的特殊位置的值(見下文)。以此方式,因?yàn)楸I版者不會知道正確的輸入(例如,散列預(yù)映射),所以其不能夠使用合法的記錄設(shè)備來復(fù)制媒體。也可存儲其它鑒別值(諸如數(shù)字簽名)。安全值可為可應(yīng)用于媒體的任何(或所有)部分的。媒體安全值可作為普通數(shù)據(jù)存儲或可存儲于包括防止直接讀取的額外保護(hù)和/或經(jīng)特殊地編碼的“特殊”區(qū)域中。因?yàn)榘踩珨?shù)據(jù)的數(shù)量可相對較少(例如,小到128位或更小),所以可使用具有相對較低密度和性能的存儲技術(shù)。舉例來說,已知數(shù)據(jù)可編碼于光學(xué)媒體的凹區(qū)編碼或軌道位置(擺動)的變化中。數(shù)據(jù)也可隱藏于通常為糾錯(cuò)、扇區(qū)使用時(shí)間的不同、導(dǎo)航域等等保留的冗余位中。數(shù)據(jù)也可編碼于不同物理光盤位置上(例如,在通常可讀取的區(qū)域的內(nèi)側(cè)或外側(cè)、或在不同的焦深處)。媒體上的數(shù)據(jù)可包括指示器位、凹區(qū)編碼變化或指示是否應(yīng)當(dāng)執(zhí)行與數(shù)據(jù)有關(guān)的某些處理或安全步驟的其它標(biāo)記。舉例來說,一扇區(qū)安全旗標(biāo)可用于指示包含于所述扇區(qū)中的數(shù)據(jù)應(yīng)當(dāng)使用公開密鑰加以轉(zhuǎn)換和/或僅當(dāng)驅(qū)動器首先已接收了密碼授權(quán)的情況下才可被釋放。(所述授權(quán)可包括(無限制性)要求扇區(qū)內(nèi)容的SHA散列、與當(dāng)制作該媒體時(shí)其密鑰未撤銷的接收者執(zhí)行一成功的挑戰(zhàn)-回應(yīng)鑒別、檢驗(yàn)授權(quán)釋放數(shù)據(jù)的數(shù)字簽名、接收正確地解碼扇區(qū)的密鑰等等。)也可對數(shù)據(jù)進(jìn)行標(biāo)記使得僅可采用加密的形式釋放其。(此在其中數(shù)據(jù)可能通過非受信總線或信道傳送的個(gè)人計(jì)算機(jī)和其它系統(tǒng)中是尤其重要的)。盡管主要地關(guān)于光學(xué)媒體而描述了上述示范性實(shí)施例,但是類似的技術(shù)可應(yīng)用于諸如磁性媒體的其它媒體類型。就媒體本身可執(zhí)行計(jì)算的固態(tài)媒體(諸如EEPROM/閃存)和其它存儲技術(shù)來說,媒體本身可執(zhí)行密碼處理,且也可在內(nèi)部包括與驅(qū)動器、播放器應(yīng)用程序等等通信的安全解釋器(其也可具有解釋器)。媒體只需要包含實(shí)際存儲壓縮的內(nèi)容所需的非易失性存儲器的量(例如,對于高清晰度電影大致為30千兆字節(jié)),但是其可使用密碼學(xué)或其它技術(shù)來產(chǎn)生超大(例如,2256字節(jié))的“虛擬”或“仿真”的地址范圍。如果此完成,那么盜版者將不可能制造完美的盜版拷貝,因?yàn)榇鎯?或甚至讀取)整個(gè)地址范圍是不可行的,且沒有通用的方式供盜版者判定實(shí)際將如何使用地址范圍的部分。舉例來說,在每一重放中內(nèi)容代碼可要求使用不同的區(qū)域。此一般途徑甚至可在主播放器應(yīng)用程序不可編程但媒體(或媒體驅(qū)動器/接口)可編程的情形下使用。條件訪問密鑰流取證付費(fèi)電視接收器的設(shè)計(jì)一般以將所有對安全關(guān)鍵的組件置于智能卡或其它抽取式裝置中為目標(biāo),使得可通過替換智能卡來處理安全故障。通常,可替換的模塊用于導(dǎo)出解密密鑰,其被提供到包含于機(jī)頂盒中的通用解密電路。常規(guī)實(shí)施的主要缺陷為盜版者可記錄來自授權(quán)的裝置的輸出并將密鑰(和任何其它所需數(shù)據(jù))轉(zhuǎn)發(fā)到未授權(quán)的裝置。一種相關(guān)攻擊涉及記錄和轉(zhuǎn)發(fā)視頻本身。追蹤所述攻擊可為極其困難的或不可能的。舉例來說,泄漏的計(jì)算機(jī)可被盜版者用于經(jīng)由因特網(wǎng)將密鑰和數(shù)據(jù)匿名地轉(zhuǎn)發(fā)給未授權(quán)的觀眾??稍诰哂袀卧斓摹霸础钡刂返腢DP封包中發(fā)送密鑰,從而使追蹤非常困難。盡管系統(tǒng)操作者可通過加入盜版服務(wù)而訪問未授權(quán)數(shù)據(jù),但是沒有方法追蹤攻擊的來源。在其它情形下,追蹤數(shù)據(jù)可為實(shí)用的,但是來源可能位于執(zhí)法不力的區(qū)域中。使用當(dāng)前系統(tǒng),對于每一訂戶用于對視頻解密的解密密鑰的序列(以及解密的視頻本身)是相同的。可在使用對裝置為特定的密鑰加密的情況下傳送這些密鑰(例如,從條件訪問智能卡到視頻解碼器芯片),但實(shí)際的視頻解密密鑰仍為全局的。因此,已危害或?qū)σ粋€(gè)機(jī)頂盒進(jìn)行逆向工程(因?yàn)闄C(jī)頂盒的設(shè)計(jì)一般完全地標(biāo)準(zhǔn)化,所以這并不是非常困難)且具有合法預(yù)定的帳戶的盜版者可判定并轉(zhuǎn)發(fā)視頻解密密鑰的序列。此攻擊通常不要求實(shí)際危害安全模塊本身,從而阻止安全模塊替換成為有效的反措施。為應(yīng)付所述攻擊,系統(tǒng)操作者需要識別由盜版者用于提取密鑰和其它被轉(zhuǎn)發(fā)的數(shù)據(jù)的具體帳戶(且因此,安全模塊)。一旦已識別此帳戶,系統(tǒng)操作者可終止該帳戶(例如,通過停止以可由盜版者的安全模塊利用的形式傳輸訪問所需的密鑰、通過無線傳輸一暫時(shí)地或永久地禁用盜版者的安全模塊的加密消息,等等)和任何相關(guān)帳戶(例如,來自連接到相同電話線的裝置的帳戶、共享相同的計(jì)費(fèi)地址的帳戶、具有鄰近物理位置的帳戶、使用相同的信用卡或其它支付工具付費(fèi)的帳戶,等等)。為完成此識別,系統(tǒng)操作者將取證標(biāo)記信息包括于由每一安全模塊輸出的解密參數(shù)的實(shí)際序列中。在一實(shí)施例中,在視頻解碼之前,條件訪問模塊輸出常規(guī)解密密鑰以及由機(jī)頂盒應(yīng)用于解密明文的字節(jié)替代當(dāng)創(chuàng)建視頻序列時(shí),系統(tǒng)操作者識別視頻流中的多個(gè)位置,在所述位置的字節(jié)替換可產(chǎn)生可接受的變化(多形體)。另外,破壞視頻流中的某些字節(jié),使得為形成有效的(或可舒服地觀看的)視頻流,字節(jié)替換為強(qiáng)制的。合法訂購的條件訪問卡經(jīng)配置以輸出字節(jié)替代的唯一組合,包括一個(gè)足夠大的強(qiáng)制性字節(jié)替代的集合,從而重新產(chǎn)生可觀看的流。每一模塊可輸出替代的唯一組合,從而使得有可能匹配所轉(zhuǎn)發(fā)的輸出而回溯至單一裝置。替代實(shí)施例不一定要使用字節(jié)替代;條件訪問模塊可規(guī)定任何方式的轉(zhuǎn)換,包括(無限制)加法、異或、區(qū)塊移動、刪除、插入、位反轉(zhuǎn)和更復(fù)雜的運(yùn)算(包括規(guī)定應(yīng)當(dāng)由解碼裝置的解釋器或微處理器執(zhí)行的實(shí)際代碼)。上文描述的方法要求在機(jī)頂盒中的支持,且因此不能夠配合許多舊式系統(tǒng)一起使用。對于舊式環(huán)境,可要求一種不同的實(shí)施例,其中內(nèi)容提供者組合出一個(gè)當(dāng)在兩個(gè)不同密鑰狀態(tài)的每一個(gè)中解釋時(shí)為有效的流。內(nèi)容提供者組合出當(dāng)使用兩個(gè)不同密鑰(或密鑰狀態(tài))的每一個(gè)加以解密時(shí)可接受地解碼的視頻流部分?,F(xiàn)有的衛(wèi)星或有線電視系統(tǒng)通常對視頻的部分(諸如10秒的片段)各自使用不同的密鑰進(jìn)行加密。對于本發(fā)明,將產(chǎn)生可使用一個(gè)以上密鑰解碼的一個(gè)或一個(gè)以上片段。在一實(shí)施例中,對視頻壓縮過程進(jìn)行修改以識別對壓縮視頻數(shù)據(jù)的初始區(qū)塊的多個(gè)可接受的修改。接著,使用第一密鑰對區(qū)塊加密,從而產(chǎn)生將適合于傳輸?shù)绞褂玫谝幻荑€進(jìn)行解密的機(jī)頂盒的密文。接著,使用第二密鑰對區(qū)塊解密。如果所得的明文在以第二密鑰為密鑰的裝置上也將解碼為可接受的輸出,那么保存區(qū)塊且對每一隨后的數(shù)據(jù)區(qū)塊重復(fù)該過程。如果使用第二密鑰的解密指示密文將不能在以第二密鑰為密鑰的裝置上形成可接受的流,那么嘗試用于啟始區(qū)塊的新值。經(jīng)過足夠的嘗試后,系統(tǒng)操作者將能夠逐漸組合出可使用兩個(gè)(或可能更多的)密鑰中的每一個(gè)密鑰來解密的視頻流。使用每一密鑰的所得的視頻的質(zhì)量將取決于花費(fèi)的計(jì)算努力、用于選擇候選區(qū)塊的技術(shù)、使用的視頻壓縮技術(shù)、參考視頻和其它因素。計(jì)算上更加有效率的編碼方法也是可能的。舉例來說,在多數(shù)視頻壓縮方案中(包括MPEG-2),有可能使用域(諸如注釋域)來交錯(cuò)使用每一密鑰加密的數(shù)據(jù)區(qū)域。此技術(shù)通常增加視頻數(shù)據(jù)的大小,但是在計(jì)算上有效率且不會使輸出質(zhì)量降低。示范性視頻流以常規(guī)編碼的數(shù)據(jù)(例如,使用單一密鑰加密的或未加密的數(shù)字視頻和/或音頻)開始,直至預(yù)期密鑰改變的位置。接著對密鑰改變信號編碼。選擇在密鑰改變后的第一個(gè)密文區(qū)塊,使得(a)使用第一解密密鑰,其解密為下8字節(jié)的壓縮視頻流的適合的值,和(b)使用第二解密密鑰,其解密為一位序列,所述位序列控制解壓縮裝置以忽略隨后字節(jié)(例如,通過啟始MPEG注釋)或以其它方式導(dǎo)致隨后的字節(jié)對解壓縮的輸出具有相對較小影響。為找到具有這些特性的區(qū)塊,壓縮裝置或過程可(例如)在使用第一密鑰解密時(shí)以所要的明文開始,接著嘗試第一和/或第二密鑰的隨機(jī)值,直至找到在第二密鑰的情況下也給出適當(dāng)?shù)慕Y(jié)果的密鑰對。產(chǎn)生流的隨后部分,使得密文(a)產(chǎn)生使用第一密鑰解密的壓縮視頻,且(b)在使用第二密鑰解密時(shí)被忽略(或以相對較小的影響處理)。此流可通過使用第一密鑰對視頻數(shù)據(jù)加密并(如果需要)使用第二密鑰對所得數(shù)據(jù)解密以檢驗(yàn)結(jié)果是適當(dāng)?shù)?例如,不過早地終止MPEG注釋)而制備??赡苄枰獙γ魑倪M(jìn)行較小的調(diào)整并反復(fù)以改正任何會出現(xiàn)不適當(dāng)?shù)拿魑牡那樾?例如,將過早地終止數(shù)據(jù)的忽略、或?qū)魉筒贿m當(dāng)?shù)拈L度、或以其它方式將產(chǎn)生非法流、或?qū)⒁鸩幻烙^的流中斷,等等)。最后(諸如當(dāng)接近MPEG注釋的末尾時(shí),當(dāng)使用第一密鑰編碼的視頻區(qū)塊接近完成時(shí),等等),密文流可包括當(dāng)使用第一密鑰解密時(shí)導(dǎo)致解壓縮過程開始忽略數(shù)據(jù)的數(shù)據(jù)。此時(shí)或其后不久,“忽略數(shù)據(jù)”狀態(tài)隨著第二密鑰而結(jié)束,且所述流以在使用第二密鑰解密時(shí)產(chǎn)生有效壓縮視頻但在使用第一密鑰解密時(shí)被忽略的密文繼續(xù)。所述流繼續(xù),交替出現(xiàn)在使用所述密鑰中的一個(gè)解密時(shí)產(chǎn)生壓縮視頻且在使用另一個(gè)解密時(shí)產(chǎn)生注釋數(shù)據(jù)的數(shù)據(jù)片段。最后,觸發(fā)密鑰改變(例如,歸因于存在于流中的密鑰改變通知),要么回復(fù)到正常視頻,要么開始可使用新的密鑰對解密的新的視頻片段。如果盜版者僅轉(zhuǎn)發(fā)密鑰序列,那么在解壓縮時(shí)兩個(gè)解密結(jié)果產(chǎn)生相同的視頻可為可接受的。然而,如果盜版者轉(zhuǎn)發(fā)解壓縮的視頻,那么通過使用所述密鑰值中的每一者來解密而產(chǎn)生的視頻序列應(yīng)當(dāng)不同。應(yīng)注意,替代實(shí)施例可包括可使用兩個(gè)以上密鑰正確地解密的數(shù)據(jù)或可使用一個(gè)以上密碼算法解碼(使用相同或不同的密鑰值)的數(shù)據(jù)。支持的解密算法的實(shí)例可包括(無限制性)DES、AES、三重DES、DVB塊密碼、IDEA、任何模式(CBC、ECB,等等)的任何其它塊密碼、RC4、SEAL、任何其它流密碼,等等。對于可在機(jī)頂盒上禁用加密的實(shí)施例,禁用加密的狀態(tài)可用作密鑰狀態(tài)(例如,在所傳輸?shù)臄?shù)據(jù)可成功地以傳輸?shù)男问揭约霸谑褂眠m當(dāng)?shù)拿荑€解密時(shí)被解釋為有效視頻的情況下。)系統(tǒng)操作者可預(yù)計(jì)算序列中可用的壓縮的視頻序列或部分(諸如有用的密文區(qū)塊和對應(yīng)的密鑰)??蓪?shí)時(shí)地或預(yù)先組合出流。舉例來說,可預(yù)計(jì)算并插入普通序列的視頻(諸如全黑顯示)。如果密鑰檢查由解碼裝置執(zhí)行,那么系統(tǒng)操作者可需要執(zhí)行搜索以查找可同時(shí)地通過相同密鑰檢查的多個(gè)密鑰。可使用利用生日悖論(birthdayparadox)的碰撞搜索技術(shù)來簡化所述搜索。雖然對于如上文描述地編碼的視頻片段來說,視頻流所需的帶寬通常會增加,但是總的帶寬影響可通過將其使用限制在據(jù)信需要追蹤的盜版者攻擊正在進(jìn)行的情形下而最小化。如果盜版者試圖識別并刪除本發(fā)明起作用的視頻片段(例如,通過分析流中忽略的數(shù)據(jù)的量),那么可將類似的特征置于普通(未標(biāo)記的)區(qū)域中以產(chǎn)生“熏青魚(redherring)”從而干擾攻擊者。對于使用具有未使用位(諸如通常包括于單重DES或三重DES密鑰中的奇偶校驗(yàn)位)的密碼的系統(tǒng),在這些位中可包括取證信息,盡管如果盜版者在轉(zhuǎn)發(fā)密鑰之前可重寫這些位中的值,此途徑的有效性可為有限制的。用于導(dǎo)出裝置上的適當(dāng)?shù)拿荑€值的邏輯應(yīng)當(dāng)實(shí)施于安全裝置內(nèi)部??墒褂密浖?或通過無線電接收的規(guī)則(例如,以加密的形式且與視頻或其它內(nèi)容摻雜)來執(zhí)行密鑰導(dǎo)出。舉例來說,在傳輸可采用多種方式解密的區(qū)塊之前,系統(tǒng)操作者可傳輸(個(gè)別地和/或成組地)密鑰(或密鑰-加密-密鑰),使得觀看基礎(chǔ)(viewingbase)的預(yù)定子集具有每一密鑰。這些密鑰可用于解密或以其它方式導(dǎo)出每一裝置上的適當(dāng)?shù)囊曨l密鑰??呻S機(jī)地選擇和/或可基于地理位置(例如,基于接收同樣用于傳輸本地電視頻道的點(diǎn)波束衛(wèi)星信號的能力、電纜網(wǎng)絡(luò)中的位置、等等)、訂戶ID、電話號碼、對一個(gè)或一個(gè)以上密鑰的了解、裝置類型、或任何其它特征(或特征的組合)選擇子集。也可(視情形實(shí)時(shí)地)傳遞可執(zhí)行代碼以輔助(或執(zhí)行)密鑰導(dǎo)出/選擇。在一示范性實(shí)施例中涉及的用于追蹤惡意重新分發(fā)的密鑰和/或視頻的來源的具體步驟和組件包括任何或所有以下步驟(按任何順序)(a)創(chuàng)建壓縮的、加密的視頻的一部分,當(dāng)使用兩個(gè)不同密鑰狀態(tài)的每一個(gè)對其進(jìn)行解密時(shí)產(chǎn)生至少兩個(gè)不同明文,且其中可將每一所述明文正確地解碼為有效的壓縮內(nèi)容流的部分;(b)將控制數(shù)據(jù)傳輸?shù)蕉鄠€(gè)條件訪問裝置,其中對所述控制數(shù)據(jù)進(jìn)行配置以使得每一所述條件訪問裝置輸出所述至少兩個(gè)密鑰中的一個(gè);(c)接收由所述惡意來源所轉(zhuǎn)發(fā)的包含或?qū)?yīng)于所述密鑰中的一個(gè)(或多個(gè))的密鑰和/或視頻(和/或其它數(shù)據(jù));(d)使用對哪些密鑰包含于(或用于產(chǎn)生)惡意傳輸?shù)臄?shù)據(jù)中的認(rèn)識以獲取關(guān)于惡意來源的安全模塊的信息,例如通過推斷惡意來源具有能夠?qū)С鏊邮盏拿荑€(或視頻)的裝置;(e)使用對盜版團(tuán)體的增多的認(rèn)識來重復(fù)上述某些或所有步驟,直至已識別至少一惡意裝置;和(f)禁用所述惡意裝置,例如通過發(fā)送“刪除”消息或通過拒給未來的密鑰。盡管主要關(guān)于視聽內(nèi)容的視頻部分描述上述實(shí)例,但是相同的技術(shù)同樣可應(yīng)用于音頻和其它種類的內(nèi)容。攻擊和反措施的實(shí)例此部分描述某些示范性攻擊和反措施。盜版者可設(shè)法禁用播放器的重疊能力以阻止基于重疊的取證標(biāo)記被嵌入于輸出中。對于此攻擊的一反措施為內(nèi)容所有者直接將標(biāo)記嵌入于壓縮的視聽數(shù)據(jù)流中。盜版者可試圖比較并組合來自多個(gè)裝置的輸出以試圖去除取證標(biāo)記。舉例來說,在裝置的輸出有不同的位置中,盜版者可試圖組合視頻、刪除/降低視頻的質(zhì)量、概率地選擇變體、選擇最普通的變體或使用其它技術(shù)來制造更加難于追蹤的拷貝。如果共謀裝置(colluder)的數(shù)目已知為相當(dāng)小,那么標(biāo)記恢復(fù)過程可通過使用每一標(biāo)記來識別共謀裝置以排除任何其中沒有成員能夠輸出所恢復(fù)的標(biāo)記的共謀裝置群組。內(nèi)容提供者也可包括具有許多不同變體的取證標(biāo)記(從而使得平均和選擇變得困難)。也可將高度可見的取證標(biāo)記用于獲得對由惡意攻擊引起的質(zhì)量降低或模糊的增強(qiáng)的抵抗力。如果必要,可需要使用改進(jìn)的取證標(biāo)記技術(shù)對隨后的內(nèi)容進(jìn)行編輯。內(nèi)容所有者也可嵌入大量的標(biāo)記并尋找由個(gè)別裝置嵌入的序列與所恢復(fù)的拷貝之間的相關(guān)性。盜版者可試圖仿真合法播放器。相關(guān)攻擊涉及修改合法播放器中的解釋器而以不正確的(可能為惡意的)方式操作。在此情形下,合法播放器與仿真之間的差別(包括(無限制性)未記錄的操作、本地代碼支持、時(shí)序/性能、密碼編譯密鑰等等)可用于區(qū)別合法環(huán)境與惡意環(huán)境。舉例來說,也可運(yùn)用本地代碼播放器更新以改正弱點(diǎn)。盜版者可試圖通過危害編碼譯碼器、裝置驅(qū)動程序、顯示器/揚(yáng)聲器裝置或在解壓縮之前或之后接收內(nèi)容的其它組件而提取數(shù)字內(nèi)容。類似地,可插入這些或其它組件的惡意版本。為回應(yīng)所述攻擊,未來內(nèi)容可通過鑒別輸出裝置并拒絕向已泄漏的裝置提供內(nèi)容而回應(yīng)。內(nèi)容可向易受攻擊的或未知的裝置傳遞安全升級(諸如本地代碼修補(bǔ)程序)。取證標(biāo)記也可用于追蹤以此方式泄漏的拷貝,從而提供心理威懾和法律威懾以及識別盜版者的裝置以加以撤銷的方式。盜版者可試圖“預(yù)記錄”所有TRAP運(yùn)算的輸入和輸出并將此數(shù)據(jù)用于惡意解釋器??刹捎枚喾N方式挫敗此攻擊,包括通過使用本地代碼使所需的存儲空間的總量過量、通過使用取證標(biāo)記來追蹤泄漏或通過升級原始裝置的安全性。如果源裝置實(shí)際上沒有被泄漏(例如,其在運(yùn)行惡意的內(nèi)容代碼),那么可將播放器密碼運(yùn)算用于確保播放器實(shí)際在運(yùn)行被簽名、解密等等的內(nèi)容代碼。惡意的盜版者可試圖產(chǎn)生一以意欲避開安全檢查的方式不正確地操作的敵對解釋器。具體實(shí)例為惡意的解釋器試圖(例如)通過搜索并替換預(yù)期的計(jì)算中間值而使內(nèi)容代碼接受無效RSA簽名的情形。為挫敗所述攻擊,播放器可使用除簡單地求簽名的立方(取n的模數(shù))之外的計(jì)算并與預(yù)期值比較來檢驗(yàn)簽名。舉例來說,內(nèi)容代碼可乘以一初始值,接著檢驗(yàn)結(jié)果等于預(yù)期值與初始值的立方相乘。檢驗(yàn)簽名的另一方式涉及增加一常數(shù)至簽名、接著檢驗(yàn)結(jié)果是正確的。簽名檢驗(yàn)代碼也可與其它運(yùn)算(諸如對對稱密碼編譯密鑰的修改)混合,使得僅當(dāng)簽名有效時(shí),所得的密碼值才為正確的。自修改代碼、代碼模糊技術(shù)、本地代碼和任何其它反措施也可被適當(dāng)使用。盜版者可試圖將惡意的固件插入到媒體接口(諸如光盤驅(qū)動器)中。可通過使內(nèi)容代碼執(zhí)行自檢以鑒別自身并檢驗(yàn)數(shù)據(jù)從媒體正確地載入而檢測此攻擊。本地代碼和/或解釋型代碼也可由驅(qū)動器運(yùn)行以檢測攻擊。內(nèi)容還可通過包括將由攻擊所修改的數(shù)據(jù)并檢測所述數(shù)據(jù)是否改變而檢測攻擊。盜版者可試圖(例如)通過使用從硬盤驅(qū)動器上的文件而不是從合法媒體載入數(shù)據(jù)的惡意裝置驅(qū)動程序來仿真媒體(包括安全特征)??赏ㄟ^檢驗(yàn)驅(qū)動器具有有效的密碼編譯密鑰而檢測并挫敗此攻擊。如果盜版者找到從合法驅(qū)動器提取密鑰的方式(從而使得惡意仿真器能夠仿真合法驅(qū)動器的密碼運(yùn)算),那么可執(zhí)行額外的驅(qū)動器鑒別步驟(諸如提供用于驅(qū)動器的本地代碼,時(shí)序檢查、測試非標(biāo)準(zhǔn)功能性,等等)。另外,可檢測惡意的裝置驅(qū)動程序(例如,使用TRAP_DeviceDiscovery、本地代碼,等等)。盜版者可試圖利用具體主題的安全代碼中的弱點(diǎn)。雖然某些反措施可為可能的(例如,通過傳遞更新的安全邏輯),但是主要的解決方案是內(nèi)容作者確保未來內(nèi)容被更加仔細(xì)地編輯且不具有相同的弱點(diǎn)。額外的考慮和變化可對媒體進(jìn)行配置以允許有限數(shù)量的使用(例如,可觀看任何三個(gè)音樂視頻)或訪問的持續(xù)時(shí)間(例如,在首次觀看3天后訪問權(quán)到期)。其后,可要求用戶進(jìn)行支付以獲取進(jìn)一步(或無限制的)重放的授權(quán)。觀看計(jì)數(shù)器(和/或其它安全和狀態(tài)信息)可存儲于媒體本身上和/或播放器中和/或遠(yuǎn)程服務(wù)器上。舉例來說,授權(quán)無限制的重放的數(shù)據(jù)可設(shè)置于媒體的可寫部入分上,從而允許在任何播放器上重放?;蛘?,授權(quán)可存儲于播放器的非易失性存儲器中和/或可對內(nèi)容代碼進(jìn)行配置以經(jīng)由網(wǎng)絡(luò)聯(lián)系服務(wù)器來獲取授權(quán)。媒體上的內(nèi)容的部分(或所有部分)可在滿足某些條件(例如,支付、重放其它主題的某個(gè)組合、解開謎題、某個(gè)量的時(shí)間已消逝,等等)之前為不可訪問的。在一實(shí)例中,內(nèi)容代碼在被購買或激活之前是不起作用的。激活過程可在本地執(zhí)行或可涉及與遠(yuǎn)程服務(wù)器的交互作用。舉例來說,內(nèi)容代碼可聯(lián)系遠(yuǎn)程服務(wù)器、向服務(wù)器識別本地重放裝置、與用戶和服務(wù)器互動以實(shí)現(xiàn)支付,和接收某些密鑰、可解釋的安全代碼或允許內(nèi)容的解碼的其它數(shù)據(jù)。在購買完成后,接收的數(shù)據(jù)用于激活內(nèi)容的解碼。當(dāng)用戶購買新的播放器時(shí),可包括一規(guī)定以允許播放器非易失性存儲器從舊的播放器到新的播放器的遷移。在一實(shí)施例中,此過程通過在諸如智能卡或可寫入媒體的在物理載體上的裝置之間移動數(shù)據(jù)而執(zhí)行?;蛘?,傳送可經(jīng)由諸如有線網(wǎng)絡(luò)或無線網(wǎng)絡(luò)或紅外線端口的數(shù)字連接而執(zhí)行。為了最大的安全性,傳送可經(jīng)由受信服務(wù)器裝置進(jìn)行(或以其為媒介),所述受信服務(wù)器裝置與供應(yīng)方裝置和接收者裝置通信以確保正確地傳送數(shù)據(jù)且在數(shù)據(jù)可用于接收者裝置上之前在供應(yīng)方裝置上去除所述數(shù)據(jù)(或使其無效)。為接納由許多不同內(nèi)容主題寫入的數(shù)據(jù),單一服務(wù)器可了解有多少主題使用非易失性存儲裝置,或播放器可與多個(gè)服務(wù)器交互作用(例如,如在非易失性存儲器插槽本身中所識別的)。供應(yīng)方和接收者上的密碼編譯密鑰可用于為傳送提供安全。媒體可包括多個(gè)數(shù)據(jù)編碼方法。舉例來說,單一光盤可包含高密度的壓制部分、一次寫入部分和可記錄部分。位置和距離測量技術(shù)可用于確保接收者裝置未處在不可接受的物理位置(諸如在未授權(quán)的國家中、過于遠(yuǎn)離僅為家庭使用提供內(nèi)容的家庭網(wǎng)絡(luò)服務(wù)器、等等)。巡回通信(roundcommunication)往返時(shí)間可乘以光速以判定到裝置的距離上限。全球定位系統(tǒng)和無線電信號的衰減(例如,如果裝置在802.11b規(guī)范、藍(lán)牙技術(shù)等等的范圍內(nèi),或如果裝置可訪問普通的無線電/衛(wèi)星信號,等等)也可使用于估計(jì)位置和/或接近性。也可使用裝置共享一共用電線(電話連接、家庭的電力電路,等等)的能力。因特網(wǎng)IP地址和電話號碼也可用于獲取位置信息(例如,用于區(qū)域編碼應(yīng)用、區(qū)域性體育信號中斷、默認(rèn)語言/貨幣單位選項(xiàng)的選擇)。位置信息可包括于取證標(biāo)記中。播放器可提供易失性或“脆弱的非易失性”的存儲器存儲區(qū)域,諸如允許內(nèi)容將數(shù)據(jù)傳遞到插入的下一光盤但是其后立刻刪除內(nèi)容的存儲器插槽。易失性存儲器可用于當(dāng)斷電時(shí)內(nèi)容是否擦除無關(guān)緊要的情形下的暫時(shí)存儲。在取證標(biāo)記檢測/分析中可使用神經(jīng)元網(wǎng)絡(luò),從而定義最佳的安全策略,等等。可對內(nèi)容代碼進(jìn)行配置以允許在存在正確的鑒別的情況下從可記錄媒體重放。舉例來說,此能力可用于產(chǎn)生可為消費(fèi)者記錄媒體的光盤刻錄信息站(opticaldiscburningkiosk)(或其它系統(tǒng)),例如以允許較小的商店滿足無法預(yù)測的消費(fèi)者需求而不必保持較大庫存。信息站可從任何來源或來源的組合(包括內(nèi)部存儲裝置(硬盤,等等)和數(shù)據(jù)網(wǎng)絡(luò))檢索(原始)內(nèi)容。記錄的數(shù)據(jù)可由信息站修改(視情形使用運(yùn)行于信息站中所包含的解釋器中的解釋型代碼),(例如)以引入對取證標(biāo)記的識別、對數(shù)據(jù)的部分重新加密、使最新的安全邏輯與內(nèi)容相關(guān)聯(lián)、組合由消費(fèi)者選定的多個(gè)內(nèi)容部分、接納用戶請求/偏好、壓縮(重新壓縮)內(nèi)容或改變格式以滿足媒體或播放器裝置的容量或編碼譯碼器要求,等等。也可包括密碼地鑒別記錄和授權(quán)重放的值。舉例來說,此可為由受信方發(fā)布的、經(jīng)由網(wǎng)絡(luò)傳送到信息站的、刻錄于媒體上的和在重放期間由內(nèi)容代碼檢驗(yàn)的數(shù)字簽名。此數(shù)字簽名可(例如)包括媒體標(biāo)識符、使用SHA-1計(jì)算的內(nèi)容的散列樹的根、信息站的記錄驅(qū)動器的標(biāo)識符、發(fā)布日期和目標(biāo)媒體的序號。信息站也可包括用于接收票據(jù)、信用卡或其它支付的接口;用于接收用戶選擇的觸摸屏或其它輸入裝置;用于印刷定制的盒子襯套、媒體表面、收據(jù)等等的能力;用于檢索新的內(nèi)容數(shù)據(jù)、接收新的用戶界面組件和廣告/報(bào)價(jià)單、檢驗(yàn)并處理支付、報(bào)告錯(cuò)誤條件等等的網(wǎng)絡(luò)能力;和用于將數(shù)據(jù)轉(zhuǎn)換成所要的輸出格式、創(chuàng)建定制的菜單等等的音頻/視頻操縱能力。為在寫入物理媒體(諸如光盤)時(shí)達(dá)到高性能,媒體記錄裝置可同時(shí)地使用多個(gè)記錄激光器。媒體周圍可設(shè)置一物理支撐屏蔽以防止歸因于離心力的震動或損害。鏡面或其它光學(xué)元件可用于使激光束圍繞媒體移動以減少或消除物理地旋轉(zhuǎn)光學(xué)媒體的需要。可使用不基于激光器的記錄技術(shù)(諸如通過在圓形襯底上設(shè)置蝕刻物質(zhì)的微液滴,例如使用與用于噴墨打印機(jī)中的技術(shù)類似的高分辨率技術(shù),接著用保護(hù)層涂覆所述襯底來進(jìn)行記錄)。媒體無需物理地存在于重放裝置處。舉例來說,媒體可經(jīng)由無線網(wǎng)絡(luò)或其它網(wǎng)絡(luò)與播放器裝置通信。在一實(shí)施例中,媒體包括一線圖和至少一半導(dǎo)體芯片,所述至少一半導(dǎo)體芯片經(jīng)配置以(a)接收來自感應(yīng)線圈的功率;(b)使用感應(yīng)線圈與播放器(或其它裝置)之間發(fā)送和接收數(shù)據(jù);(c)從本地存儲器檢索內(nèi)容(如果支持,包括內(nèi)容代碼),所述本地存儲器可包括或可不包括可寫入部分;(d)執(zhí)行供內(nèi)容代碼或其它裝置使用的密碼“握手”以鑒別媒體的有效性。如果可存在多個(gè)所述媒體(例如,包含于可包含多個(gè)媒體的播放器裝置中的視情形可抽取的托盤中),那么可使用一種尋址方法以允許選擇在給定時(shí)刻哪一媒體應(yīng)當(dāng)在通信。內(nèi)容代碼可與任何方式的外部裝置以及與可包含于播放器裝置中的組件(諸如軟件程序)交互作用。舉例來說,智能玩具(或其它裝置)可與支持所述裝置(或一大類所述裝置)的內(nèi)容代碼交互作用。所述交互作用可包括任何方式的數(shù)據(jù)交換,包括命令(例如,玩具車移動的方向)、音頻數(shù)據(jù)(例如,裝置發(fā)出的聲音、由裝置記錄的聲音,等等)、圖像/視頻數(shù)據(jù)(例如,用于由裝置顯示、來自裝置中的數(shù)碼相機(jī),等等)、邏輯(例如,用于由裝置執(zhí)行)、事件通知,等等。在一實(shí)施例中,內(nèi)容代碼與外部設(shè)備和裝置(包括(無限制性)燈、供暖裝置、空調(diào)、家庭安全系統(tǒng)、電器、寵物照料/喂食裝置、視頻記錄器等等)交互作用,并幫助控制其。播放器裝置與外部裝置之間的通信方法可包括經(jīng)由常規(guī)視聽輸出端從播放器裝置輸出數(shù)據(jù)(例如,輸出到麥克風(fēng)、CCD或遠(yuǎn)程裝置上的其它傳感器)和經(jīng)由遠(yuǎn)程控制(例如,紅外線)接口接收數(shù)據(jù)。其它支持的通信方法可包括無線和有線網(wǎng)絡(luò)和數(shù)據(jù)交換協(xié)議。某些播放器裝置可不具有啟用所有所要的外部交互作用必需的接口,在此情形下可直接連接外部接口模塊(例如,經(jīng)由進(jìn)行雙向數(shù)據(jù)通信和供電的物理接口)。外部裝置也可包括用于承載傳遞到播放器裝置的代碼(包括解釋型代碼)的非易失性存儲器或其它存儲裝置,例如以輔助播放器裝置和/或內(nèi)容代碼使用由所述外部裝置提供的特征。重放系統(tǒng)的各方面可單獨(dú)地實(shí)施且可彼此通信。舉例來說,在某些平臺上(諸如個(gè)人計(jì)算機(jī)),使實(shí)施發(fā)現(xiàn)和/或安全評估能力的部分與主要的播放器應(yīng)用程序分離可為有利的,因?yàn)檫@些組件可比其它組件要求更頻繁的更新。在一示范性實(shí)施中,內(nèi)容代碼與經(jīng)配置以檢測諸如惡意的、未授權(quán)的和/或可疑的軟件的存在的已知安全性問題的安全掃描器通信。掃描器也向內(nèi)容代碼和/或播放器應(yīng)用程序提供關(guān)于系統(tǒng)狀態(tài)的信息,諸如哪些應(yīng)用程序在運(yùn)行、安裝了哪些裝置驅(qū)動程序、已知連接了哪些裝置,等等。掃描器還可報(bào)告其對當(dāng)前系統(tǒng)的安全狀態(tài)的評估,諸如系統(tǒng)是否滿足安全重放的要求。因?yàn)樾碌谋I版風(fēng)險(xiǎn)可很快出現(xiàn),例如如果新的軟件漏洞(softwareexploit)被公開,那么優(yōu)選地對掃描器程序進(jìn)行經(jīng)常地更新,諸如通過經(jīng)由因特網(wǎng)下載更新或接收與內(nèi)容代碼一起傳遞的已數(shù)字簽名的更新??蔀楦路?wù)向用戶收費(fèi)(例如,通過自動地且定時(shí)地收取對應(yīng)于用戶的支付憑證、自動地通知用戶支付是否不成功和/或在最終沒有收到支付時(shí)自動地終止用戶的訪問)。掃描器也可向用戶通知其結(jié)果、自動地改正問題和/或自動地下載反措施或更新。掃描器也可(例如)通過登記中斷或事件而向內(nèi)容代碼或其它組件通知系統(tǒng)/安全狀態(tài)的改變??擅艽a地保護(hù)組件之間(諸如內(nèi)容代碼與掃描器之間)的通信。舉例來說,掃描器可對其結(jié)果連同挑戰(zhàn)值進(jìn)行數(shù)字簽名以防止回復(fù)攻擊(replayattack)。所述掃描器可集成反病毒掃描器或其它脆弱性掃描器,盡管其功能性與常規(guī)的病毒檢測器不同,差異在于其提供對其結(jié)果的密碼鑒別作為關(guān)于可由內(nèi)容所有者使用的機(jī)器的狀態(tài)的證明,而不是僅僅保護(hù)計(jì)算機(jī)的所有者或操作者的利益。也可配置自動的程序以搜索計(jì)算機(jī)來檢測未授權(quán)的(例如,盜版的)內(nèi)容。如果找到所述內(nèi)容,程序可向用戶通知所述潛在侵權(quán)材料。程序還可與內(nèi)容代碼或其它安全組件交互作用(并向其提供證明),(例如)以授權(quán)在據(jù)信沒有盜版材料的裝置上重放內(nèi)容。為判定材料是否為經(jīng)授權(quán)的,掃描器可尋找許可文件、數(shù)字簽名、已知文件散列,等等。本發(fā)明的要素(包括安全特征和非安全特征)可(無限制性)與不可編程的內(nèi)容分發(fā)系統(tǒng)一起使用、可與使用本地代碼而不是解釋器或虛擬機(jī)的內(nèi)容保護(hù)系統(tǒng)一起使用、可作為任何軟件應(yīng)用程序或裝置的部分使用、可在始終在本地運(yùn)行代碼(與使用解釋器/虛擬機(jī)進(jìn)行處理相反)的可編程系統(tǒng)上使用、和可用于其它系統(tǒng)中(包括電子游戲機(jī)復(fù)制保護(hù)和安全系統(tǒng))。舉例來說且無限制性,個(gè)別方面可用于計(jì)算機(jī)安全應(yīng)用、網(wǎng)絡(luò)安全應(yīng)用、不可編程的防盜版系統(tǒng)、欺騙屏蔽系統(tǒng)(fraudscreeningsystem)、e-mail過濾,等等。本發(fā)明可與數(shù)字?jǐn)?shù)據(jù)廣播系統(tǒng)(包括(無限制性)所有種類的電視廣播、衛(wèi)星傳輸、經(jīng)由電纜網(wǎng)絡(luò)的通信、因特網(wǎng)多點(diǎn)傳送等等)結(jié)合。廣播信號可承載用于與承載于所述信號中的內(nèi)容或其它內(nèi)容一起使用的代碼(包括與安全相關(guān)的信息和反措施)。廣播信號也可承載可由其它內(nèi)容主題使用的內(nèi)容和/或其它數(shù)據(jù)。安全能力也可與常規(guī)的條件訪問卡和用于保護(hù)電視信號的系統(tǒng)結(jié)合(且與其通信)。當(dāng)本發(fā)明的組件交互作用時(shí),其可使用密碼技術(shù)以保護(hù)其通信。所述安全特征可包括對數(shù)據(jù)使用對稱加密和/或消息鑒別代碼(或其它檢查)??墒褂霉_密鑰密碼技術(shù)(包括數(shù)字簽名/證書、指數(shù)密鑰協(xié)議、公開密鑰加密/解密、挑戰(zhàn)-回應(yīng)協(xié)議,等等)來協(xié)商用于保護(hù)所述通信的對稱密鑰,或可直接對數(shù)據(jù)應(yīng)用不對稱密碼技術(shù)??蓮?qiáng)制實(shí)施對稱和不對稱密鑰的撤銷狀態(tài)(例如,通過檢查撤銷列表、與遠(yuǎn)程服務(wù)器交互作用,等等)。也可使用對稱密碼協(xié)議(包括(無限制性)使用廣播加密技術(shù))來協(xié)商密鑰。所使用的安全措施無需對于所有通信都相同。(舉例來說,可加密控制消息、與安全相關(guān)的參數(shù)、密鑰、和/或MPEG“I”幀,同時(shí)可不加密其它通信。)用于保護(hù)“握手”的密鑰(包括與每一密鑰或密鑰集相關(guān)的一個(gè)或一個(gè)以上相關(guān)證書)可使用內(nèi)容代碼而檢驗(yàn)和/或直接由裝置檢驗(yàn)。可適當(dāng)?shù)孛艽a地保護(hù)其通信的組件的實(shí)例包括(無限制性)光盤驅(qū)動器、其它媒體接口、媒體接口裝置驅(qū)動程序、播放器應(yīng)用程序、內(nèi)容代碼執(zhí)行線程(例如,來自正在同時(shí)運(yùn)行的不同內(nèi)容主題或來自屬于相同內(nèi)容主題的另一線程)、操作系統(tǒng)、視頻裝置驅(qū)動程序、視頻處理器(或視頻卡,等等)、音頻裝置驅(qū)動程序、音頻處理器、任何方式的外部裝置(無論是本地連接的、經(jīng)由網(wǎng)絡(luò)訪問的、經(jīng)由總線訪問的,等等)、其它應(yīng)用程序(安全掃描器、音頻混頻器、視頻效果處理器,等等)、編碼譯碼器和安全模塊。數(shù)字簽名也可使用通過使用一個(gè)或一個(gè)以上證書所鑒別的密鑰而產(chǎn)生,且可與其它安全值組合??商峁┒鄠€(gè)版本的簽名(例如,以不同密鑰/簽名人、密鑰大小、算法等等所產(chǎn)生的)。所述實(shí)例不應(yīng)當(dāng)解釋為強(qiáng)加的限制。為了簡潔起見,尤其是在各項(xiàng)目包括于類似的列表中的情形下,不一定完全地列舉列表。詞語“包括”意謂包括而無限制性。類似地,“例如”和“舉例來說”表示并不限制正論述事物的一般性的說明性實(shí)例。類似地,“等等”意謂存在額外的可能性,且列表不應(yīng)當(dāng)解釋為一定列舉所有已知可能性。在一示范性實(shí)施例中,可為特定的播放器定制內(nèi)容。在此情形下,內(nèi)容僅可在單一播放器或少數(shù)播放器上播放,但在接收者裝置上重放所不需要的代碼無需被傳輸。因此,當(dāng)向用戶發(fā)送信息困難、昂貴或緩慢時(shí),例如如果存儲空間有限制或如果必須經(jīng)由緩慢的網(wǎng)絡(luò)連接發(fā)送內(nèi)容,此途徑特別有價(jià)值。然而,內(nèi)容仍可查詢播放器以檢驗(yàn)重放環(huán)境為適當(dāng)安全的。為確保重放不中斷或失真,對播放器的解釋器要求具體的最小性能標(biāo)準(zhǔn)可為有用的。在一示范性實(shí)施例中,可對系統(tǒng)和方法進(jìn)行配置以允許內(nèi)容從一裝置交換到另一裝置。所述交換的具體的安全特征取決于諸如與受信(例如,由出版商所操作的)服務(wù)器的在線通信是否可利用的因素。傳送內(nèi)容的形式取決于由內(nèi)容強(qiáng)制實(shí)施的安全策略和裝置的硬件能力。舉例來說,在兩個(gè)裝置都包括安全解釋器的一實(shí)施例中,發(fā)送裝置傳輸原始加密內(nèi)容(如存儲于原始媒體上或以另一密鑰加密,視情形包括有水印)連同用于控制重放的代碼。重放控制代碼可由發(fā)送裝置為接收者裝置定制。在另一情形下,發(fā)送裝置可檢驗(yàn)輸出端口和目標(biāo)裝置的安全特征為可接受的、與目標(biāo)裝置協(xié)商一共享的密鑰、對內(nèi)容解密和水印處理、使用共享的密鑰對內(nèi)容重新加密和將重新加密的內(nèi)容發(fā)送到目標(biāo)。具有足夠的非易失性存儲空間的播放器可用于存儲從解釋器調(diào)用的可更新的代碼。舉例來說,可對播放器進(jìn)行配置以始終存儲用于特定出版商的最新的安全代碼。在此情形下,如果遇到較新版本的安全代碼,那么將更新舊的版本(例如,在檢驗(yàn)新的代碼上的數(shù)字簽名之后)。以此方式,較舊的內(nèi)容可從承載于新內(nèi)容上的安全更新得益。(此途徑可(例如)使用前面描述的安全存儲器方法而實(shí)施。)在另一實(shí)施例中,內(nèi)容可通過從播放器獲取當(dāng)前日期/時(shí)間并與已知的最新安全升級的日期/時(shí)間比較來要求播放器包括當(dāng)前安全更新。以此方式,內(nèi)容可確保播放器具有合理地最新安全升級。一般來說,內(nèi)容保護(hù)系統(tǒng)應(yīng)當(dāng)避免在合法用戶的合法動作中扮演任何可見的角色。然而,某些用戶界面元件是必需的,諸如用于報(bào)告錯(cuò)誤或提供信息。在內(nèi)容可在多個(gè)支持的輸出質(zhì)量(例如,當(dāng)播放器提供不充分的安全性時(shí)的“舊式”質(zhì)量與當(dāng)安全性為滿意的時(shí)的“高”質(zhì)量)之間選擇的情形下,指示符可用于向用戶通知輸出的質(zhì)量。舉例來說,在一實(shí)施例中,由內(nèi)容控制的綠色發(fā)光二極管(LED)指示輸出具有高質(zhì)量(意即,安全性為滿意的),橙色LED指示降低的質(zhì)量(意即,安全性不高),且閃爍的紅色LED可指示由于播放器已撤銷而沒有提供輸出。在另一實(shí)施例中,提供簡短的口頭或書面通知(如果已知,以用戶的語言)以報(bào)告安全的狀態(tài)。報(bào)告和/或使用較高質(zhì)量輸出還是較低質(zhì)量輸出的決定可基于其它因素,諸如存在和/或不存在穩(wěn)固的和/或脆弱的水印。如果需要,質(zhì)量降低模塊可包括于播放器中以允許內(nèi)容為了安全或其它原因而降低重放的質(zhì)量(例如,降低到舊式格式的質(zhì)量)。(例如,可包括質(zhì)量降低模塊以將高清晰度電視信號轉(zhuǎn)換成NTSC分辨率或?qū)⒏叻直媛识嗤ǖ酪纛l轉(zhuǎn)換成雙通道CD音質(zhì)音頻。)如果媒體接口和播放器解釋器提供充分的性能,那么可在解釋器中而不是在單獨(dú)的解密模塊中處理批量解密和水印嵌入。允許內(nèi)容直接對其本身解密可提供若干安全益處,諸如可確保攻擊者不會發(fā)動針對解密模塊的攻擊。如果解釋器性能為充分的,那么也有可能在解釋器中也實(shí)施內(nèi)容解壓縮,從而避免了使單一播放器編碼譯碼器類型標(biāo)準(zhǔn)化的需要。雖然使用解釋器的實(shí)施最好是在不具有對本文中揭示的技術(shù)和系統(tǒng)的特定硬件支持的平臺上(諸如個(gè)人計(jì)算機(jī)),但是有可能在專用硬件中實(shí)施許多解釋器功能。取決于應(yīng)用,盡管專用的實(shí)施提供減少的功能性,但其可節(jié)約成本或功耗。接收物理媒體上的內(nèi)容的實(shí)施例可使用實(shí)質(zhì)上任何媒體格式。雖然光盤(諸如CD和DVD)以較低成本提供較高存儲密度,但是也可使用其它存儲系統(tǒng),包括(無限制性)磁性媒體、全息存儲器、有電池支持的RAM、ROM、EEPROM和閃存。媒體的存儲容量可用于存儲許多不同類型的數(shù)據(jù),包括與本文中揭示的技術(shù)和系統(tǒng)相關(guān)的信息(諸如實(shí)施用于各種計(jì)算機(jī)平臺的解碼方法的可執(zhí)行程序、使用本文中揭示的方法來保護(hù)的內(nèi)容,等等)以及與本文中揭示的技術(shù)和系統(tǒng)不直接相關(guān)的數(shù)據(jù)(諸如不相關(guān)的可執(zhí)行程序、諸如紅皮書CD音頻的未受保護(hù)的內(nèi)容、使用其它安全方案保護(hù)的內(nèi)容,等等)。媒體可包括用于執(zhí)行密碼計(jì)算的防篡改電路以允許播放器檢驗(yàn)媒體并非未授權(quán)的拷貝。盡管對于使用電接口的媒體來說執(zhí)行所述能力是最簡單的,但是甚至光學(xué)媒體可包括密碼能力。舉例來說,可將非接觸式的密碼模塊(諸如Gaumet等人的第5,640,306號美國專利的非接觸式智能卡)固定到或嵌入于光盤中。雖然密碼媒體鑒別是優(yōu)選地,但是可替代使用其它鑒別機(jī)制。舉例來說,
背景技術(shù):
中已知的一般媒體鑒別方法包括將序號寫入到難于復(fù)制的位置(諸如使用商業(yè)上的可記錄媒體或驅(qū)動器不可寫入的區(qū)域)和包括原始物理媒體的各種特征的數(shù)字簽名的“描述”。當(dāng)然,密碼機(jī)制提供以下優(yōu)點(diǎn)即使攻擊者發(fā)現(xiàn)用于危害現(xiàn)有媒體的方法,也可發(fā)布具有改進(jìn)的安全性的未來媒體而不要求對播放器進(jìn)行任何改變。因?yàn)樵S多消費(fèi)者已投資于舊式格式的內(nèi)容,所以可對實(shí)施本文中揭示的技術(shù)和系統(tǒng)的播放器進(jìn)行配置以支持這些舊式格式。類似地,不同版本的解釋器可由特定播放器所支持。在此情形下,播放器需要分析媒體或內(nèi)容以識別將使用的適當(dāng)安全系統(tǒng)。舉例來說,數(shù)字視頻播放器可檢測光盤是使用CSS的舊式DVD(且如果是,那么選擇CSS解密系統(tǒng))還是使用本文中揭示的技術(shù)和系統(tǒng)的DVD(且如果是,那么激活基于語言的解密系統(tǒng))。包括于內(nèi)容中的穩(wěn)固的水印可用于檢測最初使用一安全系統(tǒng)加以保護(hù)的內(nèi)容是否已被復(fù)制為缺乏最初保護(hù)的格式。舉例來說,不允許復(fù)制的內(nèi)容可包括一水印以指示遇到任何其它格式(例如,為未受保護(hù)的格式)的拷貝的任何裝置可認(rèn)出該拷貝為未授權(quán)的并(例如)拒絕重放。本文中揭示的技術(shù)和系統(tǒng)可與包括(無限制性)音頻、靜態(tài)圖像、視頻、三維圖像和三維視頻的很多種內(nèi)容類型一起使用。本文中揭示的技術(shù)和系統(tǒng)也可實(shí)施于多種物理裝置中。如果只有一裝置負(fù)責(zé)對內(nèi)容解密,那么由所述裝置強(qiáng)制實(shí)施安全策略是優(yōu)選地。然而,輸出裝置和中間處理裝置(諸如音頻均衡器或混頻器)也可從本文中揭示的技術(shù)和系統(tǒng)得益和/或通過提供可由所述技術(shù)和系統(tǒng)使用的查詢能力來檢驗(yàn)其安全。在一實(shí)施例中,家庭娛樂服務(wù)器下載、存儲并管理內(nèi)容,且將內(nèi)容轉(zhuǎn)遞到已成功檢驗(yàn)其安全性的重放裝置(揚(yáng)聲器、耳機(jī)、視頻顯示器,等等)。優(yōu)選地在本文中揭示的技術(shù)和系統(tǒng)與目標(biāo)裝置的聯(lián)合控制下對到這些裝置的連接加密以防止內(nèi)容在傳送中被竊取。權(quán)利要求1.一種用于調(diào)控對非易失性數(shù)字存儲裝置的訪問的方法,所述非易失性數(shù)字存儲裝置包含于一在一圖靈完整性(Turing-Complete)解釋器中執(zhí)行指令的裝置中,所述方法包含(a)接收一來自所述正被執(zhí)行的指令的請求,其中所述請求規(guī)定(i)所述存儲裝置的被請求訪問的一部分,和(ii)多個(gè)額外的可執(zhí)行指令;(b)對所述額外的可執(zhí)行指令應(yīng)用一密碼散列函數(shù)以獲取一散列值;(c)鑒別所述散列值;以及(d)假如所述鑒別是成功的,那么允許對所述存儲裝置的所述所請求部分的訪問,同時(shí)執(zhí)行所述額外的可執(zhí)行指令。2.根據(jù)權(quán)利要求1所述的方法,其中所述鑒別步驟包含將所述散列值與一存儲于所述非易失性存儲裝置中的散列值比較。3.根據(jù)權(quán)利要求1所述的方法,其中所述鑒別步驟包含檢驗(yàn)一由所述正被執(zhí)行的指令提供的數(shù)字簽名。4.根據(jù)權(quán)利要求1所述的方法,其中所述請求包括一指向可由所述被執(zhí)行的指令訪問且包含于所述裝置中的存儲器中的所述額外的可執(zhí)行指令的指針。5.一種包含用于在多個(gè)裝置結(jié)構(gòu)中的任何一個(gè)上重放的加密的視聽內(nèi)容的數(shù)字光盤媒體,所述數(shù)字光盤媒體包含程序邏輯,所述程序邏輯經(jīng)配置以(a)識別一執(zhí)行所述程序邏輯的裝置的至少一個(gè)特征;(b)使用所述至少一個(gè)特征來判定多個(gè)安全弱點(diǎn)中的哪一個(gè),如果有的話,存在于所述執(zhí)行裝置中;(c)當(dāng)所述判定指示一可疑的弱點(diǎn)時(shí),(i)選擇多個(gè)軟件反措施中的至少一個(gè),其中所述選定的反措施對應(yīng)于所述可疑的弱點(diǎn)且與所述執(zhí)行裝置兼容;(ii)通過控制所述執(zhí)行裝置以調(diào)用所述選定的反措施來減輕所述可疑的弱點(diǎn);以及(iii)對所述加密的視聽內(nèi)容解碼,其中所述解碼包括一由所述反措施邏輯的成功運(yùn)算所產(chǎn)生的值;以及(d)當(dāng)所述判定不指示一可疑的弱點(diǎn)時(shí),使用至少一個(gè)解密密鑰對所述視聽內(nèi)容解碼,所述至少一個(gè)解密密鑰是使用與所述執(zhí)行裝置相關(guān)聯(lián)的至少一個(gè)密碼編譯密鑰而導(dǎo)出。6.根據(jù)權(quán)利要求5所述的數(shù)字光盤媒體,其中所述程序邏輯經(jīng)配置以在一為所述多個(gè)裝置結(jié)構(gòu)所共有的解釋器中執(zhí)行,且所述選定的反措施的至少一部分經(jīng)配置以在一與所述執(zhí)行裝置相關(guān)聯(lián)的微處理器上作為本地代碼直接執(zhí)行。7.根據(jù)權(quán)利要求5所述的數(shù)字光盤媒體,其中所述數(shù)字光盤媒體進(jìn)一步包括一鑒別所述本地代碼部分的數(shù)字簽名。8.一種用于允許一包含一非易失性存儲器的重放裝置判定使用數(shù)字光盤媒體的允許是否已被撤銷的自動方法,所述方法包含(a)從一數(shù)字光盤媒體讀取一媒體標(biāo)識符;(b)檢驗(yàn)所述媒體標(biāo)識符沒有表示于一存儲于非易失性存儲器中的撤銷列表中;(c)將所述媒體標(biāo)識符存儲于一包含于所述非易失性存儲器中的重放歷史中;(d)從所述數(shù)字光盤媒體讀取撤銷的媒體標(biāo)識符的一個(gè)列表;(e)記錄表示于所述重放歷史中且也表示于所述所讀取的撤銷的媒體標(biāo)識符的列表上的任何媒體標(biāo)識符;以及(f)將任何所述所記錄的媒體標(biāo)識符增加到包含于所述非易失性存儲器中的所述撤銷列表。9.根據(jù)權(quán)利要求8所述的方法,其中當(dāng)所述檢驗(yàn)步驟判定所述媒體標(biāo)識符被表示于所述撤銷列表中時(shí),包含于所述數(shù)字光盤媒體上的加密的視聽內(nèi)容的重放被阻止。10.根據(jù)權(quán)利要求8所述的方法,其中當(dāng)所述檢驗(yàn)步驟判定所述媒體標(biāo)識符被表示于所述撤銷列表中時(shí),以降低的質(zhì)量執(zhí)行包含于所述數(shù)字光盤媒體上的加密的視聽內(nèi)容的重放。11.一種用于判定是否允許存儲于一計(jì)算機(jī)可讀取存儲器中的軟件的一部分訪問一非易失性存儲器的一部分的自動方法,所述方法包含(a)接收一對軟件的所述部分的引用;(b)計(jì)算所述軟件部分的一密碼散列;(c)將所述計(jì)算得的密碼散列與一存儲于所述非易失性存儲器中的值比較;(d)當(dāng)所述計(jì)算得的密碼散列與所述存儲的值匹配時(shí),允許所述軟件部分訪問所述非易失性存儲器部分;以及(e)當(dāng)所述計(jì)算得的密碼散列與所述存儲的值不匹配時(shí),不允許所述軟件部分訪問所述非易失性存儲器。全文摘要本發(fā)明揭示的技術(shù)通過啟用安全邏輯和內(nèi)容的結(jié)合而將對安全性的責(zé)任和控制從播放器制造者轉(zhuǎn)移到內(nèi)容作者。一示范性光盤承載與數(shù)據(jù)處理運(yùn)算組合的加密數(shù)字視頻主題,所述數(shù)據(jù)處理運(yùn)算實(shí)施所述主題的安全策略和解密過程。播放器裝置包括一處理環(huán)境(例如,一實(shí)時(shí)虛擬機(jī)),其通過解釋內(nèi)容的處理運(yùn)算來播放內(nèi)容。播放器也提供過程調(diào)用以允許內(nèi)容代碼從媒體載入數(shù)據(jù)、執(zhí)行網(wǎng)絡(luò)通信、判定重放環(huán)境配置、訪問安全的非易失性存儲裝置、向編碼譯碼器提交數(shù)據(jù)以供輸出、和/或執(zhí)行密碼運(yùn)算。為追蹤盜版拷貝,內(nèi)容可在解碼的輸出中插入取證水印。如果盜版者危害一播放器或主題,可制作未來內(nèi)容使其具有,例如,阻止攻擊、撤銷盜版媒體或使用本地代碼來改正播放器弱點(diǎn)的安全特征。文檔編號G06FGK1839375SQ200480023948公開日2006年9月27日申請日期2004年7月7日優(yōu)先權(quán)日2003年7月7日發(fā)明者保羅·C·科赫爾,捷士瓦·M·杰富,本杰明·C·駿,卡特·C·拉倫,彼得·K·培爾森申請人:密碼研究公司