1、1第四章:IPSec-IKEn4.1 什么是什么是IKE?n4.2 ISAKMP协议协议n4.3 IKE第一阶段第一阶段n4.4 IKE第二阶段:建立第二阶段:建立IPSec SAs24.1 什么是IKE?nIKE(Internet Key Exchange,RFC2409):因特网密钥交换协议是一个以):因特网密钥交换协议是一个以受保护的方式受保护的方式动态协商动态协商SA的协议。的协议。nIKE的功能:的功能:n协商:通信参数,安全特性协商:通信参数,安全特性n认证通信对端认证通信对端n保护实体保护实体n用安全的方法产生,交换,建立密钥用安全的方法产生,交换,建立密钥n管理,删除安全关联(
2、管理,删除安全关联(SA)3IKE的组成和实现nIKE是一个混合的协议,它的组成:是一个混合的协议,它的组成:nInternet密钥交换协议(密钥交换协议(IKE,RFC2409)nInternet安全关联密钥管理协议(安全关联密钥管理协议(ISAKMP,RFC2408)nOakley密钥确定协议(密钥确定协议(RFC2412)nIPSec Domain of Interpretation,(,(IPSec DOI,RFC2407)nIKE分两个阶段实现:分两个阶段实现:n第一阶段为建立第一阶段为建立IKE本身使用的安全信道而相互交换本身使用的安全信道而相互交换SA(采(采用用ISAKMP)I
3、SAKMP SA(双向)(双向)n第二阶段利用第一阶段建立的安全信道交换第二阶段利用第一阶段建立的安全信道交换IPSec通信中使通信中使用的用的SAIPSec SA(单向)(单向)45IKE Network PlacementDOIDefinitionSecurity Protocol(IPsec)Application ProtocolApplication ProcessIKESocket Layer ProtocolInternet Protocol(IP)Transport Protocols(TCP/UDP)Link Layer Protocol64.2 ISAKMP协议nInter
4、net Security Association and Key Management Protocol(RFC 2407)n提供密钥管理架构提供密钥管理架构n定义定义SA的建立、协商、修改、删除规程和分的建立、协商、修改、删除规程和分组格式组格式n独立于密钥交换协议、加密算法和认证方法独立于密钥交换协议、加密算法和认证方法n下层由下层由UDP协议承载,端口号为协议承载,端口号为500。7ISAKMP payload formatnISAKMP headISAKMP头(头(HDR)nGeneric Payload Header通用载荷头通用载荷头nData Attributes数据属性数据属性
5、nTransform Payload 变换载荷变换载荷nProposal Payload建议载荷建议载荷nSecurity Association Payload安全关联载荷(安全关联载荷(SA)nKey Exchange Payload密钥交换载荷密钥交换载荷nIdentification Payload 识别载荷识别载荷nCertificate Payload证书载荷(证书载荷(CERT)nCertificate Request Payload证书请求载荷证书请求载荷nHash Payload杂凑载荷杂凑载荷nSignature Payload签名载荷签名载荷nNonce Payload
6、Nonce载荷载荷8ISAKMP head12301234567890123456789012345678901Initiate cookieResponder cookieNext Payload MjVerMnverExchange typeFlagMessage IDLength 抗阻塞抗阻塞,通常采用,通常采用HASH算法对地址、端口号及本算法对地址、端口号及本地秘密信息计算得到。地秘密信息计算得到。主版本、次版本主版本、次版本以字节为单位,表示整个报文以字节为单位,表示整个报文的长度(头载荷)的长度(头载荷)由发起者生成的一个随机值,由发起者生成的一个随机值,用于阶段用于阶段2协商中
7、标识协议状态协商中标识协议状态指示后续的载荷是指示后续的载荷是否是加密或认证?否是加密或认证?9ISAKMP Generic Payload Header 每一个每一个ISAKMP载荷由通用头开始,它定义了载载荷由通用头开始,它定义了载荷的边界,所以可以连接不同的载荷。荷的边界,所以可以连接不同的载荷。12301234567890123456789012345678901Next Payload RESERVEDPayload Length 以字节为单位的载荷长以字节为单位的载荷长度(包括通用载荷头)度(包括通用载荷头)10Security Association Payload1230123
8、4567890123456789012345678901Next Payload RESERVEDPayload Length Domain of Interpretation(DOI)Situation 32bits,用于指定协商,用于指定协商DOI0ISAKMP DOI1IPSEC DOI 用于协商用于协商SA所基于的解释域,所基于的解释域,DOI定义载荷格式、交换类定义载荷格式、交换类型和用于命名的相关信息(密码算法,模式等)的约定。型和用于命名的相关信息(密码算法,模式等)的约定。表明协商发生时的情形,即决定需表明协商发生时的情形,即决定需要的安全服务的信息要的安全服务的信息SIT_I
9、DENTITY_ONLY 0 x01SIT_SECRECY 0 x02SIT_INTEGRITY 0 x0411Proposal Payload12301234567890123456789012345678901Next Payload RESERVEDPayload Length Proposal#Protocol-IDSPI size#of TransformSPI (variable)包括包括SA协商中需要的信息协商中需要的信息1ISAKMP协议协议2AH协议协议3ESP协议协议建议号,若有相同的建议号,若有相同的建议号,则表示这两建议号,则表示这两个建议是个建议是and关系,关系,如
10、果不同,则表示如果不同,则表示or关系关系12Transform Payload12301234567890123456789012345678901Next Payload RESERVEDPayload Length Transform#Transform -IDReserved SA attribute AH变换标识符变换标识符:2AH_MD53AH_SHAESP变换标识符:变换标识符:1带带64比特比特IV的的CBC-DES2CBC-DES3三重三重DES 定义安全服务中的算法定义安全服务中的算法13Key Exchange Payload密钥交换载荷12301234567890123
11、456789012345678901Next Payload RESERVEDPayload Length Key Exchange Date以字节为单位,长以字节为单位,长度包括净荷头部度包括净荷头部变长域,用来生成密钥的数据,各密钥变长域,用来生成密钥的数据,各密钥交换的交换的DOI给出了这个域的格式和解释给出了这个域的格式和解释14Identification Payload标识载荷 12301234567890123456789012345678901Next Payload RESERVEDPayload Length ID TypeProtocol ID PORTIdentific
12、ation Date用于通信双方交换身份信息描述标识数据域中发现的身份信息1表示数据域中是4字节的IPv4地址6TCP17UDP15Certificate Payload证书载荷12301234567890123456789012345678901Next Payload RESERVEDPayload Length Cert EncodingCertificate 指示证书的种类和相关信息:类型 值PGP证书 2X.509证书签名 4X.509密钥交换证书 5变长域,包含证书编码域中指定类型的真正的证书数据。16IKE的结构的结构n安全关联(安全关联(SA)n安全关联数据库(安全关联数据库(
13、SAD)n安全参数索引(安全参数索引(SPI)174.3 IKE第一阶段第一阶段n目的:目的:n建立建立ISAKMP SA(安全通道)(安全通道)n步骤(交换步骤(交换4-6个报文)个报文)n协商安全参数协商安全参数nDiffie-Hellman 交换交换n认证实体认证实体n交换模式:交换模式:n主模式(主模式(Main Mode):在:在 IKE中必须配置主模式中必须配置主模式n野蛮模式(野蛮模式(Aggressive Mode):用来简化规程和:用来简化规程和提高处理效率提高处理效率18Diffie Hellman AlgorithmnSetupnp:prime.ng:generator
14、of Z*pnprotocolnshare a secret value K ABxygx mod pgy mod pK=(gy)x mod p=(gx)y mod p19第一阶段属性第一阶段属性n认证方法认证方法n预先共享密钥预先共享密钥n数字签名(数字签名(DSS或或RSA)n公钥加密(公钥加密(RSA或或EI-Gamal)n群(群(group)描述(预先定义)描述(预先定义)n群类型(协商)群类型(协商)n模指数群模指数群 MODP(modular exponentiation group)n在有限域在有限域GF2N上定义的椭圆曲线群上定义的椭圆曲线群 EC2N(elliptic cur
15、ve group over GF2N)20IKE预定义群nMODPn素数素数Prime:768-bit,1024-bit,1536-bitn生成元生成元Generator:2nEC2NnGF2155,GF2185nGF2163(2groups),GF2283(2groups)21第一阶段属性(续)n加密算法加密算法n密钥长度密钥长度n分组大小分组大小n哈希算法哈希算法n生存时间(秒和生存时间(秒和/或千字节)或千字节)22主模式AliceBob参数协商交换密钥发送ID认证加密Message 1Message 2Message 3Message 4Message 5Message 6Crypto
16、 suites I supportCrypto suite I choosega mod pgb mod pgab mod p“Alice”,Proof Im Alicegab mod p“Bob”,Proof Im Bob23野蛮模式AliceBobMessage 1Message 2Message 3ga mod p,“Alice”,crypto proposalgb mod p,crypto choice,proof Im BobProof Im Alice24符号说明nHDR:一个:一个ISAKMP头,头,HDR*表表明明ISAKMP后面的载荷是加密的后面的载荷是加密的nSA:带有一个
17、或多个建议的安全关:带有一个或多个建议的安全关联载荷联载荷nKE:密钥交换载荷:密钥交换载荷nIDX:标识载荷,:标识载荷,X=i表示发起者,表示发起者,X=r表示响应者表示响应者nHASH:杂凑载荷:杂凑载荷nSIG:签名载荷:签名载荷nCERT:证书载荷:证书载荷nNX:X的的nonce载荷,载荷,X为为i(发起(发起者)或者)或r(响应者)(响应者)nP_b:载荷:载荷P的主体,就是没有的主体,就是没有通用头的载荷通用头的载荷nCKY-I(CKY-R):):ISAKMP头中头中的发起者(响应者)的发起者(响应者)cookiengXi或或gXr:发起者或响应者的:发起者或响应者的D-H公公
18、开值开值nPrf(key,msg):使用密钥):使用密钥key和输入信息和输入信息msg的伪随机数函数,的伪随机数函数,如如HMAC。nSKEYID:一个衍生自仅有通信双方:一个衍生自仅有通信双方知道的秘密密钥信息的密钥串。知道的秘密密钥信息的密钥串。nSKEYIDe:ISAKMP用来保护它的消用来保护它的消息保密性的密钥信息息保密性的密钥信息nSKEYIDa:ISAKMP用来认证它的消用来认证它的消息的密钥信息息的密钥信息nSKEYIDd:用来在第二阶段协商中为用来在第二阶段协商中为非非ISAKMP SA生成密钥的密钥信息生成密钥的密钥信息Xy:表示用密钥y加密x。x|y:代表x与y相连接。
19、x:表示X是可选的2512301234567890123456789012345678901Initiate cookieResponder cookieNext Payload MjVerMnverExchange typeFlagMessage IDLength 12301234567890123456789012345678901Next Payload RESERVEDPayload Length Key Exchange DateKE载荷载荷ISAKMP头格式(头格式(HDR)26主模式:用预共享密钥认证nHDR contains CKY-I|CKY-R,是,是ISAKMP头标头标n
20、SA带有一个或多个建议的安全关联载荷。带有一个或多个建议的安全关联载荷。Ni/Nr是是nonce值值nKE=gi(Initiator)or gr(Responder),是密钥交换载荷,是密钥交换载荷nIDii/IDir是发起者是发起者/响应者的标识载荷响应者的标识载荷nHASH是杂凑载荷是杂凑载荷IKEHEADERISAKMP SAPROPOSALIKEHEADERISAKMP SARESPONSEIKEHEADERDH KEYEXCHANGENrIKEHEADERIDiiHASH_IIKEHEADERIDirHASH_RInitiatorResponderIKEHEADERDH KEYEXC
21、HANGENi123456HDRSAKE27主模式:用预共享密钥认证nHDR contains CKY-I|CKY-R,是,是ISAKMP头标头标nSA带有一个或多个建议的安全关联载荷。带有一个或多个建议的安全关联载荷。Ni/Nr是是nonce值值nKE=gi(Initiator)or gr(Responder),是密钥交换载荷,是密钥交换载荷nIDii/IDir是发起者是发起者/响应者的标识载荷响应者的标识载荷nHASH是杂凑载荷是杂凑载荷HDRSA发起者响应者KE协商了CKY-I,CKY-R;SA带有一个或多个建议载荷、变换载荷,确定了加密、认证算法等交换了gi,gr和和Ni,Nr,生成密
22、钥:生成密钥:SKEYID=PRF(preshared key,Ni|Nr)SKEYID_d=PRF(SKEYID,gir|CKY-i|CKY-r|0)SKEYID_a=prf(SKEYID,SKEYID_d|gir|CKY-I|CKY-R|1)SKEYID_e=prf(SKEYID,SKEYID_a|gir|CKY-I|CKY-R|2)28哈希值计算nHASH_I:nHMAC_H(SKEYID,gi|gr|CKY-I|CKY-R|SA|IDii)nHASH_R:nHMAC_H(SKEYID,gr|gi|CKY-R|CKY-I|SA|IDir)29主模式:用数字签名认证nHDR contain
23、s CKY-I|CKY-RnKE=gi(Initiator)or gr(Responder)nSIG_I/SIG_R=digital sig of HASH_I/HASH_RnCERT是证书载荷是证书载荷30主模式:用公钥加密认证HDR contains CKY-I|CKY-R,HASH(l)是响应方证书的)是响应方证书的HASH值值KE=gi(Initiator)or gr(Responder)这里这里nonce是通过加密传输的,因此可作为共享密钥,是通过加密传输的,因此可作为共享密钥,HASH值就可以直接值就可以直接用来认证对方的身份。用来认证对方的身份。InitiatorResponde
24、rIKE Phase 1 Authenticated With Public Key EncryptionMain Mode12Public key of iIKEHEADERDH KEYEXCHANGENr bodypayloadIDir bodypayloadPublic key of rIKEHEADERDH KEYEXCHANGENi bodypayloadIDii bodypayloadIKEHEADERISAKMP SARESPONSEIKEHEADERISAKMP SAPROPOSALIKEHEADERHASH_IIKEHEADERHASH_R463531用公钥加密认证中存在的问
25、题n问题问题n采用了四次公钥加采用了四次公钥加/解密操作,耗费计算资源,解密操作,耗费计算资源,与签名认证算法相比,多了两次加与签名认证算法相比,多了两次加/解密解密n修改方法修改方法n采用修正的公钥加密认证采用修正的公钥加密认证32Main Mode:Authentication with Revised Public Key EncryptionHDR contains CKY-I|CKY-RKE=gI(Initiator)or gr(Responder)Ki=prf(Ni,CKY-I),Kr=prf(Nr,CKY-R)Publickey of rInitiatorResponder12D
26、H KiIKEHEADERDH KEYEXCHANGENi bodypayloadIDii bodypayloadIKEHEADERISAKMP SARESPONSEIKEHEADERISAKMP SAPROPOSALIKEHEADERHASH_IIKEHEADERHASH_R4635CERTPublickey of iDH KrIKEHEADERDH KEYEXCHANGENr bodypayloadIDir bodypayloadCERT33密钥推导密钥推导nSKEYIDnPre-shared keysnSKEYID=PRF(preshared key,Ni|Nr)nSKEYID是从预共享
27、密钥推导得到,并且总是与是从预共享密钥推导得到,并且总是与Ni/Nr有有关,这样即使采用相同的预共享密钥,不同的关,这样即使采用相同的预共享密钥,不同的Ni/Nr产生产生的的SKEYID是不同的。是不同的。nDigital signatures:nSKEYID=PRF(Ni|Nr,gir)nPublic key encryptionnSKEYID=PRF(hash(Ni|Nr),CKY-i|CKY-r)34密钥推导(续)密钥推导(续)nSKEYID_d(used to derive keying material for IPsec SA):lSKEYID_d=PRF(SKEYID,gir|C
28、KY-i|CKY-r|0)nSKEYID_a(auth key for ISAKMP SA):nSKEYID_a=PRF(SKEYID,SKEYID_d|gir|CKY-i|CKY-r|1)nSKEYID_e(enc key for ISAKMP SA):lSKEYID_e=PRF(SKEYID,SKEYID_a|gir|CKY-i|CKY-r|2)35IKE第一阶段小节n认证认证n根据预共享密钥和公钥密码机制根据预共享密钥和公钥密码机制n抗中间人、伪装攻击抗中间人、伪装攻击nDH密钥协商密钥协商n提供密钥的生成源提供密钥的生成源gir,Ni/r,生成,生成SKEYID,SKEYID_d,SK
29、EYID_a,SKEYID_e36Why all these secrets?lSKEYID_d is used for deriving keying data for IPSeclSKEYID_a is used for integrity and data source authenticationlSKEYID_e is used to encrypt IKE messages.lDifferent keys must be used for security purposes.Because of the hash function PRF,the original secret S
30、KEYID cannot be calculated from the derived secrets.374.4 IKE第二阶段n目的:目的:n建立建立IPsec SA,一个第,一个第1阶段的阶段的SA可以用于建立多可以用于建立多个第个第2阶段的阶段的SA。n步骤(步骤(3-4报文交换)报文交换)n协商安全参数协商安全参数n可选的可选的Diffie-Hellman交换交换n可选的一致性(可选的一致性(Identity)交换)交换n快速模式(快速模式(Quick Mode)n新群模式(新群模式(New Group Mode)38阶段2属性n群描述(群描述(for PFS,perfect for
31、ward secrecy)n加密算法加密算法n密钥长度密钥长度nKey roundsn认证算法认证算法n生存时间(秒和生存时间(秒和/或千字节)或千字节)n加密模式(传输或隧道)加密模式(传输或隧道)39快速模式INITIATORHDR*|HASH(1)|SA|Ni|KE|IDi2|IDr21HDR*|HASH(3)3HDR*|HASH(2)|SA|Nr|KE|IDi2|IDr22RESPONDERnHDR contains CKY-I|CKY-RnKE(for PFS)=gI(Initiator)or gr(Responder)nHASH(1)PRF(SKEYID_a|Message_ID|
32、SA|Ni|KE|IDi2|IDr2)nHASH(2)=PRF(SKEYID_a|Message_ID|Ni|SA|Nr|KE|IDi2|IDr2)nHASH(3)=PRF(SKEYID_a|0|Message_ID|Ni|Nr)40密钥推导nKEYMAT(no PFS)=PRF(SKEYID_d,protocol|SPI|Ni|Nr)nKEYMAT(with PFS)=PRF(SKEYID_d,gir(QM)|protocol|SPI|Ni|Nr)41新群模式INITIATORHDR*|HASH|SA1HDR*|HASH|SA2RESPONDER42Overview阶段一:第一步协商算法、参
33、数阶段一:第二步D-H密钥交换阶段一:第三步认证SKEYIDSKEYIDSKEYID_dSKEYID_dSKEYID_aSKEYID_aSKEYID_eSKEYID_e安全数据传输阶段二:协商算法、参数阶段二:协商算法、参数安全数据传输43Cookie ExchangeInitiatorResponderCookie 交换是用来抗阻塞攻击,在ISAKMP中,攻击者会假冒多个不同的发起者与响应者建立IKE的协商,接收者可以根据Cookie对判断是否是该SA流。Cookie-ICookie-I,Cookie-RCookie-I,Cookie-R,44Next PayloadNext Payload
34、Next Payload Type ValueNext Payload Type ValueNONE 0NONE 0Security Association(SA)1Security Association(SA)1Proposal(P)2Proposal(P)2Transform(T)3Transform(T)3Key Exchange(KE)4Key Exchange(KE)4Identification(ID)5Identification(ID)5Certificate(CERT)6Certificate(CERT)6Certificate Request(CR)7Certificat
35、e Request(CR)7Hash(HASH)8Hash(HASH)8Signature(SIG)9Signature(SIG)9Nonce(NONCE)10Nonce(NONCE)10Notification(N)11Notification(N)11Delete(D)12Delete(D)12Vendor ID(VID)13Vendor ID(VID)13RESERVED 14-127RESERVED 14-127Private USE 128-255Private USE 128-25545Exchange typeExchange Type ValueNONE 0Base1Identity Protection2Authentication Only3Aggressive4Informational5ISAKMP Future Use6 31DOI Specific Use32 239Private Use 240 25546