一種基于智能卡的軟件定義網(wǎng)絡(luò)中網(wǎng)絡(luò)設(shè)備認(rèn)證方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明提出一種基于智能卡的軟件定義網(wǎng)絡(luò)中網(wǎng)絡(luò)設(shè)備認(rèn)證方法,屬于通訊領(lǐng) 域。
【背景技術(shù)】
[0002] 隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,軟件定義網(wǎng)絡(luò)(SoftwareDefinedNetworking, SDN)由于其通過(guò)使用控制器將網(wǎng)絡(luò)控制平面與數(shù)據(jù)平面分離開(kāi)來(lái),提高了網(wǎng)絡(luò)安全、可管 理和控制的能力,在很多行業(yè)都有良好的應(yīng)用空間,而目前SDN存在首要的問(wèn)題就是安全 問(wèn)題。此外,對(duì)于SDN中的控制器來(lái)說(shuō),獲得真實(shí)數(shù)據(jù)平面的參數(shù)是實(shí)施控制和管理的必要 操作。因此,對(duì)SDN中網(wǎng)絡(luò)設(shè)備實(shí)施認(rèn)證,并且協(xié)商會(huì)話密鑰,從而用密碼學(xué)的方法建立安 全可信的通信路徑,既是保證控制器收集網(wǎng)絡(luò)設(shè)備參數(shù)的來(lái)源真實(shí)性,又是保證系統(tǒng)安全 通訊的必要工作。
[0003] SDN中網(wǎng)絡(luò)設(shè)備認(rèn)證指的是控制器對(duì)網(wǎng)絡(luò)設(shè)備實(shí)施的認(rèn)證,發(fā)生在網(wǎng)絡(luò)設(shè)備接入 SDN中的時(shí)候。該種接入有兩種典型情況,一是為了擴(kuò)大網(wǎng)絡(luò)的規(guī)模,SDN中增加一個(gè)新的 網(wǎng)絡(luò)設(shè)備;二是原有網(wǎng)絡(luò)設(shè)備發(fā)生損壞,SDN中用一臺(tái)新的網(wǎng)絡(luò)設(shè)備替換舊的網(wǎng)絡(luò)設(shè)備。目 前,該類認(rèn)證可W使用傳統(tǒng)公鑰和私鑰的方法實(shí)施認(rèn)證,即利用公鑰基礎(chǔ)設(shè)施完成網(wǎng)絡(luò)設(shè) 備和控制器的雙向認(rèn)證,毫無(wú)疑問(wèn)該種認(rèn)證方法是可行的。但是,由于需要利用公鑰基礎(chǔ)設(shè) 施,該種認(rèn)證方法建設(shè)和布置比較困難,認(rèn)證時(shí)需要多次傳遞各實(shí)體的公鑰信息。另外,傳 統(tǒng)網(wǎng)絡(luò)設(shè)備認(rèn)證和設(shè)備實(shí)體綁定,設(shè)備更新替換需要重新獲得新設(shè)備的會(huì)話密鑰,設(shè)備更 換和升級(jí)時(shí)間較長(zhǎng)。隨著SDN的推廣和應(yīng)用,控制器管理網(wǎng)絡(luò)設(shè)備的數(shù)量逐漸增多,網(wǎng)絡(luò)設(shè) 備的認(rèn)證效率要求也在逐步提高,需要一種消耗系統(tǒng)資源較少的網(wǎng)絡(luò)設(shè)備認(rèn)證方法。智能 卡是一種集成電路卡,廣泛地應(yīng)用于金融、身份證和社會(huì)保障等領(lǐng)域,它繼承了磁卡W及其 它集成電路卡的所有優(yōu)點(diǎn),并有極高的安全、保密、防偽能力。因此,本發(fā)明提出一種基于智 能卡的軟件定義網(wǎng)絡(luò)中網(wǎng)絡(luò)設(shè)備認(rèn)證方法,對(duì)SDN應(yīng)用和推廣有十分重要的理論價(jià)值和現(xiàn) 實(shí)意義。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明旨在至少解決上述技術(shù)問(wèn)題之一。
[0005] 為此,本發(fā)明的一個(gè)目的在于克服現(xiàn)有技術(shù)解決SDN中網(wǎng)絡(luò)設(shè)備認(rèn)證的不足,提 出一種基于智能卡的軟件定義網(wǎng)絡(luò)中網(wǎng)絡(luò)設(shè)備認(rèn)證方法。本方法中網(wǎng)絡(luò)設(shè)備實(shí)體可讀取智 能卡,由可信認(rèn)證機(jī)構(gòu)對(duì)網(wǎng)絡(luò)設(shè)備的使用地點(diǎn)、具體操作人和使用環(huán)境組成的網(wǎng)絡(luò)設(shè)備身 份進(jìn)行配置,并將身份秘密值存儲(chǔ)在智能卡中,據(jù)此在可信認(rèn)證機(jī)構(gòu)的幫助下完成網(wǎng)絡(luò)設(shè) 備和控制器的雙向認(rèn)證。該方法能夠有效解決網(wǎng)絡(luò)設(shè)備認(rèn)證問(wèn)題,也可W避免相對(duì)復(fù)雜的 公鑰基礎(chǔ)設(shè)施,同時(shí)網(wǎng)絡(luò)設(shè)備更換和升級(jí)非常簡(jiǎn)單。
[0006] 為了實(shí)現(xiàn)上述目的,本發(fā)明的第一方面的實(shí)施例公開(kāi)了一種基于智能卡的軟件定 義網(wǎng)絡(luò)中網(wǎng)絡(luò)設(shè)備認(rèn)證方法,包括W下步驟;A;可信認(rèn)證機(jī)構(gòu)生成所述可信認(rèn)證機(jī)構(gòu)與控 制器之間的長(zhǎng)期密鑰,并向控制器發(fā)送所述長(zhǎng)期密鑰;B;第一網(wǎng)絡(luò)設(shè)備將包含所述第一網(wǎng) 絡(luò)設(shè)備的身份信息通過(guò)智能卡發(fā)送給所述可信認(rèn)證機(jī)構(gòu);C;所述可信認(rèn)證機(jī)構(gòu)對(duì)所述智 能卡中所述第一網(wǎng)絡(luò)設(shè)備的身份信息進(jìn)行加密,并將加密后的信息通過(guò)所述智能卡寫(xiě)回所 述第一網(wǎng)絡(luò)設(shè)備中;D;第一網(wǎng)絡(luò)設(shè)備向所述控制器發(fā)送包含所述第一網(wǎng)絡(luò)設(shè)備的身份信 息和經(jīng)過(guò)可信認(rèn)證機(jī)構(gòu)加密后的信息的第一數(shù)據(jù)包;E;所述控制器根據(jù)接收到的所述第 一數(shù)據(jù)包和所述長(zhǎng)期密鑰進(jìn)行計(jì)算,并向所述可信認(rèn)證機(jī)構(gòu)發(fā)送包含所述計(jì)算結(jié)果的第二 數(shù)據(jù)包;F;所述可信認(rèn)證機(jī)構(gòu)對(duì)所述第二數(shù)據(jù)包進(jìn)行解密,并根據(jù)所述長(zhǎng)期密鑰對(duì)所述解 密后的數(shù)據(jù)進(jìn)行驗(yàn)證,若滿足驗(yàn)證條件,所述可信認(rèn)證機(jī)構(gòu)對(duì)解密后的數(shù)據(jù)進(jìn)行加密,將包 含加密后的信息的第=數(shù)據(jù)包寫(xiě)回所述控制器;G;所述控制器對(duì)所述第=數(shù)據(jù)包的數(shù)據(jù) 進(jìn)行解密并驗(yàn)證,若滿足驗(yàn)證條件,所述控制器對(duì)解密后數(shù)據(jù)進(jìn)行計(jì)算,并將包含所述計(jì)算 結(jié)果的第四數(shù)據(jù)包發(fā)送給所述第一網(wǎng)絡(luò)設(shè)備;W及H;所述第一網(wǎng)絡(luò)設(shè)備對(duì)所述第四數(shù)據(jù) 包進(jìn)行解密并驗(yàn)證,若滿足驗(yàn)證條件,則認(rèn)證成功,否則認(rèn)證失敗。
[0007] 根據(jù)本發(fā)明實(shí)施例的一種基于智能卡的軟件定義網(wǎng)絡(luò)中網(wǎng)絡(luò)設(shè)備認(rèn)證方法,在軟 件定義網(wǎng)絡(luò)架構(gòu)下,不需要公鑰基礎(chǔ)設(shè)備,只需要網(wǎng)絡(luò)中配置一個(gè)可信認(rèn)證機(jī)構(gòu),減少了公 鑰基礎(chǔ)設(shè)施的投入,提高了系統(tǒng)的設(shè)置效率;將SDN中網(wǎng)絡(luò)設(shè)備的身份同網(wǎng)絡(luò)設(shè)備的使用 地點(diǎn)、具體操作人和使用環(huán)境綁定,并存儲(chǔ)于智能卡中,提高了網(wǎng)絡(luò)設(shè)備升級(jí)或更換的效 率;SDN網(wǎng)絡(luò)設(shè)備認(rèn)證同時(shí)需要讀取智能卡和輸入網(wǎng)絡(luò)設(shè)備使用密碼,能夠有效防止智能 卡被盜用帶來(lái)的安全風(fēng)險(xiǎn),提高了SDN中網(wǎng)絡(luò)設(shè)備的認(rèn)證安全性;本發(fā)明盡量采用雜湊函 數(shù)作為密碼學(xué)組件實(shí)施構(gòu)造,可W有效提高SDN中網(wǎng)絡(luò)設(shè)備認(rèn)證的效率。
[0008] 另外,根據(jù)本發(fā)明上述實(shí)施例的一種基于智能卡的軟件定義網(wǎng)絡(luò)中網(wǎng)絡(luò)設(shè)備認(rèn)證 方法,還可W具有如下附加的技術(shù)特征:
[0009] 進(jìn)一步地,在步驟A中,所述可信認(rèn)證機(jī)構(gòu)隨機(jī)選擇兩個(gè)素?cái)?shù)P、q和一個(gè)隨機(jī)值 e寫(xiě)作為主密鑰和一個(gè)雜湊函數(shù)77 :化ir^馬,,所述可信認(rèn)證機(jī)構(gòu)公開(kāi)P,q和H( ?) 的具體參數(shù),所述可信認(rèn)證機(jī)構(gòu)選擇一個(gè)隨機(jī)值KcteZ:/作為可信認(rèn)證機(jī)構(gòu)和控制器之 間的長(zhǎng)期密鑰,然后所述可信認(rèn)證機(jī)構(gòu)通過(guò)安全方式將長(zhǎng)期密鑰Kct發(fā)送給控制器,其中 "Kcre 表示;長(zhǎng)期密鑰是由位數(shù)長(zhǎng)度小于q位的二進(jìn)制數(shù)0和1組成的隨機(jī)字符串, 并且不包括全為0的字符串;其中所述的"^ :化1!' "表示;將由二進(jìn)制數(shù)0和1組 成的字符串通過(guò)雜湊函數(shù)H映射到群^4,中。
[0010] 進(jìn)一步地,在步驟C中,所述可信認(rèn)證機(jī)構(gòu)收到所述智能卡后,讀取所述第一網(wǎng)絡(luò) 設(shè)備的身份IDw,并利用所述IDw計(jì)算所述第一網(wǎng)絡(luò)設(shè)備的加密身份值SIDW和DIDW,其 中:
[0011] SIDne= Ekx(IDneIIIDta)
[00。] DID皿=H(ID冊(cè))Kxmodp
[0013] 所述可信認(rèn)證機(jī)構(gòu)將所述SIDwe、DIDwe和雜湊函數(shù)H( ?)存儲(chǔ)在所述智能卡中,
[0014] 其中,SIDwe=Ekx(IDweMIDta)表示SIDwe的計(jì)算過(guò)程,先將網(wǎng)絡(luò)設(shè)備的身份IDwe和 可信認(rèn)證機(jī)構(gòu)的身份IDta組合起來(lái)形成IDwMIDta,然后用主密鑰加密得出SIDwe;DIDw= H(IDwE)KxmodP表示DIDwe的計(jì)算過(guò)程,先得出網(wǎng)絡(luò)設(shè)備的身份IDW的雜湊函數(shù)值H(IDW), 然后求主密鑰Kx次幕,并求結(jié)果的p模得出DIDw。
[0015] 進(jìn)一步地,在步驟C和步驟D之間,還存在W下步驟:
[0016] CD1 ;所述第一網(wǎng)絡(luò)設(shè)備接收到所述智能卡后,選擇一個(gè)隨機(jī)值eZ;作為網(wǎng)絡(luò) 設(shè)備使用密碼,讀取所述智能卡,得到智能卡中的所述SIDwe和所述DID
[0017] CD2 ;網(wǎng)絡(luò)設(shè)備輸入網(wǎng)絡(luò)設(shè)備使用密碼Kwe,利用智能卡中的加密身份值SIDwe、DIDwe 和雜湊函數(shù)H( ?),計(jì)算兩個(gè)在所述網(wǎng)絡(luò)設(shè)備使用密碼保護(hù)下的加密身份值,具體為:
[001引 TID皿=SIDne出H("0"||Kne)
[001 引 RID皿=DIDne出H廣1"||Kne)
[0020]用^0^存儲(chǔ)替換智能卡中的510^,用31〇^存儲(chǔ)替換智能卡中的〇10^,
[002。 其中,廣0"||Kw)表示將所述密碼Kw和字符"0"組合,輸入雜湊函數(shù)H(0,將H廣0"||Kw)和SIDw按位異或得出TIDw;廣rllKw)表示所述RIDw將所述密碼Kw和字符 "1"組合,輸入雜湊函數(shù)H( ?),將H廣r'llKw)和DIDwe按位異或得出RIDw。
[0022] 進(jìn)一步地,在步驟D中,所述第一網(wǎng)絡(luò)設(shè)備讀取所述智能卡,輸入所述第一網(wǎng)絡(luò) 設(shè)備的身份IDw和所述第一網(wǎng)絡(luò)設(shè)備使用密碼Kw;所述第一網(wǎng)絡(luò)設(shè)備產(chǎn)生一個(gè)隨機(jī)值 asZ;,并獲取當(dāng)前系統(tǒng)時(shí)間Ti作為時(shí)間戳,利用所述智能卡中存儲(chǔ)的所述TIDwe、所述RIDwe 和所
[002引述H( ?),計(jì)算SID皿=TIDne出H("0"||Kne)
[0027] 所述第一網(wǎng)絡(luò)設(shè)備給所述控制器發(fā)送所述第一數(shù)據(jù)包化tai=(IDta,Ti,A,Cnt}。
[0028] 進(jìn)一步地,在步驟E中,所述控制器檢查所述第一數(shù)據(jù)包內(nèi)的時(shí)間戳Ti是否在一 個(gè)預(yù)設(shè)的時(shí)間差內(nèi),如果是則繼續(xù)W下步驟,否則退出,發(fā)出認(rèn)證失敗消息;所述控制器獲 取
[0029] 當(dāng)前時(shí)間T2,并根據(jù)所述控制的身份1町許日所述長(zhǎng)期密鑰Kn計(jì)算
[0030]
[003。 所述控制器向所述可信認(rèn)證機(jī)構(gòu)發(fā)送所述第二數(shù)據(jù)包化ta2=師了4,化。T2, (U。
[0032] 進(jìn)一步地,在步驟F中,所述可信認(rèn)證機(jī)構(gòu)檢查所述第二數(shù)據(jù)包內(nèi)時(shí)間戳T2是否 在一個(gè)預(yù)設(shè)的時(shí)間差內(nèi),如果是則繼續(xù)W下步驟,否則退出,發(fā)出認(rèn)證失敗消息;
[0033] 所述可信認(rèn)證機(jī)構(gòu)利用所述長(zhǎng)期密鑰Kn解密所述第二數(shù)據(jù)包化ta2中的所述CcT, 得到IDta,了2和化ta1;所述可信認(rèn)證機(jī)構(gòu)所述第二數(shù)據(jù)包化ta2中IDta和T2是否和CCT解 密出來(lái)的IDta和T2取值相同,如果不同退出認(rèn)證模塊,發(fā)出認(rèn)證失敗消息,否則繼續(xù)運(yùn)行W 下步驟;
[0034]所述可信認(rèn)證機(jī)構(gòu)取