IPsec SA creation steps
There are two steps on the IPsec SA creation, phase 1 is to creat IKE-SA, and phase 2 is to creat IPSEC-SA, the phase2 will be protected by phase 1. phase 1 creat a security tunnel to protect phase2.
step 1: creat IKE-SA, there are two modes on this step, the major is main mode, which including six messages;
1,&2, to negotiate the security policy, 1,initiator send all type policys supported to remote, and if remote search one of them which it support too, it will respone to initiator;
including Authentication method: psk or md5; hash- algorithm : md5 or sha; encryption algorithm :des or 3des ; sa life time (duration) x seconds;
3&4 , to exchange the DH and key, and creat key;
5&6, those two messages had been protected by key_id, to authentication each other;
step2 : craet IPSEC-SA;
1, negotiate the IPSEC-protocol:esp or ah; ipsec-mode:tunnel or transport; hash-algorithm: md5 or sha;
2, ack and ack too .
第一階段
有主模式和積極模式2種
注意!!!只有remote vpn和Easy vpn是積極模式的,其他都是用主模式來(lái)協(xié)商的
讓IKE對(duì)等體彼此驗(yàn)證對(duì)方并確定會(huì)話密鑰,這個(gè)階段永DH進(jìn)行密鑰交換,創(chuàng)建完IKE SA后,所有后續(xù)的協(xié)商都將通過(guò)加密合完整性檢查來(lái)保護(hù)
phase 1幫助在對(duì)等體之間創(chuàng)建了一條安全通道,使后面的phase 2過(guò)程協(xié)商受到安全保護(hù)
第二階段
快速模式
協(xié)商IPSEC SA使用的安全參數(shù),創(chuàng)建IPSEC SA,使用AH或ESP來(lái)加密IP數(shù)據(jù)流
詳細(xì)過(guò)程主模式協(xié)商
IKE phase 1在IPSEC對(duì)等體間交換6條消息,這些消息的具體格式取決于使用的對(duì)等體認(rèn)證方法
一,使用預(yù)共享密鑰進(jìn)行驗(yàn)證的主模式(6條)
協(xié)商過(guò)程使用ISAKMP消息格式來(lái)傳遞(UDP 500)
第一階段
準(zhǔn)備工作
在前2條消息發(fā)送以前,發(fā)送者和接受者必須先計(jì)算出各自的cookie(可以防重放和DOS攻擊),這些cookie用于標(biāo)識(shí)每個(gè)單獨(dú)的協(xié)商交換消息
cookie ---RFC建議將源目IP,源目端口,本地生成的隨機(jī)數(shù),日期和時(shí)間進(jìn)行散列操作.cookie成為留在IKE協(xié)商中交換信息的唯一標(biāo)識(shí),實(shí)際上 cookie是用來(lái)防止DOS攻擊的,它把和其他設(shè)備建立IPSEC所需要的連接信息不是以緩存的形式保存在路由器里,而是把這些信息HASH成個(gè) cookie值
1&2消息
消息1---發(fā)送方向?qū)Φ润w發(fā)送一條包含一組或多組策略提議,在策略提議中包括5元組(加密算法,散列算法,DH,認(rèn)證方法,IKE SA壽命)
1.策略協(xié)商,在這一步中,就四個(gè)強(qiáng)制性參數(shù)值進(jìn)行協(xié)商:
1)加密算法:選擇DES或3DES
2)hash算法:選擇MD5或SHA
3)認(rèn)證方法:選擇證書(shū)認(rèn)證、預(yù)置共享密鑰認(rèn)證或Kerberos v5認(rèn)證
4)Diffie-Hellman組的選擇
消息2---接受方查看IKE策略消息,并嘗試在本地尋找與之匹配的策略,找到后,則有一條消息去回應(yīng)
注意!!!發(fā)起者會(huì)將它的所有策略發(fā)送給接受者,接受者則在自己的策略中尋找與之匹配的策略(對(duì)比順序從優(yōu)先級(jí)號(hào)小的到大的)(默認(rèn)策略實(shí)際就是個(gè)模版沒(méi)作用,如果認(rèn)證只配置預(yù)共享的話,其他參數(shù)就會(huì)copy默認(rèn)策略里的)
在1&2消息中報(bào)錯(cuò)可能出現(xiàn)的原因
1,peer路由不通
2,crypto iskmp key沒(méi)有設(shè)置
3,一階段的策略不匹配
3&4消息
這2條消息,用于交換DH的公開(kāi)信息和隨機(jī)數(shù)
兩個(gè)對(duì)等體根據(jù)DH的公開(kāi)信息都算出了雙方相等的密植后,兩個(gè)nonce連通預(yù)共享密鑰生成第一個(gè)skeyID
隨后便根據(jù)SKEY__ID來(lái)推算出其他幾個(gè)skeyID
skeyID_d---用來(lái)協(xié)商出后續(xù)IPSEC SA加密使用的密鑰的
skeyID_a---為后續(xù)的IKE消息協(xié)商以及IPSEC SA協(xié)商進(jìn)行完整性檢查(HMAC中的密鑰)
skeyID_e---為后續(xù)的IKE消息協(xié)商以及IPSEC SA協(xié)商進(jìn)行加密
5&6消息
這2條消息用于雙方彼此驗(yàn)證,這個(gè)過(guò)程是受skeyID_e加密保護(hù)的
為了正確生成密鑰,每一個(gè)對(duì)等體必須找到與對(duì)方相對(duì)應(yīng)的預(yù)共享密鑰,當(dāng)有許多對(duì)等體連接時(shí),每一對(duì)對(duì)等體兩端都需要配置預(yù)共享密鑰,每一對(duì)等體都必須使用ISAKMP分組的源IP來(lái)查找與其對(duì)等體對(duì)應(yīng)的預(yù)共享密鑰(此時(shí)由于ID還沒(méi)到,彼此先用HASH來(lái)彼此驗(yàn)證對(duì)方)
HASH