一種對經(jīng)過nat穿越的ipsec報文進行ah認證的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息系統(tǒng)及網(wǎng)絡(luò)安全領(lǐng)域,具體來說,就是在信息承載網(wǎng)絡(luò)上確保合法用戶才可以訪問被授權(quán)的資源,同時保護正常服務(wù)以防被外部攻擊。
【背景技術(shù)】
[0002]在國際互聯(lián)網(wǎng)(Internetwork, Internet)發(fā)展初期,由于規(guī)模較小且相對私有,設(shè)計時并未考慮完善的安全保護手段。隨著Internet爆炸性增長,公共網(wǎng)絡(luò)上出現(xiàn)大量不可靠用戶,而絕大部分通訊流量卻要經(jīng)過這些不安全的公共網(wǎng)絡(luò),所以根本無法保證在網(wǎng)絡(luò)上發(fā)送和接受數(shù)據(jù)是安全可靠的。為了彌補網(wǎng)絡(luò)安全性缺失,同時不需要關(guān)注高層協(xié)議而具備通用性,Internet社區(qū)設(shè)計了一種在網(wǎng)絡(luò)互連協(xié)議(Internet Protocol, IP)層提供安全性的協(xié)議,這個協(xié)議被稱作IP Security,縮寫為IPSEC。
[0003]所述IPSEC的安全特性主要有:
[0004]I數(shù)據(jù)私密性,通過三重數(shù)據(jù)加密算法(Triple Data Encrypt1n Algorithm,3DES)、高級加密算法(Advanced Encrypt1n Algorithm,AES)等加密算法對數(shù)據(jù)進行加解密,保證數(shù)據(jù)包在傳輸過程中,即使被截取,信息也無法被破解讀?。?br>[0005]2數(shù)據(jù)完整性,通過消息摘要算法第五版(Message Digest Algorithm,MD5)、安全散列算法(Secure Hash Algorithm, SHA)等算法對數(shù)據(jù)進行驗證,防止傳輸過程中數(shù)據(jù)被第三方篡改;
[0006]3數(shù)據(jù)抗重放性,通過序列號防止數(shù)據(jù)被截取后,通過大量復制重新傳送給目的端;
[0007]4不可否認性,發(fā)送方通過私鑰生成一個數(shù)字簽名并和數(shù)據(jù)一起發(fā)送,接收方可以通過公鑰驗證數(shù)字簽名。在理論上私鑰只有發(fā)送方擁有,所以可以通過數(shù)字簽名來防止發(fā)送方否認曾發(fā)送該消息。
[0008]所述IPSEC的關(guān)鍵概念主要有:
[0009]I安全關(guān)聯(lián)(Security Associat1ns, SA),為安全傳輸創(chuàng)建的一個單向邏輯通道,所有經(jīng)過同一個SA的數(shù)據(jù)會得到相同的安全服務(wù)。雙向數(shù)據(jù)需要通信實體之間維護一對SA0
[0010]2 安全關(guān)聯(lián)數(shù)據(jù)庫(Security Associat1ns Database, SAD),用于存放與 SA 關(guān)聯(lián)的所有狀態(tài)數(shù)據(jù)結(jié)構(gòu);
[0011]3安全策略數(shù)據(jù)庫(Security Policy Database, SF1D),用于存放數(shù)據(jù)報文應(yīng)用的安全服務(wù)以及獲取安全服務(wù)的方式;
[0012]4安全參數(shù)索引(Security Parameters Index, SPI), 一個隨認證頭/封裝安全載荷(IP Authenticat1n Header/Encapsulate Secure Payload, AH/ESP)頭傳送的 32bit數(shù)值,用于接收端識別數(shù)據(jù)和SA的綁定關(guān)系。
[0013]IPSEC并非一個單獨的協(xié)議,而是一系列協(xié)議和服務(wù)的集合。這些服務(wù)和集合一起來提供不同類型的安全保護。
[0014]IPSEC協(xié)議主要有:
[0015]IAH:為IP報文提供數(shù)據(jù)完整性、數(shù)據(jù)源認證和抗重發(fā)攻擊,但不為數(shù)據(jù)提供機密性,適合傳輸非機密性數(shù)據(jù)。其工作原理是發(fā)送方通過HMAC-MD5 (以任意長度的比特串和密鑰作為輸入,輸出128位的完整性校驗值)或HMAC-SHA1算法(以任意長度的比特串和密鑰作為輸入,輸出160位的完整性校驗值)應(yīng)用到報文數(shù)據(jù)內(nèi)容生成認證數(shù)據(jù),并將其附在報文中發(fā)送;接收方收到帶有認證數(shù)據(jù)的報文后,執(zhí)行同樣的算法并和發(fā)送方的認證數(shù)據(jù)進行比較,如果傳輸過程中對數(shù)據(jù)的任何修改都可能導致比較失敗,這樣既可提供數(shù)據(jù)完整性保護。
[0016]AH會為每個數(shù)據(jù)報文添加一個身份驗證頭,格式為
[0017]Next Header:8bit,描述AH認證頭下一個載荷的類型;
[0018]Payload Length:8bit, AH認證頭長度,以4字節(jié)為單位減2 ;
[0019]Reserved: 16bit,保留字段,留于后續(xù)擴展;
[0020]SP1: 32bit,接收方將根據(jù)SPI查找對應(yīng)SA ;
[0021]Sequence Number: 32bit,單增序列號,唯一標識每個數(shù)據(jù)報文,提供抗重放攻擊;
[0022]Authenica1n Data:通常 96bit,完整性認證值。
[0023]2ESP:為IP報文提供機密性、數(shù)據(jù)完整性和抗重放攻擊。其工作原理是發(fā)送方通過DES、3DES和AES等算法對數(shù)據(jù)報文有效負載進行加密處理以避免其他用戶通過監(jiān)聽來獲取數(shù)據(jù)報文的內(nèi)容,接收方使用相同的密鑰對報文進行解密處理以恢復明文。ESP也提供數(shù)據(jù)完整性保護,但并不認證IP頭。ESP會為每個數(shù)據(jù)報文添加一個ESP報文頭和報文尾。
[0024]ESP報文頭格式為
[0025]SP1: 32bit,接收方將根據(jù)SPI查找對應(yīng)SA ;
[0026]Sequence Number: 32bit,單增序列號,唯一標識每個數(shù)據(jù)報文,提供抗重放攻擊;
[0027]IV:長度不定,某些加密算法需要使用IV,esp對IV進行驗證但不加密;
[0028]ESP報尾格式為
[0029]Padding:0-255 字節(jié),填充字段;
[0030]Padding Length:填充項長度,接收端根據(jù)該字段去除填充項;
[0031]Next Header:8bit,描述ESP頭下一個載荷的類型;
[0032]AH和ESP都實現(xiàn)隧道模式和傳輸模式以支持不同的應(yīng)用場景。
[0033]3Internet 密鑰交換協(xié)議(Internet Key Exchange, IKE):為 Internet 上任何需要進行加密和認證的協(xié)議提供算法和密鑰協(xié)商服務(wù)。它將交換過程分成兩個階段,第一個階段建立IKE自身的安全聯(lián)盟,協(xié)商加密、認證算法和密鑰;第二個階段為IPSEC協(xié)商算法和密鑰。
[0034]由于AH模式主要是用于保護報文內(nèi)容的完整性,認證的范圍是整個IP報文,對于報頭中參與認證字段的修改都會導致AH認證失敗,而網(wǎng)絡(luò)地址轉(zhuǎn)換(Network AddressTranslat1n, NAT)是通過修改報頭中的IP地址和端口號來解決公網(wǎng)地址不足的問題。因此報文經(jīng)過AH認證后再穿越NAT將會導致接收端認證失敗。
[0035]現(xiàn)有技術(shù)介紹了一種IPSEC在AH模式下實現(xiàn)NAT穿越的方法,可以解決AH模式和NAT穿越的共存問題,但存在以下不足:
[0036]I要求NAT設(shè)備必須能感知IPSEC報文,這會進一步增加NAT設(shè)備的處理壓力;
[0037]2需要升級現(xiàn)網(wǎng)中NAT設(shè)備以支持IPSEC報文,這將增大現(xiàn)網(wǎng)運營商的升級成本。
【發(fā)明內(nèi)容】
[0038]本發(fā)明的目的在于提供一種對經(jīng)過NAT穿越的IPSEC報文進行AH認證的方法及裝置,能更好地解決AH模式和NAT穿越共存時避免中間NAT設(shè)備感知IPSEC報文的問題,使IPSET報文在AH模式下實現(xiàn)NAT穿越。
[0039]根據(jù)本發(fā)明的一個方面,提供了一種對經(jīng)過NAT穿越的IPSEC報文進行AH認證的方法,包括:
[0040]接收端接收來自發(fā)送端的IKE第二階段協(xié)商報文;
[0041]從所述IKE第二階段協(xié)商報文的載荷中提取原始IP地址和端口號作為第一 IP地址和端口號、從所述IKE第二階段協(xié)商報文的報文頭中提取IP地址和端口號作為第二 IP地址和端口號;
[0042]根據(jù)所述第一 IP地址和端口號、第二 IP地址和端口號,建立NAT轉(zhuǎn)換表;
[0043]利用所述NAT轉(zhuǎn)換表,對收到的IPSEC報文進行AH認證。
[0044]優(yōu)選地,在所述的接收端接收來自發(fā)送端的IKE協(xié)商報文的步驟之前