安全套接字層ssl會話建立方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本申請涉及網(wǎng)絡(luò)通信技術(shù),特別涉及安全套接字層(SSL:Secure Socket Layer)會話建立方法和裝置。
【背景技術(shù)】
[0002]SSL為HTTP提供安全連接,很大程度上改善了萬維網(wǎng)的安全性問題。SSL通過握手過程在客戶端和服務(wù)器之間協(xié)商會話參數(shù),并建立SSL會話。通過SSL會話傳輸?shù)臄?shù)據(jù),都將采用該SSL會話協(xié)商的對話密鑰進行加密。
[0003]圖1示出了 SSL會話建立過程。如圖1所示,客戶端(Client)先發(fā)送Client Hello報文,Client Hello報文中攜帶客戶端支持的協(xié)議版本號、客戶端生成的隨機數(shù)(Clientrandom),以及客戶端支持的加密方法。服務(wù)器(Server)接收到Client Hello報文后,確認Client Hello報文攜帶的客戶端支持的加密方法,發(fā)送Server Hello報文給客戶端,Server Hello報文攜帶服務(wù)器的數(shù)字證書、服務(wù)器生成的隨機數(shù)(Server random)??蛻舳耸盏絊erver Hello報文后,驗證Server Hello報文攜帶的服務(wù)器的數(shù)字證書是否有效,如果有效,則生成一個新的隨機數(shù)(Premaster secret),并使用服務(wù)器的數(shù)字證書中的公鑰加密這個隨機數(shù),發(fā)給服務(wù)器。服務(wù)器接收客戶端發(fā)送的加密的隨機數(shù),并使用自己的私鑰對接收的隨機數(shù)解密,最終得到客戶端生成的隨機數(shù)即Premaster secret。之后,客戶端和服務(wù)器根據(jù)約定的加密方法對前面的Client random、Server random、Premaster secret共三個隨機數(shù)進行加密處理生成對話密鑰(Sess1n Key),對話密鑰用來加密客戶端和服務(wù)器接下來的整個交互過程,直至SSL會話成功建立。
[0004]在上面描述中,客戶端需要驗證服務(wù)器的數(shù)字證書是否有效,以防止連接的是偽服務(wù)器,保證客戶端的網(wǎng)絡(luò)訪問安全。目前,客戶端為驗證服務(wù)器的數(shù)字證書是否有效,需在本地預(yù)安裝服務(wù)器所服務(wù)的網(wǎng)絡(luò)站點的校驗證書,比如用戶訪問12306購買火車票,需要預(yù)先通過其它安全途徑安裝12306網(wǎng)站的簽名根證書等。如果客戶端沒有提前安裝網(wǎng)絡(luò)站點的校驗證書,上述SSL會話是無法成功建立的。
[0005]隨著移動互聯(lián)的快速發(fā)展,各種應(yīng)用日漸豐富,如果客戶端每訪問一個網(wǎng)絡(luò)站點都需要預(yù)安裝該網(wǎng)絡(luò)站點的校驗證書以便與服務(wù)該網(wǎng)絡(luò)站點的服務(wù)器之間成功建立SSL會話,則當(dāng)客戶端預(yù)安裝的校驗證書達到一定數(shù)目后,客戶端本地的校驗證書存儲、管理都可能成為隱患,比如近期爆出的某國產(chǎn)PC廠商的安全漏洞:通過在PC上預(yù)裝軟件在PC本地授權(quán)一個證書,達到對SSL會話劫持的目的。
【發(fā)明內(nèi)容】
[0006]本申請?zhí)峁┝税踩捉幼謱覵SL會話建立方法和裝置,以節(jié)省了客戶端的本地證書管理成本,并防止安全漏洞。
[0007]本申請?zhí)峁┑募夹g(shù)方案包括:
[0008]—種安全套接字層SSL會話建立方法,該方法包括:
[0009]客戶端在與服務(wù)器Server建立SSL會話的過程中接收服務(wù)器發(fā)送的ServerHello報文,從所述Server Hello報文中解析出Server Hello報文攜帶的服務(wù)器數(shù)字證書;
[0010]客戶端通過與預(yù)先指定的證書驗證設(shè)備之間建立的通道請求所述證書驗證設(shè)備驗證所述服務(wù)器數(shù)字證書是否有效,并暫時中止所述SSL會話的建立過程;
[0011]客戶端通過所述通道接收證書驗證設(shè)備返回的驗證結(jié)果,在所述驗證結(jié)果為所述服務(wù)器數(shù)字證書有效時,繼續(xù)與所述服務(wù)器交互執(zhí)行所述SSL會話建立過程。
[0012]—種安全套接字層SSL會話建立方法,該方法應(yīng)用于證書驗證設(shè)備,證書驗證設(shè)備被預(yù)先指定用于在客戶端與服務(wù)器建立SSL會話過程中幫助客戶端驗證服務(wù)器的數(shù)字證書,證書驗證設(shè)備為獨立于客戶端的一個設(shè)備,該方法包括:
[0013]證書驗證設(shè)備接收客戶端發(fā)送的請求,所述請求攜帶客戶端從來自服務(wù)器Server的Server Hello報文中解析出的服務(wù)器數(shù)字證書;
[0014]證書驗證設(shè)備驗證服務(wù)器數(shù)字證書是否有效,將驗證結(jié)果返回給客戶端。
[0015]—種安全套接字層SSL會話建立裝置,該裝置應(yīng)用于客戶端,包括:
[0016]解析單元,用于在所述客戶端與服務(wù)器Server建立SSL會話的過程中接收服務(wù)器發(fā)送的Server Hello報文,從所述Server Hello報文中解析出Server Hello報文攜帶的服務(wù)器數(shù)字證書;
[0017]驗證請求單元,用于通過與預(yù)先指定的證書驗證設(shè)備之間建立的通道請求所述證書驗證設(shè)備驗證所述服務(wù)器數(shù)字證書是否有效,并暫時中止所述SSL會話的建立過程;
[0018]驗證結(jié)果處理單元,用于通過所述通道接收證書驗證設(shè)備返回的驗證結(jié)果,在所述驗證結(jié)果為所述服務(wù)器數(shù)字證書有效時,繼續(xù)與所述服務(wù)器交互執(zhí)行所述SSL會話建立過程。
[0019]—種安全套接字層SSL會話建立裝置,該裝置應(yīng)用于證書驗證設(shè)備,證書驗證設(shè)備被預(yù)先指定用于在客戶端與服務(wù)器建立SSL會話過程中幫助客戶端驗證服務(wù)器的數(shù)字證書,證書驗證設(shè)備為獨立于客戶端的一個設(shè)備,該裝置包括:
[0020]接收單元,用于接收客戶端發(fā)送的請求,所述請求攜帶客戶端從來自服務(wù)器Server的Server Hello報文中解析出的服務(wù)器數(shù)字證書;
[0021]驗證單元,用于驗證服務(wù)器數(shù)字證書是否有效,將驗證結(jié)果返回給客戶端。
[0022]由以上技術(shù)方案可以看出,本發(fā)明中,客戶端自身并不驗證服務(wù)器的數(shù)字證書是否有效,而是請求證書驗證設(shè)備驗證服務(wù)器數(shù)字證書是否有效,這就使得客戶端僅安裝唯一的一份證書即證書驗證設(shè)備的授權(quán)證書,不再安裝所有待訪問站點的校驗證書,這相比于現(xiàn)有客戶端安裝所有待訪問站點的校驗證書,節(jié)省了客戶端的本地證書管理成本,防止安全漏洞。
【附圖說明】
[0023]圖1示出了 SSL會話建立過程圖;
[0024]圖2為本發(fā)明提供的方法流程圖;
[0025]圖3為本發(fā)明提供的裝置結(jié)構(gòu)圖;
[0026]圖4為本發(fā)明提供的另一裝置結(jié)構(gòu)圖。
【具體實施方式】
[0027]為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面結(jié)合附圖和具體實施例對本發(fā)明進行詳細描述。
[0028]本發(fā)明提供的方法包括圖2所示的流程:
[0029]參見圖2,圖2為本發(fā)明提供的方法流程圖。如圖2所示,該流程可包括:
[0030]步驟201,客戶端在與服務(wù)器建立SSL會話的過程中接收服務(wù)器發(fā)送的ServerHello報文,從所述Server Hello報文中解析出Server Hello報文攜帶的服務(wù)器數(shù)字證書。
[0031]步驟202,客戶端通過與預(yù)先指定的證書驗證設(shè)備之間建立的通道請求所述證書驗證設(shè)備驗證服務(wù)器數(shù)字證書是否有效,并暫時中止所述SSL會話的建立過程。
[0032]本發(fā)明中,證書驗證設(shè)備被預(yù)先指定用于在客戶端與服務(wù)器建立SSL會話過程中幫助客戶端驗證服務(wù)器的數(shù)字證書,證書驗證設(shè)備為獨立于客戶端的一個設(shè)備,具體實現(xiàn)時,可為網(wǎng)絡(luò)中新增的一個設(shè)備,也可為網(wǎng)絡(luò)中除客戶端和所述服務(wù)器之外的其他設(shè)備中指定的一個設(shè)備,本發(fā)明并不具體限定。
[0033]具體實現(xiàn)時,本發(fā)明中,客戶端通過與預(yù)先指定的證書驗證設(shè)備之間建立的通道請求證書驗證設(shè)備驗證服務(wù)器數(shù)字證書是否有效之前,進一步包括:
[0034]檢查本地是否預(yù)先安裝證書驗證設(shè)備的授權(quán)證書,如果是,繼續(xù)執(zhí)行通過與預(yù)先指定的證書驗證設(shè)備之間的通道請求證書驗證設(shè)備驗證服務(wù)器數(shù)字證書是否有效。
[0035]當(dāng)然,作為本發(fā)明的一個實施例,客戶端如果檢查本地未預(yù)先安裝證書驗證設(shè)備的授權(quán)證書,則可按照現(xiàn)有流程處理,本發(fā)明并不詳述。
[0036]由步驟202可以看出,當(dāng)客戶端解析出服務(wù)器數(shù)字證書后,自身并不驗證該服務(wù)器數(shù)字證書是否有效,而是請求證書驗證設(shè)備驗證該服務(wù)器數(shù)字證書是否有效,這就使得客戶端僅安裝唯一的一份證書即證書驗證設(shè)備的授權(quán)證書,不再安裝所有待訪問站點的校驗證書,這相比于現(xiàn)有客戶端安裝所有待訪問站點的校驗證書,節(jié)省了客戶端的本地證書管理成本,并可實現(xiàn)對客戶端實施更高級別的安全策略,比如缺省情況下禁止客戶端本地軟件安裝其它證書,這樣可以有效防止一些惡意軟件私自授權(quán)證書的情況。
[0037]步驟203,證書驗證設(shè)備接收客戶端發(fā)送的請求,所述請求攜帶服務(wù)器數(shù)字證書,并驗證服務(wù)器數(shù)字證書是否有效,將驗證結(jié)果返回給客戶端。
[0038]這里,證書驗證設(shè)備可通過自己本地保存所有待訪問站點的校驗證書來驗證服務(wù)器數(shù)字證書是否有效,具體為:從本地保存的所有待訪問站點的校驗證書中查找服務(wù)器數(shù)字證書所屬站點的校驗證書,如果查找到,則驗證服務(wù)器數(shù)字證書有效,如果未查找到,則驗證服務(wù)器數(shù)字證書無效。
[0039]或者,本發(fā)明中,證書驗證設(shè)備也可采用其他驗證技術(shù)驗證服務(wù)器數(shù)字證書是否有效,這里的驗證方式類似現(xiàn)有驗證證書是否有效的方式類似,不再詳述。
[0040]可以看出,本發(fā)明中將原本由客戶端驗證服務(wù)