專利名稱:數(shù)據(jù)流標(biāo)頭對(duì)象保護(hù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及數(shù)據(jù)驗(yàn)證,尤其涉及數(shù)據(jù)文件的標(biāo)頭對(duì)象。
(2)背景技術(shù)通常,某些數(shù)據(jù)文件和數(shù)據(jù)流格式包括標(biāo)頭對(duì)象。標(biāo)頭對(duì)象包括用于標(biāo)識(shí)并使用包括在數(shù)據(jù)文件或數(shù)據(jù)流內(nèi)的內(nèi)容數(shù)據(jù)的“元內(nèi)容”信息。
例如,一個(gè)數(shù)據(jù)流格式是高級(jí)流格式(ASF),它是為存儲(chǔ)同等多媒體數(shù)據(jù)而設(shè)計(jì)的可擴(kuò)展文件格式。目前該格式的規(guī)范可從www.microsoft.com得到。ASF支持大范圍網(wǎng)絡(luò)和協(xié)議上的數(shù)據(jù)傳遞,而允許本地回放。
每個(gè)ASF文件都由一個(gè)或多個(gè)媒體流組成。標(biāo)頭對(duì)象執(zhí)行整個(gè)文件的屬性,以及流專有的屬性。在ASF中,每個(gè)文件必需具有一個(gè)標(biāo)頭對(duì)象。標(biāo)頭對(duì)象在ASF文件的開始處(標(biāo)頭對(duì)象GUID(全局唯一的標(biāo)識(shí)符))提供了一個(gè)公知字節(jié)序列并且包含適當(dāng)解譯多媒體數(shù)據(jù)所需的全部信息。標(biāo)頭對(duì)象可能被視作包含標(biāo)頭對(duì)象信息以及標(biāo)頭子對(duì)象組合的容器。標(biāo)頭對(duì)象信息包括標(biāo)頭對(duì)象(“ASF_Header_Object”)的GUID、標(biāo)頭對(duì)象的大小、及標(biāo)頭對(duì)象內(nèi)所包含的標(biāo)頭子對(duì)象的數(shù)目。每個(gè)標(biāo)頭對(duì)象都從GUID開始。
標(biāo)頭子對(duì)象包括·文件屬性子對(duì)象,它定義了文件中多媒體數(shù)據(jù)的全局特性;·流屬性子對(duì)象,它定義了媒體流的特定屬性和特性;·標(biāo)頭擴(kuò)展子對(duì)象,它允許對(duì)ASF文件添加附加功能而保持向后兼容性,并且是包含擴(kuò)展的標(biāo)頭子對(duì)象的容器;·編解碼器列表子對(duì)象,它提供與對(duì)ASF文件中找到的內(nèi)容進(jìn)行編碼所用的編解碼器和格式有關(guān)的用戶友好信息;·腳本命令子對(duì)象,它提供了Unicode字符串的類型/參數(shù)對(duì)的一個(gè)列表,它們與ASF文件的時(shí)間線同步;·標(biāo)記子對(duì)象,它包含小的、特殊的索引,用于提供文件內(nèi)命名的跳躍點(diǎn)以允許內(nèi)容作者把內(nèi)容分成邏輯部分,譬如整個(gè)CD中的歌曲邊界或者長(zhǎng)演講的話題變換,并且用于為文件的每個(gè)部分分配可由用戶使用的人類可讀名稱;·比特率互斥子對(duì)象,它標(biāo)識(shí)了彼此具有互斥關(guān)系的視頻流(換言之,這種關(guān)系中只有一個(gè)流可以流出,并忽略其它);·糾錯(cuò)子對(duì)象,它定義了糾錯(cuò)方法并提供用于恢復(fù)的糾錯(cuò)引擎所需的信息;·內(nèi)容描述子對(duì)象,它允許作者記錄描述文件及其內(nèi)容的公知數(shù)據(jù),包括題目、作者、版權(quán)、說明和價(jià)目信息;·擴(kuò)展內(nèi)容描述子對(duì)象,它允許作者記錄描述文件及其內(nèi)容的數(shù)據(jù),該數(shù)據(jù)在諸如題目、作者、版權(quán)、說明或價(jià)目信息等標(biāo)準(zhǔn)書目信息之外;·內(nèi)容加密子對(duì)象,它標(biāo)識(shí)該內(nèi)容是否得到數(shù)字權(quán)利管理(DRM)系統(tǒng)的保護(hù)。該子對(duì)象包括DRM許可證一獲得URL、DRM密鑰ID、及其它DRM有關(guān)的元數(shù)據(jù);·流比特率屬性子對(duì)象,它定義了多媒體數(shù)據(jù)中每個(gè)媒體流的平均比特率;以及·填充子對(duì)象,它是用于填充標(biāo)頭對(duì)象大小的虛擬子對(duì)象。
首先創(chuàng)建數(shù)據(jù)流文件的實(shí)體以及對(duì)它起作用的任何隨后實(shí)體都可能添加或改變標(biāo)頭文件的元素。例如,內(nèi)容創(chuàng)建實(shí)體可能創(chuàng)建一個(gè)數(shù)據(jù)流文件,并且包括與內(nèi)容有關(guān)的內(nèi)容說明對(duì)象中的信息。第二實(shí)體可能創(chuàng)建數(shù)據(jù)內(nèi)的標(biāo)記,并且希望用跟蹤信息添加標(biāo)記對(duì)象。而第三實(shí)體分發(fā)數(shù)據(jù)流文件,它可能添加包含腳本的行為或數(shù)據(jù)的腳本命令對(duì)象。例如,腳本命令對(duì)象可能包含把Web瀏覽器窗口打開為指定URL(統(tǒng)一資源定位符)的信息。
由于許多實(shí)體可能對(duì)ASF文件起作用,因此不可能確定哪個(gè)實(shí)體已創(chuàng)建了標(biāo)頭對(duì)象的哪個(gè)部分。此外,不能識(shí)別由攻擊者作出的信息變化。
(3)發(fā)明內(nèi)容本發(fā)明針對(duì)驗(yàn)證標(biāo)頭對(duì)象內(nèi)子對(duì)象的系統(tǒng)、方法和數(shù)據(jù)結(jié)構(gòu)。本發(fā)明允許用一個(gè)實(shí)體驗(yàn)證標(biāo)頭對(duì)象內(nèi)的一個(gè)或多個(gè)子對(duì)象,而仍然允許排列要改變的子對(duì)象。新的子對(duì)象隨后還能由另一實(shí)體創(chuàng)建并驗(yàn)證??梢越M合由一個(gè)可信實(shí)體對(duì)兩個(gè)或多個(gè)子對(duì)象的驗(yàn)證,使得攻擊者不能移動(dòng)或改變數(shù)據(jù),而使一個(gè)子對(duì)象像已由可信實(shí)體簽字那樣可被驗(yàn)證,而另一子對(duì)象不可被驗(yàn)證。
下面的說明中提出了本發(fā)明的其它特征和優(yōu)點(diǎn)。
(4)
圖1是計(jì)算機(jī)系統(tǒng)總覽圖。
圖2是說明按照本發(fā)明的文件的框圖。
圖3說明了按照本發(fā)明創(chuàng)建數(shù)字簽名子對(duì)象的過程。
圖4說明了按照本發(fā)明驗(yàn)證數(shù)字簽名子對(duì)象的過程。
圖5說明了按照本發(fā)明的數(shù)字簽名子對(duì)象。
(5)具體實(shí)施方式
綜述為了允許標(biāo)頭對(duì)象中的子對(duì)象的簽名信息及子對(duì)象區(qū)域,可以創(chuàng)建一個(gè)或多個(gè)數(shù)字簽名子對(duì)象并將它們放置在數(shù)據(jù)文件的標(biāo)頭對(duì)象中。如果數(shù)字簽名子對(duì)象存在并有效,則可以檢測(cè)到關(guān)于已簽名子對(duì)象的任意編輯或篡改。子對(duì)象的排列不需要被保存。
數(shù)字簽名子對(duì)象包含一個(gè)區(qū)域指示符數(shù)組。每個(gè)區(qū)域指示符都標(biāo)識(shí)了子對(duì)象內(nèi)的一個(gè)特定區(qū)域。區(qū)域指示符可能還標(biāo)識(shí)一個(gè)完整的子對(duì)象。
數(shù)字簽名子對(duì)象還包含一個(gè)簽名。該簽名是區(qū)域指示符數(shù)組中所列的區(qū)域的數(shù)字簽名。該簽名可以用于驗(yàn)證區(qū)域指示符中所列的區(qū)域尚未被篡改。
示例性計(jì)算環(huán)境圖1說明了適當(dāng)?shù)挠?jì)算系統(tǒng)環(huán)境100的一例,其中可能實(shí)現(xiàn)本發(fā)明。計(jì)算系統(tǒng)環(huán)境100僅是適當(dāng)?shù)挠?jì)算環(huán)境的一例并且并非意圖限制本發(fā)明的使用范圍或功能。計(jì)算環(huán)境100不應(yīng)被解釋為具有與示例性操作環(huán)境100中所述的組件的任一或組合有關(guān)的從屬性或要求。
本領(lǐng)域的技術(shù)人員可以理解,計(jì)算機(jī)或其它客戶機(jī)或服務(wù)器設(shè)備可以作為部分計(jì)算機(jī)網(wǎng)絡(luò)而采用,或者用于分布式計(jì)算環(huán)境中。在這點(diǎn)上,本發(fā)明屬于具有任意數(shù)量存儲(chǔ)器或存儲(chǔ)單元的任意計(jì)算機(jī)系統(tǒng),以及發(fā)生在任意數(shù)量存儲(chǔ)單元或容量上的任意數(shù)量的應(yīng)用程序和過程,它們可以與本發(fā)明一起使用。本發(fā)明可以應(yīng)用于在網(wǎng)絡(luò)環(huán)境或分布式計(jì)算環(huán)境中采用服務(wù)器計(jì)算機(jī)和客戶機(jī)計(jì)算機(jī)的環(huán)境。本發(fā)明還可以用于獨(dú)立計(jì)算設(shè)備,具有編程語言功能、以及與遠(yuǎn)程或本地服務(wù)一起產(chǎn)生、接收和發(fā)射信息的解譯和執(zhí)行能力。
本發(fā)明可以用多種其它通用或?qū)S糜?jì)算系統(tǒng)環(huán)境或配置來操作。可能適合與本發(fā)明一起使用的公知計(jì)算系統(tǒng)、環(huán)境和/或配置的示例包括、但不限于個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手提或便攜式設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機(jī)頂盒、可編程用戶電子設(shè)備、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、大型計(jì)算機(jī)、包括任一上述系統(tǒng)的分布式計(jì)算環(huán)境、及其它。
本發(fā)明可以用計(jì)算機(jī)可執(zhí)行指令的一般上下文來描述,譬如由計(jì)算機(jī)執(zhí)行的程序模塊。一般而言,程序模塊包括例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等,它們執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定的抽象數(shù)據(jù)類型。本發(fā)明還可以實(shí)際用于分布式計(jì)算環(huán)境中,其中由通過通信網(wǎng)絡(luò)或其它數(shù)據(jù)傳輸媒質(zhì)連接的遠(yuǎn)程處理設(shè)備來執(zhí)行任務(wù)。在分布式計(jì)算環(huán)境中,程序模塊及其它數(shù)據(jù)可能位于本地和遠(yuǎn)程存儲(chǔ)媒質(zhì)中,包括存儲(chǔ)器存儲(chǔ)設(shè)備。分布式計(jì)算通過計(jì)算設(shè)備和系統(tǒng)間的直接交換便于共享計(jì)算機(jī)資源和服務(wù)。這些資源和服務(wù)包括信息、高速緩存、及文件磁盤存儲(chǔ)的交換。分布式計(jì)算利用網(wǎng)絡(luò)連接性,允許用戶機(jī)發(fā)揮它們的集體功效來有利于整個(gè)公司。在這點(diǎn)上,多種設(shè)備可能具有應(yīng)用程序、對(duì)象或資源,它們可能利用本發(fā)明的技術(shù)。
參考圖1,用于實(shí)現(xiàn)本發(fā)明的示例性系統(tǒng)包括形式為計(jì)算機(jī)110的通用計(jì)算設(shè)備。計(jì)算機(jī)110的組件可能包括、但不限于處理單元120、系統(tǒng)存儲(chǔ)器130、及把包括系統(tǒng)存儲(chǔ)器在內(nèi)的各種系統(tǒng)組件耦合至處理單元120的系統(tǒng)總線121。系統(tǒng)總線121可能是多種類型總線結(jié)構(gòu)的任一種,包括存儲(chǔ)器總線或存儲(chǔ)器控制器、外圍設(shè)備總線、及使用任一多種總線結(jié)構(gòu)的本地總線。通過示例但非限制,這種結(jié)構(gòu)包括工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)(ISA)總線、微通道結(jié)構(gòu)(MCA)總線、增強(qiáng)型ISA(EISA)總線、視頻電子標(biāo)準(zhǔn)聯(lián)盟(VESA)本地總線、及外圍組件互連(PCI)總線(也稱為Mezzanine總線)。
計(jì)算機(jī)110一般包括各種計(jì)算機(jī)可讀媒質(zhì)。計(jì)算機(jī)可讀媒質(zhì)可以是能由計(jì)算機(jī)110訪問的任何可用媒質(zhì)并包括易失性和非易失性的媒質(zhì)、可移動(dòng)和不可移動(dòng)媒質(zhì)。通過示例但非限制,計(jì)算機(jī)可讀媒質(zhì)可能包括計(jì)算機(jī)存儲(chǔ)媒質(zhì)和通信媒質(zhì)。計(jì)算機(jī)存儲(chǔ)媒質(zhì)包括易失性和非易失性、可移動(dòng)和不可移動(dòng)媒質(zhì),它們以用于存儲(chǔ)諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)這樣的信息的任意方法或技術(shù)來實(shí)現(xiàn)。計(jì)算機(jī)存儲(chǔ)媒質(zhì)包括、但不限于RAM、ROM、EEPROM、閃存或其它存儲(chǔ)技術(shù)、CDROM、數(shù)字化通用光盤(DVD)或其它光盤存儲(chǔ)器、磁帶盒、磁帶、磁盤存儲(chǔ)器或其它磁性存儲(chǔ)設(shè)備、或用于存儲(chǔ)期望信息并能由計(jì)算機(jī)110訪問的任意其它媒質(zhì)。通信媒質(zhì)一般在諸如載波或其它傳輸機(jī)制這樣的已調(diào)數(shù)據(jù)信號(hào)中包含計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),并且包括任意信息傳遞媒質(zhì)。術(shù)語“已調(diào)數(shù)據(jù)信號(hào)”意指其一個(gè)或多個(gè)特性以對(duì)信號(hào)內(nèi)信息進(jìn)行編碼的方式被設(shè)置或改變的信號(hào)。通過示例但非限制,通信媒質(zhì)包括諸如有線網(wǎng)絡(luò)或直接線連接這樣的有線媒質(zhì)、以及諸如聲音、RF、紅外這樣的無線媒質(zhì)及其它無線媒質(zhì)。上述的任意組合應(yīng)該包含在計(jì)算機(jī)可讀媒質(zhì)的范圍內(nèi)。
系統(tǒng)存儲(chǔ)器130包括計(jì)算機(jī)存儲(chǔ)媒質(zhì),其形式為易失性和/或非易失性存儲(chǔ)器,譬如只讀存儲(chǔ)器(ROM)131和隨機(jī)存取存儲(chǔ)器(RAM)132?;据斎?輸出系統(tǒng)133(BIOS)一般存儲(chǔ)在ROM131內(nèi),它包含例如啟動(dòng)期間幫助在計(jì)算機(jī)110內(nèi)的組件間傳輸信息的基本例程。RAM132一般包含數(shù)據(jù)和/或程序模塊,它們可以立即訪問并且/或者當(dāng)前由處理單元120在其上操作。通過示例但非限制,圖1說明了操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136和程序數(shù)據(jù)137。
計(jì)算機(jī)110可能還包括其它可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ)媒質(zhì)。僅僅通過示例,圖1說明了對(duì)不可移動(dòng)、非易失性磁性媒質(zhì)進(jìn)行讀寫的硬盤驅(qū)動(dòng)器140、對(duì)可移動(dòng)、非易失性磁盤152進(jìn)行讀寫的磁盤驅(qū)動(dòng)器151、以及對(duì)可移動(dòng)、非易失性光盤156進(jìn)行讀寫的光盤驅(qū)動(dòng)器155,譬如CD RAM或其它光學(xué)媒質(zhì)。示例性操作環(huán)境中可用的其它可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算存儲(chǔ)媒質(zhì)包括、但不限于磁帶盒、閃存卡、數(shù)字通用盤、數(shù)字視頻磁帶、固態(tài)RAM、固態(tài)ROM、及其它。硬盤驅(qū)動(dòng)器141一般通過如接口140這樣的不可移動(dòng)存儲(chǔ)器接口與系統(tǒng)總線121相連,且磁盤驅(qū)動(dòng)器151和光盤驅(qū)動(dòng)器155一般用如接口150這樣的可移動(dòng)存儲(chǔ)器接口與系統(tǒng)總線121相連。
上面討論并在圖1中說明的驅(qū)動(dòng)器和它們的相關(guān)計(jì)算機(jī)存儲(chǔ)媒質(zhì)為計(jì)算機(jī)110提供了計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的存儲(chǔ)。在圖1中,例如,所述硬盤驅(qū)動(dòng)器141存儲(chǔ)操作系統(tǒng)144、應(yīng)用程序145、其它程序模塊146和程序數(shù)據(jù)147。注意到這些組件或者可與操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136和程序數(shù)據(jù)137相同,或者與它們不同。這里為操作系統(tǒng)144、應(yīng)用程序145、其它程序模塊146和程序數(shù)據(jù)147給出不同數(shù)字以說明它們至少是不同的復(fù)制物。用戶可能通過諸如鍵盤162和指示設(shè)備161這樣的輸入設(shè)備把命令和信息輸入到計(jì)算機(jī)20中,輸入設(shè)備通常稱為鼠標(biāo)、軌跡球或觸板。其它輸入設(shè)備(未示出)可能包括麥克風(fēng)、游戲桿、游戲板、衛(wèi)星式轉(zhuǎn)盤、掃描儀及類似物。這些和其它輸入設(shè)備經(jīng)常通過與系統(tǒng)總線耦合的用戶輸入接口160與處理單元120相連,但也可能用其它接口和總線結(jié)構(gòu)連接,譬如并行端口、游戲端口或通用串行總線(USB)。監(jiān)視器191或其它類型的顯示設(shè)備也通過諸如視頻接口190這樣的接口與系統(tǒng)總線121相連。除了監(jiān)視器之外,計(jì)算機(jī)可能還包括其它外部設(shè)備,如揚(yáng)聲器197和打印機(jī)196,它們可能通過輸出外設(shè)接口190連接。
計(jì)算機(jī)110可能工作在網(wǎng)絡(luò)化環(huán)境中,該環(huán)境使用與諸如遠(yuǎn)程計(jì)算機(jī)180這樣的一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī)之間的邏輯連接。遠(yuǎn)程計(jì)算機(jī)180可能是個(gè)人計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或其它公共網(wǎng)絡(luò)節(jié)點(diǎn),并且一般包括上述與計(jì)算機(jī)110有關(guān)的許多或全部元件,盡管圖1中僅說明了存儲(chǔ)器存儲(chǔ)設(shè)備181。圖1所述的邏輯連接包括局域網(wǎng)(LAN)171和廣域網(wǎng)(WAN)173,但可能還包括其它網(wǎng)絡(luò)。這種網(wǎng)絡(luò)環(huán)境在辦公室、企業(yè)范圍計(jì)算機(jī)網(wǎng)絡(luò)、企業(yè)內(nèi)部網(wǎng)和互聯(lián)網(wǎng)中是常見的。
當(dāng)用于LAN網(wǎng)絡(luò)環(huán)境中時(shí),計(jì)算機(jī)110通過網(wǎng)絡(luò)接口或適配器170與LAN171相連。當(dāng)用于WAN網(wǎng)絡(luò)環(huán)境中時(shí),計(jì)算機(jī)110一般包括用于在諸如因特網(wǎng)這樣的WAN173上建立通信的調(diào)制解調(diào)器172或其它裝置。調(diào)制解調(diào)器172可能是內(nèi)部或外部的,它可能通過用戶輸入接口160或其它適當(dāng)機(jī)制與系統(tǒng)總線121相連。在網(wǎng)絡(luò)化環(huán)境中,關(guān)于計(jì)算機(jī)110所述的程序模塊或其部分可能存儲(chǔ)在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。通過示例但非限制,圖1說明了駐留在存儲(chǔ)器設(shè)備181上的遠(yuǎn)程應(yīng)用程序185??梢岳斫?,所示網(wǎng)絡(luò)連接是示例性的,也可能使用在計(jì)算機(jī)間建立通信連接的其它裝置。
數(shù)字簽名子對(duì)象按照本發(fā)明,在標(biāo)頭對(duì)象包括要被保護(hù)的子對(duì)象的子對(duì)象和區(qū)域時(shí),為了能驗(yàn)證已簽名的子對(duì)象和區(qū)域尚未受到干擾,則可能向標(biāo)頭添加數(shù)字簽名子對(duì)象。該數(shù)字簽名子對(duì)象可能基于任何數(shù)字簽名算法,算法取得某些數(shù)據(jù)作為輸入并產(chǎn)生稍后能被驗(yàn)證的簽名。在一個(gè)實(shí)施例中,所用算法是RSA算法。在另一實(shí)施例中,使用橢圓曲線算法。其它實(shí)施例可能使用其它簽名算法。
參考圖2,文件200包含標(biāo)頭對(duì)象210。除了標(biāo)頭信息215之外,標(biāo)頭對(duì)象210包含文件屬性子對(duì)象220、流屬性子對(duì)象230、腳本命令子對(duì)象240、及內(nèi)容說明子對(duì)象250。內(nèi)容說明子對(duì)象250包含與內(nèi)容的標(biāo)題252、作者254、版權(quán)256和說明258有關(guān)的信息。。腳本命令子對(duì)象240包含URL245。文件200還包含數(shù)據(jù)對(duì)象290。該簽名是示例性的,并且可以認(rèn)識(shí)到除了所示那些子對(duì)象之外,標(biāo)頭對(duì)象中可能還存在其它子對(duì)象的組合。
實(shí)體可能通過添加數(shù)字簽名子對(duì)象260而防止竄改部分標(biāo)頭對(duì)象210。數(shù)字簽名子對(duì)象260包含區(qū)域指示符數(shù)組264和簽名266。在一個(gè)實(shí)施例中,數(shù)字簽名子對(duì)象260還包含簽名者信息268。在一個(gè)實(shí)施例中,簽名者信息268包含可用于安全驗(yàn)證簽名266的一個(gè)或多個(gè)證書。
圖3示出用于創(chuàng)建數(shù)字簽名子對(duì)象260的過程。如步驟310所示,實(shí)體決定要簽署哪一個(gè)或多個(gè)標(biāo)頭子對(duì)象,并確定這些區(qū)域的區(qū)域指示符。例如,參考圖2,要被簽署的區(qū)域可能包括腳本命令子對(duì)象230以及內(nèi)容說明子對(duì)象250的標(biāo)題、作者和版權(quán)部分。再次參考圖3,在步驟320中,創(chuàng)建了區(qū)域指示符數(shù)組264(從圖2)。在步驟330中,區(qū)域指示符數(shù)組264內(nèi)指定的區(qū)域與區(qū)域指示符數(shù)組264串接(以它們?cè)趨^(qū)域指示符數(shù)組264內(nèi)被指定的順序)。該區(qū)域然后被簽名340以產(chǎn)生簽名266(從圖2)。
當(dāng)包含標(biāo)頭對(duì)象的文件被修改時(shí),其中標(biāo)頭對(duì)象包括數(shù)字簽名子對(duì)象,子對(duì)象的順序可能被改變并且可能插入附加的子對(duì)象。如果附加區(qū)域或子對(duì)象要被驗(yàn)證,則可能添加新的數(shù)字簽名子對(duì)象。
參考圖2,為了檢查標(biāo)頭對(duì)象210的驗(yàn)證而使用了數(shù)字簽名子對(duì)象260和區(qū)域指示符數(shù)組264中指定的區(qū)域。如圖4所示,在步驟410中標(biāo)識(shí)了區(qū)域指示符數(shù)組264(來自圖2)中指定的標(biāo)頭子對(duì)象區(qū)域。在步驟420中,這些區(qū)域與區(qū)域指示符數(shù)組264串接(以它們?cè)趨^(qū)域指示符數(shù)組264內(nèi)被指定的順序)在一起。在步驟430中,檢查簽名266(來自圖2)以確定它是否是用于串接的有效簽名。
在本發(fā)明的一個(gè)實(shí)施例中,可能用數(shù)字簽名子對(duì)象簽署子對(duì)象的區(qū)域和完整的子對(duì)象。在另一實(shí)施例中,可能僅簽署完整的子對(duì)象。在本發(fā)明的一個(gè)實(shí)施例中,在一個(gè)數(shù)字簽名子對(duì)象中可能簽署來自單獨(dú)子對(duì)象的不止一個(gè)區(qū)域。在本發(fā)明的一個(gè)實(shí)施例中,被簽署的一個(gè)子對(duì)象的區(qū)域可能重疊。
在發(fā)明的一個(gè)實(shí)施例中,每個(gè)標(biāo)頭對(duì)象必需包含至少一個(gè)數(shù)字簽名子對(duì)象。如果標(biāo)頭對(duì)象在期望數(shù)字簽名子對(duì)象時(shí)并不包含它,則可以假定該標(biāo)頭對(duì)象已受到竄改。如果標(biāo)頭對(duì)象包含一個(gè)未正確驗(yàn)證或者不是來自可信源的數(shù)字簽名子對(duì)象,則在一種實(shí)現(xiàn)中,例如,接收包含標(biāo)頭子對(duì)象的文件的實(shí)體可能通過不使用該文件而作出相應(yīng)行動(dòng)。按照該實(shí)施例,進(jìn)行檢查來看是否存在任意數(shù)字簽名子對(duì)象。如果不存在,則驗(yàn)證失敗。如果存在子對(duì)象,則每一個(gè)都被檢查以產(chǎn)生驗(yàn)證結(jié)果。
在一個(gè)實(shí)施例中,可能按照本發(fā)明簽署作為對(duì)象O1,O2,...On的集合的任意文件F。創(chuàng)建新的對(duì)象ODS,它包括一區(qū)域指示符數(shù)組,指示已簽名對(duì)象的對(duì)象或區(qū)域以及那些對(duì)象和數(shù)組的簽名。
示例性ASF實(shí)現(xiàn)在一個(gè)實(shí)施例中,文件是ASF文件。圖5示出一個(gè)實(shí)施例中ASF文件的數(shù)字簽名子對(duì)象的組成。數(shù)字簽名子對(duì)象包括GUID 510。ASF文件內(nèi)的每個(gè)對(duì)象和子對(duì)象都以GUID開始。GUID用于唯一標(biāo)識(shí)ASF文件內(nèi)的所有對(duì)象類型。每種ASF對(duì)象類型具有其自身唯一的GUID。然而,一般而言,GUID不能用于唯一標(biāo)識(shí)ASF標(biāo)頭對(duì)象內(nèi)的子對(duì)象,這是由于ASF標(biāo)頭對(duì)象內(nèi)的多個(gè)子對(duì)象可能具有相同的對(duì)象類型,并從而具有相同的GUID。
示例性ASF數(shù)字簽名子對(duì)象500中的下一元素是子對(duì)象大小520。同樣,所有ASF對(duì)象和子對(duì)象一般包括對(duì)象和子對(duì)象的大小。如上所述,區(qū)域指示符數(shù)組540之前是區(qū)域指示符數(shù)組530中包含的已簽名區(qū)域數(shù)目。校驗(yàn)和算法標(biāo)識(shí)符550和簽名算法標(biāo)識(shí)符560標(biāo)識(shí)了數(shù)字簽名子對(duì)象中所用的校驗(yàn)和及簽名算法。區(qū)域和區(qū)域指示符數(shù)組的簽名580之前是簽名長(zhǎng)度570。簽名者信息590包含驗(yàn)證或獲得關(guān)于簽名者的信息所需的信息。簽名者信息590可能包括簽名者的身份。在一個(gè)實(shí)施例中,簽名者信息590包含證書鏈,它可用來驗(yàn)證該簽名者的公鑰是來自可信源的。
在示例性ASF實(shí)現(xiàn)中,每個(gè)區(qū)域指示符都包含子對(duì)象區(qū)域偏移、子對(duì)象區(qū)域大小、校驗(yàn)和長(zhǎng)度、及子對(duì)象校驗(yàn)和。區(qū)域偏移標(biāo)識(shí)該區(qū)域在子對(duì)象中何處開始,而區(qū)域大小標(biāo)識(shí)了區(qū)域的大小。對(duì)象校驗(yàn)和對(duì)應(yīng)于所指定區(qū)域的校驗(yàn)和。在優(yōu)選實(shí)施例中,該校驗(yàn)和算法是安全哈希算法(SHA-1)算法。該算法在聯(lián)邦信息處理標(biāo)準(zhǔn)出版物180-1中可見,該出版物在互聯(lián)網(wǎng)上http//www.itl.ni st.gov/fipspubs/fip180-1.htm可見。在另一實(shí)施例中,可以使用具有低沖突概率的任意哈希算法。在還有一個(gè)實(shí)施例中,對(duì)象校驗(yàn)和對(duì)應(yīng)于包含所指定區(qū)域的子對(duì)象的校驗(yàn)和。
當(dāng)簽名被校驗(yàn)時(shí),為了確定該區(qū)域位于哪個(gè)子對(duì)象中(如在圖4的步驟410中),標(biāo)頭子對(duì)象被檢查。對(duì)于每個(gè)被檢查的子對(duì)象而言,按照校驗(yàn)和算法標(biāo)識(shí)符550中指定的算法計(jì)算校驗(yàn)和。在其中在區(qū)域上計(jì)算校驗(yàn)和的實(shí)施例中,為包含在該子對(duì)象內(nèi)的數(shù)據(jù)計(jì)算校驗(yàn)和,該子對(duì)象在給定的子對(duì)象區(qū)域偏移處開始并且擴(kuò)展為給定的子對(duì)象區(qū)域大小。在其中在整個(gè)子對(duì)象上計(jì)算校驗(yàn)和的實(shí)施例中,為該子對(duì)象計(jì)算校驗(yàn)和。當(dāng)所計(jì)算的校驗(yàn)和與區(qū)域指示符內(nèi)的校驗(yàn)和相匹配時(shí),則已標(biāo)識(shí)了該區(qū)域指示符的正確子對(duì)象。當(dāng)已經(jīng)標(biāo)識(shí)了相應(yīng)于每個(gè)區(qū)域指示符的子對(duì)象時(shí),簽名可以被檢查。
在這種實(shí)現(xiàn)中,為了指定要被簽署的整個(gè)子對(duì)象,區(qū)域指示符內(nèi)的偏移將為零,且區(qū)域大小會(huì)等于子對(duì)象的長(zhǎng)度。在另一實(shí)施例中,為整個(gè)子對(duì)象計(jì)算校驗(yàn)和而非為所指定區(qū)域而計(jì)算。
在這種實(shí)施例中,為了允許在具有不同區(qū)域的子對(duì)象一起被驗(yàn)證、以及具有不同實(shí)體來驗(yàn)證子對(duì)象方面的靈活性,對(duì)象內(nèi)可能包括不止一個(gè)數(shù)字簽名子對(duì)象。
在其它實(shí)施例中,可以用其它方法來標(biāo)識(shí)區(qū)域。在一個(gè)實(shí)施例中,能唯一標(biāo)識(shí)子對(duì)象的數(shù)據(jù)連同區(qū)域偏移和大小數(shù)據(jù)一起包含在區(qū)域指示符內(nèi)。
在其它實(shí)施例中,可能僅簽署整個(gè)子對(duì)象。在一個(gè)實(shí)施例中,區(qū)域指示符包括整個(gè)子對(duì)象上的校驗(yàn)和。在另一實(shí)施例中,還包括了校驗(yàn)和的長(zhǎng)度。在還有一個(gè)實(shí)施例中,區(qū)域指示符中使用可以標(biāo)識(shí)子對(duì)象的其它數(shù)據(jù)。
結(jié)論這是一種用于數(shù)據(jù)流標(biāo)頭對(duì)象保護(hù)的系統(tǒng)和方法。如上所述,雖然已經(jīng)結(jié)合各種計(jì)算設(shè)備和網(wǎng)絡(luò)結(jié)構(gòu)描述了本發(fā)明的示例性實(shí)施例,然而所基于的概念可以應(yīng)用于任何計(jì)算設(shè)備或系統(tǒng)中,其中提供數(shù)據(jù)流標(biāo)頭對(duì)象保護(hù)是理想的。這樣,按照本發(fā)明用于提供數(shù)據(jù)流標(biāo)頭對(duì)象保護(hù)的技術(shù)可以應(yīng)用于多種應(yīng)用和設(shè)備中。例如,本發(fā)明的技術(shù)可以應(yīng)用于計(jì)算設(shè)備的操作系統(tǒng)中,它作為設(shè)備上的獨(dú)立對(duì)象、作為另一對(duì)象的一部分、作為可從服務(wù)器下載的對(duì)象、作為設(shè)備或?qū)ο蠛途W(wǎng)絡(luò)間的“中間人”、作為分布式對(duì)象、等等。雖然這里把示例性名稱和示例選作為各種選擇的代表,然而這些名稱和示例并非限制性的。
這里所述的各種技術(shù)可以結(jié)合硬件或軟件或它們的組合而實(shí)現(xiàn)。這樣,本發(fā)明的方法和裝置、或它們的某些方面或部分可能采取有形媒質(zhì)中含有的程序代碼(即,指令)形式,有形媒質(zhì)有軟盤、CD-ROM、硬盤驅(qū)動(dòng)器、或任意其它機(jī)器可讀的存儲(chǔ)媒質(zhì),其中,當(dāng)程序代碼被載入并由如計(jì)算機(jī)這樣的機(jī)器執(zhí)行時(shí),機(jī)器,例如計(jì)算機(jī),則變成實(shí)現(xiàn)本發(fā)明的裝置。在可編程計(jì)算機(jī)上執(zhí)行程序代碼的情況下,計(jì)算設(shè)備一般會(huì)包括處理器、可由處理器讀取的存儲(chǔ)媒質(zhì)(包括易失性和非易失性存儲(chǔ)器和/或存儲(chǔ)元件)、至少一個(gè)輸入設(shè)備、以及至少一個(gè)輸出設(shè)備。一個(gè)或多個(gè)程序可能通過使用數(shù)據(jù)處理API及其它來使用本發(fā)明的技術(shù),為了與計(jì)算機(jī)系統(tǒng)進(jìn)行通信,這些程序最好用高級(jí)程序或面向?qū)ο蟮木幊陶Z言來實(shí)現(xiàn)。然而,程序可以根據(jù)需要以匯編或機(jī)器語言來實(shí)現(xiàn)。在任何情況下,語言可能是編譯的或解釋的語言,并且與硬件實(shí)現(xiàn)結(jié)合。
本發(fā)明的方法和裝置也可以通過以程序代碼形式包含的通信來實(shí)現(xiàn),其中程序代碼在某些傳輸媒質(zhì)上被發(fā)出,譬如在電線或電纜上、通過光纖、或通過任意形式的傳輸,其中,當(dāng)程序代碼被接收并被載入并由諸如EPROM、門陣列、可編程邏輯器件(PLD)、客戶端計(jì)算機(jī)、錄像機(jī)及其它、或具有如上面示例性實(shí)施例所述的有信號(hào)處理能力的接收機(jī)并由機(jī)器執(zhí)行時(shí)會(huì)成為實(shí)現(xiàn)本發(fā)明的裝置。當(dāng)在通用處理器上實(shí)現(xiàn)時(shí),程序代碼與處理器結(jié)合,以提供唯一裝置,它工作以調(diào)用本發(fā)明的功能。此外,結(jié)合本發(fā)明使用的任意存儲(chǔ)技術(shù)可能總是硬件和軟件的組合。
雖然已經(jīng)結(jié)合各圖的優(yōu)選實(shí)施例描述了本發(fā)明,然而可以理解,可以使用其它類似實(shí)施例,或者可以對(duì)所述實(shí)施例作出修改和添加來執(zhí)行與本發(fā)明相同的功能并且不背離本發(fā)明。例如,雖然以諸如對(duì)等網(wǎng)絡(luò)環(huán)境這樣的網(wǎng)絡(luò)化環(huán)境的上下文描述了本發(fā)明的示例性網(wǎng)絡(luò)環(huán)境,然而本領(lǐng)域的技術(shù)人員可以認(rèn)識(shí)到本發(fā)明并不限于此,且本申請(qǐng)中所述的方法可以應(yīng)用于任何計(jì)算設(shè)備或環(huán)境中,譬如游戲控制臺(tái)、手持計(jì)算機(jī)、便攜式計(jì)算機(jī)等等,無論有線或無線,或者可以應(yīng)用于通過通信網(wǎng)絡(luò)連接的任意數(shù)量的這種計(jì)算設(shè)備中,并且在網(wǎng)絡(luò)上交互動(dòng)作。此外,應(yīng)該強(qiáng)調(diào),尤其隨著無線網(wǎng)絡(luò)化設(shè)備的數(shù)目繼續(xù)增加,構(gòu)想了包括手持設(shè)備操作系統(tǒng)和其它應(yīng)用專用的操作系統(tǒng)的多種計(jì)算機(jī)平臺(tái)。更進(jìn)一步的是,本發(fā)明可以在多個(gè)處理芯片或器件中間或上面實(shí)現(xiàn),且存儲(chǔ)器可能相似地在多個(gè)器件上實(shí)施。因此,本發(fā)明不應(yīng)限于任意單獨(dú)實(shí)施例,而應(yīng)該在按照所附實(shí)權(quán)利要求的寬度和范圍內(nèi)作解釋。
權(quán)利要求
1.一種與包括至少一個(gè)子對(duì)象的數(shù)字對(duì)象結(jié)合使用的方法,所述方法為至少一個(gè)區(qū)域提供數(shù)字簽名,其中所述至少一個(gè)區(qū)域的每一個(gè)都由所述至少一個(gè)子對(duì)象之一的全部或部分組成,且其中所述子對(duì)象可以在對(duì)象內(nèi)被重排而不使數(shù)字簽名失效,該方法的特征在于包括為所述至少一個(gè)區(qū)域的每一個(gè)創(chuàng)建一個(gè)數(shù)組,包含標(biāo)識(shí)該區(qū)域的區(qū)域指示符;根據(jù)包含每個(gè)區(qū)域的數(shù)據(jù)和所述數(shù)組的數(shù)據(jù)產(chǎn)生數(shù)字簽名;以及把包含所述數(shù)組和所述數(shù)字簽名的簽名子對(duì)象加入數(shù)字對(duì)象。
2.如權(quán)利要求1所述的方法,其特征在于,所述至少一個(gè)區(qū)域的每一個(gè)包括來自所述至少一個(gè)子對(duì)象中的一個(gè)子對(duì)象。
3.如權(quán)利要求1所述的方法,其特征在于,所述區(qū)域指示符的每一個(gè)都包括按照校驗(yàn)和算法計(jì)算的校驗(yàn)和。
4.如權(quán)利要求3所述的方法,其特征在于,所述校驗(yàn)和為該區(qū)域而計(jì)算。
5.如權(quán)利要求3所述的方法,其特征在于,所述校驗(yàn)和為包含該區(qū)域的子對(duì)象而計(jì)算。
6.如權(quán)利要求3所述的方法,其特征在于,所述簽名子對(duì)象包含標(biāo)識(shí)所使用校驗(yàn)和算法的校驗(yàn)和算法標(biāo)識(shí)符。
7.如權(quán)利要求3所述的方法,其特征在于,所述區(qū)域標(biāo)識(shí)符的每一個(gè)都包括校驗(yàn)和長(zhǎng)度。
8.如權(quán)利要求1所述的方法,其特征在于,所述簽名子對(duì)象包括一個(gè)簽名算法標(biāo)識(shí)符,它標(biāo)識(shí)為所述數(shù)字簽名的產(chǎn)生而使用的簽名算法。
9.如權(quán)利要求1所述的方法,其特征在于,所述簽名子對(duì)象包括簽名者標(biāo)識(shí)符,標(biāo)識(shí)用于驗(yàn)證所述數(shù)字簽名的簽名者。
10.如權(quán)利要求9所述的方法,其特征在于,所述簽名者標(biāo)識(shí)符包括數(shù)字證書,用于安全地標(biāo)識(shí)并驗(yàn)證所述簽名者的公鑰。
11.如權(quán)利要求1所述的方法,其特征在于,所述區(qū)域指示符的每一個(gè)都包括一個(gè)區(qū)域偏移,標(biāo)識(shí)子對(duì)象中相應(yīng)區(qū)域的起始位置。
12.如權(quán)利要求1所述的方法,其特征在于,所述區(qū)域指示符的每一個(gè)都包括一個(gè)區(qū)域大小,標(biāo)識(shí)子對(duì)象中相應(yīng)區(qū)域的大小。
13.如權(quán)利要求1所述的方法,其特征在于,所述對(duì)象是ASF文件的標(biāo)頭對(duì)象。
14.如權(quán)利要求13所述的方法,其特征在于,所述新對(duì)象還包括GUID。
15.一種與包括至少一個(gè)子對(duì)象的數(shù)字對(duì)象結(jié)合使用的方法,所述方法為至少一個(gè)區(qū)域確認(rèn)數(shù)字簽名,其中所述至少一個(gè)區(qū)域的每一個(gè)都由所述至少一個(gè)子對(duì)象之一的全部或部分所組成,其中數(shù)組包括所述至少一個(gè)區(qū)域的每一個(gè)的區(qū)域指示符,該方法的特征在于包括標(biāo)識(shí)相應(yīng)于每一個(gè)所述區(qū)域指示符的區(qū)域;創(chuàng)建一個(gè)數(shù)據(jù)對(duì)象,包含所述數(shù)組,以及用于每一個(gè)所述區(qū)域指示符的與所述區(qū)域指示符對(duì)應(yīng)的所述區(qū)域;以及確認(rèn)在所述數(shù)據(jù)對(duì)象上使用的所述數(shù)字簽名。
16.如權(quán)利要求15所述的方法,其特征在于,所述對(duì)象是ASF文件的標(biāo)頭文件。
17.一種與包括至少一個(gè)子對(duì)象的數(shù)字對(duì)象結(jié)合使用的方法,所述方法為至少一個(gè)區(qū)域確認(rèn)數(shù)字簽名,其中所述至少一個(gè)區(qū)域的每一個(gè)都由所述至少一個(gè)子對(duì)象之一的全部或部分所組成,其中數(shù)組包括所述至少一個(gè)區(qū)域的每一個(gè)的區(qū)域指示符,該方法的特征在于包括確定所述數(shù)字對(duì)象中存在的數(shù)字簽名數(shù)目;確認(rèn)每一個(gè)所述數(shù)字簽名。
18.如權(quán)利要求17所述的方法,其特征在于還包括如果所述數(shù)字對(duì)象內(nèi)存在的數(shù)字簽名數(shù)目為零則返回錯(cuò)誤值。
19.一種與包括至少一個(gè)子對(duì)象的數(shù)字對(duì)象結(jié)合使用的系統(tǒng),所述系統(tǒng)為至少一個(gè)區(qū)域提供數(shù)字簽名,其中所述至少一個(gè)區(qū)域的每一個(gè)都由所述至少一個(gè)子對(duì)象之一的全部或部分所組成,且其中所述子對(duì)象可能在對(duì)象內(nèi)被重排而不會(huì)使數(shù)字簽名失效,該系統(tǒng)的特征在于包括數(shù)組創(chuàng)建裝置,用于為所述至少一個(gè)區(qū)域的每一個(gè)創(chuàng)建一個(gè)數(shù)組,包含標(biāo)識(shí)該區(qū)域的區(qū)域指示符;簽字裝置,用于根據(jù)包含每個(gè)區(qū)域的數(shù)據(jù)和所述數(shù)組產(chǎn)生數(shù)字簽名;以及簽名子對(duì)象添加裝置,用于把包含所述數(shù)組和所述數(shù)字簽名的簽名子對(duì)象添加至數(shù)字對(duì)象。
20.如權(quán)利要求19所述的系統(tǒng),其特征在于,所述至少一個(gè)區(qū)域的每一個(gè)包括來自所述至少一個(gè)子對(duì)象的一個(gè)子對(duì)象。
21.如權(quán)利要求19所述的系統(tǒng),其特征在于,所述至少一個(gè)區(qū)域的每一個(gè)包括按照校驗(yàn)和算法計(jì)算的校驗(yàn)和。
22.如權(quán)利要求21所述的系統(tǒng),其特征在于,所述校驗(yàn)和為該區(qū)域而計(jì)算。
23.如權(quán)利要求21所述的系統(tǒng),其特征在于,所述校驗(yàn)和為包含該區(qū)域的子對(duì)象而計(jì)算。
24.如權(quán)利要求21所述的系統(tǒng),其特征在于,所述簽名子對(duì)象包含標(biāo)識(shí)所使用校驗(yàn)和算法的校驗(yàn)和算法標(biāo)識(shí)符。
25.如權(quán)利要求21所述的系統(tǒng),其特征在于,所述區(qū)域標(biāo)識(shí)符的每一個(gè)都包括校驗(yàn)和長(zhǎng)度。
26.如權(quán)利要求19所述的系統(tǒng),其特征在于,所述簽名子對(duì)象包括一個(gè)簽名算法標(biāo)識(shí)符,它標(biāo)識(shí)為所述數(shù)字簽名的產(chǎn)生而使用的簽名算法。
27.如權(quán)利要求19所述的系統(tǒng),其特征在于,所述簽名子對(duì)象包括簽名者標(biāo)識(shí)符,標(biāo)識(shí)用于驗(yàn)證所述數(shù)字簽名的簽名者。
28.如權(quán)利要求27所述的系統(tǒng),其特征在于,所述簽名者標(biāo)識(shí)符包括數(shù)字證書,用于安全地標(biāo)識(shí)并驗(yàn)證所述簽名者的公鑰。
29.如權(quán)利要求19所述的系統(tǒng),其特征在于,所述區(qū)域指示符的每一個(gè)都包括一個(gè)區(qū)域偏移,標(biāo)識(shí)子對(duì)象中相應(yīng)區(qū)域的起始位置。
30.如權(quán)利要求19所述的系統(tǒng),其特征在于,所述區(qū)域指示符的每一個(gè)都包括一個(gè)區(qū)域大小,標(biāo)識(shí)子對(duì)象中相應(yīng)區(qū)域的大小。
31.如權(quán)利要求19所述的系統(tǒng),其特征在于,所述對(duì)象是ASF文件的標(biāo)頭對(duì)象。
32.如權(quán)利要求31所述的系統(tǒng),其特征在于,所述新對(duì)象還包括GUID。
33.一種與包括至少一個(gè)子對(duì)象的數(shù)字對(duì)象結(jié)合使用的系統(tǒng),所述系統(tǒng)為至少一個(gè)區(qū)域確認(rèn)數(shù)字簽名,其中所述至少一個(gè)區(qū)域的每一個(gè)都由所述至少一個(gè)子對(duì)象之一的全部或部分所組成,其中數(shù)組包括所述至少一個(gè)區(qū)域的每一個(gè)的區(qū)域指示符,該系統(tǒng)的特征在于包括區(qū)域標(biāo)識(shí)裝置,標(biāo)識(shí)相應(yīng)于每一個(gè)所述區(qū)域指示符的區(qū)域;數(shù)據(jù)對(duì)象創(chuàng)建裝置,用于創(chuàng)建一個(gè)數(shù)據(jù)對(duì)象,包含所述數(shù)組,以及用于每一個(gè)所述區(qū)域指示符的與所述區(qū)域指示符對(duì)應(yīng)所述區(qū)域;以及確認(rèn)裝置,確認(rèn)所述數(shù)據(jù)對(duì)象上使用的所述數(shù)字簽名。
34.如權(quán)利要求33所述的系統(tǒng),其特征在于,所述對(duì)象是ASF文件的標(biāo)頭文件。
35.一種與包括至少一個(gè)子對(duì)象的數(shù)字對(duì)象結(jié)合使用的系統(tǒng),所述系統(tǒng)為至少一個(gè)區(qū)域確認(rèn)數(shù)字簽名,其中所述至少一個(gè)區(qū)域的每一個(gè)都由所述至少一個(gè)子對(duì)象之一的全部或部分所組成,其中數(shù)組包括所述至少一個(gè)區(qū)域的每一個(gè)的區(qū)域指示符,該系統(tǒng)的特征在于包括計(jì)數(shù)裝置,用于確定所述數(shù)字對(duì)象中存在的數(shù)字簽名數(shù)目;確認(rèn)裝置,用于確認(rèn)每一個(gè)所述數(shù)字簽名。
36.如權(quán)利要求35所述的方法,其特征在于還包括錯(cuò)誤返回裝置,如果所述數(shù)字對(duì)象內(nèi)存在的數(shù)字簽名數(shù)目為零則返回錯(cuò)誤值。
37.一種與包括至少一個(gè)子對(duì)象的數(shù)字對(duì)象結(jié)合使用的計(jì)算機(jī)可讀媒質(zhì),所述計(jì)算機(jī)可讀媒質(zhì)為至少一個(gè)區(qū)域提供數(shù)字簽名,其中所述至少一個(gè)區(qū)域的每一個(gè)都由所述至少一個(gè)子對(duì)象之一的全部或部分所組成,且其中所述子對(duì)象可能在對(duì)象內(nèi)被重排而不會(huì)使數(shù)字簽名失效,具有指令來執(zhí)行操作的計(jì)算機(jī)可讀媒質(zhì)的特征在于包括為所述至少一個(gè)區(qū)域的每一個(gè)創(chuàng)建一個(gè)數(shù)組,該數(shù)組包含標(biāo)識(shí)該區(qū)域的區(qū)域指示符;根據(jù)包含每個(gè)區(qū)域的數(shù)據(jù)和所述數(shù)組產(chǎn)生數(shù)字簽名;以及把包含所述數(shù)組和所述數(shù)字簽名的簽名子對(duì)象添加至數(shù)字對(duì)象。
38.如權(quán)利要求37所述的計(jì)算機(jī)可讀媒質(zhì),其特征在于,所述至少一個(gè)區(qū)域的每一個(gè)包括來自所述至少一個(gè)子對(duì)象的一個(gè)子對(duì)象。
39.如權(quán)利要求37所述的計(jì)算機(jī)可讀媒質(zhì),其特征在于,所述區(qū)域指示符包括按照校驗(yàn)和算法計(jì)算的校驗(yàn)和。
40.如權(quán)利要求39所述的計(jì)算機(jī)可讀媒質(zhì),其特征在于,所述校驗(yàn)和為該區(qū)域而計(jì)算。
41.如權(quán)利要求39所述的計(jì)算機(jī)可讀媒質(zhì),其特征在于,所述校驗(yàn)和為包含該區(qū)域的子對(duì)象而計(jì)算。
42.如權(quán)利要求39所述的計(jì)算機(jī)可讀媒質(zhì),其特征在于,所述簽名子對(duì)象包含標(biāo)識(shí)所使用的校驗(yàn)和算法的校驗(yàn)和算法標(biāo)識(shí)符。
43.如權(quán)利要求39所述的計(jì)算機(jī)可讀媒質(zhì),其特征在于,所述區(qū)域標(biāo)識(shí)符的每一個(gè)都包括校驗(yàn)和長(zhǎng)度。
44.如權(quán)利要求37所述的計(jì)算機(jī)可讀媒質(zhì),其特征在于,所述簽名子對(duì)象包括一個(gè)簽名算法標(biāo)識(shí)符,它標(biāo)識(shí)為所述數(shù)字簽名的產(chǎn)生而使用的簽名算法。
45.如權(quán)利要求37所述的計(jì)算機(jī)可讀媒質(zhì),其特征在于,所述簽名子對(duì)象包括簽名者標(biāo)識(shí)符,標(biāo)識(shí)用于驗(yàn)證所述數(shù)字簽名的簽名者。
46.如權(quán)利要求45所述的計(jì)算機(jī)可讀媒質(zhì),其特征在于,所述簽名者標(biāo)識(shí)符包括數(shù)字證書,用于安全地標(biāo)識(shí)并驗(yàn)證所述簽名者的公鑰。
47.如權(quán)利要求37所述的計(jì)算機(jī)可讀媒質(zhì),其特征在于,所述區(qū)域指示符的每一個(gè)都包括一個(gè)區(qū)域偏移,標(biāo)識(shí)子對(duì)象中相應(yīng)區(qū)域的起始位置。
48.如權(quán)利要求37所述的計(jì)算機(jī)可讀媒質(zhì),其特征在于,所述區(qū)域指示符的每一個(gè)都包括一個(gè)區(qū)域大小,標(biāo)識(shí)子對(duì)象中相應(yīng)區(qū)域的大小。
49.如權(quán)利要求37所述的計(jì)算機(jī)可讀媒質(zhì),其特征在于,所述對(duì)象是ASF文件的標(biāo)頭對(duì)象。
50.如權(quán)利要求49所述的計(jì)算機(jī)可讀媒質(zhì),其特征在于,所述新對(duì)象還包括GUID。
51.一種與包括至少一個(gè)子對(duì)象的數(shù)字對(duì)象結(jié)合使用的計(jì)算機(jī)可讀媒質(zhì),所述計(jì)算機(jī)可讀媒質(zhì)為至少一個(gè)區(qū)域確認(rèn)數(shù)字簽名,其中所述至少一個(gè)區(qū)域的每一個(gè)都由所述至少一個(gè)子對(duì)象之一的全部或部分所組成,其中數(shù)組包括所述至少一個(gè)區(qū)域的每一個(gè)的區(qū)域指示符,該計(jì)算機(jī)可讀媒質(zhì)的特征在于包括標(biāo)識(shí)相應(yīng)于每一個(gè)所述區(qū)域指示符的區(qū)域;創(chuàng)建一個(gè)數(shù)據(jù)對(duì)象,包含所述數(shù)組,以及用于每一個(gè)所述區(qū)域指示符創(chuàng)的與所述區(qū)域指示符對(duì)應(yīng)的所述區(qū)域;以及確認(rèn)所述數(shù)據(jù)對(duì)象上使用的所述數(shù)字簽名。
52.如權(quán)利要求51所述的計(jì)算機(jī)可讀媒質(zhì),其特征在于,所述對(duì)象是ASF文件的標(biāo)頭文件。
53.一種與包括至少一個(gè)子對(duì)象的數(shù)字對(duì)象結(jié)合使用的計(jì)算機(jī)可讀媒質(zhì),所述計(jì)算機(jī)可讀媒質(zhì)為至少一個(gè)區(qū)域確認(rèn)數(shù)字簽名,其中所述至少一個(gè)區(qū)域的每一個(gè)都由所述至少一個(gè)子對(duì)象之一的全部或部分所組成,其中數(shù)組包括所述至少一個(gè)區(qū)域的每一個(gè)的區(qū)域指示符,該計(jì)算機(jī)可讀媒質(zhì)的特征在于包括確定所述數(shù)字對(duì)象中存在的數(shù)字簽名數(shù)目;確認(rèn)每一個(gè)所述數(shù)字簽名。
54.如權(quán)利要求53所述的計(jì)算機(jī)可讀媒質(zhì),其特征在于還包括如果所述數(shù)字對(duì)象內(nèi)存在的數(shù)字簽名數(shù)目為零則返回錯(cuò)誤值。
55.一種用于存儲(chǔ)數(shù)據(jù)的存儲(chǔ)器,由包含存儲(chǔ)在所述存儲(chǔ)器內(nèi)的數(shù)據(jù)結(jié)構(gòu)的應(yīng)用程序來訪問,所述數(shù)據(jù)結(jié)構(gòu)適用于存儲(chǔ)由至少一個(gè)子對(duì)象組成的對(duì)象的確認(rèn)信息,而允許所述子對(duì)象順序的變化,該存儲(chǔ)器的特征在于包括包含至少一個(gè)區(qū)域指示符的區(qū)域指示符數(shù)組,每個(gè)這種區(qū)域指示符都指定一個(gè)區(qū)域,它包含所述子對(duì)象之一的全部或部分;以及包含所述區(qū)域和所述區(qū)域指示符數(shù)組的每一個(gè)的數(shù)據(jù)的數(shù)字簽名。
56.如權(quán)利要求55所述的存儲(chǔ)器,其特征在于,所述數(shù)據(jù)結(jié)構(gòu)還包括下列的一個(gè)或多個(gè)所述數(shù)據(jù)結(jié)構(gòu)的全局唯一的標(biāo)識(shí)符(GUID);數(shù)據(jù)結(jié)構(gòu)的大?。凰鰠^(qū)域指示符數(shù)組內(nèi)的區(qū)域數(shù)目;校驗(yàn)和算法標(biāo)識(shí)符;簽名算法標(biāo)識(shí)符,標(biāo)識(shí)用于產(chǎn)生所述數(shù)字簽名的算法;所述數(shù)字簽名的簽名長(zhǎng)度;以及用于驗(yàn)證所述數(shù)字簽名的簽名者信息。
全文摘要
數(shù)據(jù)文件的標(biāo)頭對(duì)象由子對(duì)象組成,子對(duì)象指定了數(shù)據(jù)流的屬性并且包含適當(dāng)驗(yàn)證并解譯數(shù)據(jù)對(duì)象內(nèi)的信息所需的信息。為了允許保護(hù)任意子對(duì)象組而不要求子對(duì)象遵從任意特定的排列,引入新的子對(duì)象,它包括標(biāo)識(shí)子對(duì)象內(nèi)的區(qū)域以及那些區(qū)域的驗(yàn)證信息。這個(gè)標(biāo)頭對(duì)象內(nèi)新的子對(duì)象允許修改非保護(hù)區(qū)域并重新組織標(biāo)頭內(nèi)的子對(duì)象而不使驗(yàn)證信息失效。
文檔編號(hào)G11C27/02GK1490736SQ0315931
公開日2004年4月21日 申請(qǐng)日期2003年9月3日 優(yōu)先權(quán)日2002年9月4日
發(fā)明者D·阿登特, C·韋斯特, P·杜布里什, C·P·斯特羅姆, B·D·克賴茨, D 阿登特, 克賴茨, 固, 斯特羅姆, 祭鍤 申請(qǐng)人:微軟公司