本發(fā)明涉及一種密鑰分發(fā)機(jī)制,特別涉及一種在分組交換網(wǎng)絡(luò)中,實(shí)現(xiàn)主、被叫終端間端到端的媒體流加密密鑰分發(fā)的方法,屬于加密通信領(lǐng)域。
背景技術(shù):
隨著網(wǎng)絡(luò)通信和計(jì)算機(jī)技術(shù)的發(fā)展,基于分組網(wǎng)絡(luò)的語音、視頻應(yīng)用得到了廣泛應(yīng)用。分組網(wǎng)絡(luò)通信中主要使用的voip信令標(biāo)準(zhǔn)有itu-t提出的h.323體系和ietf提出的sip體系,基于sip標(biāo)準(zhǔn)的應(yīng)用比基于h.323體系的應(yīng)用具有很多優(yōu)點(diǎn),逐步得到了大量的應(yīng)用。
sip(sessioninitiationprotocol)是一個(gè)會話層的信令控制協(xié)議,用于創(chuàng)建、修改和釋放一個(gè)或多個(gè)參與者的會話,sip終端與sip服務(wù)器經(jīng)過信令交互之后建立連接,語音采用基于rtp實(shí)時(shí)傳輸協(xié)議,在ip網(wǎng)絡(luò)上傳輸。
由于基于sip協(xié)議實(shí)現(xiàn)的通話連接,雙方交互的數(shù)據(jù)包均為明文,因此,通話內(nèi)容極易在網(wǎng)絡(luò)上被竊聽,存在較大的信息安全隱患。目前針對voip的安全性設(shè)計(jì),主要通過對sip協(xié)議的傳輸保護(hù)解決語音加密密鑰安全分發(fā)問題,如ip層的ipsec傳輸保護(hù)協(xié)議,tcp層的ssl傳輸保護(hù)協(xié)議;另外,也有通過擴(kuò)展sip協(xié)議實(shí)現(xiàn)端到端會話密鑰協(xié)商的方式,但協(xié)商方式會引出雙方身份認(rèn)證困難并且難以有效監(jiān)管的問題。
技術(shù)實(shí)現(xiàn)要素:
鑒于上述原因,本發(fā)明的目的是提供一種適用于voip語音加密的密鑰分發(fā)方法。
為實(shí)現(xiàn)上述目的,本發(fā)明采用以下技術(shù)方案:一種適用于voip語音加密的密鑰分發(fā)方法:
a、由主叫終端向密鑰分發(fā)服務(wù)器發(fā)起會話密鑰申請,觸發(fā)密鑰分發(fā),由密鑰分發(fā)服務(wù)器為主、被叫終端雙方產(chǎn)生會話密鑰,返回給主叫終端;
b、主叫終端得到會話密鑰后,通過voip服務(wù)器向被叫終端發(fā)起加密呼叫,并將密鑰分發(fā)服務(wù)器產(chǎn)生的密鑰特征數(shù)據(jù)發(fā)送給被叫終端,通過voip服務(wù)器主、被叫終端建立媒體流傳輸通道;
c、主、被叫終端雙方使用會話密鑰對媒體流加密后傳輸給對方,對方收到后使用會話密鑰對接收到的數(shù)據(jù)解密得到媒體流。
所述步驟a包括如下步驟:
1)主叫終端向密鑰分發(fā)服務(wù)器(簡稱kds)發(fā)送會話密鑰請求,該請求包含主、被叫雙方的身份標(biāo)識;
2)kds向主叫終端返回會話標(biāo)識、挑戰(zhàn)數(shù)據(jù)以及時(shí)間數(shù)據(jù);
21)kds隨機(jī)產(chǎn)生會話標(biāo)識、挑戰(zhàn)數(shù)據(jù);時(shí)間數(shù)據(jù)為kds當(dāng)前本地時(shí)間;
22)會話標(biāo)識用于標(biāo)識主叫終端的本次會話請求;
23)挑戰(zhàn)數(shù)據(jù)用于主叫終端證明其身份;
24)時(shí)間數(shù)據(jù)用于主叫終端驗(yàn)證當(dāng)前時(shí)間;
3)主叫終端驗(yàn)證時(shí)間數(shù)據(jù)后產(chǎn)生應(yīng)答數(shù)據(jù)并繼續(xù)向kds發(fā)起會話密鑰申請;
4)kds為主、被叫雙方產(chǎn)生會話密鑰特征數(shù)據(jù)并將密鑰特征數(shù)據(jù)返回主叫終端;
5)主叫終端對密鑰特征數(shù)據(jù)進(jìn)行校驗(yàn),然后使用自己的私有數(shù)據(jù)對接收到的密鑰特征數(shù)據(jù)運(yùn)算后得到明文會話密鑰;該明文會話密鑰可以直接用于加密媒體流數(shù)據(jù),或者通過密鑰派生方法產(chǎn)生用于媒體加密或媒體認(rèn)證的密鑰數(shù)據(jù)。
所述步驟b包括如下步驟:
1)主叫終端向voip服務(wù)器發(fā)起加密呼叫請求;
2)加密呼叫請求應(yīng)答后,主叫終端通過voip服務(wù)器向被叫終端發(fā)送kds產(chǎn)生的密鑰特征數(shù)據(jù);
3)被叫終端使用自己的私有數(shù)據(jù)對接收到的密鑰特征數(shù)據(jù)運(yùn)算后得到明文的會話密鑰。
所述步驟a中的第3)小步具體步驟如下:
31)主叫終端首先對時(shí)間數(shù)據(jù)與本地時(shí)間進(jìn)行比對,判斷應(yīng)答是否為重放消息;
32)主叫終端使用私有數(shù)據(jù)對挑戰(zhàn)數(shù)據(jù)計(jì)算產(chǎn)生應(yīng)答數(shù)據(jù);
33)應(yīng)答數(shù)據(jù)可以為消息認(rèn)證碼(mac)或簽名數(shù)據(jù);
34)在應(yīng)答數(shù)據(jù)產(chǎn)生的過程中,可以加入主被叫雙方的身份標(biāo)識參與運(yùn)算。
所述步驟a中的第4)小步具體步驟如下:
41)kds使用主叫終端的公開數(shù)據(jù)和挑戰(zhàn)數(shù)據(jù)對應(yīng)答數(shù)據(jù)進(jìn)行驗(yàn)證;獲取公開數(shù)據(jù)的方式包括但不限于下列方式:
42)kds隨機(jī)產(chǎn)生或從其它密鑰管理系統(tǒng)中獲取會話密鑰ks;
43)kds獲取主被叫雙方的公開數(shù)據(jù),獲取公開數(shù)據(jù)的方式包括但不限于下列方式:
44)kds使用主叫終端的公開數(shù)據(jù)對會話密鑰計(jì)算后得到結(jié)果cka;
45)kds使用被叫的公開數(shù)據(jù)對會話密鑰計(jì)算后得到結(jié)果ckb;
所述步驟b中的第2)小步進(jìn)一步包括如下步驟:
21):主叫終端向voip服務(wù)器發(fā)送info消息;
該請求包含kds為被叫終端產(chǎn)生的密鑰特征數(shù)據(jù)ckb;
22):voip服務(wù)器向被叫發(fā)送info消息;
1)該請求包含kds為被叫終端產(chǎn)生的密鑰特征數(shù)據(jù)ckb;
2)被叫終端首先對密鑰特征數(shù)據(jù)ckb進(jìn)行校驗(yàn),然后使用自己的私有數(shù)據(jù)對進(jìn)行ckb解密得到明文ks;
3)ks可以直接用于加密媒體流數(shù)據(jù),或者通過固定密鑰派生方法產(chǎn)生用于媒體加密或媒體認(rèn)證的密鑰數(shù)據(jù);
4)ks的使用方式與主叫終端保持一致;
23):被叫終端向voip服務(wù)器發(fā)送info消息響應(yīng);
24):voip服務(wù)器向主叫終端發(fā)送info消息響應(yīng)。
附圖說明
圖1為本發(fā)明密鑰分發(fā)系統(tǒng)組成示意圖;
圖2為本發(fā)明密鑰分發(fā)實(shí)施例流程示意圖。
具體實(shí)施方式
如圖1所示,本發(fā)明提供的適用于voip語音加密的密鑰分發(fā)方法是:由主叫終端向密鑰分發(fā)服務(wù)器(簡稱kds,keydistributiongserver)發(fā)起會話密鑰申請,觸發(fā)密鑰分發(fā),由密鑰分發(fā)服務(wù)器為主、被叫終端雙方產(chǎn)生會話密鑰,返回給主叫終端;主叫終端得到會話密鑰后,通過voip服務(wù)器向被叫終端發(fā)起加密呼叫,并將密鑰分發(fā)服務(wù)器產(chǎn)生的密鑰特征數(shù)據(jù)發(fā)送給被叫終端,通過voip服務(wù)器主、被叫終端建立媒體流傳輸通道;主、被叫終端雙方使用會話密鑰對媒體流加密后傳輸給對方,對方收到后使用會話密鑰對接收到的數(shù)據(jù)解密得到媒體流。
如圖1所示,本發(fā)明采用的技術(shù)方案為:
1、主叫終端向密鑰分發(fā)服務(wù)器(簡稱kds,keydistributionserver)發(fā)起會話密鑰請求;
2、kds向主叫終端返回會話標(biāo)識、挑戰(zhàn)數(shù)據(jù)以及時(shí)間數(shù)據(jù);
3、主叫終端驗(yàn)證時(shí)間數(shù)據(jù)后產(chǎn)生應(yīng)答數(shù)據(jù)并繼續(xù)向kds發(fā)起會話密鑰申請;
4、kds為主、被叫雙方產(chǎn)生會話密鑰特征數(shù)據(jù)并將密鑰特征數(shù)據(jù)返回主叫終端;
5、主叫終端使用自己的私有數(shù)據(jù)對接收到的密鑰特征數(shù)據(jù)運(yùn)算后得到明文會話密鑰;
6、主叫終端向voip服務(wù)器發(fā)起加密呼叫請求;
7、加密呼叫請求應(yīng)答后,主叫終端通過voip服務(wù)器向被叫終端發(fā)送kds產(chǎn)生的密鑰特征數(shù)據(jù);
8、被叫終端使用自己的私有數(shù)據(jù)對接收到的密鑰特征數(shù)據(jù)運(yùn)算后得到明文的會話密鑰;
9、主、被叫雙方使用會話密鑰對媒體流加密后傳輸給對方;
10、對方使用會話密鑰對接收到的數(shù)據(jù)解密后得到媒體流;主、被叫雙方進(jìn)行加密通話。
本發(fā)明是提出的密鑰分發(fā)方法的優(yōu)點(diǎn):
1、密鑰直接由密鑰分發(fā)服務(wù)器(簡稱kds)產(chǎn)生,易于密鑰管理,降低對voip服務(wù)器的調(diào)整改造;
2、kds在密鑰產(chǎn)生前對主叫終端進(jìn)行身份驗(yàn)證,彌補(bǔ)sip協(xié)議自身身份認(rèn)證的脆弱性;
3、一話一密,全程加密,傳輸過程不出現(xiàn)明文,安全性高。
圖2為本發(fā)明密鑰分發(fā)實(shí)施例流程示意圖。如圖所示:
101:主叫終端向kds發(fā)送會話密鑰請求消息;
1)該請求包含主被叫雙方的身份標(biāo)識;主被叫身份標(biāo)識可以是主被叫的通信號 碼或者其它可以唯一標(biāo)識主被叫身份的數(shù)據(jù),例如硬件密碼設(shè)備標(biāo)識、數(shù)字證書序列號等;
2)該申請消息可以包含主被叫雙方的公開數(shù)據(jù);
3)公開數(shù)據(jù)可以是公開密鑰或者是數(shù)字證書等;
102:kds向主叫終端返回為會話標(biāo)識、挑戰(zhàn)數(shù)據(jù)以及時(shí)間數(shù)據(jù);
1)kds隨機(jī)產(chǎn)生會話標(biāo)識、挑戰(zhàn)數(shù)據(jù);時(shí)間數(shù)據(jù)為kds當(dāng)前本地時(shí)間;
2)會話標(biāo)識用于標(biāo)識主叫終端的本次會話請求;
3)挑戰(zhàn)數(shù)據(jù)用于主叫終端證明其身份;
4)時(shí)間數(shù)據(jù)用于主叫終端驗(yàn)證當(dāng)前時(shí)間;
103:主叫終端產(chǎn)生應(yīng)答數(shù)據(jù)并繼續(xù)向kds發(fā)送會話密鑰請求;
1)主叫終端首先對時(shí)間數(shù)據(jù)與本地時(shí)間進(jìn)行比對,判斷應(yīng)答是否為重放消息;
2)主叫終端使用私有數(shù)據(jù)對挑戰(zhàn)數(shù)據(jù)計(jì)算產(chǎn)生應(yīng)答數(shù)據(jù);
3)應(yīng)答數(shù)據(jù)可以為消息認(rèn)證碼(mac)或簽名數(shù)據(jù);
4)在應(yīng)答數(shù)據(jù)產(chǎn)生的過程中,可以加入主被叫雙方的身份標(biāo)識參與運(yùn)算;
104:kds驗(yàn)證應(yīng)答數(shù)據(jù)并為主被叫雙方產(chǎn)生的不同的密鑰特征數(shù)據(jù)cka與ckb;并同時(shí)返回給主叫終端;
1)kds使用主叫終端的公開數(shù)據(jù)和挑戰(zhàn)數(shù)據(jù)對應(yīng)答數(shù)據(jù)進(jìn)行驗(yàn)證;獲取公開數(shù)據(jù)的方式包括但不限于下列方式:
2)kds隨機(jī)產(chǎn)生或從其它密鑰管理系統(tǒng)中獲取會話密鑰ks;
3)kds獲取主被叫雙方的公開數(shù)據(jù),獲取公開數(shù)據(jù)的方式包括但不限于下列方式:
4)kds使用主叫終端的公開數(shù)據(jù)對會話密鑰計(jì)算后得到結(jié)果cka;
5)kds使用被叫的公開數(shù)據(jù)對會話密鑰計(jì)算后得到結(jié)果ckb;
6)主叫終端對密鑰特征數(shù)據(jù)cka進(jìn)行校驗(yàn),然后使用自己的私有數(shù)據(jù)對cka進(jìn)行解密得到明文ks;
201:主叫終端向voip服務(wù)器發(fā)送invite消息;
202:voip服務(wù)器向被叫終端發(fā)送invite消息;
203:被叫終端向voip服務(wù)器發(fā)送振鈴響應(yīng);
204:voip服務(wù)器向主叫終端發(fā)送振鈴響應(yīng);
205:主叫終端向voip服務(wù)器發(fā)送inf0消息;
該請求包含kds為被叫終端產(chǎn)生的密鑰特征數(shù)據(jù)ckb;
206:voip服務(wù)器向被叫終端發(fā)送info消息;
1)該請求包含kds為被叫終端產(chǎn)生的密鑰特征數(shù)據(jù)ckb;
2)被叫終端首先對密鑰特征數(shù)據(jù)ckb進(jìn)行校驗(yàn),然后使用自己的私有數(shù)據(jù)對進(jìn)行ckb解密得到明文ks;
3)ks可以直接用于加密媒體流數(shù)據(jù),或者通過固定密鑰派生方法產(chǎn)生用于媒體加密或媒體認(rèn)證的密鑰數(shù)據(jù);
4)ks的使用方式與主叫終端保持一致;
207:被叫終端向voip服務(wù)器發(fā)送info消息響應(yīng);
208:voip服務(wù)器向主叫終端發(fā)送info消息響應(yīng);
209:被叫終端向voip服務(wù)器發(fā)送invite消息響應(yīng);
210:voip服務(wù)器向主叫終端發(fā)送invite消息響應(yīng);
211:主叫終端向voip服務(wù)器發(fā)送響應(yīng)確認(rèn);
212:voip服務(wù)器向被叫終端發(fā)送響應(yīng)確認(rèn);
主、被叫雙方進(jìn)行加密通話。
以上所述是本發(fā)明的較佳實(shí)施例及其所運(yùn)用的技術(shù)原理,對于本領(lǐng)域的技術(shù)人員來說,在不背離本發(fā)明的精神和范圍的情況下,任何基于本發(fā)明技術(shù)方案基礎(chǔ)上的等效變換、簡單替換等顯而易見的改變,均屬于本發(fā)明保護(hù)范圍之內(nèi)。