專利名稱:用于驗(yàn)證遠(yuǎn)程數(shù)據(jù)的完整性的協(xié)議的制作方法
用于驗(yàn)證遠(yuǎn)程數(shù)據(jù)的完整性的協(xié)議背景存在許多遠(yuǎn)程地存儲(chǔ)數(shù)據(jù)的原因。例如,備份站點(diǎn)外數(shù)據(jù)的要求,使相同的數(shù)據(jù)可 由多個(gè)辦公司容易地訪問(wèn)的要求等。另外,新興的所謂Web 2.0分布式應(yīng)用程序中的某一 些需要用戶遠(yuǎn)程地存儲(chǔ)數(shù)據(jù)。然而,在所有這些場(chǎng)景中,當(dāng)一人想要檢查遠(yuǎn)程存儲(chǔ)的數(shù)據(jù)的 完整性時(shí)引發(fā)了重大問(wèn)題。傳統(tǒng)方法訪問(wèn)遠(yuǎn)程存儲(chǔ)位置,并且隨后請(qǐng)求數(shù)據(jù)傳輸。一旦遠(yuǎn) 程存儲(chǔ)的數(shù)據(jù)被接收,用戶隨后將所接收的數(shù)據(jù)與已知完整性的數(shù)據(jù)(例如,原始數(shù)據(jù)或 原始數(shù)據(jù)的經(jīng)驗(yàn)證的副本)進(jìn)行比較。在具有web接口和遠(yuǎn)程數(shù)據(jù)存儲(chǔ)的分布式應(yīng)用程序 的上下文中,該遠(yuǎn)程數(shù)據(jù)存儲(chǔ)的帶寬可以是有限的。因此,當(dāng)許多用戶想要檢查他們數(shù)據(jù)的 完整性時(shí)(例如,在某一“標(biāo)準(zhǔn)”、定期的基礎(chǔ)上),帶寬需求隨著大量數(shù)據(jù)被訪問(wèn)和傳輸而 激增。盡管在Web 2.0的上下文中提出了各種問(wèn)題,但在該上下文以及其他上下文中存在 其他問(wèn)題。隨后的描述標(biāo)識(shí)了附加問(wèn)題,并且呈現(xiàn)了可允許對(duì)遠(yuǎn)程存儲(chǔ)的數(shù)據(jù)的高效驗(yàn)證 的示例性協(xié)議。概述一種用于驗(yàn)證遠(yuǎn)程存儲(chǔ)的數(shù)據(jù)的完整性的示例性方法,包括提供密鑰;提供指 紋,該指紋使用該密鑰以應(yīng)用于已知完整性的數(shù)據(jù)的加密鑰的密碼散列函數(shù)來(lái)生成;將該 密鑰發(fā)送到存儲(chǔ)已知完整性的數(shù)據(jù)的副本的遠(yuǎn)程存儲(chǔ)位置;從該遠(yuǎn)程存儲(chǔ)位置接收指紋, 該指紋使用該密鑰以應(yīng)用于該數(shù)據(jù)的遠(yuǎn)程存儲(chǔ)的副本的加密鑰的密碼散列函數(shù)來(lái)生成;以 及至少部分地基于將所提供的指紋與所接收的指紋進(jìn)行比較來(lái)驗(yàn)證該數(shù)據(jù)的遠(yuǎn)程存儲(chǔ)的 副本的完整性。還公開(kāi)了其他示例性方法、系統(tǒng)等。
參考以下附圖描述非限制性和非窮盡的示例圖1是用于驗(yàn)證遠(yuǎn)程存儲(chǔ)的數(shù)據(jù)的完整性的傳統(tǒng)系統(tǒng)的圖示;圖2是用于驗(yàn)證遠(yuǎn)程存儲(chǔ)的數(shù)據(jù)的完整性的示例性系統(tǒng)的圖示;圖3是用于驗(yàn)證遠(yuǎn)程存儲(chǔ)的數(shù)據(jù)的完整性的示例性方法的框圖;圖4是與參與系統(tǒng)以便對(duì)數(shù)據(jù)進(jìn)行遠(yuǎn)程存儲(chǔ)和對(duì)這些數(shù)據(jù)進(jìn)行驗(yàn)證的各方相關(guān) 聯(lián)的各種組件的框圖;圖5是用于數(shù)據(jù)的遠(yuǎn)程存儲(chǔ)和這些數(shù)據(jù)的驗(yàn)證的示例性系統(tǒng),任選地是對(duì)等系統(tǒng) 的圖示;以及圖6是示例性計(jì)算設(shè)備的框圖。詳細(xì)描述此處所描述的各種示例性方法、設(shè)備和系統(tǒng)涉及驗(yàn)證遠(yuǎn)程存儲(chǔ)的數(shù)據(jù)的完整性。 一種示例性協(xié)議提供了高效的完整性檢驗(yàn),并且允許諸如對(duì)等系統(tǒng)等高效系統(tǒng)的形成,其 中對(duì)等體可備份彼此的數(shù)據(jù),并且驗(yàn)證備份數(shù)據(jù)的完整性,而無(wú)需傳輸該備份數(shù)據(jù)。如下所 解釋的,參考附圖,一示例性協(xié)議包括密鑰的傳輸以及指紋的接收,其中該指紋至少部分地 基于該密鑰并且至少部分地基于正經(jīng)歷完整性檢驗(yàn)的遠(yuǎn)程存儲(chǔ)的數(shù)據(jù)來(lái)生成。此協(xié)議可用
4任何各種方式和系統(tǒng)來(lái)實(shí)現(xiàn)。為了更好地理解傳統(tǒng)系統(tǒng)面臨的問(wèn)題,描述了典型的傳統(tǒng)系 統(tǒng),之后是使用這一示例性基于密鑰/指紋的協(xié)議的示例性系統(tǒng)。圖1示出了用于驗(yàn)證遠(yuǎn)程數(shù)據(jù)的完整性的傳統(tǒng)系統(tǒng)100以及相關(guān)聯(lián)的時(shí)間線102。 系統(tǒng)100包括具有相關(guān)聯(lián)的計(jì)算機(jī)100和用于存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)112的“本地”方X。系 統(tǒng)100還包括具有相關(guān)聯(lián)的計(jì)算機(jī)120和用于存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)122的“遠(yuǎn)程”方Y(jié)。網(wǎng) 絡(luò)105允許在X方的計(jì)算機(jī)100與Y方的計(jì)算機(jī)120之間發(fā)生通信。時(shí)間線102示出了通常發(fā)生在用于驗(yàn)證遠(yuǎn)程數(shù)據(jù)的完整性的傳統(tǒng)方法中的各步 驟。在步驟A,X方從數(shù)據(jù)114生成副本115,并且將該副本115發(fā)送到Y(jié)方。在步驟B,Y 方接收經(jīng)由網(wǎng)絡(luò)105所傳輸?shù)脑摳北?15。在執(zhí)行步驟A和B時(shí),數(shù)據(jù)114的完整性可能受 損。例如,副本115可能缺少完整性,和/或經(jīng)由網(wǎng)絡(luò)105的傳輸可能破壞副本115。盡管 可能發(fā)生后一種類型的破壞,但在圖1的示例中,為簡(jiǎn)明起見(jiàn),數(shù)據(jù)115被表示為被發(fā)送和 接收而沒(méi)有破壞。在Y方接收數(shù)據(jù)115之后,在步驟C,數(shù)據(jù)115被存儲(chǔ)在數(shù)據(jù)存儲(chǔ)122處作為數(shù)據(jù) 116。數(shù)據(jù)116表示最初具有完整性或例如因?qū)戝e(cuò)誤或其他錯(cuò)誤而不具有完整性的數(shù)據(jù)?;?者,隨著時(shí)間的推移,會(huì)發(fā)生影響數(shù)據(jù)116的完整性的某種過(guò)程,使得它不再表示數(shù)據(jù)114 的準(zhǔn)確的副本。根據(jù)步驟D,X方想要驗(yàn)證發(fā)送到Y(jié)方的數(shù)據(jù)的完整性。此查詢可以用各種方式中 的任一種來(lái)發(fā)生。例如,X方可呼叫Y方、發(fā)電子郵件給Y方、或采取提示Y方響應(yīng)該查詢 的某種其他動(dòng)作。在步驟E,Y方通過(guò)同意發(fā)送其存儲(chǔ)的數(shù)據(jù)116的副本來(lái)響應(yīng)X方。在該示例中,在制作所存儲(chǔ)的數(shù)據(jù)116的副本時(shí)可能發(fā)生一個(gè)或多個(gè)錯(cuò)誤。此外, 分別在其中Y方發(fā)送其所存儲(chǔ)的數(shù)據(jù)116的副本到X方的步驟F和其中X方接收并存儲(chǔ)所 存儲(chǔ)的數(shù)據(jù)116的副本的步驟G,可能發(fā)生破壞所存儲(chǔ)的數(shù)據(jù)116的副本的其他錯(cuò)誤。例 如,“錯(cuò)誤”中的某一些可以是由Y方所引起的對(duì)數(shù)據(jù)的惡意破壞。在步驟H,X方執(zhí)行比較來(lái)將從Y方所接收的數(shù)據(jù)116與其數(shù)據(jù)114作比較。盡管 該比較旨在驗(yàn)證遠(yuǎn)程存儲(chǔ)的數(shù)據(jù)的完整性,但如所解釋的,該比較可充滿可使驗(yàn)證挫敗的 問(wèn)題。在要驗(yàn)證的數(shù)據(jù)例如是大文件時(shí),這些問(wèn)題可能被混合(例如,較多的讀/寫(xiě)錯(cuò)誤、 傳輸錯(cuò)誤等的機(jī)會(huì))。在圖1的示例中,X方可被認(rèn)為是數(shù)據(jù)“所有者”。盡管此示例示出了 X方執(zhí)行遠(yuǎn) 程數(shù)據(jù)的驗(yàn)證,但在一替換方案中,X方可以將此責(zé)任或任務(wù)委托給第三方。然而,這一委 托將不解決可能發(fā)生的問(wèn)題的本質(zhì)或數(shù)量。實(shí)際上,這一委托將使驗(yàn)證甚至更易于發(fā)生錯(cuò)誤。作為另一替換方案,X方可以是數(shù)據(jù)114的所有者,但將該數(shù)據(jù)存儲(chǔ)在第三方存儲(chǔ) 提供者處。無(wú)論配置如何,在需要數(shù)據(jù)傳輸來(lái)執(zhí)行出于驗(yàn)證該數(shù)據(jù)的完整性的目的的比較 時(shí)存在問(wèn)題。在許多對(duì)等環(huán)境中存在另一場(chǎng)景。例如,在對(duì)等環(huán)境中,用戶機(jī)器(對(duì)等體)可存 儲(chǔ)“屬于”一個(gè)或多個(gè)其他用戶(即,由其擁有)的數(shù)據(jù)。在這一示例中,出于驗(yàn)證遠(yuǎn)程數(shù) 據(jù)的完整性的目的的遠(yuǎn)程數(shù)據(jù)副本的傳送可能是麻煩且昂貴的,并且對(duì)于對(duì)等網(wǎng)絡(luò)的性能 和用戶體驗(yàn)是有害的。存在又一場(chǎng)景,其中一個(gè)人將大量數(shù)據(jù)存儲(chǔ)在諸如Amazon S3服務(wù)等遠(yuǎn)程存儲(chǔ)提供者上。在這一場(chǎng)景中,數(shù)據(jù)傳送可能是昂貴的。因此,出于驗(yàn)證遠(yuǎn)程數(shù)據(jù)的完整性的目的 來(lái)傳輸遠(yuǎn)程數(shù)據(jù)副本是不合需要的。如此處所描述的,一示例性協(xié)議克服了與圖1的系統(tǒng)100和/或一個(gè)或多個(gè)上述 場(chǎng)景相關(guān)聯(lián)的各種問(wèn)題。具體地,一示例性協(xié)議允許數(shù)據(jù)所有者驗(yàn)證這些遠(yuǎn)程存儲(chǔ)的數(shù)據(jù) 的完整性。此外,數(shù)據(jù)所有者可將完整性檢驗(yàn)?zāi)芰ξ薪o第三方。這一示例性協(xié)議可由多 個(gè)對(duì)等應(yīng)用程序來(lái)使用。圖2示出了包括三方的示例性系統(tǒng)200以便沿時(shí)間線202示出示例性協(xié)議的操 作。如圖2所示,系統(tǒng)200包括作為X方且具有相關(guān)聯(lián)的計(jì)算機(jī)210和用于存儲(chǔ)數(shù)據(jù)的數(shù) 據(jù)存儲(chǔ)212的數(shù)據(jù)所有者、作為Y方且具有相關(guān)聯(lián)的計(jì)算機(jī)220和用于存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)存 儲(chǔ)222的存儲(chǔ)提供者、以及作為Z方且具有相關(guān)聯(lián)的計(jì)算機(jī)230和用于存儲(chǔ)用于驗(yàn)證數(shù)據(jù) 的信息的數(shù)據(jù)存儲(chǔ)232的確認(rèn)者。網(wǎng)絡(luò)205允許在X方的計(jì)算機(jī)210、Y方的計(jì)算機(jī)220和 Z方的計(jì)算機(jī)230之間發(fā)生通信。在圖2的場(chǎng)景中,認(rèn)為存儲(chǔ)提供者Y安全地存儲(chǔ)從數(shù)據(jù)所有者X所獲得的數(shù)據(jù),并 且確認(rèn)者Z需要能夠高效地驗(yàn)證存儲(chǔ)提供者Y具有從數(shù)據(jù)所有者X所獲得的數(shù)據(jù)的準(zhǔn)確的 (例如,確切的)副本,而不需要傳送該數(shù)據(jù)的任何重要的部分。數(shù)據(jù)所有者X和確認(rèn)者Z 可以是相同的用戶或是不同的用戶。例如,在圖1的傳統(tǒng)系統(tǒng)100中,X方被描述為是數(shù)據(jù) 所有者和確認(rèn)者(即,最終驗(yàn)證數(shù)據(jù)的完整性的一方)。時(shí)間線202示出了通常在用于依賴示例性協(xié)議來(lái)驗(yàn)證遠(yuǎn)程數(shù)據(jù)的完整性的示例 性方法中發(fā)生的各種步驟。在步驟Α,X方從數(shù)據(jù)214生成副本215,并且將該副本215發(fā) 送到Y(jié)方。在步驟B,Y方接收經(jīng)由網(wǎng)絡(luò)205所傳輸?shù)脑摳北?15。在執(zhí)行步驟A和B時(shí), 數(shù)據(jù)214的完整性可能受損。例如,副本215可能缺少完整性,和/或經(jīng)由網(wǎng)絡(luò)205的傳輸 可能破壞副本215。盡管可能發(fā)生后一種類型的破壞,但在圖2的示例中,為簡(jiǎn)明起見(jiàn),數(shù)據(jù) 215被表示為被發(fā)送和接收而沒(méi)有破壞。在Y方接收數(shù)據(jù)215之后,在步驟C,數(shù)據(jù)215被存儲(chǔ)在數(shù)據(jù)存儲(chǔ)222處作為數(shù)據(jù) 216。數(shù)據(jù)216表示最初具有完整性或例如因?qū)戝e(cuò)誤或其他錯(cuò)誤而不具有完整性的數(shù)據(jù)。 或者,隨著時(shí)間的推移,可能發(fā)生影響數(shù)據(jù)216的完整性的某種過(guò)程,使得它不再表示數(shù)據(jù) 214的準(zhǔn)確的副本。在各種場(chǎng)景中,數(shù)據(jù)可能被Y方或惡意攻擊Y方的其他人故意地破壞。在可能缺 少損害數(shù)據(jù)所有者的嚴(yán)重意圖的場(chǎng)景中,Y方可僅期望更多的存儲(chǔ)器(例如,硬盤(pán)驅(qū)動(dòng)器空 間)來(lái)存儲(chǔ)它自己的數(shù)據(jù)。如所解釋的,示例性方案需要Y方有具備完整性的數(shù)據(jù)的副本。 這阻止Y方例如用隨機(jī)字節(jié)進(jìn)行響應(yīng)來(lái)模仿所存儲(chǔ)的數(shù)據(jù)的完整性或存在性。在圖2中,步驟A、B和C本質(zhì)上與在圖1的傳統(tǒng)時(shí)間線102中發(fā)生的那些步驟相 同。然而,之后的步驟由于它們依賴于可消除圖1的系統(tǒng)100中存在的各種問(wèn)題的示例性 協(xié)議而不同。根據(jù)時(shí)間線202,在步驟D,該步驟D可在將數(shù)據(jù)215從X方發(fā)送到Y(jié)方之前發(fā)生, X方將信息242、244發(fā)送到Z方,即確認(rèn)者,用于確認(rèn)或驗(yàn)證在X方(即,計(jì)算機(jī)210和數(shù) 據(jù)存儲(chǔ)21 的遠(yuǎn)程所存儲(chǔ)的數(shù)據(jù)的完整性。根據(jù)示例性協(xié)議,信息242是一個(gè)或多個(gè)位串 (例如,1,2,…,k,其中k>0),并且信息244是至少部分從該位串中的一個(gè)所生成的指 紋;注意到在某些情況下,指紋可從一個(gè)以上位串中生成。位串可例如使用隨機(jī)數(shù)生成器來(lái)
6生成,或使用主密鑰來(lái)偽隨機(jī)地生成。在圖2的示例中,k個(gè)位串其中k>0)的每一 個(gè)被用作加密鑰的密碼散列函數(shù)的密鑰,其中該散列函數(shù)隨后被應(yīng)用于數(shù)據(jù)來(lái)生成對(duì)應(yīng)的 指紋,并且總共有k個(gè)指紋M4。在步驟E,該步驟E發(fā)生在步驟C之后的某一時(shí)間(或某些時(shí)間),Z方通過(guò)向Y 方發(fā)送一個(gè)或多個(gè)位串242來(lái)向Y方發(fā)出質(zhì)詢。這一通信可經(jīng)由網(wǎng)絡(luò)205或通過(guò)其他手 段(例如,安全線,專用線,等)來(lái)發(fā)生。在步驟F,Y方通過(guò)基于一個(gè)或多個(gè)所接收的位串
例如,使用加密鑰的密碼散列函數(shù)和計(jì)算機(jī)220)及其所存儲(chǔ)的數(shù)據(jù)(例如,遠(yuǎn)程方擁 有的所存儲(chǔ)的數(shù)據(jù))來(lái)生成一個(gè)或多個(gè)指紋M5,并且隨后將該一個(gè)或多個(gè)指紋245發(fā)送到 Z方來(lái)響應(yīng)該質(zhì)詢。在步驟G,Z方例如通過(guò)將從Y方所接收的一個(gè)或多個(gè)指紋245與從X方所接收的 適當(dāng)?shù)囊粋€(gè)或多個(gè)指紋244作比較來(lái)驗(yàn)證這些指紋。因此,在系統(tǒng)200中,示例性協(xié)議不需要遠(yuǎn)程存儲(chǔ)的數(shù)據(jù)的傳輸來(lái)驗(yàn)證該數(shù)據(jù)的 完整性。相反,需要計(jì)算步驟來(lái)基于質(zhì)詢(例如,位串,即用于加密鑰的密碼散列函數(shù)的密 鑰)生成至少一個(gè)指紋。由于單個(gè)位串和指紋相比于要驗(yàn)證的數(shù)據(jù)的大小可能相當(dāng)小,因此通信可高效地 發(fā)生而開(kāi)銷極小。此外,這一通信可在諸如專用電話線等其中帶寬有限的各種通信路徑上 發(fā)生。圖3示出了用于驗(yàn)證遠(yuǎn)程存儲(chǔ)的數(shù)據(jù)的完整性的示例性方法300。在提供框304 中,提供了密鑰。在另一提供框308中,提供了指紋,其中該指紋使用該密鑰以應(yīng)用于已知 完整性的數(shù)據(jù)的加密鑰的密碼散列函數(shù)來(lái)生成。盡管框304和308被示為單獨(dú)的框,但這 些動(dòng)作可在提供一個(gè)或多個(gè)密鑰/指紋對(duì)的單個(gè)提供框中發(fā)生。在發(fā)送框312中,該密鑰 被發(fā)送到存儲(chǔ)已知完整性的數(shù)據(jù)的副本的遠(yuǎn)程存儲(chǔ)位置。接收框316從遠(yuǎn)程存儲(chǔ)位置接收 指紋,其中該指紋使用該密鑰以應(yīng)用于該數(shù)據(jù)的遠(yuǎn)程存儲(chǔ)的副本的加密鑰的密碼散列函數(shù) 來(lái)生成。驗(yàn)證框320至少部分地基于將所提供的指紋與所接收的指紋進(jìn)行比較來(lái)驗(yàn)證該數(shù) 據(jù)的遠(yuǎn)程存儲(chǔ)的副本的完整性。以這一方式,遠(yuǎn)程存儲(chǔ)的數(shù)據(jù)的完整性可被驗(yàn)證,而無(wú)需從 遠(yuǎn)程存儲(chǔ)位置傳輸數(shù)據(jù)。圖4示出了所有者410、存儲(chǔ)者420和確認(rèn)者430的各種組件(例如,諸如圖2的 系統(tǒng)200中所示的那些)。各組件任選地(且通常)是用于在所有者側(cè)機(jī)器、存儲(chǔ)者側(cè)機(jī) 器、確認(rèn)者側(cè)機(jī)器等上執(zhí)行的軟件組件。如已經(jīng)提到的,所有者還可作為其自己的確認(rèn)者來(lái) 操作以便確認(rèn)所有者自己的遠(yuǎn)程數(shù)據(jù)。在這一場(chǎng)景中,單個(gè)機(jī)器(例如,計(jì)算設(shè)備)可包括 所有者組件以及確認(rèn)者組件的各種模塊。此外,所有者可作為一個(gè)或多個(gè)其他所有者的存 儲(chǔ)者來(lái)操作。在這一場(chǎng)景中,單個(gè)機(jī)器可包括所有者組件以及存儲(chǔ)者組件的各種模塊。所有者410包括所有者側(cè)組件412,它包括串生成器模塊413和指紋生成器模塊 414。這些模塊的對(duì)應(yīng)功能的示例已經(jīng)在上文中參考圖2的系統(tǒng)200來(lái)呈現(xiàn)。存儲(chǔ)者420包括存儲(chǔ)者側(cè)組件422,它包括用于將所有者與所存儲(chǔ)的數(shù)據(jù)相關(guān)聯(lián) 的所有者/存儲(chǔ)者表模塊423、以及用于響應(yīng)于質(zhì)詢來(lái)生成指紋的指紋生成器模塊414,如 已經(jīng)描述的。確認(rèn)者430包括確認(rèn)者側(cè)組件432,它包括用于將所有者與所存儲(chǔ)的數(shù)據(jù)相關(guān)聯(lián) 的所有者/存儲(chǔ)者表模塊433,用于調(diào)度質(zhì)詢或位串和/或指紋的更新的調(diào)度器模塊434,用于管理用于來(lái)發(fā)出質(zhì)詢的串和用于驗(yàn)證質(zhì)詢的指紋的串/指紋管理模塊435,用于驗(yàn)證 響應(yīng)于質(zhì)詢所接收的指紋的驗(yàn)證模塊436,以及在與確認(rèn)相關(guān)聯(lián)的各種任務(wù)中的任一個(gè)中 使用的一組應(yīng)用程序編程接口(API)437。例如,所有者可經(jīng)由API調(diào)用來(lái)訪問(wèn)確認(rèn)者以便 通知該所有者關(guān)于是否成功完成了質(zhì)詢,該API調(diào)用指定文件、存儲(chǔ)位置(例如,存儲(chǔ)者)、 一系列位串以及對(duì)應(yīng)的指紋、用于向存儲(chǔ)者的發(fā)出質(zhì)詢的時(shí)間表以及聯(lián)系信息(例如,電 子郵件地址等)。確認(rèn)者可包括存儲(chǔ)者響應(yīng)質(zhì)詢所使用的API。例如,在接收到質(zhì)詢之后, 存儲(chǔ)者可做出API調(diào)用,該API調(diào)用包括一個(gè)或多個(gè)指紋,且任選地連同與所存儲(chǔ)的正被驗(yàn) 證的數(shù)據(jù)相關(guān)的一條或多條其他信息(例如,在最近三周中被訪問(wèn)兩次的數(shù)據(jù)、由于缺少 訪問(wèn)而被壓縮的數(shù)據(jù)、被X方訪問(wèn)的數(shù)據(jù)、等等)。以這一方式,存儲(chǔ)者可向確認(rèn)者返回可幫 助數(shù)據(jù)所有者管理數(shù)據(jù)或?qū)τ谠摂?shù)據(jù)進(jìn)行動(dòng)作的信息。 圖5示出了示例性系統(tǒng)500,其中經(jīng)由網(wǎng)絡(luò)505通信的兩方510、520協(xié)同操作來(lái)存 儲(chǔ)其數(shù)據(jù)中的至少某一些(例如,作為備份)。510方和520方中的每一方都使用計(jì)算設(shè)備 來(lái)操作,該計(jì)算設(shè)備包括所有者側(cè)組件512、存儲(chǔ)者側(cè)組件522以及確認(rèn)者側(cè)組件532,諸如 參考圖4所描述的那些組件。510方具有相關(guān)聯(lián)的數(shù)據(jù)存儲(chǔ)512,并且520方具有相關(guān)聯(lián)的 數(shù)據(jù)存儲(chǔ)522。在圖5的示例中,510方制作其數(shù)據(jù)515的副本516,并且將該副本516發(fā)送到520 方以供存儲(chǔ)。類似地,520方制作其數(shù)據(jù)525的副本526,并且將該副本5 發(fā)送到510方 以供存儲(chǔ)。如已經(jīng)解釋的,510和520方可使用示例性協(xié)議來(lái)確認(rèn)他們遠(yuǎn)程存儲(chǔ)的數(shù)據(jù),該 示例性協(xié)議依賴發(fā)出質(zhì)詢、以及至少部分基于該質(zhì)詢和至少部分基于所存儲(chǔ)的要驗(yàn)證的數(shù) 據(jù)來(lái)返回指紋。可復(fù)制圖5的示例性系統(tǒng)500用于對(duì)等系統(tǒng)中的存儲(chǔ)交換。存儲(chǔ)交換允許一個(gè)人 以提供他的盤(pán)空間的某一部分用于其他人的備份數(shù)據(jù)為代價(jià)來(lái)在其他用戶的機(jī)器上備份 他們的數(shù)據(jù)。例如,在用戶“共享” 1. 5GB她的硬盤(pán)驅(qū)動(dòng)器空間的之后,該用戶被允許在其他 對(duì)等體上備份IGB她的個(gè)人文件。存儲(chǔ)交換可使用示例性位串/指紋協(xié)議來(lái)確保對(duì)等體不 刪除或修改其他對(duì)等體的數(shù)據(jù)。在另一場(chǎng)景中,用戶可能希望在諸如Amazon S3等其中通信可能是昂貴的遠(yuǎn)程存 儲(chǔ)服務(wù)上存儲(chǔ)數(shù)據(jù)。示例性位串/指紋協(xié)議的使用可幫助確保(a)存儲(chǔ)提供者仍存儲(chǔ)數(shù)據(jù) 以及(b)存儲(chǔ)提供者沒(méi)有修改數(shù)據(jù)。由于協(xié)議可以用最少通信來(lái)實(shí)現(xiàn),因此這些保證可用 非常小的通信成本來(lái)實(shí)現(xiàn)。如此處所描述的,示例性協(xié)議可用于驗(yàn)證存儲(chǔ)在遠(yuǎn)程機(jī)器上的數(shù)據(jù)的完整性。這 一協(xié)議提供了向另一方(例如,確認(rèn)者)委托驗(yàn)證權(quán)利的能力。在各種示例中,協(xié)議使用通 過(guò)將密碼散列函數(shù)應(yīng)用于所存儲(chǔ)的數(shù)據(jù)所生成的指紋來(lái)驗(yàn)證該數(shù)據(jù)的完整性。盡管各種示 例旨在用于驗(yàn)證遠(yuǎn)程數(shù)據(jù),但所有者可能希望通過(guò)使用高完整性存儲(chǔ)者作為完整性度量來(lái) 驗(yàn)證其自己(例如,本地)所存儲(chǔ)的數(shù)據(jù)的完整性。如此處所描述的,示例性確認(rèn)者方法可產(chǎn)生質(zhì)詢并且驗(yàn)證該質(zhì)詢。作為協(xié)議,包 括質(zhì)詢和響應(yīng)的交互序列克服了與通過(guò)發(fā)送數(shù)據(jù)的副本的驗(yàn)證相關(guān)聯(lián)的許多問(wèn)題(見(jiàn),例 如,圖1的傳統(tǒng)系統(tǒng)100)。如此處所描述的,示例性確認(rèn)者可被編程為執(zhí)行周期性的更新。此外,確認(rèn)者可基 于關(guān)于存儲(chǔ)者的歷史信息來(lái)調(diào)度查詢。例如,如果已知存儲(chǔ)者缺少完整性,則確認(rèn)者可發(fā)出更頻繁的質(zhì)詢。相反,對(duì)于具有所展示的完整性的存儲(chǔ)者,質(zhì)詢的頻率可以相當(dāng)小。一般而 言,示例性確認(rèn)者可取決于環(huán)境以增大或減小的時(shí)間間隔發(fā)出周期性的質(zhì)詢。如此處所描述的,一示例性方法可包括調(diào)度質(zhì)詢的發(fā)出來(lái)檢驗(yàn)一方或多方所存儲(chǔ) 的數(shù)據(jù)的完整性,其中所發(fā)出的質(zhì)詢要求被質(zhì)詢的一方(例如,行動(dòng)來(lái)遠(yuǎn)程地存儲(chǔ)數(shù)據(jù)所 有者的數(shù)據(jù)的存儲(chǔ)者)應(yīng)用加密鑰的密碼散列函數(shù);以及至少部分地基于一方滿足一個(gè)或 多個(gè)所發(fā)出的質(zhì)詢(例如,成功的質(zhì)詢或不成功的質(zhì)詢)的能力來(lái)調(diào)整對(duì)該方的發(fā)出頻率。 例如,在一方無(wú)法滿足一個(gè)或多個(gè)所發(fā)出的質(zhì)詢時(shí)可增加頻率?;蛘?,在一方滿足一個(gè)或多 個(gè)所發(fā)出的質(zhì)詢時(shí)減少頻率。這一方法可包括從所存儲(chǔ)的數(shù)據(jù)的一個(gè)或多個(gè)所有者獲得質(zhì) 詢信息,例如,其中該獲得周期性地發(fā)生并且允許數(shù)據(jù)所有者提供新的質(zhì)詢信息。如此處所描述的,示例性對(duì)等系統(tǒng)包括一個(gè)或多個(gè)計(jì)算設(shè)備,該一個(gè)或多個(gè)計(jì)算 設(shè)備被配置成本地存儲(chǔ)數(shù)據(jù),其中本地存儲(chǔ)的數(shù)據(jù)包括本地所有者所擁有的數(shù)據(jù)以及遠(yuǎn) 程所有者所擁有的數(shù)據(jù)副本;接收與遠(yuǎn)程所有者所擁有的數(shù)據(jù)副本相關(guān)聯(lián)的密鑰;使用該 密鑰以應(yīng)用于遠(yuǎn)程所有者所擁有的數(shù)據(jù)副本的加密鑰的密碼散列函數(shù)來(lái)生成指紋;以及將 該指紋發(fā)送到對(duì)等系統(tǒng)中的另一計(jì)算設(shè)備用于驗(yàn)證遠(yuǎn)程所有者所擁有的數(shù)據(jù)副本的完整 性。在這一系統(tǒng)中,其他計(jì)算設(shè)備可被配置成接收指紋,并且將該指紋與使用該密鑰以應(yīng)用 于遠(yuǎn)程所有者所擁有的已知完整性的數(shù)據(jù)的加密鑰的密碼散列函數(shù)所生成的指紋作比較。在示例性對(duì)等體統(tǒng)中,一個(gè)或多個(gè)計(jì)算設(shè)備可被配置成生成密鑰,以及使用該密 鑰以應(yīng)用于已知完整性的數(shù)據(jù)的加密鑰的密碼散列函數(shù)來(lái)生成指紋。這一計(jì)算系統(tǒng)可進(jìn)一 步被配置成將密鑰和指紋發(fā)送到對(duì)等系統(tǒng)中的一個(gè)或多個(gè)計(jì)算設(shè)備。此外,對(duì)等系統(tǒng)可包 括用于對(duì)發(fā)送密鑰到對(duì)等系統(tǒng)中的一個(gè)或多個(gè)計(jì)算設(shè)備進(jìn)行調(diào)度的一個(gè)或多個(gè)時(shí)間表。示例性計(jì)算設(shè)備圖6示出了可用于實(shí)現(xiàn)各示例性組件并形成示例性系統(tǒng)的示例性計(jì)算設(shè)備600。 例如,圖2的系統(tǒng)的計(jì)算設(shè)備可以包括設(shè)備600的各種特征。在非?;镜呐渲弥校?jì)算設(shè)備600通常包括至少一個(gè)處理單元602和系統(tǒng)存儲(chǔ) 器604。取決于計(jì)算設(shè)備的確切配置和類型,系統(tǒng)存儲(chǔ)器604可以是易失性的(諸如RAM)、 非易失性的(諸如ROM、閃存等等)或兩種類型的某種組合。系統(tǒng)存儲(chǔ)器604通常包括操 作系統(tǒng)605、一個(gè)或多個(gè)程序模塊606,且可以包括程序數(shù)據(jù)607。操作系統(tǒng)605包括基于 組件的框架620,其支持組件(包括屬性和事件)、對(duì)象、繼承、多態(tài)性、反射,并且提供面 向?qū)ο蟮幕诮M件的應(yīng)用程序編程接口(API),諸如由華盛頓州雷蒙德市的微軟公司制造 的.NET 框架的API。計(jì)算設(shè)備600具有由虛線608劃分的非?;镜呐渲?。同樣,一終 端可具有更少的組件,但將與可具有這一基本配置的計(jì)算設(shè)備交互。計(jì)算設(shè)備600可具有附加特征或功能。例如,計(jì)算設(shè)備600還可包括附加數(shù)據(jù)存 儲(chǔ)設(shè)備(可移動(dòng)和/或不可移動(dòng)),諸如例如磁盤(pán)、光盤(pán)或磁帶。這樣的附加存儲(chǔ)在圖6中 由可移動(dòng)存儲(chǔ)609和不可移動(dòng)存儲(chǔ)610例示。計(jì)算機(jī)存儲(chǔ)介質(zhì)可包括以用于存儲(chǔ)諸如計(jì)算 機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)等信息的任何方法或技術(shù)實(shí)現(xiàn)的易失性和非 易失性、可移動(dòng)和不可移動(dòng)介質(zhì)。系統(tǒng)存儲(chǔ)器604、可移動(dòng)存儲(chǔ)609和不可移動(dòng)存儲(chǔ)610都 是計(jì)算機(jī)存儲(chǔ)介質(zhì)的示例。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括,但不限于,RAM、R0M、EEPR0M、閃存或其他 存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字多功能盤(pán)(DVD)或其他光盤(pán)存儲(chǔ)、磁帶盒、磁帶、磁盤(pán)存儲(chǔ)或其他 磁性存儲(chǔ)設(shè)備、或能用于存儲(chǔ)所需信息且可以由計(jì)算設(shè)備600訪問(wèn)的任何其他介質(zhì)。任何這樣的計(jì)算機(jī)存儲(chǔ)介質(zhì)都可以是設(shè)備600的一部分。計(jì)算設(shè)備600也可具有諸如鍵盤(pán)、鼠 標(biāo)、筆、語(yǔ)音輸入設(shè)備、觸摸輸入設(shè)備等的輸入設(shè)備612。也可包括輸出設(shè)備614,如顯示器、 揚(yáng)聲器、打印機(jī)等等。這些設(shè)備在本領(lǐng)域中是已知的,這里就不再對(duì)它們進(jìn)行詳細(xì)討論。計(jì)算設(shè)備600還可包含允許該設(shè)備諸如通過(guò)網(wǎng)絡(luò)(例如考慮上述圖2的網(wǎng)絡(luò)205) 來(lái)與其他計(jì)算設(shè)備618進(jìn)行通信的通信連接616。通信連接616是通信介質(zhì)的一個(gè)示例。 通信介質(zhì)通常可以具體化為計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊等。盡管用結(jié)構(gòu)特征和/或方法動(dòng)作專用的語(yǔ)言描述了本主題,但可以理解,所附權(quán) 利要求書(shū)中定義的主題不必限于上述具體特征或動(dòng)作。相反,上文所描述的具體特征和動(dòng) 作是作為實(shí)現(xiàn)權(quán)利要求的示例形式來(lái)公開(kāi)的。
權(quán)利要求
1.一種用于驗(yàn)證遠(yuǎn)程存儲(chǔ)的數(shù)據(jù)的完整性的方法,所述方法包括 提供密鑰;提供指紋,所述指紋使用所述密鑰以應(yīng)用于已知完整性的數(shù)據(jù)的加密鑰的密碼散列函 數(shù)來(lái)生成;將所述密鑰發(fā)送到存儲(chǔ)所述已知完整性的數(shù)據(jù)的副本的遠(yuǎn)程存儲(chǔ)位置; 從所述遠(yuǎn)程存儲(chǔ)位置接收指紋,所述指紋使用所述密鑰以應(yīng)用于所述數(shù)據(jù)的遠(yuǎn)程存儲(chǔ) 的副本的加密鑰的密碼散列函數(shù)來(lái)生成;以及至少部分地基于將所提供的指紋與所接收的指紋進(jìn)行比較來(lái)驗(yàn)證所述數(shù)據(jù)的遠(yuǎn)程存 儲(chǔ)的副本的完整性。
2.如權(quán)利要求1所述的方法,其特征在于,所述密鑰任選地包括位串,任選地包括隨機(jī) 生成的密鑰,任選地包括對(duì)應(yīng)于所述已知完整性的數(shù)據(jù)的一個(gè)或一系列密鑰,或任選地包 括通過(guò)將偽隨機(jī)數(shù)生成器應(yīng)用于主密鑰來(lái)生成的一系列密鑰中的一個(gè)密鑰。
3.如權(quán)利要求1所述的方法,其特征在于,所提供的指紋包括對(duì)應(yīng)于所述已知完整性 的數(shù)據(jù)的一系列指紋中的一個(gè)指紋。
4.如權(quán)利要求1所述的方法,其特征在于,所提供的密鑰和所提供的指紋任選地作為 一對(duì)來(lái)提供,并且所述已知完整性的數(shù)據(jù)的所有者任選地提供所述密鑰和所述指紋。
5.如權(quán)利要求1所述的方法,其特征在于,所述發(fā)送根據(jù)時(shí)間表來(lái)發(fā)生。
6.如權(quán)利要求1所述的方法,其特征在于,進(jìn)一步包括提供一個(gè)以上的密鑰,并且提供 一個(gè)以上的指紋,其中每一所提供的指紋對(duì)應(yīng)于所提供的密鑰中的一個(gè)。
7.如權(quán)利要求1所述的方法,其特征在于,所述驗(yàn)證發(fā)生在計(jì)算設(shè)備處,所述計(jì)算設(shè)備 提供所述密鑰,提供所述指紋,將所述密鑰發(fā)送到所述遠(yuǎn)程存儲(chǔ)位置,并且從所述遠(yuǎn)程存儲(chǔ) 位置接收所述指紋。
8.一種計(jì)算設(shè)備,包括 一個(gè)或多個(gè)處理器;用于存儲(chǔ)密鑰和指紋的存儲(chǔ)器,所述指紋使用所述密鑰以應(yīng)用于已知完整性的數(shù)據(jù)的 加密鑰的密碼散列函數(shù)來(lái)生成;包括指令的組件,所述指令用于將所述密鑰發(fā)送到存儲(chǔ)所述已知完整性的數(shù)據(jù)的副本 的遠(yuǎn)程存儲(chǔ)位置;從所述遠(yuǎn)程存儲(chǔ)位置接收指紋,所述指紋使用所述密鑰以應(yīng)用于所述數(shù) 據(jù)的遠(yuǎn)程存儲(chǔ)的副本的加密鑰的密碼散列函數(shù)來(lái)生成;以及至少部分地基于將所提供的指 紋與所接收的指紋進(jìn)行比較來(lái)驗(yàn)證所述數(shù)據(jù)的遠(yuǎn)程存儲(chǔ)的副本的完整性;任選地包括存儲(chǔ),所述存儲(chǔ)用于存儲(chǔ)所述已知完整性的數(shù)據(jù),并且使用所述密鑰以應(yīng) 用于所述已知完整性的數(shù)據(jù)的加密鑰的密碼散列函數(shù)來(lái)生成所述指紋;以及 任選地包括用于遠(yuǎn)程存儲(chǔ)另一者所擁有的數(shù)據(jù)的存儲(chǔ)。
9.一種對(duì)等系統(tǒng),包括計(jì)算設(shè)備,所述計(jì)算設(shè)備被配置成本地存儲(chǔ)數(shù)據(jù),其中所述本地存儲(chǔ)的數(shù)據(jù)包括本地所有者所擁有的數(shù)據(jù)以及遠(yuǎn)程所有 者所擁有的數(shù)據(jù)副本;接收與所述遠(yuǎn)程所有者所擁有的數(shù)據(jù)副本相關(guān)聯(lián)的密鑰;使用所述密鑰以應(yīng)用于所述遠(yuǎn)程所有者所擁有的數(shù)據(jù)副本的加密鑰的密碼散列函數(shù)來(lái)生成指紋;以及將所述指紋發(fā)送到所述對(duì)等網(wǎng)絡(luò)中的另一計(jì)算設(shè)備用于驗(yàn)證所述遠(yuǎn)程所有者所擁有 的數(shù)據(jù)副本的完整性。
10. 一種至少部分地由計(jì)算設(shè)備實(shí)現(xiàn)的方法,包括調(diào)度質(zhì)詢的發(fā)出來(lái)檢驗(yàn)一方或多方所存儲(chǔ)的數(shù)據(jù)的完整性,其中所發(fā)出的質(zhì)詢要求被 質(zhì)詢方應(yīng)用加密鑰的密碼散列函數(shù),并且所述被質(zhì)詢方行動(dòng)來(lái)遠(yuǎn)程地存儲(chǔ)數(shù)據(jù)所有者的所 述數(shù)據(jù);至少部分地基于一方滿足一個(gè)或多個(gè)所發(fā)出的質(zhì)詢的能力來(lái)調(diào)整對(duì)該方的發(fā)出頻率;以及任選地從所存儲(chǔ)的數(shù)據(jù)的一個(gè)或多個(gè)所有者獲得質(zhì)詢信息,其中所述獲得任選地周期 性地發(fā)生。
全文摘要
一種用于驗(yàn)證遠(yuǎn)程存儲(chǔ)的數(shù)據(jù)的完整性的方法,包括提供密鑰;提供指紋,該指紋使用該密鑰以應(yīng)用于已知完整性的數(shù)據(jù)的加密鑰的密碼散列函數(shù)來(lái)生成;將該密鑰發(fā)送到存儲(chǔ)已知完整性的數(shù)據(jù)的副本的遠(yuǎn)程存儲(chǔ)位置;從該遠(yuǎn)程存儲(chǔ)位置接收指紋,該指紋使用該密鑰以應(yīng)用于該數(shù)據(jù)的遠(yuǎn)程存儲(chǔ)的副本的加密鑰的密碼散列函數(shù)來(lái)生成;以及至少部分地基于將所提供的指紋與所接收的指紋進(jìn)行比較來(lái)驗(yàn)證該數(shù)據(jù)的遠(yuǎn)程存儲(chǔ)的副本的完整性。還公開(kāi)了其他示例性方法、系統(tǒng)等。
文檔編號(hào)H04L9/30GK102099812SQ200980128925
公開(kāi)日2011年6月15日 申請(qǐng)日期2009年4月7日 優(yōu)先權(quán)日2008年5月20日
發(fā)明者A·米佳金, D·X·查爾斯, K·E·勞特 申請(qǐng)人:微軟公司