国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      數(shù)據(jù)傳輸方法、服務(wù)端和客戶端的制作方法

      文檔序號:7805266閱讀:209來源:國知局
      數(shù)據(jù)傳輸方法、服務(wù)端和客戶端的制作方法
      【專利摘要】一種數(shù)據(jù)傳輸方法、服務(wù)端和客戶端,所述方法,包括:服務(wù)端與客戶端通過認(rèn)證協(xié)議進(jìn)行信息交互,相互進(jìn)行身份認(rèn)證;所述服務(wù)端和客戶端通過密鑰交換協(xié)議生成會話密鑰;所述客戶端采用加密算法和所述會話密鑰對待傳輸?shù)臄?shù)據(jù)包進(jìn)行加密,并將經(jīng)過加密的數(shù)據(jù)包傳輸至所述服務(wù)端;所述服務(wù)端使用所述會話密鑰和加密算法解密所接收的經(jīng)過加密的數(shù)據(jù)包,并執(zhí)行相應(yīng)的操作。上述的方案可以實(shí)現(xiàn)傳輸?shù)臄?shù)據(jù)包由客戶端向服務(wù)端的單向傳輸,構(gòu)建過程簡單,可以有效節(jié)約計(jì)算資源,使得數(shù)據(jù)的傳輸更加安全可靠。
      【專利說明】數(shù)據(jù)傳輸方法、服務(wù)端和客戶端
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及數(shù)據(jù)傳輸【技術(shù)領(lǐng)域】,特別是涉及一種數(shù)據(jù)傳輸方法、服務(wù)端和客戶端。【背景技術(shù)】
      [0002]網(wǎng)絡(luò)管道操作,是一種基于網(wǎng)絡(luò)的單向數(shù)據(jù)傳輸方法,能夠?qū)⒂煽蛻舳说臉?biāo)準(zhǔn)輸入得到的數(shù)據(jù),傳輸至服務(wù)端,并由服務(wù)端輸出至標(biāo)準(zhǔn)輸出。若配合管道(pipeline)使用,就能將上游程序的標(biāo)準(zhǔn)輸出傳輸至遠(yuǎn)程主機(jī)下的下游程序的標(biāo)準(zhǔn)輸入,類似于將POSIX系統(tǒng)中的管道機(jī)制網(wǎng)絡(luò)化,故稱之為網(wǎng)絡(luò)管道。
      [0003]現(xiàn)有技術(shù)中,實(shí)現(xiàn)不同客戶端與服務(wù)端之間的網(wǎng)絡(luò)管道操作,通常可以采用下述的兩種方法:一種是采用虛擬專用網(wǎng)絡(luò)(Virtual Private Network, VPN)或者SSH(SecureShell,安全外殼協(xié)議)與TCP-PIPE (TCP-PIPE為一開源程序,該程序由Daniel.B于2004年8月11日在SourceForge.net上注冊,用于在客戶端和服務(wù)端之間進(jìn)行遠(yuǎn)程管道操作)相結(jié)合的方式;另一種是采用SSH和管道來實(shí)現(xiàn)服務(wù)端和客戶端之間的數(shù)據(jù)傳輸。
      [0004]但是,上述的兩種方法,或者由于對傳輸?shù)臄?shù)據(jù)不經(jīng)過加密處理,需要構(gòu)建并維持不可中斷的安全通道,而存在著浪費(fèi)計(jì)算資源的問題;或者需要依賴安全性不高的RPC(Remote Procedure Call Protocol,遠(yuǎn)程過程調(diào)用協(xié)議)服務(wù),而存在安全性較差的問題;或者不符合業(yè)務(wù)流程,而導(dǎo)致容易產(chǎn)生誤操作的問題,且上述兩種方法均不支持多客戶端與單服務(wù)端之間并發(fā)傳輸數(shù)據(jù)。

      【發(fā)明內(nèi)容】

      [0005]本發(fā)明實(shí)施例解決的問題是如何安全地利用遠(yuǎn)程管道在客戶端和服務(wù)端之間進(jìn)行單向的數(shù)據(jù)傳輸。
      [0006]為解決上述問題,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)傳輸方法,所述方法包括:
      [0007]服務(wù)端與客戶端通過認(rèn)證協(xié)議進(jìn)行信息交互,相互進(jìn)行身份認(rèn)證;
      [0008]所述服務(wù)端和客戶端通過密鑰交換協(xié)議生成會話密鑰;
      [0009]所述客戶端采用加密算法和所述會話密鑰對待傳輸?shù)臄?shù)據(jù)包進(jìn)行加密,并將經(jīng)過加密的數(shù)據(jù)包傳輸至所述服務(wù)端;
      [0010]所述服務(wù)端使用所述會話密鑰和加密算法解密所接收的經(jīng)過加密的數(shù)據(jù)包,并執(zhí)行相應(yīng)的操作。
      [0011 ] 可選地,服務(wù)端與客戶端通過認(rèn)證協(xié)議進(jìn)行信息交互,相互進(jìn)行身份認(rèn)證,包括:
      [0012]將所述服務(wù)端RSA私鑰和客戶端RSA公鑰存儲在所述服務(wù)端中,客戶端RSA公鑰由客戶端的身份數(shù)據(jù)索引,將所述客戶端RSA私鑰和服務(wù)端RSA公鑰存儲在所述客戶端中,所述服務(wù)端RSA公鑰由服務(wù)端的身份數(shù)據(jù)索引,所述服務(wù)端RSA公鑰和服務(wù)端RSA
      [0013]私鑰、所述客戶端RSA公鑰和客戶端RSA私鑰分別采用RSA算法生成;
      [0014]所述客戶端將自身的身份數(shù)據(jù)發(fā)送至所述服務(wù)端,向所述服務(wù)端發(fā)出服務(wù)請求;
      [0015]所述服務(wù)端根據(jù)客戶端所發(fā)送的客戶端的身份數(shù)據(jù)確定客戶端RSA公鑰,并使用所確定的客戶端RSA公鑰加密第一隨機(jī)標(biāo)識和服務(wù)端的身份數(shù)據(jù),并將服務(wù)端的身份數(shù)據(jù)的明文與經(jīng)過加密的第一隨機(jī)標(biāo)識和服務(wù)端的身份數(shù)據(jù)發(fā)送至所述客戶端;
      [0016]所述客戶端使用自身存儲的與所述客戶端RSA公鑰相對應(yīng)的客戶端RSA私鑰,解密經(jīng)過加密的第一隨機(jī)標(biāo)識和所述服務(wù)端的身份數(shù)據(jù),當(dāng)解密得到的服務(wù)端的身份數(shù)據(jù)與所接收的服務(wù)端的身份數(shù)據(jù)的明文一致時,所述客戶端對所述服務(wù)端身份認(rèn)證成功;
      [0017]所述客戶端對所述服務(wù)端身份認(rèn)證成功時,所述客戶端所述服務(wù)端的身份數(shù)據(jù)確定服務(wù)端RSA公鑰,并使用所確定的服務(wù)端RSA公鑰加密第二隨機(jī)標(biāo)識,并發(fā)送至所述服務(wù)端,所述第二隨機(jī)標(biāo)識為所述客戶端根據(jù)解密得到的所述第一隨機(jī)標(biāo)識生成;
      [0018]所述服務(wù)端使用自身存儲的與所述服務(wù)端RSA公鑰相對應(yīng)的服務(wù)端RSA私鑰,解密經(jīng)過加密的第二隨機(jī)標(biāo)識,當(dāng)解密得到的第二隨機(jī)標(biāo)識與所述服務(wù)端根據(jù)解密得到的第一隨機(jī)標(biāo)識計(jì)算得到的第二隨機(jī)標(biāo)識相同時,證明所接收的經(jīng)過加密的第二隨機(jī)標(biāo)識為本次會話產(chǎn)生,且所述服務(wù)端對所述客戶端的身份認(rèn)證成功。
      [0019]可選地,所述服務(wù)端和客戶端通過密鑰交換協(xié)議生成會話密鑰,包括:
      [0020]所述服務(wù)端使用客戶端RSA公鑰,加密Deffie-Hellman公鑰、服務(wù)端Deffie-Hellman公鑰和所述第二隨機(jī)標(biāo)識,并發(fā)送至所述客戶端,所述Deffie-Hellman公鑰由所述服務(wù)端生成,所述服務(wù)端Deffie-Hel Iman公鑰由所述服務(wù)端利用所述Deffie-Hellman公鑰和根據(jù)所述Deffie-Hellman公鑰生成的服務(wù)端Deffie-Hellman私鑰生成;
      [0021]所述客戶端使用與所述客戶端RSA公鑰相對應(yīng)的客戶端RSA私鑰,解密經(jīng)過所述客戶端RSA公鑰加密的Deffie-Hellman公鑰、服務(wù)端Deffie-Hellman公鑰和第二隨機(jī)標(biāo)識;
      [0022]當(dāng)解密得到正確的的第二隨機(jī)標(biāo)識時,所述客戶端根據(jù)解密得到的Deffie-Hellman公鑰和服務(wù)端Deffie-Hellman公鑰計(jì)算出會話密鑰;
      [0023]所述客戶端使用服務(wù)端RSA公鑰加密客戶端Deffie-Hellman公鑰和所述第二隨機(jī)標(biāo)識,并發(fā)送至所述服務(wù)端,其中,所述客戶端Deffie-Hellman公鑰由所述客戶端根據(jù)解密得到的Deffie-Hellman公鑰和根據(jù)所述Deffie-Hellman公鑰生成的客戶端Deffie-Hellman私鑰生成;
      [0024]所述服務(wù)端使用與所述服務(wù)端RSA公鑰相對應(yīng)的服務(wù)端RSA私鑰,解密所述經(jīng)過服務(wù)端RSA公鑰加密的客戶端Deffie-Hellman公鑰和第二隨機(jī)標(biāo)識;
      [0025]當(dāng)?shù)玫秸_的第二隨機(jī)標(biāo)識時,所述服務(wù)端根據(jù)所述Deffie-Hellman公鑰和解密得到所述客戶端Deffie-Hellman公鑰計(jì)算出會話密鑰;
      [0026]所述服務(wù)端使用自身計(jì)算得到的會話密鑰和第一流加密算法,加密所述第二隨機(jī)標(biāo)識生成,生成密文第二隨機(jī)標(biāo)識,并采用所述密文第二隨機(jī)標(biāo)識和第二流加密算法加密驗(yàn)證數(shù)據(jù),并發(fā)送至所述客戶端;
      [0027]所述客戶端使用自身計(jì)算得到的會話密鑰和所述第一流加密算法生成密文第二隨機(jī)標(biāo)識,并使用所述密文第二隨機(jī)標(biāo)識和所述第二流加密算法解密所述經(jīng)過服務(wù)端加密的驗(yàn)證數(shù)據(jù),當(dāng)?shù)玫秸_的驗(yàn)證數(shù)據(jù)時,證明所述服務(wù)端和所述客戶端均計(jì)算出了正確的會話密鑰。
      [0028]可選地,所述客戶端采用加密算法和所述會話密鑰對待傳輸?shù)臄?shù)據(jù)包進(jìn)行加密,并將經(jīng)過加密的數(shù)據(jù)包傳輸至所述服務(wù)端,包括:[0029]所述客戶端使用所述第一流加密算法和所述會話密鑰加密所述第二隨機(jī)標(biāo)識,得到所述密文第二隨機(jī)標(biāo)識;
      [0030]所述客戶端使用所述第二流加密算法和所述密文第二隨機(jī)標(biāo)識對待傳輸?shù)臄?shù)據(jù)包進(jìn)行加密,生成密文數(shù)據(jù)包,所述待傳輸?shù)臄?shù)據(jù)包包括指令信息、消息信息和數(shù)字簽名信息,其中,所述指令信息指示所述服務(wù)端執(zhí)行相應(yīng)的操作,所述消息信息將被所述服務(wù)端傳輸至標(biāo)準(zhǔn)輸出,所述數(shù)字簽名信息為采用數(shù)字簽名算法加密所述指令信息、消息信息和第二隨機(jī)標(biāo)識生成。
      [0031]可選地,所述服務(wù)端使用所述會話密鑰和加密算法解密所接收的經(jīng)過客戶端加密的數(shù)據(jù)包,并執(zhí)行相應(yīng)的操作,包括:
      [0032]所述服務(wù)端采用所述第一流加密算法和所述會話密鑰加密所述第二隨機(jī)標(biāo)識,生成所述密文第二隨機(jī)標(biāo)識;
      [0033]所述服務(wù)端采用所述第二流加密算法和所述密文第二隨機(jī)標(biāo)識,解密所述密文數(shù)據(jù)包,得到所述指令信息、消息信息和數(shù)字簽名信息;
      [0034]采用所述數(shù)字簽名算法驗(yàn)證所述數(shù)字簽名信息;
      [0035]當(dāng)驗(yàn)證所述數(shù)字簽名信息正確時,所述服務(wù)端根據(jù)解密得到的指令信息執(zhí)行相應(yīng)的操作。
      [0036]可選地,當(dāng)驗(yàn)證所述數(shù)字簽名信息正確時,所述服務(wù)端根據(jù)解密得到的指令信息執(zhí)行相應(yīng)的操作,包括:
      [0037]當(dāng)所述指令為第一數(shù)值時,所述服務(wù)端對于解密得到的消息信息不執(zhí)行任何操作;
      [0038]當(dāng)所述指令為第二數(shù)值時,所述服務(wù)端在接收數(shù)據(jù)結(jié)束后,中斷與所述客戶端的連接,并持續(xù)監(jiān)聽服務(wù)端口,以確定是否有新的服務(wù)請求;
      [0039]當(dāng)所述指令為第三數(shù)值時,所述服務(wù)端在接收數(shù)據(jù)結(jié)束后,中斷與所述客戶端的連接并退出;
      [0040]當(dāng)所述指令為第四數(shù)值時,所述服務(wù)端解壓縮所述解密得到的消息信息;
      [0041]當(dāng)所述指令為第五數(shù)值時,所述服務(wù)端請求與所述客戶端重新通過所述密鑰交換協(xié)議生成新的會話密鑰。
      [0042]可選地,所述指令信息位于所述待傳輸數(shù)據(jù)包的第一字節(jié),并由所述客戶端在向所述服務(wù)端傳輸數(shù)據(jù)結(jié)束時置為相應(yīng)的數(shù)值。
      [0043]可選地,當(dāng)所述客戶端向所述服務(wù)端傳輸?shù)臄?shù)據(jù)量達(dá)到預(yù)設(shè)閾值時,所述客戶端將所述指令信息設(shè)置為第五數(shù)值,所述服務(wù)端和所述客戶端重新通過密鑰交換協(xié)議生成新的會話密鑰。
      [0044]可選地,所述客戶端為一臺以上。
      [0045]本發(fā)明實(shí)施例還提供了一種服務(wù)端,包括:
      [0046]第一身份認(rèn)證單元,適于通過認(rèn)證協(xié)議與客戶端進(jìn)行信息交互,對所述客戶端進(jìn)行身份認(rèn)證;
      [0047]第一密鑰交換單元,適于與所述客戶端通過密鑰交換協(xié)議生成會話密鑰;
      [0048]接收單元,適于接收客戶端使用加密算法和所述會話密鑰加密的數(shù)據(jù)包;
      [0049]解密單元,適于使用第一密鑰交換單元生成的會話密鑰和所述加密算法,解密所述接收單元所接收的經(jīng)過客戶端加密的數(shù)據(jù)包;
      [0050]執(zhí)行單元,適于獲取并根據(jù)所述解密單元解密得到的數(shù)據(jù)包,執(zhí)行相應(yīng)的操作。
      [0051]可選地,所述第一身份認(rèn)證單元包括:
      [0052]第一存儲子單元,適于存儲服務(wù)端RSA私鑰和客戶端RSA公鑰,客戶端RSA公鑰由所述客戶端的身份數(shù)據(jù)索引,其中,所述服務(wù)端RSA公鑰和服務(wù)端RSA私鑰構(gòu)成服務(wù)端RSA密鑰對,所述客戶端RSA私鑰和客戶端RSA公鑰構(gòu)成客戶端RSA密鑰對,所述服務(wù)端RSA密鑰對和客戶端RSA密鑰對分別采用RSA算法生成,所述客戶端RSA私鑰和服務(wù)端RSA公鑰存儲于所述客戶端上,所述服務(wù)端RSA公鑰由服務(wù)端的身份數(shù)據(jù)索引;
      [0053]第一加密子單元,適于根據(jù)所接收的客戶端的身份數(shù)據(jù)確定第一存儲子單元中存儲的客戶端RSA公鑰,并使用所確定的客戶端RSA公鑰加密第一隨機(jī)標(biāo)識和所述服務(wù)端的身份數(shù)據(jù),并將服務(wù)端的身份數(shù)據(jù)的明文與經(jīng)過加密的第一隨機(jī)標(biāo)識和服務(wù)端的身份數(shù)據(jù)發(fā)送至所述客戶端;
      [0054]第一接收子單元,適于接收客戶端采用服務(wù)端的身份數(shù)據(jù)確定的服務(wù)端RSA公鑰加密的第二隨機(jī)標(biāo)識;
      [0055]第一解密子單元,適于采用所述第一存儲子單元中存儲的服務(wù)端RSA私鑰,解密經(jīng)過客戶端采用服務(wù)端RSA公鑰加密的所述第二隨機(jī)標(biāo)識,當(dāng)解密得到的第二隨機(jī)標(biāo)識,與根據(jù)所述第一隨機(jī)標(biāo)識計(jì)算得到的第二隨機(jī)標(biāo)識相同時,證明所接收的經(jīng)過加密的第二隨機(jī)標(biāo)識為本次會話產(chǎn)生,且對所述客戶端的身份認(rèn)證成功。
      [0056]可選地,第一密鑰交換單元包括:
      [0057]第一生成子單元,適于根據(jù)Deffie-Hellman算法生成Deffie-Hellman公鑰、服務(wù)端Deffie-Hel Iman私鑰和服務(wù)端Deffie-Hel Iman公鑰,所述Deffie-He I Iman公鑰由所述服務(wù)端生成,所述服務(wù)端Deffie-Hellman公鑰由所述服務(wù)端利用所述Deffie-Hellman公鑰和根據(jù)所述Deffie-Hellman公鑰生成的服務(wù)端Deffie-Hellman私鑰生成;
      [0058]第二接收子單元,適于接收所述客戶端發(fā)送過來的所述客戶端的身份數(shù)據(jù),接收所述客戶端發(fā)送的服務(wù)請求;
      [0059]第二加密子單元,適于使用根據(jù)所述第二接收子單元接收的客戶端的身份數(shù)據(jù)確定客戶端RSA公鑰,并使用所確定的客戶端RSA公鑰加密第一生成子單元生成的Deffie-Hellman公鑰、服務(wù)端Deffie-Hellman公鑰和所述第二隨機(jī)標(biāo)識;
      [0060]第一發(fā)送子單元,適于將經(jīng)過所述第二加密子單元加密的Deffie-Hellman公鑰、服務(wù)端Deffie-Hellman公鑰和所述第二隨機(jī)標(biāo)識發(fā)送至所述客戶端;
      [0061]第三接收子單元,適于接收客戶端發(fā)送的使用服務(wù)端的身份數(shù)據(jù)確定的服務(wù)端RSA公鑰加密的客戶端Deffie-Hellman公鑰和所述第二隨機(jī)標(biāo)識;
      [0062]第二解密子單元,適于使用第一存儲子單元中所存儲的服務(wù)端RSA私鑰對所述第三接收子單元接收的經(jīng)過所述客戶端采用服務(wù)端RSA公鑰加密的客戶端Deffie-Hellman公鑰和所述第二隨機(jī)標(biāo)識;
      [0063]第一計(jì)算子單元,適于當(dāng)所述第二解密子單元解密得到正確的所述第二隨機(jī)標(biāo)識時,使用所述Deffie-Hellman公鑰和所述第二解密子單元解密得到客戶端Deffie-Hellman公鑰計(jì)算會話密鑰;
      [0064]第三加密子單元,適于使用所述第一計(jì)算子單元計(jì)算得出的會話密鑰和第一流加密算法加密所述第二隨機(jī)標(biāo)識,生成密文第二隨機(jī)標(biāo)識,并采用所述密文第二隨機(jī)標(biāo)識和第二流加密算法加密驗(yàn)證數(shù)據(jù),并發(fā)送至所述客戶端。
      [0065]所述接收單元包括:第四接收子單元,適于接收客戶端采用所述第二流加密算法和所述密文第二隨機(jī)標(biāo)識對待傳輸?shù)臄?shù)據(jù)包加密生成的密文數(shù)據(jù)包,所述待傳輸?shù)臄?shù)據(jù)包包括指令信息、消息信息和數(shù)字簽名信息,其中,所述指令信息指示所述服務(wù)端執(zhí)行相應(yīng)的操作,所述消息信息將被所述服務(wù)端傳輸至標(biāo)準(zhǔn)輸出,所述數(shù)字簽名信息為采用數(shù)字簽名算法加密所述指令信息、消息信息和所述第二隨機(jī)標(biāo)識生成。
      [0066]可選地,所述解密單元包括:
      [0067]第三解密子單元,適于采用所述第一流加密算法和所述會話密鑰加密所述第二隨機(jī)標(biāo)識,生成所述密文第二隨機(jī)標(biāo)識,并使用所述第二流加密算法和所述密文第二隨機(jī)標(biāo)識解密所述密文數(shù)據(jù)包,得到所述指令信息、消息信息和數(shù)字簽名信息;
      [0068]數(shù)字簽名驗(yàn)證單元,適于采用所述數(shù)字簽名算法驗(yàn)證所述第三解密子單元解密得到的數(shù)字簽名信息;
      [0069]執(zhí)行子單元,適于當(dāng)所述數(shù)字簽名驗(yàn)證單元驗(yàn)證所述數(shù)字簽名信息正確時,根據(jù)解密得到的指令信息執(zhí)行相應(yīng)的操作。
      [0070]可選地,所述執(zhí)行子單元包括:
      [0071]第一執(zhí)行模塊,適于當(dāng)所述指令為第一數(shù)值時,對所述解密得到的消息信息不執(zhí)行任何操作;
      [0072]第二執(zhí)行模塊,適于當(dāng)所述指令為第二數(shù)值時,中斷與所述客戶端的連接,并持續(xù)監(jiān)聽服務(wù)端口,以確定是否有新的服務(wù)請求;
      [0073]第三執(zhí)行模塊,適于當(dāng)所述指令為第三數(shù)值時,中斷與所述客戶端的連接并退出;
      [0074]第四執(zhí)行模塊,適于當(dāng)所述指令為第四數(shù)值時,解壓縮解密得到的消息信息;
      [0075]第五執(zhí)行模塊,當(dāng)所述指令為第五數(shù)值時,請求與客戶端重新會話密鑰通過所述密鑰交換協(xié)議生成新的會話密鑰。
      [0076]本發(fā)明實(shí)施例還提供了一種客戶端,包括:
      [0077]第二身份認(rèn)證單元,適于通過認(rèn)證協(xié)議與服務(wù)端進(jìn)行信息交互,對所述服務(wù)端進(jìn)行身份認(rèn)證;
      [0078]第二密鑰交換單元,適于與經(jīng)過第二身份認(rèn)證單元認(rèn)證的服務(wù)端通過密鑰交換協(xié)議生成會話密鑰;
      [0079]加密單元,適于采用所述第二密鑰交換單元生成的會話密鑰對待傳輸?shù)臄?shù)據(jù)包進(jìn)行加密,并將經(jīng)過加密的數(shù)據(jù)包傳輸至所述服務(wù)端。
      [0080]可選地,所述第二身份認(rèn)證單元包括:
      [0081]第二存儲子單元,適于存儲客戶端RSA私鑰和服務(wù)端RSA公鑰,服務(wù)端RSA公鑰由所述服務(wù)端的身份數(shù)據(jù)索引,其中,所述客戶端RSA私鑰和客戶端RSA公鑰構(gòu)成客戶端RSA密鑰對,所述服務(wù)端RSA公鑰和服務(wù)端RSA私鑰構(gòu)成服務(wù)端RSA密鑰對,所述服務(wù)端RSA密鑰對和服務(wù)端RSA密鑰對采用RSA算法生成,所述服務(wù)端RSA私鑰和客戶端RSA公鑰存儲于所述服務(wù)端上,所述客戶端RSA公鑰由所述客戶端的身份數(shù)據(jù)索引;
      [0082]第二發(fā)送子單元,適于將所述客戶端的身份數(shù)據(jù)發(fā)送至所述服務(wù)端,向所述服務(wù)端發(fā)出服務(wù)請求;
      [0083]第五接收子單元,適于接收所述服務(wù)端采用第二發(fā)送子單元發(fā)送的客戶端的身份數(shù)據(jù)確定的客戶端RSA公鑰加密的服務(wù)端的身份數(shù)據(jù)和第一隨機(jī)標(biāo)識;
      [0084]第三解密子單元,適于采用所述第二存儲子單元中存儲的與客戶端RSA公鑰相對應(yīng)的客戶端RSA私鑰,解密所述第五接收子單元接收的經(jīng)過服務(wù)端采用客戶端RSA公鑰加密的服務(wù)端的身份數(shù)據(jù)和第一隨機(jī)標(biāo)識,當(dāng)解密得到的服務(wù)端的身份數(shù)據(jù)與所接收的服務(wù)端的身份數(shù)據(jù)的明文一致時,所述客戶端對所述服務(wù)端身份認(rèn)證成功;
      [0085]第四加密子單元,適于當(dāng)所述第三解密子單元對于所述服務(wù)端的身份認(rèn)證成功時,采用根據(jù)第三解密子單元解密得到的所述服務(wù)端的身份數(shù)據(jù)確定所述第二存儲子單元中存儲的服務(wù)端RSA公鑰,并使用所確定的服務(wù)端RSA公鑰加密第二隨機(jī)標(biāo)識,并發(fā)送至所述服務(wù)端,所述第二隨機(jī)標(biāo)識為根據(jù)第三解密子單元解密得到的第一隨機(jī)標(biāo)識生成。
      [0086]可選地,第二密鑰交換單元包括:
      [0087]第六接收子單元,適于接收經(jīng)過所述服務(wù)端使用客戶端RSA公鑰加密的Deffie-Hellman公鑰、服務(wù)端Deffie-Hellman公鑰和所述第二隨機(jī)標(biāo)識,所述Deffie-Hellman公鑰由所述服務(wù)端生成,所述服務(wù)端Deffie-Hellman公鑰由所述服務(wù)端利用所述Deffie-Hellman公鑰和根據(jù)所述Deffie-Hellman公鑰生成的服務(wù)端Deffie-Hellman私鑰生成;
      [0088]第四解密子單元,適于使用第二存儲子單元存儲的與所述客戶端RSA公鑰相對應(yīng)的客戶端R S A私鑰,解密所述第六接收子單元接收的經(jīng)過客戶端R S A公鑰加密的Deffie-Hellman公鑰、服務(wù)端Deffie-Hellman公鑰和所述第二隨機(jī)標(biāo)識;
      [0089]第二生成子單元,適于根據(jù)第四解密子單元解密得到的Deffie-Hellman公鑰生成客戶端Deffie-Hellman私鑰,并根據(jù)所述Deffie-Hellman公鑰和客戶端Deffie-Hellman私鑰生成客戶端Deffie-Hellman公鑰;
      [0090]第二計(jì)算子單元,適于當(dāng)所述第四解密子單元解密得到正確的的第二隨機(jī)標(biāo)識時,根據(jù)所述第四解密子單元解密得到的Deffie-Hellman公鑰和所述服務(wù)端Deffie-Hellman公鑰計(jì)算會話密鑰;
      [0091]第五加密子單元,適于使用第二存儲子單元中存儲的服務(wù)端RSA公鑰,加密所述第二生成子單元生成的客戶端Deffie-Hellman公鑰和所述第二隨機(jī)標(biāo)識,并發(fā)送至所述服務(wù)端;
      [0092]第七接收子單元,適于接收服務(wù)端采用第一流加密算法和所述會話密鑰加密所述第二隨機(jī)標(biāo)識,生成密文第二隨機(jī)標(biāo)識,并采用所述密文第二隨機(jī)標(biāo)識和所述第二流加密算法加密的驗(yàn)證數(shù)據(jù);
      [0093]第五解密子單元,適于使用第二計(jì)算子單元計(jì)算得到的會話密鑰和第一流加密算法加密第二隨機(jī)標(biāo)識,生成密文第二隨機(jī)標(biāo)識,并采用所述密文第二隨機(jī)標(biāo)識和第二流加密算法,解密所述第六接收子單元接收的經(jīng)過所述服務(wù)端加密的驗(yàn)證數(shù)據(jù),當(dāng)?shù)玫秸_的驗(yàn)證數(shù)據(jù)時,證明所述客戶端和所述服務(wù)端均計(jì)算出了正確的會話密鑰。
      [0094]可選地,所述發(fā)送單元包括:
      [0095]信息輸入子單兀,適于輸入待傳輸?shù)南⑿畔ⅲ?br> [0096]第六加密子單元,適于使用所述會話密鑰和所述第一流加密算法加密所述第二隨機(jī)標(biāo)識,得到密文第二隨機(jī)標(biāo)識;
      [0097]簽名生成子單元,適于采用數(shù)字簽名算法加密指令信息、所述消息信息和所述第二隨機(jī)標(biāo)識,生成數(shù)字簽名信息;
      [0098]第七加密子單元,適于采用第二流加密算法和所述第六加密子單元得到的密文隨機(jī)標(biāo)識加密待傳輸?shù)臄?shù)據(jù)包,生成密文數(shù)據(jù)包,所述待傳輸數(shù)據(jù)包包括所述指令信息、消息信息和所述簽名生成子單元生成的數(shù)字簽名信息,其中,所述指令信息指示所述服務(wù)端執(zhí)行相應(yīng)的操作,所述消息信息將被所述服務(wù)端傳輸至標(biāo)準(zhǔn)輸出;
      [0099]第三發(fā)送子單元,適于將所述第七加密子單元生成的密文數(shù)據(jù)包發(fā)送至所述服務(wù)端。
      [0100]可選地,所述發(fā)送單元還包括:指令設(shè)置子單元,適于在所述第三發(fā)送子單元向服務(wù)端傳輸數(shù)據(jù)結(jié)束時,將所述指令信息置為相應(yīng)的數(shù)值。
      [0101]可選地,所述相應(yīng)的數(shù)值包括第一數(shù)值、第二數(shù)值、第三數(shù)值、第四數(shù)值或者第五數(shù)值;
      [0102]當(dāng)所述指令為第一數(shù)值時,指示服務(wù)端對于所述解密得到的消息信息不執(zhí)行任何操作;
      [0103]當(dāng)所述指令為第二數(shù)值時,指示服務(wù)端中斷與客戶端的連接,并指示服務(wù)端持續(xù)監(jiān)聽服務(wù)端口,以確定是否有服務(wù)請求;
      [0104]當(dāng)所述指令為第三數(shù)值時,指示服務(wù)端中斷與所述客戶端的連接并退出;
      [0105]當(dāng)所述指令為第四數(shù)值時,指示服務(wù)端解壓縮解密得到的消息信息;
      [0106]當(dāng)所述指令為第五數(shù)值時,指示服務(wù)端與重新進(jìn)行密鑰交換,生成新的會話密鑰。
      [0107]可選地,所述發(fā)送單元還包括:統(tǒng)計(jì)子單元,適于統(tǒng)計(jì)所述第三發(fā)送子單元發(fā)送給所述服務(wù)端的數(shù)據(jù)量。
      [0108]與現(xiàn)有技術(shù)相比,本發(fā)明的技術(shù)方案具有以下的優(yōu)點(diǎn):
      [0109]上述的技術(shù)方案,由于在進(jìn)行數(shù)據(jù)傳輸之前,客戶端和服務(wù)端之間通過認(rèn)證協(xié)議相互認(rèn)證對方的身份,再通過密鑰交換協(xié)議計(jì)算會話密鑰,并采用計(jì)算得到的會話密鑰和加密算法來對傳輸?shù)臄?shù)據(jù)包進(jìn)行加密和解密,實(shí)現(xiàn)傳輸?shù)臄?shù)據(jù)包安全地由客戶端向服務(wù)端的單向傳輸,構(gòu)建簡單,無需額外消耗計(jì)算資源,因此,數(shù)據(jù)的傳輸更加安全可靠,并可以有效節(jié)約計(jì)算資源。
      [0110]進(jìn)一步地,由于采用指令對服務(wù)端執(zhí)行的操作進(jìn)行控制,可以滿足多樣的數(shù)據(jù)傳輸需求。
      [0111]進(jìn)一步地,由于RSA加密算法對于客戶端與服務(wù)端在身份認(rèn)證階段和密鑰交換階段交互的信息進(jìn)行加密,可以有效提高數(shù)據(jù)傳輸?shù)陌踩?,并可以有效防止中間人攻擊。
      [0112]進(jìn)一步地,由于并在客戶端與服務(wù)端的交互的信息中加入了第一隨機(jī)標(biāo)識或者第二隨機(jī)標(biāo)識,可以有效防止重放攻擊。
      [0113]進(jìn)一步地,由于采用Diffie-hellman密匙交換協(xié)議計(jì)算客戶端和服務(wù)端的對稱的會話密鑰,由于所述會話密鑰由雙方各自生成,而非由一方計(jì)算出后傳輸給另一方,因此,可以有效防止會話密鑰被第三方截獲,而對數(shù)據(jù)傳輸?shù)陌踩斐赏{。
      [0114]進(jìn)一步地,由于采用第一流加密算法和會話會話密鑰加密第二會話標(biāo)識,生成密文第二隨機(jī)標(biāo)識,可以有效防止重放攻擊,再使用第二流加密算法和密文第二隨機(jī)標(biāo)識來加密傳輸?shù)臄?shù)據(jù),使得每次加密數(shù)據(jù)使用的密鑰均不相同,可以有效防止生日攻擊,因此,可以提高數(shù)據(jù)傳輸?shù)陌踩浴?br> [0115]進(jìn)一步地,由于采用數(shù)字簽名算法對指令信息、消息信息和第二隨機(jī)標(biāo)識生成數(shù)字簽名信息,可以確認(rèn)數(shù)據(jù)包發(fā)送者的真實(shí)身份、以及數(shù)據(jù)包的完整性和保密性。
      [0116]進(jìn)一步地,由于一臺以上的客戶端可以同時向服務(wù)端傳輸數(shù)據(jù),可以滿足客戶端與服務(wù)端之間并發(fā)傳輸數(shù)據(jù)的需求。
      【專利附圖】

      【附圖說明】
      [0117]圖1是本發(fā)明實(shí)施例中的一種數(shù)據(jù)傳輸方法的流程圖;
      [0118]圖2是本發(fā)明實(shí)施例中的另一種數(shù)據(jù)傳輸方法的流程圖;
      [0119]圖3是本發(fā)明實(shí)施例中的一種服務(wù)端的結(jié)構(gòu)示意圖;
      [0120]圖4是本發(fā)明實(shí)施例中的服務(wù)端的第一身份認(rèn)證單元的結(jié)構(gòu)示意圖;
      [0121]圖5是本發(fā)明實(shí)施例中的服務(wù)端的第一密鑰交換單元的結(jié)構(gòu)示意圖;
      [0122]圖6是本發(fā)明實(shí)施例中的服務(wù)端的接收單元的結(jié)構(gòu)示意圖;
      [0123]圖7是本發(fā)明實(shí)施例中的服務(wù)端的解密單元的結(jié)構(gòu)示意圖;
      [0124]圖8是本發(fā)明實(shí)施例中的客戶端的結(jié)構(gòu)示意圖;
      [0125]圖9是本發(fā)明實(shí)施例中的客戶端的第二身份認(rèn)證單元的結(jié)構(gòu)示意圖;
      [0126]圖10是本發(fā)明實(shí)施例中的客戶端的第二密鑰交換單元的結(jié)構(gòu)示意圖;
      [0127]圖11是本發(fā)明實(shí)施例中的客戶端中的發(fā)送單元的結(jié)構(gòu)示意圖。
      【具體實(shí)施方式】
      [0128]現(xiàn)有技術(shù)中,利用管道來建立客戶端和服務(wù)端之間的數(shù)據(jù)傳輸,通常采用下述兩種方式:
      [0129]一種是米用 VPN (Virtual Private Network,虛擬專用網(wǎng)絡(luò))或者 SSH (SecureShell,安全外殼協(xié)議)與TCP-PIPE相結(jié)合的方式,即:首先,在客戶端與服務(wù)端之間架設(shè)VPN或者采用SSH代理,以構(gòu)建安全通道,然后,在RPC上注冊TCP-PIPE服務(wù)端。最后,使用TCP-PIPE客戶端與TCP-PIPE服務(wù)端進(jìn)行數(shù)據(jù)傳輸。
      [0130]一方面,由于采用TCP-PIPE客戶端與TCP-PIPE服務(wù)端之間采用明文方式進(jìn)行數(shù)據(jù)的傳輸,因此需要額外地構(gòu)建長期存在的安全通道,以確保傳輸數(shù)據(jù)的安全性,因而存在著會浪費(fèi)資源。另一方面,由于TCP-PIPE服務(wù)端需要依賴RPC服務(wù)來進(jìn)行數(shù)據(jù)的傳輸,由于RPC服務(wù)本身的安全性不高,因此也增加客戶端和服務(wù)端被入侵的風(fēng)險。
      [0131]另一種是采用SSH和管道來實(shí)現(xiàn)客戶端與服務(wù)端之間的數(shù)據(jù)傳輸,該種方法有兩種實(shí)現(xiàn)方式,以業(yè)務(wù)服務(wù)端向業(yè)務(wù)客戶端傳輸數(shù)據(jù)為例,包括:
      [0132]一種實(shí)現(xiàn)方式是通過SSH客戶端將需要在業(yè)務(wù)服務(wù)端執(zhí)行的命令傳輸?shù)絊SH服務(wù)端。然后,再利用管道將SSH服務(wù)端命令運(yùn)行后的結(jié)果從SSH客戶端的標(biāo)準(zhǔn)輸出傳遞至下游程序的標(biāo)準(zhǔn)輸入。
      [0133]另一種實(shí)現(xiàn)方式是將業(yè)務(wù)服務(wù)端本地運(yùn)行的結(jié)果利用管道引導(dǎo)至SSH客戶端的標(biāo)準(zhǔn)輸入,再將需要在業(yè)務(wù)服務(wù)端運(yùn)行的命令傳遞至SSH服務(wù)端,以此,將業(yè)務(wù)服務(wù)端的本地數(shù)據(jù)傳輸至業(yè)務(wù)客戶端。[0134]由此可見,在方法中,無論第一種實(shí)現(xiàn)方式還是第二種實(shí)現(xiàn)方式均不符合正常的數(shù)據(jù)傳輸流程,因此,容易導(dǎo)致誤操作。
      [0135]同時,上述的兩種方式均不支持多臺客戶端和服務(wù)端之間的并發(fā)通信,無法滿足服務(wù)端與多臺客戶端進(jìn)行并發(fā)通信的需求。
      [0136]為解決現(xiàn)有技術(shù)中存在的上述問題,本發(fā)明實(shí)施例采用在數(shù)據(jù)傳輸之前先進(jìn)行身份認(rèn)證,再計(jì)算會話密鑰,并利用所計(jì)算出來的會話密鑰來進(jìn)行數(shù)據(jù)傳輸,可以有效提高數(shù)據(jù)傳輸?shù)陌踩?,?jié)約計(jì)算資源,簡單易用。
      [0137]為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更為明顯易懂,下面結(jié)合附圖對本發(fā)明的具體實(shí)施例做詳細(xì)的說明。
      [0138]圖1示出了本發(fā)明實(shí)施例中的一種數(shù)據(jù)傳輸方法的流程圖。如圖1所示數(shù)據(jù)傳輸方法,可以包括:
      [0139]步驟Sll:服務(wù)端與客戶端通過認(rèn)證協(xié)議進(jìn)行信息交互,相互進(jìn)行身份認(rèn)證。
      [0140]在具體實(shí)施中,服務(wù)端和客戶端可以通過認(rèn)證協(xié)議進(jìn)行信息交互,相互確定對方的身份,以確定對方不是入侵者。
      [0141]步驟S12:所述服務(wù)端和客戶端通過密鑰交換協(xié)議生成會話密鑰。
      [0142]在具體實(shí)施中,服務(wù)端和客戶端可以采用密匙交換協(xié)議計(jì)算會話密鑰,并驗(yàn)證雙方是否計(jì)算出了正確的會話密鑰,當(dāng)雙方均計(jì)算出正確的會話密鑰時,則可以進(jìn)行后續(xù)的數(shù)據(jù)傳輸。
      [0143]步驟S13:所述客戶端采用加密算法和所述會話密鑰對待傳輸?shù)臄?shù)據(jù)包進(jìn)行加密,并將經(jīng)過加密的數(shù)據(jù)包傳輸至所述服務(wù)端。
      [0144]在具體實(shí)施中,當(dāng)服務(wù)端和客戶端生成正確的會話密鑰時,客戶端可以使用計(jì)算出來的會話密鑰和加密算法對待傳輸?shù)臄?shù)據(jù)包進(jìn)行加密,以確認(rèn)數(shù)據(jù)包發(fā)發(fā)送者的真實(shí)身份,并確保數(shù)據(jù)包的保密性和完整性。
      [0145]在具體實(shí)施中,為了進(jìn)一步確保數(shù)據(jù)傳輸?shù)陌踩裕梢圆捎昧骷用芩惴▉韺Υ齻鬏數(shù)臄?shù)據(jù)包進(jìn)行加密,由于客戶端在每次傳輸數(shù)據(jù)時,采用不同的密鑰對傳輸?shù)臄?shù)據(jù)進(jìn)行加密,可以有效避免采用不變的密鑰對數(shù)據(jù)進(jìn)行加密所產(chǎn)生的安全性問題。
      [0146]步驟S14:所述服務(wù)端使用所述會話密鑰和加密算法解密所接收的經(jīng)過加密的數(shù)據(jù)包,并執(zhí)行相應(yīng)的操作。
      [0147]在具體實(shí)施中,服務(wù)端可以使用自身計(jì)算得到的會話密鑰和加密算法,將客戶端采用會話密鑰和所述加密算法加密的數(shù)據(jù)進(jìn)行解密,并根據(jù)解密得到的數(shù)據(jù)執(zhí)行相應(yīng)的操作。例如,客戶端可以根據(jù)解密得到的數(shù)據(jù)中的指令的信息,執(zhí)行相應(yīng)的操作。
      [0148]圖2示出了本發(fā)明實(shí)施例中的另一種數(shù)據(jù)傳輸方法的流程圖。如圖2所述的數(shù)據(jù)傳輸方法,可以包括:
      [0149]步驟S201:將所述服務(wù)端RSA私鑰和客戶端RSA公鑰存儲在所述服務(wù)端中,客戶端RSA公鑰由客戶端的身份數(shù)據(jù)索引,將所述客戶端RSA私鑰和服務(wù)端RSA公鑰存儲在所述客戶端中,所述服務(wù)端RSA公鑰由服務(wù)端的身份數(shù)據(jù)索引。
      [0150]在具體實(shí)施中,所述服務(wù)端RSA私鑰和服務(wù)端RSA公鑰構(gòu)成服務(wù)端RSA密鑰對,客戶端RSA私鑰和客戶端RSA公鑰構(gòu)成客戶端RSA密鑰對,服務(wù)端RSA密鑰對和客戶端密鑰對可以分別由服務(wù)端和客戶端采用RSA算法生成,也可以由第三方生成。[0151]在具體實(shí)施中,客戶端RSA公鑰由客戶端的身份數(shù)據(jù)索引,S卩:服務(wù)端可以根據(jù)客戶端的身份數(shù)據(jù)來確定相應(yīng)的客戶端RSA公鑰。所述服務(wù)端RSA公鑰由服務(wù)端的身份數(shù)據(jù)索引,即客戶端可以根據(jù)客戶端的身份數(shù)據(jù)來確定相應(yīng)的客戶端RSA公鑰
      [0152]步驟S202:所述客戶端將自身的身份數(shù)據(jù)發(fā)送至所述服務(wù)端。
      [0153]在具體實(shí)施中,客戶端可以首先將自身的身份數(shù)據(jù)發(fā)送至客戶端,以向所述服務(wù)端發(fā)出服務(wù)請求。其中,客戶端的身份數(shù)據(jù)可以用于唯一地確定所述客戶端,以及存儲在服務(wù)端上的客戶端RSA公鑰。
      [0154]步驟S203:所述服務(wù)端根據(jù)客戶端所發(fā)送的客戶端的身份數(shù)據(jù)確定客戶端RSA公鑰,并使用所確定的客戶端RSA公鑰加密第一隨機(jī)標(biāo)識和服務(wù)端的身份數(shù)據(jù),并將服務(wù)端的身份數(shù)據(jù)的明文與經(jīng)過加密的第一隨機(jī)標(biāo)識和服務(wù)端的身份數(shù)據(jù)發(fā)送至所述客戶端。
      [0155]在具體實(shí)施中,服務(wù)端可以首先根據(jù)客戶端發(fā)送的客戶端的身份數(shù)據(jù)來確定存儲于自身客戶端RSA公鑰,并可以使用所確定的客戶端RSA公鑰對自身的身份數(shù)據(jù)和第一隨機(jī)標(biāo)識進(jìn)行加密。其中,服務(wù)端的身份數(shù)據(jù)可以為客戶端用于確定存儲于客戶端的服務(wù)端的RSA公鑰,第一隨機(jī)標(biāo)識可以為客戶端用于生成第二隨機(jī)標(biāo)識。
      [0156]步驟S204:所述客戶端使用自身存儲的與所述客戶端RSA公鑰相對應(yīng)的客戶端RSA私鑰,解密經(jīng)過加密的第一隨機(jī)標(biāo)識和所述服務(wù)端的身份數(shù)據(jù),當(dāng)解密得到的服務(wù)端的身份數(shù)據(jù)與所接收的服務(wù)端的身份數(shù)據(jù)的明文一致時,所述客戶端對所述服務(wù)端身份認(rèn)證成功。
      [0157]在具體實(shí)施中,客戶端在接收到服務(wù)端采用客戶端RSA公鑰加密的第一隨機(jī)標(biāo)識和服務(wù)端的身份數(shù)據(jù)后,可以在自身存儲的客戶端RSA私鑰庫中查找相應(yīng)的客戶端RSA私鑰,并使用查找到的客戶端RSA私鑰解密經(jīng)過客戶端RSA公鑰加密的身份數(shù)據(jù)和第二隨機(jī)標(biāo)識。
      [0158]客戶端經(jīng)過解密得到服務(wù)端的身份數(shù)據(jù)和第二隨機(jī)標(biāo)識時,可以將解密得到的服務(wù)端的身份數(shù)據(jù)與所接收的服務(wù)端的身份數(shù)據(jù)的明文進(jìn)行比較,以確定二者是否一致。當(dāng)確定解密得到的服務(wù)端的身份數(shù)據(jù)與所接收的服務(wù)端的身份數(shù)據(jù)的明文一致時,證明客戶端所接收的經(jīng)過加密的服務(wù)端的身份數(shù)據(jù)和第二隨機(jī)標(biāo)識確實(shí)為服務(wù)端發(fā)送過來的,客戶端對于服務(wù)端的身份認(rèn)證成功。
      [0159]步驟S205:所述客戶端對所述服務(wù)端身份認(rèn)證成功時,所述客戶端所述服務(wù)端的身份數(shù)據(jù)確定服務(wù)端RSA公鑰,并使用所確定的服務(wù)端RSA公鑰加密第二隨機(jī)標(biāo)識,并發(fā)送至所述服務(wù)端。
      [0160]在具體實(shí)施中,所述客戶端對所述服務(wù)端身份認(rèn)證成功時,客戶端可以根據(jù)解密得到的服務(wù)端的身份數(shù)據(jù),確定自身存儲的服務(wù)端RSA公鑰,并采用所確定的服務(wù)端RSA公鑰解密第二隨機(jī)標(biāo)識,并發(fā)送至服務(wù)端。
      [0161]在具體實(shí)施中,第二隨機(jī)標(biāo)識可以為根據(jù)解密得到的服務(wù)端發(fā)送的第一隨機(jī)標(biāo)識生成。例如,第一隨機(jī)標(biāo)識可以為一隨機(jī)數(shù),客戶端可以以第一隨機(jī)標(biāo)識為種子,采用安全隨機(jī)數(shù)算法生成第二隨機(jī)標(biāo)識。
      [0162]步驟S206:所述服務(wù)端使用自身存儲的與所述服務(wù)端RSA公鑰相對應(yīng)的服務(wù)端RSA私鑰,解密經(jīng)過加密的第二隨機(jī)標(biāo)識,當(dāng)解密得到的第二隨機(jī)標(biāo)識與所述服務(wù)端根據(jù)解密得到的第一隨機(jī)標(biāo)識計(jì)算得到的第二隨機(jī)標(biāo)識相同時,證明所接收的經(jīng)過加密的第二隨機(jī)標(biāo)識為本次會話產(chǎn)生,且所述服務(wù)端對所述客戶端的身份認(rèn)證成功。
      [0163]在具體實(shí)施中,服務(wù)端可以在自身存儲的服務(wù)端RSA私鑰庫中,查找與服務(wù)端RSA公鑰相對應(yīng)的服務(wù)端RSA私鑰,并可以使用查找得到的服務(wù)端RSA私鑰對于經(jīng)過客戶端加密的第二隨機(jī)標(biāo)識進(jìn)行解密。
      [0164]在具體實(shí)施中,在客戶端和服務(wù)端相互進(jìn)行身份認(rèn)證的過程中,客戶端和服務(wù)端的數(shù)據(jù)采用RSA算法對交互的信息數(shù)據(jù)進(jìn)行加密和解密。由于RSA私鑰一般會進(jìn)行秘密保存,RSA公鑰則可能會被公布,而處于公眾可得的狀態(tài)。當(dāng)RSA公鑰被公布時,任何人都可以使用處于公眾可得狀態(tài)的RSA公鑰對經(jīng)過RSA私鑰加密的數(shù)據(jù)進(jìn)行解密。
      [0165]因此,在本發(fā)明實(shí)施例中的數(shù)據(jù)傳輸方法中,在客戶端和服務(wù)端相互進(jìn)行身份認(rèn)證的過程中,采用RSA公鑰對傳輸?shù)男畔?shù)據(jù)加密,而采用秘密保存的RSA私鑰對經(jīng)過RSA公鑰加密的信息數(shù)據(jù)進(jìn)行解密。因此,即使相應(yīng)的RSA公鑰被公布,任何第三方也無法解密經(jīng)過客戶端和服務(wù)端加密的數(shù)據(jù),可以提高數(shù)據(jù)傳輸?shù)陌踩浴?br> [0166]在具體實(shí)施中,當(dāng)客戶端和服務(wù)端相互身份認(rèn)證成功時,雙方便可以進(jìn)入下一步的密鑰交換階段,以生成會話密鑰。
      [0167]在本發(fā)明的實(shí)施例中,服務(wù)端和客戶端交換會話密鑰可以采用Deffie-Hellman密匙交換協(xié)議進(jìn)行。具體而言,可以包括:
      [0168]步驟S207:所述服務(wù)端使用客戶端RSA公鑰,加密Deffie-Hellman公鑰、服務(wù)端Deffie-Hellman公鑰和所述第二隨機(jī)標(biāo)識,并發(fā)送至所述客戶端。
      [0169]在具體實(shí)施中,所述Deffie-Hellman公鑰由所述服務(wù)端生成,所述服務(wù)端Deffie-Hellman公鑰由所述服務(wù)端利用所述Deffie-Hellman公鑰和根據(jù)所述Deffie-Hellman公鑰生成的服務(wù)端Deffie-Hellman私鑰生成。
      [0170]在具體實(shí)施中,根據(jù)Deffie-Hel Iman密匙交換協(xié)議,可以首先由服務(wù)端確定Deffie-Hellman公鑰。其中,Deffie-Hellman公鑰包括兩個全局公開的參數(shù),一個素數(shù)q和一個整數(shù)a,a是q的一個本原根。服務(wù)端可選擇一個隨機(jī)標(biāo)識Xs且Xs〈q作為服務(wù)端Deffie-Hellman私鑰,并可以根據(jù)公式Y(jié)s = a'Xs mod q計(jì)算服務(wù)端Deffie-Hellman公鑰Ys。服務(wù)端將對服務(wù)端Deffie-Hellman私鑰進(jìn)行保密存放,而服務(wù)端Deffie-Hellman公鑰可以由服務(wù)端經(jīng)過加密后發(fā)送至客戶端,以使得客戶端可以獲得服務(wù)端Deffie-Hellman公鑰。
      [0171]步驟S208:所述客戶端使用與所述客戶端RSA公鑰相對應(yīng)的客戶端RSA私鑰,解密經(jīng)過所述客戶端RSA公鑰加密的Deffie-Hellman公鑰、服務(wù)端Deffie-Hellman公鑰和第二隨機(jī)標(biāo)識。
      [0172]在具體實(shí)施中,為了獲取服務(wù)端所傳送的Deffie-Hellman公鑰和服務(wù)端Deffie-Hellman公鑰,客戶端可以在自身存儲的客戶端RSA私鑰庫中查找相應(yīng)的客戶端RSA私鑰,并使用查找得到的客戶端RSA私鑰解密經(jīng)過客戶端RSA公鑰加密的Deffie-Hellman公鑰、服務(wù)端Deffie-Hellman公鑰和第二隨機(jī)標(biāo)識,以便計(jì)算自身的客戶端Deffie-Hellman私鑰和客戶端Deffie-Hellman公鑰,并驗(yàn)證所接收的經(jīng)過加密的Deffie-Hellman公鑰、服務(wù)端Deffie-Hellman公鑰和第二隨機(jī)標(biāo)識的身份。
      [0173]步驟S209:當(dāng)解密得到正確的的第二隨機(jī)標(biāo)識時,所述客戶端根據(jù)解密得到的Deffie-Hellman公鑰和服務(wù)端Deffie-Hellman公鑰計(jì)算出會話密鑰。
      [0174]在具體實(shí)施中,當(dāng)客戶端獲取Deffie-Hellman公鑰和服務(wù)端Deffie-Hellman公鑰后,可以采用公式K = (Ys) "Xe mod q,計(jì)算出會話密鑰K。
      [0175]步驟S210:所述客戶端使用服務(wù)端RSA公鑰加密客戶端Deffie-Hellman公鑰和所述第二隨機(jī)標(biāo)識,并發(fā)送至所述服務(wù)端。
      [0176]在具體實(shí)施中,根據(jù)Deffie-Hellman密鑰交換協(xié)議,為了讓服務(wù)端可以采用客戶端Deffie-Hellman公鑰,采用公式:K = (Yc) "Xs mod q,計(jì)算得到會話密鑰K,首先可以將客戶端計(jì)算得到的客戶端Deffie-Hellman公鑰加密后發(fā)送至服務(wù)端。
      [0177]由于采用Deffie-Hellman密鑰交換算法,僅在需要的時候,計(jì)算客戶端和服務(wù)端的對稱的會話密鑰,且會話密鑰本身無須傳輸,可以有效減少對稱密鑰遭受攻擊的機(jī)會,提高安全性。
      [0178]另外,由于在客戶端和服務(wù)端發(fā)送的數(shù)據(jù)中加入了第一隨機(jī)標(biāo)識或者第二隨機(jī)標(biāo)識,可以有效防止第三方截獲客戶端和服務(wù)端發(fā)送的數(shù)據(jù)包,偽裝成客戶端或者服務(wù)端,將之前截獲的數(shù)據(jù)包重新放入網(wǎng)絡(luò),向客戶端或者服務(wù)端發(fā)送,因而可以提高數(shù)據(jù)傳輸?shù)陌踩浴?br> [0179]步驟S211:所述服務(wù)端使用與所述服務(wù)端RSA公鑰相對應(yīng)的服務(wù)端RSA私鑰,解密所述經(jīng)過服務(wù)端RSA公鑰加密的客戶端Deffie-Hellman公鑰和第二隨機(jī)標(biāo)識。
      [0180]在具體實(shí)施中,客戶端在經(jīng)過解密得到的Deffie-Hellman公鑰后,可以隨機(jī)選擇一個私有的隨機(jī)標(biāo)識Xc〈q作為客戶端Deffie-Hellman私鑰,并根據(jù)公式Y(jié)c = a'Xc mod q計(jì)算得到自身的客戶端Deffie-Hellman公鑰Yc。其中,客戶端Deffie-Hellman密鑰Xe由客戶端保密存放,而客戶端Deffie-Hellman公鑰Yc則可以能被服務(wù)端公開獲得。
      [0181]在具體實(shí)施中,為了獲取客戶端所傳送的客戶端Deffie-Hellman公鑰和第二隨機(jī)標(biāo)識,服務(wù)端可以在自身存儲的服務(wù)端RSA私鑰庫中查找相應(yīng)的服務(wù)端RSA私鑰,并使用查找得到的服務(wù)端RSA私鑰,解密經(jīng)過服務(wù)端RSA公鑰加密的客戶端Deffie-Hellman公鑰,以便計(jì)算會話密鑰K。
      [0182]步驟S212:當(dāng)?shù)玫秸_的第二隨機(jī)標(biāo)識時,所述服務(wù)端根據(jù)所述Deffie-Hellman公鑰和解密得到所述客戶端Deffie-Hellman公鑰計(jì)算出會話密鑰。
      [0183]在具體實(shí)施中,當(dāng)客戶端采用服務(wù)端RSA私鑰解密得到正確的第二隨機(jī)標(biāo)識時,證明其所接收的數(shù)據(jù)包確實(shí)為本次會話產(chǎn)生,解密得到的客戶端Deffie-Hellman公鑰也為經(jīng)過身份認(rèn)證的客戶端發(fā)送。
      [0184]在具體實(shí)施中,當(dāng)服務(wù)端獲取客戶端Deffie-Hellman公鑰后,可以采用公式:K =(Yc) ~Xs mod q,計(jì)算出會話密鑰K。
      [0185]由于 K = (YB) 'XA mod q = (a'XB mod q) 'XA mod q = (a'XB) 'XA mod q = a' (XBXA)mod q = (a'XA) 'XB mod q = (a'XA mod q) 'XB mod q = (YA) 'XB mod q,因此,服務(wù)端和客戶端將可以計(jì)算出相同的會話密鑰。
      [0186]現(xiàn)有的RSA算法,RSA私鑰一般會進(jìn)行秘密保存,RSA公鑰則可能會被公布,處于公眾可得的狀態(tài)。當(dāng)RSA公鑰被公布時,任何人都可以使用處于公眾可得狀態(tài)的RSA公鑰對經(jīng)過RSA私鑰加密的數(shù)據(jù)進(jìn)行解密。
      [0187]因此,在本發(fā)明實(shí)施例中的數(shù)據(jù)傳輸方法中,在客戶端和服務(wù)端進(jìn)行密鑰交換的過程中,采用RSA公鑰對傳輸?shù)男畔?shù)據(jù)加密,而采用秘密保存的RSA私鑰對經(jīng)過RSA公鑰加密的信息數(shù)據(jù)進(jìn)行解密,即使相應(yīng)的RSA公鑰被公布,任何第三方也無法解密經(jīng)過客戶端和服務(wù)端加密的數(shù)據(jù),可以提高數(shù)據(jù)傳輸?shù)陌踩浴?br> [0188]同時,由于采用Deffie-Hellman密匙交換協(xié)議來計(jì)算客戶端和服務(wù)端的對稱密鑰,由于所述會話密鑰由雙方各自生成,而非由一方計(jì)算出后傳輸給另一方,因此,可以有效防止會話密鑰被第三方截獲,而對數(shù)據(jù)傳輸?shù)陌踩斐赏{
      [0189]在具體實(shí)施中,當(dāng)服務(wù)端和客戶端分別計(jì)算得到會話密鑰后,可以進(jìn)一步通過相應(yīng)的信息交互來確定雙方是否均計(jì)算出了正確的對稱會話密鑰。具體而言,可以包括:
      [0190]步驟S213:所述服務(wù)端使用自身計(jì)算得到的會話密鑰和第一流加密算法,加密所述第二隨機(jī)標(biāo)識生成,生成密文第二隨機(jī)標(biāo)識,并采用所述密文第二隨機(jī)標(biāo)識和第二流加密算法加密驗(yàn)證數(shù)據(jù),并發(fā)送至所述客戶端。
      [0191]在具體實(shí)施中,驗(yàn)證數(shù)據(jù)可以根據(jù)實(shí)際的需要進(jìn)行設(shè)置。例如,驗(yàn)證數(shù)據(jù)可以隨機(jī)生成的隨機(jī)標(biāo)識等。
      [0192]在具體實(shí)施中,第一流加密算法和第二流加密算法可以相同,也可以不相同。
      [0193]步驟S214:所述客戶端使用自身計(jì)算得到的會話密鑰和所述第一流加密算法生成密文第二隨機(jī)標(biāo)識,并使用所述密文第二隨機(jī)標(biāo)識和所述第二流加密算法解密所述經(jīng)過服務(wù)端加密的驗(yàn)證數(shù)據(jù),當(dāng)?shù)玫秸_的驗(yàn)證數(shù)據(jù)時,證明所述服務(wù)端和所述客戶端均計(jì)算出了正確的對稱的會話密鑰。
      [0194]在具體實(shí)施中,根據(jù)Deffie-Hellman密匙交換協(xié)議,當(dāng)客戶端使用會話密鑰對加密的驗(yàn)證數(shù)據(jù)進(jìn)行解密時,可以首先使用自身計(jì)算出的會話密鑰和所述第六加密算法對第二隨機(jī)標(biāo)識進(jìn)行加密,得到第二隨機(jī)標(biāo)識的密文,即密文第二隨機(jī)標(biāo)識。然后,服務(wù)端可以使用密文第二隨機(jī)標(biāo)識和第二流加密算法對于經(jīng)過客戶端加密的驗(yàn)證數(shù)據(jù)進(jìn)行解密。當(dāng)服務(wù)端和客戶端計(jì)算出的會話密鑰均正確時,則服務(wù)端使用會使用密文第二隨機(jī)標(biāo)識和第二流加密算法對客戶端加密的驗(yàn)證數(shù)據(jù)進(jìn)行解密,便可以獲取正確的驗(yàn)證數(shù)據(jù)。此時,可以確定服務(wù)端和客戶端均計(jì)算出了正確的會話密鑰,可以進(jìn)入后續(xù)的數(shù)據(jù)傳輸階段。
      [0195]在具體實(shí)施中,驗(yàn)證數(shù)據(jù)可以根據(jù)實(shí)際的需要進(jìn)行設(shè)置。例如,可以為字符串、數(shù)字等。
      [0196]步驟S215:所述客戶端使用所述第一流加密算法和所述會話密鑰加密所述第二隨機(jī)標(biāo)識,得到所述密文第二隨機(jī)標(biāo)識,并使用所述第二流加密算法和所述密文第二隨機(jī)標(biāo)識對待傳輸?shù)臄?shù)據(jù)包進(jìn)行加密,生成密文數(shù)據(jù)包。
      [0197]在具體實(shí)施中,為了確保待傳輸數(shù)據(jù)在傳輸過程中的安全,可以不直接采用會話密鑰加密待傳輸?shù)臄?shù)據(jù),而可以首先采用會話密鑰和第一流加密算法加密第二隨機(jī)標(biāo)識,得到密文第二隨機(jī)標(biāo)識,再使用得到的密文第二隨機(jī)標(biāo)識和第二流加密算法加密待傳輸?shù)臄?shù)據(jù)包,生成密文數(shù)據(jù)包。第一流加密的存在,使得每次加密待傳輸?shù)臄?shù)據(jù)包采用的密鑰會不斷變化,降低了不同數(shù)據(jù)包加密后生成的密文產(chǎn)生沖突的可能性,因此,可以有效防御生日攻擊,提高數(shù)據(jù)傳輸?shù)陌踩浴?br> [0198]在具體實(shí)施中,當(dāng)服務(wù)端通過解密得到正確的數(shù)據(jù)包時,由于第二隨機(jī)標(biāo)識的存在,服務(wù)端便可以確定所接收的數(shù)據(jù)包確為本次會話產(chǎn)生,而不是第三方截獲數(shù)據(jù)包后重放的數(shù)據(jù)包,因此,可以提高數(shù)據(jù)傳輸?shù)陌踩浴?br> [0199]在具體實(shí)施中,客戶端所生成的密文數(shù)據(jù)包中可以包括指令信息、消息信息和數(shù)字簽名信息。其中:[0200]在具體實(shí)施中,所述指令信息可以位于待傳輸?shù)臄?shù)據(jù)包的第一字節(jié),并可以由客戶端在向服務(wù)端傳輸數(shù)據(jù)結(jié)束時置為相應(yīng)的數(shù)值。例如:
      [0201]當(dāng)所述指令為第一數(shù)值時,所述服務(wù)端對于解密得到的消息信息不執(zhí)行任何操作。
      [0202]當(dāng)所述指令為第二數(shù)值時,所述服務(wù)端在接收數(shù)據(jù)結(jié)束后,中斷與所述客戶端的連接,并持續(xù)監(jiān)聽服務(wù)端口,以確定是否有新的服務(wù)請求。此時,當(dāng)客戶端向服務(wù)端發(fā)送新的服務(wù)請求時,服務(wù)端可以接收并響應(yīng)。
      [0203]當(dāng)所述指令為第三數(shù)值時,所述服務(wù)端在接收數(shù)據(jù)結(jié)束后,中斷與所述客戶端的連接并退出。此時,服務(wù)端已經(jīng)退出,當(dāng)客戶端向服務(wù)端發(fā)送新的服務(wù)請求時,服務(wù)端將無法接收并響應(yīng)。
      [0204]當(dāng)所述指令為第四數(shù)值時,所述服務(wù)端解壓縮所述解密得到的消息信息。在具體實(shí)施中,當(dāng)所述指令為第四數(shù)值時,說明客戶端通過標(biāo)準(zhǔn)輸入輸入的消息信息經(jīng)過了壓縮處理,因此,服務(wù)端在讀取到指令信息為第四數(shù)值時,可以對經(jīng)過客戶端壓縮的消息信息進(jìn)行解壓縮。
      [0205]當(dāng)所述指令為第五數(shù)值時,所述服務(wù)端請求與所述客戶端重新通過所述密鑰交換協(xié)議生成新的會話密鑰。
      [0206]在具體實(shí)施中,數(shù)字簽名信息可以為采用所述數(shù)字簽名算法加密指令信息、消息信息和第二隨機(jī)標(biāo)識生成。
      [0207]在具體實(shí)施中,生成數(shù)字簽名信息所采用的算法可以根據(jù)實(shí)際的需要進(jìn)行選擇。例如,可以選擇消息摘要算法(Message Digest Algorithm,簡稱MD5)。
      [0208]在具體實(shí)施中,當(dāng)所述客戶端向所述服務(wù)端傳輸?shù)臄?shù)據(jù)量達(dá)到預(yù)設(shè)閾值時,所述客戶端將所述指令信息設(shè)置為第五數(shù)值,所述服務(wù)端和所述客戶端重新通過密鑰交換協(xié)議生成新的會話密鑰。
      [0209]在具體實(shí)施中,所述加密算法可以為RC4加密算法。但是,由于RC4加密算法會受到生日攻擊,為了確保數(shù)據(jù)傳輸?shù)陌踩裕?dāng)所述客戶端向服務(wù)端傳輸?shù)臄?shù)據(jù)量達(dá)到預(yù)設(shè)閾值,客戶端可以將所述指令信息設(shè)置為第五數(shù)值,所述服務(wù)端和所述客戶端重新交換會話密鑰。
      [0210]在具體實(shí)施中,為了防止第三方截獲傳輸?shù)臄?shù)據(jù),并偽裝成客戶端向服務(wù)端傳送數(shù)據(jù),在本發(fā)明實(shí)施例中的數(shù)據(jù)傳輸方法中,在服務(wù)端和客戶端傳輸?shù)臄?shù)據(jù)中加入了第一隨機(jī)標(biāo)識或者第二隨機(jī)標(biāo)識。第一隨機(jī)標(biāo)識和第二隨機(jī)標(biāo)識的存在可以有效防止重放攻擊,提高數(shù)據(jù)傳輸?shù)陌踩院涂煽啃浴?br> [0211 ] 在具體實(shí)施中,本發(fā)明實(shí)施例中的客戶端可以為一臺以上,也即本發(fā)明實(shí)施例中的數(shù)據(jù)傳輸方法可以支持一臺服務(wù)端與多臺客戶端同時進(jìn)行通信,進(jìn)行并發(fā)處理,因此??梢詽M足服務(wù)端同時與一臺以上的客戶端進(jìn)行并發(fā)通信的需求。
      [0212]圖3示出了本發(fā)明實(shí)施例中的一種服務(wù)端的結(jié)構(gòu)示意圖。如圖3所示的服務(wù)端可以包括依次連接的第一身份認(rèn)證單元31、第一密鑰交換單元32、接收單元33、解密單元34和執(zhí)行單元35,第一密鑰交換單元32還與解密單元34相連接。其中:
      [0213]第一身份認(rèn)證單元31,適于通過認(rèn)證協(xié)議與客戶端進(jìn)行信息交互,對所述客戶端進(jìn)行身份認(rèn)證。[0214]第一密鑰交換單元32,適于與經(jīng)過第一身份認(rèn)證單元31認(rèn)證的客戶端通過密鑰交換協(xié)議生成會話密鑰。
      [0215]接收單元33,適于接收客戶端使用加密算法和第一密鑰交換單元32生成的會話密鑰加密的數(shù)據(jù)包。
      [0216]解密單元34,適于使用第一密鑰交換單元32生成的會話密鑰和所述加密算法,解密接收單元33所接收的經(jīng)過客戶端加密的數(shù)據(jù)包。
      [0217]執(zhí)行單元35,適于獲取并根據(jù)解密單元34解密得到的數(shù)據(jù)包,執(zhí)行相應(yīng)的操作。
      [0218]圖4示出了本發(fā)明實(shí)施例中的服務(wù)端的第一身份認(rèn)證單元的結(jié)構(gòu)示意圖。如圖4所示的第一身份認(rèn)證單元可以包括:第一存儲子單元41、第一加密子單元42、第一接收子單元43、第一解密子單元44,第一存儲子單元41分別與第一加密子單元42和第一解密子單元43相連接。其中:
      [0219]第一存儲子單元41,適于存儲服務(wù)端RSA私鑰和客戶端RSA公鑰。
      [0220]在具體實(shí)施中,第一存儲子單元41存儲的客戶端RSA公鑰由所述客戶端的身份數(shù)據(jù)索引,其中,所述服務(wù)端RSA公鑰和服務(wù)端RSA私鑰構(gòu)成服務(wù)端RSA密鑰對,所述客戶端RSA私鑰和客戶端RSA公鑰構(gòu)成客戶端RSA密鑰對,所述服務(wù)端RSA密鑰對和客戶端RSA密鑰對分別采用RSA算法生成,所述客戶端RSA私鑰和服務(wù)端RSA公鑰存儲于所述客戶端上,所述服務(wù)端RSA公鑰由服務(wù)端的身份數(shù)據(jù)索引。
      [0221]第一加密子單元42,適于根據(jù)所接收的客戶端的身份數(shù)據(jù)確定第一存儲子單元41中存儲的客戶端RSA公鑰,并使用所確定的客戶端RSA公鑰加密第一隨機(jī)標(biāo)識和所述服務(wù)端的身份數(shù)據(jù),并將服務(wù)端的身份數(shù)據(jù)的明文與經(jīng)過加密的第一隨機(jī)標(biāo)識和服務(wù)端的身份數(shù)據(jù)發(fā)送至所述客戶端。
      [0222]第一接收子單元43,適于接收客戶端采用服務(wù)端的身份數(shù)據(jù)確定的服務(wù)端RSA公鑰加密的第二隨機(jī)標(biāo)識。
      [0223]第一解密子單元44,適于采用所述第一存儲子單元41中存儲的服務(wù)端RSA私鑰,解密第一接收子單元43接收的經(jīng)過客戶端采用服務(wù)端RSA公鑰加密的所述第二隨機(jī)標(biāo)識,當(dāng)解密得到的第二隨機(jī)標(biāo)識與根據(jù)所述第一隨機(jī)標(biāo)識計(jì)算得到的第二隨機(jī)標(biāo)識相同時,證明所接收的經(jīng)過加密的第二隨機(jī)標(biāo)識為本次會話產(chǎn)生,且對所述客戶端的身份認(rèn)證成功。
      [0224]圖5示出了本發(fā)明實(shí)施例中的服務(wù)端的第一密鑰交換單元的結(jié)構(gòu)。如圖5所示的第一密鑰交換單元可以包括第一生成子單元51、第二接收子單元52、第二加密子單元53、第一發(fā)送子單元54、第三接收子單元55、第二解密子單元56、第一計(jì)算子單元57和第三加密子單元58,第一生成子單元51與第二接收子單元52相連接,第二加密子單元53分別與第一生成子單元51、第二接收子單元52、第一發(fā)送子單元54相連接,第二解密子單元56分別與第一生成子單元51和第三接收子單元55相連接,第二解密子單元56、第一計(jì)算子單元57和第三加密子單元58依次連接。其中:
      [0225]第一生成子單元51,適于根據(jù)Deffie-Hel Iman算法生成Deffie-Hel Iman公鑰、服務(wù)端 Deffie-Hellman 私鑰和服務(wù)端 Deffie-Hellman 公鑰。
      [0226]第二接收子單元52,適于接收所述客戶端發(fā)送過來的所述客戶端的身份數(shù)據(jù),接收所述客戶端發(fā)送的服務(wù)請求。
      [0227]第二加密子單元53,適于使用根據(jù)所述第二接收子單元52接收的客戶端的身份數(shù)據(jù)確定客戶端RSA公鑰,并使用所確定的客戶端RSA公鑰加密第一生成子單元51生成的Deffie-Hellman公鑰、服務(wù)端Deffie-Hellman公鑰和第二隨機(jī)標(biāo)識。
      [0228]第一發(fā)送子單元54,適于將經(jīng)過第二加密子單元53加密的Deffie-Hellman公鑰、服務(wù)端Deffie-Hellman公鑰和第二隨機(jī)標(biāo)識發(fā)送至所述客戶端。
      [0229]第三接收子單元55,適于接收客戶端發(fā)送的使用服務(wù)端的身份數(shù)據(jù)確定的服務(wù)端RSA公鑰加密的客戶端Deffie-Hellman公鑰和所述第二隨機(jī)標(biāo)識。
      [0230]第二解密子單元56,適于使用第一存儲子單元51中存儲的服務(wù)端RSA私鑰對第三接收子單元55接收的經(jīng)過所述客戶端采用服務(wù)端RSA公鑰加密的客戶端Deffie-Hellman公鑰和所述第二隨機(jī)標(biāo)識。
      [0231]第一計(jì)算子單元57,適于當(dāng)?shù)诙饷茏訂卧?6解密得到正確的所述第二隨機(jī)標(biāo)識時,使用第二解密子單元56解密得到的Deffie-Hellman公鑰和客戶端Deffie-Hellman公鑰計(jì)算會話密鑰。
      [0232]第三加密子單元58,適于使用第一計(jì)算子單元57計(jì)算得出的會話密鑰和第一流加密算法加密所述第二隨機(jī)標(biāo)識,生成密文第二隨機(jī)標(biāo)識,并采用所述密文第二隨機(jī)標(biāo)識和第二流加密算法加密驗(yàn)證數(shù)據(jù),并發(fā)送至所述客戶端。
      [0233]圖6示出了本發(fā)明實(shí)施例中的服務(wù)端的接收單元的結(jié)構(gòu)。如圖6所示的接收單元可以包括:第四接收子單元61,適于接收客戶端采用所述第二流加密算法和所述密文第二隨機(jī)標(biāo)識對待傳輸?shù)臄?shù)據(jù)包加密生成的密文數(shù)據(jù)包。
      [0234]在具體實(shí)施中,所述待傳輸?shù)臄?shù)據(jù)包包括指令信息、消息信息和數(shù)字簽名信息,其中,所述指令信息指示所述服務(wù)端執(zhí)行相應(yīng)的操作,所述消息信息將被所述服務(wù)端傳輸至標(biāo)準(zhǔn)輸出,所述數(shù)字簽名信息為采用數(shù)字簽名算法加密所述指令信息、消息信息和所述第二隨機(jī)標(biāo)識生成。
      [0235]圖7示出了本發(fā)明實(shí)施例中的服務(wù)端的解密單元的結(jié)構(gòu)示意圖。如圖7所示的解密單元可以包括:第一解密子單元71、數(shù)字簽名驗(yàn)證單元72和執(zhí)行子單元73,第一解密子單元71分別與數(shù)字簽名驗(yàn)證單元72和執(zhí)行子單元73相連接。其中:
      [0236]第三解密子單元71,適于采用所述第一流加密算法和所述會話密鑰加密所述第二隨機(jī)標(biāo)識,生成所述密文第二隨機(jī)標(biāo)識,并使用所述第二流加密算法和所述密文第二隨機(jī)標(biāo)識解密所述密文數(shù)據(jù)包,得到所述指令信息、消息信息和數(shù)字簽名信息。
      [0237]數(shù)字簽名驗(yàn)證單元72,適于采用所述數(shù)字簽名算法驗(yàn)證第一解密子單元71解密得到的數(shù)字簽名信息是否正確。
      [0238]執(zhí)行子單元73,適于當(dāng)數(shù)字簽名驗(yàn)證單元72驗(yàn)證所述數(shù)字簽名信息正確時,根據(jù)解密得到的指令信息執(zhí)行相應(yīng)的操作。
      [0239]在具體實(shí)施中,所述執(zhí)行子單元73可以進(jìn)一步包括第一執(zhí)行模塊731、第二執(zhí)行模塊732、第三執(zhí)行模塊733、第四執(zhí)行模塊734和第五執(zhí)行模塊735。其中:
      [0240]第一執(zhí)行模塊731,適于當(dāng)所述指令為第一數(shù)值時,對所述解密得到的消息信息不執(zhí)行任何操作。
      [0241]第二執(zhí)行模塊732,適于當(dāng)所述指令為第二數(shù)值時,中斷與所述客戶端的連接,并持續(xù)監(jiān)聽服務(wù)端口,以確定是否有新的服務(wù)請求。
      [0242]第三執(zhí)行模塊733,適于當(dāng)所述指令為第三數(shù)值時,中斷與所述客戶端的連接并退出。
      [0243]第四執(zhí)行模塊734,適于當(dāng)所述指令為第四數(shù)值時,解壓縮解密得到的消息信息。
      [0244]第五執(zhí)行模塊735,當(dāng)所述指令為第五數(shù)值時,請求與客戶端重新會話密鑰通過所述密鑰交換協(xié)議生成新的會話密鑰。
      [0245]圖8示出了本發(fā)明實(shí)施例中的客戶端的結(jié)構(gòu)。如圖8所示的客戶端,可以包括依次連接的第二身份認(rèn)證單元81、第二密鑰交換單元82和加密單元83。其中:
      [0246]第二身份認(rèn)證單元81,適于通過認(rèn)證協(xié)議與服務(wù)端進(jìn)行信息交互,對所述服務(wù)端進(jìn)行身份認(rèn)證。
      [0247]第二密鑰交換單元82,適于與經(jīng)過第二身份認(rèn)證單元81認(rèn)證的服務(wù)端通過密鑰交換協(xié)議生成會話密鑰。
      [0248]加密單元83,適于采用所述第二密鑰交換單元82生成的會話密鑰對待傳輸?shù)臄?shù)據(jù)包進(jìn)行加密,并將經(jīng)過加密的數(shù)據(jù)包傳輸至所述服務(wù)端。
      [0249]圖9示出了本發(fā)明實(shí)施例中的客戶端的第二身份認(rèn)證單元的結(jié)構(gòu)。如圖9所述的第二身份認(rèn)證單元可以包括第二存儲子單元91、第二發(fā)送子單元92、第五接收子單元93、第三解密子單元94和第四加密子單元95,第二存儲子單元91分別與第三解密子單元94和第四加密子單元95相連接,第五接收子單元93、第三解密子單元94和第四加密子單元95依次連接。其中:
      [0250]第二存儲子單元91,適于存儲客戶端RSA私鑰和服務(wù)端RSA公鑰,服務(wù)端RSA公鑰由所述服務(wù)端的身份數(shù)據(jù)索引。
      [0251]在具體實(shí)施中,所述客戶端RSA私鑰和客戶端RSA公鑰構(gòu)成客戶端RSA密鑰對。所述服務(wù)端RSA公鑰和服務(wù)端RSA私鑰構(gòu)成服務(wù)端RSA密鑰對。所述服務(wù)端RSA密鑰對和服務(wù)端RSA密鑰對采用RSA算法生成。所述服務(wù)端RSA私鑰和客戶端RSA公鑰存儲于所述服務(wù)端上,所述客戶端RSA公鑰由所述客戶端的身份數(shù)據(jù)索引。
      [0252]第二發(fā)送子單元92,適于將所述客戶端的身份數(shù)據(jù)發(fā)送至所述服務(wù)端,向所述服務(wù)端發(fā)出服務(wù)請求。
      [0253]第五接收子單元93,適于接收所述服務(wù)端采用第二發(fā)送子單元92發(fā)送的客戶端的身份數(shù)據(jù)確定的客戶端RSA公鑰加密的服務(wù)端的身份數(shù)據(jù)和第一隨機(jī)標(biāo)識。
      [0254]第三解密子單元94,適于采用所述第二存儲子單元91中存儲的與客戶端RSA公鑰相對應(yīng)的客戶端RSA私鑰,解密第五接收子單元93所接收的經(jīng)過服務(wù)端采用客戶端RSA公鑰加密的服務(wù)端的身份數(shù)據(jù)和第一隨機(jī)標(biāo)識,當(dāng)解密得到的服務(wù)端的身份數(shù)據(jù)與所接收的服務(wù)端的身份數(shù)據(jù)的明文一致時,所述客戶端對所述服務(wù)端身份認(rèn)證成功。
      [0255]第四加密子單元95,適于當(dāng)?shù)谌饷茏訂卧?4對所述服務(wù)端的身份認(rèn)證成功時,采用根據(jù)第三解密子單元94解密得到的所述服務(wù)端的身份數(shù)據(jù)確定所述第二存儲子單元91中存儲的服務(wù)端RSA公鑰,并使用所確定的服務(wù)端RSA公鑰加密第二隨機(jī)標(biāo)識,并發(fā)送至所述服務(wù)端。
      [0256]在具體實(shí)施中,所述第二隨機(jī)標(biāo)識可以根據(jù)第三解密子單元解密得到的第一隨機(jī)標(biāo)識生成。
      [0257]圖10示出了本發(fā)明實(shí)施例中的客戶端的第二密鑰交換單元的結(jié)構(gòu)。如圖10所示的第二密鑰交換單元可以包括第六接收子單元101、第四解密子單元102、第二生成子單元103、第二計(jì)算子單元104、第五加密子單元105、第七接收子單元106和第五解密子單元107,第四解密子單元102分別與第六接收子單元101、第二生成子單元103和第二計(jì)算子單元104相連接,第二生成子單元103還與第五加密子單元105相連接,第五解密子單元107還分別與第二計(jì)算子單元104和第六接收子單元106相連接。其中:
      [0258]第六接收子單元101,適于接收經(jīng)過所述服務(wù)端使用客戶端RSA公鑰加密的Deffie-Hellman公鑰、服務(wù)端Deffie-Hellman公鑰和所述第二隨機(jī)標(biāo)識。
      [0259]在具體實(shí)施中,所述Deffie-Hellman公鑰由所述服務(wù)端生成,所述服務(wù)端Deffie-Hellman公鑰由所述服務(wù)端利用所述Deffie-Hellman公鑰和根據(jù)所述Deffie-Hellman公鑰生成的服務(wù)端Deffie-Hellman私鑰生成。
      [0260]第四解密子單元102,適于使用第二存儲子單元中存儲的與所述客戶端RSA公鑰相對應(yīng)的客戶端RSA私鑰,解密第六接收子單元101接收的經(jīng)過客戶端RSA公鑰加密的Deffie-Hellman公鑰、服務(wù)端Deffie-Hellman公鑰和所述第二隨機(jī)標(biāo)識。
      [0261]第二生成子單元103,適于根據(jù)第四解密子單元102解密得到正確的第二隨機(jī)標(biāo)識時,采用第四解密子單元102解密得到的Deffie-Hellman公鑰生成客戶端Deffie-Hellman私鑰,并根據(jù)所述Deffie-Hellman公鑰和客戶端Deffie-Hellman私鑰生成客戶端Deffie-Hellman 公鑰。
      [0262]第二計(jì)算子單元104,適于當(dāng)?shù)谒慕饷茏訂卧?02解密得到正確的的第二隨機(jī)標(biāo)識時,根據(jù)第四解密子單元102解密得到的Deffie-Hellman公鑰和服務(wù)端Deffie-Hellman公鑰計(jì)算會話密鑰。
      [0263]第五加密子單元105,適于使用第二存儲子單元中存儲的服務(wù)端RSA公鑰,加密所述第二生成子單元103生成的客戶端Deffie-Hellman公鑰和所述第二隨機(jī)標(biāo)識,并發(fā)送至所述服務(wù)端。
      [0264]第七接收子單元106,適于接收服務(wù)端采用所述密文第二隨機(jī)標(biāo)識和所述第二流加密算法加密的驗(yàn)證數(shù)據(jù)。
      [0265]第五解密子單元107,適于使用第二計(jì)算子單元104計(jì)算得到的會話密鑰和第一流加密算法加密第二隨機(jī)標(biāo)識,生成密文第二隨機(jī)標(biāo)識,并采用所述密文第二隨機(jī)標(biāo)識和第二流加密算法,解密所述第六接收子單元106接收的經(jīng)過所述服務(wù)端加密的驗(yàn)證數(shù)據(jù),當(dāng)?shù)玫秸_的驗(yàn)證數(shù)據(jù)時,證明所述客戶端和所述服務(wù)端均計(jì)算出了正確的會話密鑰。
      [0266]圖11示出了本發(fā)明實(shí)施例中的客戶端的發(fā)送單元的結(jié)構(gòu)示意圖。如圖11所示的發(fā)送單元,可以包括信息輸入子單元111、第六加密子單元112、簽名生成子單元113、第七加密子單元114和第三發(fā)送子單元115,第七加密子單元114分別與信息輸入子單元111、第六加密子單元112和簽名生成子單元113相連接,簽名生成子單元113還分別與信息輸入子單元111和第六加密子單元112相連接。其中:
      [0267]信息輸入子單兀111,適于輸入待傳輸?shù)南⑿畔ⅰ?br> [0268]第六加密子單元112,適于使用所述會話密鑰和所述第一流加密算法加密所述第二隨機(jī)標(biāo)識,生成密文第二隨機(jī)標(biāo)識。
      [0269]簽名生成子單元113,適于采用數(shù)字簽名算法加密指令信息、信息輸入子單元111輸入的消息信息和第二隨機(jī)標(biāo)識,生成數(shù)字簽名信息。
      [0270]第七加密子單元114,適于采用第六加密子單元112生成的密文隨機(jī)標(biāo)識和第二流加密算法加密待傳輸?shù)臄?shù)據(jù)包,生成密文數(shù)據(jù)包。
      [0271]第三發(fā)送子單元115,適于將所述第七加密子單元114生成的密文數(shù)據(jù)包發(fā)送至所述服務(wù)端。
      [0272]在具體實(shí)施中,所述待傳輸數(shù)據(jù)包可以包括所述指令信息、信息輸入子單元111輸入的消息信息和所述簽名生成子單元113生成的數(shù)字簽名信息。其中,所述指令信息指示所述服務(wù)端執(zhí)行相應(yīng)的操作,所述消息信息將被所述服務(wù)端傳輸至標(biāo)準(zhǔn)輸出。
      [0273]在具體實(shí)施中,發(fā)送單元還可以包括:指令設(shè)置子單元116,適于在所述第三發(fā)送子單元115向服務(wù)端傳輸數(shù)據(jù)結(jié)束時,將所述指令信息置為相應(yīng)的數(shù)值。
      [0274]在具體實(shí)施中,發(fā)送單元還可以包括:統(tǒng)計(jì)子單元117,適于統(tǒng)計(jì)第三發(fā)送子單元115發(fā)送給所述服務(wù)端的數(shù)據(jù)量。當(dāng)統(tǒng)計(jì)子單元117統(tǒng)計(jì)的第三發(fā)送子單元115發(fā)送給服務(wù)端的數(shù)據(jù)量達(dá)到預(yù)設(shè)的閾值時,服務(wù)端和客戶端重新通過密鑰交換協(xié)議,生成新的會話密鑰。
      [0275]本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于計(jì)算機(jī)可讀存儲介質(zhì)中,存儲介質(zhì)可以包括:ROM、RAM、磁盤或光盤等。
      [0276]以上對本發(fā)明實(shí)施例的方法及系統(tǒng)做了詳細(xì)的介紹,本發(fā)明并不限于此。任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),均可作各種更動與修改,因此本發(fā)明的保護(hù)范圍應(yīng)當(dāng)以權(quán)利要求所限定的范圍為準(zhǔn)。
      【權(quán)利要求】
      1.一種數(shù)據(jù)傳輸方法,其特征在于,包括: 服務(wù)端與客戶端通過認(rèn)證協(xié)議進(jìn)行信息交互,相互進(jìn)行身份認(rèn)證; 所述服務(wù)端和客戶端通過密鑰交換協(xié)議生成會話密鑰; 所述客戶端采用加密算法和所述會話密鑰對待傳輸?shù)臄?shù)據(jù)包進(jìn)行加密,并將經(jīng)過加密的數(shù)據(jù)包傳輸至所述服務(wù)端; 所述服務(wù)端使用所述會話密鑰和加密算法解密所接收的經(jīng)過加密的數(shù)據(jù)包,并執(zhí)行相應(yīng)的操作。
      2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)傳輸方法,其特征在于,服務(wù)端與客戶端通過認(rèn)證協(xié)議進(jìn)行信息交互,相互進(jìn)行身份認(rèn)證,包括: 將所述服務(wù)端RSA私鑰和客戶端RSA公鑰存儲在所述服務(wù)端中,客戶端RSA公鑰由客戶端的身份數(shù)據(jù)索引,將所述客戶端RSA私鑰和服務(wù)端RSA公鑰存儲在所述客戶端中,所述服務(wù)端RSA公鑰由服務(wù)端的身份數(shù)據(jù)索引,所述服務(wù)端RSA公鑰和服務(wù)端RSA私鑰、所述客戶端RSA公鑰和客戶端RSA私鑰分別采用RSA算法生成; 所述客戶端將自身的身份數(shù)據(jù)發(fā)送至所述服務(wù)端,向所述服務(wù)端發(fā)出服務(wù)請求;所述服務(wù)端根據(jù)客戶端所發(fā)送的客戶端的身份數(shù)據(jù)確定客戶端RSA公鑰,并使用所確定的所述客戶端RSA公鑰加密第一隨機(jī)標(biāo)識和服務(wù)端的身份數(shù)據(jù),并將服務(wù)端的身份數(shù)據(jù)的明文與經(jīng)過加密的第一隨機(jī)標(biāo)識和服務(wù)端的身份數(shù)據(jù)發(fā)送至所述客戶端; 所述客戶端使用自 身存儲的與所述客戶端RSA公鑰相對應(yīng)的客戶端RSA私鑰,解密經(jīng)過加密的第一隨機(jī)標(biāo)識和所述服務(wù)端的身份數(shù)據(jù),當(dāng)解密得到的服務(wù)端的身份數(shù)據(jù)與所接收的服務(wù)端的身份數(shù)據(jù)的明文一致時,所述客戶端對所述服務(wù)端身份認(rèn)證成功; 所述客戶端對所述服務(wù)端身份認(rèn)證成功時,所述客戶端所述服務(wù)端的身份數(shù)據(jù)確定服務(wù)端RSA公鑰,并使用所確定的服務(wù)端RSA公鑰加密第二隨機(jī)標(biāo)識,并發(fā)送至所述服務(wù)端,所述第二隨機(jī)標(biāo)識為所述客戶端根據(jù)解密得到的所述第一隨機(jī)標(biāo)識生成; 所述服務(wù)端使用自身存儲的與所述服務(wù)端RSA公鑰相對應(yīng)的服務(wù)端RSA私鑰,解密經(jīng)過加密的第二隨機(jī)標(biāo)識,當(dāng)解密得到的第二隨機(jī)標(biāo)識與所述服務(wù)端根據(jù)解密得到的第一隨機(jī)標(biāo)識計(jì)算得到的第二隨機(jī)標(biāo)識相同時,證明所接收的經(jīng)過加密的第二隨機(jī)標(biāo)識為本次會話產(chǎn)生,且所述服務(wù)端對所述客戶端的身份認(rèn)證成功。
      3.根據(jù)權(quán)利要求2所述的數(shù)據(jù)傳輸方法,其特征在于,所述服務(wù)端和客戶端通過密鑰交換協(xié)議生成會話密鑰,包括: 所述服務(wù)端使用客戶端RSA公鑰,加密Deffie-Hellman公鑰、服務(wù)端Deffie-Hellman公鑰和所述第二隨機(jī)標(biāo)識,并發(fā)送至所述客戶端,所述Deffie-Hellman公鑰由所述服務(wù)端生成,所述服務(wù)端Deffie-Hellman公鑰由所述服務(wù)端利用所述Deffie-Hellman公鑰和根據(jù)所述Deffie-Hellman公鑰生成的服務(wù)端Deffie-Hellman私鑰生成; 所述客戶端使用與所述客戶端RSA公鑰相對應(yīng)的客戶端RSA私鑰,解密經(jīng)過所述客戶端RSA公鑰加密的Deffie-Hellman公鑰、服務(wù)端Deffie-Hellman公鑰和第二隨機(jī)標(biāo)識;當(dāng)解密得到正確的的第二隨機(jī)標(biāo)識時,所述客戶端根據(jù)解密得到的Deffie-Hellman公鑰和服務(wù)端Deffie-Hellman公鑰計(jì)算出會話密鑰; 所述客戶端使用服務(wù)端RSA公鑰加密客戶端Deffie-Hellman公鑰和所述第二隨機(jī)標(biāo)識,并發(fā)送至所述服務(wù)端,其中,所述客戶端Deffie-Hellman公鑰由所述客戶端根據(jù)解密得到的Deffie-Hellman公鑰和根據(jù)所述Deffie-Hellman公鑰生成的客戶端Deffie-Hellman私鑰生成; 所述服務(wù)端使用與所述服務(wù)端RSA公鑰相對應(yīng)的服務(wù)端RSA私鑰,解密所述經(jīng)過服務(wù)端RSA公鑰加密的客戶端Deffie-Hellman公鑰和第二隨機(jī)標(biāo)識; 當(dāng)?shù)玫秸_的第二隨機(jī)標(biāo)識時,所述服務(wù)端根據(jù)所述Deffie-Hellman公鑰和解密得到所述客戶端Deffie-Hellman公鑰計(jì)算出會話密鑰; 所述服務(wù)端使用自身計(jì)算得到的會話密鑰和第一流加密算法,加密所述第二隨機(jī)標(biāo)識生成,生成密文第二隨機(jī)標(biāo)識,并采用所述密文第二隨機(jī)標(biāo)識和第二流加密算法加密驗(yàn)證數(shù)據(jù),并發(fā)送至所述客戶端; 所述客戶端使用自身計(jì)算得到的會話密鑰和所述第一流加密算法生成密文第二隨機(jī)標(biāo)識,并使用所述密文第二隨機(jī)標(biāo)識和所述第二流加密算法解密所述經(jīng)過服務(wù)端加密的驗(yàn)證數(shù)據(jù),當(dāng)?shù)玫秸_的驗(yàn)證數(shù)據(jù)時,證明所述服務(wù)端和所述客戶端均計(jì)算出了正確的會話密鑰。
      4.根據(jù)權(quán)利要求3所述的數(shù)據(jù)傳輸方法,其特征在于,所述客戶端采用加密算法和所述會話密鑰對待傳輸?shù)臄?shù)據(jù)包進(jìn)行加密,并將經(jīng)過加密的數(shù)據(jù)包傳輸至所述服務(wù)端,包括: 所述客戶端使用所述第一流加密算法和所述會話密鑰加密所述第二隨機(jī)標(biāo)識,得到所述密文第二隨機(jī)標(biāo)識; 所述客戶端使用所述第二流加密算法和所述密文第二隨機(jī)標(biāo)識對待傳輸?shù)臄?shù)據(jù)包進(jìn)行加密,生成密文數(shù)據(jù)包,所述待傳輸?shù)臄?shù)據(jù)包包括指令信息、消息信息和數(shù)字簽名信息,其中,所述指令信息指示所述服務(wù)端執(zhí)行相應(yīng)的操作,所述消息信息將被所述服務(wù)端傳輸至標(biāo)準(zhǔn)輸出,所述數(shù)字簽名信息為采用數(shù)字簽名算法加密所述指令信息、消息信息和第二隨機(jī)標(biāo)識生成。
      5.根據(jù)權(quán)利要求4所述的數(shù)據(jù)傳輸方法,其特征在于,所述服務(wù)端使用所述會話密鑰和加密算法解密所接收的經(jīng)過客戶端加密的數(shù)據(jù)包,并執(zhí)行相應(yīng)的操作,包括: 所述服務(wù)端采用所述第一流加密算法和所述會話密鑰加密所述第二隨機(jī)標(biāo)識,生成所述密文第二隨機(jī)標(biāo)識; 所述服務(wù)端采用所述第二流加密算法和所述密文第二隨機(jī)標(biāo)識,解密所述密文數(shù)據(jù)包,得到所述指令信息、消息信息和數(shù)字簽名信息; 采用所述數(shù)字簽名算法驗(yàn)證所述數(shù)字簽名信息; 當(dāng)驗(yàn)證所述數(shù)字簽名信息正確時,所述服務(wù)端根據(jù)解密得到的指令信息執(zhí)行相應(yīng)的操作。
      6.根據(jù)權(quán)利要求5所述的數(shù)據(jù)傳輸方法,其特征在于,當(dāng)驗(yàn)證所述數(shù)字簽名信息正確時,所述服務(wù)端根據(jù)解密得到的指令信息執(zhí)行相應(yīng)的操作,包括: 當(dāng)所述指令為第一數(shù)值時,所述服務(wù)端對于解密得到的消息信息不執(zhí)行任何操作;當(dāng)所述指令為第二數(shù)值時,所述服務(wù)端在接收數(shù)據(jù)結(jié)束后,中斷與所述客戶端的連接,并持續(xù)監(jiān)聽服務(wù)端口,以確定是否有新的服務(wù)請求; 當(dāng)所述指令為第三數(shù)值時,所述服務(wù)端在接收數(shù)據(jù)結(jié)束后,中斷與所述客戶端的連接并退出;當(dāng)所述指令為第四數(shù)值時,所述服務(wù)端解壓縮所述解密得到的消息信息; 當(dāng)所述指令為第五數(shù)值時,所述服務(wù)端請求與所述客戶端重新通過所述密鑰交換協(xié)議生成新的會話密鑰。
      7.根據(jù)權(quán)利要求5所述的數(shù)據(jù)傳輸方法,其特征在于,所述指令信息位于所述待傳輸數(shù)據(jù)包的第一字節(jié),并由所述客戶端在向所述服務(wù)端傳輸數(shù)據(jù)結(jié)束時置為相應(yīng)的數(shù)值。
      8.根據(jù)權(quán)利要求5所述的數(shù)據(jù)傳輸方法,其特征在于,當(dāng)所述客戶端向所述服務(wù)端傳輸?shù)臄?shù)據(jù)量達(dá)到預(yù)設(shè)閾值時,所述客戶端將所述指令信息設(shè)置為第五數(shù)值,所述服務(wù)端和所述客戶端重新通過密鑰交換協(xié)議生成新的會話密鑰。
      9.根據(jù)權(quán)利要求1所述的數(shù)據(jù)傳輸方法,其特征在于,所述客戶端為一臺以上。
      10.一種服務(wù)端,其特征在于,包括: 第一身份認(rèn)證單元,適于通過認(rèn)證協(xié)議與客戶端進(jìn)行信息交互,對所述客戶端進(jìn)行身份認(rèn)證; 第一密鑰交換單元,適于與所述客戶端通過密鑰交換協(xié)議生成會話密鑰; 接收單元,適于接收客戶端使用加密算法和所述會話密鑰加密的數(shù)據(jù)包; 解密單元,適于使用第一密鑰交換單元生成的會話密鑰和所述加密算法,解密所述接收單元所接收的經(jīng)過客戶端加密的數(shù)據(jù)包; 執(zhí)行單元,適于獲取并根據(jù)所述解密單元解密得到的數(shù)據(jù)包,執(zhí)行相應(yīng)的操作。
      11.根據(jù)權(quán)利要求10所述的服務(wù)端,其特征在于,所述第一身份認(rèn)證單元包括: 第一存儲子單元,適于存儲服務(wù)端RSA私鑰和客戶端RSA公鑰,客戶端RSA公鑰由所述客戶端的身份數(shù)據(jù)索引,其中,所述服務(wù)端RSA公鑰和服務(wù)端RSA私鑰構(gòu)成服務(wù)端RSA密鑰對,所述客戶端RSA私鑰和客戶端RSA公鑰構(gòu)成客戶端RSA密鑰對,所述服務(wù)端RSA密鑰對和客戶端RSA密鑰對分別采用RSA算法生成,所述客戶端RSA私鑰和服務(wù)端RSA公鑰存儲于所述客戶端上,所述服務(wù)端RSA公鑰由服務(wù)端的身份數(shù)據(jù)索引; 第一加密子單元,適于根據(jù)所接收的客戶端的身份數(shù)據(jù)確定第一存儲子單元中存儲的客戶端RSA公鑰,并使用所確定的客戶端RSA公鑰加密第一隨機(jī)標(biāo)識和所述服務(wù)端的身份數(shù)據(jù),并將服務(wù)端的身份數(shù)據(jù)的明文與經(jīng)過加密的第一隨機(jī)標(biāo)識和服務(wù)端的身份數(shù)據(jù)發(fā)送至所述客戶端; 第一接收子單元,適于接收客戶端采用服務(wù)端的身份數(shù)據(jù)確定的服務(wù)端RSA公鑰加密的第二隨機(jī)標(biāo)識; 第一解密子單元,適于采用所述第一存儲子單元中存儲的服務(wù)端RSA私鑰,解密第一接收子單元接收的經(jīng)過客戶端采用服務(wù)端RSA公鑰加密的所述第二隨機(jī)標(biāo)識,當(dāng)解密得到的第二隨機(jī)標(biāo)識,與根據(jù)所述第一隨機(jī)標(biāo)識計(jì)算得到的第二隨機(jī)標(biāo)識相同時,證明所接收的經(jīng)過加密的第二隨機(jī)標(biāo)識為本次會話產(chǎn)生,且對所述客戶端的身份認(rèn)證成功。
      12.根據(jù)權(quán)利要求11所述的服務(wù)端,其特征在于,第一密鑰交換單元包括: 第一生成子單元,適于根據(jù)Deffie-Hellman算法生成Deffie-Hellman公鑰、服務(wù)端Deffie-Hellman私鑰和服務(wù)端Deffie-Hellman公鑰,所述Deffie-He I Iman公鑰由所述服務(wù)端生成,所述服務(wù)端Deffie-Hellman公鑰由所述服務(wù)端利用所述Deffie-Hellman公鑰和根據(jù)所述Deffie-Hellman公鑰生成的服務(wù)端Deffie-Hellman私鑰生成; 第二接收子單元,適于接收所述客戶端發(fā)送過來的所述客戶端的身份數(shù)據(jù),接收所述客戶端發(fā)送的服務(wù)請求; 第二加密子單元,適于使用根據(jù)所述第二接收子單元接收的客戶端的身份數(shù)據(jù)確定客戶端RSA公鑰,并使用所確定的客戶端RSA公鑰加密第一生成子單元生成的Deffie-Hellman公鑰、服務(wù)端Deffie-Hellman公鑰和所述第二隨機(jī)標(biāo)識; 第一發(fā)送子單元,適于將經(jīng)過所述第二加密子單元加密的Deffie-Hellman公鑰、服務(wù)端Deffie-Hellman公鑰和所述第二隨機(jī)標(biāo)識發(fā)送至所述客戶端; 第三接收子單元,適于接收客戶端發(fā)送的使用服務(wù)端的身份數(shù)據(jù)確定的服務(wù)端RSA公鑰加密的客戶端Deffie-Hellman公鑰和所述第二隨機(jī)標(biāo)識; 第二解密子單元,適于使用第一存儲子單元中所存儲的服務(wù)端RSA私鑰對所述第三接收子單元接收的經(jīng)過所述客戶端采用服務(wù)端RSA公鑰加密的客戶端Deffie-Hellman公鑰和所述第二隨機(jī)標(biāo)識; 第一計(jì)算子單元,適于當(dāng)所述第二解密子單元解密得到正確的所述第二隨機(jī)標(biāo)識時,使用所述Deffie-Hellman公鑰和所述第二解密子單元解密得到客戶端Deffie-Hellman公鑰計(jì)算會話密鑰; 第三加密子單元,適于使用所述第一計(jì)算子單元計(jì)算得出的會話密鑰和第一流加密算法加密所述第二隨機(jī)標(biāo)識,生成密文第二隨機(jī)標(biāo)識,并采用所述密文第二隨機(jī)標(biāo)識和第二流加密算法加密驗(yàn)證數(shù)據(jù),并發(fā)送至所述客戶端。
      13.根據(jù)權(quán)利要求12所述的服務(wù)端,其特征在于,所述接收單元包括: 第四接收子單元,適于接收客戶端采用所述第二流加密算法和所述密文第二隨機(jī)標(biāo)識對待傳輸?shù)臄?shù)據(jù)包加密生成的密文數(shù)據(jù)包,所述待傳輸?shù)臄?shù)據(jù)包包括指令信息、消息信息和數(shù)字簽名信息,其中,所述指令信息指示所述服務(wù)端執(zhí)行相應(yīng)的操作,所述消息信息將被所述服務(wù)端傳輸至標(biāo)準(zhǔn)輸出,所述數(shù)字簽名信息為采用數(shù)字簽名算法加密所述指令信息、消息信息和所述第二隨機(jī)標(biāo)識生成。
      14.根據(jù)權(quán)利要求10所述的服務(wù)端,其特征在于,所述解密單元包括: 第三解密子單元,適于采用所述第一流加密算法和所述會話密鑰加密所述第二隨機(jī)標(biāo)識,生成所述密文第二隨機(jī)標(biāo)識,并使用所述第二流加密算法和所述密文第二隨機(jī)標(biāo)識解密所述密文數(shù)據(jù)包,得到所述指令信息、消息信息和數(shù)字簽名信息; 數(shù)字簽名驗(yàn)證單元,適于采用所述數(shù)字簽名算法驗(yàn)證所述第三解密子單元解密得到的數(shù)字簽名信息; 執(zhí)行子單元,適于當(dāng)所述數(shù)字簽名驗(yàn)證單元驗(yàn)證所述數(shù)字簽名信息正確時,根據(jù)解密得到的指令信息執(zhí)行相應(yīng)的操作。
      15.根據(jù)權(quán)利要求12所述的服務(wù)端,其特征在于,所述執(zhí)行子單元包括: 第一執(zhí)行模塊,適于當(dāng)所述指令為第一數(shù)值時,對所述解密得到的消息信息不執(zhí)行任何操作; 第二執(zhí)行模塊,適于當(dāng)所述指令為第二數(shù)值時,中斷與所述客戶端的連接,并持續(xù)監(jiān)聽服務(wù)端口,以確定是否有新的服務(wù)請求; 第三執(zhí)行模塊,適于當(dāng)所述指令為第三數(shù)值時,中斷與所述客戶端的連接并退出; 第四執(zhí)行模塊,適于當(dāng)所述指令為第四數(shù)值時,解壓縮解密得到的消息信息; 第五執(zhí)行模塊,當(dāng)所述指令為第五數(shù)值時,請求與客戶端重新會話密鑰通過所述密鑰交換協(xié)議生成新的會話密鑰。
      16.一種客戶端,其特征在于,包括: 第二身份認(rèn)證單元,適于通過認(rèn)證協(xié)議與服務(wù)端進(jìn)行信息交互,對所述服務(wù)端進(jìn)行身份認(rèn)證; 第二密鑰交換單元,適于與經(jīng)過第二身份認(rèn)證單元認(rèn)證的服務(wù)端通過密鑰交換協(xié)議生成會話密鑰; 加密單元,適于采用所述第二密鑰交換單元生成的會話密鑰對待傳輸?shù)臄?shù)據(jù)包進(jìn)行加密,并將經(jīng)過加密的數(shù)據(jù)包傳輸至所述服務(wù)端。
      17.根據(jù)權(quán)利要求16所述的客戶端,其特征在于,所述第二身份認(rèn)證單元包括: 第二存儲子單元,適于存儲客戶端RSA私鑰和服務(wù)端RSA公鑰,服務(wù)端RSA公鑰由所述服務(wù)端的身份數(shù)據(jù)索引,其中,所述客戶端RSA私鑰和客戶端RSA公鑰構(gòu)成客戶端RSA密鑰對,所述服務(wù)端RSA公鑰和服務(wù)端RSA私鑰構(gòu)成服務(wù)端RSA密鑰對,所述服務(wù)端RSA密鑰對和服務(wù)端RSA密鑰對采用RSA算法生成,所述服務(wù)端RSA私鑰和客戶端RSA公鑰存儲于所述服務(wù)端上,所述客戶端RSA公鑰由所述客戶端的身份數(shù)據(jù)索引; 第二發(fā)送子單元,適于將所述客戶端的身份數(shù)據(jù)發(fā)送至所述服務(wù)端,向所述服務(wù)端發(fā)出服務(wù)請求; 第五接收子單元,適于接收所述服務(wù)端采用第二發(fā)送子單元發(fā)送的客戶端的身份數(shù)據(jù)確定的客戶端RSA公 鑰加密的服務(wù)端的身份數(shù)據(jù)和第一隨機(jī)標(biāo)識; 第三解密子單元,適于采用所述第二存儲子單元中存儲的與客戶端RSA公鑰相對應(yīng)的客戶端RSA私鑰,解密所述第五接收子單元接收的經(jīng)過服務(wù)端采用客戶端RSA公鑰加密的服務(wù)端的身份數(shù)據(jù)和第一隨機(jī)標(biāo)識,當(dāng)解密得到的服務(wù)端的身份數(shù)據(jù)與所接收的服務(wù)端的身份數(shù)據(jù)的明文一致時,所述客戶端對所述服務(wù)端身份認(rèn)證成功; 第四加密子單元,適于當(dāng)所述第三解密子單元對于所述服務(wù)端的身份認(rèn)證成功時,采用根據(jù)第三解密子單元解密得到的所述服務(wù)端的身份數(shù)據(jù)確定所述第二存儲子單元中存儲的服務(wù)端RSA公鑰,并使用所確定的服務(wù)端RSA公鑰加密第二隨機(jī)標(biāo)識,并發(fā)送至所述服務(wù)端,所述第二隨機(jī)標(biāo)識為根據(jù)第三解密子單元解密得到的第一隨機(jī)標(biāo)識生成。
      18.根據(jù)權(quán)利要求17所述的客戶端,其特征在于,第二密鑰交換單元包括: 第六接收子單元,適于接收經(jīng)過所述服務(wù)端使用客戶端RSA公鑰加密的Deffie-Hellman公鑰、服務(wù)端Deffie-Hellman公鑰和所述第二隨機(jī)標(biāo)識,所述Deffie-Hellman公鑰由所述服務(wù)端生成,所述服務(wù)端Deffie-Hellman公鑰由所述服務(wù)端利用所述Deffie-Hellman公鑰和根據(jù)所述Deffie-Hellman公鑰生成的服務(wù)端Deffie-Hellman私鑰生成; 第四解密子單元,適于使用第二存儲子單元存儲的與所述客戶端RSA公鑰相對應(yīng)的客戶端RSA私鑰,解密所述第六接收子單元接收的經(jīng)過客戶端RSA公鑰加密的Deffie-Hellman公鑰、服務(wù)端Deffie-Hellman公鑰和所述第二隨機(jī)標(biāo)識; 第二生成子單元,適于根據(jù)第四解密子單元解密得到的Deffie-Hellman公鑰生成客戶端Deffie-Hellman私鑰,并根據(jù)所述Deffie-Hellman公鑰和客戶端Deffie-Hellman私鑰生成客戶端Deffie-Hellman公鑰; 第二計(jì)算子單元,適于當(dāng)所述第四解密子單元解密得到正確的的第二隨機(jī)標(biāo)識時,根據(jù)所述第四解密子單元解密得到的Deffie-Hellman公鑰和所述服務(wù)端Deffie-Hellman公鑰計(jì)算會話密鑰; 第五加密子單元,適于使用第二存儲子單元中存儲的服務(wù)端RSA公鑰,加密所述第二生成子單元生成的客戶端Deffie-Hellman公鑰和所述第二隨機(jī)標(biāo)識,并發(fā)送至所述服務(wù)端; 第七接收子單元,適于接收服務(wù)端采用第一流加密算法和所述會話密鑰加密所述第二隨機(jī)標(biāo)識,生成密文第二隨機(jī)標(biāo)識,并采用所述密文第二隨機(jī)標(biāo)識和所述第二流加密算法加密的驗(yàn)證數(shù)據(jù); 第五解密子單元,適于使用第二計(jì)算子單元計(jì)算得到的會話密鑰和第一流加密算法加密第二隨機(jī)標(biāo)識,生成密文第二隨機(jī)標(biāo)識,并采用所述密文第二隨機(jī)標(biāo)識和第二流加密算法,解密所述第七接收子單元接收的經(jīng)過所述服務(wù)端加密的驗(yàn)證數(shù)據(jù),當(dāng)?shù)玫秸_的驗(yàn)證數(shù)據(jù)時,證明所述客戶端和所述服務(wù)端均計(jì)算出了正確的會話密鑰。
      19.根據(jù)權(quán)利要求18所述的客戶端,其特征在于,所述發(fā)送單元包括: 信息輸入子單兀,適于輸入待傳輸?shù)南⑿畔ⅲ? 第六加密子單元,適于使用所述會話密鑰和所述第一流加密算法加密所述第二隨機(jī)標(biāo)識,得到密文第二隨機(jī)標(biāo)識; 簽名生成子單元,適于采用數(shù)字簽名算法加密指令信息、所述消息信息和所述第二隨機(jī)標(biāo)識,生成數(shù)字簽名信息; 第七加密子單元,適于采用第二流加密算法和所述第六加密子單元得到的密文隨機(jī)標(biāo)識加密待傳輸?shù)臄?shù)據(jù)包,生成密文數(shù)據(jù)包,所述待傳輸數(shù)據(jù)包包括所述指令信息、消息信息和所述簽名生成子單元生成的數(shù)字簽名信息,其中,所述指令信息指示所述服務(wù)端執(zhí)行相應(yīng)的操作,所述消息信息將被所述服務(wù)端傳輸至標(biāo)準(zhǔn)輸出; 第三發(fā)送子單元,適于將所述第七加密子單元生成的密文數(shù)據(jù)包發(fā)送至所述服務(wù)端。
      20.根據(jù)權(quán)利要求19所述的客戶端,其特征在于,所述發(fā)送單元還包括:指令設(shè)置子單元,適于在所述第三發(fā)送子單元向服務(wù)端傳輸數(shù)據(jù)結(jié)束時,將所述指令信息置為相應(yīng)的數(shù)值。
      21.根據(jù)權(quán)利要求19所述的客戶端,其特征在于,所述相應(yīng)的數(shù)值包括第一數(shù)值、第二數(shù)值、第三數(shù)值、第四數(shù)值或者第五數(shù)值; 當(dāng)所述指令為第一數(shù)值時,指示服務(wù)端對于所述解密得到的消息信息不執(zhí)行任何操作; 當(dāng)所述指令為第二數(shù)值時,指示服務(wù)端中斷與客戶端的連接,并指示服務(wù)端持續(xù)監(jiān)聽服務(wù)端口,以確定是否有服務(wù)請求; 當(dāng)所述指令為第三數(shù)值時,指示服務(wù)端中斷與所述客戶端的連接并退出; 當(dāng)所述指令為第四數(shù)值時,指示服務(wù)端解壓縮解密得到的消息信息; 當(dāng)所述指令為第五數(shù)值時,指示服務(wù)端與重新進(jìn)行密鑰交換,生成新的會話密鑰。
      22.根據(jù)權(quán)利要求19所述的客戶端,其特征在于,所述發(fā)送單元還包括:統(tǒng)計(jì)子單元,適于統(tǒng)計(jì)所述第三發(fā)送子單元發(fā)送給所述服務(wù)端的數(shù)據(jù)量。
      【文檔編號】H04L9/32GK104023013SQ201410240981
      【公開日】2014年9月3日 申請日期:2014年5月30日 優(yōu)先權(quán)日:2014年5月30日
      【發(fā)明者】張景逸 申請人:上海帝聯(lián)信息科技股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1