專利名稱::一種office文檔電子簽章結(jié)果互驗方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種電子簽章結(jié)果互驗方法,特別涉及一種在office文檔作為電子簽章文檔時,通過對office文檔的各類要保護(hù)的對象提取,對簽章結(jié)果數(shù)據(jù)結(jié)構(gòu)和軟件接口進(jìn)行規(guī)定,標(biāo)準(zhǔn)化存儲,解決不同電子簽章軟件間存在存儲格式差異的office文檔電子簽章結(jié)果互驗方法。
背景技術(shù):
:隨著計算機技術(shù)和通信技術(shù)的飛速發(fā)展,網(wǎng)絡(luò)信息的傳播和交流更加方便和快捷,為了提高辦公效率,越來越多的政府機構(gòu)、公司企業(yè)采用電子辦公軟件平臺(比如WPS、MSOffice等),通過網(wǎng)絡(luò)實現(xiàn)辦公文檔的傳輸。但是,隨之而來的網(wǎng)絡(luò)入侵和攻擊其破壞力之巨大遠(yuǎn)遠(yuǎn)超出人們的想象。電子文檔發(fā)送過程中發(fā)文者的身份是否被他人冒充、電子文檔是否被發(fā)文者以外的人所篡改,以及不同文檔的電子簽章之間的互通互驗,上述問題成為新形勢下電子辦公系統(tǒng)所面臨的任務(wù)。在這樣的情況下,支持互驗的電子簽章系統(tǒng)孕育而生。隨著《電子簽名法》正式頒布,標(biāo)志著電子簽章市場已經(jīng)啟動。很多政府部門在電子政務(wù)建設(shè)中已經(jīng)安裝了電子簽章系統(tǒng)。目前國內(nèi)電子簽章的發(fā)展非常迅速,開發(fā)電子簽章的開發(fā)商多達(dá)幾十家,專業(yè)電子簽章開發(fā)商也有多家。特別在電子政務(wù)領(lǐng)域,應(yīng)用需求正在不斷上升,已逐漸成為辦公系統(tǒng)不可或缺的部分。電子商務(wù)中的企業(yè)內(nèi)部文件流轉(zhuǎn),企業(yè)間的電子合同等各類應(yīng)用對電子簽章的需求在迅猛發(fā)展。電子簽章系統(tǒng)主要由數(shù)字證書頒發(fā)系統(tǒng)、電子簽章服務(wù)器系統(tǒng)和電子簽章客戶端系統(tǒng)構(gòu)成。電子簽章系統(tǒng)的主要功能劃分為制章、簽章和驗章功能?,F(xiàn)在普遍使用的電子簽章系統(tǒng)是在公文傳輸中使用基于先進(jìn)的國際標(biāo)準(zhǔn)的數(shù)字簽名算法和RSA非對稱加密技術(shù)并完整模擬傳統(tǒng)簽字蓋章過程的一種電子數(shù)據(jù)。雖然,所有的電子簽章系統(tǒng)的安全基礎(chǔ)均依賴于數(shù)字簽名,但目前電子簽章系統(tǒng)缺少統(tǒng)一標(biāo)準(zhǔn),各廠商自成體系,不同電子簽章產(chǎn)品之間的簽章結(jié)果不能互相驗證,電子簽章系統(tǒng)缺乏互連互通。這使得電子簽章在跨地域、跨行業(yè)的電子政務(wù)和電子商務(wù)應(yīng)用受到限制。
發(fā)明內(nèi)容本發(fā)明的目的在于提供一種office文檔電子簽章結(jié)果互驗方法,在office文檔作為電子簽章文檔時,通過對office文檔的各類要保護(hù)的對象提取,統(tǒng)一規(guī)定簽章結(jié)果數(shù)據(jù)結(jié)構(gòu)和軟件接口,實現(xiàn)不同電子簽章產(chǎn)品的簽章結(jié)果互驗,使得電子簽章在跨地域、跨行業(yè)的電子政務(wù)和電子商務(wù)應(yīng)用中不再受到限制。本發(fā)明所解決的技術(shù)問題可以采用以下技術(shù)方案來實現(xiàn)一種office文檔電子簽章結(jié)果互驗方法,其特征在于,它包括如下的步驟(1)對需簽章的Office文檔通過對象提取、hash計算以及數(shù)字簽章并填充為數(shù)據(jù)流字段,產(chǎn)生電子簽章結(jié)果,并對電子簽章結(jié)果進(jìn)行數(shù)字簽章保護(hù);(2)將數(shù)據(jù)流字段按照標(biāo)準(zhǔn)化ActiveX存儲方式寫入office文檔,將簽章結(jié)果作為復(fù)合對象存儲在office文檔內(nèi);(3)驗章用戶獲得office文檔的簽章結(jié)果,按照標(biāo)準(zhǔn)化ActiveX接口讀出數(shù)據(jù)流;(4)解析數(shù)據(jù)流字段,按序?qū)炚陆Y(jié)果的數(shù)字簽章的合法性以及文檔簽名的合法性進(jìn)行校驗。在所述步驟(1)中,office文檔采用IStream接口實現(xiàn)對象的提取,給定函數(shù)調(diào)用接口的api參數(shù),規(guī)范接口的調(diào)用方式。所述的數(shù)據(jù)流字段包含有公共數(shù)據(jù)實體大小字段、公共實體信息字段及私有實體信息字段,所述數(shù)據(jù)流字段通過公共實體信息字段互聯(lián)互通需要的數(shù)據(jù),實現(xiàn)數(shù)據(jù)流字段的相互驗證。所述公共實體信息字段包含版本號數(shù)據(jù)項、簽章軟件版本號數(shù)據(jù)項、簽章軟件開發(fā)單位代碼數(shù)據(jù)項、簽章類型數(shù)據(jù)項、簽章在文檔中的序號數(shù)據(jù)項、電子印章屬性數(shù)據(jù)項、用印單位信息數(shù)據(jù)項、簽章時間數(shù)據(jù)項、數(shù)字簽名信息數(shù)據(jù)項、摘要算法數(shù)據(jù)項、被簽章文檔描述數(shù)據(jù)項、證書信息數(shù)據(jù)項、文檔保護(hù)密碼數(shù)據(jù)項、office軟件版本數(shù)據(jù)項及公共實體簽名信息數(shù)據(jù)項。所述電子印章屬性數(shù)據(jù)項包含印章圖片的真實寬度數(shù)據(jù)項、印章圖片的真實高度數(shù)據(jù)項、印章圖片精度數(shù)據(jù)項、印章圖片數(shù)據(jù)數(shù)據(jù)項、印章圖片的類型數(shù)據(jù)項及印章圖片的壓縮算法數(shù)據(jù)項。所述用印單位信息數(shù)據(jù)項包含印章單位數(shù)據(jù)項、印章名稱數(shù)據(jù)項、簽章人姓名數(shù)據(jù)項、印章序列號數(shù)據(jù)項及載體序列號數(shù)據(jù)項。所述數(shù)字簽名信息數(shù)據(jù)項存儲有對office文檔進(jìn)行掃描并提取的對象,及對提取的對象計算hash并簽名的數(shù)據(jù)值。所述摘要算法數(shù)據(jù)項中存儲有具體的算法信息。所述證書信息數(shù)據(jù)項存儲有印章載體中的數(shù)字證書的信息。所述文檔保護(hù)密碼數(shù)據(jù)項存儲有office文檔隨機生成的保護(hù)密碼。所述公共實體簽名信息數(shù)據(jù)項存儲有所述公共實體信息字段中除公共實體簽名信息數(shù)據(jù)項之外的所有數(shù)據(jù)項值計算hash后并簽名的數(shù)值。在所述步驟(2)中,所述數(shù)據(jù)流字段通過ActiveX控件的標(biāo)準(zhǔn)IPersistStorage接口將數(shù)據(jù)流字段的信息寫入office文檔中。在所述步驟(3)中,驗章用戶獲得office文檔的簽章結(jié)果,通過ActiveX的IPersistStorage接口和IStream接口讀出所述數(shù)據(jù)流字段。本發(fā)明的一種office文檔電子簽章結(jié)果互驗方法與現(xiàn)有的實現(xiàn)技術(shù)相比,采用標(biāo)準(zhǔn)化ActiveX方式存儲數(shù)據(jù)流字段的方法來解決不同電子簽章軟件間存在存儲數(shù)據(jù)格式的差異性,各種電子簽章軟件可分別在數(shù)據(jù)流字段中實現(xiàn)公共實體數(shù)據(jù)和私有實體數(shù)據(jù),不同電子簽章軟件只關(guān)心公共實體數(shù)據(jù)和屬于自己的私有實體數(shù)據(jù),而不必關(guān)心其他電子簽章軟的私有實體,藉由公共實體存儲互聯(lián)互通需要的數(shù)據(jù),公共實體格式公開,這樣相互驗證、互聯(lián)互通才能得以實現(xiàn)。圖1為本發(fā)明的Office文檔電子簽章結(jié)果互驗機制的流程示意圖。具體實施例方式為了使本發(fā)明實現(xiàn)的技術(shù)手段、創(chuàng)作特征、達(dá)成目的與功效易于明白了解,下面結(jié)合具體圖示,進(jìn)一步闡述本發(fā)明。如圖1所示,一種office文檔電子簽章結(jié)果互驗方法,它包括如下的步驟(1)對需簽章的Office文檔通過對象提取、hash計算以及數(shù)字簽章并填充為數(shù)據(jù)流字段,產(chǎn)生電子簽章結(jié)果,并對電子簽章結(jié)果進(jìn)行數(shù)字簽章保護(hù);(2)將數(shù)據(jù)流字段按照標(biāo)準(zhǔn)化ActiveX存儲方式寫入office文檔,將簽章結(jié)果作為復(fù)合對象存儲在office文檔內(nèi);(3)驗章用戶獲得office文檔的簽章結(jié)果,按照標(biāo)準(zhǔn)化ActiveX接口讀出數(shù)據(jù)流;(4)解析數(shù)據(jù)流字段,按序?qū)炚陆Y(jié)果的數(shù)字簽章的合法性以及文檔簽名的合法性進(jìn)行校驗。首先,打開文檔,按照IStream接口標(biāo)準(zhǔn)創(chuàng)建數(shù)據(jù)流字段GABSIGNATURE,結(jié)構(gòu)如表1所示。表1數(shù)據(jù)流字段GABSIGNATURE的格式定義<table>tableseeoriginaldocumentpage7</column></row><table>office文檔采用IStream接口實現(xiàn)對象的提取,給定函數(shù)調(diào)用接口的api參數(shù),規(guī)范接口的調(diào)用方式。所述的數(shù)據(jù)流字段包含有公共數(shù)據(jù)實體大小字段、公共實體信息字段及私有實體信息字段,所述數(shù)據(jù)流字段通過公共實體信息字段互聯(lián)互通需要的數(shù)據(jù),實現(xiàn)數(shù)據(jù)流字段的相互驗證。其次,創(chuàng)建公共實體信息字段Publiclnforaiation和私有實體信息字段Privatelnformation。公共實體信息字段Publiclnformation的格式如表2所示。表2公共實體信息字段Publiclnforaiation的格式定義<table>tableseeoriginaldocumentpage7</column></row><table><table>tableseeoriginaldocumentpage8</column></row><table><table>tableseeoriginaldocumentpage9</column></row><table>所述公共實體信息字段包含版本號數(shù)據(jù)項、簽章軟件版本號數(shù)據(jù)項、簽章軟件開發(fā)單位代碼數(shù)據(jù)項、簽章類型數(shù)據(jù)項、簽章在文檔中的序號數(shù)據(jù)項、電子印章屬性數(shù)據(jù)項、用印單位信息數(shù)據(jù)項、簽章時間數(shù)據(jù)項、數(shù)字簽名信息數(shù)據(jù)項、摘要算法數(shù)據(jù)項、被簽章文檔描述數(shù)據(jù)項、證書信息數(shù)據(jù)項、文檔保護(hù)密碼數(shù)據(jù)項、office軟件版本數(shù)據(jù)項及公共實體簽名信息數(shù)據(jù)項。所述電子印章屬性數(shù)據(jù)項包含印章圖片的真實寬度數(shù)據(jù)項、印章圖片的真實高度數(shù)據(jù)項、印章圖片精度數(shù)據(jù)項、印章圖片數(shù)據(jù)數(shù)據(jù)項、印章圖片的類型數(shù)據(jù)項及印章圖片的壓縮算法數(shù)據(jù)項。所述用印單位信息數(shù)據(jù)項包含印章單位數(shù)據(jù)項、印章名稱數(shù)據(jù)項、簽章人姓名數(shù)據(jù)項、印章序列號數(shù)據(jù)項及載體序列號數(shù)據(jù)項。按照以下步驟填充公共實體信息字段Publiclnformation的信息。1、將"版本號"填充為1。DraftVersion=l2、根據(jù)簽章軟件公司的規(guī)范填寫"簽章軟件版本號",并根據(jù)向標(biāo)準(zhǔn)發(fā)布單位申請的開發(fā)單位代碼填寫到"簽章軟件開發(fā)單位代碼"。3、"簽章類型"根據(jù)本次簽章操作的類型據(jù)實填寫。4、并根據(jù)當(dāng)前文檔已簽印章數(shù)目填寫"簽章在文檔中的序號"。5、根據(jù)電子印章的屬性填寫"印章圖片的真實寬度","印章圖片的真實高度","印章圖片精度","印章圖片數(shù)據(jù)","印章圖片的類型","印章圖片的壓縮算法"。6、根據(jù)用印單位的信息填寫"印章單位","印章名稱","簽章人姓名","印章序列號","載體序列號"。7、獲取系統(tǒng)時間,填充"簽章時間"8、掃描并提取word對象,計算hash并簽名,將簽名值填寫"數(shù)字簽名信息"。并根據(jù)具體算法填寫"摘要算法"9、提取文檔描述信息,填寫"被簽章文檔描述"10、提取印章載體中的數(shù)字證書的信息,填寫"證書信息"11、生成隨機保護(hù)密碼,并將內(nèi)容填充到"文檔保護(hù)密碼"12、提取系統(tǒng)word軟件的版本信息,填充到"word軟件版本"13、將公共實體中除公共實體簽名信息之外的所有屬性值計算hash并簽名,將結(jié)果填充到"公共實體簽名信息"。所述數(shù)字簽名信息數(shù)據(jù)項存儲有對office文檔進(jìn)行掃描并提取的對象,及對提取的對象計算hash并簽名的數(shù)據(jù)值。所述摘要算法數(shù)據(jù)項中存儲有具體的算法信息。所述證書信息數(shù)據(jù)項存儲有印章載體中的數(shù)字證書的信息。所述文檔保護(hù)密碼數(shù)據(jù)項存儲有office文檔隨機生成的保護(hù)密碼。所述公共實體簽名信息數(shù)據(jù)項存儲有所述公共實體信息字段中除公共實體簽名信息數(shù)據(jù)項之外的所有數(shù)據(jù)項值計算hash后并簽名的數(shù)值。采用ActiveX的標(biāo)準(zhǔn)存儲方式,通過ActiveX的IPersistStorage接口和IStream接口進(jìn)行存儲,存儲數(shù)據(jù)由公共實體信息字段Publiclnformation和私有實體信息字段Privatelnformation構(gòu)成。采用標(biāo)準(zhǔn)化ActiveX存儲數(shù)據(jù)流的方法來解決不同電子簽章軟件間存在存儲數(shù)據(jù)格式的差異性,各種電子簽章軟件可分別在存儲流中實現(xiàn)公共實體數(shù)據(jù)和私有實體數(shù)據(jù)。最后,創(chuàng)建ActiveX控件(遵循表3的規(guī)范),并通過標(biāo)準(zhǔn)接口IPersistStorage將數(shù)據(jù)流字段GABSIGNATURE寫入Office文檔。表3ActiveX控件的IPersistStorage接口名稱和內(nèi)容<formula>formulaseeoriginaldocumentpage10</formula>在所述步驟(2)中,所述數(shù)據(jù)流字段通過ActiveX控件的標(biāo)準(zhǔn)IPersistStorage接口將數(shù)據(jù)流字段的信息寫入office文檔中。在所述步驟(3)中,驗章用戶獲得office文檔的簽章結(jié)果,通過ActiveX的IPersistStorage接口和IStream接口讀出所述數(shù)據(jù)流字段。實現(xiàn)各開發(fā)商的軟件互聯(lián)互通,參考Office軟件支持第三方軟件的要求,對簽章軟件的ActiveX控件簡稱,ActiveX控件類型名稱,ActiveX控件類型ID(ProgID)定義作出規(guī)定。以上顯示和描述了本發(fā)明的基本原理和主要特征和本發(fā)明的優(yōu)點。本行業(yè)的技術(shù)人員應(yīng)該了解,本發(fā)明不受上述實施例的限制,上述實施例和說明書中描述的只是說明本發(fā)明的原理,在不脫離本發(fā)明精神和范圍的前提下,本發(fā)明還會有各種變化和改進(jìn),這些變化和改進(jìn)都落入要求保護(hù)的本發(fā)明范圍內(nèi),本發(fā)明要求保護(hù)范圍由所附的權(quán)利要求書及其等效物界定。權(quán)利要求1、一種office文檔電子簽章結(jié)果互驗方法,其特征在于,它包括如下的步驟(1)對需簽章的Office文檔通過對象提取、hash計算以及數(shù)字簽章并填充為數(shù)據(jù)流字段,產(chǎn)生電子簽章結(jié)果,并對電子簽章結(jié)果進(jìn)行數(shù)字簽章保護(hù);(2)將數(shù)據(jù)流字段按照標(biāo)準(zhǔn)化ActiveX存儲方式寫入office文檔,將簽章結(jié)果作為復(fù)合對象存儲在office文檔內(nèi);(3)驗章用戶獲得office文檔的簽章結(jié)果,按照標(biāo)準(zhǔn)化ActiveX接口讀出數(shù)據(jù)流;(4)解析數(shù)據(jù)流字段,按序?qū)炚陆Y(jié)果的數(shù)字簽章的合法性以及文檔簽名的合法性進(jìn)行校驗。2、如權(quán)利要求l所述的office文檔電子簽章結(jié)果互驗方法,其特征在于office文檔采用IStream接口實現(xiàn)對象的提取,給定函數(shù)調(diào)用接口的api參數(shù),規(guī)范接口的調(diào)用方式。3、如權(quán)利要求1所述的office文檔電子簽章結(jié)果互驗方法,其特征在于所述的數(shù)據(jù)流字段包含有公共數(shù)據(jù)實體大小字段、公共實體信息字段及私有實體信息字段,所述數(shù)據(jù)流字段通過公共實體信息字段互聯(lián)互通需要的數(shù)據(jù),實現(xiàn)數(shù)據(jù)流字段的相互驗證。4、如權(quán)利要求3所述的office文檔電子簽章結(jié)果互驗方法,其特征在于所述公共實體信息字段包含版本號數(shù)據(jù)項、簽章軟件版本號數(shù)據(jù)項、簽章軟件開發(fā)單位代碼數(shù)據(jù)項、簽章類型數(shù)據(jù)項、簽章在文檔中的序號數(shù)據(jù)項、電子印章屬性數(shù)據(jù)項、用印單位信息數(shù)據(jù)項、簽章時間數(shù)據(jù)項、數(shù)字簽名信息數(shù)據(jù)項、摘要算法數(shù)據(jù)項、被簽章文檔描述數(shù)據(jù)項、證書信息數(shù)據(jù)項、文檔保護(hù)密碼數(shù)據(jù)項、office軟件版本數(shù)據(jù)項及公共實體簽名信息數(shù)據(jù)項。5、如權(quán)利要求4所述的office文檔電子簽章結(jié)果互驗方法,其特征在于所述電子印章屬性數(shù)據(jù)項包含印章圖片的真實寬度數(shù)據(jù)項、印章圖片的真實高度數(shù)據(jù)項、印章圖片精度數(shù)據(jù)項、印章圖片數(shù)據(jù)數(shù)據(jù)項、印章圖片的類型數(shù)據(jù)項及印章圖片的壓縮算法數(shù)據(jù)項。6、如權(quán)利要求4所述的office文檔電子簽章結(jié)果互驗方法,其特征在于所述用印單位信息數(shù)據(jù)項包含印章單位數(shù)據(jù)項、印章名稱數(shù)據(jù)項、簽章人姓名數(shù)據(jù)項、印章序列號數(shù)據(jù)項及載體序列號數(shù)據(jù)項。7、如權(quán)利要求4所述的office文檔電子簽章結(jié)果互驗方法,其特征在于:所述數(shù)字簽名信息數(shù)據(jù)項存儲有對office文檔進(jìn)行掃描并提取的對象,及對提取的對象計算hash并簽名的數(shù)據(jù)值。8、如權(quán)利要求4所述的office文檔電子簽章結(jié)果互驗方法,其特征在于所述摘要算法數(shù)據(jù)項中存儲有具體的算法信息。9、如權(quán)利要求4所述的office文檔電子簽章結(jié)果互驗方法,其特征在于所述證書信息數(shù)據(jù)項存儲有印章載體中的數(shù)字證書的信息。10、如權(quán)利要求4所述的office文檔電子簽章結(jié)果互驗方法,其特征在于-所述文檔保護(hù)密碼數(shù)據(jù)項存儲有office文檔隨機生成的保護(hù)密碼。11、如權(quán)利要求4所述的office文檔電子簽章結(jié)果互驗方法,其特征在于所述公共實體簽名信息數(shù)據(jù)項存儲有所述公共實體信息字段中除公共實體簽名信息數(shù)據(jù)項之外的所有數(shù)據(jù)項值計算hash后并簽名的數(shù)值。12、如權(quán)利要求1所述的office文檔電子簽章結(jié)果互驗方法,其特征在于所述數(shù)據(jù)流字段通過ActiveX控件的標(biāo)準(zhǔn)IPersistStorage接口將數(shù)據(jù)流字段的信息寫入office文檔中。13、如權(quán)利要求1所述的office文檔電子簽章結(jié)果互驗方法,其特征在于驗章用戶獲得office文檔的簽章結(jié)果,通過ActiveX的IPersistStorage接口和IStream接口讀出所述數(shù)據(jù)流字段。全文摘要本發(fā)明提供一種office文檔電子簽章結(jié)果互驗方法,與現(xiàn)有的實現(xiàn)技術(shù)相比,采用標(biāo)準(zhǔn)化ActiveX方式存儲數(shù)據(jù)流字段的方法來解決不同電子簽章軟件間存在存儲數(shù)據(jù)格式的差異性,各種電子簽章軟件可分別在數(shù)據(jù)流字段中實現(xiàn)公共實體數(shù)據(jù)和私有實體數(shù)據(jù),不同電子簽章軟件只關(guān)心公共實體數(shù)據(jù)和屬于自己的私有實體數(shù)據(jù),而不必關(guān)心其他電子簽章軟的私有實體,藉由公共實體存儲互聯(lián)互通需要的數(shù)據(jù),公共實體格式公開,這樣相互驗證、互聯(lián)互通才能得以實現(xiàn)。文檔編號H04L9/32GK101378317SQ20081003508公開日2009年3月4日申請日期2008年3月25日優(yōu)先權(quán)日2008年3月25日發(fā)明者欣李,沈寒輝申請人:公安部第三研究所