◆王靖翔
(陜西省網絡與信息安全測評中心 陜西 710065)
數(shù)據安全是網絡安全的重要條件。2010 年,伊朗核設施遭遇“震網”病毒攻擊,攻擊者利用郵件入侵伊朗核設施工作人員的電腦,將震網病毒寫入工作人員的U 盤,通過U 盤進入到伊朗核設施系統(tǒng),對伊朗核設施系統(tǒng)參數(shù)進行修改。分析案例我們可以得出兩個結論:
(1)網絡攻擊的全面性。
網絡攻擊遵循木桶效應,不需要攻破系統(tǒng)的全部安全防護,只需針對系統(tǒng)弱點,攻擊成功即可。隨著網絡安全的發(fā)展,當前的信息系統(tǒng)部署了大量的安全設備,但針對內網發(fā)起的攻擊仍是網絡安全防護的薄弱之處。針對內網攻擊,安全廠商開發(fā)了入侵防御等安全設備,但由于數(shù)據流量的復雜性,在實際的應用場景中,該類設備很難完全發(fā)揮作用。所以內網攻擊難以防御的特點經常會被攻擊者利用。美國對伊朗核設施的網絡攻擊正是利用內網攻擊難以防御的特點。
(2)數(shù)據安全的重要性。
美國針對伊朗核設施發(fā)起的網絡攻擊,攻擊者向核設施工程師的U 盤上傳病毒,利用該工程師可以進入核設施系統(tǒng)的權限,當該工程師將U 盤插入核設施系統(tǒng)時,病毒侵入系統(tǒng),對系統(tǒng)的參數(shù)進行修改,達到攻擊目的。分析該案例,攻擊者通過上傳病毒,修改信息系統(tǒng)參數(shù)實現(xiàn)攻擊。此處,攻擊者修改了U 盤的數(shù)據和核設施系統(tǒng)的數(shù)據,假設修改數(shù)據時被發(fā)現(xiàn),則該攻擊就可以被察覺。由此可見數(shù)據完整性的重要性。
針對上述網絡攻擊的分析,可以看出數(shù)據安全是網絡安全的必要條件,未能保證信息系統(tǒng)數(shù)據的完整性是伊朗核設施遭受網絡攻擊的根本原因。今天針對信息系統(tǒng)數(shù)據完整性的保護,我們主要通過哈希算法實現(xiàn),該算法基于碰撞問題,實現(xiàn)對數(shù)據加密的單向性和唯一性。具體應用過程如下:
對需要保存的數(shù)據進行哈希運算,得到一串固定數(shù)值為a 的散列值,將散列值a 保存到系統(tǒng)。當下次查看數(shù)據,需要檢測數(shù)據的完整性時,對該數(shù)據再次進行哈希,得到數(shù)值為b 的散列值,將a 與b對比,如果相同,則數(shù)據未被篡改,可以保證其完整性。
這種保證數(shù)據完整性的方法,經常應用到我們日常使用的信息系統(tǒng)中,用來保證存儲數(shù)據的完整性。但該方法存在一個問題,如果我們對存儲的數(shù)據進行修改后,重新計算其散列值,并對系統(tǒng)中保存的散列值進行替換,則該攻擊就無法被察覺。
基于此弱點,本文將引入區(qū)塊鏈,利用區(qū)塊鏈不可篡改的特點,結合哈希函數(shù),實現(xiàn)對數(shù)據存儲完整性的保障。
當輸入任意長度的數(shù)值時,都可以輸出一個長度固定的值。具體特征如下:
(1)輸入的值x為任意長度的字符串。
(2)對于不同的輸入數(shù)值,輸出的結果H(x)長度固定。
(3)防碰撞性:當x≠y時,沒有H(x)=H(y) 。
(4)滿足單向性:僅可以有輸入值x得到唯一的輸出值H(x),而知道輸出值H(x)的情況下不能夠推出輸入值x。目前主流的 hash算法有:md4、md5、sha 系列。
區(qū)塊鏈,是一個新提出的解決去中心化問題的方案,該方案有大家共同維護同一個數(shù)據庫。區(qū)塊鏈為共享數(shù)據庫,其主要工作原理,是利用共享數(shù)據庫,且對該數(shù)據庫的修改刪除作出嚴格限定。利用這樣的機制實現(xiàn)去中心化,且由于其可追溯性和身份認證實現(xiàn)其安全可靠的性質。具體實施過程如下:根據協(xié)議和內容信息,將數(shù)據信息進行封裝,形成一個區(qū)塊,對于封裝好的信息不可隨意修改。然后進行下一步操作,第一個區(qū)塊為默認合法區(qū)塊,無需進行驗證,對于后面的區(qū)塊需要進行身份驗證,如果驗證成功,則該區(qū)塊可以加入區(qū)塊鏈。按此步驟形成區(qū)塊鏈,區(qū)塊鏈上的內容每個群組成成員可以備份。區(qū)塊鏈上的內容可以在合法用戶之間進行信息交換。由上述描述可知,區(qū)塊之間的身份認證由區(qū)塊鏈末端的區(qū)塊進行認證,所以無需中心節(jié)點。這樣做的好處是:一,可以提高身份認證的效率。二,由各個節(jié)點進行身份認證,去除中心節(jié)點可以避免中心節(jié)點被攻破帶來的巨大危險。
當下數(shù)據存儲的完整性保護,主要依靠哈希函數(shù)的單向性,即:對需要保證完整性的數(shù)據進行哈希運算,對數(shù)據進行哈希后會生成唯一值a;需要驗證該數(shù)據的完整性時,對該數(shù)據再次進行哈希運算,將運算結果b 與之前保存的哈希值a 進行對比,如相同,則認為數(shù)據未被修改或者刪除。但當下的數(shù)據完整性保護方式存在顯著缺點:假設攻擊者對被攻擊系統(tǒng)的數(shù)據進行篡改,并對篡改數(shù)據進行哈希運算,將新得出的哈希值替換被篡改數(shù)據的哈希值,則該攻擊無法被發(fā)現(xiàn)。
根據當下數(shù)據完整性保護方式的弱點,本文結合區(qū)塊鏈技術不可篡改的特點對當下數(shù)據完整性保護技術進行改進。
根據數(shù)據完整性保護的安全等級,并結合實際應用過程中對數(shù)據存儲效率的要求,本文只結合區(qū)塊鏈技術中保障數(shù)據不易被篡改的技術特點,對當下數(shù)據完整性保護技術進行改進。
技術概要:建立一個區(qū)塊鏈,每次存儲數(shù)據時將需要存儲的數(shù)據保存到新的區(qū)塊中,并計算上一區(qū)塊的哈希值,將哈希值保存到當前區(qū)塊的區(qū)塊頭。則區(qū)塊鏈上的每個區(qū)塊均含有當前區(qū)塊之外所有區(qū)塊的特征,如果對區(qū)塊中存儲的數(shù)據進行修改,則需要對當前區(qū)塊之外的所有區(qū)塊數(shù)據進行修改。
(1)建立首區(qū)塊,將要保存的數(shù)據存入區(qū)塊。
(2)建立新的區(qū)塊,將數(shù)據存儲到區(qū)塊中,計算當前區(qū)塊前一個區(qū)塊的哈希值,存儲到區(qū)塊頭。
(3)對區(qū)塊鏈上的最后一個區(qū)塊進行哈希值,存入首區(qū)塊的區(qū)塊頭。
數(shù)據完整性保護在網絡安全中具有重要意義。本文針對信息系統(tǒng)中,當攻擊者同時篡改數(shù)據和哈希值避免攻擊被發(fā)現(xiàn)的情況,引入區(qū)塊鏈技術——區(qū)塊鏈上的每個區(qū)塊均含有其他所有區(qū)塊的特征,結合區(qū)塊鏈不易被篡改的特點,保證存儲在區(qū)塊中數(shù)據的完整性。