安全機(jī)制始于在兩個(gè)端點(diǎn)間建立安全關(guān)聯(lián) (SA)。建立 SA 要求分兩步走:第一步是進(jìn)行兩個(gè)端點(diǎn)的認(rèn)證;第二步是交換加密與解密的密鑰。SA 建立后,兩個(gè)端點(diǎn)都用密鑰進(jìn)行加密與解密。
在兩個(gè)端點(diǎn)之間,數(shù)據(jù)路徑上還有許多其它設(shè)備要考慮到。如果路徑中至少有一個(gè)設(shè)備與 SA 建立相關(guān),則 SA 處于傳輸模式。中間設(shè)備稱作安全網(wǎng)關(guān) (SG),SG 具有從兩個(gè)端點(diǎn)進(jìn)行數(shù)據(jù)包加密與解密的密鑰,而兩個(gè)端點(diǎn)不能進(jìn)行數(shù)據(jù)包的加密與解密。因此,在傳輸模式中,SG 可提供截取盒子 (box) 所需的密鑰,以支持 CALEA。
如果路徑中沒(méi)有其它設(shè)備參與 SA 建立,則 SA 運(yùn)行于隧道模式。在這種情況下,只有這兩個(gè)端點(diǎn)具有加密與解密的密鑰。這時(shí),執(zhí)法人員仍可截取數(shù)據(jù)包,但他們沒(méi)有密鑰就無(wú)法進(jìn)行數(shù)據(jù)包解密。因此,隧道模式網(wǎng)絡(luò)不采取新方法就無(wú)法支持 CALEA。
呼叫信號(hào)發(fā)送與 CALEA
在 VoP 網(wǎng)絡(luò)中,信號(hào)數(shù)據(jù)包采用與媒體路徑不同的路徑。信號(hào)數(shù)據(jù)包在端點(diǎn)與呼叫服務(wù)器 (CS) 或代理服務(wù)器 (PS) 之間傳輸,而媒體數(shù)據(jù)包則在兩個(gè)端點(diǎn)間傳輸。端點(diǎn)與 CS 或 PS 之間通常有一個(gè) SA,兩個(gè)端點(diǎn)間通常也有一個(gè) SA。每個(gè) SA 都彼此獨(dú)立。端點(diǎn)與 CS 之間的 SA 可對(duì)所有呼叫建立一次,也可對(duì)每次呼叫分別建立。但是,端點(diǎn)與 PS 之間的 SA 則必須在兩個(gè)端點(diǎn)間每次呼叫的 SA 之前建立。為了防止干擾信號(hào),SA 必須具有有限的時(shí)限,通常為幾秒鐘至幾分鐘。如果時(shí)限過(guò)期,則 SA 將斷開(kāi)。因此,SA 必須在時(shí)限過(guò)期前重新建立或更新。
在信號(hào)數(shù)據(jù)包內(nèi),媒體路徑在會(huì)話描述協(xié)議 (SDP) 等不同的協(xié)議中指定。媒體路徑由多個(gè)參數(shù)決定,如應(yīng)用端口、RTP/RTCP 端口以及 IP 端口。如果執(zhí)法人員不能進(jìn)行信號(hào)發(fā)送路徑與媒體描述協(xié)議的解密與解釋,則執(zhí)法人員就不知道兩個(gè)端點(diǎn)間選擇了哪條路徑,因此也就無(wú)法進(jìn)行媒體數(shù)據(jù)包的截取與解釋。
NAT 與 CALEA
網(wǎng)絡(luò)地址轉(zhuǎn)換 (NAT) 用于設(shè)備中將一系列專用 IP 地址映射到一個(gè)或更多公用 IP 地址中。對(duì) SIP、SNTP、FTP 等不同應(yīng)用,每個(gè)應(yīng)用中必須實(shí)施專用算法 (ALG) 以支持 NAT。
為了解決 CALEA 的安全問(wèn)題,CALEA 截取盒必須在 SA 建立的初期截取發(fā)自目標(biāo)設(shè)備的數(shù)據(jù)包,以獲得所需的密鑰以及其它安全參數(shù)。在哪里進(jìn)行截取取決于以下諸多因素:NAT、動(dòng)態(tài)主機(jī)配置協(xié)議 (DHCP)、VPN/安全端點(diǎn)等。
如果 VPN/安全端點(diǎn)為 PC 或 IPP,則端點(diǎn)如何獲得 IP 地址非常重要。如果端點(diǎn) IP 地址通過(guò)動(dòng)態(tài)主機(jī)配置協(xié)議 (DHCP) 獲得,則不存在 NAT,截取可在任何設(shè)備中進(jìn)行。但是,來(lái)自相同設(shè)備的數(shù)據(jù)包可能選擇不同的路由,因此,我們最好在數(shù)據(jù)包選擇另一路徑前(通常是從 CMTS 到因特網(wǎng))截取數(shù)據(jù)包。
有 NAT 時(shí),最好的截取處就是 NAT 功能所在的地方。正如“PacketCable 電子監(jiān)控規(guī)范”定義的一樣,這常常是 MTA,而不是 CMTS。但是,NAT 也可能在 CMTS 上。NAT 單元將專用 IP 地址映射到公用 IP 地址上,反之亦然,因此數(shù)據(jù)包應(yīng)在執(zhí)行 NAT 之前在 LAN 站點(diǎn)上截取。否則,截取盒就要在相同公用 IP 地址的混合消息流中進(jìn)行數(shù)據(jù)包過(guò)濾。此外,NAT 單元帶有應(yīng)用算法 (ALG),可處理專用的轉(zhuǎn)換功能。例如,最初傳送進(jìn)來(lái)的 SIP 呼叫只有公用 IP 地址。NAT 單元如何知道應(yīng)該映射到哪個(gè)專用 IP 地址呢?它必須運(yùn)行 SIP ALG,其以 SIP 消息中的用戶 ID(如[email protected])或報(bào)頭中的 CallerID 來(lái)查找 Alice 的專用 IP 地址。請(qǐng)注意,Alice 必須已經(jīng)以她專用的 IP 地址及其姓名和/或 CallerID 在 NAT 器件上注冊(cè)。
一旦 CALEA 截取盒能夠截取目標(biāo)設(shè)備的數(shù)據(jù)包,則其應(yīng)設(shè)法獲得 SA建立消息。如果安全機(jī)制不是基于標(biāo)準(zhǔn)協(xié)議之上,則執(zhí)法人員解釋安全消息以及隨后進(jìn)行 SA 消息與媒體數(shù)據(jù)包的解密就會(huì)面臨很大的困難。如果安全消息基于標(biāo)準(zhǔn)協(xié)議之上,則 CALEA 截取盒應(yīng)該可從 SA 建立消息計(jì)算出密鑰、密鑰大小以及加密方法。
美國(guó) TIA 發(fā)布了一系列 PSTN 中 CALEA 的消息格式。由于因特網(wǎng)的架構(gòu)、協(xié)議集、消息格式與呼叫流程 (call flow) 完全不同,因此 TIA 必須發(fā)布因特網(wǎng) CALEA 傳輸?shù)娜孪盗幸?guī)范。PacketCable 規(guī)范可作為子集,事實(shí)上 TIA 也提到了這些情況。但是,PacketCable 安全規(guī)范與 PacketCable 電子監(jiān)控的修改必須滿足許多 VoP 安全要求。此外,盡管原理相同,非基于線纜的 VoP 安全解決方案應(yīng)在 PacketCable 規(guī)范外另行規(guī)定。