Internet密鑰交換(IKE)
兩臺IPSec計算機在交換數(shù)據(jù)之前,必須首先建立某種約定,這種約定,稱為"安全關(guān)聯(lián)",指雙方需要就如何保護(hù)信息、交換信息等公用的安全設(shè)置達(dá)成一致,更重要的是,必須有一種方法,使那兩臺計算機安全地交換一套密鑰,以便在它們的連接中使用。見圖七。
圖七 Internet密鑰交換
Internet 工程任務(wù)組IETF制定的安全關(guān)聯(lián)標(biāo)準(zhǔn)法和密鑰交換解決方案--IKE(Internet密鑰交換)負(fù)責(zé)這些任務(wù),它提供一種方法供兩臺計算機建立安全關(guān)聯(lián) (SA)。SA 對兩臺計算機之間的策略協(xié)議進(jìn)行編碼,指定它們將使用哪些算法和什么樣的密鑰長度,以及實際的密鑰本身。IKE主要完成兩個作用:
·安全關(guān)聯(lián)的集中化管理,減少連接時間
·密鑰的生成和管理
一、什么是SA?
安全關(guān)聯(lián)SA(Security Association)是單向的,在兩個使用 IPSec的實體(主機或路由器)間建立的邏輯連接,定義了實體間如何使用安全服務(wù)(如加密)進(jìn)行通信。它由下列元素組成:1)安全參數(shù)索引SPI;2)IP目的地址;3)安全協(xié)議。
SA是一個單向的邏輯連接,也就是說,在一次通信中,IPSec 需要建立兩個SA,一個用于入站通信,另一個用于出站通信。若某臺主機,如文件服務(wù)器或遠(yuǎn)程訪問服務(wù)器,需要同時與多臺客戶機通信,則該服務(wù)器需要與每臺客戶機分別建立不同的SA。每個SA用的SPI索引標(biāo)識,當(dāng)處理接收數(shù)據(jù)包時,服務(wù)器根據(jù)SPI值來決定該使用哪種SA。
二、第一階段SA(主模式SA,為建立信道而進(jìn)行的安全關(guān)聯(lián))
IKE建立SA分兩個階段。第一階段,協(xié)商創(chuàng)建一個通信信道(IKE SA),并對該信道進(jìn)行認(rèn)證,為雙方進(jìn)一步的IKE通信提供機密性、數(shù)據(jù)完整性以及數(shù)據(jù)源認(rèn)證服務(wù);第二階段,使用已建立的IKE SA建立IPsec SA。分兩個階段來完成這些服務(wù)有助于提高密鑰交換的速度。 第一階段協(xié)商(主模式協(xié)商)步驟:
1.策略協(xié)商,在這一步中,就四個強制性參數(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交換
雖然名為"密鑰交換",但事實上在任何時候,兩臺通信主機之間都不會交換真正的密鑰,它們之間交換的只是一些DH算法生成共享密鑰所需要的基本材料信息。DH交換,可以是公開的,也可以受保護(hù)。在彼此交換過密鑰生成"材料"后,兩端主機可以各自生成出完全一樣的共享"主密鑰",保護(hù)緊接其后的認(rèn)證過程。
3.認(rèn)證 DH交換需要得到進(jìn)一步認(rèn)證,如果認(rèn)證不成功,通信將無法繼續(xù)下去。"主密鑰"結(jié)合在第一步中確定的協(xié)商算法,對通信實體和通信信道進(jìn)行認(rèn)證。在這一步中,整個待認(rèn)證的實體載荷,包括實體類型、端口號和協(xié)議,均由前一步生成的"主密鑰"提供機密性和完整性保證。
三、第二階段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á)成一致后,將建立起兩個SA,分別用于入站和出站通信。
2.會話密鑰"材料"刷新或交換
在這一步中,將生成加密IP數(shù)據(jù)包的"會話密鑰"。生成"會話密鑰"所使用的"材料"可以和生成第一階段SA中"主密鑰"的相同,也可以不同。如果不做特殊要求,只需要刷新"材料"后,生成新密鑰即可。若要求使用不同的"材料",則在密鑰生成之前,首先進(jìn)行第二輪的DH交換。
3.SA和密鑰連同SPI,遞交給IPSec驅(qū)動程序。
第二階段協(xié)商過程與第一階段協(xié)商過程類似,不同之處在于:在第二階段中,如果響應(yīng)超時,則自動嘗試重新進(jìn)行第一階段SA協(xié)商。
第一階段SA建立起安全通信信道后保存在高速緩存中,在此基礎(chǔ)上可以建立多個第二階段SA協(xié)商,從而提高整個建立SA過程的速度。只要第一階段SA不超時,就不必重復(fù)第一階段的協(xié)商和認(rèn)證。允許建立的第二階段SA的個數(shù)由IPSec策略屬性決定。
兩臺IPSec計算機在交換數(shù)據(jù)之前,必須首先建立某種約定,這種約定,稱為"安全關(guān)聯(lián)",指雙方需要就如何保護(hù)信息、交換信息等公用的安全設(shè)置達(dá)成一致,更重要的是,必須有一種方法,使那兩臺計算機安全地交換一套密鑰,以便在它們的連接中使用。見圖七。
圖七 Internet密鑰交換
Internet 工程任務(wù)組IETF制定的安全關(guān)聯(lián)標(biāo)準(zhǔn)法和密鑰交換解決方案--IKE(Internet密鑰交換)負(fù)責(zé)這些任務(wù),它提供一種方法供兩臺計算機建立安全關(guān)聯(lián) (SA)。SA 對兩臺計算機之間的策略協(xié)議進(jìn)行編碼,指定它們將使用哪些算法和什么樣的密鑰長度,以及實際的密鑰本身。IKE主要完成兩個作用:
·安全關(guān)聯(lián)的集中化管理,減少連接時間
·密鑰的生成和管理
一、什么是SA?
安全關(guān)聯(lián)SA(Security Association)是單向的,在兩個使用 IPSec的實體(主機或路由器)間建立的邏輯連接,定義了實體間如何使用安全服務(wù)(如加密)進(jìn)行通信。它由下列元素組成:1)安全參數(shù)索引SPI;2)IP目的地址;3)安全協(xié)議。
SA是一個單向的邏輯連接,也就是說,在一次通信中,IPSec 需要建立兩個SA,一個用于入站通信,另一個用于出站通信。若某臺主機,如文件服務(wù)器或遠(yuǎn)程訪問服務(wù)器,需要同時與多臺客戶機通信,則該服務(wù)器需要與每臺客戶機分別建立不同的SA。每個SA用的SPI索引標(biāo)識,當(dāng)處理接收數(shù)據(jù)包時,服務(wù)器根據(jù)SPI值來決定該使用哪種SA。
二、第一階段SA(主模式SA,為建立信道而進(jìn)行的安全關(guān)聯(lián))
IKE建立SA分兩個階段。第一階段,協(xié)商創(chuàng)建一個通信信道(IKE SA),并對該信道進(jìn)行認(rèn)證,為雙方進(jìn)一步的IKE通信提供機密性、數(shù)據(jù)完整性以及數(shù)據(jù)源認(rèn)證服務(wù);第二階段,使用已建立的IKE SA建立IPsec SA。分兩個階段來完成這些服務(wù)有助于提高密鑰交換的速度。 第一階段協(xié)商(主模式協(xié)商)步驟:
1.策略協(xié)商,在這一步中,就四個強制性參數(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交換
雖然名為"密鑰交換",但事實上在任何時候,兩臺通信主機之間都不會交換真正的密鑰,它們之間交換的只是一些DH算法生成共享密鑰所需要的基本材料信息。DH交換,可以是公開的,也可以受保護(hù)。在彼此交換過密鑰生成"材料"后,兩端主機可以各自生成出完全一樣的共享"主密鑰",保護(hù)緊接其后的認(rèn)證過程。
3.認(rèn)證 DH交換需要得到進(jìn)一步認(rèn)證,如果認(rèn)證不成功,通信將無法繼續(xù)下去。"主密鑰"結(jié)合在第一步中確定的協(xié)商算法,對通信實體和通信信道進(jìn)行認(rèn)證。在這一步中,整個待認(rèn)證的實體載荷,包括實體類型、端口號和協(xié)議,均由前一步生成的"主密鑰"提供機密性和完整性保證。
三、第二階段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á)成一致后,將建立起兩個SA,分別用于入站和出站通信。
2.會話密鑰"材料"刷新或交換
在這一步中,將生成加密IP數(shù)據(jù)包的"會話密鑰"。生成"會話密鑰"所使用的"材料"可以和生成第一階段SA中"主密鑰"的相同,也可以不同。如果不做特殊要求,只需要刷新"材料"后,生成新密鑰即可。若要求使用不同的"材料",則在密鑰生成之前,首先進(jìn)行第二輪的DH交換。
3.SA和密鑰連同SPI,遞交給IPSec驅(qū)動程序。
第二階段協(xié)商過程與第一階段協(xié)商過程類似,不同之處在于:在第二階段中,如果響應(yīng)超時,則自動嘗試重新進(jìn)行第一階段SA協(xié)商。
第一階段SA建立起安全通信信道后保存在高速緩存中,在此基礎(chǔ)上可以建立多個第二階段SA協(xié)商,從而提高整個建立SA過程的速度。只要第一階段SA不超時,就不必重復(fù)第一階段的協(xié)商和認(rèn)證。允許建立的第二階段SA的個數(shù)由IPSec策略屬性決定。