本發(fā)明屬于SDN安全領(lǐng)域,涉及一種SDN控制器的訪問控制方法及系統(tǒng),以保護(hù)SDN網(wǎng)絡(luò)中網(wǎng)絡(luò)信息的機(jī)密性,提高SDN網(wǎng)絡(luò)中控制器的可靠性,為SDN網(wǎng)絡(luò)提供安全保證。
背景技術(shù):
SDN網(wǎng)絡(luò)(Software Defined Network,軟件定義網(wǎng)絡(luò))是一種新型網(wǎng)絡(luò)創(chuàng)新架構(gòu),其核心技術(shù)OpenFlow通過將網(wǎng)絡(luò)設(shè)備控制面與數(shù)據(jù)面分離開來,從而實(shí)現(xiàn)了網(wǎng)絡(luò)流量的靈活控制。與傳統(tǒng)網(wǎng)絡(luò)相比,SDN網(wǎng)絡(luò)的基本特征有三點(diǎn):其一是控制與轉(zhuǎn)發(fā)分離,轉(zhuǎn)發(fā)平面由受控轉(zhuǎn)發(fā)的設(shè)備組成,轉(zhuǎn)發(fā)方式以及業(yè)務(wù)邏輯由運(yùn)行在分離出去的控制面上的控制應(yīng)用所控制;其二是控制平面與轉(zhuǎn)發(fā)平面之間的開放接口,SDN為控制平面提供開放可編程接口,通過這種方式,控制應(yīng)用只需要關(guān)注自身邏輯,而不需要關(guān)注底層更多的實(shí)現(xiàn)細(xì)節(jié);其三是邏輯上的集中控制,邏輯上集中的控制平面可以控制多個(gè)轉(zhuǎn)發(fā)面設(shè)備,也就是控制整個(gè)物理網(wǎng)絡(luò),因而可以獲得全局的網(wǎng)絡(luò)狀態(tài)視圖,并根據(jù)該全局網(wǎng)絡(luò)狀態(tài)視圖實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)的優(yōu)化控制。
由于在SDN網(wǎng)絡(luò)中,控制器平面提供開放可編程接口,通過這種方式,控制器端的北向應(yīng)用可以對(duì)控制器下發(fā)管理指令,通過交換機(jī)與控制器之間的openflow協(xié)議進(jìn)行通信,這使得網(wǎng)絡(luò)控制器的北向應(yīng)用成為SDN網(wǎng)絡(luò)的實(shí)際管理模塊,同時(shí)也成為SDN網(wǎng)絡(luò)的安全焦點(diǎn),北向應(yīng)用的訪問控制以及其權(quán)限劃分直接關(guān)系到整個(gè)網(wǎng)絡(luò)的安全性。在現(xiàn)有的部署模式和安全手段下,由于北向應(yīng)用可以獲取整個(gè)系統(tǒng)的網(wǎng)絡(luò)信息,網(wǎng)絡(luò)信息成為一個(gè)公開的數(shù)據(jù),難以保證SDN網(wǎng)絡(luò)中網(wǎng)絡(luò)信息的機(jī)密性。
上述問題的根源在于控制器端存儲(chǔ)的數(shù)據(jù)沒有合理的訪問控制規(guī)則,而SDN控制器存儲(chǔ)的數(shù)據(jù)對(duì)于底層網(wǎng)絡(luò)具有充分的描述,所以攻擊者僅僅需要獲取北向接口就可以獲取整個(gè)網(wǎng)絡(luò)的所有信息,只有對(duì)于這種數(shù)據(jù)進(jìn)行包婚才能保證SDN控制器的安全性,才能保證整個(gè)網(wǎng)路的安全性。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)在現(xiàn)有SDN控制器北向應(yīng)用的缺陷,本發(fā)明提供了一種SDN控制器的訪問控制方法及系統(tǒng),用以提高SDN網(wǎng)絡(luò)中網(wǎng)絡(luò)信息的機(jī)密性,提高SDN控制器的可靠性,為SDN網(wǎng)絡(luò)提供安全保證。
為實(shí)現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案:
一種SDN控制器的訪問控制方法,其中,SDN網(wǎng)絡(luò)中的北向應(yīng)用分為三種安全級(jí)別:管理員類別、網(wǎng)絡(luò)配置類別和用戶類別;管理員類別的北向應(yīng)用允許讀寫數(shù)據(jù)平面中的設(shè)備數(shù)據(jù),但無法讀寫數(shù)據(jù)平面中的轉(zhuǎn)發(fā)數(shù)據(jù);網(wǎng)絡(luò)配置類別的北向應(yīng)用允許讀寫數(shù)據(jù)平面中的用于管理轉(zhuǎn)發(fā)數(shù)據(jù)包的控制數(shù)據(jù),以及數(shù)據(jù)平面中的用于控制數(shù)據(jù)包轉(zhuǎn)發(fā)的控制數(shù)據(jù),但是不允許讀寫數(shù)據(jù)平面中的設(shè)備數(shù)據(jù);用戶類別的北向應(yīng)用允許讀寫數(shù)據(jù)平面中的轉(zhuǎn)發(fā)數(shù)據(jù),但是不允許讀寫數(shù)據(jù)平面中的控制轉(zhuǎn)發(fā)數(shù)據(jù)和設(shè)備數(shù)據(jù);其步驟為:
1)用戶向北向應(yīng)用發(fā)出資源請(qǐng)求,該資源請(qǐng)求中包括用戶的認(rèn)證信息、用戶所請(qǐng)求的北向應(yīng)用URL和資源類別;
2)北向應(yīng)用根據(jù)該資源請(qǐng)求中的認(rèn)證信息對(duì)該用戶進(jìn)行認(rèn)證;認(rèn)證通過之后,該北向應(yīng)用獲取該用戶的用戶ID以及安全級(jí)別,并將用戶ID、安全級(jí)別、該用戶資源請(qǐng)求對(duì)應(yīng)的北向應(yīng)用ID以及訪問請(qǐng)求發(fā)送給SDN控制器中對(duì)應(yīng)的基礎(chǔ)應(yīng)用;
3)該基礎(chǔ)應(yīng)用根據(jù)用戶ID確定該用戶所請(qǐng)求訪問的數(shù)據(jù)類別,然后根據(jù)用戶的安全級(jí)別確定該用戶是否具有對(duì)所請(qǐng)求訪問數(shù)據(jù)的訪問權(quán)限;如果具有訪問權(quán)限,則根據(jù)北向應(yīng)用ID以及資源請(qǐng)求生成響應(yīng)數(shù)據(jù)返回給該北向應(yīng)用,否則拒絕訪問。
進(jìn)一步的,該基礎(chǔ)應(yīng)用根據(jù)北向應(yīng)用ID以及資源請(qǐng)求生成響應(yīng)數(shù)據(jù)的方法為:該基礎(chǔ)應(yīng)用根據(jù)北向應(yīng)用ID以及資源請(qǐng)求向SDN控制器發(fā)起查詢請(qǐng)求,SDN控制器對(duì)該用戶的查詢請(qǐng)求進(jìn)行驗(yàn)證,驗(yàn)證通過后將該查詢請(qǐng)求轉(zhuǎn)發(fā)給SDN控制器基礎(chǔ)模塊獲取響應(yīng)數(shù)據(jù);其中,基礎(chǔ)模塊提供的北向接口包含用戶的身份信息,并與SDN控制器中的基礎(chǔ)應(yīng)用信息一一對(duì)應(yīng)。
進(jìn)一步的,所述認(rèn)證信息包括用戶名以及密碼。
進(jìn)一步的,SDN控制器中設(shè)有一權(quán)限對(duì)應(yīng)表,所述權(quán)限對(duì)應(yīng)表記錄北向應(yīng)用與基礎(chǔ)應(yīng)用關(guān)于用戶身份信息的一一對(duì)應(yīng)關(guān)系。
一種SDN控制器的訪問控制系統(tǒng),其特征在于,包括SDN控制器、交換機(jī)和至少一項(xiàng)北向應(yīng)用;所述北向應(yīng)用分為三種安全級(jí)別:管理員類別、網(wǎng)絡(luò)配置類別和用戶類別;其中,管理員類別允許讀寫數(shù)據(jù)平面中的設(shè)備數(shù)據(jù),但無法讀寫數(shù)據(jù)平面中的轉(zhuǎn)發(fā)數(shù)據(jù);網(wǎng)絡(luò)配置類別的北向應(yīng)用允許讀寫數(shù)據(jù)平面中的用于管理轉(zhuǎn)發(fā)數(shù)據(jù)包的控制數(shù)據(jù),以及數(shù)據(jù)平面中的用于控制數(shù)據(jù)包轉(zhuǎn)發(fā)的控制數(shù)據(jù),但是不允許讀寫數(shù)據(jù)平面中的設(shè)備數(shù)據(jù);用戶類別允許讀寫數(shù)據(jù)平面中的轉(zhuǎn)發(fā)數(shù)據(jù),但是不允許讀寫數(shù)據(jù)平面中的控制轉(zhuǎn)發(fā)數(shù)據(jù)和設(shè)備數(shù)據(jù);
所述北向應(yīng)用,根據(jù)用戶提供的身份認(rèn)證信息,將用戶分類在對(duì)應(yīng)用的安全級(jí)別中;以及將用戶的用戶ID、安全級(jí)別、該用戶資源請(qǐng)求對(duì)應(yīng)的北向應(yīng)用ID以及訪問請(qǐng)求發(fā)送給SDN控制器中對(duì)應(yīng)的基礎(chǔ)應(yīng)用;該基礎(chǔ)應(yīng)用根據(jù)用戶ID確定該用戶所請(qǐng)求訪問的數(shù)據(jù)類別,然后根據(jù)用戶的安全級(jí)別確定該用戶是否具有對(duì)所請(qǐng)求訪問數(shù)據(jù)的訪問權(quán)限;如果具有訪問權(quán)限,則根據(jù)北向應(yīng)用ID以及資源請(qǐng)求生成響應(yīng)數(shù)據(jù)返回給該北向應(yīng)用,否則拒絕訪問。
本發(fā)明的訪問控制系統(tǒng),包括SDN控制器、交換機(jī)和至少一項(xiàng)北向應(yīng)用;所述北向應(yīng)用,負(fù)責(zé)將網(wǎng)絡(luò)控制指令下發(fā)給控制器,并獲取控制器的部分信息以及本應(yīng)用相關(guān)的信息。
本發(fā)明中北向應(yīng)用被分為三種安全級(jí)別:管理員類別、網(wǎng)絡(luò)配置類別和用戶類別。管理員類別允許讀寫數(shù)據(jù)平面中的設(shè)備數(shù)據(jù),此類北向應(yīng)用可以對(duì)SDN網(wǎng)絡(luò)本身的設(shè)備進(jìn)行管理,但無法讀寫數(shù)據(jù)平面中的轉(zhuǎn)發(fā)數(shù)據(jù)(即轉(zhuǎn)發(fā)的數(shù)據(jù)包);網(wǎng)絡(luò)配置類別允許讀寫數(shù)據(jù)平面中的用于管理轉(zhuǎn)發(fā)的數(shù)據(jù)包的控制數(shù)據(jù),如:流表,以及數(shù)據(jù)平面中用于控制數(shù)據(jù)包轉(zhuǎn)發(fā)的控制數(shù)據(jù),但是不允許讀寫數(shù)據(jù)平面中的設(shè)備數(shù)據(jù);用戶類別允許讀寫數(shù)據(jù)平面中的轉(zhuǎn)發(fā)數(shù)據(jù),但是不允許讀寫其余兩類數(shù)據(jù):數(shù)據(jù)平面中的控制轉(zhuǎn)發(fā)數(shù)據(jù)和設(shè)備數(shù)據(jù)。
管理員類別中的基礎(chǔ)模塊如附圖1中所描述包括:設(shè)備管理、模塊管理、內(nèi)存管理以及拓?fù)浒l(fā)現(xiàn);網(wǎng)絡(luò)配置類別包括流表下發(fā)以及流表檢測(cè);用戶類別包括數(shù)據(jù)包數(shù)據(jù)采集。
由于SDN網(wǎng)絡(luò)中是多用戶環(huán)境,用戶需要表明身份信息,用以確定SDN控制器中的數(shù)據(jù)是否是其所屬數(shù)據(jù)。
北向應(yīng)用根據(jù)用戶提供的身份認(rèn)證信息對(duì)用戶進(jìn)行認(rèn)證,認(rèn)證通過之后,北向應(yīng)用獲取用戶ID以及用戶的安全級(jí)別,并將用戶ID、安全級(jí)別、該用戶資源請(qǐng)求對(duì)應(yīng)的北向應(yīng)用ID以及訪問請(qǐng)求發(fā)送給基礎(chǔ)應(yīng)用?;A(chǔ)模塊提供的北向接口同時(shí)包含用戶的身份信息,并與SDN控制器中的基礎(chǔ)應(yīng)用信息一一對(duì)應(yīng)。在用戶調(diào)用數(shù)據(jù)的過程中,需要通過北向應(yīng)用的身份認(rèn)證。
當(dāng)北向應(yīng)用對(duì)發(fā)起的請(qǐng)求通過認(rèn)證之后,需要分類用戶信息,并將用戶身份信息以及其安全類別下發(fā)給基礎(chǔ)應(yīng)用,由基礎(chǔ)應(yīng)用進(jìn)行認(rèn)證之后,決定其是否有權(quán)限訪問控制器中的對(duì)應(yīng)數(shù)據(jù)。
本發(fā)明采用上述系統(tǒng)的基于SDN控制器的北向應(yīng)用訪問控制方法,其步驟包括:
1)用戶發(fā)出資源請(qǐng)求,請(qǐng)求包括用戶所請(qǐng)求的北向應(yīng)用URL、資源類別、用戶名以及密碼;
2)北向應(yīng)用對(duì)用戶進(jìn)行認(rèn)證;
3)認(rèn)證通過之后,北向應(yīng)用獲取用戶ID以及用戶的安全級(jí)別,并將用戶ID、安全級(jí)別、該用戶資源請(qǐng)求對(duì)應(yīng)的北向應(yīng)用ID以及訪問請(qǐng)求發(fā)送給SDN控制器中對(duì)應(yīng)的基礎(chǔ)應(yīng)用。
4)基礎(chǔ)應(yīng)用根據(jù)用戶ID確定用戶所請(qǐng)求訪問的數(shù)據(jù)類別,根據(jù)用戶的安全級(jí)別確定是否具有訪問權(quán)限,如果具有訪問權(quán)限,則根據(jù)北向應(yīng)用ID以及資源請(qǐng)求向控制器發(fā)起查詢請(qǐng)求;否則拒絕訪問。
5)基礎(chǔ)模塊根據(jù)基礎(chǔ)應(yīng)用發(fā)送的北向應(yīng)用ID進(jìn)行北向應(yīng)用的驗(yàn)證,如果驗(yàn)證通過,則從控制器中獲取請(qǐng)求的回復(fù)信息,否則向基礎(chǔ)應(yīng)用發(fā)送拒絕請(qǐng)求。
6)基礎(chǔ)應(yīng)用將控制器基礎(chǔ)模塊回復(fù)的請(qǐng)求數(shù)據(jù)以及請(qǐng)求狀態(tài)結(jié)果給北向應(yīng)用。
本發(fā)明基于SDN的基礎(chǔ)功能將SDN網(wǎng)絡(luò)中控制器模塊進(jìn)行劃分,提出基礎(chǔ)應(yīng)用與北向應(yīng)用的劃分方法,在控制器基礎(chǔ)模塊與基礎(chǔ)應(yīng)用之間進(jìn)行北向應(yīng)用權(quán)限驗(yàn)證,用于驗(yàn)證應(yīng)用是否可以獲取網(wǎng)絡(luò)信息;在基礎(chǔ)應(yīng)用與北向應(yīng)用之間進(jìn)行身份認(rèn)證,認(rèn)證用戶是否可以獲取網(wǎng)絡(luò)信息或者下發(fā)控制器指令。
與現(xiàn)用技術(shù)相比,本發(fā)明的積極效果為:
將控制器中的數(shù)據(jù)與模塊進(jìn)行拆分,并將北向接口分類為三種級(jí)別,提供給北向應(yīng)用,將SDN網(wǎng)絡(luò)中的數(shù)據(jù)分類為設(shè)備數(shù)據(jù),控制轉(zhuǎn)發(fā)數(shù)據(jù)以及轉(zhuǎn)發(fā)數(shù)據(jù)便于北向應(yīng)用對(duì)多用戶情況下數(shù)據(jù)的訪問權(quán)限以及訪問內(nèi)容進(jìn)行管理。本發(fā)明能夠?qū)崿F(xiàn)對(duì)于SDN控制器北向接口的防護(hù),通過統(tǒng)一管理SDN北向接口,防護(hù)SDN網(wǎng)絡(luò)中的網(wǎng)絡(luò)信息的機(jī)密性,增加SDN控制器的可靠性。
附圖說明
圖1是本發(fā)明的基于訪問控制的SDN控制器北向應(yīng)用管理系統(tǒng)示意圖。
圖2為系統(tǒng)用戶,北向應(yīng)用與控制各個(gè)模塊之間訪問控制方法的示意圖。
具體實(shí)施方式
下面,結(jié)合具體的實(shí)施實(shí)例和附圖對(duì)本發(fā)明進(jìn)行詳細(xì)說明。
針對(duì)整個(gè)系統(tǒng)的三類安全級(jí)別分別作出三種具體實(shí)例:增加數(shù)據(jù)層面的交換機(jī)、下發(fā)流表控制數(shù)據(jù)層面數(shù)據(jù)轉(zhuǎn)發(fā)以及獲取數(shù)據(jù)包中的IP地址三種實(shí)例。每種實(shí)例包含兩組用戶(其中,實(shí)例一對(duì)應(yīng)用戶組包括A1、A2,實(shí)例二對(duì)應(yīng)用戶組包括B1、B2,實(shí)例三對(duì)應(yīng)用戶組包括C1、C2),每組用戶用兩種權(quán)限進(jìn)行解釋說明。表1為兩用戶兩種權(quán)限在不同安全級(jí)別下的權(quán)限對(duì)應(yīng)表。
表1為兩用戶兩種權(quán)限在不同安全級(jí)別下的權(quán)限對(duì)應(yīng)表
表1中北向應(yīng)用與基礎(chǔ)應(yīng)用中關(guān)于用戶的身份信息一一對(duì)應(yīng),但是北向應(yīng)用負(fù)責(zé)對(duì)數(shù)據(jù)所屬用戶進(jìn)行分組控制,識(shí)別用戶是否具有數(shù)據(jù)訪問權(quán)限;基礎(chǔ)應(yīng)用對(duì)用戶所執(zhí)行的操作是否擁有權(quán)限進(jìn)行控制。