專利名稱::安全內(nèi)容描述的制作方法安全內(nèi)容描述背景業(yè)己開發(fā)出能讓諸如軟件更新和關(guān)鍵補(bǔ)丁之類的數(shù)據(jù)分發(fā)至網(wǎng)絡(luò)內(nèi)各節(jié)點的內(nèi)容分發(fā)系統(tǒng)。這些系統(tǒng)通常包括位于網(wǎng)絡(luò)中的許多服務(wù)器,其中各節(jié)點直接連接至服務(wù)器之一來下載所需文件。然而,這些系統(tǒng)受到與服務(wù)器的連接帶寬的限制并且需要可觀的投資才能增加系統(tǒng)容量。因此,己經(jīng)開發(fā)出依賴于一完全分布式體系結(jié)構(gòu)的內(nèi)容分發(fā)系統(tǒng),其網(wǎng)絡(luò)內(nèi)的節(jié)點參與分發(fā)過程。這些系統(tǒng)可以被稱為對等或?qū)Φ容o助內(nèi)容分發(fā)系統(tǒng)。在這類系統(tǒng)中,服務(wù)器可將要分發(fā)的文件分割成多個塊并且將這些塊提供給網(wǎng)絡(luò)內(nèi)的節(jié)點。只要節(jié)點己經(jīng)接收到一個或多個塊,該節(jié)點就能夠為其他節(jié)點充當(dāng)所接收的塊的源,同時還接收其他塊直至收到文件的所有塊。惡意用戶會以許多方式引發(fā)針對這類系統(tǒng)的問題。這包括虛假內(nèi)容(例如,內(nèi)容并非其聲稱的內(nèi)容)的分發(fā)。這類虛假內(nèi)容可以包括病毒或者其他有害程序,或者可以只是通過共享不想要的數(shù)據(jù)來浪費網(wǎng)絡(luò)資源。惡意用戶可以分發(fā)損壞的下載數(shù)據(jù),而這些數(shù)據(jù)隨后可由沒有意識到該數(shù)據(jù)已損壞的其他對等體分發(fā)。這會導(dǎo)致大規(guī)模的損壞數(shù)據(jù)散布,從而無法分發(fā)特定的數(shù)據(jù)片段。在內(nèi)容分發(fā)網(wǎng)絡(luò)使用網(wǎng)絡(luò)編碼的情況下,來自一內(nèi)容片段的單個損壞塊的引入可能會非常迅速地導(dǎo)致正被分發(fā)的該段內(nèi)容的所有塊的損壞。在其它示例中,惡意用戶可以發(fā)起針對網(wǎng)絡(luò)中特定元素的服務(wù)拒絕攻擊,例如通過隨后會異常中止但會消耗資源的重復(fù)連接嘗試。取決于服務(wù)拒絕攻擊所針對的對象,這類攻擊會引起整個分發(fā)系統(tǒng)故障或者僅影響一個或多個個別用戶。本發(fā)明試圖提供一種用于內(nèi)容分發(fā)和內(nèi)容確認(rèn)的改進(jìn)的方法和裝置,其緩解了已知方法和裝置的各種問題。概述下面提供本發(fā)明的簡化概要以便為讀者提供基本的理解。本概要不是本發(fā)明的詳盡概觀,并且既不標(biāo)識本發(fā)明的關(guān)鍵/決定性要素也不描繪本發(fā)明的范圍。其唯一目的是以簡化形式提供在此公開一些概念作為稍后提供的更詳細(xì)描述的序言。本發(fā)明的示例提供了一種在網(wǎng)絡(luò)中的節(jié)點處自動驗證通過網(wǎng)絡(luò)分發(fā)的內(nèi)容的方法,該方法包括接收由發(fā)布者節(jié)點發(fā)布的內(nèi)容片段的內(nèi)容描述,該內(nèi)容描述包括內(nèi)容標(biāo)識符、發(fā)布者標(biāo)識符、發(fā)布者授權(quán)信息和內(nèi)容檢驗信息;檢驗內(nèi)容描述的完整性;檢驗內(nèi)容描述的有效性;以及如果完整性和有效性檢驗都通過,則儲存該內(nèi)容描述。有利的是,這允許內(nèi)容的接收方能信任所發(fā)布的內(nèi)容為合法且是其所期望的內(nèi)容。如果發(fā)現(xiàn)內(nèi)容是無效的、非法的或該反對的,則該內(nèi)容描述可由發(fā)布者撤消,并且如果發(fā)現(xiàn)發(fā)布者正在發(fā)布無效的、非法的、冒犯性的或其它該反對的內(nèi)容,則授權(quán)主體可撤消發(fā)布者的授權(quán),因此阻止發(fā)布者發(fā)布進(jìn)一步的內(nèi)容。因此,內(nèi)容描述使得接收方能夠檢驗發(fā)布者和內(nèi)容兩者的狀態(tài)。較佳的是,內(nèi)容描述是一種自證明的數(shù)據(jù)結(jié)構(gòu)。較佳地,檢驗內(nèi)容描述的完整性包括檢驗與該內(nèi)容描述相關(guān)聯(lián)的密碼簽名。有利的是,使用用密碼簽署的內(nèi)容描述,惡意用戶篡改內(nèi)容描述且所得的內(nèi)容描述通過完整性測試在計算上是不可行的。較佳地,檢驗內(nèi)容描述的有效性包括訪問由發(fā)布者發(fā)放的證書撤消列表;確認(rèn)該內(nèi)容描述沒有被包括在該證書撤消列表上;以及確認(rèn)發(fā)布者授權(quán)信息是有效的。有利的是,這使得發(fā)布者能夠控制其發(fā)布的內(nèi)容的分發(fā)。如果發(fā)布者希望在內(nèi)容描述到期之前停止發(fā)布,則發(fā)布者可向其證書撤消列表添加內(nèi)容描述的細(xì)節(jié)。較佳地,該內(nèi)容描述還包括起始時間和到期時間,并且其中檢驗內(nèi)容描述的有效性還包括檢驗當(dāng)前時間在內(nèi)容描述的起始時間之后且在到期時間之刖。有利的是,這使得發(fā)布者能夠設(shè)置一內(nèi)容描述有效且可進(jìn)行內(nèi)容分發(fā)的時段。較佳地,發(fā)布者授權(quán)信息包括關(guān)于授權(quán)主體的標(biāo)識符,并且確認(rèn)發(fā)布者授權(quán)信息有效包括訪問由授權(quán)主體發(fā)放的證書撤消列表;確認(rèn)發(fā)布者標(biāo)識符沒有被包括在該證書撤消列表上。該標(biāo)識符可包括授權(quán)主體的名稱或指向該授權(quán)主體的CRL位置的指針。較佳地,該方法還包括從對等體接收請求,以及向該對等體提供內(nèi)容描述。較佳地,該方法還包括周期性地重新檢驗內(nèi)容描述的有效性;以及如果內(nèi)容描述無效,則刪除該內(nèi)容描述。較佳地,節(jié)點包括控制節(jié)點或?qū)Φ润w。第二示例提供了一種包括計算機(jī)程序代碼裝置的計算機(jī)程序,該計算機(jī)程序代碼裝置適用于當(dāng)所述程序在計算機(jī)上運行時執(zhí)行上述任何方法的所有步驟。較佳地,該計算機(jī)程序被包含在計算機(jī)可讀介質(zhì)上。第三個示例提供了內(nèi)容分發(fā)系統(tǒng)中的一種節(jié)點,包括用于接收由發(fā)布者節(jié)點發(fā)布的內(nèi)容片段的內(nèi)容描述的裝置,該內(nèi)容描述包括內(nèi)容標(biāo)識符、發(fā)布者標(biāo)識符、發(fā)布者授權(quán)信息和內(nèi)容檢驗信息;用于檢驗內(nèi)容描述的完整性的裝置;用于檢驗內(nèi)容描述的有效性的裝置;以及用于儲存內(nèi)容描述的存儲,其中該存儲被安排成僅當(dāng)完整性和有效性檢驗都通過時才儲存內(nèi)容描述。較佳的是,該內(nèi)容描述是一種自證明的數(shù)據(jù)結(jié)構(gòu)。較佳地,用于檢驗有效性的裝置包括用于訪問由發(fā)布者發(fā)放的證書撤消列表的裝置;用于確認(rèn)該內(nèi)容描述沒有被包括在該證書撤消列表上的裝置;以及用于確認(rèn)發(fā)布者授權(quán)信息是有效的裝置。較佳地,該內(nèi)容描述還包括起始時間和到期時間,其中該節(jié)點還包括時鐘,并且其中用于檢驗有效性的裝置還包括用于檢驗時鐘上的當(dāng)前時間在內(nèi)容描述的起始時間之后且在到期時間之前的裝置。較佳地,發(fā)布者授權(quán)信息包括關(guān)于授權(quán)主體的標(biāo)識符,并且其中用于確認(rèn)發(fā)布者授權(quán)信息的裝置適用于訪問由授權(quán)主體發(fā)放的證書撤消列表;以及確認(rèn)發(fā)布者標(biāo)識符沒有被包括在該證書撤消列表上。較佳地,節(jié)點是控制節(jié)點或?qū)Φ润w。第四個示例提供了一種包括至少一個如上所述的控制節(jié)點和/或?qū)Φ润w的內(nèi)容分發(fā)系統(tǒng)。第五個示例提供了一種數(shù)據(jù)結(jié)構(gòu),包括內(nèi)容標(biāo)識符、發(fā)布者標(biāo)識符、發(fā)布者授權(quán)信息和內(nèi)容檢驗信息。較佳地,該數(shù)據(jù)結(jié)構(gòu)是自證明的。該數(shù)據(jù)結(jié)構(gòu)可包括X.509證書。該數(shù)據(jù)結(jié)構(gòu)可以是內(nèi)容安全描述。本方法可由存儲介質(zhì)上的機(jī)器可讀形式的軟件來執(zhí)行。軟件能夠適于在并行處理器或串行處理器上執(zhí)行,使得本方法的各步驟可以按任何合適的次序或同時開展。這里承認(rèn)軟件能夠是有價值的、可以單獨交易的商品。它旨在包含運行于或者控制"椏"或標(biāo)準(zhǔn)硬件以實現(xiàn)所需功能的軟件。它還旨在包含例如用于設(shè)計硅芯片,或者用于配置通用可編程芯片的HDL(硬件描述語言)軟件等"描述"或者定義硬件配置以實現(xiàn)期望的功能的軟件。許多附帶特征將隨著參考下面的詳細(xì)描述并結(jié)合附圖進(jìn)行理解而得到更好的認(rèn)識。從結(jié)合附圖的下列詳細(xì)描述中將更好地理解本說明書,在附圖中-圖l是內(nèi)容分發(fā)系統(tǒng)的示意圖2是示出發(fā)布者節(jié)點的操作的示例的流程圖3是示出控制節(jié)點的操作的示例的流程圖4是控制節(jié)點的示例體系結(jié)構(gòu)的示意圖5示出了用于有效性檢驗的示例流程圖6是示出控制節(jié)點的操作的第二示例的流程圖;以及圖7是示出對等體的操作的示例的流程圖。相同的標(biāo)號用于指示附圖中相同的部分。詳細(xì)描述下面結(jié)合附圖提供的詳細(xì)描述旨在作為本發(fā)明的例子的描述,但是并不旨在表示可以構(gòu)造或者使用本例子的僅有的形式。該描述闡述本示例的功能以及用于構(gòu)造和操作本示例的步驟序列。然而,相同或等價的功能與序列可由不同的示例來完成。雖然在本文中將本發(fā)明的示例描述并示出為在對等輔助分發(fā)系統(tǒng)(也被稱為對等分發(fā)系統(tǒng))中實現(xiàn),但是描述的系統(tǒng)只是作為示例而非限制來提供。盡管各示例是參考特定的對等輔助分發(fā)系統(tǒng)(例如,由微軟(商標(biāo))開發(fā)的系統(tǒng),稱為Avalanche或Mercury)來描述的,但這僅是作為示例,并且所描述的技術(shù)可以在任何其它內(nèi)容分發(fā)系統(tǒng)中實現(xiàn)。本領(lǐng)域普通技術(shù)人員將會認(rèn)識到,本發(fā)明的示例適于在各種不同類型的內(nèi)容分發(fā)和/或內(nèi)容共享系統(tǒng),包括基于服務(wù)器的內(nèi)容分發(fā)系統(tǒng)中應(yīng)用。圖1是內(nèi)容分發(fā)系統(tǒng)100的示意圖,該系統(tǒng)包括發(fā)布者101、授權(quán)主體102、控制服務(wù)器103、種子104和兩個對等體105。內(nèi)容分發(fā)在云106中發(fā)生。內(nèi)容可以是任何類型的數(shù)據(jù),并且可以作為例如已編碼的塊來分發(fā)。發(fā)布者IOI是提供內(nèi)容并且由授權(quán)主體102授權(quán)的實體。發(fā)布者可以是用戶或公司,并且可以位于內(nèi)容分發(fā)云106之內(nèi)或之外??刂品?wù)器103(也稱為登記者或跟蹤者)幫助對等體105找出正參與特定內(nèi)容片段的分發(fā)的其他對等體。種子104是通常總是開機(jī)的客戶機(jī),并且發(fā)布者將內(nèi)容片段放置其上以供隨后在系統(tǒng)內(nèi)分發(fā)。種子104將內(nèi)容上傳給系統(tǒng)100中少數(shù)幾個對等體105(可能就上傳給單個對等體),但是不從系統(tǒng)中的其他節(jié)點下載相同的內(nèi)容。本文中的術(shù)語"節(jié)點"指系統(tǒng)內(nèi)任何邏輯實體。對等體105是對獲取種子104所持有的內(nèi)容感興趣的客戶機(jī)。對等體將從系統(tǒng)中的各節(jié)點(例如,對等體或種子)下載內(nèi)容,并且也將其己經(jīng)接收的那些內(nèi)容部分上傳給系統(tǒng)內(nèi)的其他對等體。一旦對等體己經(jīng)接收到全部特定內(nèi)容片段,它就通過使該內(nèi)容可用于上傳到系統(tǒng)內(nèi)的其他對等體同時不再從對等體下載內(nèi)容來充當(dāng)臨時或虛擬種子。內(nèi)容能夠以已編碼格式在云中分發(fā),或者作為替換,可以不對內(nèi)容進(jìn)行編碼。本領(lǐng)域的技術(shù)人員可以理解,圖1所示的內(nèi)容分發(fā)系統(tǒng)IOO僅作為示例,并且內(nèi)容分發(fā)系統(tǒng)可包括圖1所示的元件的子集,和/或可包含附加元件。此外,圖1所示的元件是功能元件,并且可以在物理網(wǎng)絡(luò)節(jié)點內(nèi)組合多于一個的功能元件。圖1示出了在系統(tǒng)100各部分之間的一些邏輯連接,然而所示的這些連接不是窮盡的并且僅用作說明。圖2是示出發(fā)布者101的操作的示例的流程圖。發(fā)布者101向授權(quán)主體102請求發(fā)布授權(quán)(步驟201)。作為響應(yīng),授權(quán)主體發(fā)放證書(步驟202)。該證書可以專用于一內(nèi)容片段,或者該證書可以不涉及任何特定的內(nèi)容片段而是可由發(fā)布者在任何內(nèi)容分發(fā)云中發(fā)布任何內(nèi)容片段時使用。發(fā)布者101然后選擇宿主控制服務(wù)器103和種子服務(wù)器104(步驟203),并生成其用來進(jìn)行數(shù)字簽名的安全內(nèi)容描述(SCD)(步驟204)。SCD包括發(fā)放給發(fā)布者的證書(在以上步驟202)的細(xì)節(jié)以及能夠?qū)ο螺d的內(nèi)容進(jìn)行完整性檢驗的信息。內(nèi)容分發(fā)云106隨后通過發(fā)布者將經(jīng)簽署的SCD存放在控制服務(wù)器103上(步驟205)并將內(nèi)容存放在種子服務(wù)器104上(步驟206)而得以建立。SCD和每一方法步驟將在以下更詳細(xì)描述。對發(fā)布授權(quán)的請求(步驟201)可以通過向認(rèn)證機(jī)構(gòu)(CA)(諸如Microsoft(商標(biāo))認(rèn)證機(jī)構(gòu))申請授權(quán)來作出。在某些情況下,帶有根證書的CA(諸如Microsoft(商標(biāo)))可以授權(quán)發(fā)布者向其它發(fā)布者再授權(quán),而這些被再授權(quán)的發(fā)布者還能授權(quán)子發(fā)布者。例如,CA可以授權(quán)發(fā)布者(例如,被稱為"發(fā)布者1"的虛構(gòu)發(fā)布者),并且允許它們將組織的各部分再授權(quán)為發(fā)布者(例如,"發(fā)布者l-新聞"和"發(fā)布者l-喜劇")。這一再授權(quán)過程也被稱為委托(delegation)。響應(yīng)于上述請求(在步驟201)發(fā)放的證書(在步驟202)是自證明的數(shù)據(jù)結(jié)構(gòu),并且可以采取X.509證書的形式。本文中使用的術(shù)語"自證明"指的是該結(jié)構(gòu)包含其自身未被篡改的證明的事實,例如它可以具有確保證書未被篡改的密碼簽名。X.509是用于公鑰基礎(chǔ)結(jié)構(gòu)(PKI)的ITU-T(國際電信聯(lián)盟的電信部門)標(biāo)準(zhǔn)。該證書可以被提供給發(fā)布者101,或者可以存儲在中央儲存庫(未在圖1中示出)中并將其細(xì)節(jié)提供給發(fā)布者101??梢允褂萌魏纹渌线m的授權(quán)方法來代替X.509證書,包括其他證書方案、共享秘密和導(dǎo)出令牌。對宿主控制服務(wù)器的選擇(步驟203)可以涉及發(fā)布者設(shè)立其本身的控制服務(wù)器或者獲取使用第三方控制服務(wù)器的許可??刂品?wù)器103還可由CA授權(quán),使得發(fā)布者可以確信控制服務(wù)器是合法的,并且對等體可以確信從控制服務(wù)器獲得的信息的完整性。在授權(quán)控制服務(wù)器的情況下,在生成SCD(步驟204)之前或在將SCD存放在控制服務(wù)器上(步驟205)之前,可以在發(fā)布者101和控制服務(wù)器103之間發(fā)生認(rèn)證,作為選擇過程(步驟203)的一部分。認(rèn)證過程可以涉及發(fā)布者以與以下描述相似的方式檢驗控制服務(wù)器的證書鏈。選擇的種子104(同樣在步驟203中)可以使用任何合適的協(xié)議來向云內(nèi)的對等體提供內(nèi)容,這些協(xié)議包括但不限于,任何支持Avalanche的協(xié)議、以及http(超文本傳輸協(xié)議)。Avalanche是由微軟公司(商標(biāo))開發(fā)的使用網(wǎng)絡(luò)編碼的對等輔助內(nèi)容分發(fā)協(xié)議。這意味著系統(tǒng)中的每個節(jié)點生成并傳送經(jīng)編碼的信息塊,這些新經(jīng)編碼的塊是當(dāng)前由該特定節(jié)點所持有的全部塊的線性組合。這一協(xié)議的優(yōu)點之一在于,它使得內(nèi)容的特定部分(或塊)在網(wǎng)絡(luò)內(nèi)稀有或變得稀有的概率最小。種子104也可由CA授權(quán),使得發(fā)布者可以確信種子是合法的,并且僅以合法的方式分發(fā)內(nèi)容。在授權(quán)種子的情況下,在生成SCD(步驟204)之前或在將內(nèi)容存放在種子上(步驟205)之前,可以在發(fā)布者101和種子104之間發(fā)生認(rèn)證,作為選擇過程(步驟203)的一部分。認(rèn)證過程可以涉及發(fā)布者以與以下描述相似的方式檢驗種子的證書鏈。由發(fā)布者生成的安全內(nèi)容描述(SCD)(在步驟204)是提供內(nèi)容發(fā)布者及其授權(quán)的細(xì)節(jié)并能對傳送且重新組裝的內(nèi)容進(jìn)行確認(rèn)的自證明結(jié)構(gòu)。SCD無需加密,但是在某些示例中可以對其部分或全部進(jìn)行加密。SCD可以包括以下的部分或全部SCD的序列號用于簽署SCD的算法的細(xì)節(jié)SCD開始有效的時間(例如,以UTC,即協(xié)調(diào)世界時間為準(zhǔn))SCD的到期時間發(fā)布者標(biāo)識信息,這可包括發(fā)布者的全局唯一ID和發(fā)布者標(biāo)識符,諸如發(fā)布者的名稱、內(nèi)容發(fā)布者的證書拇指指紋或通用名稱(CN)、或發(fā)布者的已編碼X.509證書。關(guān)于發(fā)布者的公鑰的信息,這可以是自簽署的證書。證書撤消列表(CRL)位置信息。內(nèi)容的文件名內(nèi)容文件的長度。該內(nèi)容的唯一標(biāo)識符。這通常是內(nèi)容散列的值。內(nèi)容的創(chuàng)建時間。已解碼內(nèi)容的散列算法和散列值。指定同態(tài)散列所需的傳送設(shè)置,諸如塊數(shù)和編碼算法。同態(tài)散列算法規(guī)范和值。一個或多個種子端點描述。一個或多個控制服務(wù)器端點描述。SCD可使用X.509擴(kuò)展字段來編碼成X.509證書。這允許現(xiàn)有的X.509證書管理和確認(rèn)基礎(chǔ)結(jié)構(gòu)用于處理SCD。在一個示例中,SCD內(nèi)的不同元素可被映射到X.509證書字段,并且一個示例實現(xiàn)在下表中示出。用星號標(biāo)記的字段是標(biāo)準(zhǔn)X.509字段,而其余字段是X.509擴(kuò)展字段。<table>tableseeoriginaldocumentpage12</column></row><table><table>tableseeoriginaldocumentpage13</column></row><table>FileLength畫T64內(nèi)容的64位長度,以字節(jié)為單位ContentHashTypeCRYPT—ALGORITHM—IDENTIFIER用于確認(rèn)內(nèi)容完整性的散列的類型ContentHashDataCRYPTHASHBLOB內(nèi)容的散列值在另一示例中,SCD內(nèi)的元素可被映射到包含數(shù)據(jù)結(jié)構(gòu)的單個X.509擴(kuò)展字段,其中該數(shù)據(jù)結(jié)構(gòu)包含所有單獨的信息片段。第一個示例更透明,而第二個示例導(dǎo)致較短的處理時間。元數(shù)據(jù)也可被包括在SCD內(nèi),例如,描述發(fā)布者的元數(shù)據(jù)和/或描述內(nèi)容特性的元數(shù)據(jù),這包括建議的文件名、文件長度、媒體類型、分級、始發(fā)者(可以不同于發(fā)布者)、DRM(數(shù)字權(quán)限管理)信息(例如,何處獲得許可證)、諸如演員、導(dǎo)演等內(nèi)容信息等等。這可提供關(guān)于可經(jīng)由讀取該SCD的應(yīng)用程序(或者自動地,或者在用戶的控制下)搜索的內(nèi)容的有用信息。SCD由發(fā)布者例如使用發(fā)布者的私鑰來簽署(在步驟204),該私鑰可由經(jīng)有效證書鏈回溯至根CA的公鑰來確認(rèn)。證書鏈的一個示例如下微軟持有根證書o由微軟于05年9月9日發(fā)放的"發(fā)布者1"證書,于06年9月9日過期,可以委托(即,再授權(quán))■由"發(fā)布者1"于05年9月10日發(fā)放的"發(fā)布者l-新聞"證書,于06年9月9日過期,不可委托數(shù)字簽名可包括SCD的數(shù)字地簽署的散列(即,使用發(fā)布者的私鑰加密的SCD的散列)。這允許SCD的接收方通過將所接收到的散列值與計算的散列值進(jìn)行比較來確認(rèn)SCD未被篡改。在生成并簽署了SCD之后,發(fā)布者將其存放在控制服務(wù)器上(步驟205),將內(nèi)容存放在種子服務(wù)器上(步驟206),并由此建立了內(nèi)容分發(fā)云106。發(fā)布者還可在必須撤消、更新或重新發(fā)放SCD的情況下或在其希望停止SCD的發(fā)布的情況下儲存SCD序列號。在此階段之后,發(fā)布者101可選擇不再參與內(nèi)容分發(fā)過程。如果發(fā)布者隨后確定內(nèi)容是不正確地描述的,或者希望在SCD過期之前停止內(nèi)容分發(fā),則發(fā)布者可撤消SCD。為了撤消SCD,發(fā)布者將特定SCD的序列號置于其證書撤消列表(CRL)上。如下所述,CRL將由內(nèi)容分發(fā)云內(nèi)的實體定期檢査,并且一旦標(biāo)識SCD被包括在CRL上,將不會在進(jìn)行進(jìn)一步的分發(fā),使得將SCD的序列號置于CRL上與停止分發(fā)之間的時間段變得最小。一旦特定SCD的序列號被置于發(fā)布者的CRL上,其將保留在那里,直到被發(fā)布者移除,或者在SCD到期(根據(jù)SCD內(nèi)詳述的到期時間)之后刪除該條目。SCD可由創(chuàng)建該SCD的發(fā)布者直接撤消。授權(quán)(創(chuàng)建SCD的)發(fā)布者的授權(quán)主體可以通過撤消發(fā)布者的授權(quán)來間接地撤消該SCD。在存在證書鏈(如上所述)的情況下,該間接撤消可在該鏈中的任一點發(fā)生。在以上給出的證書鏈?zhǔn)纠?,如?發(fā)布者l一新聞"創(chuàng)建了該SCD,則其可直接撤消它,而"發(fā)布者1"可以通過撤消給予"發(fā)布者l一新聞"的證書來間接撤消該SCD,微軟則可以通過撤消給予"發(fā)布者l"的證書來間接地撤消該SCD。在另一示例中,發(fā)布者可能希望停止SCD的發(fā)布。停止SCD的發(fā)布具有與撤消不同的效果,這表現(xiàn)在SCD并不是無效的,它僅僅是不再被發(fā)布。這具有沒有一個新對等體能夠加入內(nèi)容分發(fā)云106的效果,然而,己經(jīng)參與該云(并且因此已經(jīng)有了SCD)的對等體能夠繼續(xù)分發(fā)內(nèi)容塊。然而,控制服務(wù)器將不向?qū)Φ润w提供任何進(jìn)一步的幫助來發(fā)現(xiàn)云中的其它對等體。因此,發(fā)布將停止,但是這不會像撤消那樣快發(fā)生。停止發(fā)布可通過向控制服務(wù)器發(fā)送"不發(fā)布"消息以及SCD的序列號和證明該消息的發(fā)送者被允許作出這一"不發(fā)布"決定的憑證(例如,發(fā)布者證書的副本)來實現(xiàn)。也可能在控制服務(wù)器處理不發(fā)布消息之前必須檢查這些憑證。"不發(fā)布"消息可以采用自證明數(shù)據(jù)結(jié)構(gòu)的形式。在一個示例中,不發(fā)布消息包含除了其中的不發(fā)布標(biāo)志之外與所發(fā)布的SCD相同的SCD。在如上參考圖2所述地建立了內(nèi)容分發(fā)云之后,發(fā)布者可能希望在內(nèi)容正在云106中分發(fā)的同時更新SCD,例如提供修訂的元數(shù)據(jù)或改變到期日。為了更新SCD,發(fā)布者生成一新的SCD(具有新的序列號)并簽署它(如步驟204中那樣),并將該新的SCD存放在控制服務(wù)器上(如在步驟205中那樣)。舊的SCD可被撤消(如上所述),然而,這將導(dǎo)致已經(jīng)下載了部分文件的對等體丟失該部分。相反,如果改變是建議性的(例如,元數(shù)據(jù)改變),則可以不撤消舊的SCD,而是將新SCD給予請求SCD的對等體并且不再將舊SCD給予任何對等體??刂品?wù)器103的操作可以參考圖3和圖4來描述,圖3是示出控制服務(wù)器103的操作的示例的流程圖,而圖4示出了控制服務(wù)器的示例體系結(jié)構(gòu)。控制服務(wù)器103包括用于經(jīng)由消息傳輸(未示出)接收和發(fā)送消息的傳輸接口401、負(fù)責(zé)儲存SCD和從SCD存儲402檢索SCD的內(nèi)容信息接口403、以及負(fù)責(zé)儲存對等體注冊信息和從注冊信息存儲405檢索該信息的注冊接口404??刂品?wù)器103經(jīng)由傳輸接口401從發(fā)布者101接收SCD(圖2的步驟205和圖3的步驟301),然后檢驗該SCD的完整性(步驟302)以確保其自從生成以來沒有被篡改。這可通過計算SCD的散列值并檢驗所計算的值等于包含在SCD的數(shù)字簽名中的散列值來實現(xiàn)。如果SCD通過了完整性測試,則控制服務(wù)器檢驗SCD的有效性(步驟303),該步驟在以下參考圖5更詳細(xì)地描述。完整性和有效性檢驗可以由SCD存儲402來執(zhí)行。除了確認(rèn)SCD中的標(biāo)準(zhǔn)字段之外,SCD存儲還可確認(rèn)SCD中的元數(shù)據(jù)。如果SCD通過了完整性測試(步驟302)和有效性測試(步驟303)兩者,則它然后被儲存在SCD存儲402中。注冊接口404和注冊信息存儲405的操作將在以下參考圖6來描述。圖5示出了關(guān)于在SCD上執(zhí)行的有效性檢驗(步驟303)的示例流程圖。對照SCD內(nèi)的"NotBefore(不早于)"和"NotAfter(不晚于)"時間來檢驗當(dāng)前時間(例如,以UTC為準(zhǔn))。如果當(dāng)前時間在此時間窗之外,則SCD是無效的。然后訪問關(guān)于發(fā)布者的證書撤消列表(CRL)(步驟502)以檢驗該SCD是否已被發(fā)布者101撤消(步驟503)。CRL列出了由發(fā)布者發(fā)放的、隨后被撤消的證書(如果發(fā)布者被準(zhǔn)許再授權(quán))和SCD?;蛘?,發(fā)布者可持有兩個CRL,一個用于SCD,而另一個用于它已撤消的證書。對CRL的使用使得發(fā)布者能夠通過發(fā)放新SCD并撤消早先的SCD來更新SCD,或停止內(nèi)容發(fā)布(例如,如果發(fā)現(xiàn)內(nèi)容是損壞的或出于任何其它原因)。發(fā)布者的CRL可被儲存在發(fā)布者101處,或者可被儲存在網(wǎng)絡(luò)中的別處,例如儲存在中央CRL存儲庫中。發(fā)布者的CRL的位置可以被包括在SCD中(例如,如上表所示在字段"CRL"中)。檢驗了SCD沒有被包括在發(fā)布者的CRL中(步驟503)之后,控制服務(wù)器可檢驗發(fā)布者的證書鏈以確認(rèn)發(fā)布者仍被CA授權(quán)(步驟504)。這可以通過控制服務(wù)器確認(rèn)發(fā)布者不在由向發(fā)布者發(fā)放證書的實體,例如授權(quán)主體102所發(fā)布的證書撤銷列表(CRL)上來實現(xiàn)。控制服務(wù)器103還在本地持有CRL的副本,但理想地定期(例如,每15或30分鐘)向CA或其他委托檢驗經(jīng)更新的CRL以使漏洞窗口最小。證書鏈可以包括對于每個授權(quán)實體而言主CRL位于何處的細(xì)節(jié)(例如,url、IP地址或其他端點描述)。由于能夠發(fā)放證書的任何人也能夠撤消其發(fā)放的證書,因此必須檢驗多于一個CRL(例如,在以上給出的證書鏈的示例中,需要檢驗由微軟和"發(fā)布者l"兩者發(fā)布的CRL)。每個CRL包括(或者在列表中或者在關(guān)聯(lián)的信息中)CRL上次何時更新以及應(yīng)以何頻率對CRL進(jìn)行重新檢驗(例如,在"2005年10月10日16:09更新。每2小時重新檢驗一次")的細(xì)節(jié)。盡管CRL可指定建議的(或最大)重新檢驗之間的時間,但控制服務(wù)器時常進(jìn)行重新檢驗是有益的??墒褂檬沟每刂品?wù)器的CRL本地副本在特定的時間間隔之后到期且不能被使用的機(jī)制。CRL以它們無法由除發(fā)放實體(即,CA或其委托)以外的任何人編輯的方式被創(chuàng)建。例如,只有微軟(商標(biāo))能夠修改它們的CRL,其列出了由微軟(商標(biāo))最初發(fā)放但在隨后被撤銷的證書,而也只有"發(fā)布者1"可以修改它們的CRL,其列出了最初由"發(fā)布者l"作為微軟的委托發(fā)放的但隨后由該"發(fā)布者l"撤銷的證書。如果控制服務(wù)器在檢驗CRL時標(biāo)識出SCD已被撤消(在步驟503)或一內(nèi)容片段的發(fā)布者已經(jīng)撤消了其授權(quán)(在步驟504),則將不儲存SCD(在步驟304),而是將丟棄或拒絕該SCD。如果如上所述,控制服務(wù)器被授權(quán)執(zhí)行該功能,則可在發(fā)布者和控制服務(wù)器之間(例如,在步驟301之前或作為其一部分)發(fā)生認(rèn)證??刂品?wù)器103的操作的其它方面可參考圖6來描述,圖6是示出控制服務(wù)器103的操作的示例的第二流程圖。在儲存了SCD(如上所述)之后,控制服務(wù)器隨后可以從對等體105接收對特定內(nèi)容片段的SCD的請求(步驟601)。在響應(yīng)該請求之前,控制服務(wù)器可以重新檢驗SCD的有效性(步驟602)。該檢驗可如圖5所示以及以上描述地執(zhí)行,并且另外(或者替換地)可以在對等體重新注冊時或周期性地(不論請求是否是從對等體接收的)執(zhí)行。由于先前已訪問了適當(dāng)?shù)腃RL(在步驟303),因此這些CRL可能已經(jīng)本地儲存在控制服務(wù)器處,并且可訪問CRL的這些本地副本或主副本。如果發(fā)現(xiàn)SCD是無效的,則控制服務(wù)器可檢驗同樣儲存在控制服務(wù)器處的、與同一內(nèi)容有關(guān)的經(jīng)更新的SCD。如果對該內(nèi)容沒有有效的SCD可用,則將拒絕來自對等體的請求(在步驟601接收)。如果有效性檢查是通過對等體重新注冊來啟動的,則對等體將不能被重新注冊,并且可向其通知SCD現(xiàn)在是無效的。如果對內(nèi)容有有效的SCD可用,則控制服務(wù)器可以使用注冊接口404和注冊信息存儲405來與對等體執(zhí)行認(rèn)證(步驟603)。這可以是單向認(rèn)證(對等體認(rèn)證控制服務(wù)器)或雙向(互)認(rèn)證。然而,在另一示例中,SCD可被認(rèn)為是公共信息,并且認(rèn)證可在交換更多私有信息(例如,如下所述的關(guān)于對等端點的信息)之前的后一階段發(fā)生??刂品?wù)器然后將SCD(以及可能的其它信息)提供給對等體(步驟604)。在如上所述的控制服務(wù)器的操作的另一方面,控制服務(wù)器可從發(fā)布者101接收停止SCD發(fā)布的請求("不發(fā)布"消息)。響應(yīng)于接收到該消息,控制服務(wù)器可檢驗該消息的發(fā)送者被許可使內(nèi)容發(fā)布停止(例如,通過檢驗消息中的證書屬于該內(nèi)容的發(fā)布者)。如果發(fā)現(xiàn)消息是有效的,則可從SCD存儲402中刪除相關(guān)的SCD,并且將不再向任何其它對等體提供該SCD。另外,隨后請求SCD的任何對等體的請求將被拒絕,并且關(guān)于該SCD的活動對等體列表將被清空,并且試圖向控制服務(wù)器重新注冊或請求另外的對等端點信息的任何對等體的請求將被拒絕。對等體105的操作可以參考圖7來描述。對等體105接收內(nèi)容標(biāo)識符和控制服務(wù)器指針(步驟701)。該信息可以從網(wǎng)站、URI(統(tǒng)一資源標(biāo)識符)或者作為應(yīng)用經(jīng)驗的一部分(例如,作為交互式媒體播放器(InteractiveMediaPlayer,iMP)的一部分)來接收。使用該信息,對等體105能夠向所標(biāo)識的控制服務(wù)器103請求SCD(步驟702),并且隨后向控制服務(wù)器請求對等端點的細(xì)節(jié)(步驟703)。這些對等端點是該對等體能夠與之連接以下載內(nèi)容的一個或多個其他對等體的細(xì)節(jié)。對等端點還可以包括種子104的細(xì)節(jié),特別是在云內(nèi)還不存在有許多對等體的云106早期階段。對等體105隨后連接至一個或多個所標(biāo)識的對等端點(步驟704)并且下載內(nèi)容塊(步驟705)。在將塊添加至對等體的已接收塊存儲或?qū)⑵滢D(zhuǎn)發(fā)至任何其他對等體之前,驗證該塊的完整性(步驟706)。如果發(fā)現(xiàn)塊的完整性可疑,則該對等體作出損壞的對等端點的記錄,并且在內(nèi)容分發(fā)會話的剩余部分中不與該端點聯(lián)系也不接受來自該端點的連接(步驟707)。相反,對等體將連接至另一對等端點(步驟704)并且在必要時將首先向控制服務(wù)器請求對等端點的進(jìn)一步細(xì)節(jié)(步驟703)。在作出請求時,對等體可向控制服務(wù)器指示所阻塞的對等體的身份,以及該對等體當(dāng)前連接到的任何對等體的身份。這使得控制服務(wù)器能向?qū)Φ润w提供新的有用的對等端點信息,并且還能夠?qū)⒃?06內(nèi)損壞的對等體記入日志。在一個示例中,可阻塞重復(fù)的損壞體以使其不參與云,例如可通過取消其注冊或通過拒絕提供進(jìn)一步的對等端點信息來實現(xiàn)。如果該塊的完整性被驗證(在步驟706),則對等體確定它是否己經(jīng)接收了全部的所需內(nèi)容塊(步驟708)。如果仍然需要額外的塊,則流程繼續(xù)以下載另一個塊(步驟705)。一旦對等體已經(jīng)下載了全部的所需內(nèi)容塊,對等體就解碼該文件(步驟709)并對已下載的內(nèi)容進(jìn)行完整性檢驗(步驟710)。如下提供關(guān)于個別步驟的其它細(xì)節(jié)。內(nèi)容標(biāo)識符和控制服務(wù)器指針(在步驟701中接收)可以采取URI的形式,諸如avalanche:〃mytracker.microsoft.com/0123456789ABCDEF0123456789ABCDEF在另一個示例中,內(nèi)容標(biāo)識符和控制服務(wù)器指針兩者都可以在單個128位的標(biāo)識符中提供。在另一個示例中,信息可以在帶有本地注冊類型的小文件(例如,經(jīng)由web下載)中提供,當(dāng)該文件被下載并激活時,調(diào)用內(nèi)容分發(fā)客戶端,例如Avalanche。內(nèi)容標(biāo)識符和控制服務(wù)器指針可以包括發(fā)放給發(fā)布者的證書的細(xì)節(jié)??刂品?wù)器指針可以是指向IP(網(wǎng)際協(xié)議)地址、DNS(域名系統(tǒng))條目的指針,或者可以使用指定網(wǎng)絡(luò)端點的任何其他方法。使用DNS條目會是有利的,因為它提供了路由的靈活性和可縮放性。例如,DNS服務(wù)器能夠?qū)Φ润w導(dǎo)向沒有硬連線至控制服務(wù)器指針內(nèi)并且可能改變的控制服務(wù)器的IP地址。這在有若干控制服務(wù)器存在并且DNS服務(wù)器能夠依次將對等體導(dǎo)向不同的服務(wù)器以共享負(fù)荷的情況下是有益的。此外,使用DNS條目允許添加額外的控制服務(wù)器,或者允許控制服務(wù)器在需要時下線維護(hù)而無需改變其控制服務(wù)器指針。內(nèi)容標(biāo)識符和控制服務(wù)器指針可以由對等體主動檢索(在步驟701),并且這一檢索可由對等體處的用戶輸入或由在對等體上運行的應(yīng)用程序來發(fā)起。在一個示例中,對等體可以響應(yīng)于例如通過購買對特定內(nèi)容的權(quán)限(例如,可以從在線商店購買下載電影的權(quán)限)而獲取參與云106的授權(quán),來接收內(nèi)容標(biāo)識符和控制服務(wù)器指針。這些授權(quán)可以采取證書、共享秘密、導(dǎo)出令牌的形式,或者任何其他合適的授權(quán)方法。在另一個示例中,內(nèi)容標(biāo)識符和控制服務(wù)器指針可以被推入對等體,例如推入諸如在該對等體上運行的媒體播放器等應(yīng)用程序。推入可以是對先前來自該對等體的興趣指示做出的響應(yīng),例如對等體可以指示感興趣的新聞項、音頻剪輯或視頻剪輯的類型,并且在符合準(zhǔn)則的內(nèi)容變得可用時,就可將內(nèi)容標(biāo)識符和控制服務(wù)器指針推入該對等體。當(dāng)對等體105向控制服務(wù)器請求SCD(在步驟702)時,可要求對等體和控制服務(wù)器認(rèn)證(單向或雙向認(rèn)證)以證明其各自都被授權(quán)來執(zhí)行這些對等體和控制器服務(wù)器的職責(zé)(如以上相對于圖6的步驟603所描述的)。然而,在另一示例中,互認(rèn)證可以在交換更多敏感信息之前的稍后階段(在步驟703)發(fā)生。該互認(rèn)證有助于防止對系統(tǒng)的服務(wù)拒絕或欺詐攻擊。在控制服務(wù)器被授權(quán)的情況下,對等體可以檢驗控制服務(wù)器的證書鏈。在接收到SCD之后,對等體可以執(zhí)行一個或多個檢驗,諸如檢驗SCD的完整性(例如,以與以上參考圖3的步驟302所描述的相同的方式)和/或SCD的有效性(例如,如在圖5所示并在上文中描述的)。在另一示例中,對等體可以不檢驗SCD的完整性和有效性,而是可以檢驗發(fā)布者的授權(quán)狀態(tài)(如以上參考步驟504所描述的)。如上所述,可以將CRL的副本連同CRL副本更新情況的細(xì)節(jié)一起存儲在控制服務(wù)器處。因此,為了檢驗SCD是否在發(fā)布者的CRL上(步驟403)和/或檢驗發(fā)布者的證書鏈(步驟404),對等體可檢索儲存在控制服務(wù)器處的CRL副本,或者可檢索由發(fā)放該列表的授權(quán)主體發(fā)放的CRL主副本。通過連接至控制服務(wù)器103而不是證書發(fā)放主體(或中央CRL存儲)來檢索CRL,對等體就可以避免系統(tǒng)中的潛在瓶頸。如果對等體在檢驗CRL時標(biāo)識出內(nèi)容片段的發(fā)布者已經(jīng)被撤銷授權(quán)或者SCD已被撤消,則該對等體可以終止其在云中的參與并且不再下載塊。對等體還可以刪除其已經(jīng)接收的任何內(nèi)容塊。可要求對等體向控制服務(wù)器重新注冊以確認(rèn)它們?nèi)栽趦?nèi)容分發(fā)云106中活動。此時,控制服務(wù)器可以通知對等體關(guān)于內(nèi)容的SCD是否無效。如果頻繁地(例如,每隔5分鐘)要求對等體重新注冊,則在控制服務(wù)器標(biāo)識出SCD無效和對等體停止進(jìn)一步的內(nèi)容分發(fā)之間只有很短的窗。重新注冊的間隔可以由控制服務(wù)器來設(shè)置,并且可以根據(jù)內(nèi)容分發(fā)云的大小來變化(例如,對于小云,該時間可以被減少至45秒)。對等體發(fā)送給控制服務(wù)器的重新注冊消息可以包含使得控制服務(wù)器能夠確定一對等體對該云中的其它對等體如何有用的信息。這一信息可包括對等體持有多少內(nèi)容、對等體持有哪些內(nèi)容塊、以及到該對等體的連接的數(shù)據(jù)率。如果對等體無法在控制服務(wù)器設(shè)置的時段內(nèi)重新注冊,則它們將超時,并且不再是分發(fā)云的一部分。因此,當(dāng)對等體希望離開云時(例如,當(dāng)它們已經(jīng)下載了內(nèi)容片段的所有塊時),它們或者可使重新注冊失敗,或者可向控制服務(wù)器發(fā)送一顯式取消注冊消息。除了在接收到SCD時檢驗SCD的狀態(tài)和發(fā)布者的授權(quán)之外(或代替該檢驗),對等體可以在向參與內(nèi)容分發(fā)云106的其它對等體發(fā)送塊之前和/或在對等體向控制服務(wù)器重新注冊以確認(rèn)它們保持為云中的活動對等體時重新檢驗這兩者中的一個或兩者。然而,由于CRL很可能是大文件(例如,幾兆字節(jié)),對等體可限制它從控制服務(wù)器或其它源下載經(jīng)更新的CRL的次數(shù)。對等體向其請求SCD(在步驟702中)的控制服務(wù)器可以與對等體向其請求有關(guān)對等端點的信息(在步驟703中)的控制服務(wù)器相同或不同。在兩控制服務(wù)器不同的情況下,與對等體向其請求有關(guān)對等端點的信息(在步驟703中)的第二控制服務(wù)器有關(guān)的信息可以在由第一控制服務(wù)器提供的SCD中標(biāo)識(參見以上SCD的描述)。在另一示例中,SCD可包含另外的控制服務(wù)器指針(而非端點信息)。這是更靈活的方法,并且指針可以指向儲存控制服務(wù)器細(xì)節(jié)以及關(guān)于控制服務(wù)器的證書的位置,使得對等體可以確認(rèn)控制服務(wù)器是關(guān)于所述的內(nèi)容片段的發(fā)布者的有效控制服務(wù)器。在對等體可以從控制服務(wù)器獲得針對該內(nèi)容云的對等端點的信息(在步驟703中)之前,該對等體認(rèn)證控制服務(wù)器,或者作為替換,可以在控制服務(wù)器和對等體之間進(jìn)行互認(rèn)證。這一認(rèn)證可以在該過程中更早出現(xiàn)(例如,在步驟702中)或者可以在此階段出現(xiàn)。該認(rèn)證過程通過共享CA的控制服務(wù)器授權(quán)細(xì)節(jié)來向?qū)Φ润w確認(rèn)該控制服務(wù)器是經(jīng)授權(quán)的控制服務(wù)器。再次地,對等體可以選擇咨詢相關(guān)CRL。這阻止了在云中建立欺詐控制服務(wù)器。如果發(fā)生互認(rèn)證,則控制服務(wù)器也能夠標(biāo)識對等體(例如,使用唯一主機(jī)標(biāo)識符),雖然這對具有特定授權(quán)來參與云的對等體而言沒有必要。唯一對等體標(biāo)識機(jī)制的使用使控制服務(wù)器能夠確定一對等體是否針對對等端點信息作出了多個請求,這樣就可以指示該對等體是否具有惡意目的。控制服務(wù)器可以出于這一原因或任何其他原因來決定阻止對等體參與內(nèi)容云。對等體標(biāo)識可以被分配給對等體以供在所有情形中使用(例如,它們加入的所有云),或者可以在更為規(guī)則的基礎(chǔ)上分配(例如,按云、按發(fā)布者、按網(wǎng)絡(luò)提供方、按月等)??刂品?wù)器可以為對等體提供隨機(jī)選擇的對等體、根據(jù)位置算法選擇的對等體或者根據(jù)任何其他準(zhǔn)則(例如,對等體的連接速度)選擇的對等體的對等端點信息(在步驟703中)??刂品?wù)器可以限制其向任一對等體提供的信息所針對的對等體數(shù)量,并且還可以限制對等體(例如,對主機(jī)標(biāo)識符的引用)能夠請求對等端點信息所遵循的規(guī)律(例如,限制為每15分鐘與10個對等體有關(guān)的信息)。這能緩解信息公開,因為對等端點信息可能是敏感的,并且對惡意用戶或?qū)V告商是有用的。對等端點信息可以包括一個或多個網(wǎng)絡(luò)端點描述,諸如IP端點或URL(統(tǒng)一資源定位符)。描述端點正參與的內(nèi)容云的內(nèi)容云標(biāo)識符。主機(jī)標(biāo)識符(優(yōu)選地對該主機(jī)是唯一的)。在對等體被隨機(jī)選擇的情況下,控制服務(wù)器可以包括種子104作為概率為1/k的對等體,其中k是包括該新對等體的云中的活動對等體數(shù)。當(dāng)一對等體(例如,對等體A)連接至控制服務(wù)器已標(biāo)識為內(nèi)容云106—部分的一個或多個其他對等體(例如,對等體B)時,該對等體(對等體A)可以執(zhí)行與其他對等體(對等體B)的認(rèn)證。雖然沒有必要存在一個針對對等體的CRL的等效物,但是各對等體可以通過它們的主機(jī)標(biāo)識符或者通過所發(fā)放的用于允許對等體參與到云中的授權(quán)來彼此標(biāo)識。對等體之間的驗證是有益的,因為這使得對等體(對等體A)可以標(biāo)識向其提供無效數(shù)據(jù)塊的對等體(對等體B),并在隨后的剩余會話中阻止與該對等體的進(jìn)一步通信(見步驟706和707)。認(rèn)證還有助于防止惡意對等體通過在一對等體和該惡意對等體之間建立多個異常中斷的或慢速的連接來在該對等體上安裝服務(wù)拒絕攻擊。通過該認(rèn)證過程,對等體可以標(biāo)識同一對等體正作出多個連接請求并在隨后阻止那些連接的部分或全部。對等體之間的認(rèn)證還可以包括提供有關(guān)發(fā)起連接的對等體(對等體A)從何處獲取另一對等體(對等體B)的細(xì)節(jié)(例如,提供對等端點信息的控制服務(wù)器的細(xì)節(jié))的信息。這樣就許可對等體在發(fā)起對等體之間的塊傳送之前檢驗該控制服務(wù)器的授權(quán)。對等體可以連接至云106中的一個或多個其他對等體(在步驟704中)以獲得內(nèi)容的各部分。可以對一對等體在任一時刻能連接的對等體數(shù)量作出限制(例如,1個對等體可以連接不超過14個其他對等體)。這一限制可以通過對控制服務(wù)器提供給對等體的對等端點細(xì)節(jié)(在步驟703中)的數(shù)量進(jìn)行限制而被有效設(shè)置,或者該限制可以由控制服務(wù)器、發(fā)布者或?qū)Φ润w獨立設(shè)置。當(dāng)對等體如上所述可以彼此認(rèn)證時,就沒有必要對各對等體之間的傳輸(例如,在步驟705中)進(jìn)行加密。如果需要,對等體可以協(xié)商私有的會話密鑰并應(yīng)用流密碼。盡管以上描述涉及對等體之間的塊傳送,但是可以理解,塊也可以從種子傳送到對等體。在此情形中,對等體可與種子進(jìn)行認(rèn)證,并且可以檢驗種子的證書鏈以確認(rèn)它們被授權(quán)來擔(dān)當(dāng)所述的發(fā)布者和/或內(nèi)容片段的種子。在接收到一個塊(在步驟705中)之后,對等體例如可以使用散列函數(shù)(諸如,同態(tài)散列函數(shù))來檢驗該塊的完整性。用于各個內(nèi)容塊以及整體內(nèi)容的散列函數(shù)的細(xì)節(jié)可以如上所述地在SCD中提供給對等體。在另一個示例中,同態(tài)散列可以獨立于SCD發(fā)送。散列函數(shù)將一大信息塊b映射至通常大小要小得多的輸出h(b)。散列函數(shù)具有這一性質(zhì),即給定塊b,在計算上不可能找出具有相同散列值的另一個塊b',即h(b):h(b')。這意味著通過檢驗接收到的數(shù)據(jù)塊的算得的散列函數(shù)與期望的散列函數(shù)相匹配,對等體就能夠相對確信收到的塊是正確的塊以及該塊尚未被篡改。同態(tài)散列函數(shù)具有一額外性質(zhì),即一些輸入塊的線性組合的散列值可以通過輸入塊的散列組合而被有效構(gòu)造。因此,同態(tài)散列函數(shù)的使用特別適于使用諸如Avalanche等網(wǎng)絡(luò)編碼的內(nèi)容分發(fā)協(xié)議。在另一示例中,可使用安全隨機(jī)校驗和(SRC)而非同態(tài)散列。向?qū)Φ润w提供多個SRC序列,其中每一SRC序列包括用于構(gòu)成內(nèi)容的每一未編碼塊的SRC,以及用于生成SRC值的數(shù)字種子。與同態(tài)散列一樣,已編碼塊的SRC值可以通過以與組合未編碼塊來形成已編碼塊的方式有關(guān)的方式組合未編碼塊的SRC值來從該SRC值中計算。該計算的一個簡化示例在下文中對于單個SRC序列示出,其中所有計算都是在一有線域內(nèi)執(zhí)行的。所接收的塊包括aA+l3B,其中A和B是原始的未編碼塊,而a和(3是隨機(jī)系數(shù)。所接收的塊包括字節(jié)Bl,B2…,BnSRC列表包括SRC-A,和SRC-B,使用種子來計算偽隨機(jī)數(shù)Rh,R2卜.,Rni'SRC-new!=(B1.Rl!)+(B2.R2!)+...+(Bn.RnO檢驗SRC-newi=a(SRC-AJ+卩(SRC-Bj)然后對由控制服務(wù)器提供給對等體的每一SRC序列重復(fù)該計算。控制服務(wù)器可使用一選擇方法來確保向不同對等體提供了基本不同的各組SRC序列,因為這減少了惡意對等體能夠創(chuàng)建仍通過所有SRC測試的損壞的內(nèi)容塊的概率。一旦對等體已經(jīng)下載一個塊(在步驟705中)或者作為替換,在已經(jīng)檢驗該塊的完整性(在步驟706中)之后,控制服務(wù)器就將該對等體添加至云中活動對等體列表,于是在從希望參與云的其他對等體接收到對于對等端點信息的后續(xù)請求時,就可以將該對等體的細(xì)節(jié)提供給其他對等體。為了將該對等體添加至云中活動對等體列表,可以要求對等體向控制服務(wù)器注冊以標(biāo)識它們已經(jīng)接收了部分內(nèi)容。也可要求對等體周期性地重新注冊以確認(rèn)它們保持為云中的活動參與者。在其它示例中,可以在對等體已經(jīng)下載一個塊之前,例如在它已經(jīng)請求SCD(在步驟702)時將其添加至上述列表。在已經(jīng)接收到針對該內(nèi)容的全部所需塊(步驟708)之后,對等體解碼該內(nèi)容或者在該內(nèi)容未被編碼的情況下以其他方式重構(gòu)該內(nèi)容(步驟709)。在使用該內(nèi)容之前(或者在使其對第三方可用之前),對等體對整個內(nèi)容作出最終的完整性檢驗(在步驟710中)。最終的完整性檢驗也可以涉及檢驗計算所得的散列是否與期望的散列相匹配(如上參考步驟706所述)。期望散列的細(xì)節(jié)或使其能被計算的參數(shù)可以在SCD內(nèi)提供。以上描述只是以示例的方式描述了對散列函數(shù)和同態(tài)散列函數(shù)以及安全隨機(jī)校驗和的使用。對等體也可以替換地利用其他技術(shù)使其能夠以較高的確信度來確定接收到各個內(nèi)容部分(例如,個別塊)和整個內(nèi)容是有效的且尚未被篡改(即,在步驟706和710中)。以上描述涉及CRL。這些可以采用自證明數(shù)據(jù)結(jié)構(gòu)的形式。此外,除了列出SCD序列號之外或代替列出SCD序列號,CRL可列出內(nèi)容標(biāo)識號或內(nèi)容名。圖1示出了單個云106。然而,對等體可以連接至多于一個的邏輯上不同的云,并且多個對等體和控制服務(wù)器可在各云間公用。每個邏輯上不同的云都具有一個發(fā)布者,并且一發(fā)布者可以負(fù)責(zé)若干片云。在一片云中的對等體可以充當(dāng)另一片云中的種子,甚至是充當(dāng)控制服務(wù)器。術(shù)語"種子"、"對等體"和"控制服務(wù)器"用于定義由所考慮的云中節(jié)點所擔(dān)任的角色,并且這些術(shù)語沒有必要暗示特定的硬件要求。例如,種子、對等體和控制服務(wù)器各自可以包括個人計算機(jī)。在同一片云中,物理節(jié)點可以執(zhí)行一個以上的邏輯角色,例如種子和控制服務(wù)器。在上述示例中,對等體能夠加入任何云,或者它們可以要求特定的授權(quán)來加入云,例如通過購買特定下載的權(quán)限。發(fā)布者101或其他實體可以設(shè)置參與云的準(zhǔn)則。例如,只有特定網(wǎng)絡(luò)或服務(wù)的訂戶才有資格參與云。在另一個示例中,云可以具有最低帶寬要求,使得只有具有超過某一帶寬(例如,512MB/s)的連接的對等體才被允許參與云中。在又一個示例中,某些定額可以與云相關(guān)聯(lián),例如詳細(xì)說明能夠參與云中的對等體總數(shù)以及能夠加入云的帶有慢連接的對等體的最大數(shù)量(或比例)。以上描述的內(nèi)容可以是任何種類的數(shù)據(jù),包括但不限于軟件、數(shù)據(jù)文件、音頻媒體和視頻媒體。通過使用上述方法和裝置來發(fā)布內(nèi)容以便在內(nèi)容分發(fā)系統(tǒng)中分發(fā),內(nèi)容的接收方可以確信所發(fā)布的內(nèi)容是合法的并且是其期望的內(nèi)容。如果發(fā)現(xiàn)內(nèi)容是無效的、非法的或該反對的,則該SCD可由發(fā)布者撤消,并且如果發(fā)現(xiàn)發(fā)布者正在發(fā)布無效的、非法的、冒犯性的或其它該反對的內(nèi)容,則授權(quán)主體可撤消發(fā)布者的授權(quán),因此阻止發(fā)布者發(fā)布進(jìn)一步的內(nèi)容。如上所述,SCD因而使得接收方能夠檢驗發(fā)布者和內(nèi)容兩者的狀態(tài)。通過使用用密碼簽署的SCD,惡意用戶篡改SCD且所得的SCD通過完整性測試在計算上是不可行的。然而,所描述的方法和裝置不必定能防止欺詐對等體在一旦下載了非公共內(nèi)容之后對該內(nèi)容的濫用。因此,可以對軟件采取許可證激活碼的形式而對音頻和視頻媒體則采取DRM(數(shù)字權(quán)限管理)的形式來提供額外保護(hù)。本領(lǐng)域的技術(shù)人員將認(rèn)識到用于存儲程序指令的存儲設(shè)備可分布在網(wǎng)絡(luò)上。例如,遠(yuǎn)程計算機(jī)可存儲描述為軟件的該過程的示例。本地或終端計算機(jī)可訪問遠(yuǎn)程計算機(jī)并下載該軟件的一部分或全部以運行該程序??商鎿Q地,本地計算機(jī)可按需下載軟件的片斷,或者可以在本地終端上執(zhí)行一些軟件指令而在遠(yuǎn)程計算機(jī)(或計算機(jī)網(wǎng)絡(luò))上執(zhí)行一些軟件指令。本領(lǐng)域的技術(shù)人員將認(rèn)識到,通過使用本領(lǐng)域技術(shù)人員己知的常規(guī)技術(shù),軟件指令的全部或部分可由如DSP、可編程邏輯陣列等專用電路來執(zhí)行。本領(lǐng)域的技術(shù)人員將清楚的,此處給出的任何范圍或者設(shè)備值可以被擴(kuò)展或者改變而不失去所尋求的效果。本文中描述的各方法步驟可以在適當(dāng)時按任何合適的次序或同時執(zhí)行??梢岳斫?,上面對于較佳實施例的描述僅僅是作為例子給出的,而本領(lǐng)域的技術(shù)人員可以做出各種修改。權(quán)利要求1.一種在網(wǎng)絡(luò)中的節(jié)點處自動驗證通過所述網(wǎng)絡(luò)分發(fā)的內(nèi)容的方法,所述方法包括接收關(guān)于由發(fā)布者節(jié)點發(fā)布的內(nèi)容片段的內(nèi)容描述,所述內(nèi)容描述包括內(nèi)容標(biāo)識符、發(fā)布者標(biāo)識符、發(fā)布者授權(quán)信息和內(nèi)容檢驗信息;檢驗所述內(nèi)容描述的完整性;檢驗所述內(nèi)容描述的有效性;以及如果通過了所述完整性和有效性兩個檢驗,則儲存所述內(nèi)容描述。2.如權(quán)利要求l所述的方法,其特征在于,所述內(nèi)容描述是自證明數(shù)據(jù)結(jié)構(gòu)。3.如權(quán)利要求2所述的方法,其特征在于,檢驗所述內(nèi)容描述的完整性包括檢驗與所述內(nèi)容描述相關(guān)聯(lián)的密碼簽名。4.如前述權(quán)利要求中的任一項所述的方法,其特征在于,檢驗所述內(nèi)容描述的有效性包括訪問由所述發(fā)布者發(fā)放的證書撤消列表;確認(rèn)所述內(nèi)容描述沒有被包括在所述證書撤消列表上;以及確認(rèn)所述發(fā)布者授權(quán)信息是有效的。5.如權(quán)利要求4所述的方法,其特征在于,所述內(nèi)容描述還包括起始時間和到期時間,并且其中檢驗所述內(nèi)容描述的有效性還包括檢驗當(dāng)前時間在所述內(nèi)容描述的起始時間之后且在到期時間之前。6.如權(quán)利要求4或5所述的方法,其特征在于,所述發(fā)布者授權(quán)信息包括關(guān)于授權(quán)主體的標(biāo)識符,并且其中確認(rèn)所述發(fā)布者授權(quán)信息是有效的包括訪問由所述授權(quán)主體發(fā)放的證書撤消列表;確認(rèn)所述發(fā)布者標(biāo)識符沒有被包括在所述證書撤消列表上。7.如前述權(quán)利要求中的任一項所述的方法,其特征在于,還包括從對等體接收請求;以及向所述對等體提供所述內(nèi)容描述。8.如前述權(quán)利要求中的任一項所述的方法,其特征在于,還包括周期性地重新檢驗所述內(nèi)容描述的有效性;以及如果所述內(nèi)容描述是無效的,則刪除所述內(nèi)容描述。9.如前述權(quán)利要求中的任一項所述的方法,其特征在于,所述節(jié)點包括控制節(jié)點或?qū)Φ润w。10.—種包括計算機(jī)程序代碼裝置的計算機(jī)程序,所述計算機(jī)程序代碼裝置適用于當(dāng)在計算機(jī)上運行所述程序時執(zhí)行如前述權(quán)利要求中的任一項所述的所有步驟。11.如權(quán)利要求10所述的計算機(jī)程序,其特征在于,所述計算機(jī)程序包含在計算機(jī)可讀介質(zhì)上。12.—種內(nèi)容分發(fā)系統(tǒng)(100)中的節(jié)點,包括.-用于接收關(guān)于由發(fā)布者節(jié)點發(fā)布的內(nèi)容片段的內(nèi)容描述的裝置,所述內(nèi)容描述包括內(nèi)容標(biāo)識符、發(fā)布者標(biāo)識符、發(fā)布者授權(quán)信息和內(nèi)容檢驗信息;用于檢驗所述內(nèi)容描述的完整性的裝置;用于檢驗所述內(nèi)容描述的有效性的裝置;以及用于儲存所述內(nèi)容描述的存儲,其中所述存儲被安排成僅當(dāng)通過了所述完整性和有效性兩個檢驗時才儲存所述內(nèi)容描述。13.如權(quán)利要求12所述的節(jié)點,其特征在于,所述內(nèi)容描述是自證明數(shù)據(jù)結(jié)構(gòu)。14.如權(quán)利要求12或13所述的節(jié)點,其特征在于,所述檢驗有效性的裝置包括-用于訪問由所述發(fā)布者發(fā)放的證書撤消列表的裝置;用于確認(rèn)所述內(nèi)容描述沒有被包括在所述證書撤消列表上的裝置;以及用于確認(rèn)所述發(fā)布者授權(quán)信息是有效的裝置。15.如權(quán)利要求14所述的節(jié)點,其特征在于,所述內(nèi)容描述還包括起始時間和到期時間,其中所述節(jié)點還包括時鐘,并且其中所述用于檢驗有效性的裝置還包括用于檢驗所述時鐘上的當(dāng)前時間在所述內(nèi)容描述的起始時間之后且在到期時間之前的裝置。16.如權(quán)利要求14或15所述的節(jié)點,其特征在于,所述發(fā)布者授權(quán)信息包括關(guān)于授權(quán)主體的標(biāo)識符,并且其中所述用于確認(rèn)發(fā)布者授權(quán)信息的裝置適用于訪問由所述授權(quán)主體發(fā)放的證書撤消列表;以及確認(rèn)所述發(fā)布者標(biāo)識符未被包括在所述證書撤消列表上。17.—種用于包括如權(quán)利要求12-16中任一項所述的節(jié)點的內(nèi)容分發(fā)系統(tǒng)(100)的控制節(jié)點(103)。18.—種用于包括如權(quán)利要求12-16中任一項所述的節(jié)點的內(nèi)容分發(fā)系統(tǒng)(100)的對等體(105)。19.一種包括如權(quán)利要求17或18所述的至少一個節(jié)點的內(nèi)容分發(fā)系統(tǒng)(100)。全文摘要本發(fā)明描述了一種用于內(nèi)容分發(fā)網(wǎng)絡(luò)的控制節(jié)點以及一種在網(wǎng)絡(luò)中的節(jié)點處自動驗證通過該網(wǎng)絡(luò)分發(fā)的內(nèi)容的方法。在該方法中,接收內(nèi)容描述符,該內(nèi)容描述符包括內(nèi)容標(biāo)識符、發(fā)布者標(biāo)識符、發(fā)布者授權(quán)信息和內(nèi)容檢驗信息。檢驗該信息的完整性和有效性,并且如果通過了這兩個檢驗,則儲存該內(nèi)容描述。文檔編號G06F21/64GK101390070SQ200780006816公開日2009年3月18日申請日期2007年2月8日優(yōu)先權(quán)日2006年2月28日發(fā)明者A·克萊門茨,A·希德瑞,C·康特西迪斯,J·L·米勒,P·R·羅德里洛斯,R·韋斯申請人:微軟公司