本發(fā)明涉及區(qū)塊鏈的交易數(shù)據(jù)安全問題,特別是一種區(qū)塊鏈的只讀安全文件存儲(chǔ)系統(tǒng)及其方法。
背景技術(shù):
2009年比特幣的出現(xiàn)帶來了一種顛覆性的成果--區(qū)塊鏈技術(shù),區(qū)塊鏈?zhǔn)且粋€(gè)安全的帳簿類數(shù)據(jù)庫,由一個(gè)個(gè)數(shù)據(jù)區(qū)塊組成,使用者可以在這個(gè)不斷更新升級(jí)的平臺(tái)查找數(shù)據(jù),對(duì)于金融機(jī)構(gòu)來說,區(qū)塊鏈能加快交易處理過程、降低成本、減少中間人、提高市場(chǎng)洞察力,增加業(yè)務(wù)透明度。
計(jì)算和存儲(chǔ)是計(jì)算機(jī)系統(tǒng)的兩大基本任務(wù),隨著信息的爆炸性增長(zhǎng),存儲(chǔ)部件會(huì)經(jīng)歷基于單服務(wù)器的直連存儲(chǔ),到基于局域網(wǎng)的集群網(wǎng)格存儲(chǔ),最后發(fā)展到基于廣域網(wǎng)的數(shù)據(jù)網(wǎng)格,區(qū)塊鏈技術(shù)是目前發(fā)展的最末端,這種數(shù)據(jù)存儲(chǔ)介質(zhì)的本征特質(zhì)包括智能化的存儲(chǔ),存儲(chǔ)服務(wù)質(zhì)量可以保證為用戶應(yīng)用提供服務(wù)區(qū)分和性能保證,存儲(chǔ)是面向?qū)ο蟮暮A看鎯?chǔ),以及網(wǎng)絡(luò)存儲(chǔ)必須保證是機(jī)密完整和安全的,現(xiàn)有的互聯(lián)網(wǎng)還沒有很好的或者方便的辦法保證區(qū)塊鏈傳輸過程中的數(shù)據(jù)和保存在存儲(chǔ)設(shè)備上的數(shù)據(jù)的保密性、完整性、可用性、不可抵賴性以及整個(gè)網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)的可靠性能,尤其是近年來區(qū)塊鏈可信計(jì)算技術(shù)的產(chǎn)生,對(duì)網(wǎng)絡(luò)存儲(chǔ)安全又提出更高的要求。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種用于區(qū)塊鏈的只讀安全文件存儲(chǔ)系統(tǒng)及其方法,包括:(1)用戶服務(wù)器認(rèn)證協(xié)議模塊,用于通過一個(gè)自證明路徑名來執(zhí)行用戶與服務(wù)器之間的相互認(rèn)證協(xié)議;(2)簽名和加密模塊,用于正確加密交易文件;(3)交易文件訪問驗(yàn)證模塊,用于驗(yàn)證用戶的可信任度從而確定起是否可以訪問交易文件;(4)安全文件數(shù)據(jù)產(chǎn)生器;(5)只讀安全文件數(shù)據(jù)服務(wù)器端的守護(hù)進(jìn)程;以及(6)客戶端,傳統(tǒng)的路徑被轉(zhuǎn)換成數(shù)據(jù)并且在安全的所述客戶端環(huán)境進(jìn)行數(shù)字簽名,然后數(shù)據(jù)被分布在任意數(shù)量運(yùn)行的只讀安全文件存儲(chǔ)系統(tǒng)服務(wù)進(jìn)程的服務(wù)器上,所述只讀安全文件數(shù)據(jù)服務(wù)器端的守護(hù)進(jìn)程收到客戶端的請(qǐng)求并返回?cái)?shù)據(jù);(7)郵戳協(xié)議模塊,用于檢測(cè)交易數(shù)據(jù)完整性。
優(yōu)選的,自證明路徑名擁有嵌在它內(nèi)部的一個(gè)文件的公鑰,文件的創(chuàng)建者有向所有嵌在用戶分配所述公鑰的權(quán)利以提供范圍更大的密碼選擇。
優(yōu)選的,運(yùn)行所述簽名和加密模塊時(shí),管理員把交易文件系統(tǒng)中的內(nèi)容轉(zhuǎn)變成由所述公鑰簽名的基本交易數(shù)據(jù),一旦簽名,所述基本交易數(shù)據(jù)能被復(fù)制、分散到不信任的機(jī)器上而沒有被攻陷的威脅。
優(yōu)選的,交易文件訪問驗(yàn)證模塊訪問交易文件時(shí),強(qiáng)制用戶提供存儲(chǔ)服務(wù)器的位置,包括主機(jī)名字和IP地址,以及主機(jī)ID,所述主機(jī)ID是服務(wù)器的位置和文件創(chuàng)造者加密數(shù)據(jù)的非對(duì)稱密鑰的公鑰的哈希值。
優(yōu)選的,用戶一旦通過認(rèn)證被允許訪問時(shí),就被提供一個(gè)由文件塊哈希值組成的柄,多個(gè)柄組成柄群,被嵌套計(jì)算哈希值并存儲(chǔ)在哈希樹中,從而使樹根驗(yàn)證單個(gè)文件塊。
優(yōu)選的,客戶端是標(biāo)準(zhǔn)的文件系統(tǒng)協(xié)議和服務(wù)器的信道,當(dāng)接受一個(gè)文件傳遞時(shí),把大塊的只讀安全文件存儲(chǔ)數(shù)據(jù)轉(zhuǎn)換為傳統(tǒng)的區(qū)塊鏈節(jié)點(diǎn)和傳統(tǒng)文件系統(tǒng)所希望的數(shù)據(jù)塊,在所述客戶端設(shè)置一個(gè)私鑰來驗(yàn)證從服務(wù)器傳出的數(shù)據(jù)的數(shù)字簽名。
優(yōu)選的,安全文件數(shù)據(jù)產(chǎn)生器被用戶用于創(chuàng)建一個(gè)數(shù)據(jù)庫時(shí),首先記錄創(chuàng)建時(shí)間記錄,然后,創(chuàng)建者建立一個(gè)最后時(shí)間來決定是否放棄該數(shù)據(jù),從而設(shè)定有上下限的時(shí)間,最后,交易文件的用戶保存有當(dāng)時(shí)時(shí)間戳的記錄,以此來比較所收到的所有交易數(shù)據(jù)從而阻止一個(gè)重放攻擊。
優(yōu)選的,交易文件創(chuàng)建者把創(chuàng)建的數(shù)據(jù)復(fù)制到多個(gè)運(yùn)行有所述只讀安全文件數(shù)據(jù)服務(wù)器端的守護(hù)進(jìn)程的服務(wù)器上以將訪問控制擴(kuò)展為全球區(qū)塊鏈環(huán)境的只讀數(shù)據(jù)。
采用該區(qū)塊鏈的自安全存儲(chǔ)系統(tǒng),可以更快更完整的恢復(fù)被入侵的交易數(shù)據(jù)文件。
本發(fā)明的用于區(qū)塊鏈的只讀安全文件存儲(chǔ)系統(tǒng),可以提高大型文件系統(tǒng)存儲(chǔ)時(shí)間,創(chuàng)建者可以在無網(wǎng)環(huán)境下完成密碼運(yùn)算,數(shù)據(jù)創(chuàng)建和根據(jù)密文解密,安全可信任的運(yùn)行。
根據(jù)下文結(jié)合附圖對(duì)本發(fā)明具體實(shí)施例的詳細(xì)描述,本領(lǐng)域技術(shù)人員將會(huì)更加明了本發(fā)明的上述以及其他目的、優(yōu)點(diǎn)和特征。
附圖說明
后文將參照附圖以示例性而非限制性的方式詳細(xì)描述本發(fā)明的一些具體實(shí)施例。附圖中相同的附圖標(biāo)記標(biāo)示了相同或類似的部件或部分。本領(lǐng)域技術(shù)人員應(yīng)該理解,這些附圖未必是按比例繪制的。本發(fā)明的目標(biāo)及特征考慮到如下結(jié)合附圖的描述將更加明顯,附圖中:
圖1為根據(jù)本發(fā)明實(shí)施例的區(qū)塊鏈的只讀安全文件存儲(chǔ)系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
在進(jìn)行具體實(shí)施方式的說明之前,為了更為清楚的表達(dá)所論述的內(nèi)容,首先定義一些非常重要的概念。
交易:交易的實(shí)質(zhì)是個(gè)關(guān)系數(shù)據(jù)結(jié)構(gòu),這個(gè)數(shù)據(jù)結(jié)構(gòu)中包含交易參與者價(jià)值轉(zhuǎn)移的相關(guān)信息。這些交易信息被稱為記賬總賬簿。交易需經(jīng)過三個(gè)創(chuàng)建、驗(yàn)證、寫入?yún)^(qū)塊鏈。交易必須經(jīng)過數(shù)字簽名,保證交易的合法性。
區(qū)塊:所有的交易信息存放于區(qū)塊中,一條交易信息就是一條記錄,作為一個(gè)獨(dú)立的記錄存放于區(qū)塊鏈中。區(qū)塊由區(qū)塊頭部和數(shù)據(jù)部分組成,區(qū)塊頭字段包含區(qū)塊本身的各種特性,例如前一區(qū)塊信息,merkle值及時(shí)間戳等。其中區(qū)塊頭哈希值和區(qū)塊高度是標(biāo)識(shí)區(qū)塊最主要的兩個(gè)指標(biāo)。區(qū)塊主標(biāo)識(shí)符是它的加密哈希值,一個(gè)通過SHA算法對(duì)區(qū)塊頭進(jìn)行二次哈希計(jì)算而得到的數(shù)字指紋。產(chǎn)生的32字節(jié)哈希值被稱為區(qū)塊哈希值,或者區(qū)塊頭哈希值,只有區(qū)塊頭被用于計(jì)算。區(qū)塊哈希值可以唯一、明確地標(biāo)識(shí)一個(gè)區(qū)塊,并且任何節(jié)點(diǎn)通過簡(jiǎn)單地對(duì)區(qū)塊頭進(jìn)行哈希計(jì)算都可以獨(dú)立地獲取該區(qū)塊哈希值。
區(qū)塊鏈:由區(qū)塊按照鏈?zhǔn)浇Y(jié)構(gòu)有序鏈接起來的數(shù)據(jù)結(jié)構(gòu)。區(qū)塊鏈就像一個(gè)垂直的堆棧,第一個(gè)區(qū)塊作為棧底的首區(qū)塊,隨后每個(gè)區(qū)塊都被放置在其他區(qū)塊之上。當(dāng)區(qū)塊寫入?yún)^(qū)塊鏈后將永遠(yuǎn)不會(huì)改變,并且備份到其他的區(qū)塊鏈服務(wù)器上。
實(shí)施例:
在一個(gè)分布式環(huán)境中,對(duì)只讀數(shù)據(jù),只讀安全文件存儲(chǔ)系統(tǒng)依據(jù)自證明路徑名提供高可用性,而不需要基于服務(wù)器端的密碼運(yùn)算,提供比較好的性能,并且對(duì)只讀文件產(chǎn)生多重拷貝的時(shí)候能確保數(shù)據(jù)的完整性,而不會(huì)像傳統(tǒng)的復(fù)制一樣導(dǎo)致安全等級(jí)的降級(jí)。
參見圖1,一種用于區(qū)塊鏈的只讀安全文件存儲(chǔ)系統(tǒng),包括用戶服務(wù)器認(rèn)證協(xié)議模塊,用于通過一個(gè)自證明路徑名來執(zhí)行用戶與服務(wù)器之間的相互認(rèn)證協(xié)議,該路徑名擁有嵌在它內(nèi)部的一個(gè)文件的公鑰,文件的創(chuàng)建者有分配密鑰的權(quán)利,因此提供了一個(gè)更大范圍的密碼選擇。
還包括簽名和加密模塊,為了正確加密交易文件,管理員把交易文件系統(tǒng)中的內(nèi)容轉(zhuǎn)變成由公鑰簽名的基本交易數(shù)據(jù)。一旦簽名,這些基本交易數(shù)據(jù)能被復(fù)制、分散到不信任的機(jī)器上而沒有被攻陷的威脅。
另外,還具有一個(gè)交易文件訪問驗(yàn)證模塊,訪問交易文件時(shí),用戶必須提供存儲(chǔ)服務(wù)器的位置,包括主機(jī)名字和IP地址,以及主機(jī)ID。主機(jī)ID是服務(wù)器的位置和文件創(chuàng)造者加密數(shù)據(jù)的非對(duì)稱密鑰的公鑰的哈希值。數(shù)據(jù)的創(chuàng)造者向所有潛在的用戶提供公鑰。用戶一旦通過認(rèn)證被允許訪問時(shí),就被提供一個(gè)適當(dāng)?shù)挠晌募K哈希值組成的柄,多個(gè)柄組成柄群,被嵌套計(jì)算哈希值并存儲(chǔ)在哈希樹中,這樣樹根就提供驗(yàn)證單個(gè)文件塊的能力,從而減少整個(gè)系統(tǒng)所需的柄。
該只讀安全文件存儲(chǔ)系統(tǒng)還包括三個(gè)重要的模塊,即安全文件數(shù)據(jù)產(chǎn)生器,只讀安全文件數(shù)據(jù)服務(wù)器端的守護(hù)進(jìn)程和客戶端。傳統(tǒng)的路徑被轉(zhuǎn)換成數(shù)據(jù)并且在一個(gè)安全的客戶端環(huán)境進(jìn)行數(shù)字簽名。然后數(shù)據(jù)被分布在任意數(shù)量運(yùn)行的只讀安全文件存儲(chǔ)系統(tǒng)服務(wù)進(jìn)程的服務(wù)器上,服務(wù)器端的守護(hù)進(jìn)程收到客戶端的請(qǐng)求并返回?cái)?shù)據(jù)。安全文件存儲(chǔ)系統(tǒng)客戶端運(yùn)行在一臺(tái)客戶機(jī)上,是標(biāo)準(zhǔn)的文件系統(tǒng)協(xié)議和服務(wù)器的信道。當(dāng)接受一個(gè)文件傳遞時(shí),把大塊的只讀安全文件存儲(chǔ)數(shù)據(jù)轉(zhuǎn)換為傳統(tǒng)的區(qū)塊鏈節(jié)點(diǎn)和傳統(tǒng)文件系統(tǒng)所希望的數(shù)據(jù)塊。并且由于只讀安全文件存儲(chǔ)系統(tǒng)對(duì)服務(wù)器不信任,客戶端擁有一個(gè)私鑰來驗(yàn)證從服務(wù)器傳出的數(shù)據(jù)的數(shù)字簽名。
同時(shí)只讀安全文件存儲(chǔ)系統(tǒng)還包括一個(gè)郵戳協(xié)議模塊,檢測(cè)交易數(shù)據(jù)完整性。當(dāng)用戶創(chuàng)建一個(gè)數(shù)據(jù)庫時(shí),將創(chuàng)建時(shí)間記錄下來,此外,創(chuàng)建者必須建立一個(gè)最后時(shí)間來決定是否放棄該數(shù)據(jù),這樣時(shí)間就有了一個(gè)上下限。文件的用戶保存有當(dāng)時(shí)時(shí)間戳的記錄,以此來比較所收到的所有交易數(shù)據(jù)從而阻止一個(gè)重放攻擊。
由于單個(gè)服務(wù)器不能影響某種特殊類型的交易文件的可用性,因此要把訪問控制擴(kuò)展到全球區(qū)塊鏈環(huán)境的只讀數(shù)據(jù),文件創(chuàng)建者把創(chuàng)建的數(shù)據(jù)要復(fù)制到多個(gè)運(yùn)行有安全文件存儲(chǔ)守護(hù)進(jìn)程的服務(wù)器上,而將這樣一份特殊的只讀數(shù)據(jù)拷貝到多個(gè)服務(wù)器上,文件的可用性得以延展。
該只讀安全文件存儲(chǔ)系統(tǒng)涉及的密碼運(yùn)算實(shí)在沒有網(wǎng)絡(luò)環(huán)境的客戶端及其上完成的,數(shù)據(jù)也是在無網(wǎng)安全環(huán)境下創(chuàng)建的,解密是在收到加密文件后的本地客戶機(jī)上完成的。將一份文件加上時(shí)間戳后,在該存儲(chǔ)系統(tǒng)存儲(chǔ)的時(shí)間比普通文件存儲(chǔ)系統(tǒng)存儲(chǔ)的時(shí)間減少了約40%。
雖然本發(fā)明已經(jīng)參考特定的說明性實(shí)施例進(jìn)行了描述,但是不會(huì)受到這些實(shí)施例的限定而僅僅受到附加權(quán)利要求的限定。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解可以在不偏離本發(fā)明的保護(hù)范圍和精神的情況下對(duì)本發(fā)明的實(shí)施例能夠進(jìn)行改動(dòng)和修改。