亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于身份屬性的SDN 控制轉(zhuǎn)發(fā)方法

        2019-12-03 07:53:42?,F(xiàn)威常朝穩(wěn)朱智強秦晰
        通信學報 2019年11期
        關(guān)鍵詞:規(guī)則設(shè)備

        祝現(xiàn)威,常朝穩(wěn),朱智強,秦晰

        (信息工程大學密碼工程學院,河南 鄭州 450001)

        1 引言

        軟件定義網(wǎng)絡(luò)(SDN,software defined networking)[1]是由斯坦福大學的CleanSlate 團隊提出的一種新的網(wǎng)絡(luò)結(jié)構(gòu),其實現(xiàn)了網(wǎng)絡(luò)數(shù)據(jù)平面和控制平面的解耦,具有良好的擴展能力和網(wǎng)絡(luò)編譯能力。由于控制平面與數(shù)據(jù)平面的分離,數(shù)據(jù)平面只具有數(shù)據(jù)轉(zhuǎn)發(fā)功能,提高了控制器對數(shù)據(jù)來源進行監(jiān)控的難度,無法實現(xiàn)端到端的數(shù)據(jù)認證。因此,目前SDN 流表轉(zhuǎn)發(fā)時還沒有提供有效的數(shù)據(jù)來源認證機制[2],不能有效防止偽造攻擊。

        雖然開發(fā)人員會為SDN 提供一部分安全措施,但是安全措施主要集中在控制層[3],其存在2個缺陷:1)造成控制器臃腫負載增大;2)安全功能中心化,一旦控制器被攻破,將導致整個網(wǎng)絡(luò)不安全。并且,由于OpenFlow 只能根據(jù)網(wǎng)絡(luò)協(xié)議的信息特征進行轉(zhuǎn)發(fā)控制,不能對網(wǎng)絡(luò)業(yè)務(wù)進行劃分,因此無法實現(xiàn)網(wǎng)絡(luò)間細粒度的訪問控制,攻擊者可以將合法設(shè)備作為跳板對SDN 進行攻擊。

        數(shù)字簽名作為數(shù)據(jù)合法性驗證的工具被廣泛應(yīng)用于操作系統(tǒng)和網(wǎng)絡(luò)中,如Porras 通過FortNOX[4]對應(yīng)用進行加密認證。屬性簽名[5-6]具有能夠在無訪問列表的情況下實現(xiàn)細粒度的訪問控制,滿足不同安全需求,并且只需改變訪問屬性即可更新訪問控制結(jié)構(gòu)等優(yōu)點,能夠滿足多樣化的安全需求[6]。

        因此,本文針對SDN 用戶來源認證方式和細粒度的網(wǎng)絡(luò)訪問控制缺乏、安全功能中心化的問題,將SDN 與屬性簽名相結(jié)合,提出了一種基于屬性標識的SDN 安全控制轉(zhuǎn)發(fā)架構(gòu)——ACFlow。

        ACFlow 架構(gòu)特點如下。1)通過設(shè)備屬性生成屬性標識,將數(shù)據(jù)分組與設(shè)備綁定,實現(xiàn)了數(shù)據(jù)流的標記。2)利用認證交換機對數(shù)據(jù)合法性進行認證,確保進入網(wǎng)絡(luò)的數(shù)據(jù)分組為合法數(shù)據(jù),防止遭受拒絕服務(wù)攻擊;在數(shù)據(jù)平面實現(xiàn)安全功能,實現(xiàn)數(shù)據(jù)端到端的認證,并將數(shù)據(jù)認證分散在每個數(shù)據(jù)節(jié)點上,降低了控制器的負載,實現(xiàn)了安全功能的去中心化,提高了網(wǎng)絡(luò)的總體安全性。3)利用屬性簽名和基于屬性標識的轉(zhuǎn)發(fā)實現(xiàn)了基于網(wǎng)絡(luò)業(yè)務(wù)的細粒度訪問控制和數(shù)據(jù)來源鑒別。

        2 相關(guān)工作

        目前,針對網(wǎng)絡(luò)中的非法訪問主要是通過下發(fā)流表的方式實現(xiàn)的,分為2種思路:1)由控制器對流規(guī)則進行認證,保證下發(fā)安全的流規(guī)則;2)通過控制器對入網(wǎng)的設(shè)備進行認證,并下發(fā)入網(wǎng)策略。以上2種方法主要是對控制器進行開發(fā)。第一種思路主要有基于角色認證的流規(guī)則,如Porras 等[4]提出的控制器FortNOX,該控制器對下發(fā)流規(guī)則的應(yīng)用進行基于角色的認證。FortNOX 對應(yīng)用認證主要基于3個角色:管理員、合法應(yīng)用和非法應(yīng)用。這些角色被分配給每個應(yīng)用并對其進行簽名。然后,Porras等[7]對該架構(gòu)進行擴展,提出了一種新的安全系統(tǒng)SEFloodlight,該系統(tǒng)在Floodlight 控制器基礎(chǔ)上添加安全層(SEK,security-enforcement-kernel)實現(xiàn)基于角色的流規(guī)則管理,類似的還有Rosemary[8]和FRESCO[9]。以上方法雖然能夠?qū)崿F(xiàn)對非法數(shù)據(jù)流防御,但可能會將不同的安全應(yīng)用賦予相同的角色,無法實現(xiàn)流的細粒度管理。因此Wen 等[10]基于控制器的接口提出18種權(quán)限,并使用PermOF 系統(tǒng)實現(xiàn)權(quán)限分配,與SEFloodlight[7]、Rosemary[8]和FRESCO[9]相比實現(xiàn)了流的細粒度管理,但是其不能防止終端處偽造攻擊?;诘诙N思路,Casado 等[11]提出了Ethane 架構(gòu),通過對主機進行注冊認證實現(xiàn)對終端的管理,但是其沒有對終端進行角色的劃分,無法實現(xiàn)流的細粒度管理。以上2種思路都會大量增加控制器的負載,降低控制器下發(fā)流表的能力。

        對于傳統(tǒng)方式的不足,研究者將研究方向從控制器轉(zhuǎn)向了交換機和SDN 架構(gòu)。如鄭鵬等[12]基于流特征提出uFlow 技術(shù),將流進行細粒度劃分。Ballard 等[13]提出OpenSAFE,通過SDN 交換機對網(wǎng)絡(luò)流量進行重定向并對路由進行檢查,但缺乏細粒度的管理。作為補充,Wundsam 等[14]提出OFRewind 架構(gòu),該架構(gòu)支持多種粒度的管理。Halpern 等[15]提出服務(wù)功能鏈SFC(service function chaining),利用SDN 流表進行數(shù)據(jù)流控制,將數(shù)據(jù)流以不同維度不同粒度按需求進行劃分,根據(jù)劃分為數(shù)據(jù)流分配不同功能鏈和功能鏈路徑,使網(wǎng)絡(luò)數(shù)據(jù)可以根據(jù)用戶屬性、業(yè)務(wù)屬性、網(wǎng)絡(luò)屬性等不同層面的需求定制用戶數(shù)據(jù)流經(jīng)過的服務(wù)功能。以上方案雖然可以有效降低控制器的負載,但是安全設(shè)備的部署和SDN 對流量控制的粒度直接制約了數(shù)據(jù)來源驗證的效率。趙志遠等[16]提出了虛擬SDN映射方法,實現(xiàn)了多控制器條件下的細粒度管理。

        現(xiàn)有的SDN 南向協(xié)議主要是OpenFlow 協(xié)議,該協(xié)議定義的協(xié)議類型和字段都僅限于網(wǎng)絡(luò)前四層中一些常用的協(xié)議和字段,控制粒度有限[17]。但是從 OpenFlow v1.2[18]之后匹配域使用 OXM(OpenFlow extensible match )架構(gòu)的 TLV(type-length-value)格式,為拓展匹配域的范圍提供了可能。例如,Lu 等[19]提出了可編程數(shù)據(jù)轉(zhuǎn)發(fā)引擎CAFé,該引擎通過比特提取器實現(xiàn)了用戶對關(guān)鍵字的自定義查找,實現(xiàn)了分組匹配域的自定義擴展,但該引擎并未對分組頭解析進行優(yōu)化,導致解析使性能開銷增加。針對分組頭解析,Atting 等[20]提出了一種分組頭解析算法并為此設(shè)計了解析語言PPL(packet parsing language),除了滿足分組頭解析外還提高了分組性能。金子晉等[21]根據(jù)流表的匹配域?qū)Σ煌瑯I(yè)務(wù)流進行路徑分配,保障用戶路由QoS(quality of service)。

        3 攻擊場景與模型

        常規(guī)SDN 的抽象結(jié)構(gòu)如圖1所示,包含了如下元素:源設(shè)備、SDN 控制器、為控制器提供合法流規(guī)則的服務(wù)s1、為控制器提供非法流規(guī)則的服務(wù)s2、OpenvSwitch、安全設(shè)備(如防火墻、安全網(wǎng)關(guān)等)。

        圖1 常規(guī)SDN 抽象結(jié)構(gòu)

        假設(shè)源設(shè)備A 希望訪問目的設(shè)備C,則需要經(jīng)歷以下步驟。

        步驟1源設(shè)備A 向OpenvSwitch1發(fā)送對目的設(shè)備C 的訪問請求。

        步驟2因為沒有對源設(shè)備A 請求匹配的流規(guī)則,所以O(shè)penvSwich1向控制器請求流規(guī)則,等待下一步動作。

        步驟3控制器向服務(wù)A 申請生成一個新的訪問流規(guī)則,以此回應(yīng)OpenvSwich1的訪問請求。

        步驟4服務(wù)A 生成相應(yīng)的流規(guī)則,并將流規(guī)則發(fā)送給控制器。

        步驟5一旦控制器收到產(chǎn)生的流規(guī)則,首先將該流規(guī)則保存在流規(guī)則庫中,然后將該流規(guī)則轉(zhuǎn)發(fā)給OpenvSwitch1和OpenvSwitch2。

        步驟6新的流規(guī)則會匹配源設(shè)備 A 中的數(shù)據(jù)分組,通過OpenvSwitch1和OpenvSwitch2將數(shù)據(jù)分組轉(zhuǎn)發(fā)給安全設(shè)備。

        步驟7安全設(shè)備檢測發(fā)來的數(shù)據(jù)分組,通過規(guī)則判斷得出源設(shè)備 A 不能與目的設(shè)備C 進行通信。

        根據(jù)SDN 結(jié)構(gòu)構(gòu)造2種攻擊方式[22-23],分別通過篡改網(wǎng)絡(luò)規(guī)則和控制網(wǎng)絡(luò)流量來實現(xiàn)非法訪問。還有其他直接攻擊場景,如分布式拒絕服務(wù)攻擊等。下面分別描述篡改網(wǎng)絡(luò)規(guī)則攻擊和控制流量攻擊過程。

        篡改網(wǎng)絡(luò)規(guī)則攻擊如圖2所示。惡意應(yīng)用構(gòu)造一個虛假的流表,該虛假流表的流規(guī)則使惡意源設(shè)備A 通過OpenvSwitch2直接訪問目的設(shè)備C,這樣就繞過了防火墻并對目的設(shè)備C 進行掃描攻擊。

        圖2 篡改網(wǎng)絡(luò)規(guī)則攻擊

        控制流量攻擊如圖3所示。服務(wù)B 偽造2個流表。通過第一個流表,將源設(shè)備的IP 地址從惡意源設(shè)備A 修改為合法源設(shè)備B,使用合法源設(shè)備B 訪問目的設(shè)備C;然后第二個流表修改數(shù)據(jù)分組的目的地址,將原本從目的設(shè)備C 到源設(shè)備B 的數(shù)據(jù)分組目的地址修改為惡意源設(shè)備A,實現(xiàn)惡意源設(shè)備A 對目的設(shè)備C 的掃描攻擊。

        圖3 控制流量攻擊

        以上2個例子說明攻擊者可以通過篡改網(wǎng)絡(luò)規(guī)則和控制流量繞過部署在固定路徑的防御措施如網(wǎng)絡(luò)防火墻、安全網(wǎng)關(guān)等,實現(xiàn)惡意攻擊,使現(xiàn)有的防御方式失效。雖然針對以上問題提出了FortNOX、SEFloodlight 和FRESCO 等安全架構(gòu),這些架構(gòu)通過對流規(guī)則的合法性認證防止流規(guī)則的篡改,但是受到應(yīng)用角色數(shù)量的限制,不同的應(yīng)用會獲得相同的角色權(quán)限,因此當存在大量應(yīng)用時,惡意應(yīng)用的角色會與合法應(yīng)用角色產(chǎn)生重疊,獲得相同的訪問權(quán)限,從而出現(xiàn)以上2種攻擊。上述問題的實質(zhì)是數(shù)據(jù)流的非法訪問,因此,通過數(shù)據(jù)層實現(xiàn)用戶合法性認證,阻止非法用戶的接入,并且通過屬性標識和屬性簽名實現(xiàn)細粒度的訪問控制,以此阻止用戶的非法訪問。

        4 基于屬性標識的SDN安全控制轉(zhuǎn)發(fā)架構(gòu)

        4.1 原理介紹

        本文針對上述問題[22-23]提出了ACFlow 架構(gòu),該架構(gòu)利用屬性標識(AID,attribute ID)的身份屬性,將屬性標識與源設(shè)備身份屬性進行綁定,并與系統(tǒng)公開參數(shù)生成屬性私鑰,通過屬性私鑰進行數(shù)字簽名Sign。利用屬性標識的密碼屬性,在網(wǎng)絡(luò)的出口驗證數(shù)字簽名Sign,確保到達數(shù)據(jù)為合法數(shù)據(jù),如果簽名不通過,交換機認為該設(shè)備為非法設(shè)備,將拒絕其接入網(wǎng)絡(luò),因此可以保證SDN 不被惡意用戶進行攻擊。利用屬性標識的標簽屬性,使屬性標識成為轉(zhuǎn)發(fā)設(shè)備中流表可識別的匹配字段,最后通過多級流表匹配的方式實現(xiàn)基于屬性標識定義網(wǎng)絡(luò)轉(zhuǎn)發(fā)行為,擴展網(wǎng)絡(luò)管控粒度。屬性標識的身份屬性、密碼屬性和標簽屬性共同作用,形成“來源可驗證、精細化控制”的安全防護體系架構(gòu)。

        4.2 總體框架

        ACFlow 架構(gòu)的通信模型如圖4所示,其包含屬性標識認證中心、屬性標識組件、基于屬性標識的控制層和基于屬性標識的數(shù)據(jù)層4個部分。

        1)屬性標識認證中心。生成系統(tǒng)公開參數(shù),并為目的設(shè)備生成訪問公開參數(shù)。對需要接入的源設(shè)備生成基于屬性的屬性標識,采用屬性簽名方式,使用屬性標識生成屬性私鑰。

        2)屬性標識組件。源/目的設(shè)備屬性標識管理的核心,以應(yīng)用的形式安裝在主機上。首先,負責為新入網(wǎng)設(shè)備生成屬性集;其次,從屬性認證中心獲取屬性私鑰和屬性標識,并對IP 分組簽名,通過修改主機的協(xié)議棧實現(xiàn)屬性標識和屬性簽名封裝,并且不對主機進行物理擴展;最后,存儲該設(shè)備的訪問結(jié)構(gòu)T(即設(shè)備驗證簽名所需的屬性集,詳細說明見5.1節(jié))的公開參數(shù),提供給認證交換機的分組鑒別模塊讀取。

        3)基于屬性標識的控制層。主要有以下2個功能:通過收集數(shù)據(jù)層信息,獲取網(wǎng)絡(luò)拓撲結(jié)構(gòu);生成基于屬性標識的流規(guī)則實現(xiàn)對數(shù)據(jù)層的轉(zhuǎn)發(fā)控制??刂茖又饕ǚ纸M解析模塊、屬性標識失效模塊和流規(guī)則生成模塊,其功能分別為分組解析出屬性標識、屬性標識有效性鑒別和生成匹配的流規(guī)則。

        4)基于屬性標識的數(shù)據(jù)層。主要由認證交換機組成,負責匹配轉(zhuǎn)發(fā)收到的IP 分組。在原有的SDN交換機的基礎(chǔ)上,增加了屬性標識解析和數(shù)據(jù)來源驗證功能,將屬性標識擴展為自定義匹配域,可根據(jù)屬性標識轉(zhuǎn)發(fā)IP 分組,并根據(jù)交換機連接主機的訪問結(jié)構(gòu)在出口對數(shù)據(jù)合法性進行驗證。

        下面以源設(shè)備D1訪問目的設(shè)備D2為例來描述ACFlow 架構(gòu)的通信過程。

        1)源設(shè)備D1在訪問網(wǎng)絡(luò)前,需要通過本地安裝的屬性標識組件對其進行初始化,包括上傳屬性集和目的地址;然后接收生成的屬性私鑰并生成屬性簽名,并將屬性標識和簽名與原分組封裝成新的分組。

        圖4 ACFlow 架構(gòu)通信模型

        2)數(shù)據(jù)層收到來自D1的分組并對其進行轉(zhuǎn)發(fā),每次轉(zhuǎn)發(fā)前判斷路由下一跳是否為目的設(shè)備,如果不是則直接進行轉(zhuǎn)發(fā)。

        3)當分組根據(jù)流表轉(zhuǎn)發(fā)到達出口認證交換機(路由下一跳為目的設(shè)備)時,對分組合法性進行屬性簽名驗證,如果驗證通過則將分組轉(zhuǎn)發(fā)給目的設(shè)備D2,否則將其提交給控制器生成無效流表,控制器將無效流表下發(fā)給認證交換機,拒絕非法分組進入網(wǎng)絡(luò)。

        4)D2通過本機屬性標識組件客戶端將收到的合法分組進行解封裝生成一般IP 分組。

        4.3 系統(tǒng)結(jié)構(gòu)設(shè)計

        4.3.1 帶屬性標識IP 分組生成

        新設(shè)備D1接入網(wǎng)絡(luò)前需要對該設(shè)備進行身份定義,傳統(tǒng)的方式是對每個設(shè)備生成一個唯一的設(shè)備號,生成設(shè)備號身份對照表,造成系統(tǒng)開銷增加。實際上只需要幾個屬性便可確定用戶身份,并且認證時只要用戶某些屬性滿足要求即是合法用戶,認證者并不關(guān)心簽名人的名字、地址等其他信息。本平臺從設(shè)備所在部門、所有人的角色和從事的業(yè)務(wù)這三方面定義設(shè)備屬性,例如小明是IT 部門的工程師需要對某個主機進行寫操作,其屬性為IT部門∧工程師∧write 。

        假設(shè)屬性標識組件接受的屬性可信沒有偽造,通過Hash 函數(shù)將屬性集中每個屬性生成一串Hash 值,將其生成的布爾函數(shù)作為屬性標識。屬性標識作為IP 分組進出網(wǎng)絡(luò)的許可證,負責分組的認證和轉(zhuǎn)發(fā),其位于網(wǎng)絡(luò)層與傳輸層之間。對所有的分組封裝屬性標識,其分組結(jié)構(gòu)如表1所示,說明如下。

        表1 屬性標識分組結(jié)構(gòu)

        1)版本號(4 bit),屬性標識的版本。

        2)次協(xié)議(8 bit),表示緊跟在屬性標識后面的協(xié)議類型,如6(TCP)、17(UDP)或50(ESP)。

        3)長度(8 bit),其值是以32 bit(4 B)為單位的整個屬性標識的長度(包括頭部和元數(shù)據(jù))。

        4)保留(12 bit),準備將來對屬性標識擴展時使用,目前協(xié)議規(guī)定這個字段應(yīng)該被置為0。

        當目的設(shè)備D2接收需要移除IP 分組中的(屬性標識,Sign),目的設(shè)備D2根據(jù)屬性標識的起始位置和字段偏移量解析出(屬性標識,Sign),并將其從IP 分組中移除,同時將IP 頭部的協(xié)議類型修改為未加屬性標識前的上層協(xié)議。例如,若(屬性標識,Sign)之后的上層協(xié)議為TCP,則將IP 頭部的協(xié)議類型修改為6。

        4.3.2 基于屬性標識的分組處理模型

        為了實現(xiàn)基于屬性標識的分組轉(zhuǎn)發(fā)和認證,設(shè)計了一個基于屬性標識的分組處理模型,該模型利用SDN 的特點設(shè)計了基于屬性標識的多級流表匹配轉(zhuǎn)發(fā)機制,通過流表匹配的方式選擇合適的分組進行數(shù)據(jù)來源驗證和實現(xiàn)基于屬性標識的匹配轉(zhuǎn)發(fā)。如圖5所示,該模型包括認證交換機和SDN控制器2個部分。認證交換機主要用于分組的解析、驗證和轉(zhuǎn)發(fā),其中包括分組解析模塊、數(shù)據(jù)來源鑒別模塊和流表匹配模塊。SDN 控制器負責為未匹配的分組下發(fā)合適的流規(guī)則,對其進行擴展增加了分組解析模塊、屬性標識失效模塊和流規(guī)則生成模塊,其功能分別為分組解析出屬性標識、進行屬性標識失效標記和生成匹配的流規(guī)則。

        圖5 基于屬性標識的匹配轉(zhuǎn)發(fā)模型

        4.3.3 認證交換機

        1)分組解析模塊

        認證交換機接收到的分組首先對分組進行解析,利用偏移字段從物理層—數(shù)據(jù)鏈路層—網(wǎng)絡(luò)層—屬性標識—傳輸層的網(wǎng)絡(luò)層次對分組頭進行解析,將分組解析成交換機可識別字段,如IP 地址、IP 協(xié)議類型、屬性標識和TCP/UDP 端口等。

        2)數(shù)據(jù)來源鑒別模塊

        數(shù)據(jù)來源鑒別模塊主要功能為生成設(shè)備—端口號映射表和分組合法性驗證。

        ①設(shè)備—端口號映射表

        當設(shè)備與交換機相連后,交換機與設(shè)備通信獲取設(shè)備地址,將設(shè)備地址與路由端口進行一一映射。其主要在鑒別分組合法性時,為認證交換機提供目的設(shè)備地址,使認證交換機與目的設(shè)備通信獲取訪問結(jié)構(gòu)T的公開參數(shù)。

        ②分組合法性驗證

        從流表匹配模塊接收到數(shù)據(jù)流匹配集后,首先獲取分組匹配集的目的地址,并通過設(shè)備—端口表與目的設(shè)備通信獲取對應(yīng)T的公開參數(shù),并對數(shù)字簽名進行驗證,將驗證通過的分組返回流表匹配模塊進行匹配。

        3)流表匹配模塊

        ①基于屬性標識的流表擴展

        流表匹配模塊將接收匹配條件集與匹配域進行匹配。由于屬性標識的加入,需要對原有匹配域進行擴展。根據(jù)OpenFlow 1.3[18],使用OXM 架構(gòu)的TLV 格式來定義匹配域字段,并將屬性標識添加至實驗字段OFPXMC_EXPERIMENTER,在協(xié)議的Flow-Mod 集中增加了屬性標識,將帶有屬性標識的流規(guī)則進行匹配。通過這種方式增加了匹配字段,擴展了匹配范圍,實現(xiàn)了新的流表匹配規(guī)則。其結(jié)構(gòu)如圖6所示。

        圖6 基于屬性標識的SDN 流表匹配結(jié)構(gòu)

        ②端口分類

        當數(shù)據(jù)流進入認證交換機時,有以下4種流動方式。流動方式1,從當前認證交換機到其他位置交換機;流動方式2,源設(shè)備接收后直接轉(zhuǎn)發(fā)至目的設(shè)備,即源設(shè)備和目的設(shè)備連接在同一個認證交換機上;流動方式3,其他認證交換機接收后轉(zhuǎn)發(fā)至目的設(shè)備;流動方式4,從源設(shè)備接收后轉(zhuǎn)發(fā)至其他位置認證交換機。不同流動方式其多級流表處理方式也不同。流動方式1和流動方式4中,數(shù)據(jù)流在SDN 中不需要進行數(shù)據(jù)合法性驗證,直接進行轉(zhuǎn)發(fā);流動方式2和流動方式3中,數(shù)據(jù)流要流出SDN,需要對數(shù)據(jù)流合法性進行驗證。根據(jù)上述分析,對認證交換機端口進行分類,如圖7所示。

        圖7 認證交換機端口分類

        認證交換機主要分為接入端口、路由端口、控制端口和屬性端口。接入端口與設(shè)備相連,路由端口與數(shù)據(jù)層中其他認證交換機相連,控制端口與控制層控制器相連,屬性端口與數(shù)據(jù)來源鑒別模塊相連。不同端口連接的設(shè)備不同,故可以通過端口變化和屬性標識表示數(shù)據(jù)流向。流動方式1表示為從路由端口進從路由端口出,流動方式2表示為從接入端口進從接入端口出,流動方式3表示從路由端口入從接入端口出,流動方式4表示為從接入端口入從路由端口出。使用Metadata 字段編碼區(qū)分數(shù)據(jù)流向。00表示待驗證的分組,01表示入端口為接入端口的分組,10表示接入端口為路由端口的分組,11表示接入端口為屬性端口的分組。初始標記為00,將解析字段和Metadata 字段作為匹配條件集發(fā)送給流表匹配模塊進行匹配查找。

        認證交換機通過OFPT_MULTIPART_REPLY向控制器發(fā)送端口分類信息,使控制器能夠?qū)Σ煌鬟M行劃分,根據(jù)流向下發(fā)對應(yīng)的流規(guī)則。當端口類型發(fā)生變化時,認證交換機通過控制端口向控制層控制器發(fā)送OFPT_PORT_MOD 消息,通知端口變更信息。

        ③基于屬性標識的多級流表匹配

        由于不同流向的數(shù)據(jù)流處理方式不同,本文使用多級流表[24]的方式進行處理,根據(jù)輸入端口的不同分配不同的流表,通過流表匹配的方式實現(xiàn)數(shù)據(jù)轉(zhuǎn)發(fā)及合法性驗證。

        流表匹配模塊作為分組處理的主要模塊,使用“端口匹配表—屬性標識鑒別表—基本轉(zhuǎn)發(fā)表”多級流表轉(zhuǎn)發(fā)模式實現(xiàn)基于屬性標識的分組轉(zhuǎn)發(fā)功能。多級流表分為端口表、屬性標識鑒別表、屬性標識動作表和基本轉(zhuǎn)發(fā)表。端口匹配表作為0級流表,用于區(qū)分數(shù)據(jù)來源;屬性標識鑒別表作為1級流表,用于鑒別屬性標識的有效性,其在生命周期內(nèi)存儲從控制器接收的最近一次無效流表,若屬性標識匹配則丟棄分組;屬性標識動作表作為2級流表,通過匹配判斷分組是否需要鑒別數(shù)據(jù)合法性;基本轉(zhuǎn)發(fā)表作為3級流表,主要用于轉(zhuǎn)發(fā)收到的分組,實現(xiàn)分組轉(zhuǎn)發(fā)的基本功能。其結(jié)構(gòu)如圖8所示。

        端口匹配表首先與匹配條件集進行匹配,若入端口為接入端口,且Metadata 字段為00,則其流表匹配過程如下。

        步驟1將Metadata 字段修改為01,并將匹配集轉(zhuǎn)發(fā)至屬性標識鑒別表。若匹配或?qū)傩詷俗R為空則丟棄分組,若不匹配則轉(zhuǎn)發(fā)至屬性標識動作表。如圖8中a 所示。

        步驟2匹配屬性標識動作表。若匹配則按照指令對數(shù)據(jù)流進行相應(yīng)的處理,若直接轉(zhuǎn)發(fā)至基本轉(zhuǎn)發(fā)表則表示該數(shù)據(jù)流為接入端口進路由端口出,若轉(zhuǎn)發(fā)到數(shù)據(jù)來源鑒別模塊則表示該數(shù)據(jù)流為接入端口入接入端口出。匹配失敗則通過Packet-In將數(shù)據(jù)流首部發(fā)送至控制器。如圖8中b 所示。

        步驟3數(shù)據(jù)來源鑒別模塊收到屬性標識鑒別表發(fā)來的數(shù)據(jù)流后對數(shù)據(jù)合法性進行驗證,將其返回端口表進行重新匹配,若不匹配則將其上傳給控制器的屬性標識失效模塊。如圖8中c 所示。

        步驟4端口表與返回數(shù)據(jù)流條件集進行匹配,若匹配端口為屬性端口且Metadata 字段為11,則直接轉(zhuǎn)發(fā)至基本轉(zhuǎn)發(fā)表。如圖8中d 所示。

        步驟5基本轉(zhuǎn)發(fā)表對條件集進行匹配,按匹配成功順序進行轉(zhuǎn)發(fā)。如圖8中e 所示。

        若入端口為路由端口,則Metadata 字段為10,其流表匹配過程如下。

        步驟1端口匹配表將匹配集轉(zhuǎn)發(fā)至屬性標識動作表。若匹配成功,按指令對數(shù)據(jù)流進行處理,如果直接轉(zhuǎn)發(fā),則表示數(shù)據(jù)流是屬于路由端口入路由端口出;如果將數(shù)據(jù)流發(fā)送至數(shù)據(jù)來源鑒別模塊,則表示數(shù)據(jù)流屬于路由端口入接入端口出,即下一跳為目的設(shè)備。若匹配失敗,則通過Packet_in將數(shù)據(jù)流首部發(fā)送至控制器。

        步驟2數(shù)據(jù)來源鑒別模塊對數(shù)據(jù)合法性進行驗證,將合法數(shù)據(jù)返回流表匹配模塊進行匹配。

        步驟3若端口匹配表匹配端口為屬性端口且Metadata 字段為11,則直接轉(zhuǎn)發(fā)至基本轉(zhuǎn)發(fā)表。

        步驟4基本轉(zhuǎn)發(fā)表實現(xiàn)數(shù)據(jù)流匹配轉(zhuǎn)發(fā)。

        4.3.4 SDN 控制器

        SDN 控制器主要任務(wù)是給未匹配的分組下發(fā)流規(guī)則和為非法分組下發(fā)失效流表。SDN 控制器在OpenDaylight 控制器的基礎(chǔ)上增加了分組解析功能,能夠根據(jù)偏移量解析出屬性標識;開發(fā)了屬性標識失效模塊標記非法分組;對流規(guī)則生成模塊進行了擴展,設(shè)計了基于屬性標識的流規(guī)則生成算法,根據(jù)匹配域生成帶有屬性標識的流規(guī)則。

        1)標記非法分組

        屬性標識失效模塊從數(shù)據(jù)來源鑒別模塊接收非法分組,獲取該分組的源IP 地址和屬性標識,并將其提供給流規(guī)則生成模塊,生成相應(yīng)的屬性標識失效流表,將失效流表下發(fā)至流表匹配模塊的屬性標識鑒別表,在分組入口禁止該類分組在SDN 中傳送。

        2)基于屬性標識的流規(guī)則生成

        圖8 基于屬性標識的多級流表結(jié)構(gòu)

        流規(guī)則模塊根據(jù)分組匹配集、屬性標識鑒別結(jié)果、控制層應(yīng)用策略和數(shù)據(jù)層訪問策略等條件,生成流規(guī)則。流規(guī)則分為靜態(tài)流規(guī)則和動態(tài)流規(guī)則。靜態(tài)流規(guī)則即控制機根據(jù)認證交換機信息主動下發(fā)并預置在認證交換機中的流規(guī)則,不會因數(shù)據(jù)流改變而更新。動態(tài)流規(guī)則是控制器根據(jù)數(shù)據(jù)層請求被動下發(fā)的流規(guī)則,根據(jù)數(shù)據(jù)流的改變而更新。

        端口匹配表中的流規(guī)則為靜態(tài)流規(guī)則,控制器獲取全局端口信息后,根據(jù)端口信息主動將端口匹配流規(guī)則下發(fā)給認證交換機端口匹配表。

        屬性標識鑒別表中流規(guī)則為動態(tài)流規(guī)則,控制器根據(jù)屬性標識失效模塊提供的失效策略生成失效流規(guī)則,并將該流規(guī)則下發(fā)至屬性標識鑒別表。

        屬性標識動作表中流規(guī)則為動態(tài)流規(guī)則,控制器根據(jù)數(shù)據(jù)流的流向、數(shù)據(jù)流的屬性標識和全網(wǎng)拓撲生成相應(yīng)的流規(guī)則,并下發(fā)給對應(yīng)的認證交換機。針對數(shù)據(jù)流向,設(shè)計動作選擇算法如算法1所示。

        算法1動作選擇算法

        輸入認證交換機、未匹配分組

        輸出屬性表示動作流規(guī)則R

        1)if 數(shù)據(jù)流出端口為路由端口

        2)生成動作為直接轉(zhuǎn)發(fā)至基本轉(zhuǎn)發(fā)表的流規(guī)則R2

        3)else

        4)生成動作為轉(zhuǎn)發(fā)至數(shù)據(jù)來源鑒別模塊的流規(guī)則R

        5)下發(fā)流規(guī)則R到認證交換機

        4.3.5 數(shù)據(jù)分組處理流程

        根據(jù)以上分析,給出分組處理流程如圖9所示。認證交換機收到分組后對分組進行解析,并將解析出的匹配集與流表匹配模塊進行匹配轉(zhuǎn)發(fā),在匹配過程中,需要將網(wǎng)絡(luò)出口處分組交由數(shù)據(jù)來源模塊進行鑒別,將未匹配的分組和非法分組交由控制器分別生成新的流規(guī)則和失效流規(guī)則。

        5 基于屬性標識的屬性簽名方案

        本文對Khader[25]的基于屬性的群簽名方案進行了擴展,使其能夠適應(yīng)SDN 的分布式情況。通過屬性標識組件、屬性標識認證中心和認證交換機實現(xiàn)分組中屬性簽名的驗證和訪問控制結(jié)構(gòu)的更新。其過程如圖10所示。

        圖9 分組處理流程

        圖10 屬性簽名模型

        1)屬性標識認證中心進行初始化,生成系統(tǒng)公開參數(shù)。2)每個設(shè)備的屬性標識組件根據(jù)需求構(gòu)造訪問控制結(jié)構(gòu)T,并將其上傳給屬性標識認證中心。3)屬性標識控制中心使用主私鑰與系統(tǒng)公開參數(shù)生成T的公開參數(shù),將其存儲在設(shè)備中。4)屬性標識認證中心將公開參數(shù)發(fā)送給認證交換機。5)屬性標識組件將設(shè)備屬性集合上傳至屬性標識認證中心。6)屬性標識認證中心根據(jù)設(shè)備屬性生成屬性標識和屬性私鑰,并將其返回至屬性標識組件。因此,不同設(shè)備擁有不同的屬性標識和屬性私鑰。7)當設(shè)備間需要通信時,屬性標識組件生成帶屬性標識和簽名的分組,并發(fā)送至認證交換機,認證交換機獲取設(shè)備公開參數(shù),并在網(wǎng)絡(luò)出口對分組進行簽名驗證。當設(shè)備需更新訪問結(jié)構(gòu)時,只需上傳新的訪問結(jié)構(gòu)T給屬性標識認證中心,獲取新的訪問結(jié)構(gòu)T的公開參數(shù)。

        5.1 訪問結(jié)構(gòu)構(gòu)造

        訪問結(jié)構(gòu)T為設(shè)備收到簽名后驗證簽名所需的屬性集,并使用屬性樹Γ來描述,其構(gòu)造方法基于Goyal 等[26]的構(gòu)造方法。在屬性樹中每個根節(jié)點作為一個門限值,并且每個屬性作為其葉子節(jié)點與其連接。每個門限值表示在其所連的葉子節(jié)點中需要滿足的條件數(shù),即該根節(jié)點下需要的屬性數(shù)量,其屬性樹結(jié)構(gòu)如圖11所示。

        利用屬性樹生成公鑰,只有滿足屬性樹中屬性要求的用戶的數(shù)字簽名才能通過驗證,如圖11所示,一個IT 部門的管理員需要進行read 操作,該用戶滿足屬性樹,故其簽名可以通過驗證,如果同一個IT 部門的工程師想要進行read 操作,其不符合屬性樹的要求,故不能通過驗證。

        5.2 方案形式化定義

        下面給出基于屬性的群簽名的相關(guān)定義。

        圖11 屬性樹結(jié)構(gòu)

        定義1屬性樹為Γ,訪問控制結(jié)構(gòu)為T,屬性樹使用top—down—left—right 順序。根節(jié)點表示為(m,n),m表示門限值,n表示其葉子節(jié)點的個數(shù);κ表示屬性樹的葉子數(shù)。則圖10中的屬性樹可表示為

        將Γ上屬性進行Hash 運算,生成定長字符串。

        定義2γi表示每個用戶所擁有的私鑰,μ表示私鑰數(shù)即γi的數(shù)量。

        定義3ζi表示用戶用于簽名所使用的屬性,ζi中的元素滿足γi,即ζi?γi,例如Γ={(1,2),管理員,工程師},員工i使用ζi={工程師}可以通過驗證,τ表示ζi的元個數(shù)。

        該算法包括Setup、KeyGen、Sign 和Verify共4個部分。

        Setup屬性標識認證中心選擇一個雙線性對e:G1×G2→GT,其中,G1、G2和GT是p階乘法循環(huán)群,p是一個大素數(shù)。g2是G2的生成元,存在同態(tài)映射g1←ψ2,其中ψ2為屬性集合。系統(tǒng)選擇一個公開的Hash 函數(shù)屬性散列結(jié)果集合為選擇h∈G1和隨機的ξ1和ξ2設(shè)u,v∈g1且隨機選擇并計算W=g2。定義屬性空間U={1,2,…,n},每個j∈U選擇屬性集合然后,計算出公開參數(shù)PK 和系統(tǒng)秘密參數(shù)MK。

        該過程包括為用戶生成屬性私鑰和為訪問控制結(jié)構(gòu)T生成公開參數(shù)兩部分。系統(tǒng)通過γ為用戶i(1≤i≤n)生成一個基私鑰gsk[i]base=(Ai,xi),并且其是一個SDH(strong Diffie-Hellman)對,即

        1)KeyGenpublic(Γ)。根據(jù)屬性樹Γ的結(jié)構(gòu),首先為Γ中每個非葉子節(jié)點選擇一個多項式qx,對于根節(jié)點使用自上而下的構(gòu)造方式。首先,樹中節(jié)點為x,其多項式qx的次數(shù)dx小于其閾值kx,即dx=kx-1。作為起始項的根節(jié)點qr(0)=ω。然后,隨機選取其他節(jié)點的多項式,其他節(jié)點滿足qn(0)=qparent(index(x))。隨機選取多項式qn進行遞歸構(gòu)造屬性樹多項式。最后,通過以下計算式

        獲取屬性樹Γ的公開參數(shù)并將TPK 和系統(tǒng)公開參數(shù)PK 發(fā)送給認證交換機的分組來源鑒別模塊。

        2)KeyGenprivate(gsk[i]base,γi)。為擁有屬性γi的用戶i頒發(fā)私鑰。對于屬性j∈γi,計算獲得用戶私鑰為當系統(tǒng)輸入屬性集合γi?U,j?γi,屬性樹的公開參數(shù)和消息m后,進行以下步驟。

        步驟1選擇屬性簽名ζ?γi和隨機數(shù)α、β,

        步驟2計算Ai和Tij的線性加密,其中j∈ζ,計算式為

        步驟3計算δ1=xiα,δ2=xiβ,然后選擇隨機數(shù)通過隨機數(shù)計算

        步驟4

        步驟5構(gòu)造值sα=(γα+cα),sβ=(γβ+cβ),

        步驟6使η=ωrnd,計算出數(shù)字簽名最后將簽名及屬性標識(σ,AID)一同發(fā)給驗證者,其中AID 是屬性集ζ的Hash 運算。

        Verify收到簽名后對簽名進行驗證。首先,驗證簽名人是否滿足訪問結(jié)構(gòu)T,定義一個遞歸算法Verifynode,對于葉子節(jié)點x,進行如下計算

        假如x節(jié)點不是葉子節(jié)點,執(zhí)行以下步驟。將所有x子節(jié)點z值Verifynode(z)保存在函數(shù)Fz中,使用拉格朗日插值法遞歸求出根節(jié)點的Fx值。在j∈{index(z):z∈sx-index(z)}條件下,計算并且進行如下計算獲取父節(jié)點值。

        遞歸求出根節(jié)點Fx的值,驗證,如果成立則表示簽名滿足屬性樹Γ,則進行如下計算過程,否則拒絕簽名。

        5.3 方案安全性分析與證明

        由于匿名性和不可偽造性是安全群簽名方案基本安全要求[30],因此在本節(jié)對方案的正確性、匿名性和不可偽造性進行證明。

        1)方案正確性證明

        上述等式成立的理由為

        2)匿名性證明

        假如線性加密能夠抵抗不可區(qū)分性選擇明文攻擊(IND-CPA,indistinguishability under chosen-plaintext attack),那么該方案具有匿名性。下面用反證法進行證明。

        證明假設(shè)攻擊者A 能打破SSA 安全,則攻擊者E 能打破IND-CPA 安全,攻擊者A 和E 共同扮演一個挑戰(zhàn)者,當A 發(fā)起挑戰(zhàn)時,他發(fā)送i0、i1、消息M和集合ζ給E,E 運行Setup 步驟,獲取A的基私鑰通過這2個值對線性加密方案發(fā)起IND-CPA 挑戰(zhàn)。E 將會得到這2個值中一個值A(chǔ)ib的一份密文。其密文為其中C1=uα,,E進行計算。E給A發(fā)送ib的數(shù)字簽名但是攻擊者E 自己不知道隨機值b的取值。假如A能夠打破該方案的匿名性,則E 將從A 處獲得正確的b,通過b獲知是否被加密。E 將打破線性加密的IND-CPA 安全,與條件相矛盾,所以該方案具有匿名性。證畢。

        3)不可偽造性證明

        針對該方案主要攻擊為替換用戶屬性私鑰攻擊,即偽造屬性簽名σ=(σ1,σ2),其中σ1和σ2分別由用戶主私鑰和屬性私鑰構(gòu)成,分別替換用戶的主私鑰和屬性私鑰。本方案在驗證時通過e(A-1,D)=g(g1,W)將σ1和σ2進行關(guān)聯(lián),防止主私鑰的攻擊,驗證時加入系統(tǒng)主私鑰相關(guān)的W,使攻擊者無法替換屬性認證中心生成的屬性私鑰,可以防止屬性私鑰攻擊。根據(jù)分析,構(gòu)造攻擊者—挑戰(zhàn)者游戲模型來證明方案的不可偽造性,將不可偽造性規(guī)約于SDH 困難問題,通過反證法進行證明,詳細證明如附錄A 所示。

        6 實驗及評估

        本文已實現(xiàn)并部署了一個基于屬性標識的ACFlow 原型系統(tǒng)。該系統(tǒng)基于OpenDaylight 進行二次開發(fā),對OpenDaylight 控制器和OVS 交換機進行功能擴展以完成功能部署,并利用sFlow 監(jiān)控網(wǎng)絡(luò)流量;最后通過雙線性加密庫和C++代碼實現(xiàn)基于屬性的群簽名方案。接下來將從功能有效性、耗時、性能這三方面對其進行評估。

        6.1 實驗環(huán)境

        使用10臺主機作為實驗環(huán)境,其配置如表2所示。

        表2 實驗環(huán)境配置

        6.2 功能有效性測試

        首先,對第3節(jié)的2個攻擊場景進行測試,表明通過該系統(tǒng)的保護惡意源設(shè)備A 不能對目的設(shè)備C 實施掃描攻擊。

        1)如圖2所示,惡意源設(shè)備A 通過添加新的匹配流表繞過防火墻直接訪問目的設(shè)備C,造成防火墻失效,實現(xiàn)對目的設(shè)備的直接攻擊。而在基于屬性標識的SDN 中,首先認證交換機會對源設(shè)備進行數(shù)字簽名認證,決定該設(shè)備的分組是否合法,由于惡意源設(shè)備A 不滿足目的設(shè)備C 的訪問結(jié)構(gòu),其發(fā)送數(shù)據(jù)無法到達目的設(shè)備C。

        2)如圖3所示,惡意源設(shè)備A 不直接訪問目的設(shè)備C,而是通過添加2條流規(guī)則,使合法源設(shè)備B 訪問目的設(shè)備C,然后修改數(shù)據(jù)轉(zhuǎn)發(fā)的目的地址,將目的設(shè)備C 的數(shù)據(jù)分組轉(zhuǎn)發(fā)給惡意源設(shè)備A,間接實現(xiàn)對目的設(shè)備的掃描攻擊,造成防火墻的失效。但在ACFlow 系統(tǒng)中,會對目的設(shè)備的設(shè)備密碼屬性進行驗證,驗證其是否符合目的設(shè)備的訪問結(jié)構(gòu),對合法但不符合訪問規(guī)則的源設(shè)備進行屏蔽,實現(xiàn)對目的設(shè)備的保護,如源設(shè)備B 對目的設(shè)備C 訪問的數(shù)據(jù)分組是合法的故可以通過,但是目的設(shè)備C 不能滿足到設(shè)備A 的訪問結(jié)構(gòu),故目的設(shè)備C 的數(shù)據(jù)分組在到達OpenvSwitch1時被攔截。

        根據(jù)以上2種情況,對基于屬性標識的SDN進行功能評估:1)該系統(tǒng)能否鑒別屬性標識的有效性;2)該系統(tǒng)能否實現(xiàn)基于屬性標識的訪問控制。根據(jù)要求,其實驗網(wǎng)絡(luò)拓撲如圖12所示。

        圖12 實驗網(wǎng)絡(luò)拓撲

        1)主機h1攜帶有效的屬性標識和數(shù)據(jù)簽名,h2攜帶不符合h6訪問結(jié)構(gòu)的屬性標識和數(shù)據(jù)簽名,h3為一般分組不攜帶任何屬性標識和數(shù)據(jù)簽名,以上3臺源設(shè)備以50 package/s 的速率向h6持續(xù)發(fā)送數(shù)據(jù),控制器為其下發(fā)路徑為 h1/h2/h3→e1→e2→e3→h6,使用SFlow 對e1、e2和e3的流量進行監(jiān)控,重復10次,每次12 s,結(jié)果取均值。其結(jié)果分別如圖13~圖15所示。橫坐標表示時間,其單位為 s;縱坐標表示數(shù)據(jù)分組速率,其單位為package/s,正向代表流入數(shù)據(jù)分組,即認證交換器接收h1、h2和h3的數(shù)據(jù)分組,負向代表流出的數(shù)據(jù)分組,即向h6轉(zhuǎn)發(fā)的數(shù)據(jù)分組。

        圖13 認證交換機e1流量統(tǒng)計

        圖14 認證交換機e2流量統(tǒng)計

        圖15 認證交換機e3流量統(tǒng)計

        從圖13中可以看出,認證交換機e1接收了h1、h2和h3的數(shù)據(jù)分組,由于只有h1和h2攜帶屬性標識,因此e1只對h1和h2的數(shù)據(jù)分組進行轉(zhuǎn)發(fā),h3數(shù)據(jù)分組直接丟棄,但h2在第一秒進行了少量轉(zhuǎn)發(fā),隨后進行丟棄。

        從圖14和圖15可知,h3的分組已丟棄,圖中h3-h6值為0,h2分組在第1 s 內(nèi)進行轉(zhuǎn)發(fā)隨后被丟棄,h1的分組仍在轉(zhuǎn)發(fā)。隨后查看認證交換機發(fā)現(xiàn),e2和e3沒有添加新的流規(guī)則,e1生成一條無效流規(guī)則將h2的數(shù)據(jù)分組丟棄。

        從以上實驗結(jié)果可知,當數(shù)據(jù)分組進入認證交換機后,首先認證交換機通過屬性標識鑒別表將不符合規(guī)格即屬性標識為空的數(shù)據(jù)分組丟棄,并對符合轉(zhuǎn)發(fā)條件的數(shù)據(jù)分組進行轉(zhuǎn)發(fā),在目的端對數(shù)據(jù)分組合法性進行驗證,合法數(shù)據(jù)分組進行轉(zhuǎn)發(fā);對不合法的數(shù)據(jù)分組,控制器會在接收端下發(fā)無效流表對其隨后的數(shù)據(jù)分組進行丟棄。因此,該網(wǎng)絡(luò)可以將失效的屬性標識進行丟棄,并且可以拒絕未攜帶屬性標識的非法數(shù)據(jù)分組進入網(wǎng)絡(luò)。

        2)h1攜帶符合h6訪問結(jié)構(gòu)的屬性標識和簽名,并以每秒50個數(shù)據(jù)分組的速率向e1發(fā)送數(shù)據(jù)分組,在前12 s主機h1數(shù)據(jù)分組以路徑 h1→e1→e2→e3→h6發(fā)送給h6,之后12 s 通過控制器將h1的路徑修改為 h1→e1→e2→h4,將發(fā)往h6的數(shù)據(jù)分組發(fā)送給h4。并使用SFlow 對e2和e3進行流量監(jiān)控,重復10次,每次12 s,結(jié)果取平均值,分別如圖16和圖17所示。

        從圖16和圖17中可知,對于攜帶相同的屬性標識和簽名的數(shù)據(jù)分組,其只能訪問符合訪問結(jié)構(gòu)的目的設(shè)備,當訪問其他設(shè)備時會被認證交換機判定非法,將其進行丟棄。因此,可以實現(xiàn)基于屬性標識的細粒度訪問控制。

        圖16 認證交換機e3流量統(tǒng)計

        圖17 認證交換機e2流量統(tǒng)計

        6.3 方案對比

        設(shè)計ACFlow 主要實現(xiàn)數(shù)據(jù)流的細粒度控制,和實現(xiàn)數(shù)據(jù)流的有效控制。但是在實際應(yīng)用中,隨著網(wǎng)絡(luò)規(guī)模的增加,用戶所需的角色越來越多,其訪問控制管理難度也隨之增加。

        將本文方案與常用的6種數(shù)據(jù)流認證方案進行對比,如表3所示,包括 SE-Floodlight[7]、RoseMary[8]、FRESCO[9]、FortNOX[4]、PERMGUARD[33]和PermOF[10],以上方案通過認證方式阻止用戶的非法訪問。

        表3 認證方案對比

        在SDN 中每產(chǎn)生一條新的流規(guī)則,代表一次數(shù)據(jù)流的改變,需要對用戶進行相應(yīng)身份認證。流規(guī)則的數(shù)量與身份認證數(shù)量呈正相關(guān),其反映的是數(shù)據(jù)流管理粒度。因此,將本文方案管理粒度與其他方案管理粒度進行對比,結(jié)果如圖18所示。

        圖18 身份認證粒度對比

        由于 SE-Floodlight、RoseMary、FRESCO、FortNOX 提供身份驗證只有3個角色,因此最先出現(xiàn)身份認證數(shù)量瓶頸。PERM-GUARD 和PermOF由于使用訪問列表,能夠提供更細粒度的數(shù)據(jù)流管理,但是限于訪問列表的大小,其在更大數(shù)量的流規(guī)則下出現(xiàn)了身份認證數(shù)量不足的情況。由于本文方案采用屬性簽名,其根據(jù)需求定義訪問結(jié)構(gòu),只有滿足其訪問結(jié)構(gòu)的簽名才能驗證成功,該簽名算法實現(xiàn)訪問控制不需要存儲訪問列表,因此不會受到傳統(tǒng)訪問控制中訪問列表的限制,能夠?qū)崿F(xiàn)更好的細粒度管理。但是,其最大訪問數(shù)量會受到SDN交換機處理流表能力的限制,當多個數(shù)據(jù)流通過一個交換機時,會造成流表項過大產(chǎn)生擁塞,所以當流表數(shù)量增加到一定程度后ACFlow 身份認證數(shù)量不增加。

        6.4 性能分析

        本節(jié)對基于屬性標識的SDN 性能進行評估,主要考慮以下幾個問題:問題1,基于屬性標識的SDN 分組處理能力;問題2,控制器CPU 利用率;問題3,主機CPU 利用率。

        針對問題1,基于屬性標識SDN 分組處理能力主要體現(xiàn)在分組簽名能力和分組驗證能力上,即生成一組帶有屬性標識和簽名的IP 分組所需的時間和對每組IP 分組簽名進行驗證消耗的時間。這兩項指標決定網(wǎng)絡(luò)分組的處理能力。但由于主機發(fā)送分組長度不同和不同時間下主機流量不同,故不同時間和不同分組長度的測量結(jié)果不同,為了測量最大分組簽名和驗證能力,需要注意以下兩點:1)盡可能增加簽名驗證在分組產(chǎn)生和轉(zhuǎn)發(fā)時間中所占的比例;2)在網(wǎng)絡(luò)最活躍時進行測量,保證測出簽名最快速率。對于1)通過在主機上持續(xù)發(fā)送定長為64 B 的短分組實現(xiàn)。對于2)需要判斷何時為最活躍時間,分別參照斯坦福300名用戶[27]和22000名用戶[28]SDN 實驗以及伯克利實驗室[27]在超過8000名用戶SDN 中統(tǒng)計數(shù)據(jù),表明每個活躍的設(shè)備在其運行的9~25 min 時設(shè)備轉(zhuǎn)發(fā)分組量最大。因此,首先在主機運行的9~25 min 內(nèi)統(tǒng)計了200組分組(每個分組定長為64 B,每組20 MB),每組分組生成時間如圖19所示,其中橫坐標為分組編號,縱坐標為分組生成所需要的時間。從圖19中可知,生成新的帶屬性標識分組的平均時間為25.76 ms,即每秒可發(fā)送38組不同屬性標識和簽名的數(shù)據(jù)分組,速率約為760 MB/s。

        圖19 生成帶屬性標識和簽名的IP 分組時間

        關(guān)于認證交換機驗證分組簽名能力,通過對200個帶不同屬性標識和簽名的分組(每個分組64 B,每組20 MB)進行驗證,得出驗證每個分組所需要的時間如圖20所示。

        圖20 驗證帶屬性標識和簽名IP 分組時間

        通過圖20可知,認證交換機對帶有簽名的分組組驗證的平均時間為51.77 ms,表示認證交換機每秒可以處理386 MB。據(jù)文獻[7,27-29,33],日常使用中交換機需要處理流量如表4所示。根據(jù)表4可以得出,ACFlow 系統(tǒng)分組處理能力能夠滿足網(wǎng)絡(luò)基本需求。

        表4 不同的網(wǎng)絡(luò)中交換機平均轉(zhuǎn)發(fā)數(shù)據(jù)分組

        隨著認證交換機收到數(shù)據(jù)的增加,其認證的時間也會相應(yīng)地增加,而驗證效率會否隨著數(shù)據(jù)量增加而降低成為數(shù)據(jù)吞吐量的瓶頸。為此對不同數(shù)據(jù)量下認證交換機所需認證時間進行統(tǒng)計,結(jié)果如圖21所示,橫坐標代表分組數(shù),其中每組20 MB。根據(jù)結(jié)果可知,認證交換機驗證分組數(shù)量和時間呈線性關(guān)系,驗證分組的速率不隨分組增加而改變。

        圖21 不同數(shù)據(jù)量下認證交換機所需認證時間

        針對問題2,使用原生OpenDaylight 控制器和經(jīng)過二次開發(fā)的OpenDaylight 控制器進行CPU 利用率對比。在主機上不同位置持續(xù)發(fā)送合法的數(shù)據(jù)分組,統(tǒng)計在不同Packet_in 速率下控制器CPU 利用率,結(jié)果如圖22所示。

        圖22 控制器CPU 利用率對比

        由圖22可知,在相同Packet_in 速率下ACFlow系統(tǒng)中的控制器 CPU 利用率略高于原生OpenDaylight 控制器,這表明在實現(xiàn)安全功能的前提下,ACFlow 系統(tǒng)沒有過多增加控制器負載。

        針對問題3,在h1、h2上使用hping3向網(wǎng)絡(luò)注入數(shù)據(jù)分組,其速率分別為0、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,在不同場景下分別測量帶屬性標識組件主機和標準主機的CPU 利用率。在不同的速率下重復10次。每次取其平均值,其結(jié)果如圖23所示。

        圖23 主機CPU 利用率對比

        從圖23可知,帶屬性標識組件的主機CPU 占用率略高于標準主機,二者都隨著流量的增大而增大。隨著數(shù)據(jù)流量的增大其所需封裝的數(shù)據(jù)分組增加,CPU 占用率差值逐漸增大。因為帶屬性標識組件的主機要在發(fā)送數(shù)據(jù)分組之前生成簽名并對簽名和屬性標識進行封裝,雖然生成簽名的計算開銷大,但其只與設(shè)備屬性有關(guān),與數(shù)據(jù)分組無關(guān),只需進行一次運算,而封裝簽名和屬性標識的計算開銷很小。因此在分組數(shù)目可控的情況下,隨著速率增加二者CPU 占用率差別較小,最大相差0.8%。

        6.5 網(wǎng)絡(luò)可用性分析

        通過與不加入屬性標識和簽名的SDN 中分組丟失率和時延進行對比,對網(wǎng)絡(luò)可用性進行分析。首先在設(shè)備上運行WireShark,以不同的速率、不同端口發(fā)送分組長為1514 B 的數(shù)據(jù)分組,并統(tǒng)計其分組丟失率如圖24所示。

        圖24 網(wǎng)絡(luò)分組丟失率

        從圖24可以看出,隨著分組發(fā)送率增大,網(wǎng)絡(luò)的分組丟失率增大,由于攜帶屬性標識和簽名的數(shù)據(jù)分組在交換機中需要進行驗證和多級流表匹配等操作,因此其分組丟失率大于不帶屬性標識和簽名的網(wǎng)絡(luò),結(jié)果表明該架構(gòu)額外帶來的網(wǎng)絡(luò)分組丟失率為2.56%。

        然后,統(tǒng)計50次分組ACK 返回時延,重復10次求其平均值。在ACFlow 架構(gòu)下,每次分組ACK 返回時延記為TACFlow,而不加入屬性標識和簽名的系統(tǒng)其返回時延記為TN-ACFlow,其測量數(shù)據(jù)如圖25所示。

        圖25 網(wǎng)絡(luò)時延對比

        從圖25可知,未添加屬性標識和簽名的網(wǎng)絡(luò)延遲的平均值為31.48 ms,而ACFlow 架構(gòu)的網(wǎng)絡(luò)延遲平均值為103.2 ms,其平均時延增加了71.72 ms。通過上面分析可知,生成屬性標識和簽名并對簽名進行驗證的時間占整個時延的65.4%,所以簽名的算法復雜度直接決定了網(wǎng)絡(luò)時延,但是仍在可行通信時延內(nèi)。

        7 結(jié)束語

        針對SDN 數(shù)據(jù)來源驗證和細粒度的訪問等問題,通過軟件定義網(wǎng)絡(luò)和密碼技術(shù)的融合,提出了基于屬性標識的ACFlow 架構(gòu),該架構(gòu)利用屬性標識的身份屬性、認證屬性和標識屬性,在網(wǎng)絡(luò)進出口處對屬性標識進行驗證,實現(xiàn)了數(shù)據(jù)流合法認證。通過密碼標識流表匹配機制,實現(xiàn)基于密碼標識的流表匹配,能夠?qū)W(wǎng)絡(luò)進行靈活的動態(tài)管理,實現(xiàn)網(wǎng)絡(luò)訪問的細粒度管理,實現(xiàn)基于人、事、物的多維劃分,并且在安全功能上實現(xiàn)了去中心化,將安全功能分布在數(shù)據(jù)層中,降低了對控制器影響。

        在網(wǎng)絡(luò)的功能性和可用性上進行了驗證,驗證結(jié)果表明該架構(gòu)在實現(xiàn)網(wǎng)絡(luò)安全功能的基礎(chǔ)上保證了網(wǎng)絡(luò)的可用性。相似認證方案的對比表明,ACFlow 在認證粒度方面具有較大優(yōu)勢。雖然ACFlow 能夠?qū)崿F(xiàn)數(shù)據(jù)流的認證管理,但其仍面臨SDN 北向開放接口所帶來的安全威脅,未來將從北向接口流規(guī)則認證方面和數(shù)據(jù)流驗證兩方面做出更多努力,以此提高SDN 整體安全性。

        附錄A

        匿名性證明定義一個攻擊者A 與挑戰(zhàn)者C 的游戲模型。

        初始化首先A 選定要挑戰(zhàn)的訪問結(jié)構(gòu)T,偽造滿足T的用戶簽名。

        參數(shù)生成C 運行方案中的Setup 算法,選定(G1,G2)以及(g1,g2)。并隨機選擇與屬性相對的t1,…,tn和其私鑰s。隨機選擇用戶的私鑰對(Ai,xi),在這些私鑰對中設(shè)定Ai對應(yīng)的xi不可見,其他的私鑰對則是一個有效的SDH 對,隨后C 為T構(gòu)造相同的公開參數(shù)并發(fā)送給敵手A。敵手的參數(shù)為PK={g1,g2,h,u,Dleaf1,…,Dleafn,h1,…,hn}。

        散列查詢A 可以對H3(C1,C2,C3,R1,R2,R3,R4,R5)進行查詢,C 將隨機返回一個G1元素給A,并且保留結(jié)果防止相同的查詢。

        私鑰查詢A 要求查詢給定i的屬性,結(jié)合γ的私鑰進行查詢,如果xi不為空,C 返回(Ai,xi)給A;否則,C 宣布游戲失敗。

        簽名查詢A 要求查詢用戶i的屬性集合ζ在消息M上的簽名,有ζ滿足訪問結(jié)構(gòu)T。如果xi不為空,C則計算Ti,j=Ai,j,并按算法得到簽名σ,并將其發(fā)送給A。過xi為空,則C 隨機選擇然后進行以下計算

        隨機選擇。計算為了保持一致性,保存κ到H(C1,C2,C3,R1,R2,R3,R4,R5)中,同時計算出W。

        將簽名σ發(fā)送給A。對于這個簽名A 可以通過驗證,認為是有效簽名。

        現(xiàn)在通過A 的偽造構(gòu)造一個新的SDH 對,這需要用到分叉引理證明。假設(shè)敵手偽造簽名為,σ=(κ,σ1,σ2,σ3,σ4),具體定義如下。σ1=(C1,C2,C3,R1,R2,R3,R4,R5),其中κ來自σ1的散列值。σ2=(s1,s2,s3)用于計算散列缺失的輸入,σ3=({CTj}j∈ζ,W),這個取決于每次簽名的屬性集合,σ4為簽名的其他部分。

        在此,引用文獻[29]的分叉引理,C 首先與A 進行一組攻擊游戲。A 將輸出一個有效的簽名σ=(κ,σ1,σ2,σ3,σ4)。C 以重放的方式和A 再進行一組攻擊游戲,即這組游戲的所有運行條件與之前那組完全相同,唯一不同的是C 重排了Hash 函數(shù)的請求答復,同時由于C 模擬生成的Hash 函數(shù)值是隨意分布的,以此重排后的值仍然有效且不可區(qū)分。經(jīng)過這一組游戲,A 同樣輸出一個有效簽名σ=(κ,σ1,σ2,σ3,σ4)。

        C 通過σ=(κ,σ1,σ2,σ3,σ4)和σ=(κ,σ1,σ2,σ3,σ4)構(gòu)造一個新的SDH 對。并進行如下計算:

        依次計算R1、R2、R3、R4、R5

        證畢。

        猜你喜歡
        規(guī)則設(shè)備
        諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
        撐竿跳規(guī)則的制定
        數(shù)獨的規(guī)則和演變
        基于VB6.0+Access2010開發(fā)的設(shè)備管理信息系統(tǒng)
        規(guī)則的正確打開方式
        幸福(2018年33期)2018-12-05 05:22:42
        基于MPU6050簡單控制設(shè)備
        電子制作(2018年11期)2018-08-04 03:26:08
        讓規(guī)則不規(guī)則
        Coco薇(2017年11期)2018-01-03 20:59:57
        TPP反腐敗規(guī)則對我國的啟示
        搜索新規(guī)則
        500kV輸變電設(shè)備運行維護探討
        免费av片在线观看网站| 国产精品内射久久一级二| 无码熟妇人妻av影音先锋| 免费人成视频x8x8| 92精品国产自产在线观看48页 | 国产av国片精品有毛| 99久久久无码国产精品试看| 骚片av蜜桃精品一区| 精品久久人妻一区二区| 99re6在线视频精品免费| 男女下面进入的视频| 日本激情网址| 久久精品国产一区老色匹 | 欧美性猛交xxxx富婆| 日韩在线看片| 日本伦理美乳中文字幕| 高黄暴h日本在线观看| 欧美巨大巨粗黑人性aaaaaa| 日韩av一区二区三区四区av| 成人国产av精品麻豆网址| 亚洲午夜成人精品无码色欲 | 久久精品视频91| 日本免费一区二区精品| 亚洲熟女综合色一区二区三区| 乱码精品一区二区三区| 1234.com麻豆性爰爱影| 亚洲av综合色一区二区| 成年女人色毛片| 久久精品国产91久久性色tv | 中文字幕丰满伦子无码| 亚洲国产精品嫩草影院久久| 91人妻人人做人人爽九色| 男人添女人囗交做爰视频| 国产精品卡一卡二卡三| 蜜桃av观看亚洲一区二区| 在线观看视频日本一区二区| 极品美女aⅴ在线观看| 国内精品久久久久久久久蜜桃| 高清不卡日本v二区在线| 久久精品国产亚洲av电影网| 国产aⅴ夜夜欢一区二区三区|