本申請涉及通信領(lǐng)域,特別涉及一種SSL連接建立的方法及系統(tǒng)。
背景技術(shù):
SSL(Secure Sockets Layer安全套接層),是為網(wǎng)絡(luò)通信提供安全及數(shù)據(jù)完整性的一種安全協(xié)議。隨著技術(shù)的發(fā)展,人們對SSL連接建立的要求越來越高。
現(xiàn)有的SSL連接建立的過程中,需要產(chǎn)生3組隨機數(shù)來產(chǎn)生一個用于后續(xù)數(shù)據(jù)交互時加密的對稱密鑰,使得SSL的握手過程非常長,需要來回交互多次才可以建立連接。
因此,如何簡單、快速的進行SSL連接的建立是本領(lǐng)域技術(shù)人員目前需要解決的技術(shù)問題。
技術(shù)實現(xiàn)要素:
本申請所要解決的技術(shù)問題是提供一種SSL連接建立的方法及系統(tǒng),解決了現(xiàn)有技術(shù)中SSL連接建立的過程中,需要產(chǎn)生3組隨機數(shù)來產(chǎn)生一個用于后續(xù)數(shù)據(jù)交互時加密的對稱密鑰,使得SSL的握手過程非常長,需要來回交互多次才可以建立連接的問題。
其具體方案如下:
一種SSL連接建立的方法,預(yù)先在客戶端和服務(wù)器端分別建立一個相同的預(yù)設(shè)密鑰,該方法包括:
所述客戶端向所述服務(wù)器端發(fā)送通過所述預(yù)設(shè)密鑰加密后的第一組隨機數(shù);
所述服務(wù)器端接收所述第一組隨機數(shù)后,通過所述預(yù)設(shè)密鑰對所述第一組隨機數(shù)進行解密,得到解密后的所述第一組隨機數(shù);
所述服務(wù)器端向所述客戶端發(fā)送通過所述解密后的第一組隨機數(shù)加密后的第二組隨機數(shù);
所述客戶端接收所述第二組隨機數(shù)后,通過所述解密后的第一組隨機數(shù)對所述第二組隨機數(shù)進行解密,得到解密后的所述第二組隨機數(shù);
所述客戶端和所述服務(wù)器端均利用所述解密后的第一組隨機數(shù)和所述解密后的第二組隨機數(shù)計算會話密鑰。
上述的方法,優(yōu)選的,
所述客戶端向所述服務(wù)器端發(fā)送通過所述預(yù)設(shè)密鑰加密后的第一組隨機數(shù),包括:
所述客戶端產(chǎn)生第一組隨機數(shù);
所述客戶端通過所述預(yù)設(shè)密鑰對所述第一組隨機數(shù)進行加密,產(chǎn)生加密后的所述第一組隨機數(shù);
所述客戶端通過Client Hello將所述加密后的第一組隨機數(shù)發(fā)送給所述服務(wù)器端。
上述的方法,優(yōu)選的,
所述服務(wù)器端向所述客戶端發(fā)送通過所述解密后的第一組隨機數(shù)加密后的第二組隨機數(shù),包括:
所述服務(wù)器端產(chǎn)生第二組隨機數(shù);
所述服務(wù)器端通過所述解密后的第一組隨機數(shù)對所述第二組隨機數(shù)進行加密,產(chǎn)生加密后的所述第二組隨機數(shù);
所述服務(wù)器端通過Server Hello將所述加密后的第二組隨機數(shù)發(fā)送給所述客戶端。
一種SSL連接建立的系統(tǒng),該系統(tǒng)包括:
第一發(fā)送單元,用于所述客戶端向所述服務(wù)器端發(fā)送通過所述預(yù)設(shè)密鑰加密后的第一組隨機數(shù);
第一解密單元,用于所述服務(wù)器端接收所述第一組隨機數(shù)后,通過所述預(yù)設(shè)密鑰對所述第一組隨機數(shù)進行解密,得到解密后的所述第一組隨機數(shù);
第二發(fā)送單元,用于所述服務(wù)器端向所述客戶端發(fā)送通過所述解密后 的第一組隨機數(shù)加密后的第二組隨機數(shù);
第二解密單元,用于所述客戶端接收所述第二組隨機數(shù)后,通過所述解密后的第一組隨機數(shù)對所述第二組隨機數(shù)進行解密,得到解密后的所述第二組隨機數(shù);
計算單元,用于所述客戶端和所述服務(wù)器端均利用所述解密后的第一組隨機數(shù)和所述解密后的第二組隨機數(shù)計算會話密鑰。
上述的系統(tǒng),優(yōu)選的,包括:
第一產(chǎn)生單元,用于所述客戶端產(chǎn)生第一組隨機數(shù);
第一加密單元,用于所述客戶端通過所述預(yù)設(shè)密鑰對所述第一組隨機數(shù)進行加密,產(chǎn)生加密后的所述第一組隨機數(shù);
第三發(fā)送單元,用于所述客戶端通過Client Hello將所述加密后的第一組隨機數(shù)發(fā)送給所述服務(wù)器端。
上述的系統(tǒng),優(yōu)選的,包括:
第二產(chǎn)生單元,用于所述服務(wù)器端產(chǎn)生第二組隨機數(shù);
第二加密單元,用于所述服務(wù)器端通過所述解密后的第一組隨機數(shù)對所述第二組隨機數(shù)進行加密,產(chǎn)生加密后的所述第二組隨機數(shù);
第四發(fā)送單元,用于所述服務(wù)器端通過Server Hello將所述加密后的第二組隨機數(shù)發(fā)送給所述客戶端。
本申請?zhí)峁┑囊环NSSL連接建立的方法,在進行所述SSL連接建立之前,需要預(yù)先在客戶端和服務(wù)器端分別建立一個相同的預(yù)設(shè)密鑰,然后進行所述SSL連接的建立,包括所述客戶端向所述服務(wù)器端發(fā)送通過所述預(yù)設(shè)密鑰加密后的第一組隨機數(shù);所述服務(wù)器端接收所述第一組隨機數(shù)后,通過所述預(yù)設(shè)密鑰對所述第一組隨機數(shù)進行解密,得到解密后的所述第一組隨機數(shù);所述服務(wù)器端向所述客戶端發(fā)送通過所述解密后的第一組隨機數(shù)加密后的第二組隨機數(shù);所述客戶端接收所述第二組隨機數(shù)后,通過所述解密后的第一組隨機數(shù)對所述第二組隨機數(shù)進行解密,得到解密后的所述第二組隨機數(shù);所述客戶端和所述服務(wù)器端均利用所述解密后的第一組隨機數(shù)和所述解密后的第二組隨機數(shù)計算會話密鑰。解決了在現(xiàn)有的SSL連接過程中,需要3組隨機數(shù)來產(chǎn)生一個用于后續(xù) 數(shù)據(jù)交互時加密的對稱密鑰Session Key的問題,本申請中只需要2組隨機數(shù),減少了SSL交互的次數(shù),加快了SSL連接的建立過程。
附圖說明
為了更清楚地說明本申請實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本申請的一種SSL連接建立的方法實施例1的流程圖;
圖2是本申請的一種SSL連接建立的方法實施例2的流程圖;
圖3是本申請的一種SSL連接建立的方法實施例3的流程圖;
圖4是本申請的一種SSL連接建立的系統(tǒng)實施例1的結(jié)構(gòu)示意圖;
圖5是本申請的一種SSL連接建立的系統(tǒng)實施例2的結(jié)構(gòu)示意圖;
圖6是本申請的一種SSL連接建立的系統(tǒng)實施例3的結(jié)構(gòu)示意圖。
具體實施方式
本發(fā)明的核心是提供一種SSL連接建立的方法及系統(tǒng),解決了現(xiàn)有技術(shù)中SSL連接建立的過程中,需要產(chǎn)生3組隨機數(shù)來產(chǎn)生一個用于后續(xù)數(shù)據(jù)交互時加密的對稱密鑰,使得SSL的握手過程非常長,需要來回交互多次才可以建立連接的問題。
下面將結(jié)合本申請實施例中的附圖,對本申請實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├?,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護的范圍。
參考圖1,示出了本申請一種SSL連接建立的方法實施例1的流程圖,可以包括以下步驟:
步驟S101:所述客戶端向所述服務(wù)器端發(fā)送通過所述預(yù)設(shè)密鑰加密后的第一組隨機數(shù)。
本申請中,在進行SSL連接建立之前,需要預(yù)先在客戶端和服務(wù)器端分別建立一個相同的預(yù)設(shè)密鑰,以方便后續(xù)的加密操作和解密操作。
所述客戶端需要先產(chǎn)生第一組隨機數(shù),然后通過預(yù)先在所述客戶端建立的預(yù)設(shè)密鑰對所述第一組隨機數(shù)進行加密,然后所述客戶端向所述服務(wù)器發(fā)送握手請求,并將所述加密后的第一組隨機數(shù)攜帶在所述握手請求中,同時發(fā)送給所述服務(wù)器端。
步驟S102:所述服務(wù)器端接收所述第一組隨機數(shù)后,通過所述預(yù)設(shè)密鑰對所述第一組隨機數(shù)進行解密,得到解密后的所述第一組隨機數(shù)。
所述服務(wù)器端接收到所述客戶端發(fā)送的握手請求后,從中解析出所述加密后的第一組隨機數(shù),然后通過預(yù)先在所述服務(wù)器端建立的預(yù)設(shè)密鑰對所述加密后的第一組隨機數(shù)進行解密,得到解密后的所述第一組隨機數(shù),也即所述客戶端產(chǎn)生的真實的、加密之前的第一組隨機數(shù)。
步驟S103:所述服務(wù)器端向所述客戶端發(fā)送通過所述解密后的第一組隨機數(shù)加密后的第二組隨機數(shù)。
所述服務(wù)器端產(chǎn)生第二組隨機數(shù),通過所述服務(wù)器端解密后的第一組隨機數(shù)對所述第二組隨機數(shù)進行加密,然后所述服務(wù)器端向所述客戶端發(fā)送握手請求,所述加密后的第二組隨機數(shù)攜帶在所述握手請求中,同時發(fā)送給所述客戶端。
步驟S104:所述客戶端接收所述第二組隨機數(shù)后,通過所述解密后的第一組隨機數(shù)對所述第二組隨機數(shù)進行解密,得到解密后的所述第二組隨機數(shù)。
所述客戶端接收到所述服務(wù)器發(fā)送來的握手請求后,解析出所述加密后的第二組隨機數(shù),然后通過所述客戶端產(chǎn)生的第一組隨機數(shù)對所述加密后的第二組隨機數(shù)進行解密,得到解密后的第二組隨機數(shù),也即所述服務(wù)器端產(chǎn)生的加密之前的所述第二組隨機數(shù)。
步驟S105:所述客戶端和所述服務(wù)器端均利用所述解密后的第一組隨機數(shù)和所述解密后的第二組隨機數(shù)計算會話密鑰。
所述客戶端利用所述解密后的第一組隨機數(shù)和所述解密后的第二組隨機數(shù)計算會話密鑰,同時所述服務(wù)器端也利用所述解密后的第一組隨 機數(shù)和所述解密后的第二組隨機數(shù)計算會話密鑰,之后,所述客戶端和所述服務(wù)器端通過所述會話密鑰進行通信。
本申請?zhí)峁┑囊环NSSL連接建立的方法,在進行所述SSL連接建立之前,需要預(yù)先在客戶端和服務(wù)器端分別建立一個相同的預(yù)設(shè)密鑰,然后進行所述SSL連接的建立,包括所述客戶端向所述服務(wù)器端發(fā)送通過所述預(yù)設(shè)密鑰加密后的第一組隨機數(shù);所述服務(wù)器端接收所述第一組隨機數(shù)后,通過所述預(yù)設(shè)密鑰對所述第一組隨機數(shù)進行解密,得到解密后的所述第一組隨機數(shù);所述服務(wù)器端向所述客戶端發(fā)送通過所述解密后的第一組隨機數(shù)加密后的第二組隨機數(shù);所述客戶端接收所述第二組隨機數(shù)后,通過所述解密后的第一組隨機數(shù)對所述第二組隨機數(shù)進行解密,得到解密后的所述第二組隨機數(shù);所述客戶端和所述服務(wù)器端均利用所述解密后的第一組隨機數(shù)和所述解密后的第二組隨機數(shù)計算會話密鑰。解決了在現(xiàn)有的SSL連接過程中,需要3組隨機數(shù)來產(chǎn)生一個用于后續(xù)數(shù)據(jù)交互時加密的對稱密鑰Session Key的問題,本申請中只需要2組隨機數(shù),減少了SSL交互的次數(shù),加快了SSL連接的建立過程。
參考圖2,示出了本申請一種SSL連接建立的方法實施例2的流程圖,所述客戶端向所述服務(wù)器端發(fā)送通過所述預(yù)設(shè)密鑰加密后的第一組隨機數(shù),可以包括以下步驟:
步驟S201:所述客戶端產(chǎn)生第一組隨機數(shù)。
步驟S202:所述客戶端通過所述預(yù)設(shè)密鑰對所述第一組隨機數(shù)進行加密,產(chǎn)生加密后的所述第一組隨機數(shù)。
步驟S203:所述客戶端通過Client Hello將所述加密后的第一組隨機數(shù)發(fā)送給所述服務(wù)器端。
參考圖3,示出了本申請一種SSL連接建立的方法實施例3的流程圖,所述服務(wù)器端向所述客戶端發(fā)送通過所述解密后的第一組隨機數(shù)加密后的第二組隨機數(shù),包括:
步驟S301:所述服務(wù)器端產(chǎn)生第二組隨機數(shù)。
步驟S302:所述服務(wù)器端通過所述解密后的第一組隨機數(shù)對所述第二組隨機數(shù)進行加密,產(chǎn)生加密后的所述第二組隨機數(shù)。
步驟S303:所述服務(wù)器端通過Server Hello將所述加密后的第二組隨機數(shù)發(fā)送給所述客戶端。
與上述本申請一種SSL連接建立的方法實施例1所提供的方法相對應(yīng),參見圖4,本申請還提供了一種SSL連接建立的系統(tǒng)實施例1,在本實施例中,該系統(tǒng)包括:
第一發(fā)送單元401,用于所述客戶端向所述服務(wù)器端發(fā)送通過所述預(yù)設(shè)密鑰加密后的第一組隨機數(shù)。
第一解密單元402,用于所述服務(wù)器端接收所述第一組隨機數(shù)后,通過所述預(yù)設(shè)密鑰對所述第一組隨機數(shù)進行解密,得到解密后的所述第一組隨機數(shù)。
第二發(fā)送單元403,用于所述服務(wù)器端向所述客戶端發(fā)送通過所述解密后的第一組隨機數(shù)加密后的第二組隨機數(shù)。
第二解密單元404,用于所述客戶端接收所述第二組隨機數(shù)后,通過所述解密后的第一組隨機數(shù)對所述第二組隨機數(shù)進行解密,得到解密后的所述第二組隨機數(shù)。
計算單元405,用于所述客戶端和所述服務(wù)器端均利用所述解密后的第一組隨機數(shù)和所述解密后的第二組隨機數(shù)計算會話密鑰。
參見圖5,本申請還提供了一種SSL連接建立的系統(tǒng)實施例2的結(jié)構(gòu)示意圖,在本實施例中,該系統(tǒng)包括:
第一產(chǎn)生單元501,用于所述客戶端產(chǎn)生第一組隨機數(shù)。
第一加密單元502,用于所述客戶端通過所述預(yù)設(shè)密鑰對所述第一組隨機數(shù)進行加密,產(chǎn)生加密后的所述第一組隨機數(shù)。
第三發(fā)送單元503,用于所述客戶端通過Client Hello將所述加密后的第一組隨機數(shù)發(fā)送給所述服務(wù)器端。
參見圖6,本申請還提供了一種SSL連接建立的系統(tǒng)實施例2的結(jié)構(gòu)示意圖,在本實施例中,該系統(tǒng)包括:
第二產(chǎn)生單元601,用于所述服務(wù)器端產(chǎn)生第二組隨機數(shù)。
第二加密單元602,用于所述服務(wù)器端通過所述解密后的第一組隨機數(shù)對所述第二組隨機數(shù)進行加密,產(chǎn)生加密后的所述第二組隨機數(shù)。
第四發(fā)送單元603,用于所述服務(wù)器端通過Server Hello將所述加密后的第二組隨機數(shù)發(fā)送給所述客戶端。
綜上所述,本申請?zhí)峁┝艘环NSSL連接建立的方法及系統(tǒng),能夠簡單、快速的進行SSL連接的建立。
需要說明的是,本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。對于裝置類實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
為了描述的方便,描述以上裝置時以功能分為各種單元分別描述。當然,在實施本申請時可以把各單元的功能在同一個或多個軟件和/或硬件中實現(xiàn)。
通過以上的實施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本申請可借助軟件加必需的通用硬件平臺的方式來實現(xiàn)?;谶@樣的理解,本申請的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請各個實施例或者實施例的某些部分所述的方法。
以上對本申請所提供的一種SSL連接建立的方法及系統(tǒng)進行了詳細介紹,本文中應(yīng)用了具體個例對本申請的原理及實施方式進行了闡述, 以上實施例的說明只是用于幫助理解本申請的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請的思想,在具體實施方式及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本申請的限制。