張 昕
(廣西交通設計集團有限公司,廣西 南寧 530029)
高速公路建設項目是公路工程建設領域投資較大的交通基礎設施項目之一,其建設過程中形成的檔案種類多,數量巨大,是日后參考管理的重要基礎和依據[1]。高速公路建設項目的檔案文件來源于各類項目建設信息系統(tǒng),如建設項目管理系統(tǒng)、安全生產管理系統(tǒng)、計量支付系統(tǒng)、質檢系統(tǒng)等(以下統(tǒng)稱業(yè)務系統(tǒng))。國家檔案局辦公室于2017-09-01下發(fā)的《企業(yè)數字檔案館(室)建設指南》指出,各類支撐主營業(yè)務的信息系統(tǒng)均應具有歸檔功能,導出的歸檔電子文件存儲格式、元數據等均應符合電子文件歸檔和電子檔案管理的有關要求[2],這從國家層面?zhèn)鬟f了推進電子文件單套歸檔、單軌運行的信號。
由于業(yè)務系統(tǒng)的建設往往良莠不齊,缺乏安全可靠的文件歸檔接口,且在歸檔過程中文件易被篡改,導致檔案系統(tǒng)難以驗證電子文件的數字簽名,進而無法信任由業(yè)務系統(tǒng)發(fā)送的電子文件。目前,高速公路建設項目過程中將計量支付、質檢報告等電子文件打印后再簽字蓋章的“雙套制”管理仍然普遍存在。因此,運用現代技術手段,解決電子文件歸檔過程中的信任問題十分有必要。
區(qū)塊鏈技術是一種多技術結合的數據庫技術方法,實現了一種去中心化、無須信任的分布式數據賬本,具有防篡改、可追溯、高可靠性等特點,與電子檔案“真實、完整、可用、安全”的四性要求高度契合,可為電子檔案的信息安全提供有力支撐。因此,在高速公路建設項目電子文件歸檔過程中應用區(qū)塊鏈技術,必定是未來電子檔案管理的發(fā)展方向。
雖然區(qū)塊鏈技術出現的時間還不算長,但國內外學者們對其在電子文件領域的研究已有了一定的進展:Cruz等[3]使用區(qū)塊鏈技術解決了不同角色訪問控制的信任和認可問題,并在以太坊智能合約平臺上完成了設計實現;石進等[4]提出了基于區(qū)塊鏈技術的電子文件真實性保障系統(tǒng)概念模型,從理論層面論證了應用區(qū)塊鏈技術進行電子文件真實性保護的可行性;譚海波等[5]基于智能合約、IPFS、數字簽名和混合加密等技術設計了一種基于區(qū)塊鏈的檔案數據保護與共享方法,研發(fā)了檔案數據保護與共享系統(tǒng),解決了歸檔過程中的身份認證和檔案所有權確定問題;王平等[6]借鑒OAIS模型,提出“信息區(qū)塊”概念及基于區(qū)塊鏈技術的電子文件可信保護框架,同樣從理論層面對可信電子文件信息區(qū)塊封裝、存儲和提取的三個關鍵技術點進行了分析。
通過以上學者的研究成果不難發(fā)現,應用區(qū)塊鏈技術實現電子文件可信歸檔是可行的。但由于其技術剛剛起步,目前以理論研究居多,針對高速公路建設項目可落地的實施方案較少,因此對其具體實現過程進行研究非常有必要。
區(qū)塊鏈技術構建了一種去中心化的對等可信數據網絡,從根本上解決了中心化機構普遍存在的高成本、低效率和數據存儲不安全等問題,適用于多業(yè)務主體、彼此不信任、業(yè)務強相關的應用場景。如下頁圖1所示,依托區(qū)塊鏈去中心化、點對點通信、智能合約等特性,可以構建高速公路建設項目電子文件可信歸檔生態(tài)圈。各業(yè)務系統(tǒng)及其成員用戶均可作為生態(tài)圈的節(jié)點,實現電子文件在業(yè)務系統(tǒng)與檔案系統(tǒng)之間的可信流轉。
首先構建用戶身份區(qū)塊鏈和認證區(qū)塊鏈,利用其“免信任”特性,給高速公路建設項目涉及的所有系統(tǒng)用戶頒發(fā)智能“身份證”,實現所有系統(tǒng)節(jié)點都可以自由、安全地記錄數據、交換數據、更新數據,而不用擔心用戶身份造假。利用區(qū)塊鏈的非對稱加密特性,建立業(yè)務系統(tǒng)向檔案系統(tǒng)傳送電子文件的安全數據通道,通過對電子文件數字簽名進行校驗,保證其在傳輸過程中不被篡改。利用區(qū)塊鏈開放性的特點,高速公路建設項目各系統(tǒng)節(jié)點均可以獲得一份完整的數據庫拷貝,節(jié)點間基于共識機制共同維護整個區(qū)塊鏈,任何節(jié)點失效,其余節(jié)點仍能正常工作,這樣大大提高了數據的安全性,避免了因單點故障導致項目電子檔案丟失。利用區(qū)塊鏈的封裝機制,可以將元數據信息與電子文件進行封裝,實現對電子文件全生命周期的監(jiān)控管理。
圖1 高速公路建設項目可信歸檔生態(tài)圈構建示意圖
通常的用戶身份認證是將用戶密碼通過Hash算法或MD5算法加密后存儲于數據庫中,在用戶登錄時對用戶輸入的明文密碼進行同樣算法的加密,將結果與數據庫中的記錄比對,從而驗證用戶身份。這是一種典型的中心化身份托管機制,在實際應用中由于不同的業(yè)務系統(tǒng)都需要維護一套用戶身份數據,存在信息孤島,導致同一個用戶在登錄不同系統(tǒng)時都需要進行身份認證。另外,由于是中心化的管理,加大了對認證服務器的依賴,服務器一旦出現故障會導致用戶無法登錄,或是用戶數據丟失,存在數據泄露的風險。
如圖2所示,為解決中心化存儲帶來的問題,可將全部業(yè)務系統(tǒng)的用戶身份信息存儲在身份區(qū)塊鏈BC_USER之上,從而構建系統(tǒng)用戶身份池。在為系統(tǒng)用戶分配了公鑰和私鑰(Pk,Sk)之后,將其用戶身份UI、公鑰Pk、身份索引IDX、系統(tǒng)標識SI等內容打包存入區(qū)塊鏈BC_USER的“交易數據”之中。該鏈為全部系統(tǒng)用戶頒發(fā)了“身份證”,對全網用戶公開,任意系統(tǒng)節(jié)點均可訪問該鏈獲取用戶的基礎身份信息。系統(tǒng)用戶信息一旦上鏈將永久保存,要篡改其內容必須獲得超過全網51%的節(jié)點驗證,難度極大。系統(tǒng)用戶身份池代替了傳統(tǒng)的認證模式,不再受某個中心化服務器的管控,其智能合約機制保證了各個系統(tǒng)節(jié)點既是“參與者”也是“管理者”,共同維護著系統(tǒng)的安全,是高速公路建設項目各業(yè)務系統(tǒng)互相訪問,以及電子文件可信歸檔的基礎。
圖2 用戶信息區(qū)塊鏈構建結構圖
在構建用戶身份池的基礎上,下一步要解決業(yè)務系統(tǒng)向檔案系統(tǒng)歸檔電子文件時的身份認證問題,并開辟安全可靠的數據傳輸通道。如圖3所示,這一步驟需要運用到加密技術:
圖3 業(yè)務系統(tǒng)身份認證步驟示意圖
(1)業(yè)務系統(tǒng)訪問區(qū)塊鏈BC_USER,獲取隨機數R。
(2)業(yè)務系統(tǒng)使用私鑰Sk對隨機數R進行加密,得到認證token。
(3)業(yè)務系統(tǒng)將本系統(tǒng)標識SI、目標檔案系統(tǒng)標識TI、用戶身份UI、用戶身份索引IDX、認證token發(fā)送至區(qū)塊鏈BC_USER進行登錄認證。
(4)BC_USER根據用戶身份索引IDX找到用戶信息及其公鑰Pk,并使用公鑰Pk對token進行解密,如果解密結果與之前生成的隨機數相同,則證明用戶認證成功,并會將以上內容打包存入認證區(qū)塊鏈BC_AUTH中。
(5)業(yè)務系統(tǒng)向檔案系統(tǒng)發(fā)出訪問請求,并傳遞其用戶身份UI及其身份索引IDX。
(6)檔案系統(tǒng)通過IDX在區(qū)塊鏈BC_AUTH中查找用戶認證信息,并使用該用戶的公鑰Pk對其token進行驗證,驗證通過后返回對稱密鑰K到業(yè)務系統(tǒng)。至此,業(yè)務系統(tǒng)與檔案系統(tǒng)的用戶身份認證以及加密傳輸通道建立完成。
如圖4所示,區(qū)塊鏈BC_AUTH的每一個區(qū)塊以Merkle樹的形式存儲了系統(tǒng)間的訪問認證記錄(交易記錄)。在其葉子節(jié)點記錄了每次系統(tǒng)認證的“交易數據”,包含源業(yè)務系統(tǒng)標識SI、目標檔案系統(tǒng)標識TI、用戶身份UI、認證token以及其有效時間。每兩筆“交易”串聯(lián)進行哈希計算得到父節(jié)點的哈希值,依次向上遞推。在Merkle樹的根節(jié)點保存著一段時間內所有“交易”的交易指紋,存儲于區(qū)塊頭部。由此可見,任何一筆“交易”被篡改,均將改變其上層節(jié)點的存儲值,并會將影響反饋至區(qū)塊頭的交易指紋之中,最終影響整個區(qū)塊鏈網絡,因此這種數據篡改是幾乎不可能發(fā)生的。在建立了安全數據通道之后,業(yè)務系統(tǒng)可以憑token向檔案系統(tǒng)發(fā)起歸檔請求,token以及安全通道的對稱加密密鑰在一段時間之后就會失效,而且token和對稱密鑰又通過了源業(yè)務系統(tǒng)的公鑰Pk加密,只有業(yè)務系統(tǒng)通過自己的私鑰Sk才能解密。因此,即便是token和密鑰被盜取,也不會發(fā)生數據泄露。
圖4 身份認證區(qū)塊設計示意圖
在完成了歸檔前的身份認證之后,業(yè)務系統(tǒng)與檔案系統(tǒng)通過對稱密鑰K來完成可靠的數據傳輸。如圖5所示,以一次歸檔過程為例:
圖5 電子文件歸檔過程示意圖
(1)業(yè)務系統(tǒng)通過SHA算法生成待歸檔電子文件F的消息摘要H1(F)。
(2)業(yè)務系統(tǒng)使用私鑰Sk對H1(F)進行數字簽名,得到簽名結果為S。
(3)業(yè)務系統(tǒng)使用對稱密鑰K對數字簽名S、文件信息包打包進行加密,生成密文數據包,其中文件數據包中包含文件在文件服務器中的存儲路徑,但不包含具體文件內容。
(4)業(yè)務系統(tǒng)將數據包發(fā)送到檔案系統(tǒng),檔案系統(tǒng)通過對稱密鑰對密文數據包進行解密,得到數字簽名S,以及文件數據包,并通過文件路徑從文件服務器獲取電子文件。
(5)通過SHA算法得到目標電子文件F的摘要H2(F)。
(6)使用用戶公鑰Pk以及摘要H2(F)對S進行驗簽,如果驗簽通過,則證明該文件是業(yè)務系統(tǒng)發(fā)送的,并將歸檔記錄打包存入歸檔區(qū)塊鏈BC_ARCHIVES。
在電子文件歸檔過程中,文件本身并沒有進行實際的傳輸,也沒有存儲在區(qū)塊鏈網絡之中。歸檔過程并不是傳統(tǒng)的將一個文件從一個系統(tǒng)發(fā)送至另一個系統(tǒng),而是在文件中心的支撐下,將電子文件的元數據、數字簽名、保存位置以及其摘要信息等保存于區(qū)塊鏈BC_ARCHIVES之中。由于區(qū)塊鏈具有開放性,檔案系統(tǒng)可以無障礙地訪問到這些文件,與存儲在檔案系統(tǒng)自身的服務器沒有差別,大大節(jié)省了網絡帶寬。在整個歸檔過程中,均使用對稱密鑰進行加密,避免了明文傳輸,檔案系統(tǒng)在得到文件后會再次校驗其數字簽名,實現 “雙保險”。
本文針對高速公路建設項目電子文件歸檔過程因缺乏有效安全保障而導致的不可信問題,通過應用區(qū)塊鏈技術構建了電子文件可信歸檔生態(tài)圈,確保電子文件能夠在一個安全、可靠的環(huán)境中進行共享交換。通過構建用戶身份池,實現了業(yè)務系統(tǒng)與檔案系統(tǒng)在歸檔業(yè)務中的“實名認證”,并通過數字簽名以及加密的數據傳輸通道,確保電子文件在歸檔過程中的真實有效,不被篡改。本文所述方案可以滿足高速公路建設項目各業(yè)務系統(tǒng)可信歸檔需求,能夠提高高速公路建設項目檔案信息化管理水平,具有良好的推廣價值。