張鶴鳴,廖蓉暉
(中國電子科技集團(tuán)公司第三十研究所,四川 成都 610041)
為滿足用戶多樣化的需求,越來越多的業(yè)務(wù)集成在寬帶電話終端之上,如短消息、備忘錄、私人電話、語音助手以及會(huì)議行程等。作為存儲(chǔ)用戶信息和記錄用戶習(xí)慣的重要載體,寬帶電話終端如果能與網(wǎng)絡(luò)相互配合,建立安全可靠的傳輸通道,保證用戶信息在可信任終端間自由遷移,不僅能夠進(jìn)一步提升終端的智能性和便捷性,而且對(duì)于保持用戶習(xí)慣的延續(xù),增強(qiáng)產(chǎn)品競爭力,也有重要的促進(jìn)作用。
用戶數(shù)據(jù)遷移主要應(yīng)用于移動(dòng)通信領(lǐng)域。移動(dòng)終端通過藍(lán)牙或者WiFi 等渠道,近距離實(shí)現(xiàn)大量用戶數(shù)據(jù)的遷移。該過程簡潔、高效,但受距離約束明顯,而且過程中缺乏有效的安全防護(hù)措施。在對(duì)安全性要求較高的電話通信領(lǐng)域,固話終端的用戶數(shù)據(jù)相對(duì)較少,但存在遠(yuǎn)距離傳輸?shù)男枨?,且?duì)過程中的安全性要求極高。藍(lán)牙、WiFi 等外設(shè)或者由于距離原因,或者由于安全性風(fēng)險(xiǎn)而無法使用。
針對(duì)寬帶電話終端的用戶特點(diǎn)和使用需求,設(shè)計(jì)一種用戶數(shù)據(jù)安全遷移方法,能夠快速將原話機(jī)的用戶數(shù)據(jù)遷移到新話機(jī)之上,不受距離限制的同時(shí),保證用戶信息在傳輸過程中的安全性。第1 章從網(wǎng)絡(luò)通信場(chǎng)景入手,介紹方案的組成及軟件實(shí)現(xiàn)框架。第2 章、第3 章以會(huì)話初始協(xié)議(Session Initiation Protocol,SIP)電話為例,探討密碼協(xié)議實(shí)現(xiàn)流程和用戶數(shù)據(jù)傳輸?shù)木唧w步驟。最后,對(duì)全文進(jìn)行總結(jié)。
方案利用寬帶語音呼叫過程中建立的媒體通道,傳遞密碼協(xié)議信息和受保護(hù)的用戶數(shù)據(jù),實(shí)現(xiàn)用戶信息在可信任終端之間的安全遷移。網(wǎng)絡(luò)通信場(chǎng)景如圖1 所示。
圖1 網(wǎng)絡(luò)通信場(chǎng)景
通過在寬帶語音通信網(wǎng)絡(luò)的可信任終端上,部署對(duì)稱密碼與非對(duì)稱密碼相結(jié)合的密碼體制。利用對(duì)稱密碼加解密速度快、計(jì)算效率高、資源占用少的特點(diǎn),完成用戶信息的機(jī)密性保護(hù);利用非對(duì)稱密碼在有限域上離散對(duì)數(shù)的計(jì)算困難性,實(shí)現(xiàn)通信雙方的身份認(rèn)證;利用橢圓曲線算法的復(fù)合特性,通過臨時(shí)公私鑰對(duì)點(diǎn)乘獲取通信雙方的共享因子[1],生成一次一密的業(yè)務(wù)數(shù)據(jù)保護(hù)密鑰,保證用戶數(shù)據(jù)的前向安全性。
軟件實(shí)現(xiàn)框架主要由密碼模塊、密碼協(xié)議棧和用戶數(shù)據(jù)庫3 部分組成,如圖2 所示。
圖2 軟件實(shí)現(xiàn)框架
密碼模塊是方案的基礎(chǔ),主要提供哈希值計(jì)算、業(yè)務(wù)數(shù)據(jù)加解密、公鑰的生成及驗(yàn)證、公私鑰點(diǎn)乘運(yùn)算等算法接口;密碼協(xié)議棧是方案的核心,基于實(shí)時(shí)傳輸協(xié)議(Real-time Transport Protocol,RTP)協(xié)議棧實(shí)現(xiàn)密碼協(xié)議的交互和用戶信息的傳輸,為用戶提供方案在實(shí)施過程中的機(jī)密性、完整性、前向安全性和抗重放性等保護(hù)措施[2];用戶數(shù)據(jù)庫服務(wù)于各類應(yīng)用。它在可信任終端間的安全遷移是本方案的主要目的。
SIP 實(shí)現(xiàn)兩個(gè)寬帶終端之間的會(huì)話控制功能,RTP 實(shí)現(xiàn)端到端的實(shí)時(shí)數(shù)據(jù)傳輸。語音通信過程一般分為會(huì)話建立、會(huì)話、會(huì)話結(jié)束3 個(gè)階段[3]。密碼協(xié)議的實(shí)施主要在會(huì)話階段進(jìn)行,通過終端認(rèn)證請(qǐng)求、終端認(rèn)證應(yīng)答、用戶數(shù)據(jù)請(qǐng)求和用戶數(shù)據(jù)傳輸4 個(gè)流程,完成雙方認(rèn)證鑒權(quán)、業(yè)務(wù)密鑰協(xié)商和用戶數(shù)據(jù)傳輸?shù)裙ぷ?,如圖3 所示。
圖3 基本數(shù)據(jù)流程
密碼協(xié)議的交互和用戶信息的傳輸基于RTP 協(xié)議實(shí)現(xiàn),數(shù)據(jù)采用統(tǒng)一格式進(jìn)行封裝。根據(jù)RFC3551的定義,采用RTP 協(xié)議的應(yīng)用,必須指定一個(gè)凈荷類型作為媒體流的編碼格式識(shí)別[4]。凈荷類型的取值范圍為0~127,其中動(dòng)態(tài)凈荷類型沒有固定的標(biāo)識(shí)編號(hào),取值范圍為96~127。方案中選用動(dòng)態(tài)凈荷類型,作為區(qū)分本協(xié)議與正常RTP 媒體數(shù)據(jù)的標(biāo)識(shí)。
將終端B 的用戶信息遷移到可信任終端A 上,用戶需要先以管理員權(quán)限登錄終端A,在A 的操作界面內(nèi)輸入B 的電話號(hào)碼和身份認(rèn)證信息,然后由A 向B 發(fā)起用戶信息遷移請(qǐng)求。
用戶數(shù)據(jù)遷移過程中,每個(gè)步驟涉及到的符號(hào)說明如表1 所示。
表1 協(xié)議涉及的符號(hào)說明
終端A 產(chǎn)生一組臨時(shí)公私鑰對(duì)TPKA/TSKA,生成一組32 字節(jié)隨機(jī)數(shù)RandA;利用本次通話的媒體通道信息,計(jì)算參數(shù):
利用參數(shù)K1和HmacK()算法,計(jì)算RandA+TPKA的摘要信息,記為HmacK1(RandA+TPKA);
終端A 利用RandA+TPKA+HmacK1(RandA+TPKA)構(gòu)造終端認(rèn)證請(qǐng)求,通過媒體通道發(fā)往終端B。
終端B 提取RandA,利用本次通話的通道信息,計(jì)算參數(shù):
利用參數(shù)K1和HmacK()算法,計(jì)算RandA+TPKA的摘要信息,與報(bào)文攜帶的(RandA+TPKA)比較,如果失敗結(jié)束本流程,成功則繼續(xù)執(zhí)行;
終端B 對(duì)終端A 的臨時(shí)公鑰TPKA進(jìn)行有效性驗(yàn)證,失敗結(jié)束流程,成功繼續(xù)執(zhí)行;
終端B 產(chǎn)生一組臨時(shí)公私鑰對(duì)TPKB/TSKB,生成一組32 字節(jié)的隨機(jī)數(shù)RandB;利用參數(shù)K1和HmacK()算法,計(jì)算RandB+TPKB的摘要信息,記為(RandB+TPKB);
利用A 的臨時(shí)公鑰TPKA,對(duì)RandB+TPKB+(RandB+TPKB)加密,構(gòu)造終端認(rèn)證應(yīng)答,利用媒體通道發(fā)往A;
終端B 計(jì)算保護(hù)業(yè)務(wù)數(shù)據(jù)的臨時(shí)密鑰K2=RandB⊕TSKB⊙TPKA;
終端A 利用設(shè)備臨時(shí)私鑰TSKA解密認(rèn)證應(yīng)答,提取終端B 的臨時(shí)公鑰TPKB、隨機(jī)數(shù)RandB以及校驗(yàn)數(shù)據(jù)(RandB+TPKB);
A利用參數(shù)K1和HmacK() 算法,計(jì)算RandB+TPKB的摘要信息,并與報(bào)文攜帶的檢驗(yàn)數(shù)據(jù)進(jìn)行比較,失敗結(jié)束流程,通過則繼續(xù)執(zhí)行;
終端A 對(duì)終端B 的臨時(shí)公鑰TPKB進(jìn)行有效性判斷,失敗結(jié)束流程,成功繼續(xù)執(zhí)行;
終端A 計(jì)算保護(hù)業(yè)務(wù)數(shù)據(jù)的臨時(shí)密鑰K2=RandB⊕TSKA⊙TPKB;
用戶在終端B 的身份認(rèn)證信息包含用戶名、密碼或指紋等內(nèi)容,記為USERB,終端A 的設(shè)備信息記為DEVA,終端A 利用K2對(duì)USERB、DEVA進(jìn)行加密,構(gòu)造用戶數(shù)據(jù)下載請(qǐng)求,通過媒體通道發(fā)往終端B。
終端B 利用K2對(duì)A 的用戶數(shù)據(jù)請(qǐng)求解密,得到用戶身份認(rèn)證信息USERB、A 的設(shè)備信息DEVA;
終端B 驗(yàn)證用戶身份認(rèn)證信息USERB,驗(yàn)證失敗則終止流程,成功繼續(xù)進(jìn)行;
終端B記錄設(shè)備信息DEVA,準(zhǔn)備用戶數(shù)據(jù)信息;
終端B 將用戶數(shù)據(jù)根據(jù)RTP 報(bào)文大小進(jìn)行分片,第r片分片記為Datar,利用K2對(duì)每一分片進(jìn)行加密,通過媒體通道發(fā)往終端A;
終端A 利用K2解密,獲取用戶數(shù)據(jù)分片Datar,向終端B 響應(yīng)分片接收成功應(yīng)答;
用戶數(shù)據(jù)傳輸與應(yīng)答過程反復(fù)執(zhí)行,直到所有用戶信息發(fā)送完畢,終端A 通知B 數(shù)據(jù)接收完畢,并通過信令通知對(duì)方結(jié)束本次會(huì)話。
本文提出了一種基于語音通道實(shí)現(xiàn)用戶數(shù)據(jù)安全遷移的方法。與其他用戶數(shù)據(jù)遷移方案相比,方案具備以下優(yōu)勢(shì):
(1)利用電話呼叫建立媒體通道傳輸用戶數(shù)據(jù),不受傳送距離的限制,增強(qiáng)方案的可用性;
(2)在不影響用戶使用的基礎(chǔ)上,啟動(dòng)用戶數(shù)據(jù)遷移,更能貼合用戶的使用習(xí)慣,提升用戶體驗(yàn);
(3)采用對(duì)稱和非對(duì)稱相結(jié)合的密碼體制,簡化了密鑰管理,降低了密鑰被破譯、竊取的風(fēng)險(xiǎn),有效提升了數(shù)據(jù)安全[5];
(4)利用橢圓曲線在有限域上離散對(duì)數(shù)的計(jì)算困難性,完成通信雙方的身份認(rèn)證,利用會(huì)話協(xié)商的媒體通道信息生成參數(shù),第三方不可能偽造、篡改合法的協(xié)議信息,有效抵抗了假冒攻擊行為;
(5)利用隨機(jī)數(shù)為協(xié)議提供抗重放特性,有效防止非法人員利用歷史交互信息,通過偽裝、欺騙等手段竊取用戶數(shù)據(jù)。