IPSec基礎(chǔ)這部分包括以下內(nèi)容:
這一章介紹IPSec,方法,或使用具有VPN功能的一套方法。 IPsec簡介IPSec,因特網(wǎng)協(xié)議安全,是由IETF(Internet Engineering Task Force)定義的一套在網(wǎng)絡(luò)層提供IP安全性的協(xié)議。 基于Ipsec的VPN,如阿姆瑞特VPN,由兩部分組成:
第一部分,IKE是初始協(xié)商階段,兩個VPN端點(diǎn)在這個階段協(xié)商使用哪種方法為下面的IP數(shù)據(jù)流提供安全。而且,通過定義一套安全聯(lián)盟(SA),IKE用于管理連接;SA面向每個連接的。SA是單向的,因此每個Ipsec連接至少有2個SA。在IKE(因特網(wǎng)密鑰交換)部分對此有更詳細(xì)的描述。 另一部分是IKE協(xié)商后,用加密和認(rèn)證方法實(shí)際傳輸?shù)腎P數(shù)據(jù)。有幾種方法,如IPsec協(xié)議ESP, AH或兩者結(jié)合在一起都可以做到這一點(diǎn)。IPsec協(xié)議(ESP/AH)部分對此進(jìn)行了解釋。 建立VPN事件的流程可做如下簡要描述:
后面的部分將具體描述每一個步驟。 Internet密鑰交換協(xié)議(IKE)這部分描述IKE,因特網(wǎng)密鑰交換協(xié)議,及其使用的參數(shù)。 加密和認(rèn)證數(shù)據(jù)比較直接,唯一需要的是加密和認(rèn)證算法,及其使用的密鑰。因特網(wǎng)密鑰交換協(xié)議(IKE),用作分配這些對話用密鑰的一種方法,而且在VPN端點(diǎn)間,規(guī)定了如何保護(hù)數(shù)據(jù)的方法。
IKE主要有三項(xiàng)任務(wù):
IKE跟蹤連接的方法是給每個連接分配一組安全聯(lián)盟(SA)。SA描述與特殊連接相關(guān)的所有參數(shù),包括使用的Ipsec協(xié)議(ESP/AH/二者兼有),加密/解密和認(rèn)證/確認(rèn)傳輸數(shù)據(jù)使用的對話密鑰。SA本身是單向的,每個連接需要一個以上的SA。大多數(shù)情況下,只使用ESP或AH,每個連接要創(chuàng)建2個SA,一個描述入站數(shù)據(jù)流,另一個描述出站數(shù)據(jù)流。同時使用ESP和AH的情況中就要創(chuàng)建4個SA。 IKE 協(xié)商協(xié)商對話參數(shù)過程中包含許多階段和模式。下面對其進(jìn)行具體描述。 事件流程如下描述: IKE階段1
IKE階段2
IKE和Ipsec連接都有使用期限的限制,使用時間(秒)和數(shù)據(jù)大?。↘B)來描述。使用期限用于防止連接建立的時間過長,從密碼學(xué)的角度看,這是有必要的。 IPSec的使用期限一般要比IKE的使用期限短。這樣通過進(jìn)行階段2協(xié)商時,對Ipsec連接再次加密。不必進(jìn)行另外的階段1協(xié)商直至到IKE使用期限。 IKE 協(xié)議IKE提議是如何保護(hù)數(shù)據(jù)的建議。發(fā)起IPsec連接的VPN網(wǎng)關(guān),作為發(fā)起者會發(fā)出提議列表,提議表建議了不同的護(hù)連接的方法。 協(xié)商連接可以是通過VPN來保護(hù)數(shù)據(jù)流的Ipsec連接,或是IKE連接,保護(hù)IKE協(xié)商本身。 響應(yīng)的VPN網(wǎng)關(guān),在接收到此提議表后,就會根據(jù)自己的安全策略選擇最適合的提議,并根據(jù)已選擇的提議做出響應(yīng)。 如果沒有找到可接受的提議,就會做出沒有可接受提議的響應(yīng),并可能提供原因。 提議包括需要的全部參數(shù),如加密和認(rèn)證數(shù)據(jù)使用的算法,以及IKE參數(shù)中描述的其他參數(shù)。 IKE 階段1 - IKE安全協(xié)商一個IKE協(xié)商可分兩個階段。第一階段(階段1),通過確認(rèn)遠(yuǎn)端網(wǎng)關(guān)是否具有匹配的Pre-Shared密鑰,來進(jìn)行2個VPN網(wǎng)關(guān)或VPN客戶端的相互認(rèn)證。 可是,因?yàn)槲覀儾幌M悦魑姆绞焦继嗟膮f(xié)商信息,所以我們還是要保護(hù)其余的IKE協(xié)商信息。可以用前面描述的方法做到這一點(diǎn),即通過發(fā)起者向響應(yīng)者發(fā)送提議列表來完成。一旦這個工作完成,響應(yīng)者選擇并接受其中的一個提議后,將嘗試著認(rèn)證VPN的另一端,以確保它就是要認(rèn)可的一端,并校驗(yàn)遠(yuǎn)端網(wǎng)關(guān)正是所期望的。 通過Pre-Shared密鑰、證書或公開密鑰加密能夠完成認(rèn)證。Pre-Shared密鑰是目前最常見的認(rèn)證方法。阿姆瑞特防火墻VPN模式支持Pre-Shared密鑰和證書兩種方式。 IKE 階段2 - IPsec安全協(xié)商另一個協(xié)商是在階段2進(jìn)行的,詳細(xì)說明了Ipsec的連接參數(shù)。 在階段2,我們將從階段1的Diffie-Hellman密鑰交換中摘取新的密鑰信息,并將其作為保護(hù)VPN數(shù)據(jù)流的會話密鑰。 如果使用PFS(完善的轉(zhuǎn)發(fā)機(jī)密),每個階段2協(xié)商中,會進(jìn)行新的Diffie-Hellman交換。雖然這種操作比較慢,但可確保密鑰不依賴于以前用過的任何密鑰,不從同樣的初始密鑰材料中摘取密鑰。這就保證了在不太安全的事件中,危及了某些密鑰安全時,而不衍生出并發(fā)的密鑰。 一旦完成階段2協(xié)商,就會建立VPN連接,以備使用。 IKE 參數(shù)在協(xié)商過程中要使用許多參數(shù)。 下面對建立VPN連接需要的配置參數(shù)加以小結(jié)。我們強(qiáng)烈建議了解這些參數(shù)的作用后,再試著配置VPN端點(diǎn),因?yàn)閮蓚€端點(diǎn)能夠同意所有這些參數(shù)是非常重要的。 當(dāng)安裝2個阿姆瑞特防火墻作為VPN端點(diǎn)時,就可以減少在兩個相同對話框中進(jìn)行對比的過程??墒牵褂貌煌?yīng)商的設(shè)備時,就不是很容易了。 下面是對涉及IKE協(xié)商的參數(shù)小結(jié),后面是對這些參數(shù)的具體描述。
端點(diǎn)身份(Endpoint Identification)這是表示VPN網(wǎng)關(guān)身份的一組數(shù)據(jù)。確切地說,它取決于使用的認(rèn)證方法。使用Pre-Shared密鑰時,它可以是一組16進(jìn)制串或某種其他數(shù)據(jù),用于識別VPN網(wǎng)關(guān)。為了使VPN網(wǎng)關(guān)可以通過相互的認(rèn)證,遠(yuǎn)端網(wǎng)關(guān)必須擁有相同的Pre-Shared密鑰。 用Pre-Shared密鑰的認(rèn)證是基于Diffie-Hellman算法。
本地和遠(yuǎn)端網(wǎng)絡(luò)/主機(jī)(Local and Remote Networks/Hosts)子網(wǎng)或主機(jī)間的IP數(shù)據(jù)流是受到VPN的保護(hù)的。 在LAN到LAN連接里,這里表示各自LAN的網(wǎng)絡(luò)地址。 如果使用漫游客戶,遠(yuǎn)端網(wǎng)絡(luò)可以設(shè)為0.0.0.0/0,這意味著漫游客戶可從任何地方接入本網(wǎng)絡(luò)。
通道/傳輸模式(Tunnel/Transport mode)Ipsec可以使用2種模式:通道或傳輸模式 通道模式表明數(shù)據(jù)流經(jīng)過通道到達(dá)遠(yuǎn)端網(wǎng)關(guān),遠(yuǎn)端網(wǎng)關(guān)將對數(shù)據(jù)進(jìn)行解密/認(rèn)證,把數(shù)據(jù)從通道中提取出來,并發(fā)往最終目的地。這樣,偷聽者只能看到加密數(shù)據(jù)流從VPN的一端發(fā)往另一端。在傳輸模式里,數(shù)據(jù)流無法通過通道傳輸,因此不適用于VPN通道。它可以用于保證VPN客戶端到安全網(wǎng)關(guān)連接的安全,如Ipsec保護(hù)的遠(yuǎn)程配置。 大多數(shù)配置中都設(shè)置為“通道”。
遠(yuǎn)端網(wǎng)關(guān)(Remote Gateway)遠(yuǎn)端網(wǎng)關(guān)就是遠(yuǎn)端安全網(wǎng)關(guān),它負(fù)責(zé)進(jìn)行解密/認(rèn)證,并把數(shù)據(jù)發(fā)往目的地。也可以把該字段設(shè)成“none”(無),迫使阿姆瑞特VPN把遠(yuǎn)端地址看作遠(yuǎn)端網(wǎng)關(guān)。這種做法在漫游訪問方式里尤其有用,因?yàn)槭孪炔恢肋h(yuǎn)端VPN客戶的IP地址。把它設(shè)置為none,只要認(rèn)證正確,IP地址符合上面討論的遠(yuǎn)端網(wǎng)絡(luò)地址,就允許來自任何IP地址的任何人打開VPN連接。 傳輸模式不適用遠(yuǎn)程網(wǎng)關(guān)。
主/挑戰(zhàn)模式(Main/Aggressive Mode)IKE協(xié)商有2種操作模式:主模式和挑戰(zhàn)模式。 二者的不同之處在于,挑戰(zhàn)模式可以用更少的包發(fā)送更多信息,這樣做的優(yōu)點(diǎn)是快速建立連接,而代價是以清晰的方式發(fā)送安全網(wǎng)關(guān)的身份。 使用挑戰(zhàn)模式時,有的配置參數(shù)如Diffie-Hellman和PFS不能進(jìn)行協(xié)商,因此兩端擁有兼容的配置是至關(guān)重要的。
IPsec協(xié)議(IPsec Protocols)Ipsec協(xié)議描述了如何處理數(shù)據(jù)的方法。其中可以選擇的2種協(xié)議是AH(認(rèn)證頭,Authentication Header)和ESP(封裝安全有效載荷,Encapsulating Security Payload)。 ESP具有加密,認(rèn)證或二者兼有的功能。但是,我們不建議僅使用加密功能,因?yàn)樗鼤蟠蠼档桶踩浴?/p> 關(guān)于ESP更多信息,請參看ESP (Encapsulating Security Payload)。 AH只有認(rèn)證作用。與ESP的認(rèn)證之間的不同之處僅僅在于,AH可以認(rèn)證部分外發(fā)的IP頭,如源和目的地址,保證包確實(shí)來自IP包聲明的來源。 關(guān)于AH更多信息,請參看認(rèn)證頭(Authentication Header)。
IKE加密(IKE Encryption)這里指定IKE協(xié)商使用的加密算法,如算法種類和使用的密鑰長度。 阿姆瑞特VPN支持的算法是:
DES只在與其他老的VPN設(shè)備共同操作時使用。應(yīng)盡可能地避免使用DES,因?yàn)镈ES是一種老算法,我們認(rèn)為其不是很安全。
IKE認(rèn)證(IKE Authentication)這里指定IKE協(xié)商使用的認(rèn)證算法。 阿姆瑞特VPN支持的算法是:
IKE DH (Diffie-Hellman) 組這里指定IKE交換密鑰時使用的Diffie-Hellman組。 阿姆瑞特VPN支持的Diffie-Hellman組有:
密鑰交換的安全性隨著DH組的擴(kuò)大而增加,但交換的時間也增加了。
IKE使用期限(IKE Lifetime)IKE連接的使用期限。 使用期限以時間(秒)和數(shù)據(jù)量(KB)計(jì)算。超過其中任何一個期限時,就會進(jìn)行新的階段1交換。如果上一個IKE連接中沒有發(fā)送數(shù)據(jù),就不建立新連接,直到有人希望再次使用VPN連接。
PFS當(dāng)PFS無效時,IKE協(xié)商階段1的密鑰交換過程中會創(chuàng)建一個初始密鑰材料。在IKE協(xié)商階段2中,從初始密鑰材料提取加密和認(rèn)證密鑰。使用PFS(完善轉(zhuǎn)發(fā)機(jī)密)時,總能夠根據(jù)重讀的密鑰創(chuàng)建全新材料。如果有一個密鑰符合,就不會用該信息衍生其他密鑰。 PFS的使用有2種方式:第一種是密鑰PFS,可在每個階段2協(xié)商中交換新密鑰。另一種是身份PFS,在此可以保護(hù)身份,方法是每完成一個階段2的協(xié)商就刪除階段1的SA,保證使用相同的密鑰對一個階段2的協(xié)商進(jìn)行加密。 通常不需要PFS,因?yàn)槲<凹用芑蛘J(rèn)證密鑰安全性的可能性微乎其微。
IPsec DH 組這是與IKE十分相似的Diffie-Hellman組。但是,Diffie-Hellman組僅用于PFS。
IPsec 加密這里的加密算法用于保護(hù)數(shù)據(jù)流的傳輸。 使用AH或使用不加密的ESP時,就不需要Ipsec加密。 阿姆瑞特VPN支持的算法有:
Ipsec認(rèn)證(IPsec Authentication)這里的認(rèn)證算法用于保護(hù)數(shù)據(jù)流的傳輸。 使用不經(jīng)認(rèn)證的ESP(盡管建議不使用未經(jīng)認(rèn)證的ESP)時不使用Ipsec認(rèn)證。 阿姆瑞特VPN支持的算法有:
Ipsec使用期限(IPsec Lifetime)VPN連接的使用期限,用時間(秒)和數(shù)據(jù)量(千字節(jié))表示。只要超出其中任何一個值,就要重新創(chuàng)建用于加密和認(rèn)證的密鑰。如果最后一個密鑰期沒有使用VPN連接,那么就會終止連接并在需要連接時從頭開始重新打開連接。 IKE認(rèn)證方法(手工,PSK,證書)手工密鑰配置VPN最簡單的辦法是使用稱為手工密鑰的方法。使用這種方法時根本不需要使用IKE,在VPN通道兩端直接配置加密和認(rèn)證密鑰以及其他參數(shù)。 優(yōu)點(diǎn):因?yàn)樵撁荑€很直接,所以共同操作性很大。目前大多數(shù)共同操作問題都出在IKE上。手冊密鑰完全避開IKE,只設(shè)置自己的IPsec SA。 缺點(diǎn):這種方法陳舊,是IKE產(chǎn)生之前使用的方法,缺少IKE具有的所有功能。因此此法有諸多限制,如總要使用相同的加密/認(rèn)證密鑰,無防止重放攻擊服務(wù),非常死板,不夠靈活。也無法保證遠(yuǎn)端主機(jī)和網(wǎng)關(guān)的真實(shí)性。 這種連接也易受某些重放攻擊的攻擊,這意味著訪問加密數(shù)據(jù)流的惡意實(shí)體能夠記錄一些包,并把包儲存下來并在以后發(fā)到目的地址。目的VPN端點(diǎn)無法辨別此包是不是重放的包。用IKE就可避免這種攻擊。
Pre-Shared密鑰, PSKPre-Shared密鑰是VPN端點(diǎn)間共享一個密鑰的方法,是由IKE提供的服務(wù),所以具有IKE的所有優(yōu)點(diǎn),比手工密鑰靈活許多。 優(yōu)點(diǎn):Pre-Shared密鑰具有比手工密鑰多得多的優(yōu)點(diǎn)。包括端點(diǎn)認(rèn)證,PSK是真正進(jìn)行端點(diǎn)認(rèn)證的。還包括IKE的所有優(yōu)點(diǎn)。相反,在使用固定加密密鑰時,一個新的對話密鑰在使用后,有一定的時間周期限制。 缺點(diǎn):使用Pre-Shared密鑰時需要考慮的一件事是密鑰的分配。如何把Pre-Shared密鑰分配給遠(yuǎn)端VPN客戶和網(wǎng)關(guān)呢?這個問題很重要,因?yàn)镻SK系統(tǒng)的安全性是基于PSK的機(jī)密性的。如果在某些情況下危及到PSK的安全性時,就需要改動配置,使用新的PSK。
證書每個VPN網(wǎng)關(guān)都有自己的證書,和一或多個可信任根證書。 此認(rèn)證基于幾種理論:
優(yōu)點(diǎn):增加了靈活性。例如許多VPN客戶端在沒有配置相同pre-shared密鑰時也能夠得到管理,使用pre-shared密鑰和漫游客戶端時經(jīng)常是這種情況。相反,如果某客戶端不安全時,就可以輕松地取消該客戶端證書。無需對每個客戶進(jìn)行重新配置。 缺點(diǎn):增加了復(fù)雜性?;谧C書的認(rèn)證可作為龐大的公有密鑰體系結(jié)構(gòu)的一部分,使VPN客戶端和網(wǎng)關(guān)可依賴于第三方。換言之,要配置更多內(nèi)容,也可能會出現(xiàn)更多錯誤。 IPsec 協(xié)議(ESP/AH)Ipsec協(xié)議是用來保護(hù)通過VPN傳輸數(shù)據(jù)流的。使用的協(xié)議及其密鑰是由IKE協(xié)商的。 與Ipsec相關(guān)的協(xié)議有2種:AH和ESP。下面對它們進(jìn)行詳細(xì)說明。
認(rèn)證頭(Authentication Header)AH是一種認(rèn)證數(shù)據(jù)流的協(xié)議。它運(yùn)用加密學(xué)復(fù)述功能,根據(jù)IP包的數(shù)據(jù)生成一個MAC。此MAC隨包發(fā)送,允許網(wǎng)關(guān)確認(rèn)原始IP包的整體性,確保數(shù)據(jù)在通過因特網(wǎng)的途中不受損壞。 除IP包數(shù)據(jù)外,AH也認(rèn)證部分IP頭。 AH協(xié)議把AH頭插在原始IP頭之后,在通道模式里,AH頭是插在外部IP頭之后的,但在原始內(nèi)部IP頭之前。
ESP (Encapsulating Security Payload)ESP用于IP包的加密和認(rèn)證。還可只用于加密或認(rèn)證。 ESP頭插在原始IP頭之后,在通道模式里,ESP頭是插在外部IP頭之后的,但在原始內(nèi)部IP頭之前。 ESP頭之后的所有數(shù)據(jù)是經(jīng)過加密/認(rèn)證的。與AH不同的是ESP也對IP包加密。認(rèn)證階段也不同,ESP只認(rèn)證ESP頭之后的數(shù)據(jù),因此不保護(hù)外部IP頭。 |
|