劉麗華
(內(nèi)蒙古財(cái)經(jīng)大學(xué) 檔案館,內(nèi)蒙古 呼和浩特 010070)
隨著檔案的電子化程度不斷提高,電子檔案管理系統(tǒng)得到了廣泛的應(yīng)用。電子檔案管理系統(tǒng)以數(shù)據(jù)庫技術(shù)為核心,主要存儲包括電子文檔、圖片、音頻等用戶數(shù)據(jù)信息和用戶名、口令、用戶所在的系統(tǒng)中的操作等管理數(shù)據(jù)?;谝陨闲枨竽壳暗碾娮訖n案系統(tǒng)主要采用分布式文件系統(tǒng)進(jìn)行數(shù)據(jù)存儲,這樣的結(jié)構(gòu)存儲和寫輸入的速度比較快,但也面臨著數(shù)據(jù)被篡改的風(fēng)險(xiǎn)[1]。所以保證電子檔案系統(tǒng)中的用戶數(shù)據(jù)信息和管理數(shù)據(jù)不能被篡改,成為當(dāng)前電子文檔管理系統(tǒng)發(fā)展中面臨的關(guān)鍵問題[2,3]。
區(qū)塊鏈技術(shù)利用P2P技術(shù)、pow共識機(jī)制等實(shí)現(xiàn)用戶間的信任,通過智能合約來約束用戶的行為。采用區(qū)塊鏈技術(shù)實(shí)現(xiàn)數(shù)據(jù)必須按照時(shí)間順序前后加入鏈?zhǔn)浇Y(jié)構(gòu),用來確保數(shù)據(jù)的安全,目前這種結(jié)構(gòu)已經(jīng)廣泛應(yīng)用于電子交易、車聯(lián)網(wǎng)、移動邊緣計(jì)算等領(lǐng)域,解決了數(shù)據(jù)的不可否認(rèn)性問題[4]。所以將電子檔案管理與區(qū)塊鏈技術(shù)相結(jié)合,可以有效地保證數(shù)據(jù)的安全性,同時(shí)解決目前電子檔案管理系統(tǒng)中存在事務(wù)不一致、缺乏防篡改機(jī)制等問題,為提高電子檔案管理系統(tǒng)的安全性提供了完整的解決方案[5-7]。
本文以區(qū)塊鏈技術(shù)為基礎(chǔ),結(jié)合目前在電子檔案管理系統(tǒng)中廣泛采用的存儲結(jié)構(gòu),提出了一種基于區(qū)塊鏈的電子檔案管理系統(tǒng)設(shè)計(jì)方案。系統(tǒng)主要包含以下三方面功能,首先,異構(gòu)檔案數(shù)據(jù)安全存儲;其次,基于角色分級訪問控制模型;再次,基于角色訪問控制流程。
數(shù)據(jù)庫使用中,在數(shù)據(jù)庫內(nèi)進(jìn)行的各種操作會被記錄,進(jìn)而存儲到事務(wù)日志中。事務(wù)日志是確保數(shù)據(jù)庫安全的重要手段。如果發(fā)生故障,可以通過事務(wù)日志實(shí)現(xiàn)重要數(shù)據(jù)的恢復(fù)。目前主要采用主從復(fù)制的方法實(shí)現(xiàn)事務(wù)日志數(shù)據(jù)的備份和恢復(fù)。目前電子檔案管理系統(tǒng)中,只對數(shù)據(jù)庫內(nèi)容進(jìn)行備份,沒有對其他相關(guān)檔案文件進(jìn)行備份,另外這種主從復(fù)制的管理方式對核心數(shù)據(jù)庫的性能要求較高,容易產(chǎn)生單點(diǎn)故障,而且一旦核心數(shù)據(jù)庫被惡意篡改,其影響就可能隨著數(shù)據(jù)的傳輸而不斷擴(kuò)大?;谝陨蠁栴},我們采用區(qū)塊鏈和分布式存儲技術(shù),建立根據(jù)檔案中數(shù)據(jù)的尺寸來進(jìn)行數(shù)據(jù)粒度感知的安全存儲模型,其工作過程如下:
首先,選中目標(biāo)數(shù)據(jù)對新增加的內(nèi)容進(jìn)行檢查監(jiān)聽,記錄相關(guān)日志信息,分析事務(wù)并將分析結(jié)果轉(zhuǎn)換為對應(yīng)的電子檔案。然后對檔案中的日志數(shù)據(jù)進(jìn)行加密,加密后的日志等內(nèi)容加入?yún)^(qū)塊鏈中。再次,利用分布式方法存儲電子版檔案文件,根據(jù)文件占用存儲空間的大小,將文件劃分為大粒度文件和小粒度文件,把大粒度文件分布式存儲在IPFS網(wǎng)絡(luò)中,把小粒度文件存儲在聯(lián)盟鏈上。
本系統(tǒng)要保證檔案業(yè)務(wù)不受影響,并且可以方便調(diào)取事務(wù)日志文件并進(jìn)行分析,我們提出的基于區(qū)塊鏈的主從服務(wù)器模型,其工作方式如圖1所示,主要有以下幾個(gè)部分組成:
圖1 基于區(qū)塊鏈的主從復(fù)制工作流程
由上圖可知,首先系統(tǒng)更新事務(wù)操作,已經(jīng)發(fā)生的操作將會被存儲到日志文件中。然后,建立區(qū)塊鏈中間件和檔案數(shù)據(jù)庫的連接,將主庫事務(wù)上傳到區(qū)塊鏈中間件上。在區(qū)塊鏈中間件上對提取的操作日志進(jìn)行加密,加密后的操作日志加入私有區(qū)塊鏈網(wǎng)絡(luò)。對解析日志的文件的存儲路徑進(jìn)行抽取,獲取相應(yīng)的文件,并將此電子文件放在IPFS網(wǎng)絡(luò)上存儲。最后,在區(qū)塊鏈上存儲的日志內(nèi)容被復(fù)制用來形成相應(yīng)的日志,并放入數(shù)據(jù)庫同步。上述工作方式,能夠保證數(shù)據(jù)的安全轉(zhuǎn)移,數(shù)據(jù)庫也可以通過區(qū)塊鏈來獲得完整的操作日志,實(shí)現(xiàn)數(shù)據(jù)同步。
本模型將電子文件放在鏈上和鏈下分類存儲,保障電子檔案文件的完整性和可用性。根據(jù)粒度大小來確定文件的儲存方式,將文件分為大粒度文件和小粒度文件,大粒度文件存入IPFS中,當(dāng)有需要時(shí)可以調(diào)出使用,小粒度文件經(jīng)過編碼后放到區(qū)塊鏈上存儲,這種方式可以有效地提升存儲的效率?;谖募6鹊陌踩鎯δP腿鐖D2所示。
圖2 基于文件粒度感知的安全存儲模型
由于區(qū)塊鏈吞吐量和存儲問題,大量數(shù)據(jù)直接存儲在區(qū)塊鏈上會影響區(qū)塊鏈的吞吐量,所以此方案中區(qū)塊鏈上只保存小粒度文件和大粒度文件的哈希值,大粒度文件的內(nèi)容存儲在鏈下的數(shù)據(jù)庫中。用戶將鏈上哈希值與本地?cái)?shù)據(jù)的哈希值進(jìn)行判斷,通過比較是否一致來判斷本地?cái)?shù)據(jù)的真實(shí)性。基于文件粒度的安全存儲模型,能夠有效減緩區(qū)塊鏈上賬本數(shù)據(jù)增長的速度。IPFS使用了去中心化的方式,通過分片的方法把文件由統(tǒng)一的存儲變成了多個(gè)文件的片段,然后將這些文件分布存儲到網(wǎng)絡(luò)中的各不同的節(jié)點(diǎn)中,當(dāng)這些文件需要被使用或者下載時(shí),IPFS會在各個(gè)節(jié)點(diǎn)上恢復(fù)文件,從而提升大粒度文件的存取效率。
基于角色的訪問控制模型(RBAC)通過對用戶身份與用戶的任務(wù)進(jìn)行評價(jià)審核,根據(jù)相應(yīng)的角色授權(quán),利用智能合約來記錄RBAC模塊,實(shí)現(xiàn)對不同用戶的訪問權(quán)限控制,并保障RBAC的數(shù)據(jù)安全性。
目前國內(nèi)采用的密級劃分標(biāo)準(zhǔn)是國家技術(shù)監(jiān)督局提出的標(biāo)準(zhǔn),分為六個(gè)層次:公開、國內(nèi)、內(nèi)部、秘密、機(jī)密、絕密;檔案文件的保密等級分為:公開、秘密、機(jī)密。不同的檔案文件具有不同的密級,可以根據(jù)保密等級將角色劃分為三種等級:公開權(quán)限用戶、秘密權(quán)限用戶和機(jī)密權(quán)限用戶。表1定義了系統(tǒng)中的常用符號。
表1 主要符號及其含義
在表1中,將擁有文件的用戶定義為OW,想要對文件進(jìn)行訪問的用戶為AC;文件的密級可以定義為SeiSei,角色分配情況RoleiRolei,能夠訪問文件的權(quán)限AuiAui,PBY、SBY,分別對應(yīng)每個(gè)用戶所使用的公私鑰對,區(qū)塊鏈中使用的訪問控制合約定義為DMSC,UAT和DPT,為合約內(nèi)部的每個(gè)用戶的權(quán)限收錄表和動態(tài)的權(quán)限收錄表,Madr是目前的要訪問的用戶對應(yīng)的地址。
本模型基于以太坊提供的智能合約,結(jié)合RBAC的角色劃分,將模型劃分為智能合約的內(nèi)部和智能合約的外部兩個(gè)部分。合約具有訪問控制功能和文件處理函數(shù),其中文件合集和授予權(quán)限合集,能夠完成對合約內(nèi)部文件的訪問控制并獲取相應(yīng)的文件。智能合約外部的主要功能是管理和歸納相應(yīng)的文件名稱、合約地址、編號等基本信息。角色的訪問權(quán)限分為永久權(quán)限和臨時(shí)權(quán)限,由智能合約中的UA和UATmap是權(quán)限的集合。整個(gè)智能合約訪問控制機(jī)制的執(zhí)行過程如圖3所示。
圖3 智能合約訪問控制框架及流程
如上圖所示,訪問控制工作流分為以下5個(gè)步驟:
文件擁有者OW通過合約管理模塊來部署合約內(nèi)類的接口函數(shù),在得到反饋結(jié)果后將其傳送給文件擁有者OW。
當(dāng)有需要訪問的文件時(shí),訪問者AC向文件擁有者OW發(fā)送請求授權(quán)請求,OW通過智能合約調(diào)用內(nèi)部權(quán)限管理函數(shù),之后系統(tǒng)會對訪問者進(jìn)行角色(Rolei)和權(quán)限(Aui)的劃分,根據(jù)劃分結(jié)果寫入記錄集中,然后AC的相關(guān)信息會被寫入?yún)^(qū)塊鏈中。經(jīng)過此步驟AC可以通過鏈外模塊方便的獲取編號(fileid),保密級別(Sei)和智能合約地址等相關(guān)信息,并可以通過合約地址去訪問接口函數(shù)。
如果系統(tǒng)內(nèi)的智能合約需要獲取內(nèi)部權(quán)限,需要通過賬戶地址Madr來查看UAT和DPT中儲存的記錄信息。在獲取到記錄結(jié)果后,與當(dāng)前權(quán)限集合進(jìn)行比對。如果相同,則可以獲取到用戶的角色信息和相應(yīng)的權(quán)限;如果存在Aui>Sei的情況,則執(zhí)行第4條的過程,如果不存在Aui>Sei的情況,執(zhí)行第5步。如果比對的結(jié)果不相同,則證明集合中未查詢到相應(yīng)記錄,則執(zhí)行第5步。
如果訪問者需要訪問系統(tǒng)中的文件,則需要查詢文件的密級Sei,根據(jù)密級對文件進(jìn)行訪問,訪問者通過文件id鏈接到文件的相關(guān)信息 (Fileinfo),如果找不到id對應(yīng)的文件,則返回NULL,證明id錯(cuò)誤或者是密級錯(cuò)誤。
AC獲取到相應(yīng)結(jié)果,根據(jù)相應(yīng)信息將文件按照大小分類,文件較大可以使用IPFS的方法,文件較小的直接通過區(qū)塊鏈上的內(nèi)容獲取文件。
上述模型利用了智能合約機(jī)制,所有發(fā)布的合約一旦加入?yún)^(qū)塊鏈將不可更改,這樣可以保證訪問控制方法的可靠性和安全性,能夠在不獲取賬戶私鑰的狀態(tài)下實(shí)現(xiàn)面向不同角色的不同權(quán)限的訪問控制,通過上述機(jī)制實(shí)現(xiàn)對電子檔案系統(tǒng)中數(shù)據(jù)的有效保護(hù)。
基于區(qū)塊鏈技術(shù)的電子檔案管理系統(tǒng)首先對系統(tǒng)內(nèi)的數(shù)據(jù)進(jìn)行分類,然后將檔案事務(wù)日志加密上傳到區(qū)塊鏈中,保證了數(shù)據(jù)的不可篡改。采用基于粒度的安全存儲模型,將粒度較大的文件和粒度較小的文件分開存儲,IPFS存儲大粒度文件,區(qū)塊鏈節(jié)點(diǎn)直接存儲小粒度文件,實(shí)現(xiàn)文件的高效存儲,本模型的提出為區(qū)塊鏈技術(shù)在電子檔案領(lǐng)域中的應(yīng)用提供了新的解決方案。