本發(fā)明屬于通信技術(shù)領(lǐng)域,尤其涉及一種會(huì)話密鑰的生成方法及裝置。
背景技術(shù):
目前,在各種通信系統(tǒng)中,如何實(shí)現(xiàn)用戶之間交互信息的保護(hù),保證通信內(nèi)容的安全和保密是需要重點(diǎn)考慮的。具體而言,由服務(wù)器負(fù)責(zé)生成會(huì)話密鑰(session key),該會(huì)話密鑰為一個(gè)通信會(huì)話加密的密鑰,又稱對(duì)稱密鑰,同一密鑰用于加密和解密。在由服務(wù)器端控制的會(huì)話密鑰管理中,由于會(huì)話密鑰總數(shù)有限,為了保護(hù)使會(huì)話密鑰不被拖庫(kù),服務(wù)器會(huì)對(duì)同一個(gè)客戶端下發(fā)特定的會(huì)話密鑰。例如,將客戶端與會(huì)話密鑰的對(duì)應(yīng)關(guān)系保存起來(lái),這樣在接收到會(huì)話密鑰請(qǐng)求時(shí),通過(guò)保存的對(duì)應(yīng)關(guān)系查找已分配的值,得到對(duì)應(yīng)的會(huì)話密鑰,從而保證同一客戶端多次請(qǐng)求獲得的是同一個(gè)會(huì)話密鑰。
但是由于現(xiàn)有的會(huì)話密鑰分配需要依賴存儲(chǔ)服務(wù),即需要依賴服務(wù)器對(duì)客戶端與會(huì)話密鑰對(duì)應(yīng)關(guān)系的存儲(chǔ),并且,當(dāng)會(huì)話密鑰數(shù)據(jù)庫(kù)服務(wù)不可訪問(wèn)時(shí),將導(dǎo)致鑒權(quán)流程無(wú)法進(jìn)行,因此對(duì)服務(wù)器的穩(wěn)定性要求高、存儲(chǔ)空間消耗較大。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種會(huì)話密鑰的生成方法及裝置,旨在降低對(duì)服務(wù)器的穩(wěn)定性要求,減少存儲(chǔ)空間消耗。
為解決上述技術(shù)問(wèn)題,本發(fā)明實(shí)施例提供以下技術(shù)方案:
一種會(huì)話密鑰的生成方法,其中包括:
接收客戶端發(fā)送的會(huì)話密鑰的請(qǐng)求指示;
根據(jù)所述請(qǐng)求指示,獲取所述客戶端對(duì)應(yīng)的標(biāo)識(shí)信息;
通過(guò)散列函數(shù),對(duì)所述標(biāo)識(shí)信息進(jìn)行計(jì)算,生成密鑰散列值;
獲取預(yù)設(shè)的會(huì)話密鑰總數(shù)量,并利用所述密鑰散列值對(duì)所述會(huì)話密鑰總數(shù)量進(jìn)行取模運(yùn)算,得到運(yùn)算結(jié)果;
基于所述運(yùn)算結(jié)果,生成所述客戶端相應(yīng)的會(huì)話密鑰。
為解決上述技術(shù)問(wèn)題,本發(fā)明實(shí)施例還提供以下技術(shù)方案:
一種會(huì)話密鑰的生成裝置,其中包括:
第一接收單元,用于接收客戶端發(fā)送的會(huì)話密鑰的請(qǐng)求指示;
獲取單元,用于根據(jù)所述請(qǐng)求指示,獲取所述客戶端對(duì)應(yīng)的標(biāo)識(shí)信息;
計(jì)算單元,用于通過(guò)散列函數(shù),對(duì)所述標(biāo)識(shí)信息進(jìn)行計(jì)算,生成密鑰散列值,獲取預(yù)設(shè)的會(huì)話密鑰總數(shù)量,并利用所述密鑰散列值,對(duì)所述會(huì)話密鑰總數(shù)量進(jìn)行取模運(yùn)算,得到運(yùn)算結(jié)果;
生成單元,用于基于所述運(yùn)算結(jié)果,生成所述客戶端相應(yīng)的會(huì)話密鑰。
相對(duì)于現(xiàn)有技術(shù),本發(fā)明實(shí)施例,在接收到客戶端發(fā)送的會(huì)話密鑰的請(qǐng)求指示時(shí),獲取該客戶端對(duì)應(yīng)的標(biāo)識(shí)信息,然后通過(guò)散列函數(shù),對(duì)獲取到的標(biāo)識(shí)信息進(jìn)行實(shí)時(shí)計(jì)算,得到密鑰散列值,其后結(jié)合預(yù)設(shè)的會(huì)話密鑰總數(shù)量進(jìn)行進(jìn)一步計(jì)算,生成客戶端相應(yīng)的會(huì)話密鑰,并向該客戶端發(fā)送相應(yīng)的會(huì)話密鑰;即本實(shí)施例在接收到會(huì)話密鑰的請(qǐng)求指示時(shí),實(shí)時(shí)根據(jù)客戶端對(duì)應(yīng)的標(biāo)識(shí)信息進(jìn)行一次散列計(jì)算來(lái)生成會(huì)話密鑰,不需要依賴服務(wù)器對(duì)客戶端與會(huì)話密鑰對(duì)應(yīng)關(guān)系的存儲(chǔ),從而保證鑒權(quán)流程正常進(jìn)行,降低對(duì)服務(wù)器的穩(wěn)定性要求,以及減少存儲(chǔ)空間消耗。
附圖說(shuō)明
下面結(jié)合附圖,通過(guò)對(duì)本發(fā)明的具體實(shí)施方式詳細(xì)描述,將使本發(fā)明的技術(shù)方案及其它有益效果顯而易見。
圖1a是本發(fā)明實(shí)施例提供的會(huì)話密鑰的生成方法的場(chǎng)景示意圖;
圖1b是本發(fā)明實(shí)施例提供的會(huì)話密鑰的生成方法的流程示意圖;
圖2a為本發(fā)明實(shí)施例提供的會(huì)話密鑰的生成方法的另一流程示意圖;
圖2b為本發(fā)明實(shí)施例提供的會(huì)話密鑰加解密的流程示意圖;
圖3a為本發(fā)明實(shí)施例提供的會(huì)話密鑰的生成裝置的結(jié)構(gòu)示意圖;
圖3b為本發(fā)明實(shí)施例提供的會(huì)話密鑰的生成裝置的另一結(jié)構(gòu)示意圖;
圖4為本發(fā)明實(shí)施例提供的服務(wù)器的結(jié)構(gòu)示意圖。
具體實(shí)施方式
請(qǐng)參照?qǐng)D式,其中相同的組件符號(hào)代表相同的組件,本發(fā)明的原理是以實(shí)施在一適當(dāng)?shù)倪\(yùn)算環(huán)境中來(lái)舉例說(shuō)明。以下的說(shuō)明是基于所例示的本發(fā)明具體實(shí)施例,其不應(yīng)被視為限制本發(fā)明未在此詳述的其它具體實(shí)施例。
在以下的說(shuō)明中,本發(fā)明的具體實(shí)施例將參考由一部或多部計(jì)算機(jī)所執(zhí)行的步驟及符號(hào)來(lái)說(shuō)明,除非另有述明。因此,這些步驟及操作將有數(shù)次提到由計(jì)算機(jī)執(zhí)行,本文所指的計(jì)算機(jī)執(zhí)行包括了由代表了以一結(jié)構(gòu)化型式中的數(shù)據(jù)的電子信號(hào)的計(jì)算機(jī)處理單元的操作。此操作轉(zhuǎn)換該數(shù)據(jù)或?qū)⑵渚S持在該計(jì)算機(jī)的內(nèi)存系統(tǒng)中的位置處,其可重新配置或另外以本領(lǐng)域測(cè)試人員所熟知的方式來(lái)改變?cè)撚?jì)算機(jī)的運(yùn)作。該數(shù)據(jù)所維持的數(shù)據(jù)結(jié)構(gòu)為該內(nèi)存的實(shí)體位置,其具有由該數(shù)據(jù)格式所定義的特定特性。但是,本發(fā)明原理以上述文字來(lái)說(shuō)明,其并不代表為一種限制,本領(lǐng)域測(cè)試人員將可了解到以下所述的多種步驟及操作亦可實(shí)施在硬件當(dāng)中。
本文所使用的術(shù)語(yǔ)「模塊」可看做為在該運(yùn)算系統(tǒng)上執(zhí)行的軟件對(duì)象。本文所述的不同組件、模塊、引擎及服務(wù)可看做為在該運(yùn)算系統(tǒng)上的實(shí)施對(duì)象。而本文所述的裝置及方法優(yōu)選的以軟件的方式進(jìn)行實(shí)施,當(dāng)然也可在硬件上進(jìn)行實(shí)施,均在本發(fā)明保護(hù)范圍之內(nèi)。
本發(fā)明實(shí)施例提供一種會(huì)話密鑰的生成方法及裝置。
參見圖1a,該圖為本發(fā)明實(shí)施例所提供的會(huì)話密鑰的生成方法的場(chǎng)景示意圖,該場(chǎng)景中可以包括會(huì)話密鑰的生成裝置,該會(huì)話密鑰的生成裝置具體可以集成在服務(wù)器等網(wǎng)絡(luò)設(shè)備中,所述服務(wù)器可以由若干臺(tái)服務(wù)器組成的服務(wù)器集群,或者是一個(gè)云計(jì)算服務(wù)中心。該會(huì)話密鑰的生成裝置,主要用于接收客戶端發(fā)送的會(huì)話密鑰的請(qǐng)求指示,然后,根據(jù)所述請(qǐng)求指示,獲取該客戶端對(duì)應(yīng)的標(biāo)識(shí)信息;其后,通過(guò)散列函數(shù),對(duì)標(biāo)識(shí)信息進(jìn)行計(jì)算,如,通過(guò)散列計(jì)算生成密鑰散列值,并利用該密鑰散列值對(duì)預(yù)設(shè)的會(huì)話密鑰總數(shù)量進(jìn)行取模運(yùn)算,得到運(yùn)算結(jié)果,最后基于該運(yùn)算結(jié)果,生成該客戶端相應(yīng)的會(huì)話密鑰,等等。
此外,該場(chǎng)景中還可以包括多個(gè)客戶端,其中客戶端可以向會(huì)話密鑰的生成裝置發(fā)送會(huì)話密鑰的請(qǐng)求指示,并接收會(huì)話密鑰的生成裝置基于請(qǐng)求指示生成的會(huì)話密鑰,從而客戶端可以通過(guò)該會(huì)話密鑰與業(yè)務(wù)服務(wù)側(cè)進(jìn)行數(shù)據(jù)傳輸,等等。
以下將分別進(jìn)行詳細(xì)說(shuō)明。
在本實(shí)施例中,將從會(huì)話密鑰的生成裝置的角度進(jìn)行描述,該資源調(diào)度裝置具體可以集成在服務(wù)器或網(wǎng)關(guān)等網(wǎng)絡(luò)設(shè)備中。
一種會(huì)話密鑰的生成方法,包括:接收客戶端發(fā)送的會(huì)話密鑰的請(qǐng)求指示;根據(jù)所述請(qǐng)求指示,獲取所述客戶端對(duì)應(yīng)的標(biāo)識(shí)信息;通過(guò)散列函數(shù),對(duì)所述標(biāo)識(shí)信息進(jìn)行計(jì)算,生成密鑰散列值;獲取預(yù)設(shè)的會(huì)話密鑰總數(shù)量,并利用所述密鑰散列值對(duì)所述會(huì)話密鑰總數(shù)量進(jìn)行取模運(yùn)算,得到運(yùn)算結(jié)果;基于所述運(yùn)算結(jié)果,生成所述客戶端相應(yīng)的會(huì)話密鑰。
請(qǐng)參閱圖1b,圖1b是本發(fā)明實(shí)施例提供的會(huì)話密鑰的生成方法的流程示意圖。所述方法包括:
在步驟S101中,接收客戶端發(fā)送的會(huì)話密鑰的請(qǐng)求指示。
可以理解的是,會(huì)話密鑰(session key)是保證用戶跟其它計(jì)算機(jī)或者兩臺(tái)計(jì)算機(jī)之間安全通信會(huì)話而隨機(jī)產(chǎn)生的加密和解密密鑰。會(huì)話密鑰由服務(wù)器生成以及下發(fā),以使客戶端通過(guò)會(huì)話密鑰與業(yè)務(wù)服務(wù)側(cè)進(jìn)行數(shù)據(jù)傳輸。
進(jìn)一步的,在會(huì)話密鑰的生成裝置接收客戶端發(fā)送的會(huì)話密鑰的請(qǐng)求指示之前,還可以包括:接收客戶端發(fā)送的鑒權(quán)請(qǐng)求。
基于此,接收客戶端發(fā)送的會(huì)話密鑰的請(qǐng)求指示可以包括:當(dāng)根據(jù)所述鑒權(quán)請(qǐng)求確定公鑰加密算法(RSA,Rivest Shamir Adleman)私鑰解密成功時(shí),接收所述客戶端發(fā)送的會(huì)話密鑰的請(qǐng)求指示。
在步驟S102中,根據(jù)所述請(qǐng)求指示,獲取所述客戶端對(duì)應(yīng)的標(biāo)識(shí)信息。
本實(shí)施例中,所述客戶端對(duì)應(yīng)的標(biāo)識(shí)信息可以具體包括網(wǎng)絡(luò)協(xié)議(IP,Internet Protocol)地址、全局唯一標(biāo)識(shí)符(GUID,Globally Unique Identifier)等信息中任一或兩個(gè)以上組合。
其中,IP地址是指IP協(xié)議中給因特網(wǎng)上的每臺(tái)計(jì)算機(jī)和其它設(shè)備都規(guī)定的一個(gè)唯一的地址。由于有這種唯一的地址,才保證了服務(wù)器能夠高效而且方便地從多臺(tái)計(jì)算機(jī)中確定所需的客戶端。
全局唯一標(biāo)識(shí)符GUID是一種由算法生成的二進(jìn)制長(zhǎng)度為128位的數(shù)字標(biāo)識(shí)符。GUID主要用于在擁有多個(gè)節(jié)點(diǎn)、多臺(tái)計(jì)算機(jī)的網(wǎng)絡(luò)或系統(tǒng)中。
在步驟S103中,通過(guò)散列函數(shù),對(duì)所述標(biāo)識(shí)信息進(jìn)行計(jì)算,生成密鑰散列值。
可以理解的是,為了保證同一個(gè)客戶端獲得的會(huì)話密鑰不變,可以選取不容易變化的元素作為客戶端的標(biāo)識(shí)信息,從而可以確定客戶端的唯一標(biāo)志。進(jìn)而,會(huì)話密鑰的生成裝置可以根據(jù)該標(biāo)識(shí)信息進(jìn)行計(jì)算,生成相應(yīng)的會(huì)話密鑰。
其中,散列函數(shù)(hash function)是一種從任何一種數(shù)據(jù)中創(chuàng)建小的數(shù)字“指紋”的方法。散列函數(shù)把消息或數(shù)據(jù)壓縮成摘要,使得數(shù)據(jù)量變小,將數(shù)據(jù)的格式固定下來(lái)。該函數(shù)將數(shù)據(jù)打亂混合,重新創(chuàng)建一個(gè)叫做散列值(hash values,hash codes,hash sums,或hashes)的指紋。散列值通常用來(lái)代表一個(gè)短的隨機(jī)字母和數(shù)字組成的字符串。
在步驟S104中,獲取預(yù)設(shè)的會(huì)話密鑰總數(shù)量,并利用所述密鑰散列值對(duì)所述會(huì)話密鑰總數(shù)量進(jìn)行取模運(yùn)算,得到運(yùn)算結(jié)果。
在步驟S105中,基于所述運(yùn)算結(jié)果,生成所述客戶端相應(yīng)的會(huì)話密鑰。
其中,所述步驟S104與步驟S105可具體包括:
比如,會(huì)話密鑰的生成裝置可以首先通過(guò)散列函數(shù),對(duì)標(biāo)識(shí)信息進(jìn)行計(jì)算,生成密鑰散列值,然后獲取預(yù)設(shè)的會(huì)話密鑰總數(shù)量,并利用密鑰散列值,對(duì)會(huì)話密鑰總數(shù)量進(jìn)行取模運(yùn)算,得到運(yùn)算結(jié)果;最后基于運(yùn)算結(jié)果,確定出相應(yīng)的會(huì)話密鑰。
也就是說(shuō),會(huì)話密鑰的生成裝置對(duì)所述標(biāo)識(shí)信息進(jìn)行一次散列計(jì)算,得到密鑰散列值,進(jìn)而根據(jù)預(yù)設(shè)的會(huì)話密鑰總數(shù)量以及密鑰散列值,對(duì)會(huì)話密鑰總數(shù)量進(jìn)行取模運(yùn)算,從而根據(jù)取模運(yùn)算的結(jié)果確定出會(huì)話密鑰。
比如,散列計(jì)算后得到密鑰散列值為“201”,預(yù)設(shè)的會(huì)話密鑰總數(shù)量為“100”,對(duì)該密鑰散列值“201”進(jìn)行取模運(yùn)算,得到運(yùn)算結(jié)果為“1”;然后根據(jù)預(yù)先存儲(chǔ)的會(huì)話密鑰集合,找到標(biāo)識(shí)號(hào)為“1”相應(yīng)的會(huì)話密鑰,從而將該會(huì)話密鑰確定為當(dāng)前客戶端相應(yīng)的會(huì)話密鑰。
可選的,由于所述標(biāo)識(shí)信息可以具體包括網(wǎng)絡(luò)協(xié)議IP地址、全局唯一標(biāo)識(shí)符GUID,因此會(huì)話密鑰的生成裝置可以通過(guò)散列函數(shù),對(duì)所述網(wǎng)絡(luò)協(xié)議地址以及全局唯一標(biāo)識(shí)符進(jìn)行計(jì)算,生成密鑰散列值。
可具體的,會(huì)話密鑰的生成裝置可以根據(jù)這兩個(gè)元素確定客戶端的唯一標(biāo)志,如根據(jù)公式“HashCode=HashFunction(IP+GUID)”生成密鑰散列值,從而確定唯一的會(huì)話密鑰。
可以理解的是,這樣同一個(gè)客戶端在不同的鑒權(quán)節(jié)點(diǎn)和不同的請(qǐng)求中,通過(guò)使用散列函數(shù)可以使同一個(gè)客戶端獲得的會(huì)話密鑰收斂,即密鑰散列值(HashCode)是確定唯一的,從而可以確保會(huì)話密鑰一致,同時(shí)可以保證服務(wù)器不被拖庫(kù)。
進(jìn)一步的,在會(huì)話密鑰的生成裝置確定出客戶端相應(yīng)的會(huì)話密鑰后,向該客戶端發(fā)送會(huì)話密鑰,并在向所述客戶端發(fā)送所述會(huì)話密鑰之后,向所述客戶端返回鑒權(quán)成功的消息,即鑒權(quán)流程結(jié)束。
可選的,在客戶端接收到該會(huì)話密鑰后,客戶端會(huì)利用該會(huì)話密鑰請(qǐng)求加解密,以完成與業(yè)務(wù)服務(wù)側(cè)之間的數(shù)據(jù)傳輸。比如,該會(huì)話密鑰應(yīng)用于電腦管家接入服務(wù)協(xié)議加固,即在接入服務(wù)原有協(xié)議上增加安全加密層,如客戶端業(yè)務(wù)層將請(qǐng)求明文數(shù)據(jù)發(fā)送至客戶端協(xié)議加固模塊,利用會(huì)話密鑰進(jìn)行加密處理,加密后由接入服務(wù)協(xié)議加固模塊利用會(huì)話密鑰對(duì)其進(jìn)行解密處理,并將解密后數(shù)據(jù)包發(fā)送至業(yè)務(wù)服務(wù)側(cè)進(jìn)行處理,等等。
可選的,在接收客戶端發(fā)送的鑒權(quán)請(qǐng)求之后,還可以包括:當(dāng)根據(jù)所述鑒權(quán)請(qǐng)求確定公鑰加密算法私鑰(即RSA私鑰)解密失敗時(shí),向所述客戶端返回鑒權(quán)失敗的消息。
由上述可知,本實(shí)施例提供的會(huì)話密鑰的生成方法,在接收到客戶端發(fā)送的會(huì)話密鑰的請(qǐng)求指示時(shí),獲取該客戶端對(duì)應(yīng)的標(biāo)識(shí)信息,然后通過(guò)散列函數(shù),對(duì)獲取到的標(biāo)識(shí)信息進(jìn)行實(shí)時(shí)計(jì)算,得到密鑰散列值,其后結(jié)合預(yù)設(shè)的會(huì)話密鑰總數(shù)量進(jìn)行進(jìn)一步計(jì)算,生成客戶端相應(yīng)的會(huì)話密鑰,并向該客戶端發(fā)送相應(yīng)的會(huì)話密鑰;即本實(shí)施例在接收到會(huì)話密鑰的請(qǐng)求指示時(shí),實(shí)時(shí)根據(jù)客戶端對(duì)應(yīng)的標(biāo)識(shí)信息進(jìn)行一次散列計(jì)算來(lái)生成會(huì)話密鑰,不需要依賴服務(wù)器對(duì)客戶端與會(huì)話密鑰對(duì)應(yīng)關(guān)系的存儲(chǔ),從而保證鑒權(quán)流程正常進(jìn)行,降低對(duì)服務(wù)器的穩(wěn)定性要求,以及減少存儲(chǔ)空間消耗。
根據(jù)上述實(shí)施例所描述的方法,以下將舉例作進(jìn)一步詳細(xì)說(shuō)明。
首先,為各個(gè)客戶端建立一個(gè)鑒權(quán)服務(wù)器,該鑒權(quán)服務(wù)器主要用于對(duì)客戶端進(jìn)行鑒權(quán),并下發(fā)會(huì)話密鑰(session key)。其次,在所述鑒權(quán)服務(wù)器中設(shè)置多個(gè)會(huì)話密鑰,以根據(jù)不同的客戶端下發(fā)不同會(huì)話密鑰。在由該鑒權(quán)服務(wù)器控制的會(huì)話密鑰管理中,由于會(huì)話密鑰總數(shù)有限,因此鑒權(quán)服務(wù)器需要對(duì)同一個(gè)客戶端下發(fā)特定的會(huì)話密鑰。以下將進(jìn)行詳細(xì)說(shuō)明。
請(qǐng)參閱圖2a,圖2a為本發(fā)明實(shí)施例提供的會(huì)話密鑰的生成方法的流程示意圖。所述方法包括:
在步驟S201中,判斷公鑰加密算法RSA私鑰解密是否成功。
比如,客戶端A向鑒權(quán)服務(wù)器發(fā)送一鑒權(quán)請(qǐng)求,鑒權(quán)服務(wù)器接收到到該鑒權(quán)請(qǐng)求后判斷RSA私鑰解密是否成功,若成功,則執(zhí)行步驟S202,若失敗,則執(zhí)行步驟S207。
其中,RSA算法是一種非對(duì)稱密碼算法,所謂非對(duì)稱,就是指該算法需要一對(duì)密鑰,使用其中一個(gè)加密,則需要用另一個(gè)才能解密。當(dāng)鑒權(quán)服務(wù)器對(duì)RSA私鑰解密成功,則認(rèn)為客戶端身份鑒權(quán)成功,并為該客戶端準(zhǔn)備和下發(fā)會(huì)話密鑰。
在步驟S202中,接收客戶端發(fā)送的會(huì)話密鑰的請(qǐng)求指示。
在步驟S203中,獲取所述客戶端的網(wǎng)絡(luò)協(xié)議IP地址以及全局唯一標(biāo)識(shí)符GUID。
其中,步驟S202以及步驟S203可具體包括:
比如,在鑒權(quán)服務(wù)器鑒權(quán)成功后,接收到客戶端A發(fā)送的請(qǐng)求下發(fā)會(huì)話密鑰的指示消息,其中該會(huì)話密鑰是保證用戶跟其它計(jì)算機(jī)或者兩臺(tái)計(jì)算機(jī)之間安全通信會(huì)話而隨機(jī)產(chǎn)生的加密和解密密鑰,如會(huì)話密鑰應(yīng)用于電腦管家接入服務(wù)協(xié)議加固,等等。
進(jìn)一步的,在鑒權(quán)服務(wù)器鑒權(quán)成功后,鑒權(quán)服務(wù)器提取該客戶端的網(wǎng)絡(luò)協(xié)議IP地址以及全局唯一標(biāo)識(shí)符GUID,以根據(jù)該IP地址以及GUID生成該客戶端相應(yīng)的會(huì)話密鑰。
可以理解的是,在鑒權(quán)服務(wù)器鑒權(quán)成功后,鑒權(quán)服務(wù)器可以在接收到客戶端發(fā)送的會(huì)話密鑰的請(qǐng)求指示后,再獲取客戶端的IP地址以及GUID,也可以先提取客戶端的IP地址以及GUID,在接收到客戶端發(fā)送的會(huì)話密鑰的請(qǐng)求指示時(shí)進(jìn)行調(diào)用,此處不作具體限定。
在步驟S204中,通過(guò)散列函數(shù)HashCode=HashFunction(IP+GUID),得到密鑰散列值HashCode。
在步驟S205中,根據(jù)密鑰散列值HashCode對(duì)會(huì)話密鑰總數(shù)量進(jìn)行取模運(yùn)算,獲得會(huì)話密鑰。
其中,步驟S204以及步驟S205可具體包括:
為了同一個(gè)客戶端獲得的會(huì)話密鑰不變,鑒權(quán)服務(wù)器需要確定客戶端的唯一標(biāo)志,本發(fā)明選取了兩個(gè)不易變化的元素:IP和GUID,采用以下公式:HashCode=HashFunction(IP+GUID)生成對(duì)應(yīng)的密鑰散列值HashCode。
比如,由于IP和GUID都可以當(dāng)作字符串,因此可優(yōu)先選擇乘法散列函數(shù)方法來(lái)計(jì)算,其中偽代碼可具體如下:
其中,x表示要計(jì)算HashCode的字符串,此處指的是IP+GUID組成的字符串;a、p、INITIAL_VALUE是可以選擇的參數(shù),主要用來(lái)解決hash沖突的情況。在一些要求不高的場(chǎng)景中,參數(shù)p可以不要;a和INITIAL_VALUE可以根據(jù)具體場(chǎng)景來(lái)設(shè)定,如INITIAL_VALUE設(shè)置為5381,a可以設(shè)置為33,INITIAL_VALUE設(shè)置為0,a可以設(shè)置為5或31,等等
比如,可具體的,IP為“127.0.0.1”,GUID為“aefd817adef889aefdaaaa”,由于IP和GUID是對(duì)應(yīng)的x,因此,此處x為字符串“127.0.0.1aefd817adef889aefdaaaa”。
進(jìn)一步的,根據(jù)上述偽代碼計(jì)算出密鑰散列值HashCode后,根據(jù)該密鑰散列值HashCode,對(duì)會(huì)話密鑰總數(shù)量進(jìn)行取模運(yùn)算,即對(duì)會(huì)話密鑰總數(shù)量求模,得到的余數(shù)就是指示第幾個(gè)會(huì)話密鑰。
比如,得到密鑰散列值為“201”,預(yù)設(shè)的會(huì)話密鑰總數(shù)量為“100”,對(duì)該密鑰散列值“201”進(jìn)行取模運(yùn)算,得到運(yùn)算結(jié)果為“1”;然后根據(jù)預(yù)先存儲(chǔ)的會(huì)話密鑰集合,找到標(biāo)識(shí)號(hào)(或者序列號(hào))為“1”的相應(yīng)的會(huì)話密鑰,從而將該會(huì)話密鑰確定為當(dāng)前客戶端相應(yīng)的會(huì)話密鑰。
這樣同一個(gè)客戶端在不同的鑒權(quán)節(jié)點(diǎn)和不同的請(qǐng)求中,通過(guò)使用散列函數(shù)可以使同一個(gè)客戶端獲得的會(huì)話密鑰收斂,即密鑰散列值(HashCode)是確定唯一的,從而可以確保會(huì)話密鑰一致,同時(shí)可以保證鑒權(quán)服務(wù)器不被拖庫(kù)。
在步驟S206中,向客戶端發(fā)送所述會(huì)話密鑰,并向所述客戶端返回鑒權(quán)成功的消息。
在鑒權(quán)服務(wù)器確定出客戶端相應(yīng)的會(huì)話密鑰后,會(huì)向該客戶端發(fā)送會(huì)話密鑰,并在向所述客戶端發(fā)送所述會(huì)話密鑰之后,向所述客戶端返回鑒權(quán)成功的消息,即鑒權(quán)流程結(jié)束。
在步驟S207中,向所述客戶端返回鑒權(quán)失敗的消息。
容易想到的是,在客戶端接收到該會(huì)話密鑰后,客戶端會(huì)利用該會(huì)話密鑰請(qǐng)求加解密,以完成與業(yè)務(wù)服務(wù)側(cè)之間的數(shù)據(jù)傳輸。比如,該會(huì)話密鑰應(yīng)用于電腦管家接入服務(wù)協(xié)議加固,即在接入服務(wù)原有協(xié)議上增加安全加密層,可參考圖2b,為客戶端請(qǐng)求加解密的流程示意。
比如,客戶端業(yè)務(wù)層可以將請(qǐng)求明文數(shù)據(jù)發(fā)送至客戶端協(xié)議加固模塊,客戶端協(xié)議加固模塊利用會(huì)話密鑰進(jìn)行加密處理,加密后由接入服務(wù)協(xié)議加固模塊利用會(huì)話密鑰對(duì)其進(jìn)行解密處理,并將解密后數(shù)據(jù)包發(fā)送至業(yè)務(wù)服務(wù)側(cè)進(jìn)行處理;相反的,業(yè)務(wù)服務(wù)側(cè)也可以根據(jù)該會(huì)話密鑰對(duì)明文數(shù)據(jù)進(jìn)行加解密,以相應(yīng)客戶端業(yè)務(wù)層的請(qǐng)求,此處不作具體描述。
在某些實(shí)施方式中,也可以在客戶端與業(yè)務(wù)服務(wù)側(cè)之間進(jìn)行數(shù)據(jù)傳輸時(shí)生成所述會(huì)話密鑰,比如,客戶端業(yè)務(wù)層將請(qǐng)求明文數(shù)據(jù)發(fā)送至客戶端協(xié)議加固模塊的同時(shí),可以一并向鑒權(quán)服務(wù)器發(fā)送會(huì)話密鑰的請(qǐng)求指示,鑒權(quán)服務(wù)器根據(jù)該客戶端對(duì)應(yīng)的標(biāo)識(shí)信息進(jìn)行散列計(jì)算后得到會(huì)話密鑰,并將其發(fā)送至客戶端協(xié)議加固模塊,從而客戶端協(xié)議加固模塊可以利用該會(huì)話密鑰進(jìn)行加密處理,加密后由接入服務(wù)協(xié)議加固模塊利用會(huì)話密鑰對(duì)其進(jìn)行解密處理,并將解密后數(shù)據(jù)包發(fā)送至業(yè)務(wù)服務(wù)側(cè)進(jìn)行處理,等等,以利用該會(huì)話密鑰加密和解密,完成與業(yè)務(wù)服務(wù)側(cè)之間進(jìn)行數(shù)據(jù)傳輸。
在本發(fā)明中,鑒權(quán)服務(wù)器負(fù)責(zé)下發(fā)會(huì)話密鑰,通過(guò)使用散列函數(shù)使同一個(gè)客戶端獲得的會(huì)話密鑰收斂,從而消除被拖庫(kù)風(fēng)險(xiǎn),安全性高;并且鑒權(quán)服務(wù)器無(wú)需對(duì)客戶端與會(huì)話密鑰對(duì)應(yīng)關(guān)系的存儲(chǔ),且會(huì)話密鑰收斂不依賴與外部服務(wù),從而減少服務(wù)器的空間消耗,同時(shí),鑒權(quán)服務(wù)器獲取相應(yīng)的會(huì)話密鑰只需要一次hash計(jì)算,計(jì)算簡(jiǎn)便且效率較高。
由上述可知,本實(shí)施例提供的會(huì)話密鑰的生成方法,在接收到客戶端發(fā)送的會(huì)話密鑰的請(qǐng)求指示時(shí),獲取該客戶端對(duì)應(yīng)的標(biāo)識(shí)信息,然后通過(guò)散列函數(shù),對(duì)獲取到的標(biāo)識(shí)信息進(jìn)行實(shí)時(shí)計(jì)算,得到密鑰散列值,其后結(jié)合預(yù)設(shè)的會(huì)話密鑰總數(shù)量進(jìn)行進(jìn)一步計(jì)算,生成客戶端相應(yīng)的會(huì)話密鑰,并向該客戶端發(fā)送相應(yīng)的會(huì)話密鑰;即本實(shí)施例在接收到會(huì)話密鑰的請(qǐng)求指示時(shí),實(shí)時(shí)根據(jù)客戶端對(duì)應(yīng)的標(biāo)識(shí)信息進(jìn)行一次散列計(jì)算來(lái)生成會(huì)話密鑰,不需要依賴服務(wù)器對(duì)客戶端與會(huì)話密鑰對(duì)應(yīng)關(guān)系的存儲(chǔ),從而保證鑒權(quán)流程正常進(jìn)行,降低對(duì)服務(wù)器的穩(wěn)定性要求,以及減少存儲(chǔ)空間消耗。
為便于更好的實(shí)施本發(fā)明實(shí)施例提供的會(huì)話密鑰的生成方法,本發(fā)明實(shí)施例還提供一種基于上述會(huì)話密鑰的生成方法的裝置。其中名詞的含義與上述會(huì)話密鑰的生成的方法中相同,具體實(shí)現(xiàn)細(xì)節(jié)可以參考方法實(shí)施例中的說(shuō)明。
請(qǐng)參閱圖3a,圖3a為本發(fā)明實(shí)施例提供的會(huì)話密鑰的生成裝置的結(jié)構(gòu)示意圖,所述會(huì)話密鑰的生成裝置可以包括第一接收單元301、獲取單元302、計(jì)算單元303以及生成單元304。
所述第一接收單元301,用于接收客戶端發(fā)送的會(huì)話密鑰的請(qǐng)求指示。
可以理解的是,會(huì)話密鑰(session key)是保證用戶跟其它計(jì)算機(jī)或者兩臺(tái)計(jì)算機(jī)之間安全通信會(huì)話而隨機(jī)產(chǎn)生的加密和解密密鑰。會(huì)話密鑰由服務(wù)器生成以及下發(fā),以使用戶根據(jù)會(huì)話密鑰實(shí)現(xiàn)用戶身份鑒權(quán)。
所述獲取單元302,用于根據(jù)所述請(qǐng)求指示,獲取所述客戶端對(duì)應(yīng)的標(biāo)識(shí)信息;所述計(jì)算單元303,用于通過(guò)散列函數(shù),對(duì)所述標(biāo)識(shí)信息進(jìn)行計(jì)算,生成密鑰散列值,獲取預(yù)設(shè)的會(huì)話密鑰總數(shù)量,并利用所述密鑰散列值,對(duì)所述會(huì)話密鑰總數(shù)量進(jìn)行取模運(yùn)算,得到運(yùn)算結(jié)果。
可以理解的是,為了保證同一個(gè)客戶端獲得的會(huì)話密鑰不變,可以選取不容易變化的元素作為客戶端的標(biāo)識(shí)信息,從而可以確定客戶端的唯一標(biāo)志。進(jìn)而,會(huì)話密鑰的生成裝置可以根據(jù)該標(biāo)識(shí)信息進(jìn)行計(jì)算,生成相應(yīng)的會(huì)話密鑰。
所述生成單元304,用于基于所述運(yùn)算結(jié)果,生成所述客戶端相應(yīng)的會(huì)話密鑰。
可一并參考圖3b,為本發(fā)明提供的會(huì)話密鑰的生成裝置的另一結(jié)構(gòu)示意圖,所述會(huì)話密鑰的生成裝置還可以包括:第二接收單元305,用于接收客戶端發(fā)送的鑒權(quán)請(qǐng)求。
基于此,所述第一接收單元301可具體用于:當(dāng)根據(jù)所述鑒權(quán)請(qǐng)求確定公鑰加密算法RSA私鑰解密成功時(shí),接收所述客戶端發(fā)送的會(huì)話密鑰的請(qǐng)求指示。
本實(shí)施例中,所述客戶端對(duì)應(yīng)的標(biāo)識(shí)信息可以具體包括網(wǎng)絡(luò)協(xié)議IP地址、全局唯一標(biāo)識(shí)符GUID等信息中任一或兩個(gè)以上組合。
其中,IP地址是指IP協(xié)議中給因特網(wǎng)上的每臺(tái)計(jì)算機(jī)和其它設(shè)備都規(guī)定的一個(gè)唯一的地址。由于有這種唯一的地址,才保證了服務(wù)器能夠高效而且方便地從多臺(tái)計(jì)算機(jī)中確定所需的客戶端。
全局唯一標(biāo)識(shí)符GUID是一種由算法生成的二進(jìn)制長(zhǎng)度為128位的數(shù)字標(biāo)識(shí)符。GUID主要用于在擁有多個(gè)節(jié)點(diǎn)、多臺(tái)計(jì)算機(jī)的網(wǎng)絡(luò)或系統(tǒng)中。
可以理解的是,為了保證同一個(gè)客戶端獲得的會(huì)話密鑰不變,可以選取不容易變化的元素作為客戶端的標(biāo)識(shí)信息,從而可以確定客戶端的唯一標(biāo)志。進(jìn)而,會(huì)話密鑰的生成裝置可以根據(jù)該標(biāo)識(shí)信息進(jìn)行計(jì)算,生成相應(yīng)的會(huì)話密鑰。
比如,會(huì)話密鑰的生成裝置可以首先通過(guò)散列函數(shù)(hash function),對(duì)標(biāo)識(shí)信息進(jìn)行計(jì)算,生成密鑰散列值,然后獲取預(yù)設(shè)的會(huì)話密鑰總數(shù)量,并利用密鑰散列值,對(duì)會(huì)話密鑰總數(shù)量進(jìn)行取模運(yùn)算,得到運(yùn)算結(jié)果;最后基于運(yùn)算結(jié)果,確定出相應(yīng)的會(huì)話密鑰。
其中,散列函數(shù)是一種從任何一種數(shù)據(jù)中創(chuàng)建小的數(shù)字“指紋”的方法。散列函數(shù)把消息或數(shù)據(jù)壓縮成摘要,使得數(shù)據(jù)量變小,將數(shù)據(jù)的格式固定下來(lái)。該函數(shù)將數(shù)據(jù)打亂混合,重新創(chuàng)建一個(gè)叫做散列值(hash values,hash codes,hash sums,或hashes)的指紋。散列值通常用來(lái)代表一個(gè)短的隨機(jī)字母和數(shù)字組成的字符串。
也就是說(shuō),會(huì)話密鑰的生成裝置對(duì)所述標(biāo)識(shí)信息進(jìn)行一次散列計(jì)算,得到密鑰散列值,進(jìn)而根據(jù)預(yù)設(shè)的會(huì)話密鑰總數(shù)量以及密鑰散列值,對(duì)會(huì)話密鑰總數(shù)量進(jìn)行取模運(yùn)算,從而根據(jù)取模運(yùn)算的結(jié)果確定出會(huì)話密鑰。
比如,散列計(jì)算后得到密鑰散列值為“201”,預(yù)設(shè)的會(huì)話密鑰總數(shù)量為“100”,對(duì)該密鑰散列值“201”進(jìn)行取模運(yùn)算,得到運(yùn)算結(jié)果為“1”;然后根據(jù)預(yù)先存儲(chǔ)的會(huì)話密鑰集合,找到標(biāo)識(shí)號(hào)為“1”相應(yīng)的會(huì)話密鑰,從而將該會(huì)話密鑰確定為當(dāng)前客戶端相應(yīng)的會(huì)話密鑰。
可選的,由于所述標(biāo)識(shí)信息可以具體包括網(wǎng)絡(luò)協(xié)議IP地址、全局唯一標(biāo)識(shí)符GUID,因此所述計(jì)算單元303可以用于:通過(guò)散列函數(shù),對(duì)所述網(wǎng)絡(luò)協(xié)議地址以及全局唯一標(biāo)識(shí)符進(jìn)行計(jì)算,生成密鑰散列值。
可具體的,會(huì)話密鑰的生成裝置可以根據(jù)這兩個(gè)元素確定客戶端的唯一標(biāo)志,如根據(jù)公式“HashCode=HashFunction(IP+GUID)”生成密鑰散列值,從而確定唯一的會(huì)話密鑰。
可以理解的是,這樣同一個(gè)客戶端在不同的鑒權(quán)節(jié)點(diǎn)和不同的請(qǐng)求中,通過(guò)使用散列函數(shù)可以使同一個(gè)客戶端獲得的會(huì)話密鑰收斂,即密鑰散列值(HashCode)是確定唯一的,從而可以確保會(huì)話密鑰一致,同時(shí)可以保證服務(wù)器不被拖庫(kù)。
可選的,所述會(huì)話密鑰的生成裝置還可以包括:第一返回單元306,用于向所述客戶端返回鑒權(quán)成功的消息。
即,在會(huì)話密鑰的生成裝置確定出客戶端相應(yīng)的會(huì)話密鑰后,會(huì)向該客戶端發(fā)送會(huì)話密鑰,并在向所述客戶端發(fā)送所述會(huì)話密鑰之后,向所述客戶端返回鑒權(quán)成功的消息,即鑒權(quán)流程結(jié)束。
可選的,在客戶端接收到該會(huì)話密鑰后,客戶端會(huì)利用該會(huì)話密鑰請(qǐng)求加解密,以完成與業(yè)務(wù)服務(wù)側(cè)之間的數(shù)據(jù)傳輸。比如,該會(huì)話密鑰應(yīng)用于電腦管家接入服務(wù)協(xié)議加固,即在接入服務(wù)原有協(xié)議上增加安全加密層,如客戶端業(yè)務(wù)層將請(qǐng)求明文數(shù)據(jù)發(fā)送至客戶端協(xié)議加固模塊,利用會(huì)話密鑰進(jìn)行加密處理,加密后由接入服務(wù)協(xié)議加固模塊利用會(huì)話密鑰對(duì)其進(jìn)行解密處理,并將解密后數(shù)據(jù)包發(fā)送至業(yè)務(wù)服務(wù)側(cè)進(jìn)行處理,等等。
可選的,所述會(huì)話密鑰的生成裝置還可以包括:第二返回單元307,用于當(dāng)根據(jù)所述鑒權(quán)請(qǐng)求確定公鑰加密算法私鑰解密失敗時(shí),向所述客戶端返回鑒權(quán)失敗的消息。
具體實(shí)施時(shí),以上各個(gè)單元可以作為獨(dú)立的實(shí)體來(lái)實(shí)現(xiàn),也可以進(jìn)行任意組合,作為同一或若干個(gè)實(shí)體來(lái)實(shí)現(xiàn),以上各個(gè)單元的具體實(shí)施可參見前面的方法實(shí)施例,在此不再贅述。
該會(huì)話密鑰的生成裝置具體可以集成在服務(wù)器或網(wǎng)關(guān)等網(wǎng)絡(luò)設(shè)備中。
由上述可知,本實(shí)施例提供的會(huì)話密鑰的生成裝置,在接收到客戶端發(fā)送的會(huì)話密鑰的請(qǐng)求指示時(shí),獲取該客戶端對(duì)應(yīng)的標(biāo)識(shí)信息,然后通過(guò)散列函數(shù),對(duì)獲取到的標(biāo)識(shí)信息進(jìn)行實(shí)時(shí)計(jì)算,得到密鑰散列值,其后結(jié)合預(yù)設(shè)的會(huì)話密鑰總數(shù)量進(jìn)行進(jìn)一步計(jì)算,生成客戶端相應(yīng)的會(huì)話密鑰,并向該客戶端發(fā)送相應(yīng)的會(huì)話密鑰;即本實(shí)施例在接收到會(huì)話密鑰的請(qǐng)求指示時(shí),實(shí)時(shí)根據(jù)客戶端對(duì)應(yīng)的標(biāo)識(shí)信息進(jìn)行一次散列計(jì)算來(lái)生成會(huì)話密鑰,不需要依賴服務(wù)器對(duì)客戶端與會(huì)話密鑰對(duì)應(yīng)關(guān)系的存儲(chǔ),從而保證鑒權(quán)流程正常進(jìn)行,降低對(duì)服務(wù)器的穩(wěn)定性要求,以及減少存儲(chǔ)空間消耗。
本發(fā)明實(shí)施例還提供一種服務(wù)器,其中可以集成本發(fā)明實(shí)施例的會(huì)話密鑰的生成裝置,如圖4所示,其示出了本發(fā)明實(shí)施例所涉及的服務(wù)器的結(jié)構(gòu)示意圖,具體來(lái)講:
該服務(wù)器可以包括一個(gè)或者一個(gè)以上處理核心的處理器401、一個(gè)或一個(gè)以上計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的存儲(chǔ)器402、射頻(Radio Frequency,RF)電路403、電源404、輸入單元405、以及顯示單元406等部件。本領(lǐng)域技術(shù)人員可以理解,圖4中示出的服務(wù)器結(jié)構(gòu)并不構(gòu)成對(duì)服務(wù)器的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。其中:
處理器401是該服務(wù)器的控制中心,利用各種接口和線路連接整個(gè)服務(wù)器的各個(gè)部分,通過(guò)運(yùn)行或執(zhí)行存儲(chǔ)在存儲(chǔ)器402內(nèi)的軟件程序和/或模塊,以及調(diào)用存儲(chǔ)在存儲(chǔ)器402內(nèi)的數(shù)據(jù),執(zhí)行服務(wù)器的各種功能和處理數(shù)據(jù),從而對(duì)服務(wù)器進(jìn)行整體監(jiān)控。可選的,處理器401可包括一個(gè)或多個(gè)處理核心;優(yōu)選的,處理器401可集成應(yīng)用處理器和調(diào)制解調(diào)處理器,其中,應(yīng)用處理器主要處理操作系統(tǒng)、用戶界面和應(yīng)用程序等,調(diào)制解調(diào)處理器主要處理無(wú)線通信??梢岳斫獾氖牵鲜稣{(diào)制解調(diào)處理器也可以不集成到處理器401中。
存儲(chǔ)器402可用于存儲(chǔ)軟件程序以及模塊,處理器401通過(guò)運(yùn)行存儲(chǔ)在存儲(chǔ)器402的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理。存儲(chǔ)器402可主要包括存儲(chǔ)程序區(qū)和存儲(chǔ)數(shù)據(jù)區(qū),其中,存儲(chǔ)程序區(qū)可存儲(chǔ)操作系統(tǒng)、至少一個(gè)功能所需的應(yīng)用程序(比如聲音播放功能、圖像播放功能等)等;存儲(chǔ)數(shù)據(jù)區(qū)可存儲(chǔ)根據(jù)服務(wù)器的使用所創(chuàng)建的數(shù)據(jù)等。此外,存儲(chǔ)器402可以包括高速隨機(jī)存取存儲(chǔ)器,還可以包括非易失性存儲(chǔ)器,例如至少一個(gè)磁盤存儲(chǔ)器件、閃存器件、或其他易失性固態(tài)存儲(chǔ)器件。相應(yīng)地,存儲(chǔ)器402還可以包括存儲(chǔ)器控制器,以提供處理器401對(duì)存儲(chǔ)器402的訪問(wèn)。
RF電路403可用于收發(fā)信息過(guò)程中,信號(hào)的接收和發(fā)送,特別地,將基站的下行信息接收后,交由一個(gè)或者一個(gè)以上處理器401處理;另外,將涉及上行的數(shù)據(jù)發(fā)送給基站。通常,RF電路403包括但不限于天線、至少一個(gè)放大器、調(diào)諧器、一個(gè)或多個(gè)振蕩器、用戶身份模塊(SIM)卡、收發(fā)信機(jī)、耦合器、低噪聲放大器(LNA,Low Noise Amplifier)、雙工器等。此外,RF電路403還可以通過(guò)無(wú)線通信與網(wǎng)絡(luò)和其他設(shè)備通信。所述無(wú)線通信可以使用任一通信標(biāo)準(zhǔn)或協(xié)議,包括但不限于全球移動(dòng)通訊系統(tǒng)(GSM,Global System of Mobile communication)、通用分組無(wú)線服務(wù)(GPRS,General Packet Radio Service)、碼分多址(CDMA,Code Division Multiple Access)、寬帶碼分多址(WCDMA,Wideband Code Division Multiple Access)、長(zhǎng)期演進(jìn)(LTE,Long Term Evolution)、電子郵件、短消息服務(wù)(SMS,Short Messaging Service)等。
服務(wù)器還包括給各個(gè)部件供電的電源404(比如電池),優(yōu)選的,電源可以通過(guò)電源管理系統(tǒng)與處理器401邏輯相連,從而通過(guò)電源管理系統(tǒng)實(shí)現(xiàn)管理充電、放電、以及功耗管理等功能。電源404還可以包括一個(gè)或一個(gè)以上的直流或交流電源、再充電系統(tǒng)、電源故障檢測(cè)電路、電源轉(zhuǎn)換器或者逆變器、電源狀態(tài)指示器等任意組件。
該服務(wù)器還可包括輸入單元405,該輸入單元405可用于接收輸入的數(shù)字或字符信息,以及產(chǎn)生與用戶設(shè)置以及功能控制有關(guān)的鍵盤、鼠標(biāo)、操作桿、光學(xué)或者軌跡球信號(hào)輸入。
該服務(wù)器還可包括顯示單元406,該顯示單元406可用于顯示由用戶輸入的信息或提供給用戶的信息以及服務(wù)器的各種圖形用戶接口,這些圖形用戶接口可以由圖形、文本、圖標(biāo)、視頻和其任意組合來(lái)構(gòu)成。顯示單元406可包括顯示面板,可選的,可以采用液晶顯示器(LCD,Liquid Crystal Display)、有機(jī)發(fā)光二極管(OLED,Organic Light-Emitting Diode)等形式來(lái)配置顯示面板。
具體在本實(shí)施例中,服務(wù)器中的處理器401會(huì)按照如下的指令,將一個(gè)或一個(gè)以上的應(yīng)用程序的進(jìn)程對(duì)應(yīng)的可執(zhí)行文件加載到存儲(chǔ)器402中,并由處理器401來(lái)運(yùn)行存儲(chǔ)在存儲(chǔ)器402中的應(yīng)用程序,從而實(shí)現(xiàn)各種功能,如下:
接收客戶端發(fā)送的會(huì)話密鑰的請(qǐng)求指示;根據(jù)所述請(qǐng)求指示,獲取所述客戶端對(duì)應(yīng)的標(biāo)識(shí)信息;通過(guò)散列函數(shù),對(duì)所述標(biāo)識(shí)信息進(jìn)行計(jì)算,生成密鑰散列值;獲取預(yù)設(shè)的會(huì)話密鑰總數(shù)量,并利用所述密鑰散列值對(duì)所述會(huì)話密鑰總數(shù)量進(jìn)行取模運(yùn)算,得到運(yùn)算結(jié)果;基于所述運(yùn)算結(jié)果,生成所述客戶端相應(yīng)的會(huì)話密鑰。
優(yōu)選的,所述處理器401還可以用于,獲取所述客戶端對(duì)應(yīng)的網(wǎng)絡(luò)協(xié)議地址以及全局唯一標(biāo)識(shí)符;通過(guò)散列函數(shù),對(duì)所述網(wǎng)絡(luò)協(xié)議地址以及全局唯一標(biāo)識(shí)符進(jìn)行計(jì)算,生成密鑰散列值。
優(yōu)選的,所述處理器401還可以用于,接收客戶端發(fā)送的鑒權(quán)請(qǐng)求;當(dāng)根據(jù)所述鑒權(quán)請(qǐng)求確定公鑰加密算法私鑰解密成功時(shí),接收所述客戶端發(fā)送的會(huì)話密鑰的請(qǐng)求指示。
優(yōu)選的,所述處理器401還可以用于,向所述客戶端返回鑒權(quán)成功的消息。
優(yōu)選的,所述處理器401還可以用于,當(dāng)根據(jù)所述鑒權(quán)請(qǐng)求確定公鑰加密算法私鑰解密失敗時(shí),向所述客戶端返回鑒權(quán)失敗的消息。
由上述可知,本實(shí)施例提供的服務(wù)器中,在接收到客戶端發(fā)送的會(huì)話密鑰的請(qǐng)求指示時(shí),獲取該客戶端對(duì)應(yīng)的標(biāo)識(shí)信息,然后通過(guò)散列函數(shù),對(duì)獲取到的標(biāo)識(shí)信息進(jìn)行實(shí)時(shí)計(jì)算,得到密鑰散列值,其后結(jié)合預(yù)設(shè)的會(huì)話密鑰總數(shù)量進(jìn)行進(jìn)一步計(jì)算,生成客戶端相應(yīng)的會(huì)話密鑰,并向該客戶端發(fā)送相應(yīng)的會(huì)話密鑰;即本實(shí)施例在接收到會(huì)話密鑰的請(qǐng)求指示時(shí),實(shí)時(shí)根據(jù)客戶端對(duì)應(yīng)的標(biāo)識(shí)信息進(jìn)行一次散列計(jì)算來(lái)生成會(huì)話密鑰,不需要依賴服務(wù)器對(duì)客戶端與會(huì)話密鑰對(duì)應(yīng)關(guān)系的存儲(chǔ),從而保證鑒權(quán)流程正常進(jìn)行,降低對(duì)服務(wù)器的穩(wěn)定性要求,以及減少存儲(chǔ)空間消耗。
在上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒有詳述的部分,可以參見上文針對(duì)會(huì)話密鑰的生成方法的詳細(xì)描述,此處不再贅述。
本發(fā)明實(shí)施例提供的所述會(huì)話密鑰的生成裝置,譬如為計(jì)算機(jī)、平板電腦、具有觸摸功能的手機(jī)等等,所述會(huì)話密鑰的生成裝置與上文實(shí)施例中的會(huì)話密鑰的生成方法屬于同一構(gòu)思,在所述會(huì)話密鑰的生成裝置上可以運(yùn)行所述會(huì)話密鑰的生成方法實(shí)施例中提供的任一方法,其具體實(shí)現(xiàn)過(guò)程詳見所述會(huì)話密鑰的生成方法實(shí)施例,此處不再贅述。
需要說(shuō)明的是,對(duì)本發(fā)明所述會(huì)話密鑰的生成方法而言,本領(lǐng)域普通測(cè)試人員可以理解實(shí)現(xiàn)本發(fā)明實(shí)施例所述會(huì)話密鑰的生成方法的全部或部分流程,是可以通過(guò)計(jì)算機(jī)程序來(lái)控制相關(guān)的硬件來(lái)完成,所述計(jì)算機(jī)程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,如存儲(chǔ)在終端的存儲(chǔ)器中,并被該終端內(nèi)的至少一個(gè)處理器執(zhí)行,在執(zhí)行過(guò)程中可包括如所述會(huì)話密鑰的生成方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤、只讀存儲(chǔ)器(ROM,Read Only Memory)、隨機(jī)存取記憶體(RAM,Random Access Memory)等。
對(duì)本發(fā)明實(shí)施例的所述會(huì)話密鑰的生成裝置而言,其各功能模塊可以集成在一個(gè)處理芯片中,也可以是各個(gè)模塊單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上模塊集成在一個(gè)模塊中。上述集成的模塊既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能模塊的形式實(shí)現(xiàn)。所述集成的模塊如果以軟件功能模塊的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),也可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,所述存儲(chǔ)介質(zhì)譬如為只讀存儲(chǔ)器,磁盤或光盤等。
以上對(duì)本發(fā)明實(shí)施例所提供的一種會(huì)話密鑰的生成方法及裝置進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。