本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種BMP報文認證的方法及裝置。
背景技術(shù):
BGP監(jiān)控協(xié)議(BGP Monitoring Protocol,以下簡稱BMP;其中BGP為邊界網(wǎng)關(guān)協(xié)議,Border Gateway Protocol)的相關(guān)規(guī)定定義了BMP鄰居建鏈以及報文交互處理的方法,但對于設(shè)備間報文交互過程中,如何判斷接收到報文是否被篡改或者偽造沒有說明,使BMP的通信安全存在一定的隱患。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例所要解決的技術(shù)問題在于提供一種BMP報文認證的方法及裝置,能夠使接收端有效的識別出接收到的BMP報文是否已被篡改或偽造,保證BMP的通信安全。
為了解決上述技術(shù)問題,本發(fā)明采用如下技術(shù)方案:
依據(jù)本發(fā)明實施例的一個方面提供了一種BMP報文認證的方法,應(yīng)用于發(fā)送端,包括:
根據(jù)發(fā)送端預先配置的第一校驗算法、第一密鑰以及待發(fā)送的且封裝有BMP數(shù)據(jù)信息的第一報文,確定一唯一的第一校驗信息;
將所述第一校驗信息存儲在所述第一報文中,并發(fā)送所述第一報文至接收端,由所述接收端根據(jù)第二校驗算法和第二密鑰對接收到的所述第一報文進行校驗,其中所述第二校驗算法與所述第一校驗算法為相同算法,所述第二密鑰和所述第一密鑰為相同密鑰。
進一步的,所述第一報文為傳輸報文。
進一步的,所述根據(jù)發(fā)送端預先配置的第一校驗算法、第一密鑰以及待發(fā)送的且封裝有BMP數(shù)據(jù)信息的第一報文,確定一唯一的第一校驗信息,具體 為:
根據(jù)所述第一校驗算法對所述第一密鑰和所述第一報文的所有字段進行邏輯計算,獲得所述第一校驗信息。
依據(jù)本發(fā)明實施例的另一個方面,提供了一種BMP報文認證的方法,應(yīng)用于接收端,包括:
接收封裝有BMP數(shù)據(jù)信息且包含第一校驗信息的第一報文,其中,所述第一校驗信息為發(fā)送端根據(jù)預先配置的第一校驗算法、第一密鑰和所述第一報文確定得到的;
根據(jù)接收端預先配置的第二校驗算法、第二密鑰和接收到所述第一報文,確定一唯一的第二校驗信息,其中,所述第二校驗算法與所述第一校驗算法為相同算法,所述第二密鑰與所述第一密鑰為相同密鑰;
若所述第二校驗信息與所述第一校驗信息相同,認證結(jié)果為所述第一報文未被篡改或偽造,封裝有所述BMP數(shù)據(jù)信息的第一報文認證通過;
若所述第二校驗信息與所述第一校驗信息不同,認證結(jié)果為所述第一報文被篡改或偽造,并直接丟棄所述第一報文。
進一步的,所述第一報文為傳輸報文。
進一步的,所述根據(jù)接收端預先配置的第二校驗算法、第二密鑰和接收到的所述第一報文,確定一唯一的第二校驗信息,具體為:
根據(jù)所述第二校驗算法對所述第二密鑰和所述第一報文中除所述第一校驗信息外的所有字段進行邏輯計算,獲得所述第二校驗信息。
依據(jù)本發(fā)明實施例的另一個方面,提供了一種BMP報文認證的裝置,應(yīng)用于發(fā)送端,包括:
第一確定模塊,用于根據(jù)發(fā)送端預先配置的第一校驗算法、第一密鑰以及待發(fā)送的且封裝有BMP數(shù)據(jù)信息的第一報文,確定一唯一的第一校驗信息;
存儲/發(fā)送模塊,用于將所述第一校驗信息存儲在所述第一報文中,并發(fā)送所述第一報文至接收端,由所述接收端根據(jù)第二校驗算法和第二密鑰對接收到的所述第一報文進行校驗,其中所述第二校驗算法與所述第一校驗算法為相同算法,所述第二密鑰和所述第一密鑰為相同密鑰。
進一步的,所述第一報文為傳輸報文。
進一步的,所述第一確定模塊具體用于根據(jù)所述第一校驗算法對所述第一密鑰和所述第一報文的所有字段進行邏輯計算,獲得所述第一校驗信息。
依據(jù)本發(fā)明實施例的另一個方面,提供了一種BMP報文認證的裝置,應(yīng)用于接收端,包括:
接收模塊,用于接收封裝有BMP數(shù)據(jù)信息且包含第一校驗信息的第一報文,其中,所述第一校驗信息為發(fā)送端根據(jù)預先配置的第一校驗算法、第一密鑰和所述第一報文確定得到的;
第二確定模塊,用于根據(jù)接收端預先配置的第二校驗算法、第二密鑰和接收到所述第一報文,確定一唯一的第二校驗信息,其中,所述第二校驗算法與所述第一校驗算法為相同算法,所述第二密鑰與所述第一密鑰為相同密鑰;
第一認證模塊,用于當所述第二校驗信息與所述第一校驗信息相同時,判定所述第一報文未被篡改或偽造,使封裝有所述BMP數(shù)據(jù)信息的第一報文通過認證;
第二認證模塊,用于當所述第二校驗信息與所述第一校驗信息不同時,判定所述第一報文被篡改或偽造,并直接丟棄所述第一報文。
進一步的,所述第一報文為傳輸報文。
進一步的,所述第二確定模塊具體用于根據(jù)所述第二校驗算法對所述第二密鑰和所述第一報文中除所述第一校驗信息外的所有字段進行邏輯計算,獲得所述第二校驗信息。
本發(fā)明的有益效果是:本發(fā)明實施例提供的BMP報文認證的方法通過在BMP會話的兩端使用安全認證,即在發(fā)送端根據(jù)預先配置的校驗算法、密鑰和封裝有BMP數(shù)據(jù)信息的第一報文得到第一校驗信息,在接收端根據(jù)相同的校驗算法、密鑰和封裝有BMP數(shù)據(jù)信息的第一報文得到第二校驗信息,若第一校驗信息與第二校驗信息不相同,則判定封裝有BMP數(shù)據(jù)信息的報文被篡改或偽造,進而認為該報文中的BMP數(shù)據(jù)信息(即BMP報文)被篡改,直接丟棄封裝有BMP數(shù)據(jù)信息的第一報文;若第一校驗信息與第二校驗信息相同,則認證通過。通過上述認證方法,能夠使接收端有效的識別出接收到的BMP報文是否已被篡改或偽造,保證BMP的通信安全。
附圖說明
圖1表示本發(fā)明實施例提供的應(yīng)用于發(fā)送端的BMP報文認證的方法流程圖;
圖2表示本發(fā)明實施例提供的應(yīng)用于接收端的BMP報文認證的方法流程圖;
圖3表示本發(fā)明實施例提供的應(yīng)用于發(fā)送端的BMP報文認證的裝置框圖;
圖4表示本發(fā)明實施例提供的應(yīng)用于接收端的BMP報文認證的裝置框圖。
圖5表示本發(fā)明實施例提供的BMP報文認證的方法示例性流程圖。
具體實施方式
下面將參照附圖更詳細地描述本發(fā)明的示例性實施例。雖然附圖中顯示了本發(fā)明的示例性實施例,然而應(yīng)當理解,可以以各種形式實現(xiàn)本發(fā)明而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本發(fā)明,并且能夠?qū)⒈景l(fā)明的范圍完整的傳達給本領(lǐng)域的技術(shù)人員。
依據(jù)本發(fā)明實施例的一個方面,提供了一種BMP報文認證的方法,應(yīng)用于發(fā)送端,如圖1所示,所述方法包括:
S101、根據(jù)發(fā)送端預先配置的第一校驗算法、第一密鑰以及待發(fā)送的且封裝有BMP數(shù)據(jù)信息的第一報文,確定一唯一的第一校驗信息。
S102、將所述第一校驗信息存儲在所述第一報文中,并發(fā)送所述第一報文至接收端,由所述接收端根據(jù)第二校驗算法和第二密鑰對接收到的所述第一報文進行校驗,其中所述第二校驗算法與所述第一校驗算法為相同算法,所述第二密鑰和所述第一密鑰為相同密鑰。
本發(fā)明實施例提供的BMP報文認證的方法通過在BMP會話的兩端使用安全認證,即在發(fā)送端根據(jù)預先配置的第一校驗算法、第一密鑰以及待發(fā)送且封裝有BMP數(shù)據(jù)信息的第一報文(由BMP服務(wù)器下發(fā)BMP報文在傳輸過程中會被封裝成其他報文,即第一報文)得到第一校驗信息;在接收端接收到第一報文后,根據(jù)第二校驗算法、第二密鑰以及第一報文得到第二校驗信息,若第一校驗信息與第二校驗信息不相同,則判定第一報文被篡改或偽造,進而認為第一報文中的BMP數(shù)據(jù)信息(即BMP報文)被篡改,直接丟棄第一報文; 若第一校驗信息與第二校驗信息相同,則判定該第一報文未被篡改或偽造,進而認為封裝在該第一報文中的BMP數(shù)據(jù)信息未被篡改或偽造,則該第一報文認證通過,即BMP報文認證通過。通過上述認證方法,能夠使接收端有效的識別出接收到的BMP報文是否已被篡改或偽造,保證了BMP的通信安全。
其中,為保證發(fā)送端與接收端安全認證的一致性,在發(fā)送端和接收端要配置相同的校驗算法和密鑰,即所述第一校驗算法與所述第二校驗算法為相同算法,所述第一密鑰和所述第二密鑰為相同密鑰。所述第一校驗算法和第二校驗算法可以采用現(xiàn)在計算機安全領(lǐng)域廣泛使用的MD5(Message Digest Algorithm,信息-摘要算法5)算法,使用MD5算法可以產(chǎn)生一唯一的信息摘要(即第一校驗信息和第二校驗信息),當然也可根據(jù)實際需要選擇其他校驗算法。
其中,在本發(fā)明實施例中,所述第一報文優(yōu)選為傳輸報文,而傳輸報文可以為采用TCP(Transmission Control Protocol)協(xié)議的TCP報文,也可為采用其他傳輸協(xié)議對應(yīng)的報文。因此,在發(fā)送端可根據(jù)第一校驗算法、第一密鑰以及待發(fā)送的且封裝有BMP數(shù)據(jù)信息的傳輸報文,確定第一校驗信息。
進一步的,所述步驟S101具體為:
根據(jù)所述第一校驗算法對所述第一密鑰和所述第一報文的所有字段進行邏輯計算,獲得所述第一校驗信息。
可將待發(fā)送的且封裝有BMP數(shù)據(jù)信息的第一報文看做一個文本信息,第一報文中的所有信息為一字符串,以該字符串和第一密鑰作為第一校驗算法的輸入,進行邏輯計算,得到一唯一的第一校驗信息。只要文本信息發(fā)生變化,再次計算得到的校驗信息就會與第一校驗信息不同,從而判斷出第一報文已被篡改或偽造。
在本發(fā)明實施實施例中,當所述第一報文為傳輸報文時,則以傳輸報文中的所有字段和第一密鑰作為第一校驗算法的輸入進行邏輯計算得到第一校驗信息,并存儲在該傳輸報文中,發(fā)送至接收端,由接收端根據(jù)所述第二校驗算法和第二密鑰對接收到的該傳輸報文進行校驗。
在本發(fā)明實施例中,可將第一校驗信息存儲在該第一報文的尾部,待接收端根據(jù)第二校驗算法校驗時,可根據(jù)該第一報文的原始長度進行計算,從而避免將第一校驗信息也作為輸入進行邏輯計算,導致校驗錯誤的發(fā)生。
依據(jù)本發(fā)明實施例的另一個方面,提供了一種BMP報文認證的裝置,應(yīng)用于發(fā)送端,如圖2所示,所述裝置包括:
第一確定模塊201,用于根據(jù)發(fā)送端預先配置的第一校驗算法、第一密鑰以及待發(fā)送的且封裝有BMP數(shù)據(jù)信息的第一報文,確定一唯一的第一校驗信息。
存儲/發(fā)送模塊202,用于將所述第一校驗信息存儲在所述第一報文中,并發(fā)送所述第一報文至接收端,由所述接收端根據(jù)第二校驗算法和第二密鑰對接收到的所述第一報文進行校驗,其中所述第二校驗算法與所述第一校驗算法為相同算法,所述第二密鑰和所述第一密鑰為相同密鑰。
進一步的,所述第一報文為傳輸報文。
進一步的,所述第一確定模塊201具體用于根據(jù)所述第二校驗算法對所述第二密鑰和所述第一報文中除所述第一校驗信息外的所有字段進行邏輯計算,獲得所述第二校驗信息。
需要說明的是,該裝置是與上述同樣應(yīng)用于發(fā)送端的BMP報文認證的方法對應(yīng)的裝置,上述方法實施例中所有實現(xiàn)方式均適用于該裝置的實施例中,也能達到相同的技術(shù)效果。
依據(jù)本發(fā)明實施例的另一個方面,提供了一種BMP報文認證的方法,應(yīng)用于接收端,如圖3所示,所述包括:
S301、接收封裝有BMP數(shù)據(jù)信息且包含第一校驗信息的第一報文,其中,所述第一校驗信息為發(fā)送端根據(jù)預先配置的第一校驗算法、第一密鑰和所述第一報文確定得到的。
S302、根據(jù)接收端預先配置的第二校驗算法、第二密鑰和接收到所述第一報文,確定一唯一的第二校驗信息,其中,所述第二校驗算法與所述第一校驗算法為相同算法,所述第二密鑰與所述第一密鑰為相同密鑰。
S303、若所述第二校驗信息與所述第一校驗信息相同,認證結(jié)果為所述第一報文未被篡改或偽造,封裝有所述BMP數(shù)據(jù)信息的第一報文認證通過。
S304、若所述第二校驗信息與所述第一校驗信息不同,認證結(jié)果為所述第一報文被篡改或偽造,并直接丟棄所述第一報文。
本發(fā)明實施例提供的BMP報文認證的方法通過在BMP會話的兩端使用 安全認證,即在發(fā)送端根據(jù)預先配置的第一校驗算法、第一密鑰以及待發(fā)送且封裝有BMP數(shù)據(jù)信息的第一報文(由BMP服務(wù)器下發(fā)BMP報文在傳輸過程中會被封裝成其他報文,即第一報文)得到第一校驗信息;在接收端接收到第一報文后,根據(jù)第二校驗算法、第二密鑰以及第一報文得到第二校驗信息,若第一校驗信息與第二校驗信息不相同,則判定第一報文被篡改或偽造,進而認為第一報文中的BMP數(shù)據(jù)信息(即BMP報文)被篡改,直接丟棄第一報文;若第一校驗信息與第二校驗信息相同,判定該第一報文未被篡改或偽造,進而認為封裝在該第一報文中的BMP數(shù)據(jù)信息未被篡改或偽造,則該第一報文認證通過,即BMP報文認證通過。通過上述認證方法,能夠使接收端有效的識別出接收到的BMP報文是否已被篡改或偽造,保證了BMP的通信安全。
其中,為保證發(fā)送端與接收端安全認證的一致性,在發(fā)送端和接收端要配置相同的校驗算法和密鑰,即所述第二校驗算法與所述第一校驗算法為相同算法,所述第二密鑰和所述第一密鑰為相同密鑰。所述第一校驗算法和第二校驗算法可以采用現(xiàn)在計算機安全領(lǐng)域廣泛使用的MD5(Message Digest Algorithm,信息-摘要算法5)算法,使用MD5算法可以產(chǎn)生一唯一的信息摘要(即第一校驗信息和第二校驗信息),當然也可根據(jù)實際需要選擇其他校驗算法。
其中,在本發(fā)明實施例中,所述第一報文優(yōu)選為傳輸報文,而傳輸報文可以為采用TCP(Transmission Control Protocol)協(xié)議的TCP報文,也可為采用其他傳輸協(xié)議對應(yīng)的報文。因此,在接收端可根據(jù)第一校驗算法、第一密鑰以及待發(fā)送的且封裝有BMP數(shù)據(jù)信息的傳輸報文,確定第一校驗信息。
進一步的,所述步驟S301具體為:
根據(jù)所述第二校驗算法對所述第二密鑰和所述第一報文中除所述第一校驗信息外的所有字段進行邏輯計算,獲得所述第二校驗信息。
可將接收到封裝有BMP數(shù)據(jù)信息且包含第一校驗信息的第一報文看做一個文本信息,第一報文中的所有信息為一字符串,以該字符串(除第一校驗信息外)和第二密鑰作為第二校驗算法的輸入,進行邏輯計算,得到第二校驗信息。
在本發(fā)明實施實施例中,當所述第一報文為傳輸報文時,則以傳輸報文中的所有字段(除第一校驗信息外)和第二密鑰作為第二校驗算法的輸入進行邏 輯計算得到第二校驗信息,并判斷所述第二校驗信息是否與第一校驗信息相同。若所述第二校驗信息與所述第一校驗信息相同,則判定該傳輸報文未被篡改或偽造,進行認為封裝在傳輸報文中的BMP數(shù)據(jù)信息未被篡改或偽造,該傳輸報文認證通過,即BMP報文認證通過;若所述第二校驗信息與所述第一校驗信息不同,則判斷該傳輸報文被篡改或偽造,進而認為封裝在傳輸報文中的BMP數(shù)據(jù)信息,直接丟棄該傳輸報文。
在本發(fā)明實施例中,可將第一校驗信息存儲在該傳輸報文的尾部,這樣接收端可根據(jù)該傳輸報文的原始長度進行計算,從而避免將第一校驗信息也作為輸入進行邏輯計算,導致校驗錯誤的發(fā)生。
依據(jù)本發(fā)明實施例的另一個方面,提供了一種BMP報文認證的裝置,應(yīng)用于接收端,如圖4所示,所述方法包括:
接收模塊401,用于接收封裝有BMP數(shù)據(jù)信息且包含第一校驗信息的第一報文,其中,所述第一校驗信息為發(fā)送端根據(jù)預先配置的第一校驗算法、第一密鑰和所述第一報文確定得到的。
第二確定模塊402,用于根據(jù)接收端預先配置的第二校驗算法、第二密鑰和接收到所述第一報文,確定一唯一的第二校驗信息,其中,所述第二校驗算法與所述第一校驗算法為相同算法,所述第二密鑰與所述第一密鑰為相同密鑰。
第一認證模塊403,用于當所述第二校驗信息與所述第一校驗信息相同時,判定所述第一報文未被篡改或偽造,使封裝有所述BMP數(shù)據(jù)信息的第一報文通過認證。
第二認證模塊404,用于當所述第二校驗信息與所述第一校驗信息不同時,判定所述第一報文被篡改或偽造,并直接丟棄所述第一報文。
進一步的,所述第一報文為傳輸報文。
進一步的,所述第二確定模塊402具體用于根據(jù)所述第二校驗算法對所述第二密鑰和所述第一報文中除所述第一校驗信息外的所有字段進行邏輯計算,獲得所述第二校驗信息。
需要說明的是,該裝置是與上述同樣應(yīng)用于接收端的BGP監(jiān)控協(xié)議報文認證的方法對應(yīng)的裝置,上述方法實施例中所有實現(xiàn)方式均適用于該裝置的實施例中,也能達到相同的技術(shù)效果。
為了進一步理解本發(fā)明實施例提供的BMP報文認證的方法,下面以一具體實施例為例加以說明。
在該具體實施例中,以MD5算法作為第一校驗算法和第二校驗算法、第一報文為TCP報文為例說明。
如圖5所示,在BMP會話兩端配置MD5認證機制,校驗BMP報文是否被篡或偽造。
S501、在BMP會話兩端都配置MD5認證機制。
S502、BMP把MD5的密鑰(對應(yīng)第一密鑰)發(fā)給TCP。
S503、TCP在發(fā)送BMP報文時,MD5算法把MD5的密鑰和封裝有BMP的報文的TCP報文作為輸入進行邏輯計算。
S504、將計算得出的結(jié)果A(對應(yīng)第一校驗信息)存放在TCP報文中。
S505、接收端的TCP將接收的報文按照步驟S503重新計算一次,得到結(jié)果B(對應(yīng)第二校驗信息),和結(jié)果A比較,來驗證TCP報文是否被篡改或者偽造,如果A和B不一致,就認為BMP報文被篡改或偽造,直接丟棄,這樣可以保證TCP連接的穩(wěn)定性,進而保證了BMP會話收到的報文也是正確的;如果沒有被篡改,就上傳給BMP。
綜上所述,在本發(fā)明實施例中可將交互的報文看成一個文本信息,通過不可逆的字符串變換算法,產(chǎn)生了一個唯一的校驗信息。在以后傳播這個文本的過程中,無論文本的內(nèi)容發(fā)生了任何形式的改變(包括人為修改或者下載過程中線路不穩(wěn)定引起的傳輸錯誤等),只要對這個文本重新計算時發(fā)現(xiàn)校驗信息與發(fā)送端的校驗信息不相同,就可以確定接收端接收到是一個不正確的文本,即認為BMP報文被篡權(quán),接收端就直接丟棄該報文,這樣能夠使接收端有效的識別出接收到的BMP報文是否已被篡改或偽造,保證了BMP的通信安全。
以上所述的是本發(fā)明的優(yōu)選實施方式,應(yīng)當指出對于本技術(shù)領(lǐng)域的普通人員來說,在不脫離本發(fā)明所述的原理前提下還可以作出若干改進和潤飾,這些改進和潤飾也在本發(fā)明的保護范圍內(nèi)。