專利名稱:信息處理裝置、盤、信息處理方法和程序的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種信息處理裝置、盤、信息處理方法和程序。更具 體地講,本發(fā)明涉及一種控制對存儲在信息記錄介質(zhì)中的內(nèi)容的訪問 的信息處理裝置、盤、信息處理方法和程序。
背景技術(shù):
諸如DVD (數(shù)字多功能盤)和藍光盤(注冊商標)的盤被用作 內(nèi)容記錄介質(zhì)。例如,電影內(nèi)容等被記錄在盤(例如,ROM盤)中 并且提供給用戶。這些盤記錄的內(nèi)容大部分是其版權(quán)、發(fā)行權(quán)等由創(chuàng) 作者或發(fā)行人所擁有的內(nèi)容。這些內(nèi)容受到訪問控制,用于例如防止 未授權(quán)拷貝(復制)等。
內(nèi)容版權(quán)保護的標準之一是AACS (Advanced Access Content System,高級訪問內(nèi)容系統(tǒng))。AACS定義了基于高級公共密鑰密碼 術(shù)(AES密碼術(shù))的版權(quán)保護技術(shù)。在AACS的定義中,當執(zhí)行例 如從盤再現(xiàn)內(nèi)容的內(nèi)容訪問處理或內(nèi)容拷貝記錄處理時,需要讀取記 錄在盤中的識別信息,例如作為盤唯一識別信息(介質(zhì)ID)的 PMSN (預記錄介質(zhì)序列號),并且根據(jù)在AACS中定義的序列執(zhí)行 諸如認證處理或加密處理的處理。針對根據(jù)AACS定義的內(nèi)容存儲 盤,作為盤唯一識別信息的PMSN被記錄在盤的BCA (Burst Cutting Area,群刻區(qū))中。
BCA區(qū)域與正常的數(shù)據(jù)記錄區(qū)域不同,數(shù)據(jù)是通過與正常數(shù)據(jù)記錄模式不同的機械切割記錄的。因此,難以在BCA區(qū)域中重寫入 記錄數(shù)據(jù)。同樣在再現(xiàn)處理中,需要一種與正常數(shù)據(jù)再現(xiàn)處理不同的 特殊讀取處理。
圖1是示出在記錄有內(nèi)容的盤(信息記錄介質(zhì))100中的記錄數(shù) 據(jù)的視圖。盤100例如是DVD (數(shù)字多功能盤)、藍光盤(注冊商 標)等,并且諸如電影的內(nèi)容被記錄在數(shù)據(jù)記錄區(qū)域中。
盤100包括數(shù)據(jù)記錄區(qū)域110和BCA區(qū)域(群刻區(qū))120,其 中,在該記錄區(qū)域110中記錄內(nèi)容等,在該BCA區(qū)域(群刻區(qū)) 120中記錄作為盤唯一識別信息的介質(zhì)ID (例如,PMSN:預記錄介 質(zhì)序列號)121。
例如,下面的數(shù)據(jù)被記錄在盤100的數(shù)據(jù)記錄區(qū)域110中。例 如,記錄的數(shù)據(jù)包括諸如電影的內(nèi)容111;應用程序112,其是用 于執(zhí)行諸如再現(xiàn)或拷貝內(nèi)容的處理的內(nèi)容訪問控制的程序;和BCA 驅(qū)動程序113,其是用于執(zhí)行從BCA區(qū)域120讀取介質(zhì)ID的處理的 程序。要注意,BCA驅(qū)動程序113與從該盤讀取數(shù)據(jù)的驅(qū)動裝置執(zhí) 行認證處理從而驗證驅(qū)動裝置的合法性,并且僅當驅(qū)動裝置的合法性 得到驗證時,BCA驅(qū)動程序113才指示驅(qū)動裝置讀取介質(zhì)ID (PMSN) 。 BCA驅(qū)動程序包含在認證處理中使用的密鑰114。
作為盤唯一識別信息的介質(zhì)ID (PMSN) 121 :故記錄在盤100的 BCA區(qū)域120中。如上所述,BCA區(qū)域與正常數(shù)據(jù)記錄區(qū)域不同, 并且數(shù)據(jù)是通過與正常數(shù)據(jù)記錄模式不同的機械切割記錄的。因此, 難以在BCA區(qū)域中重寫入記錄數(shù)據(jù)。同樣在再現(xiàn)處理中,需要一種 與正常數(shù)據(jù)再現(xiàn)處理不同的特殊讀取處理。
根據(jù)AACS的一個定義,當將記錄在盤記錄區(qū)域110中的內(nèi)容 111拷貝到諸如硬盤或便攜式裝置的另一個介質(zhì)時,需要從外部管理 服務(wù)器獲取拷貝許可信息。為了獲取拷貝許可信息,需要將介質(zhì)ID 121發(fā)送給管理服務(wù)器。
然而,可以僅僅由符合AACS定義的BCA驅(qū)動程序113執(zhí)行從 BCA區(qū)域120讀取介質(zhì)ID 121的處理。BCA驅(qū)動程序113根據(jù)AACS定義,與裝栽了盤100的驅(qū)動裝置執(zhí)行相互認證,驗證驅(qū)動裝 置和BCA驅(qū)動程序兩者的合法性,讀取介質(zhì)ID 121,然后將獲取的 介質(zhì)ID提供給應用程序。
將參照圖2描述這個處理序列的例子。圖2示出了應用程序112 和BCA驅(qū)動程序113。諸如用于再現(xiàn)盤的PC或再現(xiàn)裝置的信息處 理裝置從盤IOO讀取并執(zhí)行應用程序112和BCA驅(qū)動程序113。
要注意,BCA驅(qū)動程序113是根據(jù)AACS定義產(chǎn)生的程序,并 且執(zhí)4亍才艮據(jù)AACS定義的^人證處理以及來自BCA區(qū)域的介質(zhì)ID的 讀取。另一方面,應用程序112是可由第三方任意創(chuàng)建的程序。因 此,應用程序112可能是惡意程序,例如為了騙取介質(zhì)ID信息而產(chǎn) 生的程序。
應用程序112從BCA驅(qū)動程序113調(diào)用API (應用編程接 口 )。該API包括要求BCA驅(qū)動程序獲取介質(zhì)ID的函數(shù)。該API 是公開的并且可由第三方使用。
在步驟Sll中,BCA驅(qū)動程序113響應于來自應用程序112的 API調(diào)用而啟動提供介質(zhì)ID的處理的一系列處理。首先,在步驟 S12中,BCA驅(qū)動程序113與從盤讀取數(shù)據(jù)的驅(qū)動裝置執(zhí)行認證處 理,以檢查驅(qū)動裝置和BCA驅(qū)動程序的合法性。根據(jù)AACS定義執(zhí) 行iU正處理。
在步驟S13中,當沒有得到認證并且雙方的合法性沒有得到驗證 時,向應用程序112發(fā)送錯誤通知,并且該處理結(jié)束而不讀取介質(zhì) ID。
另一方面,在步驟S13中,當?shù)玫秸J證并且雙方的合法性得到驗 證時,在步驟S14中,指示驅(qū)動裝置從BCA區(qū)域讀取介質(zhì)ID,并且 該讀取的介質(zhì)ID被提供給應用程序112。
然后,應用程序112將從BCA驅(qū)動程序113獲取的介質(zhì)ID發(fā) 送給管理服務(wù)器,然后接收內(nèi)容拷貝許可信息或其它服務(wù)信息。
在以上的一系列處理中,存在如下問題應用程序112是可由第 三方任意創(chuàng)建的程序并且它可能是諸如為騙取介質(zhì)ID信息而產(chǎn)生的程序的惡意程序。在圖2所示的序列中,即使當使用惡意應用程序 時,利用z^開的API也能夠容易地從BCA驅(qū)動程序獲取介質(zhì)ID。 因此,存在介質(zhì)ID會被騙取或者可以利用騙取的介質(zhì)ID欺騙性地 使用內(nèi)容的可能性。
發(fā)明內(nèi)容
需要提供一種防止盤的介質(zhì)ID被騙取并且實現(xiàn)對內(nèi)容的嚴格訪 問控制的信息處理裝置、盤、信息處理方法和程序。
根據(jù)本發(fā)明的第一實施例,提供了一種信息處理裝置,其使用記 錄在盤中的內(nèi)容,所述信息處理裝置包括應用程序執(zhí)行單元,用于 執(zhí)行應用程序,該應用程序是用于利用記錄在盤中的內(nèi)容的程序;以 及BCA (群刻區(qū))驅(qū)動程序執(zhí)行單元,用于執(zhí)行BCA驅(qū)動程序,該 BCA驅(qū)動程序是用于指示驅(qū)動裝置執(zhí)行讀取在盤的BCA區(qū)域中記錄 的介質(zhì)ID的處理的程序,其中,所述BCA驅(qū)動程序執(zhí)行單元響應 于來自所述應用程序執(zhí)行單元的第一 API (應用編程接口 )調(diào)用,對 所述BCA驅(qū)動程序執(zhí)行篡改校驗處理,并且當驗證了在所迷BCA 驅(qū)動程序中不存在篡改時,執(zhí)行向所述應用程序執(zhí)行單元提供指向用 于執(zhí)行讀取介質(zhì)ID的處理的第二 API的指針的處理。
在根據(jù)本發(fā)明一個實施例的信息處理裝置中,第一 API是對第 三方公開的公開API,并且第二 API是對第三方不公開的私有 API。
在根據(jù)本發(fā)明一個實施例的信息處理裝置中,所述BCA驅(qū)動程 序執(zhí)行單元響應于來自所迷應用程序的第二 API調(diào)用,與所述驅(qū)動 裝置執(zhí)行認證處理,并且當驗證了所述BCA驅(qū)動程序和所述驅(qū)動裝 置的相互的合法性時,指示所述驅(qū)動裝置讀取所述介質(zhì)ID。
在根據(jù)本發(fā)明一個實施例的信息處理裝置中,所述BCA驅(qū)動程 序執(zhí)行單元響應于來自所述應用程序的第二 API調(diào)用,對所述BCA 驅(qū)動程序執(zhí)行篡改校驗處理,并且當驗證了在所述BCA驅(qū)動程序中 不存在篡改時,與所述驅(qū)動裝置執(zhí)行認證處理。在根據(jù)本發(fā)明一個實施例的信息處理裝置中,每當所述BCA驅(qū) 動程序執(zhí)行一個步驟時,所述BCA驅(qū)動程序執(zhí)行單元對所述BCA 驅(qū)動程序執(zhí)行墓改校驗處理。
在根據(jù)本發(fā)明一個實施例的信息處理裝置中,所述BCA驅(qū)動程 序執(zhí)行單元執(zhí)行向所述應用程序執(zhí)行單元提供混合了偽指針和指向所 述第二 API的指針的數(shù)據(jù)的處理。
在根據(jù)本發(fā)明一個實施例的信息處理裝置中,所述應用程序和所 述BCA驅(qū)動程序被記錄在盤中,并且所述應用程序執(zhí)行單元和所述 BCA驅(qū)動程序執(zhí)行單元分別讀取和執(zhí)行記錄在盤中的所述應用程序 和所述BCA驅(qū)動程序。
根據(jù)本發(fā)明的第二實施例,提供了一種信息處理裝置,其使用記 錄在盤中的內(nèi)容,所述信息處理裝置包括應用程序執(zhí)行單元,用于 執(zhí)行應用程序,該應用程序是用于利用記錄在盤中的內(nèi)容的程序;以 及BCA (群刻區(qū))驅(qū)動程序執(zhí)行單元,用于執(zhí)行BCA驅(qū)動程序,該 BCA驅(qū)動程序是用于指示驅(qū)動裝置執(zhí)行讀取在盤的BCA區(qū)域中記錄 的介質(zhì)ID的處理的程序,其中,所述BCA驅(qū)動程序包括篡改校驗 數(shù)據(jù),并且其中,所迷BCA驅(qū)動程序執(zhí)行單元響應于來自所述應用 程序執(zhí)行單元的第一 API (應用編程接口 )調(diào)用,通過應用所述篡改 校驗數(shù)據(jù)對所述BCA驅(qū)動程序執(zhí)行篡改校驗處理,并且當驗證了在 所述BCA驅(qū)動程序中不存在篡改時,執(zhí)行向所述應用程序執(zhí)行單元 提供指向用于執(zhí)行讀取介質(zhì)ID的處理的第二 API的指針的處理。
根據(jù)本發(fā)明的第三實施例,提供了一種信息處理裝置,其使用記 錄在盤中的內(nèi)容,所述信息處理裝置包括應用程序執(zhí)行單元,用于 執(zhí)行應用程序,該應用程序是用于利用記錄在盤中的內(nèi)容的程序;以 及BCA (群刻區(qū))驅(qū)動程序執(zhí)行單元,用于執(zhí)行BCA驅(qū)動程序,該 BCA驅(qū)動程序是用于指示驅(qū)動裝置執(zhí)行讀取在盤的BCA區(qū)域中記錄 的介質(zhì)ID的處理的程序,其中,所述BCA驅(qū)動程序包括通過以預 定數(shù)據(jù)單位將構(gòu)成所述BCA驅(qū)動程序的數(shù)據(jù)的數(shù)值相加而獲得的、 作為篡改校驗數(shù)據(jù)的校驗和數(shù)據(jù),并且其中,所述BCA驅(qū)動程序執(zhí)行單元響應于來自所述應用程序執(zhí)行單元的第一 API (應用編程接 口 )調(diào)用,通過應用所述校驗和數(shù)據(jù)對所述BCA驅(qū)動程序執(zhí)行篡改 校驗處理,并且當驗證了在所述BCA驅(qū)動程序中不存在篡改時,執(zhí) 行向所述應用程序執(zhí)行單元提供指向用于執(zhí)行讀取介質(zhì)ID的處理的 第二 API的指針的處理。
根據(jù)本發(fā)明的第四實施例,提供了一種信息處理裝置,其使用記 錄在盤中的內(nèi)容,所述信息處理裝置包括應用程序執(zhí)行單元,用于 執(zhí)行應用程序,該應用程序是用于利用記錄在盤中的內(nèi)容的程序;以 及BCA (群刻區(qū))驅(qū)動程序執(zhí)行單元,用于執(zhí)行BCA驅(qū)動程序,該 BCA驅(qū)動程序是用于指示驅(qū)動裝置執(zhí)行讀取在盤的BCA區(qū)域中記錄 的介質(zhì)ID的處理的程序,其中,所述BCA驅(qū)動程序包括篡改校驗 數(shù)據(jù)和所述篡改校驗數(shù)據(jù)的哈希值,并且其中,所述BCA驅(qū)動程序 執(zhí)行單元響應于來自所述應用程序執(zhí)行單元的第一 API (應用編程接 口 )調(diào)用,通過應用所述篡改校驗數(shù)據(jù)對所述BCA驅(qū)動程序執(zhí)行篡 改校驗處理,并且通過應用所述哈希值對所述篡改校驗數(shù)據(jù)執(zhí)行篡改 校驗處理,并且當驗證了在所述BCA驅(qū)動程序中不存在篡改并且在 所述墓改校驗數(shù)據(jù)中不存在篡改時,執(zhí)行向所述應用程序執(zhí)行單元提 供指向用于執(zhí)行讀取介質(zhì)ID的處理的第二 API的指針的處理。
根據(jù)本發(fā)明的第五實施例,提供了一種信息處理裝置,其使用記 錄在盤中的內(nèi)容,所述信息處理裝置包括應用程序執(zhí)行單元,用于 執(zhí)行應用程序,該應用程序是用于利用記錄在盤中的內(nèi)容的程序;以 及BCA (群刻區(qū))驅(qū)動程序執(zhí)行單元,用于執(zhí)行BCA驅(qū)動程序,該 BCA驅(qū)動程序是用于指示驅(qū)動裝置執(zhí)行讀取在盤的BCA區(qū)域中記錄 的介質(zhì)ID的處理的程序,其中,所述BCA驅(qū)動程序執(zhí)行單元響應 于來自所述應用程序執(zhí)行單元的第一 API (應用編程接口 )調(diào)用,執(zhí) 行向所述應用程序執(zhí)行單元提供指向用于執(zhí)行讀取介質(zhì)ID的處理的 第二 API的指針的處理。
根據(jù)本發(fā)明的第六實施例,提供了一種盤,包括內(nèi)容;應用程 序,其是用于利用所述內(nèi)容的程序;介質(zhì)ID,其記錄在設(shè)置在盤中的BCA (群刻區(qū))區(qū)域中;以及BCA驅(qū)動程序,包括用于指示驅(qū)動 裝置執(zhí)行讀取所述介質(zhì)ID的處理的程序、該程序的篡改校驗數(shù)據(jù)和 所述應用程序能夠訪問的API,其中,在利用所述內(nèi)容的信息處理裝 置中,所述BCA驅(qū)動程序響應于來自所述應用程序的第一 API (應 用編程接口 )調(diào)用,對應用了所述篡改校驗數(shù)據(jù)的BCA驅(qū)動程序執(zhí) 行篡改校驗,并且當驗證了不存在篡改時,執(zhí)行向所述應用程序提供 指向用于執(zhí)行所述介質(zhì)ID的讀取的第二 API的指針的處理。
在根據(jù)本發(fā)明一個實施例的盤中,第一 API是對第三方公開的 公開API,并且第二 API是對第三方不公開的私有API。
根據(jù)本發(fā)明的第七實施例,提供了 一種在利用記錄在盤中的內(nèi)容 的信息處理裝置中執(zhí)行的信息處理方法,包括如下步驟由應用程序 執(zhí)行單元執(zhí)行應用程序,該應用程序是用于利用記錄在盤中的內(nèi)容的 程序;以及由BCA (群刻區(qū))驅(qū)動程序執(zhí)行單元執(zhí)行BCA驅(qū)動程 序,該BCA驅(qū)動程序是用于指示驅(qū)動裝置執(zhí)行讀取在盤的BCA區(qū) 域中記錄的介質(zhì)ID的處理的程序,其中,當所述BCA驅(qū)動程序被 執(zhí)行時,響應于來自所述應用程序執(zhí)行單元的第一 API (應用編程接 口 )調(diào)用,對所述BCA驅(qū)動程序執(zhí)行篡改校驗處理,并且當驗證了 在所述BCA驅(qū)動程序中不存在篡改時,執(zhí)行向所述應用程序執(zhí)行單 元提供指向用于執(zhí)行讀取介質(zhì)ID的處理的第二 API的指針的處理。
在根據(jù)本發(fā)明一個實施例的信息處理方法中,第一 API是對第 三方公開的公開API,并且第二 API是對第三方不公開的私有 API。
在根據(jù)本發(fā)明一個實施例的信息處理方法中,當所述BCA驅(qū)動 程序被執(zhí)行時,響應于來自所述應用程序的第二 API調(diào)用,與所述 驅(qū)動裝置執(zhí)行認證處理,并且當驗證了所述BCA驅(qū)動程序和所述驅(qū) 動裝置的相互的合法性時,指示所述驅(qū)動裝置讀取所述介質(zhì)ID。
在根據(jù)本發(fā)明一個實施例的信息處理方法中,當所述BCA驅(qū)動 程序被執(zhí)行時,響應于來自所述應用程序的第二 API調(diào)用,對所述 BCA驅(qū)動程序執(zhí)行篡改校驗處理,并且當驗證了在所述BCA驅(qū)動程序中不存在墓改時,與所述驅(qū)動裝置執(zhí)行認證處理。
在根據(jù)本發(fā)明一個實施例的信息處理方法中,當所述BCA驅(qū)動 程序被執(zhí)行時,每當所述BCA驅(qū)動程序執(zhí)行一個步驟時,對所述 BCA驅(qū)動程序執(zhí)行篡改校驗處理。
在根據(jù)本發(fā)明一個實施例的信息處理方法中,當所述BCA驅(qū)動 程序被執(zhí)行時,執(zhí)行向所述應用程序執(zhí)行單元提供混合了偽指針和指 向所述第二 API的指針的數(shù)據(jù)的處理。
根據(jù)本發(fā)明的第八實施例,提供了 一種在利用記錄在盤中的內(nèi)容 的信息處理裝置中執(zhí)行的信息處理方法,包括如下步驟由應用程序 執(zhí)行單元執(zhí)行應用程序,該應用程序是用于利用記錄在盤中的內(nèi)容的 程序;以及由BCA (群刻區(qū))驅(qū)動程序執(zhí)行單元執(zhí)行BCA驅(qū)動程 序,該BCA驅(qū)動程序是用于指示驅(qū)動裝置執(zhí)行讀取在盤的BCA區(qū) 域中記錄的介質(zhì)ID的處理的程序,其中,所述BCA驅(qū)動程序包括 墓改校驗數(shù)據(jù),并且其中,當所述BCA驅(qū)動程序被執(zhí)行時,響應于 來自所述應用程序執(zhí)行單元的第一 API (應用編程接口 )調(diào)用,通過 應用所述篡改校驗數(shù)據(jù)對所述BCA驅(qū)動程序執(zhí)行篡改校驗處理,并 且當驗證了在所述BCA驅(qū)動程序中不存在篡改時,執(zhí)行向所述應用 程序執(zhí)行單元提供指向用于執(zhí)行讀取介質(zhì)ID的處理的第二 API的指 針的處理。
根據(jù)本發(fā)明的第九實施例,提供了 一種在利用記錄在盤中的內(nèi)容 的信息處理裝置中執(zhí)行的信息處理方法,包括如下步驟由應用程序 執(zhí)行單元執(zhí)行應用程序,該應用程序是用于利用記錄在盤中的內(nèi)容的 程序;以及由BCA (群刻區(qū))驅(qū)動程序執(zhí)行單元執(zhí)行BCA驅(qū)動程 序,該BCA驅(qū)動程序是用于指示驅(qū)動裝置執(zhí)行讀取在盤的BCA區(qū) 域中記錄的介質(zhì)ID的處理的程序,其中,所述BCA驅(qū)動程序包括 通過以預定數(shù)據(jù)單位將構(gòu)成所述BCA驅(qū)動程序的數(shù)據(jù)的數(shù)值相加而 獲得的、作為篡改校驗數(shù)據(jù)的校驗和數(shù)據(jù),并且其中,當所述BCA 驅(qū)動程序被執(zhí)行時,響應于來自所述應用程序執(zhí)行單元的第一 API (應用編程接口 )調(diào)用,通過應用所述校驗和數(shù)據(jù)對所述BCA驅(qū)動程序執(zhí)行篡改校驗處理,并且當驗證了在所述BCA驅(qū)動程序中不存 在墓改時,執(zhí)行向所述應用程序執(zhí)行單元提供指向用于執(zhí)行讀取介質(zhì) ID的處理的第二 API的指針的處理。
根據(jù)本發(fā)明的第十實施例,提供了 一種在利用記錄在盤中的內(nèi)容 的信息處理裝置中執(zhí)行的信息處理方法,包括如下步驟由應用程序 執(zhí)行單元執(zhí)行應用程序,該應用程序是用于利用記錄在盤中的內(nèi)容的 程序;以及由BCA (群刻區(qū))驅(qū)動程序執(zhí)行單元執(zhí)行BCA驅(qū)動程 序,該BCA驅(qū)動程序是用于指示驅(qū)動裝置執(zhí)行讀取在盤的BCA區(qū) 域中記錄的介質(zhì)ID的處理的程序,其中,所述BCA驅(qū)動程序包括 篡改校驗數(shù)據(jù)和所述篡改校驗數(shù)據(jù)的哈希值,并且其中,當所述 BCA驅(qū)動程序被執(zhí)行時,響應于來自所述應用程序執(zhí)行單元的第一 API (應用編程接口 )調(diào)用,通過應用所述篡改校驗數(shù)據(jù)對所述BCA 驅(qū)動程序執(zhí)行篡改校驗處理,并且通過應用所述哈希值對所述篡改校 驗數(shù)據(jù)執(zhí)行篡改校驗處理,并且當驗證了在所述BCA驅(qū)動程序中不 存在篡改并且在所述篡改校驗數(shù)據(jù)中不存在篡改時,執(zhí)行向所述應用 程序執(zhí)行單元提供指向用于執(zhí)行讀取介質(zhì)ID的處理的第二 API的指 針的處理。
根據(jù)本發(fā)明的第十一實施例,提供了 一種在利用記錄在盤中的內(nèi) 容的信息處理裝置中執(zhí)行的信息處理方法,包括如下步驟由應用程 序執(zhí)行單元執(zhí)行應用程序,該應用程序是用于利用記錄在盤中的內(nèi)容 的程序;以及由BCA (群刻區(qū))驅(qū)動程序執(zhí)行單元執(zhí)行BCA驅(qū)動程 序,該BCA驅(qū)動程序是用于指示驅(qū)動裝置執(zhí)行讀取在盤的BCA區(qū) 域中記錄的介質(zhì)ID的處理的程序,其中,當所述BCA驅(qū)動程序被 執(zhí)行時,響應于來自所述應用程序執(zhí)行單元的第一 API (應用編程接 口 )調(diào)用,執(zhí)行向所述應用程序執(zhí)行單元提供指向用于執(zhí)行讀取介質(zhì) ID的處理的第二 API的指針的處理。
根據(jù)本發(fā)明的第十二實施例,提供了一種程序,用于在利用記錄 在盤中的內(nèi)容的信息處理裝置中執(zhí)行信息處理,所述程序包括如下步 驟由應用程序執(zhí)行單元執(zhí)行應用程序,該應用程序是用于利用記錄由BCA (群刻區(qū))驅(qū)動程序執(zhí)行單元執(zhí) 行BCA驅(qū)動程序,該BCA驅(qū)動程序是用于指示驅(qū)動裝置執(zhí)行讀取 在盤中設(shè)置的BCA區(qū)域中記錄的介質(zhì)ID的處理的程序,其中,當 所述BCA驅(qū)動程序被執(zhí)行時,響應于來自所述應用程序執(zhí)行單元的 第一 API (應用編程接口 )調(diào)用,對所述BCA驅(qū)動程序執(zhí)行篡改校 驗處理,并且當驗證了在所述BCA驅(qū)動程序中不存在篡改時,執(zhí)行 向所述應用程序執(zhí)行單元提供指向用于執(zhí)行讀取介質(zhì)ID的處理的第 二 API的指針的處理。
要注意,根據(jù)本發(fā)明實施例的程序例如可以通過記錄介質(zhì)或通信 介質(zhì)以計算機可讀格式提供給能夠執(zhí)行各種程序代碼的通用系統(tǒng)。通 過提供計算機可讀格式的上述程序,可以在計算機系統(tǒng)上執(zhí)行根據(jù)這 些程序的處理。
基于本發(fā)明實施例和附圖進行更加詳細的描述,本發(fā)明的其它方 面、特征和優(yōu)點將變得清楚。要注意,本說明書中的系統(tǒng)是多個裝置 的邏輯集成結(jié)構(gòu),并且不限于每個結(jié)構(gòu)的裝置置于同一殼體內(nèi)的系 統(tǒng)。
圖l是示出記錄在盤中的數(shù)據(jù)的例子的圖2是示出讀取記錄在盤中的介質(zhì)ID的序列的圖3是示出制造盤的處理和訪問盤的處理的概要的圖4是示出記錄在根據(jù)本發(fā)明實施例的盤中的數(shù)據(jù)的例子的圖5是示出記錄在盤中的介質(zhì)ID的讀取和訪問處理序列的圖6是示出讀取記錄在盤中的介質(zhì)ID的處理序列的圖7是示出根據(jù)本發(fā)明實施例的應用程序與BCA驅(qū)動程序之間
的處理序列的圖8是示出根據(jù)本發(fā)明實施例的BCA驅(qū)動程序的篡改校驗數(shù)據(jù)
的設(shè)置結(jié)構(gòu)的圖9是示出根據(jù)本發(fā)明實施例的BCA驅(qū)動程序的篡改校驗序列的圖10是示出根據(jù)本發(fā)明實施例的BCA驅(qū)動程序的篡改校驗數(shù) 據(jù)的設(shè)置結(jié)構(gòu)的圖11是示出從BCA驅(qū)動程序提供給應用程序的混合了私有API 指針和偽指針的數(shù)據(jù)的例子的圖;以及
圖12是示出根據(jù)本發(fā)明實施例的應用程序與BCA驅(qū)動程序之 間的處理序列的流程圖。
具體實施例方式
在下文中,將參照附圖更加詳細地描述根據(jù)本發(fā)明的實施例的信 息處理裝置、盤、信息處理方法和程序。
首先,將參照圖3描述記錄有作為盤唯一識別信息的介質(zhì)ID (PMSN:預記錄介質(zhì)序列號)的盤的制造以及訪問處理的概要。
在創(chuàng)作工作室130中初始創(chuàng)建諸如電影的要記錄在盤中的內(nèi)容, 作為用于盤記錄的創(chuàng)作內(nèi)容。然后,在盤工廠140中,執(zhí)行預主錄 (pre-mastering )處理(S101 ),該預主錄處理(S101 )是產(chǎn)生用 于盤記錄的數(shù)據(jù)的處理,例如根據(jù)AACS定義的內(nèi)容加密處理。然 后,執(zhí)行主錄處理(S102),該主錄處理(S102)是基于記錄在盤 中的數(shù)據(jù)的母盤生產(chǎn)處理,然后利用生產(chǎn)的母盤生產(chǎn)大量的盤,也就 是說,執(zhí)行復制處理(S103)。
當通過復制處理生產(chǎn)盤時,對于每個盤而言唯一的識別信息(即 介質(zhì)ID (PMSN))被記錄在每個盤的BCA區(qū)域中。例如,由16 字節(jié)x4塊即64字節(jié)數(shù)據(jù)形成的介質(zhì)ID被記錄在每個盤的BCA區(qū)域 中。
如上所述,BCA區(qū)域與正常數(shù)據(jù)記錄區(qū)域不同,數(shù)據(jù)是通過與 正常數(shù)據(jù)記錄模式不同的機械切割記錄的。因此,難以將記錄數(shù)據(jù)重 寫入BCA區(qū)域中。同樣在再現(xiàn)處理中,需要一種與正常數(shù)據(jù)再現(xiàn)處 理不同的特殊讀取處理。
用戶購買按以上方式生產(chǎn)的盤200,將它放置在諸如用戶的PC或再現(xiàn)裝置的信息處理裝置160中,然后對盤200進行諸如再現(xiàn)內(nèi)容 或拷貝內(nèi)容的內(nèi)容訪問處理。為了拷貝內(nèi)容,需要將記錄在盤中的介 質(zhì)ID發(fā)送到管理服務(wù)器170 (S151),并且從管理服務(wù)器170獲取 諸如拷貝許可信息的訪問許可信息(S152)。此外,同樣當從管理服 務(wù)器170接收另一個服務(wù)時,會被要求向管理服務(wù)器170發(fā)送介質(zhì) ID。
將參照圖4描述根據(jù)本發(fā)明的實施例的盤的結(jié)構(gòu)的例子。圖4是 示出在記錄有內(nèi)容的盤(信息記錄介質(zhì))200中記錄的數(shù)據(jù)的視圖。 盤200例如是DVD (數(shù)字多功能盤)、藍光盤(注冊商標)等等, 并且諸如電影的內(nèi)容被記錄在數(shù)據(jù)記錄區(qū)域中。
盤200包括數(shù)據(jù)記錄區(qū)域210和BCA區(qū)域(群刻區(qū))220,其 中,在該數(shù)據(jù)記錄區(qū)域210中記錄了內(nèi)容等,在該BCA區(qū)域(群刻 區(qū))220中記錄了作為盤唯一識別信息的介質(zhì)ID 221 (例如, PMSN:預記錄介質(zhì)序列號)。
例如,下面的數(shù)據(jù)被記錄在盤200的數(shù)據(jù)記錄區(qū)域210中。例 如,記錄的數(shù)據(jù)包括諸如電影的內(nèi)容211;應用程序212,其是用 于執(zhí)行諸如再現(xiàn)或拷貝內(nèi)容的處理的內(nèi)容訪問控制的程序;和BCA 驅(qū)動程序213,其是用于執(zhí)行從BCA區(qū)域220讀取介質(zhì)ID的處理的 程序。要注意,BCA驅(qū)動程序213與從該盤讀取數(shù)據(jù)的驅(qū)動裝置執(zhí) 行認證處理從而檢查驅(qū)動裝置的合法性,并且僅當驅(qū)動裝置的合法性 得到驗證時,BCA驅(qū)動程序213才指示驅(qū)動裝置讀取介質(zhì)ID (PMSN) 。 BCA驅(qū)動程序包含在認證處理中使用的密鑰214。要注 意,篡改校驗數(shù)據(jù)被加入到記錄在根據(jù)本發(fā)明的實施例的盤200中的 BCA驅(qū)動程序213。將在以后描述訪問該數(shù)據(jù)的處理。
另外,作為盤唯一識別信息的介質(zhì)ID (PMSN) 221被記錄在盤 200的BCA區(qū)域220中。
接下來,將參照圖5描述將記錄在盤200中的內(nèi)容拷貝到例如信 息處理裝置的硬盤或者外部便攜式裝置的另一個裝置的處理序列。
在步驟S201中,用戶啟動諸如PC或再現(xiàn)裝置的放置有盤200的信息處理裝置160,并且運行用于執(zhí)行再現(xiàn)內(nèi)容的處理或者拷貝內(nèi) 容的處理的應用程序212。然后,當用戶向應用程序212輸入拷貝請 求時,應用程序212請求BCA驅(qū)動程序213獲取介質(zhì)ID。
在步驟S202中,從應用程序212接收到獲取介質(zhì)ID的請求的 BCA驅(qū)動程序執(zhí)行與驅(qū)動裝置300的認證處理。要注意,驅(qū)動裝置 300可以與信息處理裝置160形成為一體,或者可以獨立形成并且經(jīng) 由USB線纜等連接到信息處理裝置160。根據(jù)AACS定義執(zhí)行步驟 S202中的認證處理。認證處理利用包括在BCA驅(qū)動程序213中的密 鑰214和包括在驅(qū)動裝置300中的密鑰301。將在以后描述該處理的 細節(jié)。
當通過根據(jù)AACS定義的認證驗證了 BCA驅(qū)動程序213和驅(qū)動 裝置300的合法性時,BCA驅(qū)動程序213指示驅(qū)動裝置300從BCA 區(qū)域讀取介質(zhì)ID由此獲取介質(zhì)ID。在步驟S203中,BCA驅(qū)動程序 213向應用程序212提供介質(zhì)ID。
在步驟S204中,應用程序212將從BCA驅(qū)動程序213接收到 的介質(zhì)ID發(fā)送給管理服務(wù)器170。在步驟S205中,管理服務(wù)器170 響應于介質(zhì)ID的接收,將諸如拷貝許可信息的訪問許可信息發(fā)送給 信息處理裝置160。
在步驟S206中,當從管理服務(wù)器170接收到拷貝許可信息時, 應用程序212可以將存儲在盤200中的內(nèi)容拷貝到外部裝置350。
在圖6所示的序列中筒單描述了應用程序從BCA驅(qū)動程序獲取 介質(zhì)ID的一系列處理。圖6示出了 ( 1)應用程序212, (2)BCA 驅(qū)動程序213和(3)驅(qū)動裝置300。在諸如PC或再現(xiàn)裝置的信息 處理裝置上執(zhí)行應用程序212和BCA驅(qū)動程序213。 BCA驅(qū)動程序 213包括執(zhí)行根據(jù)AACS定義的認證處理的AACS認證模塊215,并 且還包括用于認證處理的密鑰214。驅(qū)動裝置300還包括用于認證處 理的密鑰301,
在步驟S301中,應用程序212向BCA驅(qū)動程序213請求介質(zhì) ID。接下來,在步驟S302中,BCA驅(qū)動程序213利用AACS認證模塊與驅(qū)動裝置300執(zhí)行認證處理。在根據(jù)AACS定義的序列中執(zhí) 4亍以上{人證處理。
當沒有得到認證時,該處理在此中斷。當?shù)玫秸J證并且BCA驅(qū) 動程序213和驅(qū)動裝置300的合法性得到驗證時,接下來,在步驟 S303中,驅(qū)動裝置300從盤200的BCA區(qū)域讀取介質(zhì)ID,并且在 步驟S304中,向BCA驅(qū)動程序213提供讀取的介質(zhì)ID。在步驟 S305中,BCA驅(qū)動程序213向應用程序212提供介質(zhì)ID。
接下來,將參照圖7描述根據(jù)本發(fā)明實施例的應用程序與BCA 驅(qū)動程序之間的處理序列,即,響應于來自應用程序的請求BCA驅(qū) 動程序獲取介質(zhì)ID并且向應用程序提供介質(zhì)ID的序列。
圖7示出了應用程序212和BCA驅(qū)動程序213。諸如PC或再 現(xiàn)裝置的用于再現(xiàn)盤的信息處理裝置從盤200讀取應用程序212和 BCA驅(qū)動程序213并且在諸如CPU的程序執(zhí)行單元中執(zhí)行它們。
也就是說,在包括裝載有盤的驅(qū)動裝置的信息處理裝置上或者在 例如經(jīng)由USB線纜與驅(qū)動裝置連接的信息處理裝置上執(zhí)行應用程序 212和BCA驅(qū)動程序213。具體地講,在信息處理裝置的應用程序 執(zhí)行單元中執(zhí)行應用程序212,并且在信息處理裝置的BCA執(zhí)行單 元中執(zhí)行BCA驅(qū)動程序213。
如上所述,從盤的BCA區(qū)域讀取介質(zhì)ID (PMSN)的處理可以 由BCA驅(qū)動程序根椐AACS定義執(zhí)行。BCA驅(qū)動程序根據(jù)AACS 定義與裝栽有盤的驅(qū)動裝置執(zhí)行相互認證,檢查驅(qū)動裝置和BCA驅(qū) 動程序的合法性,讀取介質(zhì)ID,然后向應用程序提供介質(zhì)ID。
要注意,BCA驅(qū)動程序213是根據(jù)AACS定義產(chǎn)生的程序,并 且根據(jù)AACS定義執(zhí)行認證處理以及從BCA區(qū)域讀取介質(zhì)ID。另 一方面,應用程序212是可由第三方任意創(chuàng)建的程序。因此,應用程 序112可能是惡意程序,例如為騙取介質(zhì)ID信息而產(chǎn)生的程序。
應用程序212對BCA驅(qū)動程序213調(diào)用API (應用編程接 口)。該API是公開的并且可由第三方使用。
該公開API不包括請求BCA驅(qū)動程序獲取介質(zhì)ID的函數(shù),但是包括請求BCA驅(qū)動程序獲取指向私有API的指針的函數(shù)。在本發(fā) 明的實施例的配置中,指示BCA驅(qū)動程序獲取介質(zhì)ID的API被設(shè) 置為私有API。
也就是說,在本發(fā)明的實施例的配置中,僅有用于獲取指針的 API是乂>開的,并且這個公開API可由創(chuàng)建該應用程序的第三方使 用,然而,指示BCA驅(qū)動程序獲取介質(zhì)ID的API被設(shè)置為私有 API。因此,第三方不能夠創(chuàng)建調(diào)用私有API的應用程序。
當應用程序212執(zhí)行調(diào)用公開API的處理時,在步驟S501中, BCA驅(qū)動程序213響應于來自應用程序212的API調(diào)用,根據(jù)公開 API啟動一系列處理。
首先,在步驟S502中,利用設(shè)置在BCA驅(qū)動程序中的驗證數(shù) 據(jù)執(zhí)行驗證BCA驅(qū)動程序自身的處理。
圖8示出了根據(jù)本發(fā)明實施例的配置的盤200中記錄的BCA驅(qū) 動程序213的例子。如圖8所示,BCA驅(qū)動程序的所有數(shù)據(jù)的篡改 校驗數(shù)據(jù)(校驗和)401被預先設(shè)置在BCA驅(qū)動程序213中。篡改 校驗數(shù)據(jù)(校驗和)401被設(shè)置為例如通過從BCA驅(qū)動程序的映像 的起始地址開始逐字節(jié)地作為數(shù)值將數(shù)據(jù)相加而獲得的總計值。
在圖7所示的流程的步驟S502中,設(shè)置在BCA驅(qū)動程序中的 驗證數(shù)據(jù)(例如,圖8所示的篡改校驗數(shù)據(jù)(校驗和)401)被用于 執(zhí)行對BCA驅(qū)動程序自身的驗證處理。將參照圖9所示的流程圖描 述該驗證處理的詳細序列。
圖9的流程圖中所示的處理是BCA驅(qū)動程序?qū)CA驅(qū)動程序 自身執(zhí)行篡改校驗的序列。首先,在步驟S601中,計算BCA驅(qū)動 程序的全部結(jié)構(gòu)的校驗和。例如,計算通過從BCA驅(qū)動程序的映像 的起始地址開始逐字節(jié)地作為數(shù)值將數(shù)據(jù)相加而獲得的總計值。
接下來,在步驟S602中,針對驗證數(shù)據(jù),校驗計算出的校驗 和。該驗證數(shù)據(jù)是圖8所示的篡改校驗數(shù)據(jù)(校驗和)401。在步驟 S603中,確定是否滿足計算出的結(jié)果等于驗證數(shù)據(jù)(固定值)。如 果滿足,則驗證完成,即確定了沒有篡改,并且該處理進行到步驟S604,之后該處理繼續(xù)進行。另一方面,如果計算出的結(jié)果等于驗證 數(shù)據(jù)(固定值)沒有得到滿足,則驗證以失敗結(jié)束,即確定了存在篡 改,并且該處理進行到步驟S611,之后該處理中斷并且錯誤通知被 提供給應用程序。
返回參照圖7,將繼續(xù)描述應用程序與BCA驅(qū)動程序之間的處 理序列。在步驟S502中,在BCA驅(qū)動程序上執(zhí)行參照圖9描述的 篡改校驗,并且如果確定存在篡改,則該處理中斷并且錯誤通知被提 供給應用程序。如果確定不存在篡改,則該處理進行到步驟S503。
在步驟S503中,私有API指針,即指定執(zhí)行從盤的BCA區(qū)域 讀取介質(zhì)ID的處理的函數(shù)的API指針,被存儲在可由應用程序訪問 的緩沖器(請求源緩沖器)中。另外,在步驟S504中,BCA驅(qū)動程 序?qū)CA驅(qū)動程序執(zhí)行篡改校驗,即與步驟S502相似并且參照圖9 描述的處理。在本實施例中,BCA驅(qū)動程序被構(gòu)造為每當執(zhí)行處理 時對BCA驅(qū)動程序執(zhí)行參照圖9所述的篡改校驗。這樣,通過執(zhí)行 篡改校驗而順序地確定該處理的繼續(xù)或中斷,可以防止來自外部的各 種攻擊。
在步驟S504中的驗證處理中,如果確定了存在篡改,則該處理 中斷,并且錯誤通知被提供給應用程序。如果確定不存在篡改,則經(jīng) 由緩沖器將私有API指針提供給應用程序212。
應用程序212利用經(jīng)由緩沖器從BCA驅(qū)動程序接收的私有API 指針來調(diào)用私有API。在步驟S511中,BCA驅(qū)動程序213根據(jù)私有 API啟動處理。私有API被應用于獲取介質(zhì)ID的處理。
另外,在步驟S512中,BCA驅(qū)動程序213對BCA驅(qū)動程序執(zhí) 行篡改校驗,即與步驟S502相似并且參照圖9描述的處理。在步驟 S512的驗證處理中,如果確定存在墓改,則該處理中斷,并且錯誤 通知被提供給應用程序。如果確定不存在篡改,在該處理進行到步驟 S513,并且執(zhí)行與從盤讀取數(shù)據(jù)的驅(qū)動裝置的認證處理,由此檢查驅(qū) 動裝置和BCA驅(qū)動程序的合法性。例如,根據(jù)AACS定義執(zhí)行該認 證處理。如果在步驟S514中認證以失敗結(jié)束,也就是說,如果驅(qū)動裝置 和BCA驅(qū)動程序中的至少任何一個的合法性沒有得到驗證,則錯誤 通知被提供給應用程序212,然后,該處理結(jié)束而不讀取介質(zhì)ID。
另一方面,如果在步驟S514中完成了認證并且驅(qū)動裝置和BCA 驅(qū)動程序的合法性都得到驗證,則在步驟S515中,BCA驅(qū)動程序 213還對BCA驅(qū)動程序執(zhí)行篡改校驗,即與步驟S502相似并且參照 圖9描述的處理。在步驟S515中的驗證處理中,如果確定存在篡 改,則該處理中斷,并且錯誤通知被提供給應用程序。如果確定不存 在墓改,則該處理進行到步驟S516并且指示驅(qū)動裝置從BCA區(qū)域 讀取介質(zhì)ID,然后,讀取的介質(zhì)ID被提供給應用程序212。
然后,應用程序212將從BCA驅(qū)動程序213獲取的介質(zhì)ID發(fā) 送給管理服務(wù)器,然后接收內(nèi)容拷貝許可信息或其它服務(wù)信息。
如圖7所示,每當執(zhí)行處理時BCA驅(qū)動程序執(zhí)行參照圖9所述 的對BCA驅(qū)動程序的墓改校驗。以這種方式,通過執(zhí)行篡改校驗而 順序地確定該處理的繼續(xù)或中斷,可以防止來自外部的各種攻擊。如 圖9所示,預先在BCA驅(qū)動程序213中設(shè)置BCA驅(qū)動程序的所有 數(shù)據(jù)的墓改校驗數(shù)據(jù)(校驗和)401。 BCA驅(qū)動程序使用上述數(shù)據(jù)順 序地執(zhí)行篡改校驗。
通過重復地執(zhí)行篡改校驗,例如可以檢查修補攻擊(patching attack)或者代碼的修改,還可以檢查軟侵入(Int3),該軟侵入 (Int3)是許多黑客使用的黑客程序。此外,可以有效地防止注入 (惡意代碼注入)等等。
要注意,如圖8所示,驗證數(shù)據(jù)與BCA驅(qū)動程序記錄在一起作 為附屬數(shù)據(jù),并且為了避免校驗和部分的改變,期望利用用于產(chǎn)生 BCA驅(qū)動程序的專用工具嵌入校驗和。此外,驗證數(shù)據(jù)(校驗和) 不限于如下的配置,即數(shù)據(jù)被設(shè)置為通過從BCA驅(qū)動程序的映像的 起始地址開始逐字節(jié)地作為數(shù)值將數(shù)據(jù)相加而獲得的總計值。例如, 可以基于核心數(shù)據(jù)而非基于整個BCA驅(qū)動程序來設(shè)置驗證數(shù)據(jù)。
另外,可以構(gòu)造為設(shè)置用于檢測驗證數(shù)據(jù)自身的篡改的哈希值。例如,如圖10所示,基于驗證數(shù)據(jù)401的驗證數(shù)據(jù)哈希值402被產(chǎn) 生并且記錄為附于BCA驅(qū)動程序213的數(shù)據(jù)。
通過以上配置,在驗證BCA驅(qū)動程序的過程(例如圖7的步驟 S502 )中,除了利用驗證數(shù)據(jù)401對BCA驅(qū)動程序進行篡改校驗以 外,利用驗證數(shù)據(jù)哈希值402執(zhí)行驗證數(shù)據(jù)401自身的墓改驗證。
要注意,如參照圖7所述,在本發(fā)明的實施例的配置中,應用程 序利用公開API以使得可以執(zhí)行荻取指向私有API的指針的處理, 并且應用程序利用獲取的私有API指針來指示BCA驅(qū)動程序獲取介 質(zhì)ID。另外,對于私有API指針,可以構(gòu)造為不是僅向應用程序提 供一個指針,而是向應用程序提供混合了一個正確指針和多個偽 (dummy)指針的數(shù)據(jù)。
圖ll示出了指針數(shù)據(jù)的結(jié)構(gòu)的例子。例如,如圖11所示,先前 產(chǎn)生的混合了偽指針和正確指針的數(shù)據(jù)被提供給應用程序。也就是 說,PVOID Dummyl[n和PVOID Dummy2[n'是偽指針,并且 PVOID pGetBCAID是正確指針。偽指針中的n和n'是數(shù)值數(shù)據(jù)。 私有API具有如圖11所示的使正確指針夾在偽指針之間的結(jié)構(gòu),并 且這種夾心結(jié)構(gòu)也是私有的。因此,可以進一步防止針對BCA驅(qū)動 程序的各種攻擊。
應用程序需要從這多個指針中選擇一個正確指針。例如,將指針 選擇信息或者指針選擇工具僅提供給先前授權(quán)的應用程序創(chuàng)作者。因 此,可以有效地排除利用惡意應用程序的指針獲取。
圖12是示出根據(jù)本發(fā)明實施例的應用程序和BCA驅(qū)動程序的 主處理序列的流程圖。該序列是更加詳細地示出圖7的流程中的步驟 S501到S504的處理的流程。
首先,在步驟S701中,應用程序調(diào)用公開API函數(shù)。該公開 API是用于獲取指向私有API的指針的API。接下來,在步驟S702 中,對BCA驅(qū)動程序執(zhí)行篡改校驗處理。具體地講,計算與BCA 驅(qū)動程序?qū)恼麄€DLL (動態(tài)鏈接庫)的校驗和。也就是說,在 BCA驅(qū)動程序中設(shè)置的驗證數(shù)據(jù)(例如,圖8所示的篡改校驗數(shù)據(jù)(校驗和)401)被用于執(zhí)行對BCA驅(qū)動程序自身的驗證處理。
也就是說,計算BCA驅(qū)動程序的整個結(jié)構(gòu)的校驗和。例如,計 算通過從BCA驅(qū)動程序的映像的起始地址開始逐字節(jié)地作為數(shù)值將 數(shù)據(jù)相加而獲得的總計值,并且在步驟S703中,針對驗證數(shù)據(jù)校驗 計算出的校驗和。驗證數(shù)據(jù)是圖8所示的篡改校驗數(shù)據(jù)(校驗和) 401。在步驟S703中,如果滿足計算出的結(jié)果等于驗證數(shù)據(jù)(固定 值),則驗證完成,即確定不存在篡改,并且該處理進行到步驟 S704,然后,該處理繼續(xù)。另一方面,如果不滿足計算出的結(jié)果等于 驗證數(shù)據(jù)(固定值),則驗證以失敗結(jié)束,即確定存在篡改,并且該 處理進行到步驟S711,然后,該處理中斷并且錯誤通知被提供給應 用程序。
在步驟S704中,私有API指針,即指定用于執(zhí)行從盤的BCA 區(qū)域讀取介質(zhì)ID的處理的函數(shù)的API指針,被存儲在可由應用程序 訪問的緩沖器(請求源緩沖器)中。另外,在步驟S705中,BCA驅(qū) 動程序計算與BCA驅(qū)動程序?qū)恼麄€DLL的校驗和。也就是 說,設(shè)置在BCA驅(qū)動程序中的驗證數(shù)據(jù)(例如,圖8所示的篡改校 驗數(shù)據(jù)(校驗和)401)被用于執(zhí)行對BCA驅(qū)動程序自身的驗證處 理。
在步驟S706中,如果確定在BCA驅(qū)動程序中存在篡改,則該 處理進行到步驟S711并中斷,然后,錯誤通知被提供給應用程序。 如果確定不存在篡改,則該處理進行到步驟S707。在步驟S707中, 私有API指針經(jīng)由緩沖器被提供給應用程序212。
應用程序212利用經(jīng)由緩沖器從BCA驅(qū)動程序接收的私有API 指針來調(diào)用私有API。下面的處理是圖7的步驟S511之后的處理。
如上所述,在本發(fā)明的實施例的配置中,用于執(zhí)行獲取介質(zhì)ID 的處理的API被設(shè)置為私有API,并且可由應用程序訪問的公開 API被設(shè)置為指向用于執(zhí)行獲取介質(zhì)ID的處理的私有API的指針, 并且當調(diào)用該公開API時,在執(zhí)行這些處理的步驟之前,BCA驅(qū)動 程序?qū)CA驅(qū)動程序執(zhí)行篡改校驗。利用以上配置,例如,如果惡意應用程序調(diào)用公開API而要從 BCA驅(qū)動程序獲取介質(zhì)ID,則當該惡意應用程序以各種方式攻擊 BCA驅(qū)動程序即篡改BCA驅(qū)動程序時,在獲取私有API之前, BCA驅(qū)動程序能夠在篡改校驗中檢測到篡改,立即中斷該處理并且 停止向惡意應用程序提供私有API。因此,可以防止惡意應用程序騙 取介質(zhì)ID。
如上所述,將參照特定示例實施例更加詳細地描述本發(fā)明的實施 例。對于本領(lǐng)域技術(shù)人員明顯的是,在不脫離本發(fā)明的范圍的情況 下,可以修改或替換該示例實施例。也就是說,上述的本發(fā)明是說明 性的,并且不應被解釋為限制性的。應該參照所附權(quán)利要求來確定本 發(fā)明的范圍。
另外,可以通過硬件、軟件或者它們的復合結(jié)構(gòu)來執(zhí)行在該說明 書中描述的一系列處理。當通過軟件執(zhí)行該處理時,可以執(zhí)行安裝或 拷貝到裝配到專用硬件的計算機內(nèi)部的存儲器的包含該處理序列的程 序或者可以執(zhí)行安裝或拷貝到能夠執(zhí)行各種處理的通用計算機的程 序。例如,該程序可以預先記錄在記錄介質(zhì)中。該程序不僅可以從記 錄介質(zhì)安裝或拷貝到計算機,還可以經(jīng)由諸如LAN (局域網(wǎng))或互 聯(lián)網(wǎng)的網(wǎng)絡(luò)進行接收,然后安裝或拷貝到諸如內(nèi)部硬盤的記錄介質(zhì) 中。要注意,在以上實施例中描述的BCA驅(qū)動程序的文件格式不限 于DLL文件,它可以是諸如EXE文件的格式。
要注意,在說明書中描述的各種處理不限于根據(jù)說明的時間順序 對來執(zhí)行它們,取決于執(zhí)行這些處理的裝置的性能或者當需要時,可 以并行或單獨地執(zhí)行這些處理。此外,本說明書中的系統(tǒng)是多個裝置 的邏輯集成結(jié)構(gòu),并且不限于每個結(jié)構(gòu)的裝置置于同一殼體內(nèi)的系 統(tǒng)。
權(quán)利要求
1. 一種信息處理裝置,其使用記錄在盤中的內(nèi)容,所述信息處理裝置包括應用程序執(zhí)行單元,用于執(zhí)行應用程序,該應用程序是用于利用記錄在盤中的內(nèi)容的程序;以及BCA(群刻區(qū))驅(qū)動程序執(zhí)行單元,用于執(zhí)行BCA驅(qū)動程序,該BCA驅(qū)動程序是用于指示驅(qū)動裝置執(zhí)行讀取在盤的BCA區(qū)域中記錄的介質(zhì)ID的處理的程序,其中,所述BCA驅(qū)動程序執(zhí)行單元響應于來自所述應用程序執(zhí)行單元的第一API(應用編程接口)調(diào)用,對所述BCA驅(qū)動程序執(zhí)行篡改校驗處理,并且當驗證了在所述BCA驅(qū)動程序中不存在篡改時,執(zhí)行向所述應用程序執(zhí)行單元提供指向用于執(zhí)行讀取介質(zhì)ID的處理的第二API的指針的處理。
2. 如權(quán)利要求1所述的信息處理裝置,其中,所述第一 API是 對第三方公開的公開API,并且所述第二 API是對第三方不公開的 私有API。
3. 如權(quán)利要求1所述的信息處理裝置,其中,所述BCA驅(qū)動程 序執(zhí)行單元響應于來自所述應用程序的第二 API調(diào)用,與所述驅(qū)動 裝置執(zhí)行認證處理,并且當驗證了所述BCA驅(qū)動程序和所述驅(qū)動裝 置的相互的合法性時,指示所述驅(qū)動裝置讀取所述介質(zhì)ID。
4. 如權(quán)利要求3所述的信息處理裝置,其中,所述BCA驅(qū)動程 序執(zhí)行單元響應于來自所述應用程序的第二 API調(diào)用,對所述BCA 驅(qū)動程序執(zhí)行篡改校驗處理,并且當驗證了在所述BCA驅(qū)動程序中 不存在篡改時,與所述驅(qū)動裝置執(zhí)行認證處理。
5. 如權(quán)利要求1所述的信息處理裝置,其中,每當所述BCA驅(qū) 動程序執(zhí)行一個步驟時,所述BCA驅(qū)動程序執(zhí)行單元對所述BCA 驅(qū)動程序執(zhí)行篡改校驗處理。
6. 如權(quán)利要求1所述的信息處理裝置,其中,所迷BCA驅(qū)動程序執(zhí)行單元執(zhí)行向所述應用程序執(zhí)行單元提供混合了偽指針和指向所述笫二 API的指針的數(shù)據(jù)的處理。
7. 如權(quán)利要求1所述的信息處理裝置,其中,所述應用程序和 所述BCA驅(qū)動程序被記錄在盤中,并且所述應用程序執(zhí)行單元和所 述BCA驅(qū)動程序執(zhí)行單元分別讀取和執(zhí)行記錄在盤中的所述應用程 序和所述BCA驅(qū)動程序。
8. —種信息處理裝置,其使用記錄在盤中的內(nèi)容,所述信息處 理裝置包括應用程序執(zhí)行單元,用于執(zhí)行應用程序,該應用程序是用于利用 記錄在盤中的內(nèi)容的程序;以及BCA (群刻區(qū))驅(qū)動程序執(zhí)行單元,用于執(zhí)行BCA驅(qū)動程序, 該BCA驅(qū)動程序是用于指示驅(qū)動裝置執(zhí)行讀取在盤的BCA區(qū)域中 記錄的介質(zhì)ID的處理的程序,其中,所述BCA驅(qū)動程序包括篡改校驗數(shù)據(jù),并且其中,所述BCA驅(qū)動程序執(zhí)行單元響應于來自所述應用程序執(zhí)行單元 的第一 API (應用編程接口 )調(diào)用,通過應用所述篡改校驗數(shù)據(jù)對所 述BCA驅(qū)動程序執(zhí)行篡改校驗處理,并且當驗證了在所述BCA驅(qū) 動程序中不存在墓改時,執(zhí)行向所述應用程序執(zhí)行單元提供指向用于 執(zhí)行讀取介質(zhì)ID的處理的第二 API的指針的處理。
9. 一種信息處理裝置,其使用記錄在盤中的內(nèi)容,所述信息處 理裝置包括應用程序執(zhí)行單元,用于執(zhí)行應用程序,該應用程序是用于利用 記錄在盤中的內(nèi)容的程序;以及BCA (群刻區(qū))驅(qū)動程序執(zhí)行單元,用于執(zhí)行BCA驅(qū)動程序, 該BCA驅(qū)動程序是用于指示驅(qū)動裝置執(zhí)行讀取在盤的BCA區(qū)域中 記錄的介質(zhì)ID的處理的程序,其中,所述BCA驅(qū)動程序包括通過以預定數(shù)據(jù)單位將構(gòu)成所述BCA 驅(qū)動程序的數(shù)據(jù)的數(shù)值相加而獲得的、作為墓改校驗數(shù)據(jù)的校驗和數(shù) 據(jù),并且其中,所述BCA驅(qū)動程序執(zhí)行單元響應于來自所述應用程序執(zhí)行單元 的第一 API (應用編程接口 )調(diào)用,通過應用所述校驗和數(shù)據(jù)對所述 BCA驅(qū)動程序執(zhí)行篡改校驗處理,并且當驗證了在所述BCA驅(qū)動程 序中不存在篡改時,執(zhí)行向所述應用程序執(zhí)行單元提供指向用于執(zhí)行 讀取介質(zhì)ID的處理的第二 API的指針的處理。
10. —種信息處理裝置,其使用記錄在盤中的內(nèi)容,所述信息處 理裝置包括應用程序執(zhí)行單元,用于執(zhí)行應用程序,該應用程序是用于利用 記錄在盤中的內(nèi)容的程序;以及BCA (群刻區(qū))驅(qū)動程序執(zhí)行單元,用于執(zhí)行BCA驅(qū)動程序, 該BCA驅(qū)動程序是用于指示驅(qū)動裝置執(zhí)行讀取在盤的BCA區(qū)域中 記錄的介質(zhì)ID的處理的程序,其中,所述BCA驅(qū)動程序包括篡改校驗數(shù)據(jù)和所述篡改校驗數(shù)據(jù)的哈 希值,并且其中,所述BCA驅(qū)動程序執(zhí)行單元響應于來自所述應用程序執(zhí)行單元 的第一 API (應用編程接口 )調(diào)用,通過應用所述篡改校驗數(shù)據(jù)對所 述BCA驅(qū)動程序執(zhí)行篡改校驗處理,并且通過應用所述哈希值對所 述篡改校驗數(shù)據(jù)執(zhí)行篡改校驗處理,并且當驗證了在所述BCA驅(qū)動 程序中不存在篡改并且在所述篡改校驗數(shù)據(jù)中不存在篡改時,執(zhí)行向 所述應用程序執(zhí)行單元提供指向用于執(zhí)行讀取介質(zhì)ID的處理的第二 API的指針的處理。
11. 一種信息處理裝置,其使用記錄在盤中的內(nèi)容,所述信息處 理裝置包括應用程序執(zhí)行單元,用于執(zhí)行應用程序,該應用程序是用于利用 記錄在盤中的內(nèi)容的程序;以及BCA (群刻區(qū))驅(qū)動程序執(zhí)行單元,用于執(zhí)行BCA驅(qū)動程序, 該BCA驅(qū)動程序是用于指示驅(qū)動裝置執(zhí)行讀取在盤的BCA區(qū)域中 記錄的介質(zhì)ID的處理的程序,其中,所述BCA驅(qū)動程序執(zhí)行單元響應于來自所述應用程序執(zhí)行單元的第一 API (應用編程接口 )調(diào)用,執(zhí)行向所述應用程序執(zhí)行單元提 供指向用于執(zhí)行讀取介質(zhì)ID的處理的第二 API的指針的處理。
12. —種盤,包括 內(nèi)容;應用程序,其是用于利用所述內(nèi)容的程序;介質(zhì)ID,其記錄在設(shè)置在盤中的BCA (群刻區(qū))區(qū)域中;以及BCA驅(qū)動程序,包括用于指示驅(qū)動裝置執(zhí)行讀取所述介質(zhì)ID的處理的程序、該程序的篡改校驗數(shù)據(jù)和所述應用程序能夠訪問的API,其中,在利用所述內(nèi)容的信息處理裝置中,所述BCA驅(qū)動程序響應于 來自所述應用程序的第一 API (應用編程接口 )調(diào)用,對應用了所述 篡改校驗數(shù)據(jù)的BCA驅(qū)動程序執(zhí)行篡改校驗,并且當驗證了不存在 篡改時,執(zhí)行向所述應用程序提供指向用于執(zhí)行所述介質(zhì)ID的讀取 的第二 API的指針的處理。
13. 如權(quán)利要求12所述的盤,其中,所述第一 API是對第三方 公開的公開API,并且所述第二 API是對第三方不公開的私有 API。
14. 一種在利用記錄在盤中的內(nèi)容的信息處理裝置中執(zhí)行的信息 處理方法,包括如下步驟由應用程序執(zhí)行單元執(zhí)行應用程序,該應用程序是用于利用記錄 在盤中的內(nèi)容的程序;以及由BCA (群刻區(qū))驅(qū)動程序執(zhí)行單元執(zhí)行BCA驅(qū)動程序,該 BCA驅(qū)動程序是用于指示驅(qū)動裝置執(zhí)行讀取在盤的BCA區(qū)域中記錄 的介質(zhì)ID的處理的程序,其中,當所述BCA驅(qū)動程序被執(zhí)行時,響應于來自所迷應用程序執(zhí)行 單元的第一 API (應用編程接口 )調(diào)用,對所述BCA驅(qū)動程序執(zhí)行 篡改校驗處理,并且當驗證了在所述BCA驅(qū)動程序中不存在篡改 時,執(zhí)行向所述應用程序執(zhí)行單元提供指向用于執(zhí)行讀取介質(zhì)ID的 處理的第二 API的指針的處理。
15. 如權(quán)利要求14所述的信息處理方法,其中,所述第一 API 是對第三方公開的公開API,并且所述第二 API是對第三方不公開 的私有API。
16. 如權(quán)利要求14所述的信息處理方法,其中,當所述BCA驅(qū) 動程序被執(zhí)行時,響應于來自所述應用程序的第二 API調(diào)用,與所 述驅(qū)動裝置執(zhí)行認證處理,并且當驗證了所述BCA驅(qū)動程序和所述 驅(qū)動裝置的相互的合法性時,指示所述驅(qū)動裝置讀取所述介質(zhì)ID。
17. 如權(quán)利要求16所述的信息處理方法,其中,當所述BCA驅(qū) 動程序被執(zhí)行時,響應于來自所述應用程序的第二 API調(diào)用,對所 述BCA驅(qū)動程序執(zhí)行篡改校驗處理,并且當驗證了在所述BCA驅(qū) 動程序中不存在篡改時,與所述驅(qū)動裝置執(zhí)行認證處理。
18. 如權(quán)利要求14所述的信息處理方法,其中,當所述BCA驅(qū) 動程序被執(zhí)行時,每當所述BCA驅(qū)動程序執(zhí)行一個步驟時,對所述 BCA驅(qū)動程序執(zhí)行篡改校驗處理。
19. 如權(quán)利要求14所述的信息處理方法,其中,當所述BCA驅(qū) 動程序被執(zhí)行時,執(zhí)行向所述應用程序執(zhí)行單元提供混合了偽指針和 指向所述第二 API的指針的數(shù)據(jù)的處理。
20. —種在利用記錄在盤中的內(nèi)容的信息處理裝置中執(zhí)行的信息 處理方法,包括如下步驟由應用程序執(zhí)行單元執(zhí)行應用程序,該應用程序是用于利用記錄 在盤中的內(nèi)容的程序;以及由BCA (群刻區(qū))驅(qū)動程序執(zhí)行單元執(zhí)行BCA驅(qū)動程序,該 BCA驅(qū)動程序是用于指示驅(qū)動裝置執(zhí)行讀取在盤的BCA區(qū)域中記錄 的介質(zhì)ID的處理的程序,其中,所述BCA驅(qū)動程序包括墓改校驗數(shù)據(jù),并且其中,當所述BCA驅(qū)動程序被執(zhí)行時,響應于來自所述應用程序執(zhí)行 單元的第一 API (應用編程接口 )調(diào)用,通過應用所述篡改校驗數(shù)據(jù) 對所述BCA驅(qū)動程序執(zhí)行篡改校驗處理,并且當驗證了在所述BCA 驅(qū)動程序中不存在篡改時,執(zhí)行向所述應用程序執(zhí)行單元提供指向用于執(zhí)行讀取介質(zhì)ID的處理的第二 API的指針的處理。
21. —種在利用記錄在盤中的內(nèi)容的信息處理裝置中執(zhí)行的信息 處理方法,包括如下步驟由應用程序執(zhí)行單元執(zhí)行應用程序,該應用程序是用于利用記錄 在盤中的內(nèi)容的程序;以及由BCA (群刻區(qū))驅(qū)動程序執(zhí)行單元執(zhí)行BCA驅(qū)動程序,該 BCA驅(qū)動程序是用于指示驅(qū)動裝置執(zhí)行讀取在盤的BCA區(qū)域中記錄 的介質(zhì)ID的處理的程序,其中,所述BCA驅(qū)動程序包括通過以預定數(shù)據(jù)單位將構(gòu)成所述BCA 驅(qū)動程序的數(shù)據(jù)的數(shù)值相加而獲得的、作為篡改校驗數(shù)據(jù)的校驗和數(shù) 據(jù),并且其中,當所述BCA驅(qū)動程序被執(zhí)行時,響應于來自所述應用程序執(zhí)行 單元的第一 API (應用編程接口 )調(diào)用,通過應用所述校驗和數(shù)據(jù)對 所述BCA驅(qū)動程序執(zhí)行墓改校驗處理,并且當驗證了在所述BCA 驅(qū)動程序中不存在篡改時,執(zhí)行向所述應用程序執(zhí)行單元提供指向用 于執(zhí)行讀取介質(zhì)ID的處理的第二 API的指針的處理。
22. —種在利用記錄在盤中的內(nèi)容的信息處理裝置中執(zhí)行的信息 處理方法,包括如下步驟由應用程序執(zhí)行單元執(zhí)行應用程序,該應用程序是用于利用記錄 在盤中的內(nèi)容的程序;以及由BCA (群刻區(qū))驅(qū)動程序執(zhí)行單元執(zhí)行BCA驅(qū)動程序,該 BCA驅(qū)動程序是用于指示驅(qū)動裝置執(zhí)行讀取在盤的BCA區(qū)域中記錄 的介質(zhì)ID的處理的程序,其中,所述BCA驅(qū)動程序包括墓改校驗數(shù)據(jù)和所述篡改校驗數(shù)據(jù)的哈 希值,并且其中,當所述BCA驅(qū)動程序被執(zhí)行時,響應于來自所述應用程序執(zhí)行 單元的第一 API (應用編程接口 )調(diào)用,通過應用所述篡改校驗數(shù)據(jù) 對所述BCA驅(qū)動程序執(zhí)行墓改校驗處理,并且通過應用所述哈希值 對所述篡改校驗數(shù)據(jù)執(zhí)行篡改校驗處理,并且當驗證了在所述BCA驅(qū)動程序中不存在篡改并且在所述墓改校驗數(shù)據(jù)中不存在篡改時,執(zhí)行向所述應用程序執(zhí)行單元提供指向用于執(zhí)行讀取介質(zhì)ID的處理的 第二 API的指針的處理。
23. —種在利用記錄在盤中的內(nèi)容的信息處理裝置中執(zhí)行的信息 處理方法,包括如下步驟由應用程序執(zhí)行單元執(zhí)行應用程序,該應用程序是用于利用記錄 在盤中的內(nèi)容的程序;以及由BCA (群刻區(qū))驅(qū)動程序執(zhí)行單元執(zhí)行BCA驅(qū)動程序,該 BCA驅(qū)動程序是用于指示驅(qū)動裝置執(zhí)行讀取在盤的BCA區(qū)域中記錄 的介質(zhì)ID的處理的程序,其中,當所述BCA驅(qū)動程序被執(zhí)行時,響應于來自所述應用程序執(zhí)行 單元的第一 API (應用編程接口 )調(diào)用,執(zhí)行向所述應用程序執(zhí)行單 元提供指向用于執(zhí)行讀取介質(zhì)ID的處理的第二 API的指針的處理。
24. —種存儲介質(zhì),用于存儲用于在利用記錄在盤中的內(nèi)容的信 息處理裝置中執(zhí)行信息處理的程序,所述程序包括如下步驟由應用程序執(zhí)行單元執(zhí)行應用程序,該應用程序是用于利用記錄 在盤中的內(nèi)容的程序;以及由BCA (群刻區(qū))驅(qū)動程序執(zhí)行單元執(zhí)行BCA驅(qū)動程序,該 BCA驅(qū)動程序是用于指示驅(qū)動裝置執(zhí)行讀取在盤中設(shè)置的BCA區(qū)域 中記錄的介質(zhì)ID的處理的程序,其中,當所述BCA驅(qū)動程序被執(zhí)行時,響應于來自所述應用程序執(zhí)行 單元的第一 API (應用編程接口 )調(diào)用,對所述BCA驅(qū)動程序執(zhí)行 篡改校驗處理,并且當驗證了在所述BCA驅(qū)動程序中不存在篡改 時,執(zhí)行向所述應用程序執(zhí)行單元提供指向用于執(zhí)行讀取介質(zhì)ID的 處理的第二 API的指針的處理。
全文摘要
本發(fā)明涉及信息處理裝置、盤、信息處理方法和程序。提供了一種使用記錄在盤中的內(nèi)容的信息處理裝置,該裝置包括應用程序執(zhí)行單元,用于執(zhí)行應用程序,該應用程序是用于利用記錄在盤中的內(nèi)容的程序;以及BCA(群刻區(qū))驅(qū)動程序執(zhí)行單元,用于執(zhí)行BCA驅(qū)動程序,該BCA驅(qū)動程序是用于指示驅(qū)動裝置執(zhí)行讀取在盤的BCA區(qū)域中記錄的介質(zhì)ID的處理的程序,其中,BCA驅(qū)動程序執(zhí)行單元響應于來自應用程序執(zhí)行單元的第一API(應用編程接口)調(diào)用,執(zhí)行向所述應用程序執(zhí)行單元提供指向用于執(zhí)行讀取介質(zhì)ID的處理的第二API的指針的處理。
文檔編號G11B20/00GK101458946SQ200810184630
公開日2009年6月17日 申請日期2008年12月11日 優(yōu)先權(quán)日2007年12月14日
發(fā)明者西田竜介 申請人:索尼株式會社