IPSec協(xié)商分為兩個(gè)階段:第一階段協(xié)商對對方的身份進(jìn)行認(rèn)證,并且為第二階段的協(xié)商提供一條安全可靠的通道。第二階段主要對IPSEC的安全性能進(jìn)行協(xié)商,產(chǎn)生真正可以用來加密數(shù)據(jù)流的密鑰。
第一階段主模式(IKE SA 階段):
發(fā)送cockie包,用來標(biāo)識唯一的一個(gè)IPSEC會(huì)話。
IKE階段一(主模式):發(fā)送消息1 initiator====>responsor
isakmp header sa payload proposal payload transform payload 定義一組策略:
加密方法:DES 認(rèn)證身份方法:預(yù)共享密鑰 認(rèn)證散列:MD5 存活時(shí)間:86400秒 Diffie-Hellman group:1 IKE階段二(主模式):發(fā)送消息2 initiator<====responsor
同上 IKE階段三(主模式):發(fā)送消息3 initiator====>responsor
通過DH算法產(chǎn)生共享密鑰 KE(Key Exchang) Payload nonce(暫時(shí)) Payload DH算法:
A: P(較大的質(zhì)數(shù)) B: P(較大的質(zhì)數(shù)) G G PriA(隨機(jī)產(chǎn)生) PriB(隨機(jī)產(chǎn)生) PubA=G^PriA mod P PubB=G^PriB mod P 交換PubA和PubB Z=PubB^PriA mod P Z=PubA^PriB mod P Z就是共享密鑰,兩個(gè)自我產(chǎn)生的Z應(yīng)相同,它是用來產(chǎn)生3個(gè)SKEYID的素材。 IKE階段四(主模式):發(fā)送消息4 initiator<====responsor
同上 主模式第3、4條消息其實(shí)就是DH算法中需要交換的幾個(gè)參數(shù),然后路由器再通過DH算法計(jì)算出的公共密鑰計(jì)算出以下3個(gè)參數(shù)(這是在發(fā)送第5、6個(gè)消息前完成的): SKEYID_d:留在在第二階段用,用來計(jì)算后續(xù)的IKE密鑰資源; SKEYID_a:散列預(yù)共享密鑰,提供IKE數(shù)據(jù)完整性和認(rèn)證; SKEYID_e:用來加密下一階段的message,data, preshared key,包括第二階段。 IKE階段五(主模式):發(fā)送消息5 initiator====>responsor
Identity Payload:用于身份標(biāo)識 Hash Payload:用來認(rèn)證 以上2個(gè)負(fù)載都用SKEYID_e加密 IKE階段六(主模式):發(fā)送消息6 initiator<====responsor
同上 消息5、6是用來驗(yàn)證對等體身份的。至此IKE協(xié)商第一階段完成。 第二階段快速模式(IPSec SA 階段):
首先判斷是否啟用了PFS(完美轉(zhuǎn)發(fā)安全),若啟用了則重新進(jìn)行DH算法產(chǎn)生密鑰,若沒有啟用則是用第一階段的密鑰。
IPSec階段一(快速模式):發(fā)送消息1 initiator====>responsor
同樣定義一組策略,繼續(xù)用SKEYID_e加密:
Encapsulation— ESP
Integrity checking— SHA-HMAC
DH group— 2
Mode— Tunnel
IPSec階段二(快速模式):發(fā)送消息2 initiator<====responsor
同上,主要是對消息1策略的一個(gè)確認(rèn)。
在發(fā)送消息3前,用SKEYID_d,DH共享密鑰,SPI等產(chǎn)生真正用來加密數(shù)據(jù)的密鑰。
IPSec階段三(快速模式):發(fā)送消息3 initiator====>responsor
用來核實(shí)responsor的liveness。
至此,整個(gè)IPSec協(xié)商的兩個(gè)過程已經(jīng)完成,兩端可以進(jìn)行安全的數(shù)據(jù)傳輸 總結(jié)如下: 9個(gè)包的來回,前6個(gè)為主模式,后3個(gè)為快速模式. 相關(guān)參數(shù)---相關(guān)參數(shù)----DH算法----DH算法(產(chǎn)生3個(gè)SKEYID的素材)-----身份認(rèn)證-----身份認(rèn)證-----組策略-------組策略確認(rèn)------核實(shí)responsor的liveness 因特網(wǎng)密鑰交換協(xié)議(IKE)是一份符合因特網(wǎng)協(xié)議安全(IPSec)標(biāo)準(zhǔn)的協(xié)議。它常用來確保虛擬專用網(wǎng)絡(luò)VPN(virtual private network)與遠(yuǎn)端網(wǎng)絡(luò)或者宿主機(jī)進(jìn)行交流時(shí)的安全。對于兩個(gè)或更多實(shí)體間的交流來說,安全協(xié)會(huì)(SA)扮演者安全警察的作用。每個(gè)實(shí)體都通過一個(gè)密鑰表征自己的身份。因特網(wǎng)密鑰交換協(xié)議(IKE)保證安全協(xié)會(huì)(SA)內(nèi)的溝通是安全的?! ∫蛱鼐W(wǎng)密鑰交換協(xié)議(IKE)是結(jié)合了兩個(gè)早期的安全協(xié)議而生成的綜合性協(xié)議。它們是:Oakley協(xié)議和SKEME協(xié)議。因特網(wǎng)密鑰交換協(xié)議(IKE)是基于因特網(wǎng)安全連接和密鑰管理協(xié)議ISAKMP(Internet Security Association and Key Management Protocol)中TCP/IP框架的協(xié)議。因特網(wǎng)安全連接和密鑰管理協(xié)議ISAKMP包含獨(dú)特的密鑰交換和鑒定部分。Oakley協(xié)議中指定了密鑰交換的順序,并清楚地描述了提供的服務(wù),比如區(qū)別保護(hù)行為和鑒定行為。SKEME協(xié)議說明了密鑰交換的具體方法。盡管沒有要求因特網(wǎng)密鑰交換協(xié)議(IKE)符合因特網(wǎng)協(xié)議安全(IPSec)的內(nèi)容,但是因特網(wǎng)密鑰交換協(xié)議(IKE)內(nèi)的自動(dòng)實(shí)現(xiàn)協(xié)商和鑒定、否則重發(fā)服務(wù)(請參考否則重發(fā)協(xié)議)、憑證管理CA(Certification Authority)支持系統(tǒng)和改變密碼生成方法等內(nèi)容均得益于因特網(wǎng)協(xié)議安全(IPSec)。 ESP、AH用來對IP報(bào)文進(jìn)行封裝、加/解密、驗(yàn)證以達(dá)到保護(hù)IP報(bào)文的目的,而IKE和ISAKMP/Oakley/SKEME則是通信雙方用來協(xié)商封裝形式、加/解密算法及其密鑰、密鑰的生命期、驗(yàn)證算法的。 ISAKMP/Oakley/SKEME是為IKE的協(xié)商提供服務(wù)的,它提供了實(shí)現(xiàn)IKE的框架、密鑰交換模式和方法、密鑰的更新方法。ISAKMP是“Internet安全關(guān)聯(lián)和密鑰管理協(xié)議”的簡稱,即Internet Security Associationand Key Management Protocol。ISAKMP對驗(yàn)證和密鑰交換提出了結(jié)構(gòu)框架,但沒有具體定義。ISAKMP被設(shè)計(jì)用來獨(dú)立的進(jìn)行密鑰交換,即被設(shè)計(jì)用于支持多種不同的密鑰交換。Oakley描述了一系列被稱為“模式”的密鑰交換,并詳述了每一種提供的服務(wù)。SKEME描述了一種提供匿名,否認(rèn),和快速密鑰更新的通用密鑰交換技術(shù)。IKE是使用部分Oakley,部分SKEME,并結(jié)合ISAKMP的一種協(xié)議,它使用ISAKMP來得到已驗(yàn)證的用于生成密鑰和其它安全聯(lián)盟(如AH,ESP)中用于IETE IPsec DOI的材料。IKE協(xié)議是Oakley和SKEME協(xié)議的一種混合,并在由ISAKMP規(guī)定的一個(gè)框架內(nèi)運(yùn)作。Oakley和SKEME定義了通信雙方建立一個(gè)共享的驗(yàn)證密鑰所必須采取的步驟。IKE利用ISAKMP語言對這些步驟以及其它信息交換措施進(jìn)行表述。 IKE的用途就是在IPSec通信雙方之間,建立起共享安全參數(shù)及驗(yàn)證過的密鑰,亦即建立“安全關(guān)聯(lián)”關(guān)系。 圖12.9 IKE的用途 IKE是一種常規(guī)用途的安全交換協(xié)議,可用于策略的磋商,以及驗(yàn)證加密材料的建立,適用于多方面的需求椚?/FONT>SNMPv3、OSPFv2等等。IKE采用的規(guī)范是在“解釋域(DomainofInterpretation,DOI)”中制訂的。針對IPSec存在著一個(gè)名為RFC2407的解釋域,它定義了IKE具體如何與IPSecSA進(jìn)行協(xié)商。如果其它協(xié)議要用到IKE,每種協(xié)議都要定義各自的DOI。為正確實(shí)施IKE,需遵守三份文件(文檔)的規(guī)定,它們分別是:基本ISAKMP規(guī)范(RFC2408)、IPSec解釋域(RFC2407)、IKE規(guī)范本身(RFC2409)。 IKE主要完成兩個(gè)作用:安全關(guān)聯(lián)的集中化管理,減少連接時(shí)間、密鑰的生成和管理。 Oakley和SKEME各自定義了建立經(jīng)過驗(yàn)證的密鑰交換的方法。其中包括負(fù)載的構(gòu)建,信息負(fù)載的運(yùn)送,它們被處理的順序以及被使用的方法。Oakley定義了“模式”,ISAKMP定義了“階段”。兩者之間的關(guān)系非常直接,IKE描述了在兩個(gè)階段中進(jìn)行的不同的、稱為模式的交換。 IKE建立SA分兩個(gè)階段。第一階段,協(xié)商創(chuàng)建一個(gè)通信信道(IKE SA),并對該信道進(jìn)行認(rèn)證,為雙方進(jìn)一步的IKE通信提供機(jī)密性、數(shù)據(jù)完整性以及數(shù)據(jù)源認(rèn)證服務(wù),IKE定義了兩個(gè)第一階段的協(xié)商(Main Mode-主模式和Aggressive Mode-積極模式) 第一階段協(xié)商(主模式協(xié)商)步驟: 主模式交換提供了身份保護(hù)機(jī)制,經(jīng)過三個(gè)步驟,六個(gè)消息,頭兩個(gè)消息協(xié)商策略;下兩個(gè)消息交換Diffie-Hellman的公共值和必要的輔助數(shù)據(jù);最后的兩個(gè)消息驗(yàn)證Diffie-Hellman交換。 圖12.10 使用簽名驗(yàn)證的主模式 策略協(xié)商交換。IKE以“保護(hù)組(Protectionsuite)”的形式來定義策略。每個(gè)保護(hù)組都至少需要定義采用的加密算法(選擇DES或3DES)、散列算法(選擇MD5或SHA)、Diffie-Hellman組以及驗(yàn)證方法(數(shù)字簽名,公共密鑰加密的兩種驗(yàn)證,或者共享密鑰認(rèn)證)。IKE的策略數(shù)據(jù)庫則列出了所有保護(hù)組(按各個(gè)參數(shù)的順序)。由于通信雙方?jīng)Q定了一個(gè)特定的策略組后,它們以后的通信便必須根據(jù)它進(jìn)行,所以這種形式的協(xié)商是兩個(gè)IKE通信實(shí)體第一步所需要做的。 Diffie Hellman共享值、nonce交換交換。雖然名為密鑰交換,但事實(shí)上交換的只是一些DH算法生成共享密鑰所需要的基本材料信息。在彼此交換過密鑰生成材料后,兩端主機(jī)可以各自生成出完全一樣的共享“主密鑰”,保護(hù)緊接其后的認(rèn)證過程。Diffie-Hellman交換以及一個(gè)共享秘密的建立是IKE協(xié)議的第二步。 身份驗(yàn)證交換。IKE交換的下一個(gè)步驟便是對Diffie-Hellman共享秘密進(jìn)行驗(yàn)證,同時(shí)還要對IKESA本身進(jìn)行驗(yàn)證。DH交換需要得到進(jìn)一步認(rèn)證,如果認(rèn)證不成功,通信將無法繼續(xù)下去?!爸髅荑€”結(jié)合在第一步中確定的協(xié)商算法,對通信實(shí)體和通信信道進(jìn)行認(rèn)證。在這一步中,整個(gè)待認(rèn)證的實(shí)體載荷,包括實(shí)體類型、端口號和協(xié)議,均由前一步生成的“主密鑰”提供機(jī)密性和完整性保證。一或多個(gè)證書負(fù)載在傳遞中是可選的。 在野蠻模式下,總共三個(gè)信息被交換。第一個(gè)信息由SA、nonce和身份組成。第二個(gè)信息是,在驗(yàn)證發(fā)起方并接受SA后,應(yīng)答方發(fā)送nonce 和身份信息給發(fā)起方。第三個(gè)信息是,發(fā)起方驗(yàn)證應(yīng)答方的身份以及進(jìn)行被提議的信息的交換。 圖12.11 帶簽名的野蠻模式 在Aggressive模式下,兩個(gè)在第一次交換發(fā)送的身份信息是沒有加密的。Aggressive 模式的優(yōu)點(diǎn)是信息交換快速,但加密被節(jié)省了。 第二階段建立SA(快速模式)。 這一階段協(xié)商建立IPsec SA,為數(shù)據(jù)交換提供IPSec服務(wù)。第二階段協(xié)商消息受第一階段SA保護(hù),任何沒有第一階段SA保護(hù)的消息將被拒收。 快速模式本身并不是一次完整的交換(因?yàn)樗偷谝浑A段交換相關(guān)聯(lián)),但又作為SA協(xié)商過程(第二階段)的一部分用來衍生密鑰材料和協(xié)商非ISAKMP SA的共享策略??焖倌J浇粨Q的信息必須由ISAKMP SA來保護(hù)棗即除了ISAKMP報(bào)頭外,所有的負(fù)載都要加密。在快速模式中,HASH負(fù)載必須立即跟隨在ISAKMP報(bào)頭后,SA負(fù)載必須緊跟在HASH負(fù)載之后。HASH用于驗(yàn)證消息,同時(shí)也提供了參與的證據(jù)。 快速模式基本上是一次SA協(xié)商和提供重放保護(hù)的nonce交換。nonce用于產(chǎn)生新的密鑰材料并阻止通過重放攻擊產(chǎn)生虛假的安全聯(lián)盟??蛇x的密鑰交換(KE)負(fù)載可以經(jīng)交換來實(shí)現(xiàn)通過快速模式產(chǎn)生附加的Diffie-Hellman交換以及求冪運(yùn)算。但是必須支持使用快速模式的密鑰交換負(fù)載成為可選的。 第二階段協(xié)商(快速模式協(xié)商)步驟: 12.12 快速模式 快速模式交換通過三條消息建立IPsec SA:頭兩條消息協(xié)商IPsec SA的各項(xiàng)參數(shù)值,并生成IPsec 使用的密鑰。包括使用哪種IPSec協(xié)議(AH或ESP)、使用哪種hash算法(D5或SHA)、是否要求加密,若是,選擇加密算法(DES或3DES)。在上述三方面達(dá)成一致后,將建立起兩個(gè)SA,分別用于入站和出站通信。第二條消息還為響應(yīng)方提供在場的證據(jù);第三條消息為發(fā)起方提供在場的證據(jù)。 IKE階段1的目的是鑒別IPSec對等體,在對等體間設(shè)立安全通道,以便IKE交換信息。主要功能如下:鑒別和保護(hù)IPSec實(shí)體的身份;協(xié)商IKE SA;執(zhí)行D-H交換;建立安全通道以便協(xié)商IKE階段2的參數(shù)。 IKE階段1,IKE 在兩個(gè)IKE對等體間創(chuàng)建一個(gè)認(rèn)證過的安全通道,IKE SA。安全關(guān)聯(lián)(SA)是實(shí)體間的關(guān)系,它表示通信方如何使用安全服務(wù)進(jìn)行安全通信。IKE SA就是IKE之間如何使用安全服務(wù)進(jìn)行通信;IPSec SA就是IPSec實(shí)體間如何使用安全服務(wù)進(jìn)行通信。 IKE階段一存在兩種模式: 第三次交換 用于驗(yàn)證對方的身份。身份值是以加密的IPSec對等體的IP地址。 IKE SA為IKE指定下列參數(shù)值: 認(rèn)證方法{Pre-Share|RSA簽名|RSA加密} IKE階段2,協(xié)商IPSec SA,還要生產(chǎn)IPSec所需要的密鑰。發(fā)送端提供一個(gè)或多個(gè)變換集合(Transform sets),用于指定一個(gè)被允許的交換組合。IKE階段2 執(zhí)行以下功能:協(xié)商IPSec SA參數(shù),建立IPSec SA,周期性的重新協(xié)商IPSec SA,可選的執(zhí)行一次額外的D-H交換。IKE階段2只有一種模式,快捷模式(Quick Mode)??旖菽J絽f(xié)商一個(gè)共享的IPSec策略,獲得共享的、用于IPSec安全算法的密鑰材料,并建立IPSec SA??旖菽J揭灿迷贗PSec SA life time 過期之后重新協(xié)商一個(gè)新的IPSec SA。如果在IPSec策略里指定了完美向前保密(Perfect Forward Secrecy,PFS),在快捷模式中將執(zhí)行一次額外的D-H交換。 總的來說,IKE階段一就是協(xié)商各種IKE SA參數(shù),從而建立一個(gè)安全的通信通道以供IKE階段二來建立Ipsec隧道,他們只是協(xié)商確認(rèn)了一些參數(shù),但是并沒有具體的實(shí)施。 IKE階段2則是在IKE階段一的基礎(chǔ)上協(xié)商IPSEC SA 從而建立安全的IPSEC 隧道,這個(gè)時(shí)候開始實(shí)施具體的協(xié)議來實(shí)現(xiàn)IKE階段一協(xié)商的參數(shù),比如使用ESP或者AH協(xié)議來實(shí)現(xiàn)階段一的協(xié)商好的加密和認(rèn)證方法,而在階段一只是協(xié)商好要使用哪些參數(shù)來實(shí)現(xiàn)一個(gè)可靠安全的ipsec 隧道,但是沒有指定用哪些協(xié)議來實(shí)現(xiàn),二階段二就是真正實(shí)施階段 Internet密鑰交換(IKE) 兩臺IPSec計(jì)算機(jī)在交換數(shù)據(jù)之前,必須首先建立某種約定,這種約定,稱為"安全關(guān)聯(lián)",指雙方需要就如何保護(hù)信息、交換信息等公用的安全設(shè)置達(dá)成一致,更重要的是,必須有一種方法,使那兩臺計(jì)算機(jī)安全地交換一套密鑰,以便在它們的連接中使用。見圖七。 Internet 工程任務(wù)組IETF制定的安全關(guān)聯(lián)標(biāo)準(zhǔn)法和密鑰交換解決方案--IKE(Internet密鑰交換)負(fù)責(zé)這些任務(wù),它提供一種方法供兩臺計(jì)算機(jī)建立安全關(guān)聯(lián) (SA)。SA 對兩臺計(jì)算機(jī)之間的策略協(xié)議進(jìn)行編碼,指定它們將使用哪些算法和什么樣的密鑰長度,以及實(shí)際的密鑰本身。IKE主要完成兩個(gè)作用: ·安全關(guān)聯(lián)的集中化管理,減少連接時(shí)間 ·密鑰的生成和管理 一、什么是SA? 安全關(guān)聯(lián)SA(Security Association)是單向的,在兩個(gè)使用 IPSec的實(shí)體(主機(jī)或路由器)間建立的邏輯連接,定義了實(shí)體間如何使用安全服務(wù)(如加密)進(jìn)行通信。它由下列元素組成:1)安全參數(shù)索引SPI;2)IP目的地址;3)安全協(xié)議。 SA是一個(gè)單向的邏輯連接,也就是說,在一次通信中,IPSec 需要建立兩個(gè)SA,一個(gè)用于入站通信,另一個(gè)用于出站通信。若某臺主機(jī),如文件服務(wù)器或遠(yuǎn)程訪問服務(wù)器,需要同時(shí)與多臺客戶機(jī)通信,則該服務(wù)器需要與每臺客戶機(jī)分別建立不同的SA。每個(gè)SA用唯一的SPI索引標(biāo)識,當(dāng)處理接收數(shù)據(jù)包時(shí),服務(wù)器根據(jù)SPI值來決定該使用哪種SA。 二、第一階段SA(主模式SA,為建立信道而進(jìn)行的安全關(guān)聯(lián)) IKE建立SA分兩個(gè)階段。第一階段,協(xié)商創(chuàng)建一個(gè)通信信道(IKE SA),并對該信道進(jìn)行認(rèn)證,為雙方進(jìn)一步的IKE通信提供機(jī)密性、數(shù)據(jù)完整性以及數(shù)據(jù)源認(rèn)證服務(wù);第二階段,使用已建立的IKE SA建立IPsec SA。分兩個(gè)階段來完成這些服務(wù)有助于提高密鑰交換的速度。 第一階段協(xié)商(主模式協(xié)商)步驟: 1.策略協(xié)商,在這一步中,就四個(gè)強(qiáng)制性參數(shù)值進(jìn)行協(xié)商: 1)加密算法:選擇DES或3DES 2)hash算法:選擇MD5或SHA 3)認(rèn)證方法:選擇證書認(rèn)證、預(yù)置共享密鑰認(rèn)證或Kerberos v5認(rèn)證 4)Diffie-Hellman組的選擇 2.DH交換 雖然名為"密鑰交換",但事實(shí)上在任何時(shí)候,兩臺通信主機(jī)之間都不會(huì)交換真正的密鑰,它們之間交換的只是一些DH算法生成共享密鑰所需要的基本材料信息。DH交換,可以是公開的,也可以受保護(hù)。在彼此交換過密鑰生成"材料"后,兩端主機(jī)可以各自生成出完全一樣的共享"主密鑰",保護(hù)緊接其后的認(rèn)證過程。 3.認(rèn)證 DH交換需要得到進(jìn)一步認(rèn)證,如果認(rèn)證不成功,通信將無法繼續(xù)下去。"主密鑰"結(jié)合在第一步中確定的協(xié)商算法,對通信實(shí)體和通信信道進(jìn)行認(rèn)證。在這一步中,整個(gè)待認(rèn)證的實(shí)體載荷,包括實(shí)體類型、端口號和協(xié)議,均由前一步生成的"主密鑰"提供機(jī)密性和完整性保證。 三、第二階段SA(快速模式SA,為數(shù)據(jù)傳輸而建立的安全關(guān)聯(lián)) 這一階段協(xié)商建立IPsec SA,為數(shù)據(jù)交換提供IPSec服務(wù)。第二階段協(xié)商消息受第一階段SA保護(hù),任何沒有第一階段SA保護(hù)的消息將被拒收。 第二階段協(xié)商(快速模式協(xié)商)步驟: 1.策略協(xié)商,雙方交換保護(hù)需求: ·使用哪種IPSec協(xié)議:AH或ESP ·使用哪種hash算法:MD5或SHA ·是否要求加密,若是,選擇加密算法:3DES或DES 在上述三方面達(dá)成一致后,將建立起兩個(gè)SA,分別用于入站和出站通信。 2.會(huì)話密鑰"材料"刷新或交換 在這一步中,將生成加密IP數(shù)據(jù)包的"會(huì)話密鑰"。生成"會(huì)話密鑰"所使用的"材料"可以和生成第一階段SA中"主密鑰"的相同,也可以不同。如果不做特殊要求,只需要刷新"材料"后,生成新密鑰即可。若要求使用不同的"材料",則在密鑰生成之前,首先進(jìn)行第二輪的DH交換。 3.SA和密鑰連同SPI,遞交給IPSec驅(qū)動(dòng)程序。 第二階段協(xié)商過程與第一階段協(xié)商過程類似,不同之處在于:在第二階段中,如果響應(yīng)超時(shí),則自動(dòng)嘗試重新進(jìn)行第一階段SA協(xié)商。 第一階段SA建立起安全通信信道后保存在高速緩存中,在此基礎(chǔ)上可以建立多個(gè)第二階段SA協(xié)商,從而提高整個(gè)建立SA過程的速度。只要第一階段SA不超時(shí),就不必重復(fù)第一階段的協(xié)商和認(rèn)證。允許建立的第二階段SA的個(gè)數(shù)由IPSec策略屬性決定。 四、SA生命期 第一階段SA有一個(gè)缺省有效時(shí)間,如果SA超時(shí),或"主密鑰"和"會(huì)話密鑰"中任何一個(gè)生命期時(shí)間到,都要向?qū)Ψ桨l(fā)送第一階段SA刪除消息,通知對方第一階段SA已經(jīng)過期。之后需要重新進(jìn)行SA協(xié)商。第二階段SA的有效時(shí)間由IPSec驅(qū)動(dòng)程序決定。 密鑰保護(hù) 一、密鑰生命期 生命期設(shè)置決定何時(shí)生成新密鑰。在一定的時(shí)間間隔內(nèi)重新生成新密鑰的過程稱為"動(dòng)態(tài)密鑰更新"或"密鑰重新生成"。密鑰生命期設(shè)置決定了在特定的時(shí)間間隔之后,將強(qiáng)制生成新密鑰。例如,假設(shè)一次通信需要1萬秒,而我們設(shè)定密鑰生命期為1千秒,則在整個(gè)數(shù)據(jù)傳輸期間將生成10個(gè)密鑰。在一次通信中使用多個(gè)密鑰保證了即使攻擊者截取了單個(gè)通信密鑰,也不會(huì)危及全部通信安全。密鑰生命期有一個(gè)缺省值,但"主密鑰"和"會(huì)話密鑰"生命期都可以通過配置修改。無論是哪種密鑰生命期時(shí)間到,都要重新進(jìn)行SA協(xié)商。單個(gè)密鑰所能處理的最大數(shù)據(jù)量不允許超過100兆。 二、會(huì)話密鑰更新限制 反復(fù)地從同一個(gè)的"主密鑰"生成材料去生成新的"會(huì)話密鑰"很可能會(huì)造成密鑰泄密。"會(huì)話密鑰更新限制"功能可以有效地減少泄密的可能性。 例如,兩臺主機(jī)建立安全關(guān)聯(lián)后,A先向B發(fā)送某條消息,間隔數(shù)分鐘后再向B發(fā)送另一條消息。由于新的SA剛建立不久,因此兩條消息所用的加密密鑰很可能是用同一"材料"生成的。如果想限制某密鑰"材料"重用次數(shù),可以設(shè)定"會(huì)話密鑰更新限制"。譬如,設(shè)定"會(huì)話密鑰更新限制"為5,意味著同一"材料"最多只能生成5個(gè)"會(huì)話密鑰"。 若啟用"主密鑰精確轉(zhuǎn)發(fā)保密(PFS)",則"會(huì)話密鑰更新限制"將被忽略,因?yàn)镻FS 每次都強(qiáng)制使用新"材料"重新生成密鑰。將"會(huì)話密鑰更新限制"設(shè)定為1和啟用PFS效果是一樣的。如果既設(shè)定了"主密鑰"生命期,又設(shè)定了"會(huì)話密鑰更新限制",那么無論哪個(gè)限制條件先滿足,都引發(fā)新一輪SA協(xié)商。在缺省情況下,IPSec不設(shè)定"會(huì)話密鑰更新限制"。 三、Diffie-Hellman(DH)組 DH組決定DH交換中密鑰生成"材料"的長度。密鑰的牢固性部分決定于DH組的強(qiáng)度。IKE共定義了5個(gè)DH組,組1(低)定義的密鑰"材料"長度為768位;組2(中)長度為1024位。密鑰"材料"長度越長,所生成的密鑰安全度也就越高,越難被破譯。 DH組的選擇很重要,因?yàn)镈H組只在第一階段的SA協(xié)商中確定,第二階段的協(xié)商不再重新選擇DH組,兩個(gè)階段使用的是同一個(gè)DH組,因此該DH組的選擇將影響所有"會(huì)話密鑰"的生成。 在協(xié)商過程中,對等的實(shí)體間應(yīng)選擇同一個(gè)DH組,即密鑰"材料"長度應(yīng)該相等。若DH組不匹配,將視為協(xié)商失敗。 四、精確轉(zhuǎn)發(fā)保密PFS(Perfect Forward Secrecy) 與密鑰生命期不同,PFS決定新密鑰的生成方式,而不是新密鑰的生成時(shí)間。PFS保證無論在哪一階段,一個(gè)密鑰只能使用一次,而且,生成密鑰的"材料"也只能使用一次。某個(gè)"材料"在生成了一個(gè)密鑰后,即被棄,絕不用來再生成任何其他密鑰。這樣可以確保一旦單個(gè)密鑰泄密,最多只可能影響用該密鑰加密的數(shù)據(jù),而不會(huì)危及整個(gè)通信。 PFS分"主密鑰"PFS和"會(huì)話密鑰"PFS,啟用"主密鑰"PFS,IKE必須對通信實(shí)體進(jìn)行重新認(rèn)證,即一個(gè)IKE SA只能創(chuàng)建一個(gè)IPsec SA,對每一次第二階段SA的協(xié)商,"主密鑰"PFS都要求新的第一階段協(xié)商,這將會(huì)帶來額外的系統(tǒng)開銷。因此使用它要格外小心。 然而,啟用"會(huì)話密鑰"PFS,可以不必重新認(rèn)證,因此對系統(tǒng)資源要求較小。"會(huì)話密鑰"PFS只要求為新密鑰生成進(jìn)行新的DH交換,即需要發(fā)送四個(gè)額外消息,但無須重新認(rèn)證。 PFS不屬于協(xié)商屬性,不要求通信雙方同時(shí)開啟PFS。"主密鑰"PFS和"會(huì)話密鑰"PFS均可以各自獨(dú)立設(shè)置 |
|