專利名稱::基于Web服務(wù)的電子公文安全傳輸方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種基于Web服務(wù)的電子公文安全傳輸方法,主要用于電子政務(wù)領(lǐng)域中。
背景技術(shù):
:電子公文交換,是指一個(gè)將AJAX技術(shù)和Web服務(wù)技術(shù)結(jié)合的技術(shù)。通過(guò)設(shè)計(jì)一種電子公文交換機(jī)制,旨在解決不同政務(wù)辦公部門(mén)之間電子文檔傳輸和處理的統(tǒng)一標(biāo)準(zhǔn)問(wèn)題,提高在此期間的安全性和有效性。根據(jù)電子政務(wù)的業(yè)務(wù)特點(diǎn),采取B/S模式作為客戶端和服務(wù)器之間的結(jié)構(gòu),采用分布式的體系結(jié)構(gòu)作為各部門(mén)間政務(wù)信息交互的方式,采用Web服務(wù)技術(shù)作為該電子公文交換機(jī)制的支撐技術(shù)。系統(tǒng)遵循《基于XML的電子公文格式規(guī)范》作為描述和表示電子公務(wù)的規(guī)范,提高了系統(tǒng)的兼容性和互操作性。但是,在基于Web服務(wù)的電子公文交換中,安全問(wèn)題已經(jīng)逐步成為了一項(xiàng)巨大的挑戰(zhàn)。在電子公文交換系統(tǒng)的應(yīng)用場(chǎng)景中,信息在不同部門(mén)間傳輸,通信內(nèi)容往往具有重要的業(yè)務(wù)信息,數(shù)據(jù)通信需要保證不被第三方獲取和掌握。特別是Web服務(wù)松耦合的特點(diǎn),提高了對(duì)安全性的要求,也成為面向服務(wù)環(huán)境中用戶最關(guān)心的問(wèn)題。Web服務(wù)要被廣大企業(yè)用戶所接受,必須解決它所面臨的安全問(wèn)題。而傳統(tǒng)的安全機(jī)制無(wú)法針對(duì)Web服務(wù)的松散耦合、分布的特點(diǎn),實(shí)現(xiàn)一種很好的安全保障。具體來(lái)說(shuō),傳統(tǒng)的安全機(jī)制主要采用傳輸層支持的安全協(xié)議,如SSL、TLS等。而Web服務(wù)技術(shù)作為建立在傳統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)上層的技術(shù)結(jié)構(gòu),可以利用這些技術(shù)作為安全機(jī)制的基礎(chǔ),實(shí)現(xiàn)數(shù)據(jù)加密、認(rèn)證、數(shù)據(jù)完整性和授權(quán)等安全需求。但是,與S0AP本身消息級(jí)的特點(diǎn)相比,這些技術(shù)只能對(duì)整個(gè)SOAP消息進(jìn)行加密,而不能將安全機(jī)制細(xì)化到消息內(nèi)部,形成細(xì)粒度的安全級(jí)別,往往導(dǎo)致大規(guī)模數(shù)據(jù)傳輸時(shí)的性能損耗,形成了Web服務(wù)的瓶頸。同時(shí),根據(jù)Web服務(wù)的需求特點(diǎn),還需要采用其它多種傳輸方式,如SMTP、FTP和ReliableHTTP等,這些協(xié)議并不一定適用建立在HTTP基礎(chǔ)上的安全傳輸方法。此外,在Web服務(wù)環(huán)境中,SOAP消息從發(fā)送方到接收方傳遞的過(guò)程中,根據(jù)具體業(yè)務(wù)的需要,有可能經(jīng)過(guò)多個(gè)中介點(diǎn)。因此,必須考慮發(fā)送方到中介點(diǎn)、中介點(diǎn)之間以及中介點(diǎn)到接收方過(guò)程中的安全機(jī)制,以保證SOAP消息在經(jīng)過(guò)多個(gè)中介點(diǎn)的傳輸過(guò)程中安全,即端到端的安全機(jī)制。傳輸級(jí)協(xié)議SSL/TLS只能提供點(diǎn)到點(diǎn)的安全,而無(wú)法提供端到端的安全。與此同時(shí),申請(qǐng)專利號(hào)為200410057153.6的通過(guò)專用字庫(kù),在公文交換或打印過(guò)程中,自動(dòng)加密電子公文或文檔,使接收單位打印的每份電子公文或文檔彼此在部分字形上有細(xì)微差別,形成電子公文或文檔的特殊編碼,并通過(guò)手工或OCR技術(shù)鑒別公文或文檔的出處與真?zhèn)?。然而,這種技術(shù)存在著保密強(qiáng)度不高,可非法讀取電子公文信息,易受到網(wǎng)絡(luò)中間人攻擊等缺點(diǎn)。
發(fā)明內(nèi)容本發(fā)明的技術(shù)解決問(wèn)題克服現(xiàn)有技術(shù)的不足,提供一種基于Web服務(wù)的電子公文安全傳輸方法,從而保證電子公文在端到端傳輸及多點(diǎn)之間的傳輸安全,使電子公文系統(tǒng)的跨區(qū)域、跨組織的安全特性得到有效和保證。本發(fā)明采用以下技術(shù)方案一種基于Web服務(wù)的電子公文安全傳輸方法,其特征在于電子公文安全交換過(guò)程包括三種情況客戶端加密一客戶端解密;客戶端加密一服務(wù)器端解密;服務(wù)器端加密一客戶端解密,其步驟分別如下;客戶端加密過(guò)程(1)通過(guò)Javascript程序讀取待發(fā)送的電子公文信息和相關(guān)密鑰,所述的相關(guān)密鑰包括DES對(duì)稱密鑰和RSA非對(duì)稱加密算法中的公有密鑰;(2)通過(guò)Java-Applet程序利用讀取的DES對(duì)稱密鑰對(duì)電子公文信息進(jìn)行加密處理,得到密文M1;(3)通過(guò)Java-Applet程序利用讀取的RSA非對(duì)稱加密算法中的公有密鑰對(duì)DES對(duì)稱加密密鑰進(jìn)行加密處理,得到加密后的密鑰K1;(4)根據(jù)上述步驟(2)得到密文M1、步驟(3)得到的加密后的密鑰K1和加密算法DES及RSA,構(gòu)造S0AP消息,傳輸給接收方;客戶端解密過(guò)程^(5)通過(guò)Javascript程序?qū)邮盏降腟OAP消息進(jìn)行解析,提取出加密處理后的密文M1、加密后的密鑰K1和加密算法DES及RSA;(6)通過(guò)Java-Applet程序利用RSA算法中的私有密鑰對(duì)DES對(duì)稱密鑰進(jìn)行解密操作,得到DES解密密鑰;(7)Java-Applet程序通過(guò)DES解密密鑰,對(duì)上述步驟(5)中提取出的密文M1進(jìn)行解密操作,得到解密后的電子公文信息;(8)將經(jīng)解密處理后的電子公文信息通過(guò)HTML形式展現(xiàn)給相關(guān)用戶;服務(wù)器端加密過(guò)程(9)通過(guò)Java程序讀取相關(guān)密鑰信息和待加密的電子公文信息,所述的相關(guān)密鑰包括DES對(duì)稱密鑰和RSA非對(duì)稱加密算法中的公有密鑰;(10)通過(guò)Java程序使用所述步驟(9)中讀取的DES對(duì)稱密鑰,對(duì)待發(fā)送的電子公文信息進(jìn)行加密處理,得到密文M2;(11)通過(guò)Java程序利用讀取的RSA非對(duì)稱加密算法中的公有密鑰對(duì)DES對(duì)稱加密密鑰進(jìn)行加密處理,得到加密后的密鑰K2;(12)根據(jù)上述步驟(10)得到密文M2、步驟(11)得到的加密后的密鑰K2和加密算法DES及RSA,構(gòu)造SOAP消息傳輸給接收方;服務(wù)器端解密過(guò)程U3)通過(guò)Java程序?qū)邮盏降腟0AP消息進(jìn)行解析,提取出加密處理后的密文M2、加密后的密鑰K2和加密算法DES及RSA;(14)通過(guò)Java程序利用RSA算法中的私有密鑰,利用私有密鑰對(duì)DES對(duì)稱密鑰進(jìn)行解密操作,得到DES解密密鑰;(15)Java程序通過(guò)DES解密密鑰,對(duì)步驟(13)中提取出的密文M2進(jìn)行解密操作,得到解密后的電子公文信息。本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點(diǎn)在于(1)基于Web服務(wù)的安全傳輸方法,確保本發(fā)明中的電子公文系統(tǒng)的跨區(qū)域、跨組織的安全特性。本發(fā)明通過(guò)實(shí)現(xiàn)WS-Security協(xié)議的相關(guān)規(guī)范標(biāo)準(zhǔn),將原有的一些安全保障機(jī)制都建立在SOAP協(xié)議基礎(chǔ)之上,主要解決Web服務(wù)在傳輸過(guò)程中的機(jī)密性等安全問(wèn)題,它具有可擴(kuò)展性、平臺(tái)無(wú)關(guān)性等優(yōu)點(diǎn)。在本發(fā)明中所采用的基于Web服務(wù)的安全機(jī)制,事實(shí)上是對(duì)SOAP消息的一種擴(kuò)展,從而有效地集成原有的一些安全處理機(jī)制,確保本發(fā)明中的電子公文系統(tǒng)的跨區(qū)域、跨組織的安全特性。(2)對(duì)稱加密算法和非對(duì)稱加密算法相結(jié)合的加解密機(jī)制,達(dá)到效率和安全性兼顧的效果。對(duì)稱加密算法是指,加密和解密使用相同的密鑰,即加密密鑰也可以用作解密密鑰。對(duì)稱加密算法使用起來(lái)簡(jiǎn)單快捷,密鑰較短,且破譯困難。對(duì)稱加密的缺點(diǎn)在于它要求發(fā)送方和接收方在安全通信之前,商定一個(gè)密鑰。對(duì)稱算法的安全性依賴于密鑰,泄漏密鑰就意味著任何人都可以對(duì)他們發(fā)送或接收的消息解密,因此,對(duì)稱加密算法的安全性不高。而非對(duì)稱加密算法是指,加解密過(guò)程需要兩個(gè)密鑰公開(kāi)密鑰和私有密鑰。公開(kāi)密鑰與私有密鑰是一對(duì),如果用公開(kāi)密鑰對(duì)數(shù)據(jù)進(jìn)行加密,只有用對(duì)應(yīng)的私有密鑰才能解密;如果用私有密鑰對(duì)數(shù)據(jù)進(jìn)行加密,那么只有用對(duì)應(yīng)的公開(kāi)密鑰才能解密。雖然非對(duì)稱加密算法的安全性提高了,但是非對(duì)稱加密的缺點(diǎn)在于算法實(shí)現(xiàn)后的效率低、速度慢。在本發(fā)明中,在公文數(shù)據(jù)傳輸過(guò)程中,是通過(guò)運(yùn)用對(duì)稱加密算法和非對(duì)稱加密算法相結(jié)合的方法,從而達(dá)到效率和安全性兼顧的效果。(3)基于Web瀏覽器的Ajax+Applet訪問(wèn),提高系統(tǒng)的用戶友好性和易用性。在本發(fā)明中,為減少服務(wù)器的負(fù)擔(dān),提高系統(tǒng)的用戶友好性和易用性,采用Ajax技術(shù),由Ajax形成SOAP消息。但是由于Ajax技術(shù)本身對(duì)加密解密的機(jī)制支持有限,因此采用Java中的Applet技術(shù)作為輔助實(shí)現(xiàn)。Applet是伴隨Java語(yǔ)言誕生和發(fā)展的技術(shù)。用戶可以通過(guò)網(wǎng)絡(luò)將它下載到瀏覽器中運(yùn)行。并可以將Applet嵌入到網(wǎng)頁(yè)中,形成支持Applet的頁(yè)面效果。因此,系統(tǒng)中由Ajax進(jìn)行展示和SOAP操作,加密解密的功能由Applet執(zhí)行,Applet可以作為組件代碼,嵌入到Ajax頁(yè)面當(dāng)中,將明文SOAP消息轉(zhuǎn)變?yōu)榘滴腟OAP消息,發(fā)送到服務(wù)器端。服務(wù)器端進(jìn)行解密,變成明文SOAP后進(jìn)行業(yè)務(wù)功能的執(zhí)行。(4)此外,本發(fā)明的私有密鑰采用USBKey方式存儲(chǔ),基于Javascript的密鑰讀取,進(jìn)一步保證了用戶認(rèn)證的安全性。傳統(tǒng)的信息安全與保護(hù)措施是通過(guò)軟件實(shí)現(xiàn)加密和簽名。但這種方法存在許多潛在的危險(xiǎn),因?yàn)檐浖?shí)現(xiàn)加密和簽名時(shí),必須在電腦的處理器中被執(zhí)行,意味著處理器完全可以得到密鑰。安全隱患出現(xiàn)了,因?yàn)楹诳屯耆心芰η秩肽愕碾娔X,甚至從網(wǎng)絡(luò)通訊過(guò)程中獲取密鑰,并且在非授權(quán)的情況下使用這個(gè)密鑰。一旦黑客擁有了這個(gè)密鑰,它就可以在系統(tǒng)之外對(duì)截獲的數(shù)據(jù)進(jìn)行加密和解密。面對(duì)現(xiàn)在頻繁出現(xiàn)的黑客入侵事件,個(gè)人和企業(yè)內(nèi)部的大量信息財(cái)富正面臨著各種危險(xiǎn)。因此,在本發(fā)明中,為了更好的提高安全性,在Ajax客戶端是采用了USBKey方式存儲(chǔ)密鑰。USBKey是一種USB接口的硬件設(shè)備。它內(nèi)置單片機(jī)或智能卡芯片,有一定的存儲(chǔ)空間,可以存儲(chǔ)用戶的私鑰以及數(shù)字證書(shū),利用USBKey內(nèi)置的公鑰算法實(shí)現(xiàn)對(duì)用戶身份的認(rèn)證。由于用戶私鑰保存在密碼鎖中,理論上使用任何方式都無(wú)法讀取,因此進(jìn)一步保證了用戶認(rèn)證的安全性。圖1為本發(fā)明采用的客戶端加密過(guò)程示意圖;圖2為本發(fā)明采用的客戶端解密過(guò)程示意圖;圖3為本發(fā)明采用的服務(wù)器端加密過(guò)程示意圖;圖4位本發(fā)明采用的服務(wù)器端解密過(guò)程示意圖;圖5為本發(fā)明采用的Javascript程序讀取私有密鑰過(guò)程示意圖。具體實(shí)施例方式本發(fā)明實(shí)現(xiàn)一種基于Web服務(wù)的電子公文安全機(jī)制,具體的實(shí)施說(shuō)明如下所示1、客戶端基本加密過(guò)程如圖l所示,具體步驟如下-(1)通過(guò)Javascript程序讀取待發(fā)送的電子公文信息和相關(guān)密鑰,所述的相關(guān)密鑰包括DES對(duì)稱密鑰和RSA非對(duì)稱加密算法中的公有密鑰;通過(guò)Javascript程序讀取待發(fā)送的電子公文信息和相關(guān)密鑰的過(guò)程為a.Javascript程序通過(guò)搜索所在主機(jī)的指定路徑,讀取待發(fā)送的電子公文信息;b.Javascript程序通過(guò)搜索所在主機(jī)的指定路徑,讀取DES對(duì)稱加密密鑰,以便在加密處理時(shí)使用;c.Javascript程序通過(guò)搜索所在主機(jī)的指定路徑,讀取非對(duì)稱加密算法中的公有密鑰,以便在加密處理時(shí)使用。(2)通過(guò)Java-A卯let程序利用上述讀取的DES對(duì)稱密鑰對(duì)電子公文信息進(jìn)行加密處理,得到密文M1;(3)通過(guò)Java-A卯let程序利用上述讀取的RSA非對(duì)稱加密算法中的公有密鑰對(duì)DES對(duì)稱加密密鑰進(jìn)行加密處理,得到加密后的密鑰K1;(4)根據(jù)上述步驟(2)得到密文M1、步驟(3)得到的加密后的密鑰K1和加密算法DES及RSA,構(gòu)造S0AP消息,傳輸給接收方;構(gòu)造SOAP消息包括以下具體步驟在SOAP消息的頭部,加入符合WS-Sercurity安全規(guī)范協(xié)議的安全信息,包括加密后的密鑰K1,以及加密中所使用的加密算法和密鑰信息,具體安全信息存放位置,如下所示<table>tableseeoriginaldocumentpage9</column></row><table><table>tableseeoriginaldocumentpage10</column></row><table>b.將加密后的密文集成到SOAP消息的體部,具體存放位置,如下所示:<table>tableseeoriginaldocumentpage10</column></row><table>c.最后,將按上述步驟所構(gòu)造的SOAP消息發(fā)送給接收方f其中,按照上述步驟所構(gòu)造的SOAP消息的完整格式如下所示加密處理后的SOAP消息格式:<table>tableseeoriginaldocumentpage10</column></row><table><table>tableseeoriginaldocumentpage11</column></row><table>2、客戶端基本解密過(guò)程如圖2所示,具體步驟如下所示:(5)通過(guò)Javascript程序?qū)邮盏降腟OAP消息進(jìn)行解析,提取出加密處理后的密文M1、加密后的密鑰K1和加密算法DES及RSA;對(duì)SOAP消息進(jìn)行解析的過(guò)程如下a.通過(guò)Javascript程序在本地主機(jī)的指定路徑上,找到帶有密文信息的SOAP消息后,再提取出SOAP消息的體部,即加密處理后的密文M1、頭部中的〈wsse:Security〉〈/wsse:Security〉所包含的加密后的密鑰Kl和加密算法DES及RSA;b.通過(guò)Javascript程序解析SOAP消息頭部中的〈wsse:Security〉,從中提取出加密后的密鑰K1和加密算法DES及RSA。(6)通過(guò)Java-A卯let程序利用RSA算法中的私有密鑰對(duì)DES對(duì)稱密鑰進(jìn)行解密操作,得到DES解密密鑰;上述的私有密鑰通過(guò)USBKey方式保存,并由Javascript程序提取。通過(guò)Javascript程序提取出由USBKey方式保存的RSA算法中的私有密鑰的過(guò)程如圖5所示a.通過(guò)Javascript程序首先對(duì)主機(jī)進(jìn)行搜索,搜索是否具有U盤(pán)或其他可移動(dòng)存儲(chǔ)設(shè)備,如果搜索結(jié)果是沒(méi)有,則提示用戶"尚未發(fā)現(xiàn)可移動(dòng)存儲(chǔ)設(shè)備",并等待用戶插入存儲(chǔ)有密鑰的U盤(pán);b.如果Javascript程序搜索到U盤(pán),則從中讀取存儲(chǔ)有私有密鑰的文件。(7)Java-Applet程序通過(guò)DES解密密鑰,對(duì)上述步驟(5)中提取出的密文Ml進(jìn)行解密操作,得到解密后的電子公文信息;(8)將經(jīng)解密處理后的電子公文信息通過(guò)HTML形式展現(xiàn)給相關(guān)用戶;在這一步中,主要是通過(guò)XSLT轉(zhuǎn)換器生成HTML文件,具體過(guò)程如下通過(guò)XSLT轉(zhuǎn)換器生成HTML文件,其中,XSLT代表XSL轉(zhuǎn)換(XSLTransformations),XSLT是用于把XML文件轉(zhuǎn)換成另一份XML文件,或者轉(zhuǎn)換成另一種被瀏覽器所識(shí)別的諸如HTML和XHTML類型的文件。通常情況下,XSLT是通過(guò)把每個(gè)XML元素轉(zhuǎn)換成(X)HTML文件來(lái)完成的。3、服務(wù)器端加密過(guò)程如圖3所示,與客戶端加密過(guò)程比較,服務(wù)器端加密過(guò)程基本類似,不同之處在于對(duì)電子公文信息進(jìn)行加密的過(guò)程中使用的是Java程序,而不是Java-Applet程序,具體步驟如下所示(9)通過(guò)Java程序讀取相關(guān)密鑰信息和待加密的電子公文信息,所述的相關(guān)密鑰包括DES對(duì)稱密鑰和RSA非對(duì)稱加密算法中的公有密鑰;(10)通過(guò)Java程序使用所述步驟(9)中讀取的DES對(duì)稱密鑰,對(duì)待發(fā)送的電子公文信息進(jìn)行加密處理,得到密文M2;(11)通過(guò)Java程序利用讀取的RSA非對(duì)稱加密算法中的公有密鑰對(duì)DES對(duì)稱加密密鑰進(jìn)行加密處理,得到加密后的密鑰K2;(12)根據(jù)上述步驟(10)得到密文M2、步驟(11)得到的加密后的密鑰K2和加密算法DES及RSA,構(gòu)造SOAP消息傳輸給接收方;本步驟中SOAP消息的過(guò)程為a.在SOAP消息的頭部,加入符合WS-Sercurity安全規(guī)范協(xié)議的安全信息,包括加密后的密鑰K2和加密算法DES及RSA;b.將加密后的密文M2集成到S0AP消息的體部。(4)服務(wù)器端解密過(guò)程如圖4所示,與客戶端解密過(guò)程比較,服務(wù)器端解密過(guò)程基本類似,不同之處在于兩點(diǎn)第一點(diǎn)在服務(wù)器端,直接使用Java程序在服務(wù)器上搜索私有密鑰信息,而不是在USBKey設(shè)備上進(jìn)行搜索;第二點(diǎn)在解密過(guò)程中服務(wù)器端是使用Java程序進(jìn)行解密操作,而不是Java-Applet程序。具體步驟如下所示(13)通過(guò)Java程序?qū)邮盏降腟OAP消息進(jìn)行解析,提取出加密處理后的密文M2、加密后的密鑰K2和加密算法DES及RSA;本步驟通過(guò)Java程序?qū)邮盏降腟OAP消息進(jìn)行解析的過(guò)程為a.通過(guò)Jaya程序在本地主機(jī)的指定路徑上,找到帶有密文信息的SOAP消息后,再提取出SOAP消息的體部,即加密處理后的密文M2、頭部中的〈wsse:SecurityX/wsse:Security〉所包含的加密后的密鑰K2和加密算法DES及RSA;b.通過(guò)Java程序解析SOAP消息頭部中的〈wsse:Security〉,從中提取出加密后的密鑰K2和加密算法DES及RSA。(t4)通過(guò)Java程序利用RSA算法中的私有密鑰,利用私有密鑰對(duì)DES對(duì)稱密鑰進(jìn)行解密操作,得到DES解密密鑰;(15)Java程序通過(guò)DES解密密鑰,對(duì)步驟(13)中提取出的密文M2進(jìn)行解密操作,得到解密后的電子公文信息。本發(fā)明未詳細(xì)描述部分屬于本領(lǐng)域公知技術(shù)。以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本
技術(shù)領(lǐng)域:
的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以作出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。權(quán)利要求1、一種基于Web服務(wù)的電子公文安全傳輸方法,其特征在于電子公文安全交換過(guò)程包括三種情況客戶端加密-客戶端解密;客戶端加密-服務(wù)器端解密;服務(wù)器端加密-客戶端解密,步驟如下客戶端加密過(guò)程(1)通過(guò)Javascript程序讀取待發(fā)送的電子公文信息和相關(guān)密鑰,所述的相關(guān)密鑰包括DES對(duì)稱密鑰和RSA非對(duì)稱加密算法中的公有密鑰;(2)通過(guò)Java-Applet程序利用讀取的DES對(duì)稱密鑰對(duì)電子公文信息進(jìn)行加密處理,得到密文M1;(3)通過(guò)Java-Applet程序利用讀取的RSA非對(duì)稱加密算法中的公有密鑰對(duì)DES對(duì)稱加密密鑰進(jìn)行加密處理,得到加密后的密鑰K1;(4)根據(jù)上述步驟(2)得到密文M1、步驟(3)得到的加密后的密鑰K1和加密算法DES及RSA,構(gòu)造SOAP消息,傳輸給接收方;客戶端解密過(guò)程(5)通過(guò)Javascript程序?qū)邮盏降腟OAP消息進(jìn)行解析,提取出加密處理后的密文M1、加密后的密鑰K1和加密算法DES及RSA;(6)通過(guò)Java-Applet程序利用RSA算法中的私有密鑰對(duì)DES對(duì)稱密鑰進(jìn)行解密操作,得到DES解密密鑰;(7)Java-Applet程序通過(guò)DES解密密鑰,對(duì)上述步驟(5)中提取出的密文M1進(jìn)行解密操作,得到解密后的電子公文信息;(8)將經(jīng)解密處理后的電子公文信息通過(guò)HTML形式展現(xiàn)給相關(guān)用戶;服務(wù)器端加密過(guò)程(9)通過(guò)Java程序讀取相關(guān)密鑰信息和待加密的電子公文信息,所述的相關(guān)密鑰包括DES對(duì)稱密鑰和RSA非對(duì)稱加密算法中的公有密鑰;(10)通過(guò)Java程序使用所述步驟(9)中讀取的DES對(duì)稱密鑰,對(duì)待發(fā)送的電子公文信息進(jìn)行加密處理,得到密文M2;(11)通過(guò)Java程序利用讀取的RSA非對(duì)稱加密算法中的公有密鑰對(duì)DES對(duì)稱加密密鑰進(jìn)行加密處理,得到加密后的密鑰K2;(12)根據(jù)上述步驟(10)得到密文M2、步驟(11)得到的加密后的密鑰K2和加密算法DES及RSA,構(gòu)造SOAP消息傳輸給接收方;服務(wù)器端解密過(guò)程;(13)通過(guò)Java程序?qū)邮盏降腟OAP消息進(jìn)行解析,提取出加密處理后的密文M2、加密后的密鑰K2和加密算法DES及RSA;(14)通過(guò)Java程序利用RSA算法中的私有密鑰,利用私有密鑰對(duì)DES對(duì)稱密鑰進(jìn)行解密操作,得到DES解密密鑰;(15)Java程序通過(guò)DES解密密鑰,對(duì)步驟(13)中提取出的密文M2進(jìn)行解密操作,得到解密后的電子公文信息。2、根據(jù)權(quán)利要求l所述的基于Web服務(wù)的電子公文安全傳輸方法,其特征在于所述的客戶端加密過(guò)程中步驟(1),通過(guò)Javascript程序讀取待發(fā)送的電子公文信息和相關(guān)密鑰步驟為(1)Javascript程序通過(guò)搜索所在主機(jī)的指定路徑,讀取待發(fā)送的電子公文信息;(2)Javascript程序通過(guò)搜索所在主機(jī)的指定路徑,讀取DES對(duì)稱加密密鑰,以便在加密處理時(shí)使用;(3)Javascript程序通過(guò)搜索所在主機(jī)的指定路徑,讀取RSA非對(duì)稱加密算法中的公有密鑰,以便在加密處理時(shí)使用。3、根據(jù)權(quán)利要求l所述的基于Web服務(wù)的電子公文安全傳輸方法,其特征在于所述的客戶端加密過(guò)程的步驟(4)中,構(gòu)造SOAP消息如下(1)在SOAP消息的頭部,加入符合WS-Sercur"ity安全規(guī)范協(xié)議的安全信息,包括加密后的密鑰K1和加密算法DES及RSA;(2)將加密后的密文M1集成到S0AP消息的體部。4、根據(jù)權(quán)利要求l所述的基于Web服務(wù)的電子公文安全傳輸方法,其特征在于所述的客戶端解密過(guò)程步驟(6)中私有密鑰通過(guò)USBKey方式保存,并由Javascript程序提取。5、根據(jù)權(quán)利要求4所述的基于Web服務(wù)的電子公文安全傳輸方法,其特征在于-所述的通過(guò)Javascript程序提取出由USBKey方式保存的RSA算法中的私有密鑰的過(guò)程如下(1)Javascript程序首先對(duì)主機(jī)進(jìn)行搜索,搜索是否具有U盤(pán)或其他可移動(dòng)存儲(chǔ)設(shè)備,如果搜索結(jié)果是沒(méi)有,則提示用戶"尚未發(fā)現(xiàn)可移動(dòng)存儲(chǔ)設(shè)備",并等待用戶插入存儲(chǔ)有密鑰的U盤(pán);(2)如果Javascript程序搜索到U盤(pán),則從中讀取存儲(chǔ)有私有密鑰的文件。6、根據(jù)權(quán)利要求l所述的基于Web服務(wù)的電子公文安全傳輸方法,其特征在于所述的客戶端解密過(guò)程步驟(5)中的實(shí)現(xiàn)過(guò)程為(1)通過(guò)Javascript程序在本地主機(jī)的指定路徑上,找到帶有密文信息的SOAP消息后,再提取出SOAP消息的體部,即加密處理后的密文Ml、頭部中的〈wsse:SecurityX/wsse:Security〉所包含的加密后的密鑰Kl和加密算法DES及RSA;(2)通過(guò)Javascript程序解析SOAP消息頭部中的〈wsse:Security〉,從中提取出加密后的密鑰K1和加密算法DES及RSA。7、根據(jù)權(quán)利要求l所述的基于Web服務(wù)的電子公文安全傳輸方法,其特征在于所述的客戶端解密過(guò)程的步驟(7)中將經(jīng)解密處理后的電子公文信息通過(guò)HTML形式展現(xiàn)給相關(guān)用戶過(guò)程為通過(guò)XSLT轉(zhuǎn)換器生成HTML文件,其中XSLT代表XSL轉(zhuǎn)換,XSLT是用于把XML文件轉(zhuǎn)換成另一份XML文件,或者轉(zhuǎn)換成另一種被瀏覽器所識(shí)別的HTML和XHTML類型的文件。8、根據(jù)權(quán)利要求l所述的基于Web服務(wù)的電子公文安全傳輸方法,其特征在于-所述的服務(wù)器端加密過(guò)程的步驟(12)的構(gòu)造SOAP消息的過(guò)程為(1)在SOAP消息的頭部,加入符合WS-Sercurity安全規(guī)范協(xié)議的安全信息,包括加密后的密鑰K2和加密算法DES及RSA;(2)將加密后的密文M2集成到S0AP消息的體部。9、根據(jù)權(quán)利要求l所述的基于Web服務(wù)的電子公文安全傳輸方法,其特征在于所述的服務(wù)端解密過(guò)程的步驟(13)的實(shí)現(xiàn)過(guò)程為(1)通過(guò)Java程序在本地主機(jī)的指定路徑上,找到帶有密文信息的SOAP消息后,再提取出SOAP消息的體部,即加密處理后的密文M2、頭部中的〈wsse:Security〉〈/wsse:Security〉所包含的加密后的密鑰K2和加密算法DES及RSA;(2)通過(guò)Java程序解析SOAP消息頭部中的〈wsse:Security〉,從中提取出加密后的密鑰K2和加密算法DES及RSA。全文摘要一種基于Web服務(wù)的電子公文安全傳輸方法客戶端加密由Javascript程序讀取電子公文信息和相關(guān)密鑰,由Java-Applet程序加密處理;最后構(gòu)造SOAP消息,傳輸給接收方;客戶端解密由Javascript程序接析SOAP消息提取出電子公文信息和加密信息,再由Java-Applet程序解密處理,通過(guò)HTML形式展現(xiàn)給相關(guān)用戶;服務(wù)器端加密與客戶端加密類似,不同之處在于對(duì)電子公文信息進(jìn)行加密的過(guò)程中使用的是Java程序,而不是Java-Applet程序;服務(wù)解密直接使用Java程序在服務(wù)器上搜索私有密鑰信息,而不是在USBKey設(shè)備上進(jìn)行搜索,且在解密過(guò)程中,服務(wù)器端是使用Java程序進(jìn)行解密操作,而不是Java-Applet程序。本發(fā)明保證了數(shù)據(jù)在端到端傳輸和多點(diǎn)之間的傳輸安全。文檔編號(hào)H04L9/30GK101321057SQ200810116989公開(kāi)日2008年12月10日申請(qǐng)日期2008年7月22日優(yōu)先權(quán)日2008年7月22日發(fā)明者浩曾,晶李,冬韓,馬殿富申請(qǐng)人:北京航空航天大學(xué)