通過在媒體的剪輯區存儲驗證數據而驗證媒體密鑰塊的完整性的製作方法
2023-07-20 07:50:36 1
專利名稱:通過在媒體的剪輯區存儲驗證數據而驗證媒體密鑰塊的完整性的製作方法
技術領域:
本發明涉及靜態和動態信息存儲和檢索。更具體的說,本發明涉及保護被存儲信息不受未授權訪問的方法、裝置和系統。
背景技術:
信息或內容可以被存儲在各種媒體上。由於訪問和複製被存儲信息的速度和方便性的提高,信息受到未授權訪問的威脅也相應地增加。已經採用了各種方案來保護被存儲信息不受未授權訪問。例如,可以用僅由有權訪問媒體的設備知道的一個或多個密鑰對存儲在媒體上的內容加密。只用一個密鑰的缺點是,如果不取消所有設備讀取媒體的權力,就不能通過改變密鑰來取消某個設備的權力。使用多個密鑰的一些缺點包括為每個特定設備傳輸和存儲密鑰而潛在的很大負擔。
保護內容不受未授權複製的可選方法是使用媒體密鑰塊(MKB)來授權對內容的複製,如4C Entity,LLC的題為」Content Protection forRecordable Media Specification」Revision 0.94,(2000-10-18)出版物所述的那樣。被授權設備處理MKB,以便計算一個允許被授權設備複製內容的媒體密鑰,如下面的部分中所述的那樣。MKB方法用媒體獨特的密鑰來把加密的內容綁定到將從其中回放內容的媒體上。
隨著密鑰被洩密和被取消,MKB能變得相當大,大到幾兆字節也並非異常。由於許多種媒體只有有限的只讀空間,就有必要在媒體的可寫區存儲MKB。在可寫區存儲MKB導致MKB易於受到直接的惡意篡改的攻擊。在這樣的直接攻擊中,篡改者的意圖很可能是用一個更老的MKB置換媒體上存儲的當前MKB。或者,篡改者可能用部分更老的MKB置換媒體上存儲的部分當前MKB。由於更老的MKB仍然含有被當前MKB取消了的密鑰,這種置換將潛在危害由當前MKB所提供的內容保護。
即使MKB被存儲在媒體的可讀區,MKB方法的另一個弱點是讓中間人(man-in-the middle)有能力進行攻擊,以在試圖處理當前MKB期間用一個更老的MKB置換當前MKB。或者,這個中間人攻擊者可以在試圖處理當前MKB期間用部分更老的MKB置換部分當前MKB。因此,中間人的攻擊也潛在危害由當前MKB所提供的內容保護。
因此,能夠讀取沒有有效MKB的媒體,沒有授權的讀取器(readers)能讀取在受保護媒體上存儲的內容。在MKB方法的一個變體中,計算一個關於MKB的哈希(hash)值,並將其存儲在媒體的只讀區。讀取器讀取MKB,計算從媒體讀取的MKB的哈希值,並將該哈希值與從只讀區讀取的哈希值比較。然而,計算哈希值對授權過程增加了不利的延遲。因此,需要改善現有技術。
本發明是通過附圖中的例子進行說明的,這種說明不是限定性的,附圖中相同的標號指類似的元件,其中圖1是本發明一個實施例的簡化框圖。
圖2是本發明另一個實施例的簡化框圖。
圖3是本發明另一個實施例的簡化框圖。
圖4是本發明方法的簡化流程圖。
圖5表示一個其中的只讀區包含媒體的剪輯(cutting)區的實施例。
圖6表示一個利用媒體的剪輯區來確認數據的示例性系統。
圖7表示圖6的方法。
圖8表示另一個利用媒體的剪輯區來檢驗數據的示例性系統。
圖9表示圖8的方法。
具體實施例方式
本發明一方面公開一種通過在諸如DVD-R或DVD-RW的媒體的剪輯區存儲驗證數據來驗證媒體密鑰塊(MKB)的完整性的方法。
在一個實施例中,驗證數據可包含一個關於媒體密鑰塊(MKB)的哈希函數,用於該MKB在驅動器-主機(drive-host)配置中被檢驗時實現與DVD-RAMs的兼容。在這個實施例中,驅動器從盤的控制數據區(CDA)讀取MKB,該盤無論是DVD-RAM、DVD-R還是DVD-RW。對驅動器稍作調整,使驅動器能從DVD-RAM的CDA或者DVD-R或DVD-RW的窄分段剪輯區(NBCA)(narrow burst cutting area)讀取哈希值,由此使驅動器能用以前確定的程序驗證MKB的真實性。
在另一個實施例中,驗證數據可包含MKB的檢驗媒體密鑰記錄的一個確認數據域,用於該MKB被消費電子播放器/記錄器(以下稱作「CE設備」)驗證時實現與DVD-RAMs的兼容。在這個實施例中,CE設備從盤的CDA讀取MKB。對驅動器稍作調整,使驅動器能從DVD-RAM的CDA或者DVD-R或DVD-RW的窄分段剪輯區讀取驗證數據域,由此使驅動器能用以前確定的程序驗證MKB的真實性。
本發明包括的各種操作,它將在下面說明。本發明的操作可以由硬體部件執行,也可以體現在機器可執行的指令中,這些指令可被用來使通用或專用處理器或用這些指令編程的邏輯電路執行這些操作。或者,這些操作也可以由硬體與軟體的組合來執行。
本發明可以被提供作為電腦程式產品,電腦程式產品包括機器可讀的媒體,媒體中存儲有指令,這些指令可被用來為計算機(或其它電子設備)編程以執行本發明的過程。機器可讀的媒體可包括但不限於軟盤、光碟、CD-ROMs(光碟只讀存儲器)以及磁光碟、ROMs(只讀存儲器)、RAMs(隨機存取存儲器)、EEPROMs(電磁可擦可編程只讀存儲器)、磁卡或光卡、快閃記憶體、或者其它適於存儲電子指令的媒體/機器可讀媒體。
此外,本發明也可以作為電腦程式產品被下載,其中,可以利用通信連接(例如數據機或網絡連接)通過體現在載波或其它傳播媒體中的數據信號,將程序從一個遠程計算機(例如伺服器)傳送到一個請求計算機(例如客戶機)。因此,本文中將載波視為包含機器可讀的媒體。
在以下對本發明的詳細說明中,為了透徹地理解本發明,列舉了許多具體細節。然而,對於本領域的技術人員來說,顯然沒有這些具體細節本發明也可以實行。在其它的例子中沒有詳細地描述眾所周知的方法、過程、部件和電路,以免不必要地妨礙突出本發明的特點。
介紹本文中採用一定的術語來討論本發明的特徵。例如,內容是被諸如廣播或電纜網絡的所有人或被許可人編程的信息。「內容」可以是任何可聽或可視的信息,包括商務數據、新聞、體育、藝術表演、娛樂、廣告、記錄片、談話、電影、錄像、卡通、文字、音樂和圖像。
媒體媒體包括提供(即存儲和/或傳輸)可由機器(例如計算機)讀取的形式的內容的任何機構。例如,機器可讀媒體可包括只讀存儲器(ROM),隨機存取存儲器(RAM),磁碟存儲媒體,光學存儲媒體,快閃記憶體設備,電、光、聲或其它形式的傳播信號(例如載波、紅外線信號、數位訊號等等),等等。內容通常可以以加密的形式存儲在媒體上,例如DVDs、CDs、軟盤、快閃記憶體陣列。訪問控制來自不能沒有授權的設備或者取消密鑰的設備,以成功處理MKB,驗證MKB,然後解密內容。
媒體讀取器媒體讀取器是從媒體讀取內容的電子設備。除了內容以外,媒體讀取器也可以從媒體讀取數據。例如,媒體讀取器可以是DVD驅動器或播放器、CD驅動器或播放器、軟盤驅動器、數位電視、數字VCR、CPU或個人電腦、處理器或與快閃記憶體單元連接的電路,或者任何其它能訪問媒體上存儲的內容的消費電子設備。同樣向媒體寫或記錄的設備,諸如CD-RW驅動器,也被視為媒體讀取器。
可記錄媒體的內容保護(CPRM)在本發明的實施例中,媒體讀取器可以實現用於保護內容的可記錄媒體內容保護(CPRM)格式。CPRM定義一種保護在多個物理媒體類型上存儲的內容的方法,這些媒體類型包括但不限於DVD-RAM、DVD-R和DVD-RW。設備要求在下面的題目為「媒體密鑰塊」的一節中作進一步詳細解釋。
媒體密鑰塊MKB被格式化為一個連續記錄序列,其中每個記錄以一個記錄類型域開始,緊跟著一個記錄長度域。MKB是由n個具有數據的MKB包構造的一個MKB幀的一部分。每個MKB幀以一個MKB描述符開始,它是第一個MKB包或0號MKB包的一部分。前n-1個MKB包的每一個都是被完全填充的。第n個MKB包可以以不使用的字節結尾,這些字節用零填充。
為了處理MKB,每個授權的設備接收一個」n」個設備密鑰的集合。這」n」個設備密鑰被稱作Kd_i(i=0,1,...,n-1)。對應每個設備密鑰,MKB中有一個相關聯的列和行值,分別稱作列值(Cd_i,i=0,1,...,n-1)和行值(Rd_i,i=0,1,...,n-1)。授權的設備對應MKB的每列將最多有一個設備密鑰,儘管授權的設備每行可以有多於一個的設備密鑰。
設備密鑰和相關聯的行和列值被保密。如果一個設備密鑰集合被洩密,可以發放一個更新的MKB使具有該洩密的設備密鑰集合的設備計算一個與餘下的順應設備(remaining compliant devices)計算相比不同的媒體密鑰。這樣,洩密的設備密鑰被新的MKB「取消」。
設備利用其設備密鑰,通過從頭到尾一個一個地處理MKB的記錄來計算媒體密鑰。MKB的處理完成之後,設備用最近計算的媒體密鑰值作為媒體密鑰的最終值。如果一個設備使用被一個MKB取消的設備密鑰正確處理該MKB,則生成的最終媒體密鑰將具有特殊值OH,其中H表示十六進位數。這個特殊值將永遠不會是一個MKB的正確的最終媒體密鑰值,因此它總是能被當作取消該設備的密鑰的標誌。如果一個設備計算這個特殊媒體密鑰值,它停止進行中的鑑別(authentication)、回放或記錄會話(session),並且在任何後繼的計算中將不使用該媒體密鑰值。
一個適當格式化的MKB將恰好有一個檢驗媒體密鑰記錄(VMKR)作為其第一個記錄。VMKR含有用正確的最終媒體密鑰加密的十六進位值DEADBEEF。VMKR的存在是強制性的,但是設備使用VMKR不是強制性的。設備可以在處理後繼記錄期間試圖用其當前的媒體密鑰值解密VMKR,每次查驗十六進位值DEADBEEF。如果設備成功地解密VMKR,設備已經計算了正確的最終媒體密鑰值,因此可以停止處理MKB。
一個適當格式化的MKB將恰好有一個計算媒體密鑰記錄(CMKR)。設備必須忽略在MKB中的第一個CMKR之後遇到的任何CMKRs。CMKR包括一個列域。該列域指示要被與該記錄一起使用的設備密鑰的相關聯的列值,如下文所述的那樣。CMKR也在與每個設備密鑰行對應的每個列中含有加密的密鑰數據。在處理CMKR之前,設備檢查對於某些i,該設備有一個具有相關聯的列值Cd_i==i的設備密鑰,。
如果設備沒有具有相關聯的列值的設備密鑰,設備就忽略其餘的CMKR。否則,設備就用上述條件中的值i、設備密鑰和r=Rd_i、c=Cd_i,從對於行r=Rd_i的加密密鑰數據中解密媒體密鑰值。產生的媒體密鑰值成為當前的媒體密鑰值。
一個適當格式化的MKB可以有零個或多個條件的計算媒體密鑰記錄(C-CMKR)。C-CMKR含有加密的條件數據(conditional data)。在各列中,C-CMKR含有雙重加密的密鑰數據。如果解密成功,如下所述,對於與這個C-CMKR一起使用的設備密鑰,加密的條件數據含有十六進位值DEADBEEF和相關聯的列值。設備用其當前的媒體密鑰值從加密的條件數據中解密條件數據。
在繼續處理記錄之前,設備查驗以下條件為真解密的條件數據含有十六進位值DEADBEEF,並且設備有一個具有從該條件數據解密的新的關聯的列值(i)的設備密鑰。如果這些條件中任何一項為假,設備就忽略其餘的C-CMKR。否則,設備就用上述條件中的值i、當前的媒體密鑰值和r=Rd_i、c=Cd_i,解密C-CMKR中相關列處的雙重加密的密鑰數據。設備然後用設備的第i個設備密鑰解密雙重加密的數據的第一個解密的結果。產生的媒體密鑰成為當前的媒體密鑰值。
在只讀區存儲驗證數據現在參看圖1,所示的是一個裝入到媒體讀取器(30)中的媒體(10)的是示例性實施例。媒體讀取器(30)從媒體(10)讀取內容(1)。如果媒體(10)包括一個可寫區(12),媒體讀取器(30)也可以向媒體(10)的可寫區(12)寫數據。如上所述,媒體讀取器(30)可以是任何能讀取存儲在媒體上的信息的設備。媒體讀取器(30)包括微處理器或者執行解密、計算和這裡討論的其它處理的其它電路。媒體(10)可以是任何用於存儲信息的媒體。
媒體(10)包括一個只讀區(13)和一個存儲在媒體(10)上的媒體密鑰塊(MKB)(11)。圖1顯示的MKB(11)被存儲在媒體(10)的可寫區(12)。然而,這並不脫離本發明的精神和範圍的情況下,MKB(11)也可以被存儲在媒體(10)的可讀區(13)。
部分MKB(11)可以被加密並包括一個檢驗媒體密鑰記錄(15)。在發明的一個實施例中,檢驗媒體密鑰記錄(15)也可被稱作「驗證數據」,它被加密並含有一個預選擇值。應當注意到,有些媒體讀取器(30)在MKB(11)的處理期間解密驗證數據(15)。在這種情況中,本發明不要求關於現有技術的額外讀操作以檢索驗證數據(15)。
驗證數據的一個拷貝(17)被存儲在媒體(10)的只讀區(13)。只讀區(13)可含有例如一個凸起的(embossed)數據區或DVD的剪輯區。在剪輯區中存儲驗證數據(17)的示例性實施例在下面描述。驗證數據的拷貝(17)按照加密驗證數據(15)的相同方式被加密。這樣,當驗證數據的拷貝(17)和驗證數據(15)被解密時,如果沒有發生過惡意篡改,則應當獲得相同的值。
還是參看圖1,媒體讀取器(30)從媒體(10)讀取信息。媒體讀取器(30)從媒體(10)讀取的信息包括內容(1)(在訪問被授權後)、MKB(31)、讀取器驗證數據(33)、和讀取器驗證數據的拷貝(35)。媒體讀取器(30)使用通過處理MKB而先前獲得的媒體密鑰來解密讀取器驗證數據(33)、讀取器驗證數據的拷貝(35)或者解密這二者。如果任一個解密的結果產生一個不等於預選擇值的解密值,媒體讀取器(30)就拒絕授權訪問存儲在媒體(10)上的內容(1)。如果解密值全部都與預選擇值匹配,媒體讀取器(30)就繼續授權過程。
應當注意,在內容(1)遭受盜用、直接攻擊、中間人攻擊和其它惡意篡改的環境中,媒體(10)上所存儲的數據項的值與媒體讀取器(30)所讀取的數據項的值可能不同。因此,為了區分媒體(10)上所存儲的驗證數據(15)和媒體讀取器(30)從媒體(10)所讀取的驗證數據(33),可以將驗證數據(15)稱作媒體驗證數據(15),將驗證數據(33)稱作讀取器驗證數據(33)。可以在媒體(10)上所存儲的其它數據項和媒體讀取器(30)所讀取的該數據項的值之間做出類似的區分。
媒體讀取器(30)比較讀取器驗證數據(33)與讀取器驗證數據的拷貝(35)。該比較可以是加密值或者解密值。也可以進行這兩種比較。如果讀取器驗證數據(33)的值與讀取器驗證數據的拷貝(35)的值相等,媒體讀取器(30)就授權訪問存儲在媒體(10)上的內容(1)。如果這些值不相等,媒體讀取器(30)就拒絕授權訪問存儲在媒體(10)上的內容(1)。
因此,通過結合授權訪問比較讀取器驗證數據(33)與讀取器驗證數據的拷貝(35),就可以檢測到插在媒體(10)與媒體讀取器(30)之間的中間人設備。結合比較驗證數據的兩個拷貝使用的對訪問內容進行授權的方法可以從現有技術中那些已知的方法中選取,例如包括從一個MKB解密一個媒體密鑰。通過比較讀取器驗證數據的各拷貝(33和35)的加密值或解密值,可以檢測到中間人對媒體驗證數據的任一拷貝(15或17)的改變。通過查驗讀取器驗證數據的任一解密拷貝中或者兩種解密值中的預選擇值,將檢測到中間人對媒體驗證數據的兩種拷貝的改變。
現在參看圖2,所示的是本發明的媒體讀取器(30)和媒體(10)的另一個示例性實施例。該實施例中,將MKB(51)存儲在媒體(10)上,以便跨在只讀區(13)與可寫區(12)之間的邊界,媒體驗證數據(55)存儲在只讀區(13)上。本實施例中不需要驗證數據的拷貝,因為媒體(10)的只讀區(13)的只讀性質保護驗證數據不被未經授權地篡改。
現在參看圖3,所示的是本發明的媒體讀取器(30)和媒體(70)的另一個示例性實施例。該實施例中,媒體(70)包括存儲內容的物理媒體和處理器或其它邏輯電路(72)這二者。例如,媒體(70)可以是一個包括有處理器的快閃記憶體(flash memory)陣列。另一個帶有處理器的媒體的例子是一個DVD驅動器,它帶有一個管理該驅動器的CPU。然而,本領域的技術人員將認識到,其它的帶有處理器的媒體的各種組合是顯而易見的。與其它實施例一樣,媒體也可以含有可寫區(12)。
本發明的另一個實施例包括一個帶有處理器和諸如DVD驅動器的輸入/輸出設備的個人計算機。帶有存儲在其上的內容(1)的媒體(10)被裝載到輸入/輸出設備中。當檢測到媒體(10)的存在時,或者得到用戶命令時,處理器試圖訪問存儲在媒體(10)上的內容。這樣,個人電腦的處理器起著媒體讀取器(30)的作用,而輸入/輸出設備起著媒體(10)的作用。可以將處理器配置成能處理媒體驗證數據(15)和媒體驗證數據的拷貝(17),如本文所述的那樣。對於本領域的技術人員來說顯而易見的是,媒體(10)與媒體讀取器(30)的組合構成一個用於保護和訪問內容(1)的系統。
使用消息鑑別碼(MAC)除了前面所討論的驗證數據,還可以採用消息鑑別碼。為了在本實施例中包括一個消息鑑別碼(MAC),媒體(70)利用一個通過媒體(70)與媒體讀取器(30)之間的鑑別和密鑰交換而建立的運行時會話密鑰(run-time session key),計算一個關於媒體驗證數據的拷貝(17)的媒體MAC(73)。實際上,媒體(70)用媒體MAC(73)對媒體MKB(11)電子籤名。
媒體讀取器(30)從媒體(70)讀取媒體MAC(73)。媒體讀取器(30)也讀取媒體驗證數據的拷貝(17),並使用與計算媒體MAC(73)所用的相同算法來計算一個關於媒體驗證數據的拷貝(35)的讀取器MAC(75)。
通過比較讀取器MAC(75)與媒體MAC(73),媒體讀取器(30)作出關於是否授予對媒體(70)的內容(1)的訪問權的第二決定。如果讀取器MAC(75)與媒體MAC(73)不同,媒體讀取器(30)就拒絕對媒體(70)的內容(1)的訪問。如果兩個MACs相同,媒體讀取器(30)就允許對媒體(70)的內容(1)的訪問。因此,媒體讀取器(30)檢查媒體的電子籤名。讀取器MAC與媒體MAC的計算和比較可以在授權過程期間的任何時候進行,包括在執行驗證數據完整性檢查之前或之後進行。
因此,MAC提供防止中間人對MKB(11)的改變的另一層保護。如果中間人設備在媒體驗證數據的拷貝(17)從媒體(10)被讀取時改變媒體驗證數據的拷貝(17),媒體MAC(73)與讀取器MAC(75)將是不同的。
現在參看圖4,所示的是本發明的一個對訪問存儲在媒體上的內容授權的過程(400)的實施例。在媒體被發行之前,將包括媒體驗證數據的MKB存儲在媒體上(框401)。可以將媒體驗證數據存儲在媒體的只讀區上或者將其存儲在媒體的可寫區上。如果媒體驗證數據被存儲在可寫區上,則在只讀區上存儲媒體驗證數據的拷貝(框403)。在框405中,發行媒體之前,將內容用正確的媒體密鑰加密後存儲在媒體上。在框407中,用戶把媒體插到媒體讀取器中或者按照所採用的媒體形式的要求將媒體與媒體讀取器連接。
另一個實施例包括一個加密和存儲內容的媒體。換言之,這個實施例的媒體可以是一個諸如CD-RW驅動器的內容記錄器。因此,媒體可以執行框404。
當檢測到媒體的存在時,或者得到來自用戶或其它設備的命令或請求時,在框409中,媒體讀取器從媒體讀取包括媒體驗證數據的媒體MKB。如果以前在媒體的只讀區上存儲過媒體驗證數據的拷貝,在框411中,則媒體讀取器也從媒體讀取該媒體驗證數據的拷貝。
然後在框413中,媒體讀取器可以將從媒體讀取的讀取器驗證數據的加密值與從媒體讀取的讀取器驗證數據的拷貝的加密值進行比較。如果這兩個值不同,在框414中,媒體讀取器拒絕授權對內容的訪問。否則,授權過程可以繼續到框415。
在框415和417,媒體讀取器解密從媒體讀取的讀取器驗證數據和從媒體讀取的讀取器驗證數據的拷貝。媒體讀取器然後可以如框419中所示的那樣利用通過處理MKB而獲得的媒體密鑰比較讀取器驗證數據的解密值和讀取器驗證數據拷貝的解密值。如果兩個值不同,媒體讀取器拒絕授權對內容的訪問。否則,授權過程可以繼續到框420。
在框420中,媒體讀取器將媒體驗證數據的解密值或媒體驗證數據拷貝的解密值與預選擇值相比較。或者,媒體讀取器將解密的媒體驗證數據和解密的媒體驗證數據拷貝這兩者與預選擇值相比較。如果任何一個比較都失敗,則媒體讀取器拒絕授權對內容的訪問。
在框421和423中,媒體和媒體讀取器以現有技術中已知的任何方式建立一個共享的會話密鑰(session key)。在框425,媒體讀取器計算關於從媒體讀取的讀取器MKB的讀取器哈希值的讀取器MAC。在框427,媒體同樣地計算關於該媒體MKB的媒體哈希值的媒介MAC。在框426和429,驅動器然後從媒體讀取媒體MAC並將其與讀取器MAC比較。如果這兩個值不同,在框414中,媒體讀取器拒絕授權對內容的訪問。否則,驅動器可以授權對內容的訪問,或者可以處理MKB,如框431中所示。
另一個示例性實施例包括處理MKB以獲得正確的媒體密鑰;用該媒體密鑰解密驗證數據;檢驗含有正確的預選擇值的驗證數據;和比較MKB中的驗證數據的加密值和這個加密的驗證數據,該加密驗證數據與已經由設備和讀取器成功地計算了一個MAC有關。
另一個示例性實施例包括成功地計算一個關於驗證數據的MAC;解密存儲在媒體的只讀區上的驗證數據;和檢驗含有正確的預選擇值的驗證數據。
另一個示例性實施例包括在讀取驗證數據的兩個拷貝之前計算和比較MACs。這樣,當讀取器讀取驗證數據的任何一個拷貝時,MAC會伴隨著驗證數據。
在只讀區的CA(剪輯區)區中存儲驗證數據在一個示例性實施例中,如圖5中所示,可以將驗證數據(15)存儲在只讀區(13)中的一個稱作剪輯區(19)的特殊區(也稱CA或CA區)中。CA區是一定媒體類型的一部分,其具有的物理特性使得難以用普通的消費記錄設備/媒體模仿。CA區要求用特殊的製造設備來寫,使其內容難以被拷貝。此外,由於CA是用物理上與用來讀取媒體的其它區的過程不同的過程來讀取的,設備能在物理上區分出寫到CA的內容與可能是用普通記錄器寫在普通可記錄媒體上的內容。
本領域的技術人員應當明白,術語」CA」或「CA區」應被解釋為是具有本文所述的一般特性的區,術語」CA」或「CA區」不排除將具有這裡所述的CA的特性的其它區解釋為CA的等同物。
CAs的例子包括DVD-ROM(數字通用盤-只讀存儲器)和DVD-RAM(數字通用盤-隨機存取存儲器)的分段剪輯區(BCA);和DVD-R(數字通用盤-可記錄的)和DVD-RW(數字通用盤-可重寫的)的窄分段剪輯區(NBCA)。(DVD-Rs和DVD-RWs將一起被稱作DVD-R/Ws)。
驗證數據可以包括檢驗媒體密鑰記錄(15)的拷貝,如上所述。在其它實施例中,驗證數據可以包括檢驗媒體密鑰記錄驗證數據區的拷貝,和/或MKB上的哈希函數,通常所說的MKB_Hash。
包含MKB_Hash的驗證數據驗證數據可包含MKB_Hash。這例如能幫助保持與DVD-RAMs的兼容,其中MKB_Hash被存儲在基於PC的系統中的DVD-RAMs只讀區的CDA中,該基於PC的系統具有採用CPRM內容保護的驅動器-主機配置。在這種系統中,DVD驅動器和PC主機共同起著用於CPRM保護的內容的記錄設備和/或回放設備的作用。在驅動器-主機配置中,主機驗證它從驅動器接收的MKB的完整性。這是通過使用消息鑑別碼(MAC)計算算法進行的。
在DVD-R/W格式中,例如,製造商計算MKB_Hash,並將結果存儲在NBCA中。例如,可以將MKB_Hash作為C2_H(MKB)計算,其中C2_H是根據CPRM技術中使用的C2加密算法的一個哈希過程(hashingprocedure),其中MKB包括整個MKB幀減去MKB描述符。在驅動器-主機配置中,驗證數據包含MKB_Hash,它被用來驗證DVD-RAM和DVD-R/W上的MKB的完整性,如圖6中所示的那樣。
根據主機(61)的請求,驅動器(60)從DVD-R/W請求第一個MKB包(0號MKB包),並從NBCA(19)讀取MKB_Hash(15)。利用MAC計算算法(62),計算關於MKB_Hash(15)值的驅動器MAC,m1(63),然後用m1(63)替換0號MKB包的MKB描述符的一部分。然後將修改的MKB描述符返回給主機(61)。如果有更多的MKB包可用,主機(61)就從驅動器(60)讀取MKB包。然後,主機(61)用該MKB以及在MKB幀中跟隨其後的任何未用的(零值的)字節按下式計算值hh=C2_H(MKB和尾隨的零),其中C2_H(65)代表計算MKB_Hash(15)所用的哈希函數。
主機然後利用產生的h值,用MAC算法(62)計算主機MAC m2(66)m2=DVD-MAC(h)。
主機(61)的比較函數(67)通過確定是否m1=m2來驗證所接收的MKB(11)的完整性。如果驗證失敗,主機(61)就中斷進行中的回放或記錄會話(session)。否則,主機計算一個媒體獨特的密鑰(Kmu)。注意,主機(61)在計算媒體密鑰(Kmu)值之前還是之後驗證MKB(13)的完整性是按規定執行的。
圖7中表示一個在驅動器-主機配置中的MKB驗證方法,該方法始於框700。在框702,驅動器從媒體讀取MKB_Hash,在框704計算關於該MKB_Hash的MAC算法。在框706生成一個驅動器MAC m1,在框708替換MKB的MKB描述符的各部分。在框710將修改了的MKB描述符發送到主機。然後在框712,主機從媒體請求MKB,在框714計算關於該MKB的MAC算法。在框716,生成一個主機MAC m2。在框718,將m1與m2比較,如果m1不等於m2,則在框720拒絕訪問;或者,如果m1等於m2,則在框722授權訪問。該方法在框724結束。
包括確認數據的檢驗驗證數據可包含檢驗媒體密鑰記錄的確認數據域的一個拷貝。這例如能幫助保持與DVD-RAMs的兼容,其中將檢驗媒體密鑰記錄的確認數據域的一個拷貝存儲在採用CPRM內容保護的消費電子設備(此後稱作」CE」設備)中的DVD-RAMs只讀區的CDA中。
為了實現這一點,將MKB的檢驗媒體密鑰記錄的確認數據域的一個拷貝存儲在NBCA中。如圖8中所示,CE設備(80)通過處理(81)DVD-R/W盤中的MKB(11)來鑑別DVD-R/W上的MKB(11),如上所述。CE設備(80)用生成的媒體密鑰(Km)(83)解密(82)存儲在DVD-R/W的NBCA中的確認數據域(17)的拷貝,確保在繼續之前解密到十六進位值DEADBEEF(84)。
圖9中表示一個在驅動器-主機配置中的MKB驗證方法,該方法始於框900。在框902,處理MKB以生成一個媒體密鑰。然後在框904,CE設備讀取確認數據。在框906,解密器用媒體密鑰解密確認數據。如果如在框908處所查驗的那樣,確認數據解密到預先確定的值(例如十六進位值DEADBEEF),則在框910,CE設備授予對內容的訪問權。否則,在框912,CE設備拒絕對內容的訪問。該方法在框914結束。
保持與DVD-RAMs的兼容在示例性實施例中,不考慮所用的設備,能夠實現在例如DVD-RAMs與DVD-R/Ws之間的完全兼容。因此,將MKB_Hash和確認數據二者都存儲在DVD-R/Ws的NBCA中。通過在盤的剪輯區中存儲兩種類型的驗證數據,對媒體讀取器不加改變或稍加改變就可以檢驗DVD-RAMs和DVD-R/RWs上的MKB的完整性。
通過將MKB_Hash(15)放入媒體的CA(19)中,就能保持與當前存在的用MKB_Hash(15)驗證MKBs(11)的媒體類型的兼容。設備只要作稍微的調整,以確定是要從DVD-RAM的控制數據區(CDA)讀取MKB_Hash還是要從DVD-R/RW的NBCA讀取MKB_Hash。在CPRM格式中,媒體讀取器能通過讀取媒體的MKB來區分媒體類型。此外,驅動器接口命令和返回數據對於DVD-R/W和DVD-RAM是相同的,並且主機用以前由CPRM規範定義的相同的程序來檢驗MKB的真實性(authenticity)。
對CE設備稍作調整,就可以在消費電子播放器/記錄器中檢驗DVD-RAMs和DVD-R/RWs二者上的MKB的完整性。反之,以如上所述的從媒體的只讀區讀取驗證數據的方式,CE設備從DVD-RAM的控制數據區讀取驗證數據用於檢驗MKBs的真實性,CE設備還從DVD-R/W的NBCA讀取MKB_Hash用於檢驗MKBs的真實性。再者,媒體讀取器也能通過讀取CPRM格式的媒體的MKB以在媒體類型之間做出區分。
結論因此,本發明的實施例提供一種穩固方法來驗證媒體密鑰塊以保護內容,如DVD-R/W媒體上的CPRM內容的,以防止未授權的拷貝。通過使用本發明的新型盤和新型設備能夠得到加強保護。同時,對媒體讀取器稍加改變或不加改變就能保持新舊設備之間以及新舊媒體之間完全的互操作性。
在前面的說明中,已經結合本發明的具體實施例說明了本發明。然而,在不脫離本發明更寬的精神和範圍的情況下可以對本發明作出各種改變和變更,這是顯而易見的。因此本說明書和附圖應被視為是解釋性的而不是限制性的。
例如,儘管描述了示例性實施例,本領域的技術人員應當明白,本發明的構思可以被應用到其它類型的內容、內容保護系統和媒體格式。例如,儘管本文中描述的示例性實施例是特定於DVD媒體的,因為它們關係到當前的保護形式(即CPRM),不過本領域的普通技術人員都明白,當前存在的或者未來將開發的其它保護形式也是適用的。
此外,儘管本文中描述的示例性實施例涉及到一個稱作剪輯區的區,應當明白,剪輯區是具有本文中所述特徵的一個區,這種區並不僅僅限於被稱作或含有術語剪輯區的區。例如,DVD-ROMs和DVD-RAMs包含一個稱作分段剪輯區的剪輯區,而DVD-Rs和DVD-RWs包含一個稱作窄分段剪輯區的剪輯區。
權利要求
1.一種方法,包含從媒體上的第一區讀取媒體密鑰塊;從媒體上的第二區讀取與媒體塊有關的驗證數據;和用驗證數據驗證媒體密鑰塊。
2.權利要求1的方法,其中,所述用驗證數據驗證媒體密鑰塊包含比較媒體密鑰塊與驗證數據;和如果媒體密鑰塊對應於驗證數據則授予對內容的訪問權。
3.權利要求2的方法,其中,如果媒體密鑰塊與驗證數據匹配則媒體密鑰塊對應於驗證數據。
4.權利要求2的方法,其中,如果關於媒體密鑰塊的一個哈希函數與驗證數據匹配則媒體密鑰塊對應於驗證數據。
5.權利要求4的方法,其中,驗證數據包含媒體密鑰塊的一個哈希函數,所述驗證媒體密鑰塊包含根據驗證數據用消息鑑別碼(MAC)算法計算第一MAC;通過對從媒體的只讀區讀取的媒體密鑰塊使用哈希函數來計算一個讀取器MKB;根據讀取器MKB用消息鑑別碼(MAC)算法計算第二MAC;比較第一MAC和第二MAC;和如果第一MAC與第二MAC匹配則驗證MKB的真實性。
6.權利要求1的方法,其中,媒體包括DVD-RAM(數字通用盤-隨機存取存儲器),第二區包括該媒體的控制數據區。
7.權利要求1的方法,其中,媒體包括DVD-R(數字通用盤-可記錄的),第二區包括該媒體的窄分段剪輯區。
8.權利要求1的方法,其中,媒體包括DVD-RW(數字通用盤-可重寫的),第二區包含該媒體的窄分段剪輯區。
9.一種方法,包含在第一設備上讀取在媒體的只讀區上存儲的媒體密鑰塊;讀取等於媒體密鑰塊的一個哈希函數的第一驗證數據,該驗證數據存儲在媒體的只讀區的剪輯區上;和根據第一驗證數據計算媒體鑑別碼(MAC)算法以形成第一MAC;和在第二設備上計算等於從媒體的只讀區讀取的媒體密鑰塊的哈希函數的第二驗證數據;根據第二驗證數據計算媒體鑑別碼(MAC)算法以形成第二MAC;比較第一MAC和第二MAC;和如果第一MAC等於第二MAC則驗證從媒體的只讀區讀取的媒體密鑰塊的真實性。
10.權利要求9的方法,其中,媒體包括DVD-R(數字通用盤-可記錄的),第二區包括該媒體的窄分段剪輯區。
11.權利要求9的方法,其中,媒體包括DVD-RW(數字通用盤-可重寫的),第二區包括該媒體的窄分段剪輯區。
12.一種方法,包含從媒體的只讀區的第一區讀取媒體密鑰塊;由媒體密鑰塊生成媒體密鑰;從媒體的只讀區的第二區讀取與媒體密鑰塊有關的驗證數據;用媒體密鑰解密驗證數據;和如果驗證數據解密到一個預定義值則驗證媒體密鑰塊的真實性。
13.權利要求12的方法,其中,驗證數據包含媒體密鑰塊的檢驗媒體密鑰記錄的確認數據域。
14.權利要求12的方法,其中,預定義值包括等於DEADBEEF的十六進位值。
15.權利要求12的方法,其中,只讀區的第二區包括媒體的剪輯區。
16.權利要求15的方法,其中,媒體是用可記錄媒體的內容保護(CPRM)格式保護的。
17.權利要求16的方法,其中,剪輯區包括窄剪輯區,媒體是以下的其中之一DVD-R(數字通用盤-可記錄的);和DVD-RW(數字通用盤-可重寫的)。
18.一種方法,包含確定與要被讀取的媒體相關聯的媒體類型;從媒體的第一區讀取媒體密鑰塊;從媒體上的第二區讀取與媒體密鑰塊有關的驗證數據,該第二區根據的是所確定的媒體類型;和用驗證數據驗證媒體密鑰塊。
19.權利要求18的方法,其中,所述用驗證數據驗證媒體密鑰塊包含比較媒體密鑰塊與驗證數據;和如果媒體密鑰塊對應於驗證數據則授予對內容的訪問權。
20.權利要求18的方法,其中,媒體類型包含下述的其中之一DVD-R(數字通用盤-可記錄的);和DVD-RW(數字通用盤-可重寫的);且第二區包括該媒體的只讀區的分段剪輯區。
21.權利要求18的方法,其中,媒體類型包含DVD-RAM(數字通用盤-隨機存取存儲器),第二區包括該媒體的只讀區的控制數據區。
22.一種在其上存儲有表示指令序列的數據的機器可讀的媒體,該指令序列在被處理器執行時使處理器執行以下操作從媒體上的第一區讀取媒體密鑰塊;從媒體上的第二區讀取與媒體密鑰塊有關的驗證數據;和用驗證數據驗證媒體密鑰塊。
23.權利要求22的機器可讀的媒體,其中,所述用驗證數據驗證媒體密鑰塊包含比較媒體密鑰塊與驗證數據;和如果媒體密鑰塊對應於驗證數據則授予對內容的訪問權。
24.權利要求23的機器可讀的媒體,其中,如果媒體密鑰塊與驗證數據匹配則媒體密鑰塊對應於驗證數據。
25.權利要求23的機器可讀的媒體,其中,如果關於媒體密鑰塊的一個哈希函數與驗證數據匹配則媒體密鑰塊對應於驗證數據。
26.一種在其上存儲有表示指令序列的數據的機器可讀的媒體,該指令序列在被處理器執行時使處理器執行以下操作從媒體的只讀區的第一區讀取媒體密鑰塊;由媒體密鑰塊生成媒體密鑰;從媒體的只讀區的第二區讀取與媒體密鑰塊有關的驗證數據;用媒體密鑰解密驗證數據;和如果驗證數據解密到一個預定義值則驗證媒體密鑰塊的真實性。
27.權利要求26的機器可讀的媒體,其中,驗證數據包含媒體密鑰塊的檢驗媒體密鑰記錄的確認數據域。
28.權利要求26的機器可讀的媒體,其中,只讀區的第二區包括媒體的剪輯區。
29.一種機器可讀的媒體,包含媒體的可寫區;存儲在媒體的可寫區上的內容;媒體的只讀區,其具有一個剪輯區和一個非剪輯區;存儲在非剪輯區上的媒體密鑰塊;和存儲在剪輯區上的、用於驗證媒體密鑰塊的真實性的驗證數據。
30.權利要求29的機器可讀的媒體,其中,驗證數據包含一個加密了的預選擇值。
31.權利要求30的機器可讀的媒體,其中,所述加密了的預選擇值包含媒體密鑰塊的檢驗媒體密鑰記錄。
32.權利要求29的機器可讀的媒體,其中,驗證數據包含關於媒體密鑰塊的一個哈希函數。
33.權利要求29的機器可讀的媒體,其中,驗證數據包含包含媒體密鑰塊的檢驗媒體密鑰記錄的確認數據域的拷貝。
34.權利要求29的機器可讀的媒體,其中,媒體包括數字通用盤(DVD)。
35.一個系統,包含一個媒體,具有可寫區;存儲在可寫區上的內容;只讀區,其具有一個剪輯區和一個非剪輯區;存儲在非剪輯區上的媒體密鑰塊;和存儲在剪輯區上的、用於驗證媒體密鑰塊的真實性的、等於媒體密鑰塊的一個哈希函數的第一驗證數據;一個驅動器,用於讀取存儲在媒體的只讀區上的媒體密鑰塊;從剪輯區讀取第一驗證數據;和根據第一驗證數據計算媒體鑑別碼(MAC)算法以形成第一MAC;和一個主機,用於計算等於從媒體的只讀區讀取的媒體密鑰塊的哈希函數的第二驗證數據;根據第二驗證數據計算媒體鑑別碼(MAC)算法以形成第二MAC;比較第一MAC和第二MAC;和如果第一MAC等於第二MAC則驗證從媒體的只讀區讀取的媒體密鑰塊的真實性。
36.權利要求35的系統,其中,媒體包括下述的其中之一DVD-R(數字通用盤-可記錄的);和DVD-RW(數字通用盤-可重寫的)。
37.權利要求36的系統,其中,剪輯區包含媒體的只讀區的窄分段剪輯區。
38.一個系統,包含一個媒體,具有可寫區;存儲在可寫區上的內容;只讀區,其具有一個剪輯區和一個非剪輯區;存儲在非剪輯區上的媒體密鑰塊;和存儲在剪輯區上的、用於驗證媒體密鑰塊的真實性的驗證數據;和一個設備,用於從媒體上的只讀區的第一區讀取媒體密鑰塊;由媒體密鑰塊生成媒體密鑰;從媒體的只讀區的第二區讀取與媒體密鑰塊有關的驗證數據;用媒體密鑰解密驗證數據;和如果驗證數據解密到一個預定義值則驗證媒體密鑰塊的真實性。
39.權利要求38的系統,其中,所述設備包括消費電子設備。
40.權利要求38的系統,其中,所述媒體包括DVD-R(數字通用盤-可記錄的),第二區包含媒體的窄分段剪輯區。
41.權利要求38的系統,其中,所述媒體包括DVD-RW(數字通用盤-可重寫的),第二區包括媒體的窄分段剪輯區。
42.一種裝置,包含用於從媒體的只讀區的第一區讀取媒體密鑰塊的裝置;用於由媒體密鑰塊生成媒體密鑰的裝置;用於從媒體的只讀區的第二區讀取與媒體密鑰塊有關的驗證數據的裝置;用於用媒體密鑰解密驗證數據的裝置;和用於如果驗證數據解密到一個預定義值則驗證媒體密鑰塊的真實性的裝置。
43.權利要求42的裝置,其中,驗證數據包括媒體密鑰塊的檢驗媒體密鑰記錄的確認數據域。
44.權利要求42的裝置,其中,只讀區的第二區包括媒體的剪輯區。
全文摘要
一種通過在諸如DVD-R或DVD-RW的媒體的剪輯區存儲的驗證數據來檢驗媒體密鑰塊(MKB)的完整性的方法。在一個實施例中,驗證數據包含一個關於媒體密鑰塊的哈希函數,在另一個實施例中,驗證數據包含MKB的檢驗媒體密鑰記錄的驗證數據域。
文檔編號G11B20/00GK1729526SQ01822759
公開日2006年2月1日 申請日期2001年12月21日 優先權日2000年12月28日
發明者M·裡普利, T·卡託, J·羅特斯皮克, A·伊施哈拉, Y·福庫施馬 申請人:英特爾公司