一種認(rèn)證方法及裝置的制造方法
【專利摘要】本申請實施例公開了一種認(rèn)證方法及裝置,涉及通信技術(shù)領(lǐng)域,其中,上述方法包括:接收目標(biāo)報文;當(dāng)未完成基于網(wǎng)絡(luò)時間協(xié)議NTP的系統(tǒng)時鐘同步時,根據(jù)所述目標(biāo)報文從加密規(guī)則集合keychain中確定目標(biāo)加密規(guī)則key,并通過所述目標(biāo)key對所述目標(biāo)報文進(jìn)行認(rèn)證,其中,所述keychain為由多個key構(gòu)成的集合。應(yīng)用本申請實施例提供的方案對報文進(jìn)行認(rèn)證時,在未完成基于NTP的系統(tǒng)時鐘同步的情況下,無需網(wǎng)絡(luò)管理人員手動調(diào)整系統(tǒng)時間,完成報文認(rèn)證。
【專利說明】
_種認(rèn)證方法及裝置
技術(shù)領(lǐng)域
[0001 ]本申請涉及通信技術(shù)領(lǐng)域,特別涉及一種認(rèn)證方法及裝置。
【背景技術(shù)】
[0002]設(shè)備在網(wǎng)絡(luò)中運行時,如果系統(tǒng)時間與實際時間不一致,會對管理設(shè)備帶來很多困難,影響一些需要參考實際時間運行的特性,因此,實際應(yīng)用中需要保證系統(tǒng)時間與實際時間一致。
[0003]例如,網(wǎng)絡(luò)設(shè)備接收報文時,在對所接收的報文進(jìn)行處理之前需對該報文進(jìn)行認(rèn)證,具體的,對于支持keychain特性的路由設(shè)備而言,根據(jù)keychain特性確定用于進(jìn)行認(rèn)證的加密規(guī)則(key),然后根據(jù)所確定的key對所接收的報文進(jìn)行認(rèn)證。其中,上述keychain可以理解為:加密規(guī)則的集合,用來為應(yīng)用程序提供動態(tài)認(rèn)證功能。
[0004]其中,根據(jù)keychain特性確定用于進(jìn)行認(rèn)證的key時,通常是根據(jù)系統(tǒng)時間確定的,然而,在網(wǎng)絡(luò)設(shè)備出現(xiàn)異常掉電現(xiàn)象重啟設(shè)備后,未基于NTP(Network Time Protocol,網(wǎng)絡(luò)時間協(xié)議)完成時鐘同步的情況下,若網(wǎng)絡(luò)設(shè)備無法記錄掉電前的系統(tǒng)時間,則網(wǎng)絡(luò)設(shè)備重啟后其系統(tǒng)時間與網(wǎng)絡(luò)中其他正常運行的設(shè)備的系統(tǒng)時間不同,也就是重啟后網(wǎng)絡(luò)設(shè)備的系統(tǒng)時間與實際時間不一致,這樣上述網(wǎng)絡(luò)設(shè)備的系統(tǒng)時間是錯誤的,這種情況下,根據(jù)系統(tǒng)時間確定的用于進(jìn)行認(rèn)證的key是錯誤的,進(jìn)而無法對所接收的報文進(jìn)行正常認(rèn)證。
[0005]現(xiàn)有技術(shù)中,為保證正常對所接收的報文進(jìn)行認(rèn)證,往往需要網(wǎng)絡(luò)管理人員手動調(diào)整重啟的網(wǎng)絡(luò)設(shè)備的系統(tǒng)時間,使其與網(wǎng)絡(luò)中其他設(shè)備的系統(tǒng)時間一致。應(yīng)用上述方式雖然可以保證系統(tǒng)時間一致,但是網(wǎng)絡(luò)管理人員的工作量較大,且會影響網(wǎng)絡(luò)設(shè)備異常掉電情況下業(yè)務(wù)的收斂速度。
【發(fā)明內(nèi)容】
[0006]本申請實施例公開了一種認(rèn)證方法及裝置,以減輕網(wǎng)絡(luò)管理人員的工作壓力,并減少對業(yè)務(wù)的影響
[0007]為達(dá)到上述目的,本申請實施例公開了一種認(rèn)證方法,所述方法包括:
[0008]接收目標(biāo)報文;
[0009]當(dāng)未完成基于網(wǎng)絡(luò)時間協(xié)議NTP的系統(tǒng)時鐘同步時,根據(jù)所述目標(biāo)報文從加密規(guī)則集合keychain中確定目標(biāo)加密規(guī)則key,并通過所述目標(biāo)key對所述目標(biāo)報文進(jìn)行認(rèn)證,其中,所述keychain為由多個key構(gòu)成的集合。
[0010]在本申請的一種實現(xiàn)方式中,所述根據(jù)所述目標(biāo)報文從keychain中確定目標(biāo)key,并通過所述目標(biāo)key對所述目標(biāo)報文進(jìn)行認(rèn)證,包括:
[0011 ]判斷接收所述目標(biāo)報文的目標(biāo)接口是否存在目標(biāo)key;
[0012]若存在,則通過所述目標(biāo)key對所述目標(biāo)報文進(jìn)行認(rèn)證;
[0013]若不存在,則根據(jù)所述目標(biāo)報文從keychain中確定目標(biāo)key。
[0014]在本申請的一種實現(xiàn)方式中,所述根據(jù)所述目標(biāo)報文從keychain中確定目標(biāo)key,包括:
[0015]根據(jù)所述目標(biāo)報文所攜帶的認(rèn)證字段從keychain中匹配臨時key,并根據(jù)匹配到的臨時key,更新與所述目標(biāo)接口對應(yīng)的臨時key列表中認(rèn)證計數(shù);
[00? 0]根據(jù)所述認(rèn)證計數(shù),從臨時key列表所存儲的臨時key中確定目標(biāo)key。
[0017]在本申請的一種實現(xiàn)方式中,所述根據(jù)匹配到的臨時key,更新與所述目標(biāo)接口對應(yīng)的臨時key列表中的認(rèn)證計數(shù),包括:
[0018]當(dāng)與所述目標(biāo)接口對應(yīng)的臨時key列表中存儲有匹配到的臨時key時,所述匹配到的臨時key所對應(yīng)的認(rèn)證成功計數(shù)累加,所述臨時key列表中的其他臨時key認(rèn)證失敗計數(shù)累加;
[0019]當(dāng)與所述目標(biāo)接口對應(yīng)的臨時key列表中未存儲有匹配到的臨時key時,在所述臨時key列表中添加匹配到的臨時key,所述臨時列表中的其他臨時key認(rèn)證失敗計數(shù)累加;[°02°]所述根據(jù)所述認(rèn)證計數(shù),從臨時key列表所存儲的臨時key中確定目標(biāo)key,包括:
[0021]當(dāng)所述臨時key列表中所存儲的臨時key的認(rèn)證成功計數(shù)大于第一閾值時,將該臨時key確定為目標(biāo)key,并刪除所述臨時key列表中的其他臨時key ;
[0022]當(dāng)所述臨時key列表中所存儲的臨時key的認(rèn)證失敗計數(shù)大于第二閾值時,從所述臨時key列表中刪除該認(rèn)證失敗計數(shù)大于第二閾值的臨時key。
[0023]在本申請的一種實現(xiàn)方式中,所述臨時key列表還包括老化時間;
[0024]所述方法還包括:
[0025]當(dāng)與所述目標(biāo)接口對應(yīng)的臨時key列表中存儲有匹配到的臨時key時,更新匹配到的臨時key的老化時間;
[0026]當(dāng)所述目標(biāo)報文通過認(rèn)證時,更新匹配到的目標(biāo)key的老化時間;
[0027]當(dāng)所述臨時key列表中所存儲的臨時key或目標(biāo)key到達(dá)老化時間時,則刪除所對應(yīng)的臨時key或目標(biāo)key。
[0028]在本申請的一種實現(xiàn)方式中,所述方法還包括:
[0029]在完成基于NTP的系統(tǒng)時鐘同步后,根據(jù)系統(tǒng)時鐘選取key對進(jìn)行目標(biāo)報文的認(rèn)證。
[0030]為達(dá)到上述目的,本申請實施例公開了一種認(rèn)證裝置,所述裝置包括:
[0031 ]接收單元,用于接收目標(biāo)報文;
[0032]認(rèn)證單元,用于當(dāng)未完成基于網(wǎng)絡(luò)時間協(xié)議NTP的系統(tǒng)時鐘同步時,根據(jù)所述目標(biāo)報文從加密規(guī)則集合keychain中確定目標(biāo)加密規(guī)則key,并通過所述目標(biāo)key對所述目標(biāo)報文進(jìn)行認(rèn)證,其中,所述key chain為由多個key構(gòu)成的集合。
[0033]在本申請的一種實現(xiàn)方式中,所述認(rèn)證單元,包括:
[0034]判斷模塊,用于判斷接收所述目標(biāo)報文的目標(biāo)接口是否存在目標(biāo)key;
[0035]認(rèn)證模塊,用于在所述判斷模塊的判斷結(jié)果為是的情況下,通過所述目標(biāo)key對所述目標(biāo)報文進(jìn)行認(rèn)證;
[0036]確定模塊,用于在所述判斷模塊的判斷結(jié)果為否的情況下,根據(jù)所述目標(biāo)報文從key chain中確定目標(biāo)key。
[0037]在本申請的一種實現(xiàn)方式中,所述確定模塊,包括:
[0038]匹配子模塊,用于根據(jù)所述目標(biāo)報文所攜帶的認(rèn)證字段從keychain中匹配臨時key;
[0039]更新子模塊,用于根據(jù)匹配到的臨時key,更新與所述目標(biāo)接口對應(yīng)的臨時key列表中認(rèn)證計數(shù);
[0040]確定子模塊,用于根據(jù)所述認(rèn)證計數(shù),從臨時key列表所存儲的臨時key中確定目標(biāo)key ο
[0041]在本申請的一種實現(xiàn)方式中,所述更新子模塊,具體用于當(dāng)與所述目標(biāo)接口對應(yīng)的臨時key列表中存儲有匹配到的臨時key時,所述匹配到的臨時key所對應(yīng)的認(rèn)證成功計數(shù)累加,所述臨時key列表中的其他臨時key認(rèn)證失敗計數(shù)累加;當(dāng)與所述目標(biāo)接口對應(yīng)的臨時key列表中未存儲有匹配到的臨時key時,在所述臨時key列表中添加匹配到的臨時key,所述臨時列表中的其他臨時key認(rèn)證失敗計數(shù)累加;
[0042 ]所述確定子模塊,具體用于當(dāng)所述臨時key列表中所存儲的臨時key的認(rèn)證成功計數(shù)大于第一閾值時,將該臨時key確定為目標(biāo)key,并刪除所述臨時key列表中的其他臨時key;當(dāng)所述臨時key列表中所存儲的臨時key的認(rèn)證失敗計數(shù)大于第二閾值時,從所述臨時key列表中刪除該認(rèn)證失敗計數(shù)大于第二閾值的臨時key。
[0043]在本申請的一種實現(xiàn)方式中,所述臨時key列表還包括老化時間;
[0044]所述裝置還包括:
[0045]老化單元,用于當(dāng)與所述目標(biāo)接口對應(yīng)的臨時key列表中存儲有匹配到的臨時key時,更新匹配到的臨時key的老化時間;當(dāng)所述目標(biāo)報文通過認(rèn)證時,更新匹配到的目標(biāo)key的老化時間;當(dāng)所述臨時key列表中所存儲的臨時key或目標(biāo)key到達(dá)老化時間時,則刪除所對應(yīng)的臨時key或目標(biāo)key。
[0046]在本申請的一種實現(xiàn)方式中,所述認(rèn)證模塊,還用于在完成基于NTP的系統(tǒng)時鐘同步后,根據(jù)系統(tǒng)時鐘選取key進(jìn)行目標(biāo)報文的認(rèn)證。
[0047]由以上可見,本申請實施例提供的方案中,接收到目標(biāo)報文后,未完成基于NTP的系統(tǒng)時鐘同步時,根據(jù)目標(biāo)報文從keychain中確定目標(biāo)key,并通過目標(biāo)key對目標(biāo)報文進(jìn)行認(rèn)證??梢娫谖赐瓿苫贜TP的系統(tǒng)時鐘同步的情況下,網(wǎng)絡(luò)管理人員未手動調(diào)整系統(tǒng)時間時,依然能夠完成報文認(rèn)證,減少了網(wǎng)絡(luò)管理人員的工作壓力,提高了報文認(rèn)證的速度,進(jìn)而減少了對業(yè)務(wù)的影響。
【附圖說明】
[0048]為了更清楚地說明本申請實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0049]圖1為本申請實施例提供的一種認(rèn)證方法的流程示意圖;
[0050]圖2為本申請實施例提供的另一種認(rèn)證方法的流程示意圖;
[0051]圖3為本申請實施例提供的一種認(rèn)證裝置的結(jié)構(gòu)示意圖。
【具體實施方式】
[0052]下面將結(jié)合本申請實施例中的附圖,對本申請實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例。基于本申請中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護(hù)的范圍。
[0053]下面先對本申請實施例中涉及的幾個概念進(jìn)行介紹。
[0054]NTP(Network Time Protocol,網(wǎng)絡(luò)時間協(xié)議)可以用來在分布式時間服務(wù)器和客戶端之間進(jìn)行時間同步,使網(wǎng)絡(luò)內(nèi)所有設(shè)備的時間保持一致,并提供較高的時間同步精度。
[0055]keychain是加密規(guī)則(key)的集合,用來為應(yīng)用程序提供動態(tài)認(rèn)證功能。keychain在不中斷業(yè)務(wù)的前提下,通過定期更改用于認(rèn)證的密鑰和算法來提升網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)陌踩浴?br>[°°56] key由認(rèn)證密鑰、認(rèn)證算法和生命周期三部分組成,一個keychain中的不同key可配置各自的認(rèn)證密鑰、認(rèn)證算法和生命周期。當(dāng)系統(tǒng)時間處于key的生命周期內(nèi)時,應(yīng)用程序可以利用它對發(fā)送的報文進(jìn)行加密和對接收的報文進(jìn)行校驗。當(dāng)keychain內(nèi)各個key的生命周期具有連續(xù)性時,隨著系統(tǒng)時間的推移,各個key能夠依次生效,從而實現(xiàn)動態(tài)地更改應(yīng)用程序使用的認(rèn)證算法和認(rèn)證密鑰。
[0057]keychain支持絕對時間模式和周期性時間模式,不同時間模式下,key的生命周期不同:
[0058]絕對時間模式:該模式的keychain中,key的生命周期是UTC(CoordinatedUniversal Time,國際協(xié)調(diào)時間)絕對時間,不受系統(tǒng)的時區(qū)和夏令時的影響。
[0059]周期性時間模式:該模式的keychain中,key的生命周期是根據(jù)系統(tǒng)的本地時間計算的,會受到系統(tǒng)的時區(qū)和夏令時的影響。包括以下四種模式:
[0000] daily:按天的周期性時間模式,key的生命周期是從一天之內(nèi)的指定起始時間到指定結(jié)束時間,每天重復(fù)。
[0061 ] weekly:按周的周期性時間模式,key的生命周期是從一周之內(nèi)的指定起始日到指定結(jié)束日,每周重復(fù)。
[0062 ] month I y:按月的周期性時間模式,key的生命周期是從一月之內(nèi)的指定起始日期到指定結(jié)束日期,每月重復(fù)。
[0063]yearly:按年的周期性時間模式,key的生命周期是從一年之內(nèi)的指定起始月到指定結(jié)束月,每年重復(fù)。
[0064]下面通過具體實施例對本申請?zhí)峁┑恼J(rèn)證方法進(jìn)行詳細(xì)說明。
[0065]圖1為本申請實施例提供的第一種認(rèn)證方法的流程示意圖,該方法包括:
[0066]SlOl:接收目標(biāo)報文。
[0067]S102:當(dāng)未完成基于NTP的系統(tǒng)時鐘同步時,根據(jù)目標(biāo)報文從keychain中確定目標(biāo)key,并通過目標(biāo)key對目標(biāo)報文進(jìn)行認(rèn)證。
[0068]其中,keychain為由多個key構(gòu)成的集合。
[0069]具體的,網(wǎng)絡(luò)設(shè)備剛剛上電啟動或者剛剛配置NTP后,系統(tǒng)時鐘一般還沒有同步完畢,所以,網(wǎng)絡(luò)設(shè)備完成啟動后以及配置完成NTP后,均可以理解為未完成基于NTP的系統(tǒng)時鐘同步的情況。
[0070]值得一提的是,對于接收上述目標(biāo)報文的目標(biāo)接口而言,未完成基于NTP的系統(tǒng)時鐘同步時,若目標(biāo)接口不存在目標(biāo)key,則網(wǎng)絡(luò)設(shè)備僅僅通過該目標(biāo)接口接收報文,不向外發(fā)送報文,但是若目標(biāo)接口存在目標(biāo)key,則網(wǎng)絡(luò)設(shè)備可以通過目標(biāo)key對要向外發(fā)送的報文進(jìn)行認(rèn)證,并嘗試向外發(fā)送報文。
[0071 ]在本申請的一種可選實現(xiàn)方式中,根據(jù)目標(biāo)報文從keychain中確定目標(biāo)key,并通過目標(biāo)key對目標(biāo)報文進(jìn)行認(rèn)證時,可以先判斷接收目標(biāo)報文的目標(biāo)接口是否存在目標(biāo)key;若存在,則通過目標(biāo)key對目標(biāo)報文進(jìn)行認(rèn)證;若不存在,則根據(jù)目標(biāo)報文從keychain中確定目標(biāo)key。
[0072]具體的,針對一個接口會選出一個目標(biāo)key,當(dāng)存在這個目標(biāo)key時,則網(wǎng)絡(luò)設(shè)備會根據(jù)這個目標(biāo)key對接收到的目標(biāo)報文進(jìn)行認(rèn)證。當(dāng)不存在這個目標(biāo)key時,則需要根據(jù)目標(biāo)報文從keychain中選出一個key作為目標(biāo)key,此時,因為針對這個接口存在了目標(biāo)key,則根據(jù)這個目標(biāo)key對目標(biāo)報文進(jìn)行認(rèn)證。
[0073]可以理解的,若長時間無法完成基于NTP的系統(tǒng)時鐘同步,則說明網(wǎng)絡(luò)中可能存在故障,鑒于此,在本申請的一種可選實現(xiàn)方式中,上述認(rèn)證方法還可以包括:在由已完成基于NTP的系統(tǒng)時鐘同步的狀態(tài)切換至未完成基于NTP的系統(tǒng)時鐘同步的狀態(tài)后,啟動自解析狀態(tài)定時器。
[0074]這樣判斷目標(biāo)接口是否存在目標(biāo)key時,可以在上述自解析狀態(tài)定時器未超時的情況下,判斷目標(biāo)接口是否存在目標(biāo)key。
[0075]如果上述自解析狀態(tài)定時器未超時,完成了基于NTP的系統(tǒng)時鐘同步,則刪除該自解析狀態(tài)定時器;
[0076]如果上述自解析狀態(tài)定時器超時后依然沒有完成基于NTP的系統(tǒng)時鐘同步,則網(wǎng)絡(luò)設(shè)備不再根據(jù)目標(biāo)報文從keychain中確定目標(biāo)key,并刪除該自解析狀態(tài)定時器,并進(jìn)行報錯,以告知系統(tǒng)無法根據(jù)NTP完成系統(tǒng)時鐘的同步,需要檢查網(wǎng)絡(luò)。
[0077]在本申請的另一種可選實現(xiàn)方式中,根據(jù)目標(biāo)報文從keychain中確定目標(biāo)key時,可以根據(jù)目標(biāo)報文所攜帶的認(rèn)證字段從keychain中匹配臨時key,更新與目標(biāo)接口對應(yīng)的臨時key列表中認(rèn)證計數(shù);根據(jù)認(rèn)證計數(shù),從臨時key列表所存儲的臨時key中確定目標(biāo)key。
[0078]針對一個接口會存儲有對應(yīng)該接口的臨時key列表,該臨時key列表包括key值、認(rèn)證計數(shù)以及老化時間等參數(shù)。其中,key值可以為keychain中key的標(biāo)號,認(rèn)證計數(shù)用于表示該key的認(rèn)證成功或認(rèn)證失敗的次數(shù)。老化時間,用于記錄key可以使用的時間。在該臨時key列表中至少存在兩種key,一種是作為目標(biāo)key備選的臨時key,另一種是對目標(biāo)報文進(jìn)行認(rèn)證的目標(biāo)key。
[0079]當(dāng)臨時key列表中的一個臨時key的認(rèn)證計數(shù)不滿足條件時,則標(biāo)記為臨時key,當(dāng)臨時key列表中的一個臨時key的認(rèn)證計數(shù)滿足條件時,則將該臨時key標(biāo)記為目標(biāo)key,以用于對目標(biāo)報文進(jìn)行認(rèn)證。
[0080]在一個接口(即目標(biāo)接口)接收到報文時,先判斷臨時key列表中是否存在目標(biāo)key。如果存在目標(biāo)key,則根據(jù)目標(biāo)key對該報文(即目標(biāo)報文)進(jìn)行認(rèn)證;如果不存在目標(biāo)key,則根據(jù)報文中攜帶的認(rèn)證信息從該接口所配置的keychain中查找,在未查找到匹配的key時,則直接丟棄該報文,在查到到匹配的key時,則將該key作為臨時key存儲到臨時key列表中,并進(jìn)行計數(shù)和計時,但這是因為還沒有選出目標(biāo)key,所以該報文在選出臨時key后仍做丟棄處理,直至從臨時key選出目標(biāo)key。
[0081]可選的,每個臨時key可以通過兩個計數(shù)進(jìn)行表示,一個記錄認(rèn)證成功的次數(shù),一個記錄認(rèn)證失敗的次數(shù)。
[0082]這種情況下,更新與目標(biāo)接口對應(yīng)的臨時key列表中的認(rèn)證計數(shù)可以包括:
[0083]當(dāng)與目標(biāo)接口對應(yīng)的臨時key列表中存儲有匹配到的臨時key時,匹配到的臨時key所對應(yīng)的認(rèn)證成功計數(shù)累加,臨時key列表中的其他臨時key認(rèn)證失敗計數(shù)累加;
[0084]當(dāng)與目標(biāo)接口對應(yīng)的臨時key列表中未存儲有匹配到的臨時key時,在臨時key列表中添加匹配到的臨時key,臨時列表中的其他臨時key認(rèn)證失敗計數(shù)累加。
[0085]這樣一來,當(dāng)根據(jù)認(rèn)證報文中的認(rèn)證字段能夠匹配到一個存在于keychain中的key時,則表明認(rèn)證成功計數(shù)可以累加,而如果不存在則認(rèn)證失敗次數(shù)累加。
[0086]當(dāng)認(rèn)證成功計數(shù)大于預(yù)設(shè)的第一閾值時,則可以說明這個該臨時key滿足了條件,可以作為對目標(biāo)報文進(jìn)行認(rèn)證的目標(biāo)key;當(dāng)認(rèn)證成功計數(shù)大于預(yù)設(shè)的第二閾值時,則說明該臨時key存在隱患,從臨時key列表中刪除該臨時key。
[0087]基于此,根據(jù)認(rèn)證計數(shù),從臨時key列表所存儲的臨時key中確定目標(biāo)key可以包括:
[0088]當(dāng)臨時key列表中所存儲的臨時key的認(rèn)證成功計數(shù)大于第一閾值時,將該臨時key確定為目標(biāo)key,并刪除臨時key列表中的其他臨時key;
[0089]當(dāng)臨時key列表中所存儲的臨時key的認(rèn)證失敗計數(shù)大于第二閾值時,從臨時key列表中刪除該認(rèn)證失敗計數(shù)大于第二閾值的臨時key。
[0090]另外,每個臨時key還可以僅僅通過一個計數(shù)器進(jìn)行表示,例如,一個臨時key加入臨時列表時,其初始值設(shè)置為一個設(shè)定的中間值,如,4,認(rèn)證成功時,該計數(shù)器累加I,認(rèn)證失敗時該計數(shù)器減I,當(dāng)該計數(shù)器的數(shù)值小于第一預(yù)設(shè)閾值時,如,第一閾值為2,可以從臨時列表中刪除該臨時key,而當(dāng)該計數(shù)器的數(shù)值大于第二預(yù)設(shè)閾值時,如第二閾值為6,將該臨時key確定為目標(biāo)key,其中,上述第二閾值大于上述第一閾值。
[0091]其中,目標(biāo)報文攜帶的認(rèn)證字段可以是keyID或者是一段認(rèn)證信息。
[0092]例如,基于某些路由協(xié)議的報文,其中攜帶有keyID。例如:當(dāng)網(wǎng)絡(luò)系統(tǒng)基于OSPF(Open Shortest Path First,開放式最短路徑優(yōu)先)路由協(xié)議時,根據(jù)目標(biāo)報文中攜帶的認(rèn)證字段從keychain中匹配臨時key的過程,可以視為根據(jù)目標(biāo)報文中攜帶的key ID在前述key chain中進(jìn)行ID匹配,選擇出臨時key。
[0093]另外,基于另一些路由協(xié)議的報文,其中目標(biāo)報文可以不攜帶keyID,這種情況下,根據(jù)目標(biāo)報文中攜帶的認(rèn)證信息從前述keychain中匹配臨時key時,可以根據(jù)目標(biāo)報文中攜帶的認(rèn)證字段逐一與上述key chain中的key進(jìn)行匹配,選擇出臨時key。
[0094]需要說明的是,本申請只是以上述為例進(jìn)行說明,實際應(yīng)用中并不對根據(jù)目標(biāo)報文中攜帶的認(rèn)證字段從key chain中匹配臨時key的方式進(jìn)行限定。
[0095]在本申請的另一種可選實現(xiàn)方式中,臨時key列表還包括老化時間;
[0096]基于此,上述認(rèn)證方法方法還可以包括:
[0097]當(dāng)與目標(biāo)接口對應(yīng)的臨時key列表中存儲有匹配到的臨時key時,更新匹配到的臨時key的老化時間;
[0098]當(dāng)目標(biāo)報文通過認(rèn)證時,更新匹配到的目標(biāo)key的老化時間;
[0099]當(dāng)臨時key列表中所存儲的臨時key或目標(biāo)key到達(dá)老化時間時,則刪除所對應(yīng)的臨時key或目標(biāo)key。
[0100]在接收到報文時,如果匹配到臨時key或目標(biāo)key,則會刷新老化時間,比如定時器清零或者延長老化時間等。
[0101]在接收到報文選出臨時key作為表項存儲到臨時key列表或者該臨時key列表中存儲有一個目標(biāo)key時,該表項中包含老化時間,并啟動一個定時器對該表項進(jìn)行計時。如果計時到達(dá)了該老化時間,則刪除該臨時key或目標(biāo)key。
[0102]可選的,上述更新老化時間,可以將老化時間更新為路由協(xié)議的生存時間(HoldTime)。
[0103]由于在通信過程中,路由協(xié)議本身存在生存時間,超出該生存時間后,存儲的鄰居信息則會清除,此時,保留臨時key列表中的臨時key或目標(biāo)key的意義不大,則可以清除掉臨時key或目標(biāo)key。
[0104]可以理解的,在網(wǎng)絡(luò)通信中網(wǎng)絡(luò)設(shè)備可能會接收到惡意攻擊報文,另外,對于網(wǎng)絡(luò)設(shè)備的各個接口而言,一般情況下,一個接口對應(yīng)的用于進(jìn)行報文認(rèn)證的key是不變的,且采用不同keychain的各個接口用于進(jìn)行報文認(rèn)證的key也是不同的?;谏鲜銮闆r,在本申請的一種可選實現(xiàn)方式中,上述認(rèn)證方法還可以包括:
[0105]監(jiān)測目標(biāo)臨時key的變化速度是否大于預(yù)設(shè)的第三閾值,若大于預(yù)設(shè)的第三閾值,則說明上述目標(biāo)臨時key的具體值頻繁變化,也就是目標(biāo)接口用于進(jìn)行報文認(rèn)證的key頻繁變化,這時可以認(rèn)為目標(biāo)接口接收的報文為攻擊報文的概率較高,因此,可以拒絕處理目標(biāo)接口接收的報文。
[0106]舉例來說,對于變化速度而言,認(rèn)證過程中的報文發(fā)送周期一般是10s,如果這1s內(nèi)僅接收到一個報文,則可以理解為變化速度滿足要求,但如果在1s內(nèi)接收到的報文數(shù)大于I,則可以理解為臨時key變化頻繁,存在攻擊的可能較大,此時,便可以拒絕從該接口接收報文,以避免攻擊對設(shè)備造成的影響。
[0107]另外,一個設(shè)備上可能存在多個接口,每個接口所應(yīng)用的keychain可能相同也可能不同。如果采用的keychain是相同的,因為其他設(shè)備與系統(tǒng)時鐘是同步的,那么便可以認(rèn)為其他設(shè)備發(fā)送過來的報文中所攜帶的認(rèn)證信息也應(yīng)該是相同的。此時,設(shè)備可以判斷采用相同keychain的接口所產(chǎn)生的目標(biāo)key如果是不同的,則其中之一便可能存在攻擊。這樣一來,設(shè)備可以分別刪除這兩個接口上的目標(biāo)key,重新進(jìn)行目標(biāo)key的選舉,以避免攻擊所帶來的影響。
[0108]由以上可見,上述各個實施例提供的方案中,接收到目標(biāo)報文后,未完成基于NTP的系統(tǒng)時鐘同步時,根據(jù)目標(biāo)報文從keychain中確定目標(biāo)key,并通過目標(biāo)key對目標(biāo)報文進(jìn)行認(rèn)證??梢娫谖赐瓿苫贜TP的系統(tǒng)時鐘同步的情況下,網(wǎng)絡(luò)管理人員未手動調(diào)整系統(tǒng)時間時,依然能夠完成報文認(rèn)證,減少了網(wǎng)絡(luò)管理人員的工作壓力,提高了報文認(rèn)證的速度,進(jìn)而減少了對業(yè)務(wù)的影響。
[0109]在本申請的一種具體實現(xiàn)方式中,參見圖2,提供了另一種認(rèn)證方法的流程示意圖,與前述實施例相比,本實施例中,上述認(rèn)證方法還包括:
[0110]S103:在完成基于NTP的系統(tǒng)時鐘同步后,根據(jù)系統(tǒng)時鐘進(jìn)行目標(biāo)報文的認(rèn)證。
[0111]這樣在完成基于NTP的系統(tǒng)時鐘同步后,可以不需先根據(jù)目標(biāo)報文從keychain中確定目標(biāo)key,再采用目標(biāo)key對目標(biāo)報文進(jìn)行認(rèn)證,而是直接根據(jù)系統(tǒng)時鐘選取一個key對目標(biāo)報文進(jìn)行認(rèn)證,提高了認(rèn)證效率。
[0112]與上述認(rèn)證方法相對應(yīng),本申請實施例還提供了一種認(rèn)證裝置。
[0113]圖3為本申請實施例提供的一種認(rèn)證裝置的結(jié)構(gòu)示意圖,該裝置包括:
[0114]接收單元301,用于接收目標(biāo)報文;
[0115]認(rèn)證單元302,用于當(dāng)未完成基于網(wǎng)絡(luò)時間協(xié)議NTP的系統(tǒng)時鐘同步時,根據(jù)所述目標(biāo)報文從加密規(guī)則集合key chain中確定目標(biāo)加密規(guī)則key,并通過所述目標(biāo)key對所述目標(biāo)報文進(jìn)行認(rèn)證,其中,所述key chain為由多個key構(gòu)成的集合。
[0116]具體的,所述認(rèn)證單元302可以包括:
[0117]判斷模塊,用于判斷接收所述目標(biāo)報文的目標(biāo)接口是否存在目標(biāo)key;
[0118]認(rèn)證模塊,用于在所述判斷模塊的判斷結(jié)果為是的情況下,通過所述目標(biāo)key對所述目標(biāo)報文進(jìn)行認(rèn)證;
[0119]確定模塊,用于在所述判斷模塊的判斷結(jié)果為否的情況下,根據(jù)所述目標(biāo)報文從key chain中確定目標(biāo)key。
[0120]具體的,所述確定模塊,包括:
[0121]匹配子模塊,用于根據(jù)所述目標(biāo)報文所攜帶的認(rèn)證字段從keychain中匹配臨時key;
[0122]更新子模塊,用于更新與所述目標(biāo)接口對應(yīng)的臨時key列表中認(rèn)證計數(shù);
[0123]確定子模塊,用于根據(jù)所述認(rèn)證計數(shù),從臨時key列表所存儲的臨時key中確定目標(biāo)key ο
[0124]具體的,所述更新子模塊,具體用于當(dāng)與所述目標(biāo)接口對應(yīng)的臨時key列表中存儲有匹配到的臨時key時,所述匹配到的臨時key所對應(yīng)的認(rèn)證成功計數(shù)累加,所述臨時key列表中的其他臨時key認(rèn)證失敗計數(shù)累加;當(dāng)與所述目標(biāo)接口對應(yīng)的臨時key列表中未存儲有匹配到的臨時key時,在所述臨時key列表中添加匹配到的臨時key,所述臨時列表中的其他臨時key認(rèn)證失敗計數(shù)累加;
[0125]所述確定單元,具體用于當(dāng)所述臨時key列表中所存儲的臨時key的認(rèn)證成功計數(shù)大于第一閾值時,將該臨時key確定為目標(biāo)key,并刪除所述臨時key列表中的其他臨時key;當(dāng)所述臨時key列表中所存儲的臨時key的認(rèn)證失敗計數(shù)大于第二閾值時,從所述臨時key列表中刪除該認(rèn)證失敗計數(shù)大于第二閾值的臨時key。
[0126]具體的,所述臨時key列表還包括老化時間;
[0127]所述裝置還包括:
[0128]老化單元,用于當(dāng)與所述目標(biāo)接口對應(yīng)的臨時key列表中存儲有匹配到的臨時key時,更新匹配到的臨時key的老化時間;當(dāng)所述目標(biāo)報文通過認(rèn)證時,更新匹配到的目標(biāo)key的老化時間;當(dāng)所述臨時key列表中所存儲的臨時key或目標(biāo)key到達(dá)老化時間時,則刪除所對應(yīng)的臨時key或目標(biāo)key。
[0129]具體的,所述認(rèn)證單元,還用于在完成基于NTP的系統(tǒng)時鐘同步后,根據(jù)系統(tǒng)時鐘選取key進(jìn)行目標(biāo)報文的認(rèn)證。
[0130]由以上可見,本申請實施例提供的方案中,接收到目標(biāo)報文后,未完成基于NTP的系統(tǒng)時鐘同步時,根據(jù)目標(biāo)報文從keychain中確定目標(biāo)key,并通過目標(biāo)key對目標(biāo)報文進(jìn)行認(rèn)證??梢娫谖赐瓿苫贜TP的系統(tǒng)時鐘同步的情況下,網(wǎng)絡(luò)管理人員未手動調(diào)整系統(tǒng)時間時,依然能夠完成報文認(rèn)證,減少了網(wǎng)絡(luò)管理人員的工作壓力,提高了報文認(rèn)證的速度,進(jìn)而減少了對業(yè)務(wù)的影響。
[0131]對于裝置實施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
[0132]需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
[0133]本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述方法實施方式中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,所述的程序可以存儲于計算機可讀取存儲介質(zhì)中,這里所稱得的存儲介質(zhì),如:R0M/RAM、磁碟、光盤等。
[0134]以上所述僅為本申請的較佳實施例而已,并非用于限定本申請的保護(hù)范圍。凡在本申請的精神和原則之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均包含在本申請的保護(hù)范圍內(nèi)。
【主權(quán)項】
1.一種認(rèn)證方法,其特征在于,所述方法包括: 接收目標(biāo)報文; 當(dāng)未完成基于網(wǎng)絡(luò)時間協(xié)議NTP的系統(tǒng)時鐘同步時,根據(jù)所述目標(biāo)報文從加密規(guī)則集合keychain中確定目標(biāo)加密規(guī)則key,并通過所述目標(biāo)key對所述目標(biāo)報文進(jìn)行認(rèn)證,其中,所述keychain為由多個key構(gòu)成的集合。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述目標(biāo)報文從keychain中確定目標(biāo)key,并通過所述目標(biāo)key對所述目標(biāo)報文進(jìn)行認(rèn)證,包括: 判斷接收所述目標(biāo)報文的目標(biāo)接口是否存在目標(biāo)key; 若存在,則通過所述目標(biāo)key對所述目標(biāo)報文進(jìn)行認(rèn)證; 若不存在,則根據(jù)所述目標(biāo)報文從keychain中確定目標(biāo)key。3.根據(jù)權(quán)利要求2所述的方法,其特征在于, 所述根據(jù)所述目標(biāo)報文從keychain中確定目標(biāo)key,包括: 根據(jù)所述目標(biāo)報文所攜帶的認(rèn)證字段從keychain中匹配臨時key,并根據(jù)匹配到的臨時key,更新與所述目標(biāo)接口對應(yīng)的臨時key列表中認(rèn)證計數(shù); 根據(jù)所述認(rèn)證計數(shù),從臨時key列表所存儲的臨時key中確定目標(biāo)key。4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述根據(jù)匹配到的臨時key,更新與所述目標(biāo)接口對應(yīng)的臨時key列表中的認(rèn)證計數(shù),包括: 當(dāng)與所述目標(biāo)接口對應(yīng)的臨時key列表中存儲有匹配到的臨時key時,所述匹配到的臨時key所對應(yīng)的認(rèn)證成功計數(shù)累加,所述臨時key列表中的其他臨時key認(rèn)證失敗計數(shù)累加;當(dāng)與所述目標(biāo)接口對應(yīng)的臨時key列表中未存儲有匹配到的臨時key時,在所述臨時key列表中添加匹配到的臨時key,所述臨時列表中的其他臨時key認(rèn)證失敗計數(shù)累加; 所述根據(jù)所述認(rèn)證計數(shù),從臨時key列表所存儲的臨時key中確定目標(biāo)key,包括: 當(dāng)所述臨時key列表中所存儲的臨時key的認(rèn)證成功計數(shù)大于第一閾值時,將該臨時key確定為目標(biāo)key,并刪除所述臨時key列表中的其他臨時key ; 當(dāng)所述臨時key列表中所存儲的臨時key的認(rèn)證失敗計數(shù)大于第二閾值時,從所述臨時key列表中刪除該認(rèn)證失敗計數(shù)大于第二閾值的臨時key。5.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述臨時key列表還包括老化時間; 所述方法還包括: 當(dāng)與所述目標(biāo)接口對應(yīng)的臨時key列表中存儲有匹配到的臨時key時,更新匹配到的臨時key的老化時間; 當(dāng)所述目標(biāo)報文通過認(rèn)證時,更新匹配到的目標(biāo)key的老化時間; 當(dāng)所述臨時key列表中所存儲的臨時key或目標(biāo)key到達(dá)老化時間時,則刪除所對應(yīng)的臨時key或目標(biāo)key。6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 在完成基于NTP的系統(tǒng)時鐘同步后,根據(jù)系統(tǒng)時鐘選取key對進(jìn)行目標(biāo)報文的認(rèn)證。7.一種認(rèn)證裝置,其特征在于,所述裝置包括: 接收單元,用于接收目標(biāo)報文; 認(rèn)證單元,用于當(dāng)未完成基于網(wǎng)絡(luò)時間協(xié)議NTP的系統(tǒng)時鐘同步時,根據(jù)所述目標(biāo)報文從加密規(guī)則集合keychain中確定目標(biāo)加密規(guī)則key,并通過所述目標(biāo)key對所述目標(biāo)報文進(jìn)行認(rèn)證,其中,所述key chain為由多個key構(gòu)成的集合。8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述認(rèn)證單元,包括: 判斷模塊,用于判斷接收所述目標(biāo)報文的目標(biāo)接口是否存在目標(biāo)key; 認(rèn)證模塊,用于在所述判斷模塊的判斷結(jié)果為是的情況下,通過所述目標(biāo)key對所述目標(biāo)報文進(jìn)行認(rèn)證; 確定模塊,用于在所述判斷模塊的判斷結(jié)果為否的情況下,根據(jù)所述目標(biāo)報文從key chain中確定目標(biāo)key。9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述確定模塊,包括: 匹配子模塊,用于根據(jù)所述目標(biāo)報文所攜帶的認(rèn)證字段從keychain中匹配臨時key; 更新子模塊,用于根據(jù)匹配到的臨時key,更新與所述目標(biāo)接口對應(yīng)的臨時key列表中認(rèn)證計數(shù); 確定子模塊,用于根據(jù)所述認(rèn)證計數(shù),從臨時key列表所存儲的臨時key中確定目標(biāo)key。10.根據(jù)權(quán)利要求9所述的裝置,其特征在于, 所述更新子模塊,具體用于當(dāng)與所述目標(biāo)接口對應(yīng)的臨時key列表中存儲有匹配到的臨時key時,所述匹配到的臨時key所對應(yīng)的認(rèn)證成功計數(shù)累加,所述臨時key列表中的其他臨時key認(rèn)證失敗計數(shù)累加;當(dāng)與所述目標(biāo)接口對應(yīng)的臨時key列表中未存儲有匹配到的臨時key時,在所述臨時key列表中添加匹配到的臨時key,所述臨時列表中的其他臨時key認(rèn)證失敗計數(shù)累加; 所述確定子模塊,具體用于當(dāng)所述臨時key列表中所存儲的臨時key的認(rèn)證成功計數(shù)大于第一閾值時,將該臨時key確定為目標(biāo)key,并刪除所述臨時key列表中的其他臨時key;當(dāng)所述臨時key列表中所存儲的臨時key的認(rèn)證失敗計數(shù)大于第二閾值時,從所述臨時key列表中刪除該認(rèn)證失敗計數(shù)大于第二閾值的臨時key。11.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述臨時key列表還包括老化時間; 所述裝置還包括: 老化單元,用于當(dāng)與所述目標(biāo)接口對應(yīng)的臨時key列表中存儲有匹配到的臨時key時,更新匹配到的臨時key的老化時間;當(dāng)所述目標(biāo)報文通過認(rèn)證時,更新匹配到的目標(biāo)key的老化時間;當(dāng)所述臨時key列表中所存儲的臨時key或目標(biāo)key到達(dá)老化時間時,則刪除所對應(yīng)的臨時key或目標(biāo)key。12.根據(jù)權(quán)利要求7所述的裝置,其特征在于, 所述認(rèn)證單元,還用于在完成基于NTP的系統(tǒng)時鐘同步后,根據(jù)系統(tǒng)時鐘選取key進(jìn)行目標(biāo)報文的認(rèn)證。
【文檔編號】H04L29/06GK106059700SQ201610551344
【公開日】2016年10月26日
【申請日】2016年7月11日
【發(fā)明人】徐偉
【申請人】杭州華三通信技術(shù)有限公司