国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

HTML電子簽章控件關(guān)鍵技術(shù)研究與應(yīng)用

2020-08-13 07:19黃洋郭立君張榮
移動通信 2020年7期
關(guān)鍵詞:數(shù)字簽名

黃洋 郭立君 張榮

【摘? 要】如何保證電子文件的安全性是當(dāng)前電子政務(wù)辦公自動化系統(tǒng)中面臨的重要問題。針對當(dāng)前多數(shù)HTML電子簽章相關(guān)產(chǎn)品保護內(nèi)容有限、簽章頁面無法本地保存和離線驗證以及無法在Web頁面上完成定制化簽章驗章等問題,提出了一種可靠性更高的HTML電子簽章控件的設(shè)計與實現(xiàn)方案。通過對Web頁面中重要信息預(yù)處理,有效地擴大了Web頁面內(nèi)容的保護范圍。將帶有HTML電子簽章對象的Web頁面轉(zhuǎn)換為包含簽章的PDF文件,實現(xiàn)了簽章頁面的本地保存和離線驗證??丶赟OAP協(xié)議建立了與服務(wù)器間的遠程通信,結(jié)合數(shù)字簽名技術(shù)、ActiveX控件等技術(shù)在完成了HTML電子簽章對象構(gòu)造的同時,也實現(xiàn)了Web頁面中可定制化的簽章與驗章。

【關(guān)鍵詞】電子簽章;Web頁面;數(shù)字簽名;ActiveX控件

doi:10.3969/j.issn.1006-1010.2020.07.000? ? ? ? 中圖分類號:TN92

文獻標(biāo)志碼:A? ? ? ? 文章編號:1006-1010(2020)07-0000-00

引用格式:黃洋,郭立君,張榮. HTML電子簽章控件關(guān)鍵技術(shù)研究與應(yīng)用[J]. 移動通信, 2020,44(7): 00-00.

0? ?引言

如今政府和企業(yè)中傳統(tǒng)辦公流程所導(dǎo)致的資源浪費、線上與線下一體化服務(wù)效率低等問題越來越嚴(yán)重。隨著網(wǎng)絡(luò)基礎(chǔ)設(shè)施的不斷完善和信息技術(shù)的快速進步,電子文檔在政府和企業(yè)公文流轉(zhuǎn)中扮演著越來越重要的角色。但是電子文檔的安全問題一直未得到有效解決,這也導(dǎo)致“無紙化”的辦公模式無法真正普及開來。雖然數(shù)字簽名可以有效解決電子文檔的安全問題,但這種技術(shù)對于數(shù)據(jù)交互雙方并不可見。在我國的傳統(tǒng)文化中,人們更傾向于在紙質(zhì)文件上蓋章。所以,單純地使用數(shù)字簽名技術(shù)不符合早已在我國根深蒂固的印章使用傳統(tǒng)。電子印章是將傳統(tǒng)的物理印章數(shù)字化于電子文件之上的印章表現(xiàn)形式,既能夠體現(xiàn)簽署者身份及其合法性的信息[1],又能夠達到與傳統(tǒng)物理印章同樣的可視化效果[2]。因此,研究結(jié)合電子印章與數(shù)字簽名技術(shù)的電子簽章技術(shù)對實現(xiàn)安全可靠的無紙化辦公具有重要意義。

電子簽章主要利用圖像處理技術(shù)、加密解密技術(shù)以及數(shù)字簽名技術(shù)來保證電子文檔數(shù)據(jù)信息的完整性以及簽名信息的不可否認性[3]。隨著《中華人民共和國電子簽名法》的頒布與實施,使得電子簽章有著與傳統(tǒng)物理印章同等的權(quán)威性以及法律效力[4]。同時電子簽章具有跨地域、跨時間、跨空間等特點,促使電子簽章成為電子政務(wù)和電子商務(wù)的新風(fēng)向。

在電子商務(wù)和電子政務(wù)中盛行的電子文檔大多數(shù)以Web頁面的形式呈現(xiàn)。Web頁面是由一系列標(biāo)簽組成的具有描述性功能的文檔。早期的靜態(tài)Web頁面存在內(nèi)容單一、結(jié)構(gòu)簡單、與用戶交互性差等問題,隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,已經(jīng)無法滿足用戶需求。動態(tài)頁面技術(shù)的出現(xiàn)很好地解決了這些問題,滿足了用戶的多樣性需求。區(qū)別于Word、Excel、PDF等格式的文件內(nèi)容固定、樣式單一,Web頁面內(nèi)容通過服務(wù)器端程序動態(tài)生成。同時,政府和企業(yè)自動化辦公平臺中的各種稅務(wù)報表、通知公告、合同文件是以動態(tài)Web頁面形式呈現(xiàn),因此研究面向Web頁面的電子簽章技術(shù)具有極大的現(xiàn)實意義和應(yīng)用價值。

國內(nèi)已有相關(guān)公司對HTML電子簽章產(chǎn)品進行開發(fā),如江西金格網(wǎng)絡(luò)科技有限公司的iSignature HTML網(wǎng)頁簽章、重慶軟航科技有限公司的NTKO電子印章WEB版、南京優(yōu)泰科技有限公司的優(yōu)泰電子簽章系統(tǒng)、北京安證通信技術(shù)有限公司的云簽章平臺等[5]。在企業(yè)和政府辦公系統(tǒng)中以Web頁面呈現(xiàn)的公文或合同中包含著除表單元素外的固定內(nèi)容,如標(biāo)題、署名等,這些元素中的內(nèi)容同樣是電子文件的重要組成部分。而目前大多數(shù)HTML電子簽章產(chǎn)品的保護范圍僅包含固定且單一的表單元素,無法對Web頁面中除表單元素外的重要信息進行保護。因此,本文對表單以及非表單元素信息進行了預(yù)處理,進而有針對性地對Web頁面中的表單以及非表單元素信息進行簽名保護。

同時,大多數(shù)HTML電子簽章產(chǎn)品只支持在線驗章,如果出現(xiàn)設(shè)備故障、網(wǎng)絡(luò)中斷等突發(fā)情況,將無法有效地驗證簽名信息的合法性,這將會極大地限制簽章產(chǎn)品的使用場景。PDF版式文件具有良好的跨平臺性、優(yōu)質(zhì)的屏幕顯示效果、文件操作可追蹤等優(yōu)勢。因此,本文利用HTML電子簽章對象相關(guān)信息構(gòu)造出可嵌入PDF文件的PDF電子簽章對象,并將簽章后的Web頁面轉(zhuǎn)化為PDF格式的文件保存至本地實現(xiàn)了離線驗證,從而有效地解決了這一問題。

盡管目前大多數(shù)HTML電子簽章產(chǎn)品可以嵌入到第三方平臺中實現(xiàn)簽章驗章,但是目前這些產(chǎn)品對于電子印章尺寸、格式限制嚴(yán)格,驗章結(jié)果固定、形式單一,無法靈活地支持電子簽名與電子印章結(jié)合,以及個性化的驗章結(jié)果。為了解決以上問題,本文基于控件技術(shù)并設(shè)置了服務(wù)器與控件之間的通信標(biāo)準(zhǔn),這樣既實現(xiàn)了安裝在客戶機的簽章控件與遠端服務(wù)器之間的數(shù)據(jù)通信,也能夠通過服務(wù)器端對外開放的API來完成定制化的簽章功能,并最終通過對HTML電子簽章對象靈活構(gòu)造,實現(xiàn)了定制化簽章與驗章效果。本文最終結(jié)合控件技術(shù),設(shè)計并實現(xiàn)了可嵌入Web頁面的WebSignature電子簽章控件,有效地解決了當(dāng)前產(chǎn)品中存在的諸多問題。

1? ?HTML電子簽章控件功能設(shè)計

控件是指通過封裝數(shù)據(jù)和方法并可以產(chǎn)生或接收事件的程序?qū)嶓w。為了便于響應(yīng)用戶事件并與第三方系統(tǒng)集成,本文設(shè)計了面向Web頁面的WebSignature控件,實現(xiàn)了對核心功能的封裝,以達到與客戶端交互和與服務(wù)器端程序間通信及資源共享的目的[6]。

本文結(jié)合現(xiàn)有HTML電子簽章產(chǎn)品存在的問題和當(dāng)前電子政務(wù)與電子商務(wù)的項目需求,設(shè)計了如圖1所示的主要接口。

(1)校驗用戶身份:在進行蓋章操作前應(yīng)對用戶身份進行驗證,用戶需要提供正確的PIN碼,然后讀取用戶鑰匙盤USBKey中存儲的用戶私鑰和數(shù)字證書。驗證成功后方可進行蓋章操作。

(2)添加簽章:該接口主要完成在Web頁面指定位置的蓋章操作。在蓋章前需要對頁面中重要信息項進行預(yù)處理,構(gòu)造包含簽名信息、數(shù)字證書和印章圖片的HTML電子簽章對象,將電子簽章對象嵌入到Web頁面,實現(xiàn)在頁面任意位置的蓋章操作。

(3)撤銷簽章:該接口用于撤銷未確認的簽章。撤銷簽章之前對用戶USBKey的PIN碼進行驗證。如果用戶已進行確認簽章操作,簽章將變?yōu)椴豢沙蜂N狀態(tài),在此狀態(tài)下,用戶無法撤銷。

(4)刪除簽章:該接口用于刪除頁面中所有未確認的簽章。刪除簽章之前驗證用戶PIN碼,確保是同一用戶所簽,否則無法刪除簽章。

(5)驗證簽章:完成信息完整性驗證和簽名身份驗證。在驗證時,對當(dāng)前Web頁面采用MD5數(shù)字摘要算法提取摘要后與簽章對象中原始摘要信息進行對比。解析頁面中的簽章對象并讀取證書和用戶信息完成驗證。驗證結(jié)果會通過對話框的形式展示給用戶,驗證內(nèi)容可以根據(jù)用戶需要進行定制化設(shè)定。

(6)查看簽章信息:用戶可以查看證書中包含的各項信息且無需進行身份驗證。

(7)頁面本地保存:作為特色功能,本接口用于完成簽章頁面的本地保存以及離線驗證功能。通過調(diào)用控件中文件本地保存以及文件轉(zhuǎn)化相關(guān)接口,可將簽章后的頁面以PDF格式保存至本機,并調(diào)用PDF簽章控件接口完成本地離線驗證操作。

(8)加載文檔:該接口實現(xiàn)頁面數(shù)據(jù)和簽章信息的加載。服務(wù)器端對控件發(fā)送過來的指令命令“LOADFILE”進行判斷,并連接服務(wù)器將對應(yīng)頁面數(shù)據(jù)以及簽章信息以加密的數(shù)據(jù)流形式傳遞給簽章控件。簽章控件從數(shù)據(jù)流中解析出頁面數(shù)據(jù)和簽章信息并顯示到網(wǎng)頁上,從而完成文檔的加載操作。

(9)提交文檔:通過該接口能夠完成頁面數(shù)據(jù)和簽章信息在服務(wù)器端保存。服務(wù)器端對控件發(fā)送的指令內(nèi)容進行判斷,如果指令內(nèi)容“SAVEFILE”,則將頁面數(shù)據(jù)以及簽章信息保存至數(shù)據(jù)庫。

2? ?簽章控件關(guān)鍵技術(shù)解決方案

針對目前大多數(shù)HTML電子簽章產(chǎn)品保護內(nèi)容非常有限、無法對簽章頁面本地保存和離線驗證,以及無法定制化簽章與驗章等問題,本節(jié)詳述了具體的解決方案,最終設(shè)計了一種可靠性更高、擴展性更強的HTML電子簽章控件,并成功地將其部署到政府辦公自動化系統(tǒng)中。

2.1? 頁面中表單和非表單元素的預(yù)處理

Web頁面能被瀏覽器自動解析并且具有簡易性、可擴展性和平臺無關(guān)性,同時也支持嵌入不同數(shù)據(jù)格式的文件,因此政府企業(yè)辦公自動化系統(tǒng)中的公文或合同文件多采用Web頁面呈現(xiàn)。對以Web頁面呈現(xiàn)的公文或合同等文件中的重要內(nèi)容進行簽名,從而保證文件內(nèi)容的完整性和簽名的不可否認性是簽章控件的重要功能。

目前大多數(shù)HTML電子簽章產(chǎn)品無法對Web頁面中除表單元素外的重要信息進行簽名,而在企業(yè)和政府的合同文件中許多重要內(nèi)容是以非表單元素的形式展現(xiàn),如合同標(biāo)題、署名等。為解決上述問題,本文通過對控件類中的字段FieldIsProtect設(shè)置值完成保護區(qū)域自定義功能,并通過對Web頁面中結(jié)構(gòu)化的表單元素和非表單元素及其內(nèi)容進行預(yù)處理,有效地擴大了Web頁面內(nèi)容的保護范圍。預(yù)處理過程如圖2所示。

用戶在Web頁面完成保護區(qū)域的選擇,并將選擇結(jié)果以參數(shù)形式提交到控件接口完成對頁面的預(yù)處理操作,從而實現(xiàn)了頁面保護區(qū)域自定義的功能,同時也擴大了頁面內(nèi)容的保護范圍。在預(yù)處理的過程中首先需要在控件中獲取到參數(shù),然后根據(jù)參數(shù)值對Web頁面內(nèi)的表單項以及非表單元素內(nèi)容進行提取。在提取元素內(nèi)容時先對元素類型進行組織,然后將組織好的字符串以方法參數(shù)的方式傳遞給控件接口,控件接口對獲取到的字符串進行解析并根據(jù)id屬性提取元素內(nèi)容。

為了獲取Web頁面中各種標(biāo)簽的內(nèi)容,本文采用基于COM(Component Object Model,即組件對象模型,是一種應(yīng)用程序接口開發(fā)的標(biāo)準(zhǔn))的解析庫MSHTML對網(wǎng)頁中重要信息進行提取[7]。MSHTML組件由一系列對象和集合構(gòu)成,其中的Document對象包含一系列的屬性和方法用于操作網(wǎng)頁中的元素。

在提取元素內(nèi)容時需要使用IHTMLDocument2類型的接口,該接口應(yīng)通過一段HTML字符串來生成相應(yīng)的IHTMLDocument2接口。提取元素內(nèi)容的過程如下:首先定義HTML字符串內(nèi)容,即獲取Web頁面中需要保護的元素內(nèi)容,由于Web頁面是服務(wù)器對客戶端請求的響應(yīng)內(nèi)容,因此獲得這個響應(yīng)的數(shù)據(jù)包即可獲取到對應(yīng)的HTML頁面字符串內(nèi)容數(shù)據(jù),進而可以將Web頁面中的元素內(nèi)容封裝為IHTMLDocument2類型的接口,在控件通過接口中的get方法訪問元素內(nèi)容,進而完成預(yù)處理過程。

2.2? 簽章頁面的本地保存與離線驗證

目前大多數(shù)HTML電子簽章產(chǎn)品僅支持在線簽章與驗證,當(dāng)出現(xiàn)網(wǎng)絡(luò)中斷或故障時將無法完成相關(guān)操作,這將極大地限制簽章產(chǎn)品的使用范圍。針對這一問題,本文提出一種將帶有HTML電子簽章對象的Web頁面轉(zhuǎn)換為PDF文件的本地保存方法,用戶不依賴于網(wǎng)絡(luò)便可將簽章頁面保存至本地并實現(xiàn)離線驗證。

可移植文檔格式(PDF, Portable Document Format)是一種版式文件的工業(yè)標(biāo)準(zhǔn)。PDF文件具有文件操作可追蹤,良好的跨平臺性,并且打印時可保證精確的顏色和準(zhǔn)確的打印效果等優(yōu)點,以PDF作為標(biāo)準(zhǔn)的電子文件具有逼真的顯示效果,非常適合作為合同公文或其它重要文件的載體,因此本文將簽章頁面轉(zhuǎn)化為PDF文件進行本地保存[8]。

當(dāng)進行簽章頁面本地保存時,不僅需要提取Web頁面完整內(nèi)容進行保存。為了實現(xiàn)最終的離線驗證,還需要將簽章頁面中電子簽章相關(guān)的信息(數(shù)字證書、數(shù)字簽名、電子印章等信息)進行保存,之后調(diào)用控件中的文件轉(zhuǎn)化接口,將簽章后的頁面轉(zhuǎn)化為PDF文件。完成轉(zhuǎn)化過程后,為了使用戶能夠在離線的情況下完成PDF文件的簽章驗證,本文需要根據(jù)Web頁面中電子簽章相關(guān)的信息分別構(gòu)造PDF電子簽章對象中代表簽章外觀的AP項和代表數(shù)字簽名的V項,最后整合成可嵌入PDF文件的PDF電子簽章對象。構(gòu)造的PDF電子簽章遵循PDF標(biāo)準(zhǔn),能在Adobe Reader等支持PDF標(biāo)準(zhǔn)的閱讀器中驗證。為了能夠追蹤文件離線保存用戶的身份信息,本文使用USBKey中的私鑰對轉(zhuǎn)換后的PDF文件進行加密,通過驗證簽名信息可以識別離線文件保存者的身份,從而實現(xiàn)了用戶操作的可追蹤性。當(dāng)用戶在本地進行驗章操作時,首先使用USBKey中的公鑰解密離線保存的PDF文件,然后通過支持PDF標(biāo)準(zhǔn)的閱讀器驗證PDF文件中的電子簽章,即實現(xiàn)了Web頁面的離線驗證。

2.3? Web頁面定制化簽章與驗章

為了解決當(dāng)前HTML電子簽章產(chǎn)品無法靈活地支持電子簽名與電子印章結(jié)合,以及無法支持個性化的驗章呈現(xiàn)結(jié)果等問題,本文提出了可定制化的簽章與驗章的解決方案??啥ㄖ苹炚屡c驗章是指支持靈活的電子簽章對象生成方式和個性化的驗章結(jié)果呈現(xiàn)方式。其中,本文基于ActiveX控件技術(shù)、Web Service等技術(shù)實現(xiàn)了HTML電子簽章對象的靈活生成,進而實現(xiàn)了定制化的簽章操作。同時,通過Windows窗體等技術(shù),設(shè)計了個性化的Windows驗章窗體,并采用MFC框架實現(xiàn)了對Windows對話框消息事件的響應(yīng),從而完成驗證結(jié)果的定制化呈現(xiàn)。通過實現(xiàn)定制化簽章與驗章能夠有效擴展控件適用環(huán)境、更好地滿足用戶需求并且更充分的發(fā)揮電子簽章的優(yōu)勢。

(1)HTML電子簽章控件的實現(xiàn)

ActiveX是Microsoft提出的一組使用COM(部件對象模型)使得軟件部件在網(wǎng)絡(luò)環(huán)境中進行交互的技術(shù)集[9]。作為ActiveX技術(shù)的一種,ActiveX控件是一種微型應(yīng)用程序,它可以獨立于服務(wù)器程序并輕松實現(xiàn)組件重用[10]。如何將簽章圖片顯示在Web頁面上并實現(xiàn)與用戶的交互是一個技術(shù)難題,由于Web頁面是ActiveX控件的容器,因此本文把簽章圖片依托控件顯示出來,再將控件嵌入到Web頁面中,當(dāng)用戶訪問Web頁面并對其進行操作時,頁面會自動加載控件并運行。這樣,客戶端只需調(diào)用控件接口即可完成簽章驗章等操作,達到了與傳統(tǒng)物理印章同樣的可視化效果。無論底層硬件和系統(tǒng)軟件怎樣更新,維護時只需對控件升級更新,并保持控件對客戶端的接口定義不變,這就使得控件具有良好的可移植性與可擴展性。

在眾多的ActiveX控件開發(fā)方法中,由于使用微軟基礎(chǔ)類庫(MFC, Microsoft foundation class)開發(fā)ActiveX控件具有資源占用少、靈活性強、執(zhí)行效率高等特點[11],因此本文整合Web Service、PKI、JNI等技術(shù),采用MFC框架進行ActiveX控件的開發(fā),通過將控件嵌入第三方Web平臺,實現(xiàn)Web頁面定制化的簽章驗章。

(2)定制化簽章

本文基于Web Service技術(shù)實現(xiàn)了服務(wù)器與控件之間的通信,通過調(diào)用服務(wù)器端獲取電子印章的遠程接口獲得電子印章的定制方式,在控件中完成電子簽名與電子印章的結(jié)合,進而實現(xiàn)了呈現(xiàn)方式為服務(wù)器端定制的電子印章的電子簽章對象,最終實現(xiàn)定制化簽章效果。

Web Service技術(shù)采用基于XML的WSDL語言對服務(wù)細節(jié)進行描述,并采用SOAP協(xié)議為網(wǎng)絡(luò)環(huán)境下的服務(wù)器端與控件的信息交互提供了簡單且輕量的通信機制,能夠?qū)φ{(diào)用者屏蔽實現(xiàn)細節(jié),有效地消除語言、平臺、協(xié)議和數(shù)據(jù)結(jié)構(gòu)的差異[12]。其中,服務(wù)器與控件間傳輸?shù)臄?shù)據(jù)都進行了加密處理,保障了數(shù)據(jù)傳輸?shù)陌踩浴M瑫r,通過這種遠程調(diào)用方式也實現(xiàn)了電子簽章管理業(yè)務(wù)與電子印章管理業(yè)務(wù)的分離,實現(xiàn)了電子印章的可定制化,也降低了后期HTML電子簽章產(chǎn)品的維護成本。

當(dāng)控件與服務(wù)器間進行SOAP通信時,控件向服務(wù)器端發(fā)送XML格式的SOAP消息,該消息包含了需要執(zhí)行的具體操作以及相關(guān)數(shù)據(jù),服務(wù)器端接收到消息并完成處理后,向控件響應(yīng)一個XML格式的SOAP消息,此SOAP消息中就包含了簽章參數(shù)以及簽章數(shù)據(jù)流等信息。其中,SOAP消息中的“簽章參數(shù)”表示通過靈活的參數(shù)定義完成包括“印章類型”、“印章寬度”、“印章高度”、“印章標(biāo)題”、“印章顏色”、“印章字體類型”等參數(shù)的定義,通過這些參數(shù)可以在控件中靈活的生成不同種類的印章類型,如:財務(wù)專用章、合同專用章、發(fā)票專用章等。SOAP消息中的“簽章數(shù)據(jù)流”表示通過印章圖片文件流的方式自定義印章圖片。最終,控件根據(jù)服務(wù)器端定制的電子簽名與電子印章結(jié)合方式生成相應(yīng)的電子印章,進而實現(xiàn)了定制化簽章呈現(xiàn)效果,具體的電子印章的定制化過程如圖3所示。

對Web頁面進行簽章操作前,需要通過預(yù)處理過程得到被保護的元素內(nèi)容,按照id屬性順序?qū)Ρ韱卧匾约胺潜韱卧剡M行組織,并對組織好的內(nèi)容采用MD5算法提取數(shù)字摘要信息。

為了使簽章過程具有更高的安全性與可靠性,首先需要保證任何簽章個體的數(shù)字證書都由可信賴的第三方權(quán)威機構(gòu)(CA, Certification Authority)簽發(fā)。CA是整個公鑰基礎(chǔ)設(shè)施(PKI, Public Key Infrastructure)的核心模塊,其作用是檢查證書持有者身份的合法性,并負責(zé)簽發(fā)和管理包含用戶信息、公鑰的數(shù)字證書。作為密鑰管理的媒介和公鑰的載體,數(shù)字證書將實體真實身份與證書中的公鑰綁定起來,解決了公鑰在不安全網(wǎng)絡(luò)環(huán)境中信任問題,從而保障了簽章過程中用戶身份的不可抵賴性。其次,本文使用USBKey作為數(shù)字證書、私鑰、簽章信息的安全容器。USBKey是一種內(nèi)置單片機或智能卡芯片的硬件設(shè)備[13],并結(jié)合PKI原理實現(xiàn)。其內(nèi)部的存儲空間可以存儲數(shù)字證書,密碼鎖用于保存用戶私鑰[14]。由于其設(shè)計的特殊性,用戶私鑰無法導(dǎo)出,并且整個簽名過程在USBKey中完成,因此相較于其它方式,如:計算機磁盤存儲和軟盤存儲,使用USBKey作為存儲容器具有更高安全性。

本文通過利用保存在USBKey的用戶私鑰對數(shù)字摘要信息進行簽名,將得到的數(shù)字簽名結(jié)合電子印章、簽名信息以及簽署者信息生成HTML電子簽章對象。最終結(jié)合ActiveX控件技術(shù)、Web Service等技術(shù)實現(xiàn)了可定制化的HTML電子簽章對象的生成。Web文檔簽章過程圖4所示:

簽章過程中的核心代碼如下:

// 1.通過Web Service調(diào)用服務(wù)器端接口,得到服務(wù)器端返回數(shù)據(jù),確定電子印章的定制化方式

/*參數(shù)說明

*BSTR signUrl:Web Services服務(wù)地址

*BSTR method:Web Services服務(wù)方法名

*BSTR orgName:公司機構(gòu)名稱

*BSTR sealTypeId:印章類型

*BSTR hardwareId:USBKey序列號

*/

STDMETHODIMP CWebSig::SignWeb(BSTR signUrl, BSTR method, BSTR orgName, BSTR sealTypeId, BSTR hardwareId){

...

/* judgeResult2方法返回值說明:

*-2:返回結(jié)果錯誤

*-1: webservice連接失敗;

*0:連接成功,簽章驗證失敗,返回對應(yīng)的驗證失敗信息

*1:連接成功,簽章驗證成功,返回結(jié)果是參數(shù)類型的簽章信息

*2:連接成功,簽章驗證成功,返回的結(jié)果是圖片類型的簽章信息*/

int jg = judgeResult2(signUrl, orgName, sealTypeId, hardwareId, re, time);

...

}

// 2.捕獲鼠標(biāo)左鍵點擊事件,調(diào)用簽名函數(shù)進行簽章

/*參數(shù)說明

*int x:簽章橫坐標(biāo)

*int y:簽章縱坐標(biāo)*/

static void OnMouseLeftButtonDown(WindowInfo *win, int x, int y, WPARAM key){

...

//簽章處理

if(Is_sig&&win->dm->cvtScreenToUser(&pageno, &x1, &y1)) {

...

//以參數(shù)形式簽章

if (Is_sig_parm){

i = sign_parm( pic_p, data->data, data->len, datetime, x, y, rectW, rectH, page_num, filedata);

}

//以圖片流形式簽章

else if (Is_sig_pic) {

i = sign_pic(data->data, data->len, datetime, x, y, rectW, rectH, page_num, filedata);

}

...

}

(3)定制化驗章

在進行驗章操作時,首先執(zhí)行信息完整性驗證,對控件中提取到的內(nèi)容采用MD5數(shù)字摘要算法提取摘要,并與簽章對象中原始摘要信息進行對比完成信息完整性驗證,從而保障了簽章過程中簽名信息的完整性。其次是簽名身份驗證,解析頁面中的簽章對象并讀取證書和用戶信息,利用證書中攜帶的數(shù)字證書完成簽名身份驗證。驗章過程如圖5所示。

為了使Web頁面中的電子印章能夠響應(yīng)用戶操作,需要在控件類中聲明一個AFX_MSGMAP_ENTRY類型數(shù)組verifyEntries[ ]作為消息映射表,然后在控件類中聲明并實現(xiàn)鼠標(biāo)消息的處理函數(shù)afx_msg void OnMouseButtonDown()響應(yīng)用戶區(qū)鼠標(biāo)點擊事件。為了呈現(xiàn)個性化驗章內(nèi)容,需要在控件中通過CDialog類創(chuàng)建模態(tài)對話框并將驗章結(jié)果填充到該對話框中,進而實現(xiàn)個性化的驗章結(jié)果。

3? ?控件應(yīng)用實例

本文基于輕量級SSM框架,開發(fā)了政府電子政務(wù)辦公自動化系統(tǒng)。該系統(tǒng)主要由合同管理、簽章管理、人事管理、公告管理、事務(wù)安排、下載中心等模塊構(gòu)成。系統(tǒng)中與簽章相關(guān)的功能通過在JSP頁面中調(diào)用WebSignature簽章控件接口完成。WebSignature簽章控件采用MFC框架實現(xiàn),在Web頁面上簽章驗章效果如圖6所示。

本文最大可能地簡化了客戶端HTML電子簽章控件環(huán)境配置及注冊過程,將與控件相關(guān)的DLL動態(tài)鏈接庫文件、JAR包和JVM虛擬機環(huán)境以及USBKey驅(qū)動制作成一個安裝包,用戶直接運行該安裝包即可完成控件的環(huán)境配置與注冊。另外,控件的升級過程也十分便捷,升級時只需在服務(wù)器端發(fā)布控件CAB文件,并更新控件的Version版本號,用戶打開Web頁面時瀏覽器通過驗證版本號進而完成控件的自動化升級。

簽章前用戶需要連接USBKey,之后可通過瀏覽器訪問系統(tǒng),對合同中的表單內(nèi)容進行編輯。編輯完成后點擊“加蓋印章”,系統(tǒng)對用戶USBKey口令進行驗證并調(diào)用控件的簽章接口完成簽章操作??丶诩用軙r采用USBKey中的私鑰對數(shù)字摘要信息進行簽名,認證時使用發(fā)送方數(shù)字證書包含的公鑰解密Web文檔數(shù)據(jù),即可驗證文件數(shù)據(jù)的數(shù)字簽名,從而保證了文件內(nèi)容的完整性和簽名的不可否認性。本文使用的公鑰和私鑰是一組非對稱秘鑰對,加密和解密使用不同的密鑰,即使公鑰被竊取也無法破解加密Web文檔信息,因此安全性很高。

用戶可通過點擊印章進行信息完整性驗證和簽名身份驗證,系統(tǒng)會以對話框的形式呈現(xiàn)驗證結(jié)果以及簽章日期、覆蓋范圍、數(shù)字證書等信息。一旦頁面內(nèi)容被篡改,簽章上會出現(xiàn)兩條交錯的灰色線條提示用戶簽章已失效。

本文將電子簽章中包含的文檔編號、簽章時間、加密信息摘要數(shù)據(jù)流、印章圖片數(shù)據(jù)流、數(shù)字證書數(shù)據(jù)流、簽章坐標(biāo)等信息持久化到數(shù)據(jù)庫中。當(dāng)再次加載簽章頁面時,系統(tǒng)根據(jù)數(shù)據(jù)庫中存儲的Web頁面信息恢復(fù)整個Web頁面,簽章控件根據(jù)文檔編號自動向服務(wù)器端請求對應(yīng)的簽章數(shù)據(jù)流,然后從中解析出HTML電子簽章對象并顯示到Web頁面上,從而完成了簽章頁面的加載。為了滿足用戶在離線情況下的驗章需求,可將簽章頁面以PDF文件的形式保存至本地,用戶再次打開文件時可在本地支持PDF標(biāo)準(zhǔn)的閱讀器中便捷地完成驗章操作。效果如圖7所示。

4? ?結(jié)束語

本文在深入研究各類電子簽章技術(shù)的基礎(chǔ)上,針對目前HTML電子簽章相關(guān)產(chǎn)品存在的問題,設(shè)計并實現(xiàn)了可靠性更高、擴展性更強的面向Web頁面的電子簽章控件,并將其運用于政府辦公自動化系統(tǒng)中,取得了良好的效果。通過對Web頁面中重要信息元素及其內(nèi)容進行預(yù)處理,有效地擴大了Web頁面信息保護范圍。本文將帶有HTML電子簽章對象的Web頁面轉(zhuǎn)換為包含簽章的PDF文件從而實現(xiàn)Web頁面的本地保存和離線驗證??丶赑KI/CA體系,采用MFC控件開發(fā)框架,并綜合了USBKey、JNI、Web Service等技術(shù)完成HTML電子簽章對象的靈活構(gòu)造,進而實現(xiàn)了可定制化的簽章,通過響應(yīng)Windows對話框消息事件實現(xiàn)了可定制化驗章,在滿足了電子商務(wù)以及電子政務(wù)系統(tǒng)中簽名驗證的基礎(chǔ)需求之上,提高了Web頁面關(guān)鍵信息在復(fù)雜傳輸環(huán)境中的安全性,擴展了控件的應(yīng)用場景,具有更加廣泛的應(yīng)用前景。簽章室用于將多個簽章用戶添加到同一個聊天室中對合同或公文辦公。在后續(xù)工作中會引入簽章室將目前網(wǎng)頁雙方簽章應(yīng)用到多方簽章模式實現(xiàn)多方簽章。

參考文獻:

[1]? ? K R, J V, S Z. An Approach towards Digital Signatures for e-Governance in India[C]//Electronic Governance and Open Society: Challenges in Eurasia (EGOSE 2015). 2015.

[2]? ? ?X B Z , Y X U, L Z. Research on open identity authentication

model for PKI[J]. Journal of National University of Defense Technology, 2013,35(1): 169-174.

[3]? ? ?樊彥博. 基于PKI和數(shù)字水印的電子簽章系統(tǒng)的研究與實現(xiàn)[D]. 南京: 南京信息工程大學(xué), 2012.

[4]? ? 李志玉. 基于電子簽章的電子合同系統(tǒng)設(shè)計與實現(xiàn)[D]. 長沙: 湖南師范大學(xué), 2016.

[5]? ? ?陳斌. 電子簽章的安全機制研究及應(yīng)用實踐[D]. 上海:

上海交通大學(xué), 2013.

[6]? ? ?郭洋. 基于數(shù)字證書的電子簽章系統(tǒng)在電子政務(wù)中的應(yīng)用研究[D]. 上海: 華東理工大學(xué), 2011.

[7]? ? 李靜,韓建民,郭騰芳. 集成電子簽章功能的公文流轉(zhuǎn)系統(tǒng)的實現(xiàn)[J]. 計算機技術(shù)與發(fā)展, 2011,21(12): 152-154.

[8]? ? 孫冀川. 面向PDF的電子簽章應(yīng)用系統(tǒng)的設(shè)計與實

現(xiàn)[D]. 石家莊: 河北師范大學(xué), 2014.

[9]? ? 曲松. 基于WEB的電子簽章系統(tǒng)的設(shè)計與實現(xiàn)[D]. 上海: 華東師范大學(xué).

[10]? ?張沈斌,陳浩. 一種基于數(shù)字簽名與數(shù)字水印認證的電子簽章系統(tǒng)[J]. 蘇州大學(xué)學(xué)報: 自然科學(xué)版, 2011, 27(2): 23-28.

[11]? 任哲. MFC WINDOWS應(yīng)用程序設(shè)計[M]. 北京: 清華大學(xué)出版社, 2013: 12-16.

[12]? ?賈俊輝,曹斌. 基于Webservice的異地電子簽章數(shù)據(jù)同步的研究[J]. 貴州大學(xué)學(xué)報: 自然版, 2013,30(6): 100-103.

[13]? ?譚杰. 基于 PKI/CA體系的電子簽章系統(tǒng)研究與實現(xiàn)[D]. 南昌: 南昌大學(xué), 2013.

[14]? 王雄,婁嘉鵬,龐巖梅. 多用戶電子簽章系統(tǒng)設(shè)計與實現(xiàn)[J]. 計算機工程與設(shè)計, 2012,33(5): 1767-1771.

作者簡介

黃洋(orcid.org/0000-0001-9735-3344):寧波大學(xué)在讀碩士研究生,研究方向為信息安全、計算機視覺與模式識別。

郭立君:教授,研究生導(dǎo)師,現(xiàn)任職于寧波大學(xué),研究方向為計算機視覺與模式識別、移動互聯(lián)網(wǎng)及其應(yīng)用。

張榮:副教授,研究生導(dǎo)師,現(xiàn)任職于寧波大學(xué),研究方向為數(shù)字取證、信息安全。

浙江省自然科學(xué)基金項目(LY17F030002);浙江省公益技術(shù)研究計劃項目(LGF18F020007)

通信作者

收稿日期:2019-10-29

猜你喜歡
數(shù)字簽名
基于正交拉丁方理論的數(shù)字簽名分組批量驗證
交通運輸行業(yè)數(shù)字簽名系統(tǒng)的設(shè)計與實現(xiàn)分析
淺析計算機安全防護中數(shù)字簽名技術(shù)的應(yīng)用
基于數(shù)字簽名的檔案信息安全管理
數(shù)字簽名助力系統(tǒng)安全
基于數(shù)字簽名的QR碼水印認證系統(tǒng)
以數(shù)字簽名為基礎(chǔ)的檔案文件安全性管理
數(shù)字簽名簡述
探討網(wǎng)絡(luò)安全中的數(shù)字簽名技術(shù)應(yīng)用效果
基于數(shù)字簽名和HSM的數(shù)據(jù)庫篡改檢測機制