[徐偉杰 肖正亞 余曉穎]
vBRAS 是基于網(wǎng)絡(luò)功能虛擬化(Network Function Virtualization,NFV)和軟件定義網(wǎng)絡(luò)(Software-Defined Networking,SDN)解決方案的云化BRAS,其控制面(Control Plane,CP)軟件按需部署分布在由通用服務(wù)器、交換機(jī)和存儲(chǔ)設(shè)備組成的資源池上,與底層硬件解耦,從封閉走向開放。vBRAS 的用戶面(User Plane,UP)分為運(yùn)行在高性能轉(zhuǎn)發(fā)硬件(ASIC、NP、FPGA 等)的實(shí)體UP 和運(yùn)行在x86 服務(wù)器上的虛擬UP,與控制面之間通過系統(tǒng)內(nèi)部轉(zhuǎn)控分離接口通信[3~6]。目前,運(yùn)營商傾向于將部分的現(xiàn)網(wǎng)BRAS 設(shè)備進(jìn)行改造,作為實(shí)體UP 繼續(xù)使用。
vBRAS 在解決傳統(tǒng)BRAS 局限性問題同時(shí)也引入了新的安全問題。比如,UP 與CP 密切相關(guān),當(dāng)UP 不能從CP 獲取轉(zhuǎn)發(fā)信息時(shí)表現(xiàn)為離線狀態(tài),導(dǎo)致vBRAS 失效?,F(xiàn)網(wǎng)部署vBRAS 時(shí),雖然UP 到CP 的網(wǎng)絡(luò)鏈路采取物理雙路由等措施以提升可靠性,但是從網(wǎng)絡(luò)安全方面考慮,CP 和UP 之間的內(nèi)部接口仍然可能遭受攻擊而導(dǎo)致連接中斷。針對上述問題,本文研究分析了各個(gè)內(nèi)部接口所用承載協(xié)議的安全機(jī)制,并且結(jié)合vBRAS 應(yīng)用特點(diǎn),分別給出了相應(yīng)的安全防護(hù)措施建議。
vBRAS 系統(tǒng)由CP 和UP 兩部分網(wǎng)元組成,如圖1 所示。CP 作為VNF,軟件運(yùn)行在網(wǎng)絡(luò)功能虛擬化基礎(chǔ)設(shè)施(NFV Infrastructure,NFVI)上,主要實(shí)現(xiàn)地址管理、接入管理、認(rèn)證授權(quán)計(jì)費(fèi)(AAA)、用戶管理、UP 管理等功能。UP主要實(shí)現(xiàn)傳統(tǒng)BRAS 流量轉(zhuǎn)發(fā)面功能以及路由控制面功能(包括路由、組播及MPLS 等)。
圖1 vBRAS 系統(tǒng)示意圖
vBRAS 系統(tǒng)的接口分為外部接口和內(nèi)部接口,如圖1所示。外部接口是vBRAS 系統(tǒng)與外圍系統(tǒng)的接口,分別是:
(1)業(yè)務(wù)系統(tǒng)接口:CP 與Radius 服務(wù)器、DHCP 服務(wù)器等業(yè)務(wù)系統(tǒng)的接口;
(2)應(yīng)用系統(tǒng)接口:CP 與應(yīng)用系統(tǒng)的接口,負(fù)責(zé)提供BRAS 能力開放;
中學(xué)生的自控能力比較差,喜歡玩手機(jī)的學(xué)生,習(xí)慣了手機(jī)帶來的輕松愉悅的信息,對知識(shí)學(xué)習(xí)感到枯燥乏味、沒興趣,久而久之就失去了對知識(shí)的求知欲,產(chǎn)生厭學(xué)情緒,從而導(dǎo)致無心學(xué)習(xí),成績一天比一天差。課堂內(nèi),老師正講得投入,少數(shù)同學(xué)在下面低頭玩手機(jī),玩的不亦樂乎;寢室內(nèi),別的同學(xué)都休息了,少數(shù)同學(xué)手機(jī)屏幕閃亮,喋喋不休。整天沉迷于手機(jī)世界里的孩子,已經(jīng)把大量的本該學(xué)習(xí)的時(shí)間和精力埋葬在手機(jī)里了,導(dǎo)致休息不好,來到教室就犯困,有個(gè)別同學(xué)干脆伏臺(tái)睡覺,從而學(xué)習(xí)效率低下,成績必然下降。
(3)網(wǎng)管系統(tǒng)接口:CP、UP 與網(wǎng)管系統(tǒng)的接口;
(4)MANO 接口:CP 作為VNF,其部署和生命周期管理通過管理和編排(Management and Orchestration,MANO)完成,MANO 接口參考ETSI 標(biāo)準(zhǔn),是vBRAS新增接口。
內(nèi)部接口是CP 與UP 之間的接口[3~6],分別是:
(1)管理接口:CP向UP下發(fā)配置,包括UP的子接口、VLAN 配置,QoS、ACL 模板配置等,采用 NETCONF(Network Configuration Protocol)協(xié)議承載。
(2)控制接口:CP 向UP 下發(fā)業(yè)務(wù)表項(xiàng)以及UP 向CP 上報(bào)業(yè)務(wù)事件,采用OpenFlow 協(xié)議承載。
(3)業(yè)務(wù)接口:CP 與UP 之間基于VXLAN(Virtual eXtensible Local Area Network)隧道傳遞PPPoE 和IPoE撥號(hào)協(xié)議報(bào)文。
在vBRAS 的外部接口中,BRAS 原有的業(yè)務(wù)系統(tǒng)接口、應(yīng)用系統(tǒng)接口和網(wǎng)管系統(tǒng)接口可以參照運(yùn)營商現(xiàn)網(wǎng)安全防護(hù)措施進(jìn)行保護(hù),vBRAS 新增的MANO 接口可以參考ETSI 標(biāo)準(zhǔn)中相關(guān)安全防護(hù)策略進(jìn)行保護(hù)。
在vBRAS 的內(nèi)部接口中,業(yè)務(wù)接口、控制接口和管理接口都是新增的接口,沒有可以直接參考的安全防護(hù)措施。此外,轉(zhuǎn)控分離還體現(xiàn)在CP 和UP 的部署位置上,CP 部署位置在地市的核心DC(Data Center),而為實(shí)現(xiàn)業(yè)務(wù)扁平化、本地化,滿足高價(jià)值視頻等業(yè)務(wù)需求,UP部署位置下沉到邊緣DC,內(nèi)部接口暴露在公網(wǎng)中,進(jìn)一步增大暴露風(fēng)險(xiǎn)。下文針對業(yè)務(wù)接口、控制接口和管理接口的安全防護(hù)分別進(jìn)行研究。
華為、中興和SDN/NFV 聯(lián)盟的技術(shù)白皮書以及RFC8772 一致采用NETCONF 協(xié)議承載管理接口。NETCONF是一種網(wǎng)絡(luò)管理協(xié)議[7],其具有四層結(jié)構(gòu),分別為內(nèi)容層、操作層、RPC(Remote Procedure Call)層及傳輸層,以XML 作為配置數(shù)據(jù)和協(xié)議消息的編碼方式,用PRC 作為封裝結(jié)構(gòu)來實(shí)現(xiàn)獲取、更新及刪除等功能。NETCONF 使用YANG 語言對內(nèi)容層的配置信息和狀態(tài)信息以及操作層中的操作進(jìn)行建模。
NETCONF 協(xié)議采用C/S 架構(gòu),網(wǎng)絡(luò)設(shè)備或軟件在NETCONF 協(xié)議體系中分為兩種角色,即NETCONF 客戶端和NETCONF 服務(wù)器端。在vBRAS 系統(tǒng)中,接受管理的UP 作為NETCONF 服務(wù)器端接收配置消息,而負(fù)責(zé)管理的CP 作為NETCONF 客戶端向NETCONF 服務(wù)器端發(fā)送配置消息。
NETCONF 協(xié)議的通信流程大致分為建立會(huì)話、發(fā)送消息和關(guān)閉會(huì)話三個(gè)步驟。建立會(huì)話的請求由NETCONF客戶端主動(dòng)發(fā)起,根據(jù)安全傳輸層使用的協(xié)議要求,發(fā)送建立連接的請求給NETCONF 服務(wù)器端并且通過其認(rèn)證,建立起一條加密的連接。在安全連接建立后,雙方即可開始進(jìn)行安全的通信。通信雙方在操作期間一直保持連接狀態(tài),為上層操作提供安全可靠穩(wěn)定的數(shù)據(jù)傳輸。RFC6241指出NETCONF 安全連接必須能夠提供身份認(rèn)證、數(shù)據(jù)完整性、保密性以及重放保護(hù),連接可以采用SSH(Secure Shell)、TLS(Transport Layer Security)等安全傳輸協(xié)議,并且必須支持SSH。RFC6242[8]定義了NETCONF 使用SSH 的方式,RFC7589 等[9,10]定義了NETCONF 使用TLS 的方式。
SSH 協(xié)議是由IETF 制定的正式行業(yè)標(biāo)準(zhǔn)[11],提供了一個(gè)安全的遠(yuǎn)程登錄服務(wù)以取代 TELNET 和其他不安全的遠(yuǎn)程登錄模式。SSH 協(xié)議共有兩個(gè)版本,分別是SSHV1和SSHV2。SSH 協(xié)議框架包括傳輸層協(xié)議、用戶認(rèn)證協(xié)議和連接協(xié)議,如圖2(a)所示。傳輸層協(xié)議提供對服務(wù)器端認(rèn)證、數(shù)據(jù)機(jī)密性和信息完整性功能,用戶認(rèn)證協(xié)議為客戶端認(rèn)證服務(wù)器端提供支持,連接協(xié)議把多種加密隧道復(fù)用為多個(gè)邏輯信道,提供給更高層的應(yīng)用協(xié)議使用。
TLS 協(xié)議也是由IETF 制定的正式行業(yè)標(biāo)準(zhǔn)[12],主要目的是為網(wǎng)絡(luò)中通信的雙方建立一個(gè)安全的通信信道,為通信雙方提供認(rèn)證、機(jī)密性和完整性。TLS 協(xié)議共有四個(gè)版本,分別是TLS1.0、TLS1.1、TLS1.2 和TLS1.3。TLS1.3 協(xié)議框架主要包括握手協(xié)議和記錄協(xié)議,握手協(xié)議中還包括警告協(xié)議,如圖2(b)所示。握手協(xié)議在客戶端和服務(wù)器端雙方第一次建立連接時(shí)協(xié)商協(xié)議版本、選擇密碼算法、認(rèn)證通信雙方,協(xié)商算法所需參數(shù),且能防篡改。記錄協(xié)議用握手協(xié)議協(xié)商好的算法和參數(shù)對消息流進(jìn)行分塊加密。
圖2 SSH/TLS 協(xié)議架構(gòu)示意圖
在vBRAS 系統(tǒng)中,管理接口NETCONF 使用TLS 能夠?qū)崿F(xiàn)客戶端和服務(wù)器端雙向身份驗(yàn)證,避免攻擊者冒充,且更容易管理大規(guī)模網(wǎng)絡(luò),相較于使用SSH 具有優(yōu)勢,因此本文建議使用TLS。雖然TLS1.3 引入了一種0-RTT(Round Trip Time)的機(jī)制,在開始TLS 密鑰協(xié)商的時(shí)候就能附帶一部分經(jīng)過加密的數(shù)據(jù)傳遞給對方,以減少握手延遲,但是0-RTT 使用PSK 導(dǎo)出的早期流密鑰加密,不能保證前向安全,也不能保證不受重放攻擊,除非服務(wù)器采取協(xié)議外的防范措施[12]。本文認(rèn)為不宜采用0-RTT 機(jī)制,應(yīng)該采用1-RTT 機(jī)制。
華為、中興和SDN/NFV 聯(lián)盟的技術(shù)白皮書一致采用OpenFlow 協(xié)議承載控制接口,RFC8772 則提出一種新的S-CUPS 協(xié)議承載控制接口。由于華為、中興等傳統(tǒng)BRAS 設(shè)備廠商把持著運(yùn)營商vBRAS 市場的主要份額,因此本文針對OpenFlow 協(xié)議進(jìn)行分析。
OpenFlow 是SDN 控制平面和數(shù)據(jù)平面之間的多種通信協(xié)議之一,因其良好的靈活性、規(guī)范性,被視作SDN通信協(xié)議事實(shí)上的標(biāo)準(zhǔn)。OpenFlow 協(xié)議已經(jīng)從1.0 版本演進(jìn)到了1.5 版本,截至目前2.0 版本仍未推出。
OpenFlow協(xié)議架構(gòu)由控制器、OpenFlow交換機(jī)以及安全通道組成??刂破鲗W(wǎng)絡(luò)進(jìn)行集中控制,實(shí)現(xiàn)控制層功能,OpenFlow 交換機(jī)負(fù)責(zé)數(shù)據(jù)層轉(zhuǎn)發(fā),兩者之間通過安全通道進(jìn)行消息交互,實(shí)現(xiàn)表項(xiàng)下發(fā)、狀態(tài)上報(bào)等功能。在vBRAS 系統(tǒng)中,CP 是控制器,UP 是OpenFlow 交換機(jī)。安全通道的信息交互必須按照OpenFlow 協(xié)議規(guī)定的格式來執(zhí)行,通常采用TLS 加密,也支持簡單的TCP 直接傳輸[13]。在控制接口通信中,OpenFlow 安全通道必須采用TLS 連接加密,啟動(dòng)后通過6633 端口進(jìn)行TCP 連接,雙方交換證書進(jìn)行認(rèn)證。TLS 同樣地應(yīng)該采用1-RTT 機(jī)制。
華為、中興和SDN/NFV 聯(lián)盟的技術(shù)白皮書以及RFC8772 一致采用VXLAN 隧道來傳遞PPPoE 和IPoE 撥號(hào)協(xié)議報(bào)文。VXLAN 是一種隧道協(xié)議,其原理是引入U(xiǎn)DP 格式的外層隧道(MAC in UDP)作為數(shù)據(jù)的鏈路層,將原有二層數(shù)據(jù)報(bào)文作為隧道凈荷,在三層網(wǎng)絡(luò)中通過路由轉(zhuǎn)發(fā),實(shí)現(xiàn)大二層互聯(lián)。VXLAN 使用24 位的VNI標(biāo)識(shí)符以解決VLAN ID 的數(shù)量限制限制問題。VXLAN本身缺乏安全保障機(jī)制[14],體現(xiàn)在VXLAN 隧道終點(diǎn)(VXLAN Tunnel Endpoint,VTEP)設(shè)備之間不進(jìn)行身份認(rèn)證,VXLAN 隧道不對承載的流量進(jìn)行加密保護(hù)等方面。
本文建議業(yè)務(wù)接口按需選擇以下兩種安全防護(hù)措施:
(1)互聯(lián)網(wǎng)絡(luò)層安全(Internet Protocol Security,IPsec)
IPSec 協(xié)議簇是通過認(rèn)證頭(Authentication Header,AH)協(xié)議和封裝安全載荷(Encapsulating Security Payload,ESP)協(xié)議以及互聯(lián)網(wǎng)密鑰交換(Internet Key Exchange,IKE) 協(xié)議來實(shí)現(xiàn)的。由于AH 只提供數(shù)據(jù)源驗(yàn)證和數(shù)據(jù)完整性校驗(yàn)功能,而ESP 負(fù)責(zé)提供數(shù)據(jù)源驗(yàn)證、完整性校驗(yàn)以及IP 報(bào)文加密功能,因此建議使用ESP 對VXLAN 通信進(jìn)行安全認(rèn)證和加密保護(hù)。
IPSec 協(xié)議有傳輸模式和隧道兩種封裝模式。如圖3所示,在傳輸模式下,ESP 頭插在原始IP 頭之后、傳輸層協(xié)議之前;在隧道模式下,ESP 頭插在原始IP 頭之前,并生成一個(gè)新IP 頭插在ESP 之前。傳輸模式適用于主機(jī)之間進(jìn)行通信,隧道模式適用于網(wǎng)關(guān)之間進(jìn)行通信。UP和CP 通過業(yè)務(wù)接口直接進(jìn)行通信,因此選擇傳輸模式。
圖3 IPsec ESP 兩種不同模式示意圖
(2)VTEP 身份認(rèn)證+VXLAN 隧道內(nèi)層信息加密
UP 和CP 定制開發(fā)VTEP 身份認(rèn)證功能。通過擴(kuò)展VXLAN 頭,在指定字段中提供接收端VTEP 的身份標(biāo)識(shí)信息。發(fā)送端VTEP 在發(fā)送VXLAN 報(bào)文時(shí),在指定字段中填入接收端VTEP 的身份標(biāo)識(shí)信息。接收端VTEP 在接收到VXLAN 報(bào)文后,從指定字段中提取出身份標(biāo)識(shí)信息,與本地存儲(chǔ)的身份標(biāo)識(shí)信息進(jìn)行比較,當(dāng)兩者一致時(shí)繼續(xù)對VXLAN 報(bào)文進(jìn)行處理,反之將VXLAN 報(bào)文丟棄[15]。
UP 和CP 定制開發(fā)VXLAN 隧道內(nèi)層信息加密功能。通過擴(kuò)展VXLAN 頭,對VXLAN 報(bào)文的內(nèi)層信息進(jìn)行加密處理,加密密鑰是根據(jù)各自的初始密鑰與VXLAN 報(bào)文外層IP 頭的網(wǎng)絡(luò)標(biāo)識(shí)字段邏輯運(yùn)算后再進(jìn)行MD5 運(yùn)算生成的動(dòng)態(tài)密鑰[16]。
第一種安全防護(hù)措施的優(yōu)點(diǎn)是IPsec 能同時(shí)實(shí)現(xiàn)認(rèn)證和加密,技術(shù)很成熟,并且UP 設(shè)備已經(jīng)支持,缺點(diǎn)是要對整個(gè)VXLAN 報(bào)文進(jìn)行加密,封裝新的報(bào)文頭,消耗計(jì)算資源和帶寬資源較多。第二種安全防護(hù)措施的優(yōu)點(diǎn)是只需對VXLAN 報(bào)文的內(nèi)容進(jìn)行加密和封裝,消耗計(jì)算資源和帶寬資源較少,缺點(diǎn)是可用技術(shù)較不成熟,UP 與CP 設(shè)備開發(fā)工作量較大。綜合分析后,建議優(yōu)先采用第一種安全防護(hù)措施。
vBRAS 內(nèi)部接口整體安全防護(hù)措施如圖4 所示。此外,承載UP 和CP 內(nèi)部接口的設(shè)備物理接口是暴露在公網(wǎng)上的,攻擊者很容易通過發(fā)送大量偽造的內(nèi)部接口報(bào)文和非內(nèi)部接口報(bào)文發(fā)起飽和攻擊,導(dǎo)致設(shè)備一直忙于處理偽造報(bào)文,耗盡設(shè)備資源,嚴(yán)重影響正常內(nèi)部接口通信。針對這類攻擊,建議設(shè)備上開啟基于五元組的訪問控制列表(Access Control List,ACL),對偽造報(bào)文行過濾;分別給三個(gè)內(nèi)部接口分配獨(dú)立硬件資源,避免其中某個(gè)接口遭受到非正常流量擁塞時(shí)影響其他接口工作;每個(gè)內(nèi)部接口配備限速能力,當(dāng)檢測到流量異常時(shí),將每秒處理報(bào)文的最大數(shù)量降低至預(yù)設(shè)值。
圖4 vBRAS 內(nèi)部接口安全防護(hù)示意圖
本文從網(wǎng)絡(luò)安全角度出發(fā),針對vBRAS 內(nèi)部接口安全防護(hù)問題進(jìn)行研究,提出了安全防護(hù)措施建議。研究結(jié)果既填補(bǔ)了現(xiàn)有vBRAS 技術(shù)白皮書在安全方面的空白,也能為運(yùn)營商提升vBRAS 安全性提供借鑒??紤]到vBRAS 引入的新的安全問題還包括CP 虛擬化網(wǎng)元內(nèi)部的安全防護(hù)等問題,需要進(jìn)一步研究解決。