本發(fā)明涉及一種基于bfd協(xié)議的接口認證方法及系統(tǒng)。
背景技術(shù):
隨著計算機技術(shù)和網(wǎng)絡(luò)通信技術(shù)的普遍應(yīng)用,網(wǎng)絡(luò)設(shè)備常常受到攻擊,導(dǎo)致人們對網(wǎng)絡(luò)的安全性要求越來越高。路由器作為最常用的網(wǎng)絡(luò)信息轉(zhuǎn)發(fā)設(shè)備,把不同地域的網(wǎng)絡(luò)設(shè)備連接到一起,位于可信任網(wǎng)絡(luò)和不可信任網(wǎng)絡(luò)中間。在安全方面,路由器的接口安全是保證網(wǎng)絡(luò)安全的第一關(guān),因此也是路由器安全性中最關(guān)鍵的一個環(huán)節(jié)。
目前,ospf、isis、bgp路由協(xié)議都有對應(yīng)的md5等安全認證方式,認證通過后鄰居才能up(已認證)并交換路由信息,認證失敗則認為是非法接入,鄰居down(未認證)。但對設(shè)備接口而言,業(yè)界目前尚無有效的安全控制機制,當攻擊設(shè)備接入某個網(wǎng)絡(luò),只要獲取到對端設(shè)備接口的ip網(wǎng)段,成功解析arp(地址解析協(xié)議),攻擊流量就能在網(wǎng)絡(luò)中正常轉(zhuǎn)發(fā)。
技術(shù)實現(xiàn)要素:
針對上述問題,本發(fā)明提供一種基于bfd協(xié)議的接口認證方法及系統(tǒng),通過bfdmsha1認證協(xié)商聯(lián)動接口up/down,為網(wǎng)絡(luò)通信設(shè)備接口互連安全檢查提供了解決方案;進一步的,結(jié)合bfdms級的周期探測,可防止bfd會話認證協(xié)商成功后,正常網(wǎng)絡(luò)設(shè)備被攻擊設(shè)備替換帶來的重放攻擊風(fēng)險,提高了通信設(shè)備互連的安全可靠性。
為實現(xiàn)上述技術(shù)目的,達到上述技術(shù)效果,本發(fā)明通過以下技術(shù)方案實現(xiàn):
一種基于bfd協(xié)議的接口認證方法,包括:
a、bfd會話協(xié)商步驟:默認采用主動模式,在建立會話前無論是否收到對端發(fā)來的bfd協(xié)商報文,都會主動發(fā)送本端bfd協(xié)商報文;
b、bfd認證步驟:在bfd會話協(xié)商階段,采用meticulouskeyedsha1認證方式,三次認證通過則bfd會話狀態(tài)置up,認證失敗則bfd會話狀態(tài)置down;
c、bfd周期檢測步驟:周期檢測采用異步模式,通信雙方周期性發(fā)送bfd?;顖笪模绻跈z測周期內(nèi)沒有收到對端發(fā)送的bfd?;顖笪?,則bfd會話狀態(tài)置down;
d、bfd與接口聯(lián)動步驟:設(shè)備之間首次建立bfd會話時,如協(xié)商失敗需等待設(shè)定時間再聯(lián)動接口down;當bfd會話狀態(tài)置up以后,如bfd檢測到會話超時或?qū)Χ伺渲眯薷膶?dǎo)致認證失敗,則立即觸發(fā)接口bfd會話狀態(tài)置down。
優(yōu)選,1)首次配置時,若互連設(shè)備接口兩端同時配置bfd及認證,且密碼一致,則bfd會話狀態(tài)由down置為up,接口狀態(tài)保持up;
2)首次配置時,若互連設(shè)備接口兩端同時配置bfd及認證,且密碼不一致,則建立bfd會話協(xié)商失敗,等待n秒再聯(lián)動接口狀態(tài)置down;
3)首次配置時,若互連設(shè)備接口一端配置bfd及認證,另一端只配置bfd,不配置認證,則bfd會話狀態(tài)保持down不變,接口狀態(tài)等待n秒后由up置為down;
4)首次配置時,若互連設(shè)備接口一端配置bfd及認證,另一端沒有配置,則bfd會話狀態(tài)保持down不變,接口狀態(tài)等待n秒后由up置為down。
優(yōu)選,互連設(shè)備接口bfd會話協(xié)商完成后,當bfd會話狀態(tài)為up時,同時進入bfd周期檢測步驟,兩端周期發(fā)送bfd保活報文維持設(shè)備會話狀態(tài)。
優(yōu)選,n的范圍為1s至10000s。
相應(yīng)的,一種基于bfd協(xié)議的接口認證系統(tǒng),包括:
bfd認證控制模塊:維護bfd會話狀態(tài)機及認證控制,根據(jù)接收的報文、認證結(jié)果和當前的狀態(tài)判斷下一步的處理動作,控制bfd會話狀態(tài)遷移及接口狀態(tài)轉(zhuǎn)變;
定時器模塊:包括協(xié)商定時器模塊與?;疃〞r器模塊,與bfd認證控制模塊交互工作:
bfd會話協(xié)商步驟開啟將激活協(xié)商定時器模塊,當本端發(fā)送bfd協(xié)商報文后,協(xié)商定時器開始計時,每次收到對端的協(xié)商報文后,協(xié)商定時器清零并重新開始計時;若在規(guī)定時間內(nèi)未收到對端的bfd協(xié)商報文,則認為協(xié)商定時器超時,bfd會話狀態(tài)置down;三次握手協(xié)商成功后,bfd會話狀態(tài)置up,同時關(guān)閉協(xié)商定時器,會話進入bfd周期檢測步驟,?;疃〞r器模塊開始工作:通過周期發(fā)送保活報文探測對端bfd狀態(tài),每次收到對端發(fā)送的?;顖笪暮?,保活定時器將自動清零;在規(guī)定檢測周期內(nèi)未收到對端的?;顖笪?,則認為超時,觸發(fā)bfd會話重新協(xié)商,關(guān)閉?;疃〞r器,同時進入bfd會話協(xié)商步驟,開啟協(xié)商定時器;
配置管理模塊:負責(zé)bfd配置命令的集中管理和傳送工作,解析bfd會話參數(shù)及認證密碼配置,根據(jù)配置命令內(nèi)容生成全局配置信息數(shù)據(jù)結(jié)構(gòu),供bfd認證控制模塊進行查詢和使用;
認證接口模塊:維護及管理不同接口下對應(yīng)的bfd會話及接口協(xié)議狀態(tài),根據(jù)bfd認證控制模塊的指示,保持或觸發(fā)接口狀態(tài)更新;
認證管理模塊:對不同bfd會話的meticulouskeyedsha1密碼進行分類存儲及合法性檢查;
報文收發(fā)模塊:進行報文的收發(fā)、封裝、分類統(tǒng)計及控制管理,對接收的bfd會話報文,提取報文中的信息給認證管理模塊及bfd認證控制模塊。
優(yōu)選,認證管理模塊包括sha1密碼庫和sequencenum計數(shù)器,其中,sha1密碼庫對發(fā)送的報文進行摘要信息的生成,對收到的bfd認證摘要進行合法性檢查;sequencenum計數(shù)器對收發(fā)報文進行序列號的維護與檢查,本端發(fā)送的報文序列號則按順序遞增,若對端bfd會話前后接收的報文序列號不連續(xù),則認為是非法報文并進行丟棄處理。
優(yōu)選,報文收發(fā)模塊提取報文中的認證摘要、參數(shù)、狀態(tài)信息給認證管理模塊及bfd認證控制模塊。
本發(fā)明的有益效果是:
本發(fā)明采用bfd組播方式及單跳檢測機制,通過bfdmsha1認證聯(lián)動接口up/down,為網(wǎng)絡(luò)通信設(shè)備接口互連安全檢查提供了解決方案。此外,結(jié)合ms級的周期探測,可防止bfd會話認證協(xié)商成功后,正常網(wǎng)絡(luò)設(shè)備被攻擊設(shè)備替換帶來的重放攻擊風(fēng)險,提高了通信設(shè)備互連安全可靠性。
附圖說明
圖1是本發(fā)明一種基于bfd協(xié)議的接口認證方法流程圖;
圖2是本發(fā)明狀態(tài)轉(zhuǎn)化的示意圖;
圖3是本發(fā)明一種基于bfd協(xié)議的接口認證系統(tǒng)的示意圖。
具體實施方式
下面結(jié)合附圖和具體的實施例對本發(fā)明技術(shù)方案作進一步的詳細描述,以使本領(lǐng)域的技術(shù)人員可以更好的理解本發(fā)明并能予以實施,但所舉實施例不作為對本發(fā)明的限定。
bfd(bidirectionalforwardingdetection)是一種雙向轉(zhuǎn)發(fā)檢測機制,可以提供毫秒級的檢測,通過與上層路由協(xié)議聯(lián)動,實現(xiàn)路由的快速收斂,確保業(yè)務(wù)的永續(xù)性。我們利用bfd的周期檢測機制和協(xié)商機制,實現(xiàn)一種基于bfd協(xié)議的接口安全性認證的方法與系統(tǒng)。其中,rfc5880中提到的bfd允許支持的認證方式有五種,分別是simplepassword、keyedmd5、meticulouskeyedmd5、keyedsha1、meticulouskeyedsha1。其中,sha1相比md5摘要長32比特,抗攻擊能力強于md5。而sha1與msha1(meticulouskeyedsha1)認證的操作方式主要是在sequencenum上的區(qū)別,sha1發(fā)送的報文,序列號保持不變,msha1的報文序列號每報文加1,msha1的抗重放報文攻擊能力優(yōu)于sha1,因此,本方法采用安全性最高的msha1方式實現(xiàn)接口安全認證。
另外,傳統(tǒng)的bfd協(xié)議都是在兩端bfd會話up以后,再開啟鏈路狀態(tài)周期探測機制,如發(fā)現(xiàn)bfddown則聯(lián)動路由快速收斂。但如果bfd會話一直保持down,未出現(xiàn)過up狀態(tài),則說明bfd未在工作,業(yè)務(wù)不能根據(jù)bfd狀態(tài)進行保護,不應(yīng)聯(lián)動其它動作。與我們所要實現(xiàn)的基于接口的安全認證需求不同,比如在本端配置了bfd及認證,對端什么都不配或者配置錯誤認證密碼的情況下,bfddown仍需聯(lián)動接口down操作,因為這可能是某臺攻擊設(shè)備的非法接入。
如圖1-3所示,一種基于bfd協(xié)議的接口認證方法,包括:
a、bfd會話協(xié)商步驟:默認采用主動模式,在建立會話前無論是否收到對端發(fā)來的bfd協(xié)商報文,都會主動發(fā)送本端bfd協(xié)商報文。另外,該方法應(yīng)用在直連的三層設(shè)備上,采用單跳檢測機制,報文所使用的udp目的端口號為3784,不涉及多跳檢測環(huán)境,如果接收到的bfd控制報文,其ttl或hopcount不為255,必須丟棄。
bfd會話協(xié)商步驟中,當兩端都為主動角色時,兩端的系統(tǒng)都要向?qū)Χ税l(fā)送yourdiscriminator為0的bfd報文,直到兩端學(xué)到對端的discriminator,然后開始建立會話;當一端為主動角色、一端為被動角色時,是由應(yīng)用來決定誰是主動角色、誰是被動角色的,主動方首先發(fā)送報文,然后由應(yīng)用把對端的discriminator攜帶回來給主動方,被動方在收到主動方的報文后也開始發(fā)送報文,以后主動方和被動方發(fā)送的報文中yourdiscriminator都不為零,每端都依據(jù)相應(yīng)的discriminator把報文分離到本端相應(yīng)的會話上。會話建立過程是一個三次握手的過程,經(jīng)過此過程后兩端的會話變?yōu)閡p狀態(tài),在此過程中同時協(xié)商好相應(yīng)的參數(shù)。當本端狀態(tài)為down/init(未認證/雙向認證等待)時,將打開協(xié)商報文定時器,協(xié)商超時時間公式如下:協(xié)商周期=本端協(xié)商報文檢測倍數(shù)dm_neg*本端協(xié)商報文發(fā)送間隔,其中,協(xié)商報文發(fā)送間隔應(yīng)不小于1s,默認設(shè)置為10s,dm_neg默認為3,但若收到對端的協(xié)商報文則應(yīng)立即回復(fù)bfd報文。
在bfd會話協(xié)商步驟中,狀態(tài)變化機制如圖2所示,其中,down代表未認證,init代表雙向認證等待,up代表已認證。當本端為狀態(tài)down時,收到對端發(fā)送的down報文,且認證通過,則進入init狀態(tài);如收到對端的init報文且認證通過,則進入up狀態(tài);如認證失敗、收到up/admindown報文或協(xié)商定時器超時,則保持down狀態(tài)。當本端為狀態(tài)init時,收到對端發(fā)送的down報文,且認證通過,則保持init狀態(tài);如收到對端的init/up報文且認證通過,則進入up狀態(tài);如認證失敗、協(xié)商定時器超時或收到admindown報文,則切換為down狀態(tài)。當本端為狀態(tài)up時,如收到對端發(fā)送的init/up?;顖笪?,則保持up狀態(tài);如收到down/admindown報文或?;疃〞r器超時,則切換為down狀態(tài)。
b、bfd認證步驟:在bfd會話協(xié)商階段,采用安全性最高的meticulouskeyedsha1認證方式,三次認證通過則bfd會話狀態(tài)置up,認證失敗則bfd會話狀態(tài)置down。
meticulouskeyedsha1認證中的摘要為32位的序列號,會話開始建立時,設(shè)備發(fā)送的初始認證報文序列號為某個隨機數(shù),之后的報文進行加1遞增,避免重放報文攻擊。
c、bfd周期檢測步驟:互連設(shè)備接口bfd會話協(xié)商完成后,當bfd會話狀態(tài)為up時,同時進入bfd周期檢測步驟,兩端周期發(fā)送bfd保活報文維持設(shè)備會話狀態(tài)。
周期檢測采用異步模式,通信雙方周期性發(fā)送bfd?;顖笪模绻跈z測周期內(nèi)沒有收到對端發(fā)送的bfd?;顖笪?,則bfd會話狀態(tài)置down。
通信雙方周期發(fā)送bfd?;顖笪木S持設(shè)備會話狀態(tài),bfd周期檢測實際發(fā)送間隔=max(本端最小發(fā)送間隔min-tx-interval,對端最小接收間隔min-rx-interval),實際接收間隔=max(本端最小接收間隔min-rx-interval,對端最小發(fā)送間隔min-tx-interval)。采用異步模式,檢測的位置是在對端,對端檢測超時時間公式如下:檢測周期=對端檢測倍數(shù)dm_det*max(對端min-tx-interval,本端min-rx-interval),其中,dm_det默認為3。
d、bfd與接口聯(lián)動步驟:設(shè)備之間首次建立bfd會話時,如協(xié)商失敗需等待設(shè)定時間再聯(lián)動接口down;當bfd會話狀態(tài)置up以后,如bfd檢測到會話超時或?qū)Χ伺渲眯薷膶?dǎo)致認證失敗,則立即觸發(fā)接口bfd會話狀態(tài)置down,無需按照首次的等待n秒來執(zhí)行。
首次建立bfd會話協(xié)商失敗需等待n秒再聯(lián)動接口down,等待時間n可配置范圍是1s至10000s。該條命令配置后才使能bfd聯(lián)動接口down生效,不配置的情況下無法聯(lián)動接口down??煞乐巩斍霸O(shè)備有業(yè)務(wù)流量,且無法對兩臺設(shè)備同時下配置的情況下bfd協(xié)商失敗導(dǎo)致業(yè)務(wù)中斷的情況。bfdup以后,如果bfd配置修改導(dǎo)致會話重新協(xié)商,協(xié)商失敗需立即觸發(fā)接口down,無需按照首次的等待n秒來執(zhí)行。
如圖1所示,優(yōu)選,1)首次配置時,若互連設(shè)備接口兩端同時配置bfd及認證,且密碼一致,則bfd會話狀態(tài)由down置為up,接口狀態(tài)保持up。
bfdup以后,如bfd檢測到保活定時器超時或?qū)Χ伺渲眯薷膶?dǎo)致認證失敗,需立即觸發(fā)接口down,無需等待n秒。另外bfd狀態(tài)聯(lián)動接口down指的是接口協(xié)議層狀態(tài)down,由于bfd報文發(fā)送的是目的地址為組播地址,因此,在本地接口協(xié)議層down的情況下,依舊可以保證bfd報文的正常轉(zhuǎn)發(fā),不影響bfd會話的再次協(xié)商。
2)首次配置時,若互連設(shè)備接口兩端同時配置bfd及認證,且密碼不一致,則建立bfd會話協(xié)商失敗,等待n秒再聯(lián)動接口狀態(tài)置down。即bfd會話down狀態(tài)保持不變,接口狀態(tài)變化:等待n秒后up→down。當對端修改密碼為正確時,可觸發(fā)bfd會話重新協(xié)商,bfd會話狀態(tài)變化:down→init→up,接口狀態(tài)變化:down→up。
3)首次配置時,若互連設(shè)備接口一端配置bfd及認證,另一端只配置bfd,不配置認證,則bfd會話狀態(tài)保持down不變,接口狀態(tài)等待n秒后由up置為down。
當對端配置bfd認證且密碼為正確時,應(yīng)能重新進行bfd會話協(xié)商,bfd會話狀態(tài)變化:down→init→up,接口狀態(tài)變化:down→up。如對端配置bfd認證但密碼不正確時,bfd及接口狀態(tài)應(yīng)保持down。
4)首次配置時,若互連設(shè)備接口一端配置bfd及認證,另一端沒有配置,則bfd會話狀態(tài)保持down不變,接口狀態(tài)等待n秒后由up置為down。
當對端配置bfd及認證且密碼為正確時,應(yīng)能重新進行bfd會話協(xié)商,bfd會話狀態(tài)變化:down→init→up,接口狀態(tài)變化:down→up。如對端配置bfd但不配置認證或配置認證但密碼不正確時,bfd及接口狀態(tài)應(yīng)保持down。
相應(yīng)的,如圖3所示,一種基于bfd協(xié)議的接口認證系統(tǒng),包括:
bfd認證控制模塊:維護bfd會話狀態(tài)機及認證控制,根據(jù)接收的報文、認證結(jié)果和當前的狀態(tài)判斷下一步的處理動作,控制bfd會話狀態(tài)遷移及接口狀態(tài)變化,其中bfd會話狀態(tài)遷移見圖2,接口狀態(tài)變化見圖1。
定時器模塊:包括協(xié)商定時器模塊與保活定時器模塊,與bfd認證控制模塊交互工作:
bfd會話協(xié)商步驟開啟將激活協(xié)商定時器模塊,當本端發(fā)送bfd協(xié)商報文后,協(xié)商定時器開始計時,每次收到對端的協(xié)商報文后,協(xié)商定時器清零并重新開始計時;若在規(guī)定時間內(nèi)未收到對端的bfd協(xié)商報文,則認為協(xié)商定時器超時,bfd會話狀態(tài)置down;三次握手協(xié)商成功后,bfd會話狀態(tài)置up,同時關(guān)閉協(xié)商定時器,會話進入bfd周期檢測步驟,?;疃〞r器模塊開始工作:通過周期發(fā)送保活報文探測對端bfd狀態(tài),每次收到對端發(fā)送的保活報文后,保活定時器將自動清零;在規(guī)定檢測周期內(nèi)未收到對端的?;顖笪模瑒t認為超時,觸發(fā)bfd會話重新協(xié)商,關(guān)閉?;疃〞r器,同時進入bfd會話協(xié)商步驟,開啟協(xié)商定時器;
配置管理模塊:負責(zé)bfd配置命令的集中管理和傳送工作,解析bfd會話參數(shù)及認證密碼配置,根據(jù)配置命令內(nèi)容生成全局配置信息數(shù)據(jù)結(jié)構(gòu),供bfd認證控制模塊進行查詢和使用;
認證接口模塊:維護及管理不同接口下對應(yīng)的bfd會話及接口協(xié)議狀態(tài),根據(jù)bfd認證控制模塊的指示,保持或觸發(fā)接口狀態(tài)更新;bfd認證控制模塊通過多個認證接口模塊與各接口相連。
認證管理模塊:對不同bfd會話的meticulouskeyedsha1密碼進行分類存儲及合法性檢查;
報文收發(fā)模塊:進行報文的收發(fā)、封裝、分類統(tǒng)計及控制管理,對接收的bfd會話報文,提取報文中的信息給認證管理模塊及bfd認證控制模塊。
優(yōu)選,認證管理模塊包括sha1密碼庫和sequencenum計數(shù)器,其中,sha1密碼庫對發(fā)送的報文進行摘要信息的生成,對收到的bfd認證摘要進行合法性檢查;sequencenum計數(shù)器對收發(fā)報文進行序列號的維護與檢查,本端發(fā)送的報文序列號則按順序遞增,若對端bfd會話前后接收的報文序列號不連續(xù),則認為是非法報文并進行丟棄處理。
優(yōu)選,報文收發(fā)模塊提取報文中的認證摘要、參數(shù)、狀態(tài)信息等給認證管理模塊及bfd認證控制模塊。
本發(fā)明使用bfd組播方式及單跳檢測機制,提供了一種路由設(shè)備接口安全認證方法及系統(tǒng)。通過bfdmsha1認證協(xié)商聯(lián)動接口up/down,為網(wǎng)絡(luò)通信設(shè)備接口互連安全檢查提供了解決方案。同時結(jié)合bfdms級的周期探測,可防止bfd會話認證協(xié)商成功后,正常網(wǎng)絡(luò)設(shè)備被攻擊設(shè)備替換帶來的重放攻擊風(fēng)險,提高了通信設(shè)備互連安全可靠性。
以上僅為本發(fā)明的優(yōu)選實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或者等效流程變換,或者直接或間接運用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護范圍內(nèi)。