秦晰,唐國棟,常朝穩(wěn),2
?
基于密碼標識的SDN安全控制轉發(fā)方法
秦晰1,唐國棟1,常朝穩(wěn)1,2
(1. 信息工程大學三院,河南 鄭州 450001;2. 鄭州信大先進技術研究院,河南 鄭州 450001)
針對軟件定義網(wǎng)絡(SDN, software defined networking)中匹配域范圍有限和缺乏有效的數(shù)據(jù)來源驗證機制問題,提出基于密碼標識的SDN安全控制轉發(fā)方法。首先,根據(jù)用戶身份、文件屬性或業(yè)務內(nèi)容等特征信息生成密碼標識,為數(shù)據(jù)流打上密碼標識并用基于密碼標識的私鑰簽名。其次,在其進出網(wǎng)絡時驗證簽名,確保數(shù)據(jù)的真實性,同時將密碼標識設計為轉發(fā)設備能識別的匹配項,基于密碼標識定義網(wǎng)絡轉發(fā)行為,形成基于人、物、業(yè)務流等細粒度網(wǎng)絡控管能力。最后,通過實驗分析驗證該方法的有效性。
軟件定義網(wǎng)絡;密碼標識;安全控制轉發(fā);流表匹配
軟件定義網(wǎng)絡[1]是由美國斯坦福大學提出的一種邏輯控制和數(shù)據(jù)轉發(fā)分離的新型網(wǎng)絡架構[2],被稱為未來網(wǎng)絡的重要發(fā)展方向。其集中管理和開放可編程等特性有效簡化網(wǎng)絡管理工作,可為用戶提供個性的定制化服務,但降低了對SDN的攻擊門檻,給其帶來一系列安全威脅與挑戰(zhàn)[3]。目前,針對SDN中存在的安全問題已有一些解決方案[4~7],但轉發(fā)設備流表匹配時缺乏有效數(shù)據(jù)來源驗證機制,不能有效監(jiān)測數(shù)據(jù)分組偽造等攻擊行為且攻擊者可對其行為否認,此外,現(xiàn)有的OpenFlow協(xié)議只能根據(jù)網(wǎng)絡前4層特征信息控制數(shù)據(jù)轉發(fā)行為,控制粒度有限,難以滿足網(wǎng)絡業(yè)務精確控制的需求。
結合SDN的特點,研究網(wǎng)絡空間密碼標識理論與技術,提出一種基于密碼標識的SDN安全控制轉發(fā)方法,在數(shù)據(jù)分組進出網(wǎng)絡時對其來源進行驗證,確保用戶的不可否認性和數(shù)據(jù)分組的真實性,基于密碼標識控制數(shù)據(jù)轉發(fā),從應用層、控制層和數(shù)據(jù)層全方位進行網(wǎng)絡流的安全控制,形成基于人、物、業(yè)務流等細粒度網(wǎng)絡控管能力,為實現(xiàn)SDN數(shù)據(jù)流的安全控制轉發(fā)提供一種有效方法。
流表匹配時,現(xiàn)有2種解決方案驗證數(shù)據(jù)的來源,防止數(shù)據(jù)分組偽造。一種解決思路是在控制器開發(fā)安全模塊,由控制器直接進行實時監(jiān)控和檢測。Yao等[8]提出VAVE安全框架,在控制器中嵌入源地址驗證模塊,由控制器過濾偽造地址,實現(xiàn)敏捷靈活的源地址驗證操作;Casado等[9]提出Ethane架構,通過中央控制器向基于流的以太網(wǎng)交換機下發(fā)策略,統(tǒng)一管理流的準入,并由控制器完成對主機入網(wǎng)和用戶入網(wǎng)的認證;Shin等[10]提出一種面向SDN控制器的可組合安全模塊開發(fā)框架FRESCO,在SDN控制器中加入一個安全模塊,允許網(wǎng)絡管理人員創(chuàng)建新的模塊化庫,整合和擴展安全功能,使用SDN控制器、硬件控制和管理流量,快速實現(xiàn)部署多個通用網(wǎng)絡安全功能,可替代防火墻和IDS等檢測工具。然后在控制器開發(fā)安全模塊,由控制器直接進行實時監(jiān)控和檢測會增加控制器負擔,增大控制器遭受DDoS攻擊的概率。另一種解決思路是依托SDN架構,將SDN交換機作為數(shù)據(jù)分組攔截或重定向平臺,根據(jù)網(wǎng)絡安全態(tài)勢將網(wǎng)絡流量重定向到安全設備中進行檢測和監(jiān)控。Ballard等[11]提出OpenSAFE,研究在大規(guī)模網(wǎng)絡中通過SDN交換機線速重定向網(wǎng)絡流量,將流路由到監(jiān)測設備進行安全檢查;Wundsam等[l2]提出的OFRewind也實現(xiàn)了類似功能,并支持多種粒度,而不僅是對整個OpenFlow進行記錄;Shin等[13]提出了一種云環(huán)境下的SDN流量監(jiān)控方法CloudWatcher,將網(wǎng)絡流量自動導入相應的安全設備,以實現(xiàn)必要的網(wǎng)絡分組檢查。然而利用SDN將流量重定向到安全設備實現(xiàn)數(shù)據(jù)來源驗證復雜,需要綜合考慮安全設備的位置、不同安全設備的協(xié)作水平和SDN流量控制的粒度等多方面因素。其中主要是SDN流量控制粒度,但目前SDN支持的匹配字段僅限于網(wǎng)絡前4層中一些常用的協(xié)議,控制粒度有限[14]。當安全設備檢測出攻擊者的分組特征,由于攻擊者偽造的分組與合法分組的頭部前4層一樣,SDN不能區(qū)分攻擊者與合法者的分組,若將符合攻擊者分組特征的分組全部丟棄或交由安全設備篩選都會影響合法者分組的正常傳輸。因此,目前缺乏一種實用數(shù)據(jù)來源驗證機制且SDN控制粒度有限。
為解決上述問題,將密碼標識引入SDN,提出一種基于密碼標識的SDN安全控制轉發(fā)方法,利用密碼標識的3個屬性確保數(shù)據(jù)流在SDN中安全控制轉發(fā)。其主要有3個方面貢獻。1) 根據(jù)用戶身份、文件屬性或業(yè)務內(nèi)容等特征信息生成密碼標識,基于密碼標識定義網(wǎng)絡行為,形成基于人、物、業(yè)務流等細粒度網(wǎng)絡控管能力。2) 使用SDN交換機驗證數(shù)據(jù)來源,確保上傳給SDN控制器的分組都是真實的,減少控制器遭受DDoS攻擊的概率。3) 在網(wǎng)絡的入口與出口驗證基于密碼標識的簽名,確保目的設備收到的都是真實且未篡改的分組。
針對匹配域范圍有限、不能滿足網(wǎng)絡業(yè)務精確控制的需求和轉發(fā)設備流表匹配時缺乏有效的數(shù)據(jù)來源驗證機制等問題,為確保數(shù)據(jù)的真實性,滿足網(wǎng)絡業(yè)務精確控制需求,提出基于密碼標識的SDN安全控制轉發(fā)方法,利用密碼標識的3個屬性來保證數(shù)據(jù)流的安全控制轉發(fā)。密碼標識的3個屬性分別指身份屬性、標簽屬性和密碼屬性。身份屬性指密碼標識與重要對象的身份綁定,可通過密碼標識驗證其身份,利用該屬性,根據(jù)用戶、設備、文件等重要對象的特征信息設計密碼標識;標簽屬性指可根據(jù)密碼標識進行數(shù)據(jù)轉發(fā),利用該屬性,將密碼標識作為轉發(fā)設備能識別的匹配項,基于密碼標識定義網(wǎng)絡轉發(fā)行為;密碼屬性指可通過密碼標識鑒別數(shù)據(jù)真實性,利用該屬性,在數(shù)據(jù)分組進出網(wǎng)絡時驗證密碼標識,確保用戶的不可否認性和數(shù)據(jù)的真實性。3種屬性相輔相成,共同構建基于密碼標識控制網(wǎng)絡的安全防護體系。
如圖1所示,該體系結構由密碼標識和密鑰管理中心、應用層、控制層和數(shù)據(jù)轉發(fā)層4個部分組成。在密碼標識和密鑰管理中心的支持下,上層應用可根據(jù)密碼標識制訂控制策略,控制層中的控制器將控制策略編譯為流規(guī)則并下發(fā)給數(shù)據(jù)轉發(fā)層中的轉發(fā)設備,轉發(fā)設備根據(jù)收到的流規(guī)則進行匹配和轉發(fā)數(shù)據(jù)流,從應用層、控制層和數(shù)據(jù)層全方位進行網(wǎng)絡流的安全控制,從而實現(xiàn)粒度更細的安全控制轉發(fā)。
圖1 體系結構
3.2.1 密碼標識和密鑰管理中心
負責密碼標識和密鑰的管理工作,主要是審核申請者身份、管理密碼標識、根據(jù)密碼標識生成公私鑰對和制作并分發(fā)ID證書。同時,將新生成、剛更新、剛注銷的密碼標識同步到控制器的密碼標識數(shù)據(jù)庫中。其中,ID證書包括密碼標識、私鑰、有效期和安全域等信息。
3.2.2 基于密碼標識的控制層
控制層中的控制器是整個網(wǎng)絡邏輯控制的核心,通過收集整個網(wǎng)絡的信息資源形成全網(wǎng)拓撲,同時通過南向通道實現(xiàn)對轉發(fā)設備的管控和配置??刂破鞯闹饕δ苣K有密碼標識鑒別模塊、密碼標識映射模塊、流規(guī)則生成模塊、密碼標識數(shù)據(jù)庫等。重點研究密碼標識鑒別模塊和密碼標識映射模塊。
密碼標識鑒別模塊主要負責鑒別密碼標識的有效性。通過與密碼標識數(shù)據(jù)庫交互,建立密碼標識黑名單,并通過查詢未匹配的密碼標識是否處于黑名單中判斷其有效性,防止失效的密碼標識進出網(wǎng)絡。
密碼標識映射模塊通過隨機散列算法建立密碼標識映射表,并在數(shù)據(jù)分組進出網(wǎng)絡時通過查詢密碼標識映射表對密碼標識進行映射與逆映射。密碼標識映射與逆映射的相互轉換,實現(xiàn)密碼標識的透明傳輸,防止其成為網(wǎng)絡攻擊的靶子。
密碼標識數(shù)據(jù)庫負責存儲全網(wǎng)密碼標識信息。
流規(guī)則生成模塊主要負責控制策略編譯成流規(guī)則并下發(fā)給底層的轉發(fā)設備。
3.2.3 基于密碼標識的數(shù)據(jù)轉發(fā)層
數(shù)據(jù)轉發(fā)層主要由轉發(fā)設備組成,可分為接入轉發(fā)設備和中心轉發(fā)設備,其中,接入轉發(fā)設備指位于骨干網(wǎng)與接入網(wǎng)之間的轉發(fā)設備,中心轉發(fā)設備指位于骨干網(wǎng)中的轉發(fā)設備。
接入轉發(fā)設備主要由數(shù)據(jù)鑒別模塊和流表匹配模塊2個部分組成。數(shù)據(jù)鑒別模塊通過驗證密碼標識的簽名鑒別數(shù)據(jù)真實性,防止非法的數(shù)據(jù)分組進出網(wǎng)絡;流表匹配模塊通過流表匹配的方式驗證密碼標識有效性,完成密碼標識映射與逆映射的相互轉換,將合法的數(shù)據(jù)流轉發(fā)到指定位置。
中心轉發(fā)設備只有流表匹配模塊,且該模塊直接匹配和轉發(fā)收到數(shù)據(jù)流。
以用戶U訪問服務器1為例,分析在該方法下的網(wǎng)絡通信過程,如圖2所示。其中,用戶U默認為已收到ID證書。
3) 中心轉發(fā)設備收到數(shù)據(jù)分組后,直接進行匹配與轉發(fā)。
圖2 基于密碼標識的SDN通信流程
由于組合公鑰密碼體制(CPK, combined public key cryptosystem)具有密鑰產(chǎn)生規(guī)?;?、計算速度快、認證效率高、認證流程相對簡單等特點,采用CPK v8.0[15]設計密碼標識和密鑰管理中心,為申請者分配密碼標識,根據(jù)密碼標識生成相應的公私鑰對;當數(shù)據(jù)分組進出網(wǎng)絡時,設計數(shù)據(jù)鑒別模塊驗證基于密碼標識的簽名,確保終端用戶的不可否認性和數(shù)據(jù)分組的真實性;將密碼標識設計為轉發(fā)設備能識別的匹配項,并結合SDN流表匹配特點,重新設計流表匹配模塊,通過流表匹配的方式鑒別密碼標識的有效性,在數(shù)據(jù)分組進入網(wǎng)絡時將密碼標識轉換成其映射值,在數(shù)據(jù)分組離開網(wǎng)絡時將密碼標識還原成初始值,實現(xiàn)密碼標識透明傳輸,如果流表匹配失敗,交由控制器處理。
3.3.1 密碼標識和密鑰管理
密碼標識和密鑰管理中心負責管理密碼標識,結合CPK v8.0,根據(jù)密碼標識生成相應的公私鑰對,生成與分發(fā)ID證書。
1) 管理密碼標識
密碼標識的管理是指密碼標識生成、更新和注銷全周期的管理。其中,密碼標識是根據(jù)用戶的身份、文件的屬性或業(yè)務的內(nèi)容等特征信息生成,包括編號、申請人姓名、特征信息、安全域、有效期等內(nèi)容;密碼標識的更新是指更新密碼標識中除了特征信息以外的其他內(nèi)容,如角色、安全域、有效期等;密碼標識的注銷是指將密碼標識中所有內(nèi)容注銷。同時,將新生成、剛更新、剛注銷密碼標識信息同步到控制器的密碼標識數(shù)據(jù)庫中。
2) 生成組合密鑰
基于橢圓曲線上離散對數(shù)難題的數(shù)學原理構建公私鑰矩陣,采用散列函數(shù)與密碼變換將密碼標識映射為矩陣的行坐標與列坐標序列,選取并組合矩陣中元素,生成數(shù)量巨大的公私鑰對。具體步驟如下。
密碼標識的組合公鑰由各網(wǎng)絡實體自行計算為
3) ID證書的生成與分發(fā)
密碼標識和密鑰管理中心將密碼標識、私鑰、公鑰查詢函數(shù)、有效期、配置信息等內(nèi)容制成ID證書,通過安全信道或媒介發(fā)送給申請者。
3.3.2 數(shù)據(jù)真實性鑒別
數(shù)據(jù)鑒別模塊通過驗證數(shù)據(jù)分組中的簽名,檢驗數(shù)據(jù)分組的真實性和完整性,防止偽造或遭篡改的數(shù)據(jù)分組進出網(wǎng)絡,從網(wǎng)絡攻擊的源頭入手,限制網(wǎng)絡安全風險范圍。具體的處理流程如圖3所示。
圖3 數(shù)據(jù)鑒別模塊的處理流程
3.3.3 基于密碼標識的流表匹配
將密碼標識設計為流表匹配模塊能識別的匹配項,增加一個轉換動作用于密碼標識的映射與逆映射,并基于多級流表設計了多級流表流水線處理流程,可通過流表匹配的方式鑒別密碼標識的有效性,完成密碼標識的映射與逆映射的相互轉換,將合法的數(shù)據(jù)流轉發(fā)到指定位置。
1) 流規(guī)則的基本結構
結合OpenFlow v1.3協(xié)議,采用TLV格式,將匹配域中實驗字段OFPXMC_EXPERIMENTER擴展為密碼標識ID;修改OpenFlow協(xié)議中Flow-Mod消息體,使匹配域包含密碼標識ID的流規(guī)則可被接入轉發(fā)設備和中心轉發(fā)設備識別并無排斥的插入在相應流表中。然后自定義新動作——轉換,作用是將密碼標識轉換為映射值,或將密碼標識映射值轉換為原始值;修改OpenFlow協(xié)議中Flow-Mod消息體,使接入轉發(fā)設備能夠解析該動作并寫入動作庫。因此,本文使用南向協(xié)議是兼容OpenFlow1.3協(xié)議,支持現(xiàn)有的OpenFlow1.3協(xié)議的控制器可以與接入轉發(fā)設備和中心轉發(fā)設備正常通信,但該控制器不能下發(fā)匹配域包含密碼標識ID的流規(guī)則。通過將密碼標識ID自定義新的匹配項,添加一個轉換動作,形成新的流規(guī)則結構,具體如圖4所示。
圖4 流規(guī)則結構
2) 端口分類
接入轉發(fā)設備是數(shù)據(jù)流進出網(wǎng)絡的門戶,當數(shù)據(jù)流到達接入轉發(fā)設備時,共有3種流向:1) 從源終端接收后直接轉發(fā)到目的終端;2) 從源終端接收后再轉發(fā)到網(wǎng)絡中;3) 從網(wǎng)絡中接收后再轉發(fā)到目的終端。不同流向的數(shù)據(jù)流其流表匹配方式存在差異,如從源終端接收的數(shù)據(jù)流無須進行密碼標識映射直接轉發(fā)到目的終端。為識別不同數(shù)據(jù)流的流向,對端口分類,如圖5所示。
圖5 轉發(fā)設備的端口分類
接入轉發(fā)設備的端口主要分為接入端口、路由端口、鑒別端口和控制端口,其中,接入端口指與終端相連的端口,路由端口指與轉發(fā)設備相連的端口,鑒別端口指與數(shù)據(jù)鑒別模塊相連的端口,控制端口指與控制器相連的端口。而中心轉發(fā)設備的端口主要分為路由端口和控制端口。因此,數(shù)據(jù)流的不同流向可通過端口來描述,共有3種類型:①從接入端口進從接入端口出;②從接入端口進從路由端口出;③從路由端口進從接入端口出。類型①對應從源終端接收后直接轉發(fā)到目的終端;類型②對應從源終端接收后再轉發(fā)到網(wǎng)絡中;類型③對應從網(wǎng)絡中接收后再轉發(fā)到目的終端。
轉發(fā)設備在與控制器開始建立連接時,通過OFPT_MULTIPART_REPLY向控制器發(fā)送端口分類信息,如哪些端口屬于接入端口,哪些端口屬于路由端口,哪些端口屬于鑒別端口等,方便控制器識別不同數(shù)據(jù)流向,正確下發(fā)流規(guī)則。當端口分類信息發(fā)生變化,轉發(fā)設備通過OFPT_PORT_MOD主動向控制器報告端口分類變更情況。
3) 多級流表流水線處理
由于不同流向的數(shù)據(jù)流處理方式存在差異,基于多級流表提出多級流表流水線處理流程,根據(jù)入端口的類型為不同流向的數(shù)據(jù)流選擇合適的處理方式,通過流表匹配的方式鑒別密碼標識的有效性,通過流表匹配的方式實現(xiàn)密碼標識的透明傳輸,若流表匹配失敗,交由控制器處理。
如圖6所示,將接入轉發(fā)設備的多級流表分為端口表、密碼標識鑒別表、密碼標識映射表和基本轉發(fā)表4類。端口表根據(jù)入端口的類型決定數(shù)據(jù)流的處理方式,其中,入端口類型包括接入端口、鑒別端口、路由端口3種類型;密碼標識鑒別流表用于鑒別密碼標識的有效性,其匹配項為失效的密碼標識,若匹配成功表明該密碼標識已失效;密碼標識映射流表用于密碼標識的映射和逆映射;基本轉發(fā)流表用于匹配轉發(fā)收到的數(shù)據(jù)流。具體流程如圖7所示。
圖6 多級流表流水線處理流程
流表匹配模塊收到數(shù)據(jù)流后,首先匹配端口表,根據(jù)入端口類型決定數(shù)據(jù)流的處理方式。若入端口類型為接入端口,其流表匹配處理過程如下。
① 將元數(shù)據(jù)設置為01,再將數(shù)據(jù)流轉發(fā)到數(shù)據(jù)鑒別模塊進行密碼標識真實性鑒別。
② 數(shù)據(jù)鑒別模塊將通過鑒別的數(shù)據(jù)流返回給流表匹配模塊。
③ 再次匹配端口表,若匹配項為鑒別端口且元數(shù)據(jù)為01,將該數(shù)據(jù)流轉發(fā)到密碼標識鑒別表。
④ 匹配密碼標識鑒別表。若匹配成功,丟棄該類型的數(shù)據(jù)流,表明其攜帶的密碼標識已失效,否則,轉發(fā)到密碼標識映射流表。
⑤ 匹配密碼標識映射表。若匹配成功,按指令對該數(shù)據(jù)流進行相應的處理,若指令為直接轉發(fā)到基本轉發(fā)表,表明該數(shù)據(jù)流的流向是從接入端口進從接入端口出,若指令為將密碼標識轉化為映射值,再轉發(fā)到基本轉發(fā)流表,表明該數(shù)據(jù)流的流向是從接入端口進從路由端口出;若匹配失敗,將該數(shù)據(jù)流的首包封裝到Packet-In再交由到控制器處理。
⑥匹配基本轉發(fā)表,按匹配成功的指令進行相應的處理。
⑦控制器收到未匹配的數(shù)據(jù)分組后,會根據(jù)處理結果會下發(fā)相應的流規(guī)則指示接入轉發(fā)設備如何對其進行處理。
若入端口類型為路由端口,表明該數(shù)據(jù)流的流向是從路由端口進從接入端口出,其數(shù)據(jù)分組處理過程如下。
①將元數(shù)據(jù)設置為10,再將數(shù)據(jù)流轉發(fā)到密碼標識映射表。
②匹配密碼標識映射表,根據(jù)匹配結果進行相應的密碼標識逆映射,再將數(shù)據(jù)流轉發(fā)到數(shù)據(jù)鑒別模塊進行密碼標識真實性鑒別。
③數(shù)據(jù)鑒別模塊將通過鑒別的數(shù)據(jù)流返回給流表匹配模塊。
④再次匹配端口表,根據(jù)匹配項為入端口類型為鑒別端口且元數(shù)據(jù)為10,將該數(shù)據(jù)流轉發(fā)到基本轉發(fā)表。
⑤匹配基本轉發(fā)表,按匹配成功的指令對該數(shù)據(jù)流進行相應的處理。
中心轉發(fā)設備的流表匹配模塊與一般的SDN交換機的匹配方式相似,直接進行匹配轉發(fā)即可,這里不再贅述。
3.3.4 控制器流規(guī)則生成
在流表匹配過程中,控制器負責處理未匹配成功的數(shù)據(jù)流,通過密碼標識鑒別模塊鑒別標識的有效性,通過密碼標識映射模塊將密碼標識進行轉換,通過流規(guī)則生成模塊為其生成相應的流規(guī)則,并下發(fā)到相關的轉發(fā)設備中。
1) 密碼標識鑒別模塊
為防止失效的密碼標識進入網(wǎng)絡,在控制器中開發(fā)密碼標識鑒別模塊,通過與密碼標識數(shù)據(jù)庫進行交互,將失效的密碼標識放入黑名單,監(jiān)聽密碼標識數(shù)據(jù)庫更新,并隨時更新黑名單內(nèi)容。通過檢驗密碼標識是否處于黑名單來判斷其有效性,若處于黑名單中,通知流規(guī)則生成模塊下發(fā)相應的流規(guī)則拒絕所有帶有該密碼標識的數(shù)據(jù)流進入網(wǎng)絡,否則交由密碼標識映射模塊做進一步處理。
圖7 流表匹配的處理流程
2) 密碼標識映射模塊
為實現(xiàn)密碼標識的透明傳輸,防止其成為網(wǎng)絡攻擊的靶子,在控制器中開發(fā)密碼標識映射模塊,通過隨機散列算法建立密碼標識映射表,為密碼標識查找其映射值,若查找失敗,該模塊為其生成映射值,同時存儲該映射關系,方便再次處理相同的密碼標識。
3) 流規(guī)則生成模塊
流規(guī)則生成模塊主要將控制策略轉化為轉發(fā)設備能識別的流規(guī)則并下發(fā)給相應的轉發(fā)設備,其下發(fā)的流規(guī)則分為預置流規(guī)則和實時流規(guī)則。
端口表中的流規(guī)則為預置流規(guī)則,當控制器收集完端口分類信息后,該模塊根據(jù)入端口類型主動下發(fā)流規(guī)則到各接入轉發(fā)設備的端口表中,決定數(shù)據(jù)流處理方式。
密碼標識鑒別表中的流規(guī)則為實時流規(guī)則,該模塊根據(jù)密碼標識鑒別模塊提供的密碼標識失效策略下發(fā)流規(guī)則到指定接入轉發(fā)設備的密碼標識鑒別表中。
密碼標識映射表中的流規(guī)則為實時流規(guī)則,該模塊根據(jù)密碼標識映射模塊提供的密碼標識映射與逆映射策略和數(shù)據(jù)流的流向下發(fā)相應的流規(guī)則到指定接入轉發(fā)設備的密碼標識映射表中。針對不同的數(shù)據(jù)流向,設計映射選擇算法決定下發(fā)何種類型映射流規(guī)則。具體步驟如算法1所示。
算法1 映射選擇算法
輸出 映射流規(guī)則
1) if&&?
2) 生成動作為直接轉發(fā)到基本轉發(fā)表的流規(guī)則
3) if&&?
4) 生成動作為密碼標識映射并轉發(fā)到基本轉發(fā)表的流規(guī)則
5) else
6) 生成動作為密碼標識逆映射并轉發(fā)到數(shù)據(jù)鑒別模塊的流規(guī)則
基本轉發(fā)表中的流規(guī)則為實時流規(guī)則,該模塊調(diào)用全網(wǎng)視圖(拓撲視圖和資源視圖)和結合應用層下發(fā)的相應控制策略最優(yōu)化選取源地址到目的地址的路徑,并下發(fā)流規(guī)則到指定轉發(fā)設備的基本轉發(fā)表中。
實驗分別使用6臺配置為i7-7700 CPU,16 GB內(nèi)存,8網(wǎng)卡的聯(lián)想A8800t搭載OpenDaylight控制器和Open vSwitch(簡稱OVS),8臺揚天M4000e作為終端主機。實驗拓撲如圖8所示,OVS e1~e2充當接入轉發(fā)設備,OVS a1~a3充當中心轉發(fā)設備,h1~h8充當終端主機。
圖8 實驗拓撲
為驗證所提方法的有效性,設計了3個實驗。實驗1用于驗證該方法能否鑒別密碼標識的真實性和有效性以及密碼標識映射轉換情況,實驗2用來驗證該方法能否基于密碼標識定義網(wǎng)絡轉發(fā)行為,實驗3用來驗證映射選擇算法的有效性。
4.2.1 不同數(shù)據(jù)分組訪問網(wǎng)絡
從圖9可知,OVS e1數(shù)據(jù)分組到達數(shù)目約為OVS a1的4倍,同時通過查看e1、e2和a1中流規(guī)則的情況發(fā)現(xiàn):1) e1中增加了2條流規(guī)則,一是將h2的數(shù)據(jù)分組丟棄,另一個是將h1的數(shù)據(jù)分組的密碼標識進行轉換;2) a1中無密碼標識相關的流規(guī)則;3) e2中增加了一條流規(guī)則,內(nèi)容為將e1中轉換的密碼標識還原成初始值,然后,使用wireshark在OVS a1抓取分組得出絕大多數(shù)IP分組來源于h1,原因在于接入轉發(fā)設備能夠識別密碼標識是否失效,通過流表匹配將失效的密碼標識丟棄,將有效的密碼標識進行轉換并在數(shù)據(jù)分組到達目的地址前將轉換的密碼標識還原成初始值,同時接入轉發(fā)設備還能拒絕未攜帶密碼標識或遭到篡改的數(shù)據(jù)分組進入網(wǎng)絡。
圖9 接入轉發(fā)設備e1的數(shù)據(jù)分組到達統(tǒng)計
4.2.2 基于密碼標識的控制轉發(fā)
圖10 中心轉發(fā)設備a3的端口流量統(tǒng)計
從圖10可知,a3-eth2和a3-eth3端口流量大致相同,a3-eth1端口流量約為a3-eth2和a1-eth3的3倍。然后,通過查看端口連接情況,得知:1) a3-eth1與a1相連;2) a3-eth2與a2相連;3) a3-eth3與e2相連。再通過wireshark在a2和e2上進行分組抓取,得知:1) a2收到數(shù)據(jù)分組攜帶用戶B的密碼標識;2) e2收到數(shù)據(jù)分組攜帶用戶C的密碼標識。原因在于,密碼標識與用戶的身份綁定,控制器可基于密碼標識為不同的用戶制定不同的轉發(fā)策略。
4.2.3 映射選擇算法有效性驗證
為驗證接入轉發(fā)是否能根據(jù)數(shù)據(jù)流的流向選擇不同的處理方式,通過h1 ping h2模擬流向為從接入端口進、從接入端口出的數(shù)據(jù)流,通過h1 ping h8模擬流向為從接入端口進、從路由端口出和從路由端口進、從接入端口出的數(shù)據(jù)流。
通過實驗分析轉發(fā)設備的處理時延與控制器的CPU利用率,計算增加的相關模塊對轉發(fā)設備和控制器的影響。
4.3.1 轉發(fā)設備的處理時延
在主機h1和h2上分別使用hping3向網(wǎng)絡持續(xù)注入合法的數(shù)據(jù)分組,數(shù)據(jù)分組發(fā)送速率分別為50 Mbit/s、100 Mbit/s、150 Mbit/s、200 Mbit/s、250 Mbit/s、300 Mbit/s、350 Mbit/s、400 Mbit/s、450 Mbit/s、500 Mbit/s,數(shù)據(jù)分組的源地址、目的地址、源端口、目的端口均不重復(通過hping3命令參數(shù)設置)。在不同場景下,分別測試接入轉發(fā)設備、中心轉發(fā)設備和正常的OVS在不同數(shù)據(jù)分組發(fā)送速率的處理時延,重復10次,每次實驗取最高結果,再把10次實驗數(shù)據(jù)取平均,實驗結果如圖11所示。其中,各轉發(fā)設備都已預置了相關流規(guī)則可直接匹配轉發(fā)。
圖11 轉發(fā)設備的處理時延
4.3.2 控制器的CPU利用率
測試多種情況下原版OpenDaylight控制器和二次開發(fā)的OpenDaylight控制器在CPU利用率上的差異,在主機h1上使用hping3向網(wǎng)絡持續(xù)注入合法的數(shù)據(jù)分組,數(shù)據(jù)分組的源地址、目的地址、源端口、目的端口均不重復(通過hping3命令參數(shù)設置)。每種情形進行了10次重復實驗,每次實驗取最高結果,再把10次實驗數(shù)據(jù)取平均,測試結果如圖12所示。
由圖12可知,在不同情形下實驗使用的OpenDaylight控制器的CPU占用率比原版OpenDaylight控制器略高,但兩者差異不是很大,在可接受的范圍內(nèi)。
針對匹配域范圍有限、不能滿足網(wǎng)絡業(yè)務精確控制的需求和轉發(fā)設備流表匹配時缺乏有效的數(shù)據(jù)來源驗證方法等問題,融合軟件定義網(wǎng)絡和網(wǎng)絡空間密碼標識技術,利用密碼標識的3個屬性,設計基于密碼標識的SDN安全控制轉發(fā)方法,在數(shù)據(jù)流進出網(wǎng)絡時對其來源進行驗證,限制網(wǎng)絡安全風險范圍,根據(jù)密碼標識定義網(wǎng)絡轉發(fā)行為,能夠對網(wǎng)絡進行靈活的動態(tài)規(guī)劃和管理,形成基于人、物、業(yè)務流等細粒度網(wǎng)絡管控能力。未來的工作將研究基于密碼標識的控制策略的快速編譯與執(zhí)行問題,進一步驗證所提方法的可擴展性。
圖12 控制器的CPU占用率
[1] MCKEOWN N. Software-defined networking[C]//IEEE International Conference on Computer Communications. 2009: 30-32.
[2] 左青云, 陳鳴, 趙廣松, 等.基于OpenFlow的SDN技術研究[J].軟件學報,2013(5):1078-1097.
ZUO Q Y, CHEN M, ZHAO G S, et al. Research on OpenFlow-based SDN technologies[J]. Journal of Software, 2013(5):1078-1097.
[3] 王蒙蒙, 劉建偉, 陳杰, 等. 軟件定義網(wǎng)絡:安全模型、機制及研究進展[J].軟件學報,2016,27(4):969-992.
WANG M M, LIU J W, CHEN J, et al. Software defined networking: security model, threats and mechanism[J]. Journal of Software, 2016, 27(4): 969-992.
[4] LIU H H, WU X, ZHANG M, et al. zUpdate: updating data center networks with zero loss[J]. Computer Communication Review, 2013, 43(4):411-422.
[5] LI D, SHANG Y, CHEN C. Software defined green data center network with exclusive routing[C]//INFOCOM. 2014:1743-1751.
[6] DHAWAN M, PODDAR R, MAHAJAN K, et al. SPHINX: detecting security attacks in software-defined networks[C]//Network and Distributed System Security Symposium. 2015:1-15.
[7] 王首一, 李琦, 張云. 輕量級的軟件定義網(wǎng)絡數(shù)據(jù)分組轉發(fā)驗證[J].計算機學報,2017,40(7):9-26.
WANG S Y, LI Q, ZHANG Y. Lightweight packet forwarding verification in SDN[J]. Journal of Computers. 2017,40(7):9-26.
[8] YAO G, BI J, XIAO P. Source address validation solution with OpenFlow/NOX architecture[C]//IEEE International Conference on Network Protocols. 2011:7-12.
[9] CASADO M, FREEDMAN M J, PETTIT J, et al. Ethane: taking control of the enterprise[C]//ACM SIGCOMM Conference on Applications. 2007:1-12.
[10] SHIN S, PORRAS P, YEGNESWARAN V, et al. FRESCO: modular composable security services for software-defined networks[C]//Network & Distributed Security Symposium, 2013.
[11] BALLARD J R, RAE I, AKELLA A. Extensible and scalable network monitoring using OpenSAFE[C]//Internet Network Management Conference on Research on Enterprise Networking. 2010:8.
[12] WUNDSAM A, LEVIN D, SEETHARAMAN S, et al. OFRewind: enabling record and replay troubleshooting for networks[C]//Usenix Conference on Usenix Technical Conference. 2011:29.
[13] SHIN S, GU G. CloudWatcher: network security monitoring using OpenFlow in dynamic cloud networks [C]//IEEE International Conference on Network Protocols. 2012:1-6.
[14] 畢軍.SDN體系結構與未來網(wǎng)絡體系結構創(chuàng)新環(huán)境[J]. 電信科學, 2013, 29(8):6-15.
BI J. SDN architecture and future network innovation environment[J]. Telecommunications Science, 2013, 29(8):6-15.
[15] 南湘浩.CPK組合公鑰體制(v8.0)[J].金融電子化,2013(3):39-41.
NAN X H. CPK combined public key cryptosystem(v8.0)[J]. Financial Electronics, 2013(3):39-41.
SDN security control and forwarding method based on cipher identification
QIN Xi1, TANG Guodong1, CHANG Chaowen1,2
1. The Third Institute, Information Engineering University, Zhengzhou 450001, China 2. Zhengzhou Xinda Advanced Technology Research Institute, Zhengzhou 450001, China
Aimed at the limited matching fields and the lack of effective data source authentication mechanism in the software defined networking (SDN), a SDN security control forwarding method based on cipher identification was proposed. First, the cipher identification was generated according to the user identity, file attributes or business content and other characteristics, and the data stream was marked by the cipher identification and signed with the private key based on the cipher identification. Then, when the data stream entered and left the network, the forwarding device verified its signature to ensure the authenticity of the data. At the same time, the cipher identification was designed as a matching item recognized by the forwarding device, and the network forwarding behavior was defined based on the cipher identification, so a fine-grained network control capability could be formed based on people, things, and business flow. Finally, the validity of the method is verified by experimental analysis.
software defined networking, cipher identification, security control and forwarding, flow table matching
TP393
A
10.11959/j.issn.1000-436x.2018022
:2017-10-12;
2018-01-17
唐國棟,tgdhooping@163.com
國家自然科學基金資助項目(No. 61572517)
The National Natural Science Foundation of China (No. 61572517)
秦晰(1978-),女,河南焦作人,博士,信息工程大學副教授、碩士生導師,主要研究方向為SDN安全、可信計算。
唐國棟(1992-),男,湖南永州人,信息工程大學碩士生,主要研究方向為SDN安全。
常朝穩(wěn)(1966-),男,河南滑縣人,博士,信息工程大學教授、博士生導師,主要研究方向為移動信息安全、物聯(lián)網(wǎng)安全。