專利名稱:一種基于公開密鑰體系的數(shù)據(jù)安全傳輸?shù)姆椒捌溲b置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種提高網(wǎng)絡(luò)數(shù)據(jù)安全傳輸性能的方法及裝置,尤其涉及一種基于公開密鑰體系(Public Key Infrastructure,以下簡稱PKI)在單證書情況下提高數(shù)據(jù)傳輸效率并保證數(shù)據(jù)安全傳輸?shù)姆椒捌溲b置。
背景技術(shù):
隨著互聯(lián)網(wǎng)的驚人成長以及信息技術(shù)的快速進(jìn)步,新一代電子商務(wù)正在改變?nèi)藗兊纳罘绞?,如網(wǎng)上購物、網(wǎng)上股票交易、電子貿(mào)易、電子銀行、網(wǎng)上納稅、網(wǎng)上報關(guān)等等。由于互聯(lián)網(wǎng)的開放性設(shè)計,存在著許多安全問題,嚴(yán)重影響了電子商務(wù)的普及和發(fā)展。其中最重要的,一是數(shù)據(jù)在傳輸過程中的安全性問題,即如何防止數(shù)據(jù)被截獲、竊聽、篡改等,二是用戶身份的合法認(rèn)證問題,即如何防止用戶密碼被盜用、偽裝合法用戶等。而在電子商務(wù)中,數(shù)據(jù)傳輸?shù)陌踩酝鞘滓囊?,而用戶身份的合法認(rèn)證一般可以通過其他方式予以保證,如采用用戶名、密碼等。
為了保證電子商務(wù)活動的安全性,人們采用了很多方法,其中應(yīng)用最為普遍、最為成功的是PKI技術(shù)。PKI是一種新的安全技術(shù),它由公開密鑰密碼技術(shù)、數(shù)字證書、數(shù)字證書認(rèn)證機構(gòu)CA(Certificate Authority)和關(guān)于公開密鑰的安全策略等基本成分共同組成的。PKI是利用公鑰技術(shù)實現(xiàn)電子商務(wù)安全的一種體系,是一種基礎(chǔ)設(shè)施,網(wǎng)絡(luò)通訊、網(wǎng)上交易是利用它來保證安全的。
在基于PKI的應(yīng)用中,一般都要求參與電子商務(wù)活動各個實體,包括用戶和服務(wù)商,都必須向認(rèn)證機構(gòu)CA中心申請數(shù)字證書,通過各自的證書來完成數(shù)據(jù)加解密、數(shù)字簽名等功能,以實現(xiàn)數(shù)據(jù)傳輸?shù)谋C苄浴?shù)據(jù)交換的完整性、發(fā)送信息的不可否認(rèn)性及身份的確定性。
為了實現(xiàn)數(shù)據(jù)在客戶端和服務(wù)端的安全傳輸,當(dāng)用戶向服務(wù)商發(fā)出交易請求以及服務(wù)商向用戶返回服務(wù)應(yīng)答的過程中,需要對數(shù)據(jù)數(shù)據(jù)進(jìn)行一系列加解密處理,這種處理是通過各種加解密算法實現(xiàn)的,常見的加密算法有單鑰密碼算法和雙鑰密碼算法。
單鑰密碼算法又稱對稱密碼算法,是指加密密鑰和解密密鑰為同一密鑰的密碼算法。因此,信息的發(fā)送者和信息的接收者在進(jìn)行信息的傳輸與處理時,必須共同持有該密鑰(稱為對稱密鑰)。在對稱密鑰密碼算法中,加密運算與解密運算使用同樣的密鑰,因此,使用的加密算法比較簡便高效。最典型的是DES算法。DES(Data Encryption Standard,數(shù)據(jù)加密標(biāo)準(zhǔn))算法,它是一個分組加密算法,它以64bit位(8byte)為分組對數(shù)據(jù)加密,其中有8bit奇偶校驗,有效密鑰長度為56bit。64位一組的明文從算法的一端輸入,64位的密文從另一端輸出。DES是一個對稱算法,加密和解密用的是同一算法。
雙鑰密碼算法,又稱公鑰密碼算法,是指加密密鑰和解密密鑰為兩個不同密鑰的密碼算法。公鑰密碼算法不同于單鑰密碼算法,它使用了一對密鑰一個用于加密信息,另一個則用于解密信息,通信雙方無需事先交換密鑰就可進(jìn)行保密通信。其中加密密鑰不同于解密密鑰,加密密鑰公之于眾,誰都可以用;解密密鑰只有解密人自己知道。這兩個密鑰之間存在著相互依存關(guān)系即用其中任一個密鑰加密的信息只能用另一個密鑰進(jìn)行解密。若以公鑰作為加密密鑰,以用戶專用密鑰(私鑰)作為解密密鑰,則可實現(xiàn)多個用戶加密的信息只能由一個用戶解讀;反之,以用戶私鑰作為加密密鑰而以公鑰作為解密密鑰,則可實現(xiàn)由一個用戶加密的信息而多個用戶解讀。前者可用于數(shù)字加密,后者可用于數(shù)字簽名。
在通過網(wǎng)絡(luò)傳輸信息時,公鑰密碼算法體現(xiàn)出了單密鑰加密算法不可替代的優(yōu)越性。對于參加電子交易的服務(wù)商來說,希望通過公開網(wǎng)絡(luò)與成千上萬的用戶進(jìn)行交易。若使用對稱密碼,則每個用戶都需要由服務(wù)商直接分配一個密碼,并且密碼的傳輸必須通過一個單獨的安全通道。相反,在公鑰密碼算法中,同一個服務(wù)商只需自己產(chǎn)生一對密鑰,并且將公開鑰對外公開。用戶戶只需用服務(wù)商的公開鑰加密信息,就可以保證將信息安全地傳送給商戶。
公鑰密碼算法中的密鑰依據(jù)性質(zhì)劃分,可分為公鑰和私鑰兩種。用戶產(chǎn)生一對密鑰,將其中的一個向外界公開,稱為公鑰;另一個則自己保留,稱為私鑰。凡是獲悉用戶公鑰的任何人若想向用戶傳送信息,只需用用戶的公鑰對信息加密,將信息密文傳送給用戶便可。因為公鑰與私鑰之間存在的依存關(guān)系,在用戶安全保存私鑰的前提下,只有用戶本身才能解密該信息,任何未受用戶授權(quán)的人包括信息的發(fā)送者都無法將此信息解密。
RSA公鑰密碼算法是一種公認(rèn)十分安全的公鑰密碼算法。它的命名取自三個創(chuàng)始人Rivest、Shamir和Adelman。RSA公鑰密碼算法是目前網(wǎng)絡(luò)上進(jìn)行保密通信和數(shù)字簽名的最有效的安全算法。RSA算法的安全性基于數(shù)論中大素數(shù)分解的困難性,所以,RSA需采用足夠大的整數(shù)。因子分解越困難,密碼就越難以破譯,加密強度就越高。
圖1所示的是傳統(tǒng)PKI在雙證書狀態(tài)下用戶和服務(wù)商之間的交易數(shù)據(jù)安全處理示意圖。客戶端和服務(wù)端通常為計算機、服務(wù)器或者其他電子通信設(shè)備或者應(yīng)用程序??蛻舳撕头?wù)端均安裝有數(shù)字證書,并通過相應(yīng)的應(yīng)用程序?qū)崿F(xiàn)對數(shù)據(jù)的加解密。在這種模式下,客戶端和服務(wù)端之間傳送的數(shù)據(jù)都通過數(shù)字證書進(jìn)行了加密。圖2描述了這種模式的詳細(xì)處理過程當(dāng)用戶通過客戶端向服務(wù)商發(fā)出交易請求后,客戶端對數(shù)據(jù)做如下加密處理<1>根據(jù)DES算法生成DES密鑰;<2>使用DES密鑰加密數(shù)據(jù);<3>使用服務(wù)商證書加密DES密鑰;<4>通過網(wǎng)絡(luò)發(fā)送加密的請求和已加密的DES密鑰;當(dāng)服務(wù)端收到用戶的交易請求后,對數(shù)據(jù)進(jìn)行如下解密處理<5>使用服務(wù)商私鑰解密DES密鑰;<6>根據(jù)明文DES密鑰解密交易請求;通過解密處理后,服務(wù)端將解密后的請求數(shù)據(jù)交由服務(wù)商處理。然后,服務(wù)商向用戶發(fā)送交易處理應(yīng)答,由服務(wù)端對交易應(yīng)答做如下加密處理<7>根據(jù)DES算法生成DES密鑰;<8>使用該DES密鑰加密應(yīng)答數(shù)據(jù);<9>使用用戶的證書加密DES密鑰;這樣,服務(wù)端向客戶端發(fā)送的是密文應(yīng)答數(shù)據(jù)和密文DES密鑰,客戶端收到后需要做如下解密處理<10>使用用戶密鑰解密DES密鑰;<11>使用解密后的DES密鑰解密應(yīng)答數(shù)據(jù)。
然后,客戶端將交易應(yīng)答返回給用戶,這樣用戶與服務(wù)商之間就進(jìn)行了一次安全、完整的交易輪回。
由以上的交易流程可以看出,在雙證書狀態(tài)下實現(xiàn)交易數(shù)據(jù)的安全傳輸具有以下缺點首先,它要求用戶進(jìn)行繁瑣的證書申請、密鑰保護(hù)等操作,而對于普通用戶來說不可能具有足夠的耐心和能力;對于服務(wù)商來說,客戶量、交易額的增長依賴于數(shù)字證書的普及程度,鑒于普通用戶的耐心和能力所限,用戶申請證書的數(shù)量相對于使用網(wǎng)絡(luò)的用戶量非常小,服務(wù)商的客戶量和交易額也就很難發(fā)展起來。
其次,在每一筆交易中,客戶端和服務(wù)端都需要兩次非對稱算法的計算,導(dǎo)致交易的效率顯著降低,特別是當(dāng)服務(wù)商同時處理多個交易請求時,用戶往往需要經(jīng)過很長時間的等待,當(dāng)一筆交易需要多次往返處理時,交易的時間就更長,這樣不僅交易的效率比較低下,同時普通用戶也會因為交易時間過長而產(chǎn)生厭煩情緒,甚至放棄,從而導(dǎo)致電子商務(wù)難以普及。
因此,如果完全按照上述傳統(tǒng)的PKI的要求來實施,許多電子商務(wù)活動無法迅速展開。
目前,為減少用戶的麻煩和提高交易效率,對傳統(tǒng)的PKI進(jìn)行了改進(jìn),普通用戶不再申請證書,即單證書模式。在這種模式下,用戶的交易請求使用服務(wù)商的數(shù)字證書進(jìn)行加密,但服務(wù)商返回給用戶的應(yīng)答數(shù)據(jù)不進(jìn)行加密,以明文方式返回,如圖3所示。具體的操作流程如圖4所示,不再詳述。但是在這種情況下,由于服務(wù)商返回的數(shù)據(jù)是明文的,被非法獲取和破壞的可能性極大地增加,存在很大的安全隱患。
發(fā)明內(nèi)容
為了解決上述問題,本發(fā)明采用了動態(tài)密鑰技術(shù),提供了一種基于公共密鑰體系在單證書狀態(tài)下實現(xiàn)數(shù)據(jù)安全傳輸?shù)南到y(tǒng)及其方法,在用戶不需要申請證書的情況下,仍然可以對服務(wù)商的應(yīng)答數(shù)據(jù)進(jìn)行加密,實現(xiàn)了單證書狀態(tài)下的數(shù)據(jù)安全傳輸。同時,由于本發(fā)明只需要進(jìn)行兩次非對稱算法進(jìn)行加解密,使得交易的效率顯著提高。
本發(fā)明的技術(shù)方案如下一種基于公開密鑰體系的數(shù)據(jù)安全傳輸方法,設(shè)置相互傳輸交易數(shù)據(jù)的客戶端和服務(wù)端,其中,服務(wù)端安裝有服務(wù)商數(shù)字證書,其中交易數(shù)據(jù)傳輸過程中,客戶端和服務(wù)端對交易數(shù)據(jù)進(jìn)行如下處理(1)客戶端查找、判斷、生成密鑰并加密交易數(shù)據(jù)的步驟;(2)服務(wù)端查找、判斷、生成密鑰并解密交易數(shù)據(jù)的步驟;(3)服務(wù)端查找、獲取密鑰并加密交易數(shù)據(jù)的步驟;(4)客戶端查找、獲得密鑰并解密交易數(shù)據(jù)的步驟。
所述的數(shù)據(jù)安全傳輸方法,其中所述的客戶端、服務(wù)端設(shè)置有密鑰存儲裝置,存儲并記錄密鑰,供客戶端和服務(wù)端查找和調(diào)用;所述的密鑰存儲裝置設(shè)置有動態(tài)密鑰表,所述的動態(tài)密鑰表是一種存儲動態(tài)產(chǎn)生的密鑰的數(shù)據(jù)結(jié)構(gòu),包括對稱密鑰明文,用非對稱加密算法加密后的密鑰密文,以及產(chǎn)生該密鑰時的時間戳。
所述的數(shù)據(jù)安全傳輸方法,其中所述的時間戳為預(yù)定的時間段。
所述的數(shù)據(jù)安全傳輸方法,其中所述的時間戳為一次交易或者交易階段。
所述的數(shù)據(jù)安全傳輸方法,其中所述的時間戳為一次會話。
所述的數(shù)據(jù)安全傳輸方法,其中所述的步驟(1)中還包括如下步驟(1a)客戶端查找動態(tài)密鑰表,判斷最新的密鑰是否過期,如沒有過期,轉(zhuǎn)到(1b),如過期或者無密鑰記錄,轉(zhuǎn)到(1c);(1b)客戶端從動態(tài)密鑰表中取出最新的密鑰,利用該密鑰加密交易數(shù)據(jù);(1c)客戶端隨機生成密鑰,利用該密鑰加密交易數(shù)據(jù)。
所述的數(shù)據(jù)安全傳輸方法,其中所述的步驟(2)中還包括如下步驟(2a)服務(wù)端查找所述動態(tài)密鑰表,如查到,執(zhí)行步驟(2b),如沒有查到,執(zhí)行步驟(2c);(2b)服務(wù)端從動態(tài)密鑰表中取出密鑰明文,利用其解密交易數(shù)據(jù);(2c)服務(wù)端利用服務(wù)商證書解密密鑰,獲得密鑰明文,利用其解密交易數(shù)據(jù);
所述的數(shù)據(jù)安全傳輸方法,其中所述的步驟(1c)中還包括客戶端將所述密鑰的明文和密文插入到其動態(tài)密鑰表的步驟。
所述的數(shù)據(jù)安全傳輸方法,其中所述的步驟(2c)中還包括服務(wù)端將所述密鑰的明文和密文插入到其動態(tài)密鑰表的步驟。
所述的數(shù)據(jù)安全傳輸方法,其中所述步驟(3)中,服務(wù)端查找所獲得的密鑰為服務(wù)端解密客戶端業(yè)務(wù)數(shù)據(jù)時所獲得、并插入到所述動態(tài)密鑰表中對應(yīng)時間戳的密鑰。
所述的數(shù)據(jù)安全傳輸方法,其中所述步驟(4)中,客戶端查找所獲得的密鑰為客戶端加密客戶端業(yè)務(wù)數(shù)據(jù)時所使用并插入到所述動態(tài)密鑰表中對應(yīng)時間戳的密鑰。
一種實現(xiàn)權(quán)利要求1所述的基于公開密鑰體系的數(shù)據(jù)安全傳輸裝置,設(shè)置有加、解密交易數(shù)據(jù)并相互傳輸交易數(shù)據(jù)的客戶端和服務(wù)端,其中,服務(wù)端安裝有服務(wù)商數(shù)字證書,其中客戶端和服務(wù)端上分別設(shè)置有安全加解密裝置,所述安全加解密裝置為應(yīng)用程序;所述應(yīng)用程序包括密鑰生成模塊、密鑰存儲模塊和算法模塊;交易數(shù)據(jù)流入時,算法模塊向密鑰生成模塊發(fā)出密鑰請求,密鑰生成模塊查找密鑰存儲模塊中的密鑰記錄,取回、生成密鑰,并向算法模塊發(fā)送密鑰應(yīng)答。
所述的數(shù)據(jù)安全傳輸裝置,其中所述的密鑰存儲模塊中設(shè)置有記錄密鑰的動態(tài)密鑰表;所述的動態(tài)密鑰表是一種存儲動態(tài)產(chǎn)生的密鑰的數(shù)據(jù)結(jié)構(gòu),包括對稱密鑰明文,用非對稱加密算法加密后的密鑰密文,以及產(chǎn)生該密鑰時的時間戳。
所述的數(shù)據(jù)安全傳輸裝置,其中所述的時間戳為預(yù)定的時間段。
所述的數(shù)據(jù)安全傳輸裝置,其中所述的時間戳為一次交易或交易階段。
所述的數(shù)據(jù)安全傳輸裝置,其中所述的時間戳為一次會話。
所述的數(shù)據(jù)安全傳輸裝置,其中當(dāng)客戶端加密交易請求數(shù)據(jù)時,算法模塊向密鑰生成模塊發(fā)出密鑰請求,密鑰生成模塊查找密鑰存儲模塊中動態(tài)密鑰表中的密鑰記錄,如果密鑰未過期,則從密鑰存儲模塊中取回已存儲的對稱密鑰明文,向算法模塊返回密鑰應(yīng)答,算法模塊利用該對稱密鑰對交易數(shù)據(jù)進(jìn)行加密處理;
如果密鑰過期或者沒有密鑰記錄,則由密鑰生成模塊動態(tài)產(chǎn)生新的密鑰,并利用所述服務(wù)商的數(shù)字證書加密該密鑰,形成密鑰密文,將所述的密鑰、密鑰密文以及對應(yīng)的時間戳送交密鑰存儲模塊存儲插入到動態(tài)密鑰表中,同時向算法模塊返回密鑰應(yīng)答,算法模塊利用該密鑰對交易數(shù)據(jù)進(jìn)行加密處理。
所述的數(shù)據(jù)安全傳輸裝置,其中當(dāng)服務(wù)端解密接收到的交易數(shù)據(jù)時,算法模塊向密鑰生成模塊發(fā)出密鑰請求,密鑰生成模塊查找密鑰存儲模塊中動態(tài)密鑰表中的密鑰記錄,如果密鑰未過期,則從密鑰存儲模塊中取回已存儲的對稱密鑰明文,向算法模塊返回密鑰應(yīng)答,算法模塊利用該密鑰對交易數(shù)據(jù)進(jìn)行解密處理;如果密鑰過期或者沒有密鑰記錄,則密鑰生成模塊使用服務(wù)商數(shù)字證書解密該密鑰,向算法模塊返回密鑰應(yīng)答,并將該密鑰明文及密鑰密文以及對應(yīng)的時間戳送交密鑰存儲模塊存儲,算法模塊利用該密鑰對交易數(shù)據(jù)進(jìn)行解密處理。
所述的數(shù)據(jù)安全傳輸裝置,其中服務(wù)端加密交易應(yīng)答數(shù)據(jù)時,算法模塊向密鑰生成模塊發(fā)送密鑰請求,密鑰生成模塊查找密鑰存儲模塊中動態(tài)密鑰表的密鑰記錄,從密鑰存儲模塊中取回對應(yīng)時間戳的密鑰,向算法模塊返回密鑰應(yīng)答,算法模塊利用該密鑰對交易數(shù)據(jù)進(jìn)行加密處理。
所述的數(shù)據(jù)安全傳輸裝置,其中客戶端解密接收到交易應(yīng)答數(shù)據(jù)時,算法模塊向密鑰生成模塊發(fā)送密鑰請求,密鑰生成模塊查找密鑰存儲模塊中動態(tài)密鑰表的密鑰記錄,從密鑰存儲模塊中取回對應(yīng)時間戳的密鑰,向算法模塊返回密鑰應(yīng)答,算法模塊利用該密鑰對交易應(yīng)答數(shù)據(jù)進(jìn)行解密處理。
附圖簡要說明以下結(jié)合附圖,通過對本發(fā)明較佳實施例的詳細(xì)描述,將使本發(fā)明的技術(shù)方案及其有益效果顯而易見。
附圖中,圖1為現(xiàn)有技術(shù)雙證書條件下的數(shù)據(jù)處理示意圖;圖2為現(xiàn)有技術(shù)雙證書條件下的數(shù)據(jù)處理流程圖;圖3為現(xiàn)有技術(shù)單證書條件下的單向加密方法示意圖;圖4為現(xiàn)有技術(shù)單證書條件下的單向加密方法流程圖;
圖5為本發(fā)明基于公開密鑰體系的數(shù)據(jù)安全傳輸方法示意圖;圖6為本發(fā)明基于公開密鑰體系的數(shù)據(jù)安全傳輸裝置的結(jié)構(gòu)示意圖;圖7為本發(fā)明基于公開密鑰體系的數(shù)據(jù)安全傳輸?shù)姆椒捌溲b置的數(shù)據(jù)安全傳輸處理流程圖;圖8為本發(fā)明基于公開密鑰體系的數(shù)據(jù)安全傳輸裝置的動態(tài)密鑰表的結(jié)構(gòu)示意圖。
具體實施例方式
下文,將結(jié)合附圖詳細(xì)描述本發(fā)明。
如圖5所示,在本發(fā)明中,客戶端不需要安裝數(shù)字證書,而服務(wù)端需要安裝數(shù)字證書。由于客戶端和服務(wù)端的地位對等,本發(fā)明方法的客戶端和服務(wù)端可以對調(diào),總之以發(fā)起請求端為客戶端,以相對的接收數(shù)據(jù)后、處理數(shù)據(jù)并返回處理數(shù)據(jù)的被動端為服務(wù)端,只需服務(wù)端獲得CA的數(shù)字證書即可。
為了實現(xiàn)本發(fā)明,在客戶端和服務(wù)端都需要安裝安全加解密裝置100,該安全加解密裝置為應(yīng)用程序,客戶端和服務(wù)端只需要安裝此同一應(yīng)用程序。
由于該方案與具體業(yè)務(wù)無關(guān),該應(yīng)用程序最終可以封裝一些統(tǒng)一的應(yīng)用程序接口(API),以庫(Library,靜態(tài)庫或者動態(tài)庫)的方式提供給客戶端和服務(wù)端調(diào)用,這些API包括數(shù)據(jù)加密、數(shù)據(jù)解密、數(shù)字簽名、簽名校驗等等。
如圖6所示,該應(yīng)用程序從邏輯上可以劃分為密鑰生成模塊101、密鑰存儲模塊102和算法模塊103。交易數(shù)據(jù)流入時,算法模塊103向密鑰生成模塊101發(fā)出密鑰請求,密鑰生成模塊101查找密鑰存儲模塊102中的密鑰記錄,取回、生成或者記錄密鑰,并向算法模塊103發(fā)送密鑰應(yīng)答。
所述密鑰存儲模塊102中設(shè)置有動態(tài)密鑰表112,結(jié)構(gòu)如圖8所示的,是一種存儲動態(tài)產(chǎn)生的密鑰的數(shù)據(jù)結(jié)構(gòu),存儲項包括對稱密鑰明文KEYn,用非對稱加密算法加密所述對稱密鑰明文KEYn后的密鑰密文KEY_ENCn,以及產(chǎn)生該密鑰時的時間戳TIMESTAMPn。
所述密鑰生成模塊101、所述密鑰存儲模塊102的動態(tài)密鑰表112、算法模塊103三個部分的功能分別為密鑰生成模塊101本發(fā)明中又叫做動態(tài)密鑰生成模塊,根據(jù)超時時間或者會話動態(tài)地產(chǎn)生對稱加密密鑰;密鑰存儲模塊102其中的動態(tài)密鑰表102,通過動態(tài)密鑰表這種數(shù)據(jù)結(jié)構(gòu)存儲動態(tài)密鑰的明文以及密文,并且提供查找動態(tài)密鑰的接口;算法模塊103本發(fā)明中的算法模塊103中為標(biāo)準(zhǔn)算法,提供標(biāo)準(zhǔn)的RSA/DES等加解密算法,完成數(shù)據(jù)的加解密、簽名及簽名校驗等功能。
動態(tài)密鑰表112負(fù)責(zé)記錄產(chǎn)生的動態(tài)密鑰,并對其進(jìn)行管理,由于客戶端每隔一段時間隨機產(chǎn)生密鑰,并存儲于動態(tài)密鑰表中,因此,客戶端的動態(tài)密鑰表為主動的,而服務(wù)端并不產(chǎn)生動態(tài)密鑰,其動態(tài)密鑰表只記錄來自客戶端交易數(shù)據(jù)對應(yīng)的動態(tài)密鑰信息,因此服務(wù)端的動態(tài)密鑰表為被動的。
動態(tài)密鑰表是一種數(shù)據(jù)結(jié)構(gòu),用于存儲動態(tài)產(chǎn)生的密鑰(包括加密的和未加密的),見圖8所示,包括對稱密鑰明文,用非對稱加密算法加密后的密鑰密文,以及產(chǎn)生該密鑰時的時間戳。客戶端的算法處理模塊每隔一段時間(即時間戳)隨機產(chǎn)生對稱密鑰,并存儲于動態(tài)密鑰表中。服務(wù)端的動態(tài)密鑰表結(jié)構(gòu)與客戶端的相同,在接收到客戶端的請求數(shù)據(jù)密文及密鑰密文后,如果其動態(tài)密鑰表中已存儲有該密鑰,則可以直接取出對應(yīng)的對稱密鑰明文;但是如果其動態(tài)密鑰表中無該密鑰,則該服務(wù)端需要先使用其證書對所述密鑰密文進(jìn)行解密,得到密鑰明文,然后將該密鑰存儲于動態(tài)密鑰表中,并利用該密鑰明文對數(shù)據(jù)密文進(jìn)行解密。由于本發(fā)明的技術(shù)是基于PKI密鑰體系的,因此,客戶端動態(tài)生產(chǎn)的密鑰密文都是使用的是服務(wù)端的公開密鑰(Public Key)對對稱密鑰明文加密生成的,這樣服務(wù)端在自己的動態(tài)密鑰表中無記錄時,只需使用自己的私鑰(Private Key)即數(shù)字證書即可解密得到對稱密鑰明文。
如果客戶端第一次發(fā)起交易請求時,算法模塊103向密鑰生成模塊101發(fā)出密鑰請求,所述密鑰生成模塊101根據(jù)超時時間或者會話情況動態(tài)產(chǎn)生對稱加密密鑰,向所述算法模塊103返回密鑰應(yīng)答,同時將產(chǎn)生的動態(tài)密鑰送交密鑰存儲模塊102,所述密鑰存儲模塊102將該動態(tài)密鑰記錄在其動態(tài)密鑰表112中。服務(wù)端收到客戶端傳來的數(shù)據(jù)后,如果是第一次接收該選定密鑰的交易請求,則該服務(wù)端的動態(tài)密鑰表中無對應(yīng)記錄,此時服務(wù)端只能利用自己的數(shù)字證書進(jìn)行對密鑰密文進(jìn)行解密,并將該密鑰明文、密文及時間戳記入自己的動態(tài)密鑰表中。
如果客戶端在同一時間戳記錄的預(yù)定時間內(nèi)發(fā)起第二次交易請求,當(dāng)算法模塊103向密鑰生成模塊101發(fā)出密鑰請求時,密鑰生成模塊101根據(jù)預(yù)定的時間判斷該動態(tài)密鑰是否超時,如果沒有超時,則密鑰生成模塊101只需要從密鑰存儲模塊102中取回該動態(tài)密鑰并返回給所述算法模塊103即可;如果超時,則所述密鑰生成模塊101需要重新動態(tài)生成新的動態(tài)密鑰,返回所述算法模塊103,并送交密鑰存儲模塊102存儲。服務(wù)端接收到交易請求后,由于在服務(wù)端的動態(tài)密鑰表的動態(tài)密鑰表中已有該密鑰的記錄,所以服務(wù)端將不需進(jìn)行效率低的非對稱算法解密密鑰密文,而直接從服務(wù)端的動態(tài)密鑰表中查找到該密鑰密文對應(yīng)的密鑰明文即可對交易請求數(shù)據(jù)解密,大大提高了解密的處理效率。
同樣,服務(wù)端在返回應(yīng)答數(shù)據(jù)時,要使用對交易請求數(shù)據(jù)解密所使用的密鑰進(jìn)行對應(yīng)答數(shù)據(jù)的加密,并將應(yīng)答數(shù)據(jù)密文連同密鑰密文一起返回客戶端??蛻舳嗽诮邮盏綉?yīng)答數(shù)據(jù)時,首先根據(jù)密鑰密文從自己的動態(tài)密鑰表中查找到對應(yīng)對稱密鑰明文(因是客戶端發(fā)起請求,因此該密鑰一定在客戶端的動態(tài)密鑰表中有記錄),然后就可以使用該密鑰明文對應(yīng)答數(shù)據(jù)密文進(jìn)行解密。由此可見,交易應(yīng)答過程完全省卻了對對稱密鑰的非對稱加解密過程,對應(yīng)答數(shù)據(jù)的加解密過程僅為對稱算法的加解密運算,由對稱算法和非對稱算法的運算效率可知,上述效率的提高將在成千萬倍以上。
下面將以一個完整的交易流程來說明本發(fā)明的方法的技術(shù)方案,具體如圖4所示的(1)客戶端發(fā)起請求①交易請求客戶端發(fā)起請求數(shù)據(jù)REQUEST;②得到DES密鑰檢查動態(tài)密鑰表中最新的對稱密鑰是否已經(jīng)過期,若未過期(根據(jù)時間戳判斷),則取出該密鑰KEY;若已經(jīng)過期,則重新隨機生成一個隨機對稱密鑰KEY,將其使用非對稱算法(服務(wù)商證書,即服務(wù)端公鑰)加密后得到密鑰密文KEY_ENC,然后將該密鑰密文KEY_ENC插入到動態(tài)密鑰表中;③使用DES密鑰加密數(shù)據(jù)使用該對稱密鑰KEY加密業(yè)務(wù)請求數(shù)據(jù)REQUEST,得到業(yè)務(wù)請求數(shù)據(jù)密文REQUST_ENC;④將加密后的業(yè)務(wù)請求數(shù)據(jù)密文REQUEST_ENC及密鑰密文KEY_ENC一起發(fā)送給服務(wù)端。
(2)服務(wù)端處理請求①得到明文的DES密鑰根據(jù)收到的加密后的密鑰密文KEY_ENC在動態(tài)密鑰表中查找該密鑰的明文KEY,若能查找到,則從表中取出該密鑰的明文KEY;若沒能查到,則使用服務(wù)商證書(即其私鑰)將密鑰密文解密后插入到自己的動態(tài)密鑰表中;②對數(shù)據(jù)密文進(jìn)行解密使用明文的對稱密鑰KEY對業(yè)務(wù)請求數(shù)據(jù)密文REQUEST_ENC進(jìn)行解密,得到明文的請求數(shù)據(jù)REQEUST;③對業(yè)務(wù)請求數(shù)據(jù)REQUEST進(jìn)行處理。
(3)服務(wù)端返回應(yīng)答①加密應(yīng)答使用解密該業(yè)務(wù)請求數(shù)據(jù)REQUEST的對稱密鑰KEY來加密應(yīng)答數(shù)據(jù)REPLY,得到應(yīng)答數(shù)據(jù)密文REPLY_ENC;②將應(yīng)答數(shù)據(jù)密文REPLY_ENC及對應(yīng)的密鑰密文KEY_ENC發(fā)送給客戶端。
(4)客戶端處理應(yīng)答①查找明文DES密鑰根據(jù)密鑰密文KEY_ENC在自己的動態(tài)密鑰表中查找對應(yīng)對稱密鑰KEY,由于該密鑰KEY是由客戶端產(chǎn)生的,服務(wù)端并不主動的產(chǎn)生對稱密鑰,因此該對稱密鑰KEY一定存在于客戶端的動態(tài)密鑰表中,取出該密鑰KEY;②解密應(yīng)答使用該對稱密鑰KEY將應(yīng)答數(shù)據(jù)密文REPLY_ENC解密,得到REPLY,至此完成一個完整的交易流程。
上述流程過程中,由于應(yīng)用程序已進(jìn)行了封裝,在客戶端或服務(wù)端都是由算法模塊,密鑰生成模塊及密鑰存儲模塊之間進(jìn)行的,但為敘述簡便,僅說明了其基本原理。
當(dāng)進(jìn)行下一個交易流程時,如果在時間戳所預(yù)定的時間段內(nèi),則客戶端從自己的動態(tài)密鑰表中找到的仍是上次交易的動態(tài)密鑰,與服務(wù)端的通訊加解密將迅速而安全地進(jìn)行;一旦超出時間戳的預(yù)定時間段,客戶端將隨機產(chǎn)生新的對稱密鑰,并使用服務(wù)端的公共密鑰(Public Key)進(jìn)行加密,并將密鑰明文、密文和時間戳加入到客戶端的動態(tài)密鑰表中;服務(wù)端接收到首次的交易請求數(shù)據(jù)密文及其密鑰密文時,首先查找自己的動態(tài)密鑰表,查找不到則表明為首次,使用自己的私鑰對密鑰密文解密,并將該密鑰明文、密文及時間戳記入服務(wù)端的動態(tài)密鑰表中。此后,該客戶端與服務(wù)端的交易將非常流暢地進(jìn)行。
本發(fā)明的基于公開密鑰體系的數(shù)據(jù)安全傳輸?shù)姆椒捌溲b置中,對時間戳預(yù)定時間的選擇將進(jìn)一步提高本發(fā)明方法及其裝置的效果,因為在該預(yù)定時間內(nèi)的任何由客戶端發(fā)起的請求將使用相同的對稱密鑰,因而在此段時間內(nèi)客戶端與服務(wù)端進(jìn)行的任何交易將只需經(jīng)兩次非對稱算法的運算(對密鑰),而其他處理全部是對稱算法的運算(對數(shù)據(jù))和數(shù)據(jù)查找(對密鑰),由此極大地提高了交易數(shù)據(jù)加解密運算效率,尤其是頻繁交易如網(wǎng)上證券的效率。
本發(fā)明方法及其裝置中時間戳可以但不限于有三種選擇方式一是預(yù)定時間長度,該時間長度可以根據(jù)不同的業(yè)務(wù)要求進(jìn)行調(diào)整,時間過長,容易泄密;時間過短相當(dāng)于交易每次提起都進(jìn)行隨機產(chǎn)生新密鑰,進(jìn)行非對稱算法的加解密運算,幾乎恢復(fù)成傳統(tǒng)的雙證書運算效率。因此,一般選擇3~10分鐘,選擇5分鐘則相對比較好,一般來說,交易請求發(fā)出后,應(yīng)答在5分鐘內(nèi)一般會返回,因此選擇5分鐘為預(yù)定時間長度;5分鐘后的客戶端請求的密鑰即隨機改變,即使被非法破解,影響也是局部的和暫時的。但時間長短的選擇要因不同的業(yè)務(wù)需要而定。
二是設(shè)定時間戳為一次交易,即在客戶端發(fā)起交易時,可以在每筆交易開始時隨機產(chǎn)生一個新的對稱密鑰來加密數(shù)據(jù)(一般來說,5分鐘內(nèi)可以有多次交易完成),并用非對稱算法加密該對稱密鑰,然后加入客戶端的動態(tài)密鑰表中,依流程進(jìn)行交易過程,直至完成該次交易,該種方式與傳統(tǒng)的使用PKI的單證書方式較近似,效率提高不大,但安全性很高。
三是設(shè)定時間戳為一次會話(Session)。會話是指客戶端登錄到服務(wù)端系統(tǒng)后,可能進(jìn)行多次交易或查詢,直至最后斷開或退出系統(tǒng)的這樣整個一個過程。由于一個會話過程一般都有一個會話標(biāo)識SessionID,登錄時記錄該會話標(biāo)識,退出時也會記錄該會話標(biāo)識的登出,會話過程中的各次交易不需重新登錄,而該會話標(biāo)識不變。因此,根據(jù)某些應(yīng)用會使用到會話,本發(fā)明方法的時間戳可以設(shè)定為一次會話,根據(jù)不同會話標(biāo)識來隨機動態(tài)產(chǎn)生密鑰,在某一會話期間密鑰保持不變,從而在該會話期間不再需要使用非對稱算法進(jìn)行對對稱密鑰的加解密運算,從而提高本發(fā)明方法應(yīng)用的效率。
在本發(fā)明的方法及其裝置中,客戶端也可以獲得數(shù)字證書,但基于本發(fā)明方法的數(shù)據(jù)加解密效率,在使用本發(fā)明方法的同時,可以利用客戶端的數(shù)字證書,平滑地增加數(shù)字簽名等更加安全的功能。
應(yīng)當(dāng)理解的是,本發(fā)明的一種基于公開密鑰體系的數(shù)據(jù)安全傳輸?shù)姆椒捌溲b置,對本領(lǐng)域普通技術(shù)人員來說,可以根據(jù)本發(fā)明的技術(shù)方案及其構(gòu)思作出各種可能的改變或替換,而只要這些改變或替換是顯而易見的,都應(yīng)屬于本發(fā)明后附權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1.一種基于公開密鑰體系的數(shù)據(jù)安全傳輸方法,設(shè)置相互傳輸交易數(shù)據(jù)的客戶端和服務(wù)端,其中,服務(wù)端安裝有服務(wù)商數(shù)字證書,其特征在于交易數(shù)據(jù)傳輸過程中,客戶端和服務(wù)端對交易數(shù)據(jù)進(jìn)行如下處理(1)客戶端查找、判斷、生成密鑰并加密交易數(shù)據(jù)的步驟;(2)服務(wù)端查找、判斷、生成密鑰并解密交易數(shù)據(jù)的步驟;(3)服務(wù)端查找、獲取密鑰并加密交易數(shù)據(jù)的步驟;(4)客戶端查找、獲得密鑰并解密交易數(shù)據(jù)的步驟。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)安全傳輸方法,其特征在于所述的客戶端、服務(wù)端設(shè)置有密鑰存儲裝置,存儲并記錄密鑰,供客戶端和服務(wù)端查找和調(diào)用;所述的密鑰存儲裝置設(shè)置有動態(tài)密鑰表,所述的動態(tài)密鑰表是一種存儲動態(tài)產(chǎn)生的密鑰的數(shù)據(jù)結(jié)構(gòu),包括對稱密鑰明文,用非對稱加密算法加密后的密鑰密文,以及產(chǎn)生該密鑰時的時間戳。
3.根據(jù)權(quán)利要求2所述的數(shù)據(jù)安全傳輸方法,其特征在于所述的時間戳為預(yù)定的時間段。
4.根據(jù)權(quán)利要求2所述的數(shù)據(jù)安全傳輸方法,其特征在于所述的時間戳為一次交易或者交易階段。
5.根據(jù)權(quán)利要求2所述的數(shù)據(jù)安全傳輸方法,其特征在于所述的時間戳為一次會話。
6.根據(jù)權(quán)利要求1或2所述的數(shù)據(jù)安全傳輸方法,其特征在于所述的步驟(1)中還包括如下步驟(1a)客戶端查找動態(tài)密鑰表,判斷最新的密鑰是否過期,如沒有過期,轉(zhuǎn)到(1b),如過期或者無密鑰記錄,轉(zhuǎn)到(1c);(1b)客戶端從動態(tài)密鑰表中取出最新的密鑰,利用該密鑰加密交易數(shù)據(jù);(1c)客戶端隨機生成密鑰,利用該密鑰加密交易數(shù)據(jù)。
7.根據(jù)權(quán)利要求1或2所述的數(shù)據(jù)安全傳輸方法,其特征在于所述的步驟(2)中還包括如下步驟(2a)服務(wù)端查找所述動態(tài)密鑰表,如查到,執(zhí)行步驟(2b),如沒有查到,執(zhí)行步驟(2c);(2b)服務(wù)端從動態(tài)密鑰表中取出密鑰明文,利用其解密交易數(shù)據(jù);(2c)服務(wù)端利用服務(wù)商證書解密密鑰,獲得密鑰明文,利用其解密交易數(shù)據(jù);
8.根據(jù)權(quán)利要求6所述的數(shù)據(jù)安全傳輸方法,其特征在于所述的步驟(1c)中還包括客戶端將所述密鑰的明文和密文插入到其動態(tài)密鑰表的步驟。
9.根據(jù)權(quán)利要求7所述的數(shù)據(jù)安全傳輸方法,其特征在于所述的步驟(2c)中還包括服務(wù)端將所述密鑰的明文和密文插入到其動態(tài)密鑰表的步驟。
10.根據(jù)權(quán)利要求1或2所述的數(shù)據(jù)安全傳輸方法,其特征在于所述步驟(3)中,服務(wù)端查找所獲得的密鑰為服務(wù)端解密客戶端業(yè)務(wù)數(shù)據(jù)時所獲得、并插入到所述動態(tài)密鑰表中對應(yīng)時間戳的密鑰。
11.根據(jù)權(quán)利要求1或2所述的數(shù)據(jù)安全傳輸方法,其特征在于所述步驟(4)中,客戶端查找所獲得的密鑰為客戶端加密客戶端業(yè)務(wù)數(shù)據(jù)時所使用并插入到所述動態(tài)密鑰表中對應(yīng)時間戳的密鑰。
12.一種實現(xiàn)權(quán)利要求1所述的基于公開密鑰體系的數(shù)據(jù)安全傳輸裝置,設(shè)置有加、解密交易數(shù)據(jù)并相互傳輸交易數(shù)據(jù)的客戶端和服務(wù)端,其中,服務(wù)端安裝有服務(wù)商數(shù)字證書,其特征在于客戶端和服務(wù)端上分別設(shè)置有安全加解密裝置,所述安全加解密裝置為應(yīng)用程序;所述應(yīng)用程序包括密鑰生成模塊、密鑰存儲模塊和算法模塊;交易數(shù)據(jù)流入時,算法模塊向密鑰生成模塊發(fā)出密鑰請求,密鑰生成模塊查找密鑰存儲模塊中的密鑰記錄,取回、生成密鑰,并向算法模塊發(fā)送密鑰應(yīng)答。
13.根據(jù)權(quán)利要求12所述的數(shù)據(jù)安全傳輸裝置,其特征在于所述的密鑰存儲模塊中設(shè)置有記錄密鑰的動態(tài)密鑰表;所述的動態(tài)密鑰表是一種存儲動態(tài)產(chǎn)生的密鑰的數(shù)據(jù)結(jié)構(gòu),包括對稱密鑰明文,用非對稱加密算法加密后的密鑰密文,以及產(chǎn)生該密鑰時的時間戳。
14.根據(jù)權(quán)利要求13所述的數(shù)據(jù)安全傳輸裝置,其特征在于所述的時間戳為預(yù)定的時間段。
15.根據(jù)權(quán)利要求13所述的數(shù)據(jù)安全傳輸裝置,其特征在于所述的時間戳為一次交易或交易階段。
16.根據(jù)權(quán)利要求13所述的數(shù)據(jù)安全傳輸裝置,其特征在于所述的時間戳為一次會話。
17.根據(jù)權(quán)利要求12或13所述的數(shù)據(jù)安全傳輸裝置,其特征在于當(dāng)客戶端加密交易請求數(shù)據(jù)時,算法模塊向密鑰生成模塊發(fā)出密鑰請求,密鑰生成模塊查找密鑰存儲模塊中動態(tài)密鑰表中的密鑰記錄,如果密鑰未過期,則從密鑰存儲模塊中取回已存儲的對稱密鑰明文,向算法模塊返回密鑰應(yīng)答,算法模塊利用該對稱密鑰對交易數(shù)據(jù)進(jìn)行加密處理;如果密鑰過期或者沒有密鑰記錄,則由密鑰生成模塊動態(tài)產(chǎn)生新的密鑰,并利用所述服務(wù)商的數(shù)字證書加密該密鑰,形成密鑰密文,將所述的密鑰、密鑰密文以及對應(yīng)的時間戳送交密鑰存儲模塊存儲插入到動態(tài)密鑰表中,同時向算法模塊返回密鑰應(yīng)答,算法模塊利用該密鑰對交易數(shù)據(jù)進(jìn)行加密處理。
18.根據(jù)權(quán)利要求12或13所述的數(shù)據(jù)安全傳輸裝置,其特征在于當(dāng)服務(wù)端解密接收到的交易數(shù)據(jù)時,算法模塊向密鑰生成模塊發(fā)出密鑰請求,密鑰生成模塊查找密鑰存儲模塊中動態(tài)密鑰表中的密鑰記錄,如果密鑰未過期,則從密鑰存儲模塊中取回已存儲的對稱密鑰明文,向算法模塊返回密鑰應(yīng)答,算法模塊利用該密鑰對交易數(shù)據(jù)進(jìn)行解密處理;如果密鑰過期或者沒有密鑰記錄,則密鑰生成模塊使用服務(wù)商數(shù)字證書解密該密鑰,向算法模塊返回密鑰應(yīng)答,并將該密鑰明文及密鑰密文以及對應(yīng)的時間戳送交密鑰存儲模塊存儲,算法模塊利用該密鑰對交易數(shù)據(jù)進(jìn)行解密處理。
19.根據(jù)權(quán)利要求12或13所述的數(shù)據(jù)安全傳輸裝置,其特征在于服務(wù)端加密交易應(yīng)答數(shù)據(jù)時,算法模塊向密鑰生成模塊發(fā)送密鑰請求,密鑰生成模塊查找密鑰存儲模塊中動態(tài)密鑰表的密鑰記錄,從密鑰存儲模塊中取回對應(yīng)時間戳的密鑰,向算法模塊返回密鑰應(yīng)答,算法模塊利用該密鑰對交易數(shù)據(jù)進(jìn)行加密處理。
20.根據(jù)權(quán)利要求12或13所述的數(shù)據(jù)安全傳輸裝置,其特征在于客戶端解密接收到交易應(yīng)答數(shù)據(jù)時,算法模塊向密鑰生成模塊發(fā)送密鑰請求,密鑰生成模塊查找密鑰存儲模塊中動態(tài)密鑰表的密鑰記錄,從密鑰存儲模塊中取回對應(yīng)時間戳的密鑰,向算法模塊返回密鑰應(yīng)答,算法模塊利用該密鑰對交易應(yīng)答數(shù)據(jù)進(jìn)行解密處理。
全文摘要
一種基于公開密鑰體系的數(shù)據(jù)安全傳輸?shù)姆椒捌溲b置,涉及一種增加網(wǎng)絡(luò)數(shù)據(jù)傳輸性能和安全的方法,包括以下步驟設(shè)置一發(fā)起請求交易的客戶端及一提供交易處理的服務(wù)端;在客戶端及服務(wù)端分別設(shè)置動態(tài)密鑰表用于存儲密鑰,密鑰密文及對應(yīng)時間戳;客戶端發(fā)起請求數(shù)據(jù),根據(jù)時間戳在預(yù)定時間后隨機產(chǎn)生對稱密鑰并經(jīng)RSA算法加密后加入動態(tài)密鑰表中;客戶端與服務(wù)端在通訊時,同時傳輸經(jīng)該對稱密鑰加密后的數(shù)據(jù)密文及對應(yīng)密鑰密文;接收到密鑰密文后查找動態(tài)密鑰表找到對應(yīng)的對稱密鑰明文對接收的數(shù)據(jù)密文進(jìn)行解密。本發(fā)明方法及其裝置充分利用動態(tài)密鑰表的查詢功能,減少非對稱算法的運算次數(shù),提高加解密效率并保證數(shù)據(jù)的安全,用戶無需申請數(shù)字證書。
文檔編號H04L9/32GK1486014SQ0214395
公開日2004年3月31日 申請日期2002年9月24日 優(yōu)先權(quán)日2002年9月24日
發(fā)明者龔智輝, 戴釗 申請人:黎明網(wǎng)絡(luò)有限公司