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