国产精品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>

      建立客戶端與服務器安全連接的方法及服務器的制作方法

      文檔序號:7859088閱讀:329來源:國知局
      專利名稱:建立客戶端與服務器安全連接的方法及服務器的制作方法
      技術領域
      本發(fā)明涉及移動通訊領域,特別是涉及ー種建立客戶端與服務器安全連接的方法及服務器。
      背景技術
      在現(xiàn)有技術中,安全套接層(Secure Sockets Layer,簡稱為SSL)協(xié)議是網(wǎng)絡通信中經(jīng)常用到的一個用來保證會話安全性的標準協(xié)議。SSL協(xié)議以及其相關協(xié)議如安全電子交易協(xié)議(Secure Electronic Transaction,簡稱為 SET)、和傳輸層安全(TransportLayer Security,簡稱為TLS)均使用了非対稱加密算法、對稱加密算法、以及摘要算法來實現(xiàn)動態(tài)會話密鑰協(xié)商及會話加密,同時實現(xiàn)通信雙方身份認證,其中,對稱加密算法是加密和解密使用同一個密鑰的加密方法,非対稱加密算法是加密和解密使用一對密鑰(由兩個滿足一定關系的密鑰組成的密鑰對)的中不同的密鑰的加密方法,其中,非対稱加密算法 中的密鑰對分為公鑰和私鑰,其中,公鑰是指非対稱加密算法中公開給大眾的密鑰,私鑰是指非対稱加密算法中保留給個人保密的密鑰。由于SSL協(xié)議及其相關協(xié)議主要是為電子商務等應用場景而設計,因此其實現(xiàn)比較復雜,基礎設施要求高,例如,需要專門的證書管理中心等,且在應用于處在無線網(wǎng)絡環(huán)境中的移動終端時,由于密鑰協(xié)商過程相當復雜,會導致會話建立的速度相當慢,甚至會因為網(wǎng)絡連接不穩(wěn)定導致協(xié)商一直不能成功而不能實現(xiàn)安全通信。

      發(fā)明內容
      本發(fā)明提供ー種建立客戶端與服務器安全連接的方法及服務器,以解決現(xiàn)有技術中在不穩(wěn)定的網(wǎng)絡環(huán)境下客戶端不能安全高效地與服務器實現(xiàn)加密會話的問題。本發(fā)明提供ー種建立客戶端與服務器安全連接的方法,包括服務器獲取客戶端發(fā)送的連接發(fā)起請求,根據(jù)連接發(fā)起請求使用非対稱加密算法通過協(xié)商確定加密密鑰,完成與客戶端的握手;服務器使用加密密鑰與客戶端進行通信。優(yōu)選地,服務器根據(jù)連接發(fā)起請求使用非対稱加密算法通過至少兩次協(xié)商確定對稱加密密鑰。優(yōu)選地,連接發(fā)起請求中攜帯有客戶端指定的當前連接所使用的加密算法;服務器根據(jù)連接發(fā)起請求使用非対稱加密算法通過兩次協(xié)商確定對稱加密密鑰具體包括服務器根據(jù)客戶端指定的加密算法隨機生成第一協(xié)商公私鑰對,并使用選擇的約定公私鑰對中的私鑰O加密第一協(xié)商公私鑰對中的公鑰1,并將加密后的公鑰I發(fā)送給客戶端;客戶端使用約定公私鑰對中的公鑰O解密并得到公鑰1,井隨機生成第二協(xié)商公私鑰對,使用公鑰I加密第二協(xié)商公私鑰對中的公鑰2,并將加密后的公鑰2發(fā)送給服務器;服務器使用第一協(xié)商密鑰對中的私鑰I解密并得到公鑰2 ;井隨機生成對稱加密密鑰,使用公鑰2將對稱加密密鑰進行加密,并將加密后的對稱加密密鑰發(fā)送給客戶端;客戶端使用第二協(xié)商公私鑰對中的私鑰2解密并得到對稱加密密鑰。
      優(yōu)選地,上述方法還包括服務器為當前連接分配ー個唯一的會話標識ID,并將會話ID記錄在與當前連接相關的會話狀態(tài)中;使用對稱加密密鑰和對稱加密算法將會話ID發(fā)送給客戶端;客戶端使用對稱加密密鑰進行解密,獲取會話ID,并保存會話ID ;服務器在與客戶端斷開鏈接后,在預定時間內保存與客戶端的會話狀態(tài)。優(yōu)選地,連接發(fā)起請求中攜帯有上次連接的會話ID的明文、以及使用對稱加密密鑰加密的用戶信息;當客戶端斷開了與服務器的連接后需要重新連接服務器時,上述方法還包括服務器接收客戶端發(fā)送的連接發(fā)起請求,并獲取會話ID ;服務器根據(jù)會話ID判斷相應的會話狀態(tài)中是否保存有相應的會話ID,如果存在相應的會話ID,則使用相應的加密密鑰對連接發(fā)起請求進行解密,獲取用戶信息;服務器根據(jù)用戶信息對客戶端進行鑒權,在鑒權通過的情況下,與客戶端進行會話快速恢復,直接使用相應的加密密鑰與客戶端進行通信。本發(fā)明還提供了一種服務器,包括連接模塊,用于獲取客戶端發(fā)送的連接發(fā)起請求,根據(jù)連接發(fā)起請求使用非対稱加密算法通過協(xié)商確定加密密鑰,完成與客戶端的握手; 通信模塊,用于使用加密密鑰與客戶端進行通信。優(yōu)選地,連接模塊根據(jù)連接發(fā)起請求使用非対稱加密算法通過至少兩次協(xié)商確定對稱加密密鑰。優(yōu)選地,連接發(fā)起請求中攜帯有客戶端指定的當前連接所使用的加密算法;連接模塊具體用于根據(jù)客戶端指定的加密算法隨機生成第一協(xié)商公私鑰對,并使用選擇的約定公私鑰對中的私鑰O加密第一協(xié)商公私鑰對中的公鑰1,并將加密后的公鑰I發(fā)送給客戶端;獲取客戶端使用公鑰I加密的第二協(xié)商公私鑰對中的公鑰2 ;使用第一協(xié)商密鑰對中的私鑰I解密并得到公鑰2 ;井隨機生成對稱加密密鑰,使用公鑰2將對稱加密密鑰進行加密,并將加密后的對稱加密密鑰發(fā)送給客戶端。優(yōu)選地,服務器還包括保存模塊,用于為當前連接分配ー個唯一的會話標識ID,并將會話ID記錄在與當前連接相關的會話狀態(tài)中,并使用會話的對稱加密密鑰將會話ID進行對稱加密后發(fā)送給客戶端,與客戶端斷開鏈接后,在預定時間內保存與客戶端的會話狀態(tài)。優(yōu)選地,連接發(fā)起請求中攜帯有上次連接的會話ID的明文、以及使用對稱加密密鑰加密的用戶信息;服務器還包括會話快速恢復模塊,用于當客戶端斷開了與服務器的連接后需要重新連接服務器時,接收客戶端發(fā)送的連接發(fā)起請求,并獲取會話ID,根據(jù)會話ID判斷相應的會話狀態(tài)中是否保存有相應的會話ID,如果存在相應的會話ID,則使用相應的加密密鑰對連接發(fā)起請求進行解密,獲取用戶信息;根據(jù)用戶信息對客戶端進行鑒權,在鑒權通過的情況下,與客戶端進行會話快速恢復,直接使用相應的加密密鑰與客戶端進行通信。本發(fā)明有益效果如下通過使用非対稱加密算法協(xié)商確定對稱加密密鑰,并使用對稱加密密鑰與客戶端進行通信,解決了現(xiàn)有技術中在不穩(wěn)定的網(wǎng)絡環(huán)境下客戶端不能安全高效地與服務器實現(xiàn)加密會話的問題,能夠保證用戶無論是在何種惡劣的網(wǎng)絡環(huán)境下都能快速實現(xiàn)與服務器安全交換數(shù)據(jù)從而實現(xiàn)對互聯(lián)網(wǎng)業(yè)務的訪問,極大的提升了用戶體驗。


      圖I是本發(fā)明實施例的建立客戶端與服務器安全連接的方法的流程圖;圖2是本發(fā)明實施例的客戶端和服務器進行四步握手過程的示意圖;圖3是本發(fā)明實施例的客戶端握手的流程圖;圖4是本發(fā)明實施例的服務器握手的流程圖;圖5是本發(fā)明實施例的服務器的結構示意圖。
      具體實施例方式為了解決現(xiàn)有技術中在不穩(wěn)定的網(wǎng)絡環(huán)境下(如手機等移動終端使用無線上網(wǎng) 的網(wǎng)絡環(huán)境中客戶端高效地與服務器建立安全信道的方法和服務器,本發(fā)明實施例的技術方案保證了用戶無論是在何種惡劣的網(wǎng)絡環(huán)境下都能快速實現(xiàn)與服務器安全交換數(shù)據(jù)從而實現(xiàn)對互聯(lián)網(wǎng)業(yè)務的訪問,極大的提升了用戶體驗。以下結合附圖以及實施例,對本發(fā)明進行進一歩詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不限定本發(fā)明。根據(jù)本發(fā)明的實施例,提供了ー種建立客戶端與服務器安全連接的方法,圖I是本發(fā)明實施例的建立客戶端與服務器安全連接的方法的流程圖,如圖I所示,根據(jù)本發(fā)明實施例的建立客戶端與服務器安全連接的方法包括如下處理步驟101,服務器獲取客戶端發(fā)送的連接發(fā)起請求,根據(jù)連接發(fā)起請求使用非対稱加密算法通過協(xié)商確定加密密鑰,完成與客戶端的握手,其中,上述加密密鑰可以為對稱加密密鑰,也可以為非対稱加密密鑰,但在實際應用中,由于效率的考慮一般使用對稱加密密鑰;本發(fā)明實施例以加密密鑰為對稱加密密鑰為例對本發(fā)明實施例進行說明。優(yōu)選地,在實際應用中,服務器根據(jù)連接發(fā)起請求使用非対稱加密算法通過兩次協(xié)商確定對稱加密密鑰。在實際應用中,客戶端發(fā)送的連接發(fā)起請求中攜帯有客戶端指定的當前連接所使用的加密算法;服務器根據(jù)連接發(fā)起請求使用非対稱加密算法通過兩次協(xié)商確定對稱加密密鑰具體包括如下處理步驟1,服務器根據(jù)客戶端指定的加密算法隨機生成第一協(xié)商公私鑰對,并使用選擇的約定公私鑰對中的私鑰O加密第一協(xié)商公私鑰對中的公鑰1,并將加密后的公鑰I發(fā)送給客戶端;步驟2,客戶端使用約定公私鑰對中的公鑰O解密并得到公鑰1,井隨機生成第二協(xié)商公私鑰對,使用公鑰I加密第二協(xié)商公私鑰對中的公鑰2,并將加密后的公鑰2發(fā)送給服務器;步驟3,服務器使用第一協(xié)商密鑰對中的私鑰I解密并得到公鑰2 ;井隨機生成對稱加密密鑰,使用公鑰2將對稱加密密鑰進行加密,并將加密后的對稱加密密鑰發(fā)送給客戶端;步驟4,客戶端使用第二協(xié)商公私鑰對中的私鑰2解密并得到對稱加密密鑰。步驟102,服務器使用加密密鑰與客戶端進行通信。
      為了便于會話快速恢復,優(yōu)選地,在本發(fā)明實施例中,服務器會為當前連接分配一個唯一的會話標識ID,并將會話ID記錄在與當前連接相關的會話狀態(tài)中;隨后,服務器使用對稱加密密鑰和對稱加密算法將會話ID加密后發(fā)送給客戶端;客戶端使用對稱加密密鑰進行解密,獲取會話ID,并保存會話ID ;服務器在與客戶端斷開鏈接后,在預定時間內也會保存與客戶端的會話狀態(tài),該預定時間可以根據(jù)經(jīng)驗值進行設置。在客戶端申請進行會話快速恢復時,在客戶端發(fā)送的連接發(fā)起請求中還需要攜帯有上次連接的會話ID的明文、以及使用對稱加密密鑰加密的用戶信息。當客戶端斷開了與服務器的連接后需要重新連接服務器時,服務器接收客戶端發(fā)送的連接發(fā)起請求,并獲取會話ID ;服務器根據(jù)會話ID判斷相應的會話狀態(tài)中是否保存有相應的會話ID,如果存在相應的會話ID,則使用與該會話ID相對應的加密密鑰(可以使對稱加密密鑰,也可以是非對稱加密密鑰)對連接發(fā)起請求進行解密,獲取用戶信息(例如,用戶IP);服務器根據(jù)用戶信息對客戶端進行鑒權(例如,判斷用戶IP與當前連接IP是否一致,如果一致則鑒權通過,否則,鑒權不通過),在鑒權通過的情況下,與客戶端進行會話快速恢復,直接使用與該會話ID相對應的加密密鑰與客戶端進行通信。 以下結合附圖,對本發(fā)明的上述技術方案進行詳細說明。為了保證客戶端和服務器之間連接的安全性,客戶端和服務器之間的所有請求都應該經(jīng)過加密,在本發(fā)明實施例中,為了提高效率,選擇使用對稱加密算法對客戶端和服務器端的通信進行加密,此外,也可以使用非対稱加密算法對客戶端和服務器端的通信進行加密;在本發(fā)明實施例中,對稱加密密鑰使用非対稱加密算法通過兩次協(xié)商確定,安全信道的建立必須滿足以下兩個條件條件I,任何第三方無法偽造服務器;條件2,在破解客戶端代碼的情況下,即使截獲其他用戶發(fā)送的加密請求,也無法解密。為了滿足以上兩個條件,在本發(fā)明實施例中,客戶端和服務器都必須有一個隨機生成密鑰的過程,圖2是本發(fā)明實施例的客戶端和服務器進行四步握手過程的示意圖,客戶端(Client,簡稱為C)和服務器(Server,簡稱為S)進行四步握手過程如圖2所示,需要說明的是,在四步握手過程中,需要使用到以下公私鑰對I、約定公私鑰對0(p0,s0):約定公私鑰對O為寫死在代碼中的公私鑰,在本發(fā)明實施例中,設置有公私鑰池,服務器每次選ー個,并告訴客戶端每次選中的是公私鑰池中的哪ー個約定公私鑰對0,客戶端可以通過約定公私鑰對O驗證請求的確來自服務器。2、協(xié)商公私鑰對I (pl,Si):服務器隨機生成的協(xié)商密鑰;3、協(xié)商公私鑰對2 (p2,s2):客戶端隨機生成的協(xié)商密鑰;4、對稱密鑰3(key3):服務器隨機生成的對稱密鑰,用于最終的對稱加密。需要說明的是,上述P代表公鑰,s代表私鑰,序號O表示事先約定的約定公私鑰對,序號I、3表不服務器隨機生成的協(xié)商公私鑰對,序號2表不客戶端隨機生成的協(xié)商公私鑰對。如圖2所示,在本發(fā)明實施例中,客戶端和服務器進行四步握手過程如下步驟I,C- > S :客戶端向服務器發(fā)起連接SI,SI包中可以指定當前本次連接使用何種對稱加密算法及非対稱加密算法的協(xié)議參數(shù),另外可能包含ー些上次會話(如果有上次會話的話)的數(shù)據(jù)等,在會話恢復的過程中使用,會話恢復過程在后面會進行詳細的說明;步驟2,S- > C :服務器根據(jù)客戶端指定的加密算法隨機生成“協(xié)商公私鑰對I” (上述第一協(xié)商公私鑰對),使用“約定公私鑰對O”中的“私鑰O”加密“公鑰1”,發(fā)送給客戶端,這ー步發(fā)送的包稱為S2包;步驟3,C- > S :客戶端收到S2包后,使用“約定公私鑰對O”中的“公鑰O”解密并得到“公鑰I”;客戶端隨機生成“協(xié)商公私鑰對2”(上述第二協(xié)商公私鑰對),并使用“公鑰I”加密“公鑰2”,發(fā)送給服務器,這ー步發(fā)送的包稱為S3包;步驟4,S_ > C :服務器收到S3包后,使用“協(xié)商密鑰對I”中的“私鑰I”解密并得到“公鑰2” ;服務器隨機生成“對稱密鑰3” (上述對稱加密密鑰),用“公鑰2”將其加密,并發(fā)送給客戶端,這ー步發(fā)送的包稱為S4包。步驟5,之后所有客戶端與服務器之間的通訊都通過“對稱密鑰3”來完成,至此四步握手完成;步驟6,服務器為本次連接分配ー個唯一的“會話ID”并記錄在此連接相關的會話狀態(tài)中,即使客戶端連接斷開后,也保存與客戶端的會話狀態(tài)一段時間,然后使用“對稱密鑰3”和對稱加密算法將“會話ID”傳送給客戶端,客戶端將此“會話ID”記錄;需要說明的是,上述會話狀態(tài)是指描述客戶端與服務器的一次連接的所有信息的集合。進行快速會話恢復的處理如下步驟1,當客戶端由于種種原因斷開了連接后需要重新連接服務器時,在發(fā)送SI包時就將自己本地記錄的上次“會話ID”的明文,連同自己的IP等私人信息(上述用戶信息)經(jīng)過內存中保存的“對稱密鑰3”加密后的密文發(fā)送給服務器;步驟2,服務器收到SI包后,檢查保存的會話中是否還有SI包中攜帯的“會話ID”存在,如果存在則找出對應連接的“對稱密鑰3”來解密后面的密文,如果發(fā)現(xiàn)當前連接IP等其它私人信息與客戶端傳送過來的吻合(對應于上述根據(jù)用戶信息對客戶端進行鑒權 的步驟),則可認為客戶端此時是申請進行會話快速恢復,而不需要重新握手,直接使用以前的對稱密鑰3進行安全通信。以下分別詳細說明客戶端和服務器兩端的各自處理流程圖3是本發(fā)明實施例的客戶端握手的流程圖,如圖3所示,包括如下處理步驟1,客戶端判斷是否有上次連接的會話ID,如果判斷為是,執(zhí)行步驟2,否則,執(zhí)行步驟3 ;步驟2,在SI包中増加上次連接的會話ID以及使用保存的與該會話ID相應的加密密鑰加密的IP地址等私人信息,發(fā)起恢復會話請求,并執(zhí)行步驟4 ;步驟3,客戶端向服務器端發(fā)送攜帯有指定加密算法的SI包申請與服務器進行握手,并執(zhí)ィ了步驟5 ;步驟4,客戶端判斷恢復會話是否成功,如果判斷為是,執(zhí)行步驟7,否則,執(zhí)行步驟3 ;步驟5,分析服務器返回的S2包,根據(jù)S2包的內容向服務器發(fā)送S3包,執(zhí)行步驟6 ;步驟6,分析服務器返回的S4包,根據(jù)S4包的內容獲得加密密鑰,執(zhí)行步驟7 ;
      步驟7,與服務器開始會話。圖4是本發(fā)明實施例的服務器握手的流程圖,如圖4所示,包括如下處理步驟1,服務器判斷收到的SI包中是否攜帶有恢復會話信息(會話ID、以及IP等私人信息),如果判斷為是,執(zhí)行步驟2,否則,執(zhí)行步5 ;步驟2,查找會話ID并獲取SI包中的IP等私人信息,執(zhí)行步驟3 ;步驟3,驗證當前連接IP是否與SI包中的IP等私人信息相吻合,如果判斷為是,執(zhí)行步驟4,否則,執(zhí)行步驟5;步驟4,返回給客戶端會話恢復成功信息,執(zhí)行步驟7 ;步驟5,向客戶端發(fā)送S2包,與客戶端進行正常握手; 步驟6,接收客戶端發(fā)送的S3包,并根據(jù)S3包發(fā)送S4包,完成與客戶端的握手;步驟7,與客戶端開始會話。綜上所述,借助于本發(fā)明實施例的技術方案,通過使用非対稱加密算法協(xié)商確定對稱加密密鑰,并使用對稱加密密鑰與客戶端進行通信,解決了現(xiàn)有技術中在不穩(wěn)定的網(wǎng) 絡環(huán)境下客戶端不能安全高效地與服務器實現(xiàn)加密會話的問題,能夠保證用戶無論是在何種惡劣的網(wǎng)絡環(huán)境下都能快速實現(xiàn)與服務器安全交換數(shù)據(jù)從而實現(xiàn)對互聯(lián)網(wǎng)業(yè)務的訪問,極大的提升了用戶體驗。根據(jù)本發(fā)明的實施例,提供了一種服務器,圖5是本發(fā)明實施例的服務器的結構示意圖,如圖5所示,根據(jù)本發(fā)明實施例的服務器包括連接模塊50、以及通信模塊52,以下對本發(fā)明實施例的各個模塊進行詳細的說明。連接模塊50,用于獲取客戶端發(fā)送的連接發(fā)起請求,根據(jù)連接發(fā)起請求使用非對稱加密算法通過協(xié)商確定加密密鑰,完成與客戶端的握手;其中,上述加密密鑰可以為對稱加密密鑰,也可以為非対稱加密密鑰;本發(fā)明實施例以加密密鑰為對稱加密密鑰為例對本發(fā)明實施例進行說明。優(yōu)選地,連接模塊50具體用于根據(jù)連接發(fā)起請求使用非対稱加密算法通過兩次協(xié)商確定對稱加密密鑰。在實際應用中,客戶端發(fā)送的連接發(fā)起請求中攜帯有客戶端指定的當前連接所使用的加密算法;連接模塊50具體用于根據(jù)客戶端指定的加密算法隨機生成第一協(xié)商公私鑰對,并使用選擇的約定公私鑰對中的私鑰O加密第一協(xié)商公私鑰對中的公鑰1,并將加密后的公鑰I發(fā)送給客戶端;獲取客戶端使用公鑰I加密的第二協(xié)商公私鑰對中的公鑰2 ;使用第一協(xié)商密鑰對中的私鑰I解密并得到公鑰2 ;井隨機生成對稱加密密鑰,使用公鑰2將對稱加密密鑰進行加密,并將加密后的對稱加密密鑰發(fā)送給客戶端。通信模塊52,用于使用加密密鑰與客戶端進行通信。為了便于會話快速恢復,服務器還包括保存模塊,用于為當前連接分配ー個唯一的會話標識ID,并將會話ID記錄在與當前連接相關的會話狀態(tài)中,并使用對稱加密密鑰和對稱加密算法將會話ID發(fā)送給客戶端,與客戶端斷開鏈接后,在預定時間內保存與客戶端的會話狀態(tài)。在客戶端申請進行會話快速恢復時,在客戶端發(fā)送的連接發(fā)起請求中還需要攜帯有上次連接的會話ID的明文、以及使用對稱加密密鑰加密的用戶信息。服務器還包括的會話快速恢復模塊再當客戶端斷開了與服務器的連接后需要重新連接服務器時,接收客戶端發(fā)送的連接發(fā)起請求,并獲取會話ID,根據(jù)會話ID判斷相應的會話狀態(tài)中是否保存有相應的會話ID,如果存在相應的會話ID,則使用相應的加密密鑰(可以使對稱加密密鑰,也可以是非對稱加密密鑰)對連接發(fā)起請求進行解密,獲取用戶信息(例如,用戶IP);根據(jù)用戶信息對客戶端進行鑒權(例如,判斷用戶IP與當前連接IP是否一致,如果一致則鑒權通過,否則,鑒權不通過),在鑒權通過的情況下,與客戶端進行會話快速恢復,直接使用相應的加密密鑰與客戶端進行通信。以下結合附圖,對本發(fā)明的上述技術方案進行詳細說明。為了保證客戶端和服務器之間連接的安全性,客戶端和服務器之間的所有請求都應該經(jīng)過加密,在本發(fā)明實施例中,為了提高效率,選擇使用對稱加密算法對客戶端和服務器端的通信進行加密,此外,也可以使用非対稱加密算法對客戶端和服務器端的通信進行加密;在本發(fā)明實施例中,對稱加密密鑰使用非対稱加密算法通過兩次協(xié)商確定,安全信道的建立必須滿足以下兩個條件
      條件I,任何第三方無法偽造服務器;條件2,在破解客戶端代碼的情況下,即使截獲其他用戶發(fā)送的加密請求,也無法解密。為了滿足以上兩個條件,在本發(fā)明實施例中,客戶端和服務器都必須有一個隨機生成密鑰的過程,圖2是本發(fā)明實施例的客戶端和服務器進行四步握手過程的示意圖,客戶端(Client,簡稱為C)和服務器(Server,簡稱為S)進行四步握手過程如圖2所示,需要說明的是,在四步握手過程中,需要使用到以下公私鑰對I、約定公私鑰對0(p0,s0):約定公私鑰對O為寫死在代碼中的公私鑰,在本發(fā)明實施例中,設置有公私鑰池,服務器每次選ー個,并告訴客戶端每次選中的是公私鑰池中的哪ー個約定公私鑰對0,客戶端可以通過約定公私鑰對O驗證請求的確來自服務器。2、協(xié)商公私鑰對I (pl,Si):服務器隨機生成的協(xié)商密鑰;3、協(xié)商公私鑰對2 (p2,s2):客戶端隨機生成的協(xié)商密鑰;4、對稱密鑰3(key3):服務器隨機生成的對稱密鑰,用于最終的對稱加密。需要說明的是,上述P代表公鑰,s代表私鑰,序號O表示事先約定的約定公私鑰對,序號I、3表不服務器隨機生成的協(xié)商公私鑰對,序號2表不客戶端隨機生成的協(xié)商公私鑰對。如圖2所示,在本發(fā)明實施例中,客戶端和服務器進行四步握手過程如下步驟I,C- > S :客戶端向服務器發(fā)起連接SI,SI包中可以指定當前本次連接使用何種對稱加密算法及非対稱加密算法的協(xié)議參數(shù),另外可能包含ー些上次會話(如果有上次會話的話)的數(shù)據(jù)等,在會話恢復的過程中使用,會話恢復過程在后面會進行詳細的說明;步驟2,S- > C :服務器根據(jù)客戶端指定的加密算法隨機生成“協(xié)商公私鑰對I” (上述第一協(xié)商公私鑰對),使用“約定公私鑰對O”中的“私鑰O”加密“公鑰1”,發(fā)送給客戶端,這ー步發(fā)送的包稱為S2包;步驟3,C_ > S :客戶端收到S2包后,使用“約定公司要對O”中的“公鑰O”解密并得到“公鑰I”;客戶端隨機生成“協(xié)商公私鑰對2”(上述第二協(xié)商公私鑰對),并使用“公鑰I”加密“公鑰2”,發(fā)送給服務器,這ー步發(fā)送的包稱為S3包;
      步驟4,S_ > C :服務器收到S3包后,使用“協(xié)商密鑰對I”中的“私鑰I”解密并得到“公鑰2” ;服務器隨機生成“對稱密鑰3” (上述對稱加密密鑰),用“公鑰2”將其加密,并發(fā)送給客戶端,這ー步發(fā)送的包稱為S4包。步驟5,之后所有客戶端與服務器之間的通訊都通過“對稱密鑰3”來完成,至此四步握手完成;步驟6,服務器為本次連接分配ー個唯一的“會話ID”并記錄在此連接相關的會話狀態(tài)中,即使客戶端連接斷開后,也保存與客戶端的會話狀態(tài)一段時間,然后使用“對稱密鑰3”和對稱加密算法將“會話ID”傳送給客戶端,客戶端將此“會話ID”記錄;需要說明的是,上述會話狀態(tài)是指描述客戶端與服務器的一次連接的所有信息的集合。進行快速會話恢復的處理如下步驟1,當客戶端由于種種原因斷開了連接后需要重新連接服務器時,在發(fā)送SI 包時就將自己本地記錄的上次“會話ID”的明文,連同自己的IP等私人信息(上述用戶信息)經(jīng)過內存中保存的“對稱密鑰3”加密后的密文發(fā)送給服務器;步驟2,服務器收到SI包后,檢查保存的會話中是否還有SI包中攜帯的“會話ID”存在,如果存在則找出對應連接的“對稱密鑰3”來解密后面的密文,如果發(fā)現(xiàn)當前連接IP等其它私人信息與客戶端傳送過來的吻合(對應于上述根據(jù)用戶信息對客戶端進行鑒權的步驟),則可認為客戶端此時是申請進行會話快速恢復,而不需要重新握手,直接使用以前的對稱密鑰3進行安全通信。以下分別詳細說明客戶端和服務器兩端的各自處理流程圖3是本發(fā)明實施例的客戶端握手的流程圖,如圖3所示,包括如下處理步驟1,客戶端判斷是否有上次連接的會話ID,如果判斷為是,執(zhí)行步驟2,否則,執(zhí)行步驟3 ;步驟2,在SI包中増加上次連接的會話ID以及使用保存的與該會話ID相應的加密密鑰加密的IP地址等私人信息,發(fā)起恢復會話請求,并執(zhí)行步驟4 ;步驟3,客戶端向服務器端發(fā)送攜帯有指定加密算法的SI包申請與服務器進行握手,并執(zhí)ィ了步驟5 ;步驟4,客戶端判斷恢復會話是否成功,如果判斷為是,執(zhí)行步驟7,否則,執(zhí)行步驟3 ;步驟5,分析服務器返回的S2包,根據(jù)S2包的內容向服務器發(fā)送S3包,執(zhí)行步驟6 ;步驟6,分析服務器返回的S4包,根據(jù)S4包的內容獲得加密密鑰,執(zhí)行步驟7 ;步驟7,與服務器開始會話。圖4是本發(fā)明實施例的服務器握手的流程圖,如圖4所示,包括如下處理步驟1,服務器判斷收到的SI包中是否攜帶有恢復會話信息(會話ID、以及IP等私人信息),如果判斷為是,執(zhí)行步驟2,否則,執(zhí)行步5 ;步驟2,查找會話ID并獲取SI包中的IP等私人信息,執(zhí)行步驟3 ;步驟3,驗證當前連接IP是否與SI包中的IP等私人信息相吻合,如果判斷為是,執(zhí)行步驟4,否則,執(zhí)行步驟5;步驟4,返回給客戶端會話恢復成功信息,執(zhí)行步驟7 ;
      步驟5,向客戶端發(fā)送S2包,與客戶端進行正常握手;步驟6,接收客戶端發(fā)送的S3包,并根據(jù)S3包發(fā)送S4包,完成與客戶端的握手;步驟7,與客戶端開始會話。綜上所述,借助于本發(fā)明實施例的技術方案,通過使用非対稱加密算法協(xié)商確定對稱加密密鑰,并使用對稱加密密鑰與客戶端進行通信,解決了現(xiàn)有技術中在不穩(wěn)定的網(wǎng)絡環(huán)境下客戶端不能安全高效地與服務器實現(xiàn)加密會話的問題,能夠保證用戶無論是在何種惡劣的網(wǎng)絡環(huán)境下都能快速實現(xiàn)與服務器安全交換數(shù)據(jù)從而實現(xiàn)對互聯(lián)網(wǎng)業(yè)務的訪問,極大的提升了用戶體驗。盡管為示例目的,已經(jīng)公開了本發(fā)明的優(yōu)選實施例,本領域的技術人員將意識到各種改進、増加和取代也是可能的,因此,本發(fā)明的范圍應當不限于上述實施例。應當注意的是,在本發(fā)明的控制器的各個部件中,根據(jù)其要實現(xiàn)的功能而對其中 的部件進行了邏輯劃分,但是,本發(fā)明不受限于此,可以根據(jù)需要對各個部件進行重新劃分或者組合,例如,可以將ー些部件組合為單個部件,或者可以將ー些部件進ー步分解為更多的子部件。本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在ー個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領域的技術人員應當理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據(jù)本發(fā)明實施例的控制器中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質上,或者可以具有ー個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。應該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領域技術人員在不脫離所附權利要求的范圍的情況下可設計出替換實施例。在權利要求中,不應將位于括號之間的任何參考符號構造成對權利要求的限制。單詞“包含”不排除存在未列在權利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。
      權利要求
      1.ー種建立客戶端與服務器安全連接的方法,其特征在于,包括服務器獲取客戶端發(fā)送的連接發(fā)起請求,根據(jù)所述連接發(fā)起請求使用非対稱加密算法通過協(xié)商確定加密密鑰,完成與所述客戶端的握手;所述服務器使用所述加密密鑰與所述客戶端進行通信。
      2.如權利要求I所述的方法,其特征在于,所述服務器根據(jù)所述連接發(fā)起請求使用非對稱加密算法通過至少兩次協(xié)商確定對稱加密密鑰。
      3.如權利要求2所述的方法,其特征在于,所述連接發(fā)起請求中攜帯有所述客戶端指定的當前連接所使用的加密算法;所述服務器根據(jù)所述連接發(fā)起請求使用非対稱加密算法通過兩次協(xié)商確定對稱加密密鑰具體包括所述服務器根據(jù)所述客戶端指定的加密算法隨機生成第一協(xié)商公私鑰對,并使用選擇的約定公私鑰對中的私鑰O加密所述第一協(xié)商公私鑰對中的公鑰I,并將加密后的公鑰I發(fā)送給客戶端;所述客戶端使用所述約定公私鑰對中的公鑰O解密并得到所述公鑰1,井隨機生成第ニ協(xié)商公私鑰對,使用所述公鑰I加密所述第二協(xié)商公私鑰對中的公鑰2,并將加密后的所述公鑰2發(fā)送給所述服務器;所述服務器使用所述第一協(xié)商密鑰對中的私鑰I解密并得到所述公鑰2 ;井隨機生成所述對稱加密密鑰,使用所述公鑰2將所述對稱加密密鑰進行加密,并將加密后的對稱加密密鑰發(fā)送給所述客戶端;所述客戶端使用所述第二協(xié)商公私鑰對中的私鑰2解密并得到所述對稱加密密鑰。
      4.如權利要求2或3所述的方法,其特征在于,所述方法還包括所述服務器為當前連接分配ー個唯一的會話標識ID,并將所述會話ID記錄在與所述當前連接相關的會話狀態(tài)中;使用所述對稱加密密鑰和對稱加密算法將所述會話ID發(fā)送給所述客戶端;所述客戶端使用所述對稱加密密鑰進行解密,獲取所述會話ID,并保存所述會話ID ;所述服務器在與所述客戶端斷開鏈接后,在預定時間內保存與所述客戶端的會話狀態(tài)。
      5.如權利要求4所述的方法,其特征在干,所述連接發(fā)起請求中攜帯有所述上次連接的會話ID的明文、以及使用所述對稱加密密鑰加密的用戶信息;當所述客戶端斷開了與所述服務器的連接后需要重新連接所述服務器時,所述方法還包括所述服務器接收所述客戶端發(fā)送的所述連接發(fā)起請求,并獲取所述會話ID ;所述服務器根據(jù)所述會話ID判斷相應的會話狀態(tài)中是否保存有相應的會話ID,如果存在所述相應的會話ID,則使用相應的加密密鑰對所述連接發(fā)起請求進行解密,獲取所述用戶信息;所述服務器根據(jù)所述用戶信息對所述客戶端進行鑒權,在鑒權通過的情況下,與所述客戶端進行會話快速恢復,直接使用所述相應的加密密鑰與所述客戶端進行通信。
      6.一種服務器,其特征在于,包括連接模塊,用于獲取客戶端發(fā)送的連接發(fā)起請求,根據(jù)所述連接發(fā)起請求使用非対稱加密算法通過協(xié)商確定加密密鑰,完成與所述客戶端的握手;通信模塊,用于使用所述加密密鑰與所述客戶端進行通信。
      7.如權利要求6所述的服務器,其特征在于,所述連接模塊具體用于根據(jù)所述連接發(fā)起請求使用非対稱加密算法通過至少兩次協(xié)商確定對稱加密密鑰。
      8.如權利要求7所述的服務器,其特征在于,所述連接發(fā)起請求中攜帯有所述客戶端指定的當前連接所使用的加密算法;所述連接模塊具體用干根據(jù)所述客戶端指定的加密算法隨機生成第一協(xié)商公私鑰對,并使用選擇的約定公私鑰對中的私鑰O加密所述第一協(xié)商公私鑰對中的公鑰1,并將加密后的公鑰I發(fā)送給客戶端;獲取所述客戶端使用所述公鑰I加密的第二協(xié)商公私鑰對中的公鑰2 ;使用所述第一協(xié)商密鑰對中的私鑰I解密并得到所述公鑰2 ;井隨機生成所述對稱加密密鑰,使用所述公鑰2將所述對稱加密密鑰進行加密,并將加密后的對稱加密密鑰發(fā)送給所述客戶端。
      9.如權利要求6或7或8所述的服務器,其特征在于,所述服務器還包括保存模塊,用于為當前連接分配ー個唯一的會話標識ID,并將所述會話ID記錄在與所述當前連接相關的會話狀態(tài)中,并使用所述對稱加密密鑰和對稱加密算法將所述會話ID發(fā)送給所述客戶端,與所述客戶端斷開鏈接后,在預定時間內保存與所述客戶端的會話狀態(tài)。
      10.如權利要求9所述的服務器,其特征在于,所述連接發(fā)起請求中攜帯有所述上次連接的會話ID的明文、以及使用所述對稱加密密鑰加密的用戶信息;所述服務器還包括會話快速恢復模塊,用于當所述客戶端斷開了與所述服務器的連接后需要重新連接所述服務器時,接收所述客戶端發(fā)送的所述連接發(fā)起請求,并獲取所述會話ID,根據(jù)所述會話ID判斷相應的會話狀態(tài)中是否保存有相應的會話ID,如果存在所述相應的會話ID,則使用相應的加密密鑰對所述連接發(fā)起請求進行解密,獲取所述用戶信息;根據(jù)所述用戶信息對所述客戶端進行鑒權,在鑒權通過的情況下,與所述客戶端進行會話快速恢復,直接使用所述相應的加密密鑰與所述客戶端進行通信。
      全文摘要
      本發(fā)明公開了一種建立客戶端與服務器安全連接的方法及服務器。該方法包括服務器獲取客戶端發(fā)送的連接發(fā)起請求,根據(jù)連接發(fā)起請求使用非對稱加密算法通過協(xié)商確定加密密鑰,完成與客戶端的握手;服務器使用加密密鑰與客戶端進行通信。借助于本發(fā)明的技術方案,能夠保證用戶無論是在何種惡劣的網(wǎng)絡環(huán)境下都能快速實現(xiàn)與服務器安全交換數(shù)據(jù)從而實現(xiàn)對互聯(lián)網(wǎng)業(yè)務的訪問,同時在會話意外斷開時能迅速恢復原會話,極大的提升了用戶體驗。
      文檔編號H04L29/06GK102833253SQ20121031088
      公開日2012年12月19日 申請日期2012年8月29日 優(yōu)先權日2012年8月29日
      發(fā)明者朱為, 吳廷鵬, 沈劍, 周婧 申請人:五八同城信息技術有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1