李勇
【摘 要】為解決電子文檔流轉(zhuǎn)安全性問題,實現(xiàn)文件的電子化簽署、存儲、查閱、查驗功能,簽署過程中利用原筆跡手寫技術(shù)、數(shù)字簽名技術(shù)、區(qū)塊鏈技術(shù)實現(xiàn)文件不可篡改性、強抵賴性及追溯性。為此,文章提出一種基于區(qū)塊鏈技術(shù)的電網(wǎng)內(nèi)部文件流轉(zhuǎn)電子簽名系統(tǒng),利用其去中心化的特點與電子簽名技術(shù)形成互補,用區(qū)塊鏈技術(shù)實時固化簽署過程中的電子憑證,真正實現(xiàn)電子簽名的可溯源、防抵賴和防篡改,降低信息泄露風險,提高電子簽名的適用性,同時依托區(qū)塊鏈安全特性實現(xiàn)對電子文檔流轉(zhuǎn)的安全管理。
【關(guān)鍵詞】區(qū)塊鏈技術(shù);電子簽名系統(tǒng);設(shè)計;實現(xiàn)
【中圖分類號】TP317.1 【文獻標識碼】A 【文章編號】1674-0688(2021)04-0035-04
0 引言
隨著全球信息技術(shù)的高速發(fā)展,許多部門的辦公模式正在發(fā)生轉(zhuǎn)變,由原來的紙質(zhì)文檔模式轉(zhuǎn)為無紙化辦公模式,即采用電子文檔的辦公模式。電子文檔是各行業(yè)信息的載體,對該行業(yè)的發(fā)展至關(guān)重要,如何確保電子文檔的安全性、真實性和有效性,是IT界研究的熱點問題。本文對一些重要行業(yè)電子文檔安全性研究的必要性進行分析,這些重要部門包括國企部門、金融行業(yè)、稅務(wù)部門、教育部門及一些企事業(yè)單位等。這些文檔的簽署與個人的責任利益息息相關(guān),傳統(tǒng)單純的數(shù)字證書簽名是中心化部署,并無法完全取得大部分人的信任。這導致人們在工作和生活中寧愿先通過文檔便簽,再打印手簽之后掃描文件進行管理存檔,因為存在打印紙質(zhì)文檔和手寫簽名再掃描上傳電腦的環(huán)節(jié),所以導致工作成本較高,而且工作效率較低,占用了人們大量寶貴的工作時間。文檔信息安全性主要包括真實性和可靠性兩個方面,文檔安全性是數(shù)據(jù)化辦公的重要保障。為了解決電子文檔安全性問題,本文在電子文檔中融入?yún)^(qū)塊鏈技術(shù),區(qū)塊鏈技術(shù)具有防止篡改性和去中心化的特點,對確保電子文檔的安全性和可靠性起到積極的作用。如何將區(qū)塊鏈技術(shù)與電子文檔深度融合,以及所采用的技術(shù)方法,是本文研究的內(nèi)容。
1 區(qū)塊鏈的相關(guān)概念
1.1 區(qū)塊
區(qū)塊是區(qū)塊鏈技術(shù)的存儲單元,區(qū)塊鏈是由一系列的區(qū)塊作為結(jié)點的鏈式結(jié)構(gòu),系統(tǒng)的數(shù)據(jù)信息主要存儲在區(qū)塊鏈的每個區(qū)塊中,區(qū)塊結(jié)構(gòu)一般由兩個部分組成,即區(qū)塊頭和區(qū)塊體,每個區(qū)塊結(jié)點的識別信息、版本信息及哈希值一般保存在區(qū)塊頭當中,哈希值主要是記錄前面的區(qū)塊結(jié)點地址信息,通過這一信息可以快速找到前面的結(jié)點,因此各個結(jié)點的地址信息都是通過哈希值形式進行存儲[3]。區(qū)塊體主要是存儲各種重要的數(shù)據(jù)信息,區(qū)塊體內(nèi)包含有許多類型的數(shù)據(jù)單元,即不同類型的數(shù)據(jù)分別存放于不同的單元中。在區(qū)塊鏈技術(shù)中,如果某個結(jié)點的數(shù)據(jù)信息要更改,則必須經(jīng)所有的結(jié)點一致認可方可修改,否則將無法進行信息更改。
1.2 共識機制
共識機制是區(qū)塊鏈技術(shù)的內(nèi)部協(xié)議機制,在區(qū)塊鏈的內(nèi)部結(jié)點中,如果要進行某項操作,所有的結(jié)點都必須遵循這個協(xié)議,該協(xié)議規(guī)定了各種事務(wù)的合法性與非法性。共識機制主要是通過共識算法實現(xiàn)這一內(nèi)部協(xié)議,目前共識的算法種類繁多、日新月異,最常用的算法主要包括工作量證明算法(POW)、拜占庭容錯算法(PBFT)、股權(quán)證明算法(POS)和改進的股權(quán)證明算法(DPOS)等。其中,工作量證明算法主要把結(jié)點的哈希值通過某一加密及解密的運算方式的共識機制;拜占庭容錯算法主要用于增加區(qū)塊鏈的新結(jié)點的共識[4];股權(quán)證明算法最初運用于比特幣的技術(shù)中,是一種較早的共識機制;改進的股權(quán)證明算法是在原有的股權(quán)證明算法的基礎(chǔ)上進行改進而成的共識算法,主要通過投票方式使大部節(jié)點通過后達成共識的一種方式,該方式可提高系統(tǒng)的效率。
1.3 智能合約
智能合約是基于區(qū)塊鏈技術(shù)交易的一種合約方式,智能合約主要通過合約程序?qū)崿F(xiàn),該程序主要把雙方的協(xié)商內(nèi)容進行數(shù)字化處理,寫入系統(tǒng)中,等得雙方的確認,如果交易雙方協(xié)商成功,則系統(tǒng)會自動把合約內(nèi)容按照合約算法在系統(tǒng)內(nèi)部發(fā)布,并且合約將自動生效,寫入后將無法對合約內(nèi)容進行修改,即提高系統(tǒng)的安全性[5]。在這種方式下,交易雙方無需會面即可完成這筆交易,使交易過程快速有效,而且交易不受外來的各種干擾。
1.4 分布式存儲
區(qū)塊鏈數(shù)據(jù)庫是一種分布式的數(shù)據(jù)庫,各個數(shù)據(jù)信息并不是存儲在某一固定的存儲介質(zhì)和某一固定的設(shè)備當中,而是在整個區(qū)塊鏈網(wǎng)絡(luò)的設(shè)備當中。數(shù)據(jù)存儲主要通過分布式算法進行,當要獲取某項數(shù)據(jù)信息時,也要通過分布式算法進行數(shù)據(jù)提取,這樣可以防止數(shù)據(jù)丟失和數(shù)據(jù)被篡改的問題發(fā)生,提高數(shù)據(jù)的安全性和有效性。
2 系統(tǒng)設(shè)計分析
2.1 系統(tǒng)需求分析
本系統(tǒng)主要實現(xiàn)以下功能。
(1)實現(xiàn)辦公文件電子化簽署功能,通過“上傳電子文檔—選擇簽署人—發(fā)起簽署—逐人簽署—簽署完成”進行文檔的電子化簽署,簽署過程中利用原筆跡手寫結(jié)合數(shù)字簽名的方式實現(xiàn)各部門日常簽署業(yè)務(wù)的無紙化辦理,最后形成文件的不可篡改性及強抵賴性。實現(xiàn)文件過程信息區(qū)塊鏈功能,利用區(qū)塊鏈技術(shù),建立簽署過程信息區(qū)塊鏈(4節(jié)點)私有鏈,將文件從發(fā)起到簽署完成,整個過程的所有信息(文件哈希、時間、用戶、操作、活動)經(jīng)過加密算法處理后存儲在分布式數(shù)據(jù)庫中。
(2)對于新增加的數(shù)據(jù)文檔,系統(tǒng)會增加一個新的區(qū)塊,其中把區(qū)塊的哈希值、操作過程等相關(guān)信息自動存在塊體中,區(qū)塊頭包含當前區(qū)塊的多項元信息:生成時間、實際數(shù)據(jù)(即區(qū)塊體)的哈希值、上一個區(qū)塊的哈希值等信息。每一個區(qū)塊都保存了上一個區(qū)塊的哈希值,使得每個區(qū)塊都能找到其前一個區(qū)塊,將這些區(qū)塊連接起來形成一個完整的文件操作鏈式結(jié)構(gòu),環(huán)環(huán)相扣,能夠通過最末塊進行歷史信息的回溯。此鏈式結(jié)構(gòu)具有準確性、唯一性且不可篡改,為文件真?zhèn)悟炞C及追溯提供有效的數(shù)據(jù)保證。
(3)實現(xiàn)辦公文件的數(shù)字形式存儲功能,已簽署的文件通過數(shù)字化方式進行存儲,能夠通過關(guān)鍵字、分類、全文檢索等方式便捷查詢及查看。
(4)實現(xiàn)文件版本更替功能,系統(tǒng)默認展示最新版文件,如遇變更(如作業(yè)指導書等),可直接在文件上發(fā)起新的版本簽署,簽署完成后,系統(tǒng)自動記錄版本信息,提供版本對比查看功能。
(5)實現(xiàn)文件查驗功能,對所上傳文件進行區(qū)塊鏈真?zhèn)魏蓑灱皵?shù)字簽名有效性核驗,通過真?zhèn)魏蓑灴刹樵冊撾娮游募欠駚碜噪姾炏到y(tǒng),如為真,則可追溯整個簽署過程信息;通過數(shù)字簽名有效性核驗可查詢該電子文件的簽署人、簽署時間、簽名應(yīng)用后該文件是否有修改等信息。
(6)實現(xiàn)移動應(yīng)用功能,利用移動App進行簽署文件的發(fā)起、手寫簽署、文檔的查詢檢索及文檔的查看。
2.2 系統(tǒng)主要關(guān)鍵流程
根據(jù)系統(tǒng)功能需要分析,主要實現(xiàn)文件的電子化簽署、存儲、查閱、查驗功能,簽署過程中利用原筆跡手寫技術(shù)、數(shù)字簽名技術(shù)、區(qū)塊鏈技術(shù)實現(xiàn)文件的不可篡改性、強抵賴性及追溯性;實現(xiàn)文件數(shù)字形式存儲,存儲過程中利用全文索引、分類存儲技術(shù)實現(xiàn)電子文件的便捷搜索、查閱。本文繪制出了系統(tǒng)的主要關(guān)鍵流程,電子文檔處理流程如圖1所示,電子文檔區(qū)塊鏈信息記錄流程如圖2所示。
2.3 系統(tǒng)架構(gòu)設(shè)計
系統(tǒng)使用J2EE快速開發(fā)框架進行開發(fā),該框架為多層架構(gòu)實現(xiàn),按照展示層、邏輯層、持久層、存儲層進行多層結(jié)構(gòu)體系設(shè)計,采取面向?qū)ο蠹夹g(shù)進行應(yīng)用組件開發(fā)、基于面向服務(wù)設(shè)計思想進行服務(wù)分層。架構(gòu)的每一層對上層公開API,但具體的實現(xiàn)細節(jié)不對外透明。在實際部署時,可根據(jù)需求擴展某個分層,當某一層的實現(xiàn)發(fā)生變化,在API不變的情況下,不影響其他層的實現(xiàn),系統(tǒng)架構(gòu)如圖3所示。
(1)存儲層。采用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫Mysql與非關(guān)系型數(shù)據(jù)庫MangoDB結(jié)合的方式進行數(shù)據(jù)的存儲。利用區(qū)塊鏈技術(shù),建立簽署過程信息區(qū)塊鏈(4節(jié)點)私有鏈,將文件從發(fā)起到簽署完成,整個過程的所有信息(文件哈希、時間、用戶、操作、活動)存入?yún)^(qū)塊鏈中。
(2)服務(wù)層。在J2EE體系結(jié)構(gòu)上進行開發(fā),集成文件處理、數(shù)字簽名、區(qū)塊鏈查詢、文件簽署流程。通過數(shù)據(jù)應(yīng)用接口、業(yè)務(wù)服務(wù)接口為上層應(yīng)用提供支持。
(3)接入層。移動應(yīng)用通過移動應(yīng)用平臺,利用運營商4G網(wǎng)絡(luò)接入系統(tǒng)。
(4)展現(xiàn)層。通過VUE基礎(chǔ)UI組件,提供統(tǒng)一的、高兼容性的可視化界面,利用MVC模式,通過JSP將服務(wù)端輸出的數(shù)據(jù)模型綁定到UI組件中,實現(xiàn)界面與業(yè)務(wù)邏輯隔離。
2.4 系統(tǒng)功能模塊設(shè)計
根據(jù)整個電子簽名系統(tǒng)的需求分析與總體架構(gòu)的設(shè)想,本文將系統(tǒng)的功能模塊主要分成文檔簽署中心模塊、區(qū)塊鏈模塊、文檔查驗?zāi)K、文檔庫模塊四大功能及移動App端。主要功能模塊如圖4所示。
2.4.1 簽署中心功能模塊
(1)發(fā)起簽署。通過模板或拖動上傳電子文檔(WORD)的方式發(fā)起簽署,發(fā)起簽署時可以添加簽署人、簽署方式(無序簽署、有序簽署)、設(shè)定簽署位置、填寫簽署備注、設(shè)置歸檔目錄等。發(fā)起簽署后系統(tǒng)將WORD文件轉(zhuǎn)為PDF,在轉(zhuǎn)換的同時讀取WORD文件內(nèi)容,通過智能處理生成全文索引信息、關(guān)鍵字信息、摘要總結(jié)信息,將該信息作為文檔數(shù)字化信息進行存儲。
(2)我的文檔。查看所有與我相關(guān)的文件,分類包括待我簽署、待他人簽署、已完成、已取消、草稿、我發(fā)起。可直接在線預(yù)覽相應(yīng)的PDF文件,并查看簽署狀態(tài)、進度及簽署過程信息追溯。
(3)文檔簽署。直接在系統(tǒng)上進行文檔簽署,支持手寫簽署和簽名加蓋的方式,在簽署過程中靈活使用拖動、調(diào)整大小的方式進行簽名調(diào)整,簽署完成后系統(tǒng)驗證用戶合法性后進行數(shù)字簽名加蓋,數(shù)字簽名加蓋后文檔不可修改。
2.4.2 文件簽署過程信息區(qū)塊鏈功能模塊
利用區(qū)塊鏈技術(shù),建立簽署過程信息區(qū)塊鏈(4節(jié)點)私有鏈,將文件從發(fā)起到簽署完成,整個過程的所有信息(文件哈希、時間、用戶、操作、活動)存入?yún)^(qū)塊鏈中。文件每操作一次即擁有一個新的哈希值,利用新哈希值形成一個區(qū)塊,每個區(qū)塊都包含區(qū)塊頭和區(qū)塊體,區(qū)塊體用于記錄文件操作過程(文件哈希、時間、用戶、操作、活動信息),區(qū)塊頭包含當前區(qū)塊的多項元信息:生成時間、實際數(shù)據(jù)(即區(qū)塊體)的哈希值、上一個區(qū)塊的哈希值等信息。每一個區(qū)塊都保存了上一個區(qū)塊的哈希值,使得每個區(qū)塊都能找到其前一個區(qū)塊,將這些區(qū)塊連接起來形成一個完整的文件操作鏈式結(jié)構(gòu),環(huán)環(huán)相扣,能夠通過最末塊進行歷史信息的回溯。此鏈式結(jié)構(gòu)具有準確性、唯一性且不可篡改,為文件真?zhèn)悟炞C及追溯提供有效的數(shù)據(jù)保證。
2.4.3 文檔查驗
(1)數(shù)字簽名查驗。對所上傳文件進行數(shù)字簽名有效性核驗,可查詢該電子文件的簽署人、簽署時間、簽名應(yīng)用后該文件是否有修改等信息。
(2)區(qū)塊鏈真?zhèn)魏蓑?。對所上傳文件進行區(qū)塊鏈真?zhèn)魏蓑?,利用文件哈希值去文件區(qū)塊鏈中進行簽署過程信息的追溯,如為真,則可追溯整個簽署過程信息。
2.4.4 文檔庫
(1)文檔目錄分類查看。通過預(yù)先設(shè)定的分類及目錄對已簽署文件進行分類瀏覽。
(2)關(guān)鍵字全文檢索。系統(tǒng)將文件全文索引信息、關(guān)鍵字信息、摘要總結(jié)進行數(shù)字化存儲后,通過搜索引擎技術(shù)提供關(guān)鍵字檢索,能根據(jù)文檔權(quán)重、關(guān)鍵字詞等,智能判斷、搜索文件,提高文件查找的準確性及便捷性。
(3)已簽署文件版本更替。系統(tǒng)默認展示最新版文件,如遇變更(如作業(yè)指導書等),可直接在文件上發(fā)起新的版本簽署,簽署完成后,系統(tǒng)自動記錄版本信息,并將新版替換為舊版,提供版本對比查看功能。
2.4.5 移動App
(1)發(fā)起簽署。移動App通過模板或上傳電子文檔的方式發(fā)起簽署,發(fā)起簽署時可以添加簽署人、簽署方式(無序簽署、有序簽署)、填寫簽署備注、設(shè)置歸檔目錄等。發(fā)起簽署后系統(tǒng)將WORD文件轉(zhuǎn)為PDF文件,在轉(zhuǎn)換的同時讀取WORD文件內(nèi)容,通過智能處理生成全文索引信息、關(guān)鍵字信息、摘要總結(jié)信息,將該信息作為文檔數(shù)字化信息進行存儲。
(2)文檔簽署。利用移動App進行文檔簽署,支持手寫簽署和簽名加蓋的方式,在簽署過程中靈活使用拖動、調(diào)整大小的方式進行簽名調(diào)整,簽署完成后,系統(tǒng)驗證用戶合法性后進行數(shù)字簽名加蓋,數(shù)字簽名加蓋后文檔不可修改。
(3)我的文檔。利用移動App查看所有與我相關(guān)的文件,分類包括待我簽署、待他人簽署、已完成、已取消、草稿、我發(fā)起??芍苯釉诰€預(yù)覽相應(yīng)的PDF文件,并查看簽署狀態(tài)、進度及簽署過程信息追溯。
(4)文檔中心。利用移動App進行文檔目錄分類查看、文檔關(guān)鍵字全文檢索。
3 系統(tǒng)的實現(xiàn)
3.1 區(qū)塊鏈網(wǎng)絡(luò)構(gòu)建
區(qū)塊鏈在分布式環(huán)境下運行,主要將客戶端分別安裝到多臺主機中,分別以每臺電腦作為區(qū)塊鏈的節(jié)點。在電腦中分別部署節(jié)點,主要工作就是設(shè)置每臺電腦的創(chuàng)世紀塊,先創(chuàng)建第一個,然后按照順序把其他電腦都添加新的區(qū)塊,這樣就可以將各個節(jié)點連接在一個模擬的區(qū)塊鏈網(wǎng)絡(luò)中,各臺電腦終端設(shè)置相同的創(chuàng)世紀塊,以便共同維護賬本。各節(jié)點部署后運行Geth客戶端,使其相互鏈接,同時把各個節(jié)點添加到一個列表中,以便各節(jié)點進行數(shù)據(jù)傳輸,這樣就構(gòu)成一個簡易的區(qū)塊鏈網(wǎng)絡(luò)。
3.2 系統(tǒng)的功能實現(xiàn)
系統(tǒng)采用集中部署的B/S三層結(jié)構(gòu)開發(fā)。應(yīng)用服務(wù)器中間件采用Tomcat提供Web及App訪問服務(wù),數(shù)據(jù)庫采用Mysql與Mongodb進行結(jié)合方式,Mongodb服務(wù)器單獨部署提供對大數(shù)據(jù)的存儲及讀取服務(wù),建立簽署過程信息區(qū)塊鏈(4節(jié)點)私有鏈需要4臺服務(wù)器支持,系統(tǒng)網(wǎng)絡(luò)部署如圖5所示。所選服務(wù)器資源見表1。
4 結(jié)論
隨著區(qū)塊鏈技術(shù)的不斷發(fā)展,該技術(shù)在各行業(yè)中得到了廣泛的運用,利用其優(yōu)良的防篡改性屬性,可以解決電子文檔簽名的信任問題。為此,本文提出了基于區(qū)塊鏈技術(shù)的電子簽名系統(tǒng)的設(shè)計方案,保證電子文檔的安全,以便實現(xiàn)電子文檔全流程高效便捷管理、使得電子文檔得以全面利用和共享。當然,除了區(qū)塊鏈技術(shù)應(yīng)用,本系統(tǒng)還考慮到系統(tǒng)移動應(yīng)用場景的便捷性,采用App+Web部署的方式,使得人們能夠隨時隨地進行文檔的簽署,這極大地方便了本系統(tǒng)的推廣與應(yīng)用,使得用戶更加容易接受并使用它。區(qū)塊鏈技術(shù)在電子文檔管理中的應(yīng)用目前還處于初期探索,未來還需要加快加深實踐性檢驗,將理論與實踐深入結(jié)合。
參 考 文 獻
[1]李奕杭.基于區(qū)塊鏈的數(shù)字簽名系統(tǒng)的設(shè)計與實現(xiàn)[D].北京:北京交通大學,2019.
[2]伍前紅,韓天煦,張文濤,等.基于區(qū)塊鏈的去中心化數(shù)字簽名公平交換方法及系統(tǒng)[P].中國專利:2017113
757263,2017-12-19.
[3]沈智鑌,張猛,程思進.基于區(qū)塊鏈的電子簽名和印章應(yīng)用體系設(shè)計[J].水利信息化,2020(2):29-33,47.
[4]周硙.區(qū)塊鏈電子認證系統(tǒng)的設(shè)計與實現(xiàn)[J].軟件工程,2020,23(8):32-34,19.
[5]韋智勇,周立廣.基于區(qū)塊鏈的電子病歷存證系統(tǒng)設(shè)計與實現(xiàn)[J].軟件工程,2020,23(9):56-58.