1 / 46

IPSec-IKE

IPSec-IKE. 薛开平( Xue Kaiping ) 信息网络实验室 Lab. of Information and Networks kpxue@ustc.edu.cn. 本章内容. 4.1 什么是 IKE? 4.2 ISAKMP 协议 4.3 IKE 第一阶段:建立 ISAKMP SA 4.4 IKE 第二阶段:建立 IPSec SAs. 4.1 什么是 IKE?. IKE ( Internet Key Exchange , RFC 4306 ):因特网密钥交换协议,是一个以受保护的方式 动态协商 IPsec SA 的协议。

verna
Download Presentation

IPSec-IKE

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. IPSec-IKE 薛开平(Xue Kaiping) 信息网络实验室 Lab. of Information and Networks kpxue@ustc.edu.cn

  2. 本章内容 • 4.1 什么是IKE? • 4.2 ISAKMP协议 • 4.3 IKE第一阶段:建立ISAKMP SA • 4.4 IKE第二阶段:建立IPSec SAs

  3. 4.1 什么是IKE? • IKE( Internet Key Exchange ,RFC4306):因特网密钥交换协议,是一个以受保护的方式动态协商IPsec SA的协议。 • IKE的功能:使用某种长期密钥进行双向认证并建立会话密钥 • 协商:通信参数,安全特性(可选) • 认证通信对端 • 保护实体的标识等(可选) • 用安全的方法产生、交换、建立密钥 • 管理,删除安全关联(SA) • 长期密钥包括:共享秘密密钥、只用于签名的密钥、用于加密的密钥

  4. IKE的组成和实现 • IKE是一个混合的协议,它的组成: • Internet密钥交换协议(IKEv2,RFC4306) • Internet安全关联和密钥管理协议(ISAKMP,RFC2408) • Oakley密钥确定协议(RFC2412) • IPSec Domain of Interpretation ,(IPSec DOI,RFC2407) • IKE分两个阶段实现: • 第一阶段为建立IKE本身使用的安全信道而相互交换SA(采用ISAKMP)——ISAKMP SA(双向) • 第二阶段利用第一阶段建立的安全信道交换IPSec通信中使用的SA——IPSec SA(单向)

  5. Application Process DOI Definition Application Protocol IKE Security Protocol (IPsec) Socket Layer Protocol Transport Protocols (TCP/UDP) Internet Protocol (IP) Link Layer Protocol IKE Network Placement

  6. 4.2 ISAKMP协议 • Internet Security Association and Key Management Protocol (RFC 2408) • 提供密钥管理架构 • 定义SA的建立、协商、修改、删除规程和分组格式 • 独立于密钥交换协议、加密算法和认证方法 • 下层由UDP协议承载,端口号为500。

  7. ISAKMP payload format • ISAKMP head ISAKMP头(HDR) • Generic Payload Header 通用载荷头 • Transform Payload 转换载荷 • Proposal Payload 提议载荷 • Security Association Payload 安全关联载荷(SA) • Key Exchange Payload 密钥交换载荷 • Identification Payload 标识载荷 • Certificate Payload 证书载荷(CERT) • Certificate Request Payload 证书请求载荷 • Hash Payload 散列载荷 • Signature Payload 签名载荷 • Nonce Payload Nonce载荷 • Notification Payload、Delete Payload

  8. 抗阻塞,通常采用HASH算法对地址、端口号及本地秘密信息计算得到。抗阻塞,通常采用HASH算法对地址、端口号及本地秘密信息计算得到。 ISAKMP head 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 指示后续的载荷是否是加密或认证? 主版本、次版本 由发起者生成的一个随机值,用于阶段2协商中标识协议状态 以字节为单位,表示整个报文的长度(头+载荷)

  9. ISAKMPGeneric Payload Header • 每一个ISAKMP载荷由通用头开始,它定义了载荷的边界,所以可以连接不同的载荷。

  10. Security Association Payload • 用于协商SA所基于的解释域,DOI定义载荷格式、交换类型和用于命名的相关信息(密码算法,模式等)的约定。

  11. Proposal Payload • 包括SA协商中需要的信息,协商的协议 建议号,若有相同的建议号,则表示这两个建议是and关系,如果不同,则表示or关系 0-IKE 1-ISAKMP协议 2-AH协议 3-ESP协议 4-IPcomp

  12. Transform Payload • 定义安全服务中的算法 AH变换标识符: 2-AH_MD5 3-AH_SHA ESP变换标识符: 1-带64比特IV的CBC-DES 2-CBC-DES 3-三重DES

  13. Key Exchange Payload 密钥交换载荷 以字节为单位 变长域,用来生成密钥的数据

  14. Identification Payload标识载荷 • 用于通信双方交换身份信息 6——TCP 17——UDP 描述标识数据域中发现的身份信息 1——表示数据域中是4字节的IPv4地址

  15. Certificate Payload证书载荷 指示证书的种类和相关信息: 类型 值 PGP证书 2 X.509签名证书 4 X.509密钥交换证书 5 变长域,包含证书编码域中指定类型的真正的证书数据。

  16. 哈希、签名和nonce载荷

  17. 通知载荷

  18. IKE的结构 • 安全关联(SA) • 安全关联数据库(SAD) • 安全参数索引(SPI)

  19. 4.3 IKE第一阶段 • 目的: • 建立ISAKMP SA(安全通道) • 步骤(交换3,6个报文) • 协商安全参数 • Diffie - Hellman 交换 • 认证实体 • 交换模式: • 主模式(Main Mode):在IKE中必须配置主模式 • 野蛮模式( Aggressive Mode):用来简化规程和提高处理效率

  20. g mod p x A B g mod p y x y K = ( g ) mod p = ( g ) mod p y x x y Diffie Hellman Algorithm • Setup • p : prime. • g : generator of Z*p • protocol • share a secret value K

  21. 第一阶段属性 • 认证方法 • 预先共享密钥 • 数字签名(DSS或RSA) • 公钥加密(RSA或EI-Gamal) • 群(group)描述(预先定义) • 群类型(协商) • 模指数群 MODP(modular exponentiation group) • 在有限域GF[2^N]上定义的椭圆曲线群 EC2N (elliptic curve group over GF[2^N])

  22. IKE预定义群 • MODP • 素数Prime:768-bit,1024-bit,1536-bit • 生成元Generator:2 • EC2N • GF[2^155],GF[2^185] • GF[2^163](2groups),GF[2^283](2groups)

  23. 第一阶段属性(续) • 加密算法 • 密钥长度 • 分组大小 • 哈希算法 • 生存时间(秒和/或千字节)

  24. 主模式 Crypto suites I support Message 1 Alice Bob 参数协商 Crypto suite I choose Message 2 ga mod p Message 3 交换密钥 gb mod p Message 4 gab mod p{“Alice”,Proof I’m Alice} 发送ID 认证 加密 Message 5 gab mod p{“Bob”,Proof I’m Bob} Message 6

  25. 野蛮模式 Alice Bob ga mod p, “Alice”, crypto proposal Message 1 gb mod p, crypto choice, proof I’m Bob Message 2 Proof I’m Alice Message 3

  26. 符号说明 • HDR:一个ISAKMP头,HDR*表明ISAKMP后面的载荷是加密的 • SA:带有一个或多个建议的安全关联载荷 • KE:密钥交换载荷 • IDX:标识载荷,X=i表示发起者,X=r表示响应者 • HASH:杂凑载荷 • SIG:签名载荷 • CERT:证书载荷 • NX:X的nonce载荷,X为i(发起者)或r(响应者) • 〈P〉_b:载荷P的主体,就是没有通用头的载荷 • CKY-I(CKY-R):ISAKMP头中的发起者(响应者)cookie • gXi或gXr:发起者或响应者的D-H公开值 • Prf(key,msg):使用密钥key和输入信息msg的伪随机数函数,如HMAC。 • SKEYID:一个衍生自仅有通信双方知道的秘密密钥信息的密钥串。 • SKEYIDe:ISAKMP用来保护它的消息保密性的密钥信息 • SKEYIDa:ISAKMP用来认证它的消息的密钥信息 • SKEYIDd:用来在第二阶段协商中为非ISAKMP SA生成密钥的密钥信息

  27. HDR contains CKY-I | CKY-R,是ISAKMP头标 SA带有一个或多个建议的安全关联载荷。Ni/Nr是nonce值 KE = g^i (Initiator) or g^r (Responder),是密钥交换载荷 IDii/IDir是发起者/响应者的标识载荷 HASH是杂凑载荷 协商了CKY-I,CKY-R;SA带有一个或多个建议载荷、变换载荷,确定了加密、认证算法等 HDR SA KE 交换了g^i, g^r和Ni,Nr,生成密钥: SKEYID=PRF(preshared key, Ni|Nr) SKEYID_d =PRF(SKEYID, g^ir|CKY-i|CKY-r|0) SKEYID_a =PRF(SKEYID, SKEYID_d|g^ir|CKY-I|CKY-R|1) SKEYID_e = PRF(SKEYID, SKEYID_a|g^ir|CKY-I|CKY-R|2) 主模式:用预共享密钥认证 发起者 响应者

  28. 哈希值计算 • HASH_I: • HMAC_H(SKEYID, g^i | g^r | CKY-I | CKY-R | SA | IDii) • HASH_R: • HMAC_H(SKEYID, g^r | g^i | CKY-R | CKY-I | SA | IDir)

  29. 主模式:用数字签名认证 交换了g^i, g^r和Ni,Nr,生成密钥: SKEYID=PRF(g^ir, Ni|Nr) SKEYID_d =PRF(SKEYID, g^ir|CKY-i|CKY-r|0) SKEYID_a =PRF(SKEYID, SKEYID_d|g^ir|CKY-I|CKY-R|1) SKEYID_e = PRF(SKEYID, SKEYID_a|g^ir|CKY-I|CKY-R|2) • HDR contains CKY-I | CKY-R • KE = g^i (Initiator) or g^r (Responder) • SIG_I/SIG_R = digital sig of HASH_I/HASH_R • CERT是证书载荷

  30. 主模式:用公钥加密认证 • HDR contains CKY-I | CKY-R,HASH(l)是响应方证书的HASH值 • KE = g^i (Initiator) or g^r (Responder) • 这里nonce是通过加密传输的,因此可作为共享密钥,HASH值就可以直接用来认证对方的身份。

  31. 用公钥加密认证中存在的问题 • 问题 • 采用了四次公钥加/解密操作,耗费计算资源,与签名认证算法相比,多了两次加/解密 • 修改方法 • 采用修正的公钥加密认证

  32. Main Mode: Authentication with Revised Public Key Encryption HDR contains CKY-I | CKY-R KE = g^i (Initiator) or g^r (Responder) Ki = prf(Ni, CKY-I), Kr = prf(Nr, CKY-R)

  33. 密钥推导 • SKEYID • Pre-shared keys • SKEYID=PRF(preshared key, Ni|Nr) • SKEYID是从预共享密钥推导得到,并且总是与Ni/Nr有关,这样即使采用相同的预共享密钥,不同的Ni/Nr产生的SKEYID是不同的。 • Digital signatures: • SKEYID=PRF(Ni|Nr, gir) • Public key encryption • SKEYID=PRF(hash(Ni|Nr), CKY-i|CKY-r)

  34. 密钥推导(续) • SKEYID_d (used to derive keying material for IPsec SA): • SKEYID_d=PRF(SKEYID, gir|CKY-i|CKY-r|0) • SKEYID_a (auth key for ISAKMP SA): • SKEYID_a=PRF(SKEYID,SKEYID_d|gir|CKY-i|CKY-r|1) • SKEYID_e (enc key for ISAKMP SA): • SKEYID_e=PRF(SKEYID,SKEYID_a|gir|CKY-i|CKY-r|2)

  35. IKE第一阶段小节 • 认证 • 根据预共享密钥和公钥密码机制 • 抗中间人、伪装攻击 • DH密钥协商 • 提供密钥的生成源gir,Ni/r,生成SKEYID,SKEYID_d,SKEYID_a,SKEYID_e

  36. Why all these secrets? • SKEYID_d is used for deriving keying data for IPSec • SKEYID_a is used for integrity and data source authentication • SKEYID_e is used to encrypt IKE messages. • Different keys must be used for security purposes. Because of thehash function PRF, the original secret SKEYID cannot becalculated from the derived secrets.

  37. 4.4 IKE第二阶段 • 目的: • 建立IPsec SA,一个第1阶段的SA可以用于建立多个第2阶段的SA。 • 步骤(3报文交换) • 协商安全参数 • 可选的Diffie-Hellman交换 • 可选的一致性(Identity)交换 • 快速模式(Quick Mode)

  38. 阶段2属性 • 群描述(for PFS,perfect forward secrecy) • 加密算法 • 密钥长度 • Key rounds • 认证算法 • 生存时间(秒和/或千字节) • 加密模式(传输或隧道)

  39. 1 HDR* | HASH(1) | SA | Ni [ | KE] [ | IDi2 | IDr2] 2 HDR* | HASH(2) | SA | Nr [ | KE] [ | IDi2 | IDr2] 3 RESPONDER HDR* | HASH(3) INITIATOR 快速模式 • HDR contains CKY-I | CKY-R • KE (for PFS) = g^I (Initiator) or g^r (Responder) • HASH(1) =PRF (SKEYID_a | Message_ID | SA|Ni[|KE][| IDi2 | IDr2]) • HASH(2)=PRF (SKEYID_a | Message_ID | Ni | SA|Nr[|KE][| IDi2 | IDr2]) • HASH(3) =PRF (SKEYID_a | 0 | Message_ID | Ni | Nr)

  40. 密钥推导 • KEYMAT (no PFS)=PRF(SKEYID_d, protocol | SPI | Ni | Nr) • KEYMAT (with PFS)=PRF(SKEYID_d, g^ir (QM) | protocol | SPI | Ni | Nr)

  41. 阶段一:第一步 协商算法、参数 阶段一:第二步 D-H密钥交换 SKEYID_a 阶段一:第三步 认证 SKEYID SKEYID_e SKEYID SKEYID_d SKEYID_e SKEYID_d SKEYID_a 阶段二:协商算法、参数 阶段二:协商算法、参数 安全数据传输 安全数据传输 Overview

  42. 思考 • 作为认证交换的基础,采用预共享密钥、签名公钥、加密公钥等不同类型分别有哪些好处? • 理清楚IKE SA、IPSec SA中的密钥派生过程。 • 推荐大作业:OpensWan和StrongsWan安装和使用

  43. Cookie Exchange Responder Initiator Cookie-I Cookie-I,Cookie-R Cookie-I,Cookie-R,… Cookie 交换是用来抗阻塞攻击,在ISAKMP中,攻击者会假冒多个不同的发起者与响应者建立IKE的协商,接收者可以根据Cookie对判断是否是该SA流。

  44. Next Payload Next Payload Type Value NONE 0 Security Association (SA) 1 Proposal (P) 2 Transform (T) 3 Key Exchange (KE) 4 Identification (ID) 5 Certificate (CERT) 6 Certificate Request (CR) 7 Hash (HASH) 8 Signature (SIG) 9 Nonce (NONCE) 10 Notification (N) 11 Delete (D) 12 Vendor ID (VID) 13 RESERVED 14 - 127 Private USE 128 - 255

  45. Exchange type Exchange Type Value NONE 0 Base 1 基础类型 Identity Protection 2 主模式 Authentication Only 3 Aggressive 4 野蛮模式 Informational 5 ISAKMP Future Use 6 – 31 DOI Specific Use 32 – 239 Private Use 240 – 255

More Related