本發(fā)明涉及內(nèi)容分發(fā)網(wǎng)絡(luò)領(lǐng)域,特別是涉及一種CDN服務(wù)器及其與客戶端連接方法、私鑰服務(wù)器及系統(tǒng)。
背景技術(shù):
內(nèi)容分發(fā)網(wǎng)絡(luò)(Content Delivery Network,CDN),通過在網(wǎng)絡(luò)各處放置緩存服務(wù)器,在現(xiàn)有的互聯(lián)網(wǎng)基礎(chǔ)之上構(gòu)建一層智能虛擬網(wǎng)絡(luò),將網(wǎng)站的內(nèi)容發(fā)布到最接近用戶的網(wǎng)絡(luò)“邊緣”,使用戶可以就近取得所需的內(nèi)容,以緩解網(wǎng)絡(luò)擁擠的狀況,提高網(wǎng)站的響應(yīng)速度。
為了確保通信安全,CDN網(wǎng)絡(luò)中一般采用加密算法對傳輸?shù)臄?shù)據(jù)進(jìn)行加密和解密。其中,加密算法一般包括對稱加密算法和非對稱加密算法。對稱加密算法在加密和解密時使用的是同一個秘鑰,而非對稱加密算法需要兩個密鑰來進(jìn)行加密和解密,這兩個秘鑰中,一個是公開密鑰(public key,簡稱RSA公鑰),另一個是私有密鑰(private key,簡稱RSA私鑰)。
其中,非對稱加密算法中的RSA私鑰需要絕對的保密,不能外泄,而對于一些特殊的場景,如需要接入CDN服務(wù)的客戶端在與CDN服務(wù)器建立加密連接時,需要使用對應(yīng)的RSA私鑰信息方可與客戶端之間完成加密連接,此時,CDN服務(wù)器則必須獲取客戶的RSA私鑰信息,因此,請求接入CDN服務(wù)的客戶端在與CDN服務(wù)器建立加密連接時,存在著安全性差的問題。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例解決的問題是如何提高客戶端與CDN服務(wù)器之間建立加密連接的安全性。
為解決上述問題,本發(fā)明實施例提供了一種CDN服務(wù)器與客戶端連接方法,所述方法包括:當(dāng)與客戶端建立加密連接時,將所接收的客戶端發(fā)送的加密數(shù)據(jù)發(fā)送至對應(yīng)的私鑰服務(wù)器;所述加密數(shù)據(jù)為所述客戶端采用公鑰進(jìn)行加密得到;接收所述私鑰服務(wù)器采用對應(yīng)的私鑰對所述加密數(shù)據(jù)進(jìn)行解密得到的解密數(shù)據(jù);使用所述解密數(shù)據(jù)對與所述客戶端之間的交互數(shù)據(jù)進(jìn)行加密和解密。
可選地,所述將所接收的客戶端采用公鑰加密的數(shù)據(jù)發(fā)送至對應(yīng)的私鑰服務(wù)器,包括:采用異步非阻塞方式將所接收的客戶端采用公鑰加密的加密數(shù)據(jù)發(fā)送至對應(yīng)的私鑰服務(wù)器。
可選地,所述解密數(shù)據(jù)為共享秘密數(shù)據(jù)。
可選地,所述私鑰服務(wù)器中存儲有一個以上的客戶的私鑰信息。
本發(fā)明實施例還提供了一種CDN服務(wù)器與客戶端連接方法,所述方法包括:當(dāng)接收到CDN服務(wù)器發(fā)送的加密數(shù)據(jù)時,采用對應(yīng)的私鑰對所述加密數(shù)據(jù)進(jìn)行解密得到的解密數(shù)據(jù);所述加密數(shù)據(jù)為請求與CDN服務(wù)器建立加密連接的客戶端采用公鑰進(jìn)行加密得到;將所述解密數(shù)據(jù)發(fā)送至所述CDN服務(wù)器,以使得所述CDN服務(wù)器使用所述解密數(shù)據(jù)對與所述客戶端之間的交互數(shù)據(jù)進(jìn)行加密和解密。
本發(fā)明實施例還提供了一種CDN服務(wù)器,所述CDN服務(wù)器包括:第一發(fā)送單元,適于當(dāng)與客戶端建立加密連接時,將所接收的客戶端發(fā)送的加密數(shù)據(jù)發(fā)送至對應(yīng)的私鑰服務(wù)器;所述加密數(shù)據(jù)為所述客戶端采用公鑰進(jìn)行加密得到;接收單元,適于接收所述私鑰服務(wù)器采用對應(yīng)的私鑰對所述加密數(shù)據(jù)進(jìn)行解密得到的解密數(shù)據(jù);加解密單元,適于使用所述解密數(shù)據(jù)對與所述客戶端之間的交互數(shù)據(jù)進(jìn)行加密和解密。
可選地,所述發(fā)送單元,適于采用異步非阻塞方式將所接收的客戶端采用RSA公鑰加密的加密數(shù)據(jù)發(fā)送至對應(yīng)的私鑰服務(wù)器。
可選地,所述解密數(shù)據(jù)為共享秘密數(shù)據(jù)。
可選地,所述私鑰服務(wù)器中存儲有一個以上的客戶的私鑰信息。
本發(fā)明實施例還提供了一種私鑰服務(wù)器,所述私鑰服務(wù)器包括:解密單元,適于當(dāng)接收到CDN服務(wù)器發(fā)送的加密數(shù)據(jù)時,采用對應(yīng)的私鑰對所述加密數(shù)據(jù)進(jìn)行解密得到的解密數(shù)據(jù);所述加密數(shù)據(jù)為請求與CDN服務(wù)器建立加密連接的客戶端采用公鑰進(jìn)行加密得到;第二發(fā)送單元,適于將所述解密數(shù)據(jù)發(fā)送至所述CDN服務(wù)器,以使得所述CDN服務(wù)器使用所述解密數(shù)據(jù)對與所述客戶端之間的交互數(shù)據(jù)進(jìn)行加密和解密。
本發(fā)明實施例還提供了一種CDN系統(tǒng),所述CDN系統(tǒng)包括客戶端、上述的CDN服務(wù)器、上述的私鑰服務(wù)器和客戶源站;所述CDN服務(wù)器分別與所述客戶端和所述私鑰服務(wù)器耦接。
與現(xiàn)有技術(shù)相比,本發(fā)明的技術(shù)方案具有以下的優(yōu)點:
上述的方案,在與客戶端之間建立加密連接,且接收到的客戶端發(fā)送的采用公鑰加密的加密數(shù)據(jù)時,將所述加密數(shù)據(jù)發(fā)送至對應(yīng)的私鑰服務(wù)器進(jìn)行解密,并從所述私鑰服務(wù)器接收對應(yīng)的解密數(shù)據(jù),在不需要獲取對應(yīng)的客戶的私鑰的情況下,即可與客戶端之間建立加密連接,因而可以提高CDN服務(wù)器與客戶端之間建立加密連接的安全性。
附圖說明
圖1是本發(fā)明實施例中的一種CDN服務(wù)器與客戶端連接方法的流程圖;
圖2是本發(fā)明實施例中的另一種CDN服務(wù)器與客戶端連接方法的流程圖;
圖3是本發(fā)明實施例中的一種CDN系統(tǒng)的結(jié)構(gòu)示意圖;
圖4是本發(fā)明實施例中的一種CDN服務(wù)器與客戶端連接方法的信令流程圖;
圖5是本發(fā)明實施例中的一種CDN服務(wù)器的結(jié)構(gòu)示意圖;
圖6是本發(fā)明實施例中的一種私鑰服務(wù)器的結(jié)構(gòu)示意圖。
具體實施方式
為解決現(xiàn)有技術(shù)中存在的上述問題,本發(fā)明實施例采用的技術(shù)方案通過將所接收到的請求建立加密連接的客戶端發(fā)送的采用RSA公鑰加密的加密數(shù)據(jù)時,將所述加密數(shù)據(jù)發(fā)送至對應(yīng)的私鑰服務(wù)器進(jìn)行解密,并從所述私鑰服務(wù)器接收對應(yīng)的解密數(shù)據(jù),以與客戶端之間建立加密連接,可以提高CDN服務(wù)器與客戶端之間建立加密連接的安全性。
為使本發(fā)明的上述目的、特征和優(yōu)點能夠更為明顯易懂,下面結(jié)合附圖對本發(fā)明的具體實施例做詳細(xì)的說明。
圖1示出了本發(fā)明實施例中的一種CDN服務(wù)器與客戶端連接方法的流程圖。參見圖1,在具體實施中,本發(fā)明實施例中的CDN服務(wù)器與客戶端連接方法,可以包括如下的步驟:
步驟S101:當(dāng)與客戶端建立加密連接時,將所接收的客戶端發(fā)送的加密數(shù)據(jù)發(fā)送至對應(yīng)的私鑰服務(wù)器。
在具體實施中,所述加密數(shù)據(jù)為所述客戶端采用RSA公鑰進(jìn)行加密得到。
步驟S102:接收所述私鑰服務(wù)器采用對應(yīng)的私鑰對所述加密數(shù)據(jù)進(jìn)行解密得到的解密數(shù)據(jù)。
在具體實施中,所述私鑰服務(wù)器中存儲有與所述客戶端所使用的所述RSA公鑰對應(yīng)的RSA私鑰的信息,以對RSA公鑰加密的數(shù)據(jù)進(jìn)行解密。
步驟S103:使用所述解密數(shù)據(jù)對與所述客戶端之間的交互數(shù)據(jù)進(jìn)行加密和解密。
其中,所述解密數(shù)據(jù),也即CDN服務(wù)器與客戶端之間進(jìn)行數(shù)據(jù)交互所使用的共享秘密數(shù)據(jù),也即premaster數(shù)據(jù)。在具體實施中,可以采用隨機數(shù)作為premaster數(shù)據(jù)。
圖2示出了本發(fā)明實施例中的另一種CDN服務(wù)器與客戶端連接方法的流程。參見圖2,本發(fā)明實施例中的CDN服務(wù)器與客戶端連接方法可以包括:
步驟S201:當(dāng)接收到CDN服務(wù)器發(fā)送的加密數(shù)據(jù)時,采用對應(yīng)的RSA私鑰對所述加密數(shù)據(jù)進(jìn)行解密得到的解密數(shù)據(jù)。
在具體實施中,所述加密數(shù)據(jù)為請求與CDN服務(wù)器建立加密連接的客戶端采用RSA公鑰進(jìn)行加密得到。
步驟S202:將所述解密數(shù)據(jù)發(fā)送至所述CDN服務(wù)器,以使得所述CDN服務(wù)器使用所述解密數(shù)據(jù)對與所述客戶端之間的交互數(shù)據(jù)進(jìn)行加密和解密。
在具體實施中,私鑰服務(wù)器可以采用異步非阻塞的方式將所述解密數(shù)據(jù)發(fā)送至所述CDN服務(wù)器,以提高資源的利用效率。
下面將對本發(fā)明實施例中的CDN服務(wù)器與客戶端連接方法進(jìn)行詳細(xì)的描述。
為了便于理解,首先對本發(fā)明實施例中的CDN系統(tǒng)進(jìn)行介紹。
參見圖3,本發(fā)明實施例中的一種CDN系統(tǒng)可以包括客戶端301、一個以上的CDN服務(wù)器3021~302n和一個以上的私鑰服務(wù)器3031~303m。其中,CDN服務(wù)器3021~302n分別與客戶端301和私鑰服務(wù)器3031~303m耦接。
參見圖4,本發(fā)明實施例中的一種CDN服務(wù)器與客戶端連接方法,適于客戶端與CDN服務(wù)器之間建立加密連接,具體可以采用如下的步驟實現(xiàn):
步驟S401:客戶端將采用公鑰解密得到的加密數(shù)據(jù)發(fā)送至CDN服務(wù)器。
在具體實施中,客戶端在需要接入CDN網(wǎng)絡(luò),使用CDN網(wǎng)絡(luò)所提供的加速服務(wù)時,首先可以生成對應(yīng)的加密連接請求并發(fā)送至CDN服務(wù)器。其中,所述加密連接請求中包括采用相應(yīng)的RSA公鑰進(jìn)行加密得到的加密數(shù)據(jù)。
在本發(fā)明一實施例中,客戶端在向CDN服務(wù)器發(fā)送對應(yīng)的加密連接請求時,可以將對應(yīng)的加密連接請求信息采用事先與CDN服務(wù)器協(xié)商好的加密算法進(jìn)行相應(yīng)的加密處理,以提高數(shù)據(jù)傳輸?shù)陌踩?。其中,客戶端與CDN服務(wù)器協(xié)商確定的加密算法可以根據(jù)實際的需要進(jìn)行設(shè)置,本發(fā)明在此不做限制。
步驟S402:所述CDN服務(wù)器將所接收的加密數(shù)據(jù)發(fā)送至私鑰服務(wù)器。
在具體實施中,CDN服務(wù)器可以接收客戶端發(fā)送的加密連接請求,并通過對應(yīng)設(shè)置的接口從所接收的加密連接請求中解析出對應(yīng)的加密數(shù)據(jù)并發(fā)送至私鑰服務(wù)器。其中,CDN服務(wù)器可以采用異步非阻塞的方式將對應(yīng)的加密數(shù)據(jù)并發(fā)送至私鑰服務(wù)器,以提高資源的利用率。
在本發(fā)明一實施例中,為了提高數(shù)據(jù)傳輸?shù)陌踩?,CDN服務(wù)器和私鑰服務(wù)器之間的數(shù)據(jù)交互也采用雙方實現(xiàn)約定的加密算法進(jìn)行加密。
步驟S403:所述私鑰服務(wù)器采用對應(yīng)的私鑰對所接收的加密數(shù)據(jù)進(jìn)行解密得到對應(yīng)的解密數(shù)據(jù)并發(fā)送至所述CDN服務(wù)器。
在具體實施中,所述私鑰服務(wù)器中存儲有對應(yīng)的RSA私鑰的信息,當(dāng)接收到CDN服務(wù)器發(fā)送的加密數(shù)據(jù)時,私鑰服務(wù)器可以采用對應(yīng)的RSA私鑰對所接收的所述加密數(shù)據(jù)進(jìn)行解密,從而得到對應(yīng)的解密數(shù)據(jù)并發(fā)送至CDN服務(wù)器,以使得CDN服務(wù)器獲取對應(yīng)的解密數(shù)據(jù),或者稱為共享秘密(premaster)數(shù)據(jù)。
在具體實施中,私鑰服務(wù)器可以由客戶部署,也即相應(yīng)客戶的RSA私鑰信息僅為客戶所知曉,CDN網(wǎng)絡(luò)提供商并不知曉私鑰服務(wù)器中的RSA私鑰的信息,從而可以確保RSA私鑰信息的安全性。當(dāng)然根據(jù)實際的需要,也可以由CDN網(wǎng)絡(luò)提供商部署私鑰服務(wù)器,并提供對應(yīng)的接口接收由客戶提交自身的RSA私鑰信息并存儲,且提交至私鑰服務(wù)器中的客戶的私鑰信息也采取了相應(yīng)的手段進(jìn)行加密,以使得CDN服務(wù)器無法獲取客戶的私鑰信息,以對客戶的私鑰信息加以保護。
步驟S404:所述CDN服務(wù)器接收所述解密數(shù)據(jù)。
步驟S405:所述CDN服務(wù)器重新驅(qū)動與所述客戶端之間的握手流程。
在具體實施中,CDN服務(wù)器在接收到所述解密數(shù)據(jù)時,重新驅(qū)動與所述客戶端之間的握手流程,直至與客戶端的加密連接完成。具體地,CDN服務(wù)器在接收到所述解密數(shù)據(jù)時,與客戶端使用所述解密數(shù)據(jù)進(jìn)行后續(xù)的數(shù)據(jù)的加密和解密操作,直至本次的加密連接結(jié)束。
上述的方法對應(yīng)的流程采用表格進(jìn)行描述如表1所示。
表1
其中,“過程名稱”表明CDN服務(wù)器與客戶端的連接過程相應(yīng)的步驟的名稱,“說明”用于對相應(yīng)步驟進(jìn)行補充說明。
在本發(fā)明一實施例中,上述的CDN服務(wù)器與客戶端的連接過程,可以采用openssl的握手階段的狀態(tài)機完成。具體而言,通過為openssl的握手階段的狀態(tài)機添加一數(shù)據(jù)發(fā)送狀態(tài),當(dāng)接收到私鑰服務(wù)器發(fā)送的解密數(shù)據(jù)時,CDN服務(wù)器將所接收的解密數(shù)據(jù)代入openssl的握手階段的狀態(tài)機,從而驅(qū)動openssl的握手階段的狀態(tài)機繼續(xù)運行,直至CDN服務(wù)器與客戶端的加密連接完成。
上述對本發(fā)明實施例中的方法進(jìn)行了詳細(xì)的描述,下面將對上述的方法對應(yīng)的裝置做介紹。
圖5示出了本發(fā)明實施例中的一種CDN服務(wù)器的結(jié)構(gòu)。參見圖5,一種CDN服務(wù)器500可以包括第一發(fā)送單元501、接收單元502和加解密單元503,其中:
第一發(fā)送單元501,適于當(dāng)與客戶端建立加密連接時,將所接收的客戶端發(fā)送的加密數(shù)據(jù)發(fā)送至對應(yīng)的私鑰服務(wù)器;所述加密數(shù)據(jù)為所述客戶端采用RSA公鑰進(jìn)行加密得到。
接收單元502,適于接收所述私鑰服務(wù)器采用對應(yīng)的RSA私鑰對所述加密數(shù)據(jù)進(jìn)行解密得到的解密數(shù)據(jù)。其中,所述解密數(shù)據(jù)為共享秘密數(shù)據(jù)。
加解密單元503,適于使用所述解密數(shù)據(jù)對與所述客戶端之間的交互數(shù)據(jù)進(jìn)行加密和解密。
在本發(fā)明一實施例中,所述第一發(fā)送單元501,適于采用異步非阻塞方式將所接收的客戶端采用RSA公鑰加密的加密數(shù)據(jù)發(fā)送至對應(yīng)的私鑰服務(wù)器。
在具體實施中,所述私鑰服務(wù)器中存儲有一個以上的客戶的RSA私鑰信息。
圖6示出了本發(fā)明實施例中的一種私鑰服務(wù)器的結(jié)構(gòu)。參見圖6,所述私鑰服務(wù)器600可以包括解密單元601和第二發(fā)送單元602,其中:
解密單元601,適于當(dāng)接收到CDN服務(wù)器發(fā)送的加密數(shù)據(jù)時,采用對應(yīng)的RSA私鑰對所述加密數(shù)據(jù)進(jìn)行解密得到的解密數(shù)據(jù);所述加密數(shù)據(jù)為請求與CDN服務(wù)器建立加密連接的客戶端采用RSA公鑰進(jìn)行加密得到。
第二發(fā)送單元602,適于將所述解密數(shù)據(jù)發(fā)送至所述CDN服務(wù)器,以使得所述CDN服務(wù)器使用所述解密數(shù)據(jù)對與所述客戶端之間的交互數(shù)據(jù)進(jìn)行加密和解密。
采用本發(fā)明實施例中的上述方案,在接收到請求建立加密連接的客戶端發(fā)送的采用RSA公鑰加密的加密數(shù)據(jù)時,通過將所述加密數(shù)據(jù)發(fā)送至對應(yīng)的私鑰服務(wù)器進(jìn)行解密,并從所述私鑰服務(wù)器接收對應(yīng)的解密數(shù)據(jù),從而可以使用所述解密數(shù)據(jù)與客戶端之間建立加密連接,在不需要獲取對應(yīng)的客戶的RSA私鑰的情況下,即可與客戶端之間建立加密連接,因而可以提高CDN服務(wù)器與客戶端之間建立加密連接的安全性和便利性。
本領(lǐng)域普通技術(shù)人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于計算機可讀存儲介質(zhì)中,存儲介質(zhì)可以包括:ROM、RAM、磁盤或光盤等。
以上對本發(fā)明實施例的方法及系統(tǒng)做了詳細(xì)的介紹,本發(fā)明并不限于此。任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),均可作各種更動與修改,因此本發(fā)明的保護范圍應(yīng)當(dāng)以權(quán)利要求所限定的范圍為準(zhǔn)。