E-mail: hjbin@infosec.pku.edu.cn IP安全 胡建斌 北京大学网络与信息安全研究室 E-mail: hjbin@infosec.pku.edu.cn http://infosec.pku.edu.cn/~hjbin
目 录 TCP/IP协议 IPSec的结构 认证头AH 封装安全载荷 ESP 安全关联(SA)和安全策略(SP) ISAKMP和Internet密钥交换模式
TCP/IP协议栈
用户数据经过协议栈的封装过程
网络层安全
传输层安全
应用层安全
IPV4数据报
IPv4的缺陷 缺乏对通信双方身份真实性的鉴别能力 缺乏对传输数据的完整性和机密性保护的机制 由于IP地址可软件配置以及基于源IP地址的鉴别机制 ,IP层存在业务流被监听和捕获、IP地址欺骗、信息泄露和数据项篡改等攻击
IPv6
目 录 TCP/IP协议 IPSec的结构 认证头AH 封装安全载荷 ESP 安全关联(SA)和安全策略(SP) ISAKMP和Internet密钥交换模式
IPSec 两个通信协议:AH , ESP 两种操作模式:传输模式,隧道模式 一个密钥交换管理协议:IKE 两个数据库:安全策略数据库SPD,安全关联数据库SAD
IPSec的体系结构
IPSec的实现
目 录 TCP/IP协议 IPSec的结构 认证头AH 封装安全载荷 ESP 安全关联(SA)和安全策略(SP) ISAKMP和Internet密钥交换模式
认证头 AH
AH 为IP包提供数据完整性和鉴别功能 利用MAC码实现鉴别,双方必须共享一个密钥 鉴别算法由SA指定 - 鉴别的范围:整个包 两种鉴别模式: - 传输模式:不改变IP地址,插入一个AH - 隧道模式:生成一个新的IP头,把AH和原来的整个IP包放到新IP包的载荷数据中
AH 提供的服务包括 数据源认证 无连接的完整性 可选的抗重放服务 不提供保密性
AH头格式
AH头说明- Next Header 8比特,指出AH后的下一载荷的类型(RFC1700)
AH头说明-Payload Length 包含以32比特为单位的AH的长度减 2
AH头说明-SPI 32bit 用于和源/目的IP地址、IPSec协议(ESP/AH)共同唯一标识一个SA
AH头说明-Sequence Number SA建立时,发送方和接收方SN初始化为0 通信双方每使用一个特定的SA发送一个数据报则将它们增1,用于抵抗重放攻击 AH规范强制发送者必须发送SN给接收者,而接收者可以选择不使用抗重放特性,这时它不理会该SN 若接收者启用抗重放特性,则使用滑动接收窗口机制检测重放包。具体的滑动窗口因IPSec的实现而异
AH头说明-Authentication Data 该变长域包含数据报的认证数据,称为完整性校验值(ICV) 生成ICV的算法由SA指定,具体视IPSec的具体实现而定 为保证互操作性,AH强制所有的IPSec必须实现两个MAC: HMAC-MD5, HMAC-SHA-1
AH使用模式 传输模式 通道模式
AH传输模式的特点 保护端到端通信 通信的终点必须是IPSec终点
AH认证
AH传输模式失效案例-1 NAT 网关
AH传输模式失效案例-2 代理网关
AH隧道模式的特点 保护点到点通信 通信的终点必须是IPSec终点 克服了传输模式的一些缺点
AH认证
完整性校验值(ICV)的计算 ICV用于验证IP包的完整性 ICV采用MAC生成 计算MAC时需要密钥,因此通信双方需要共享密钥,该密钥在SA 中定义,由通信双方协商生成 ICV的长度依赖于所使用的MAC算法: HMAC-MD5: 128位 HMAC-SHA-1:160位
AH输出-输入处理流程
目 录 TCP/IP协议 IPSec的结构 认证头AH 封装安全载荷 ESP 安全关联(SA)和安全策略(SP) ISAKMP和Internet密钥交换模式
封装安全载荷 ESP
ESP 提供保密功能,包括报文内容的机密性和有限的通信量的机密性,也可以提供鉴别服务(可选) 将需要保密的用户数据进行加密后再封装到一个新的IP包中,ESP只鉴别ESP头之后的信息 加密算法和鉴别算法由SA指定 两种模式:传输模式和隧道模式
ESP 提供的服务包括 数据保密性 有限的数据流保密性 数据源认证(认证是可选的) 无连接的完整性 抗重放服务
初始化向量(IV)
加密和鉴别算法 加密算法 -3DES、RC5、IDEA、3IDEA、CAST、Blowfish 鉴别算法 -ICV计算应支持: HMAC-MD5-96、HMAC-SHA-1-96, 仅用96位
ESP输出-输入处理流程
SA组合 特定的通信量需要同时调用AH和ESP服务 特定的通信量需要主机之间和防火墙之间的服务 传输邻接:同一分组应用多种协议,不形成隧道 循环嵌套:通过隧道实现多级安全协议的应用
机密与鉴别组合使用
机密与鉴别组合使用 传输邻接使用两个捆绑的传输SA 内部是ESP SA(没有鉴别选项),外部是AH SA
目 录 TCP/IP协议 IPSec的结构 认证头AH 封装安全载荷 ESP 安全关联(SA)和安全策略(SP) ISAKMP和Internet密钥交换模式
安全关联-SA
安全关联-SA 用于通信对等方之间对某些要素的一种协定,如: IPSec协议 协议的操作模式:传输、隧道 密码算法 密钥 用于保护数据流的密钥的生存期
安全关联-SA 通过像IKE这样的密钥管理协议在通信对等方之间协商而生成 当一个SA协商完成后,两个对等方都在其安全关联数据库(SAD)中存储该SA参数 SA具有一定的生存期,当过期时,要么中止该SA,要么用新的SA替换 终止的SA将从SAD中删除
安全关联-SA SAn …… SA3 SA2 SA1
安全关联-SA 安全参数索引 32位整数,唯一标识SA 1-255被IANA保留将来使用 0被保留用于本地实现 …… SA1 SA2 SA3 SAn …… SA3 SA2 SA1 安全参数索引 32位整数,唯一标识SA 1-255被IANA保留将来使用 0被保留用于本地实现
安全关联-SA SAn …… SA3 SA2 SA1 输出处理SA的目的IP地址 输入处理SA的源IP地址
安全关联-SA SAn …… SA3 SA2 SA1 AH ESP
安全关联-SA 32位整数,刚开始通常为0 每次用SA来保护一个包时增1 用于生成AH或ESP头中的序列号域 在溢出之前,SA会重新进行协商 SAn …… SA3 SA2 SA1 32位整数,刚开始通常为0 每次用SA来保护一个包时增1 用于生成AH或ESP头中的序列号域 在溢出之前,SA会重新进行协商
安全关联-SA SAn …… SA3 SA2 SA1 用于外出包处理 标识序列号计数器的溢出时,一个SA是否仍 可以用来处理其余的包
安全关联-SA SAn …… SA3 SA2 SA1 使用一个32位计数器和位图确定一个输入的 AH或ESP数据包是否是一个重放包
安全关联-SA SAn …… SA3 SA2 SA1 AH认证密码算法和所需要的密钥
安全关联-SA SAn …… SA3 SA2 SA1 ESP认证密码算法和所需要的密钥
安全关联-SA ESP加密算法,密钥,初始化向量(IV)和IV模式 IV模式:ECB,CBC,CFB,OFB …… SA1 SA2 SA3 SAn …… SA3 SA2 SA1 ESP加密算法,密钥,初始化向量(IV)和IV模式 IV模式:ECB,CBC,CFB,OFB
安全关联-SA SAn …… SA3 SA2 SA1 传输模式 隧道模式 通配模式:暗示可用于传输隧道模式
安全关联-SA 路径最大传输单元 是可测量和可变化的 它是IP数据报经过一个特定的从源主机到 目的主机的网络路由而无需分段的IP数据 SAn …… SA3 SA2 SA1 路径最大传输单元 是可测量和可变化的 它是IP数据报经过一个特定的从源主机到 目的主机的网络路由而无需分段的IP数据 包的最大长度
安全关联-SA 包含一个时间间隔 外加一个当该SA过期时是被替代还是终止 采用软和硬的存活时间:软存活时间用于在 SAn …… SA3 SA2 SA1 包含一个时间间隔 外加一个当该SA过期时是被替代还是终止 采用软和硬的存活时间:软存活时间用于在 SA会到期之前通知内核,便于在硬存活时间 到来之前内核能及时协商新的SA
安全策略-SP
安全策略-SP SP:指定用于到达或源自特定主机/网络的数据流的策略 SPD:包含策略条目的有序列表 通过使用一个或多个选择符来确定每个条目
安全策略-SP选择符 32位IPv4或128位IPv6地址 可以是:主机地址、广播地址、 单播地址、任意播地址、多播组 地址地址范围,地址加子网掩码 通配符号等 SRn …… SR3 SR2 SR1
安全策略-SP选择符 32位IPv4或128位IPv6地址 可以是:主机地址、广播地址、 单播地址、任意播地址、多播组 地址地址范围,地址加子网掩码 通配符号等 SRn …… SR3 SR2 SR1
安全策略-SP选择符 指定传输协议(只要传输协议 能访问) 许多情况下,只要使用了ESP, 传输协议便无法访问,此时需 使用通配符 …… SRn …… SR3 SR2 SR1
安全策略-SP选择符 SRn …… SR3 SR2 SR1 完整的DNS名 或e-mail地址
安全策略-SP选择符 完整的DNS用户名 如hjbin@infosec.pku.edu.cn 或X.500 DN …… SR1 SR2 SRn …… SR3 SR2 SR1 完整的DNS用户名 如hjbin@infosec.pku.edu.cn 或X.500 DN
安全策略-SP选择符 SRn …… SR3 SR2 SR1 应用端口 如无法访问,则使用通配符
安全策略-SP SRn …… SR3 SR2 SR1 采取的动作 Discard Bypass IPSec Apply IPSec
安全策略-SP 包括: 指向一个SA或SA集的指针 应用的IPSec协议 运用的密码算法 生成ICV的算法 …… SR1 SR2 SR3 SRn …… SR3 SR2 SR1 包括: 指向一个SA或SA集的指针 应用的IPSec协议 运用的密码算法 生成ICV的算法
SPD SAD 输入数据报处理
SPD SAD 输出数据报处理
目 录 TCP/IP协议 IPSec的结构 认证头AH 封装安全载荷 ESP 安全关联(SA)和安全策略(SP) ISAKMP和Internet密钥交换模式
Internet安全关联密钥 管理协议 (ISAKMP)
ISAKMP定义协商、建立、修改和删除SA的过程和包格式 (RFC2408) ISAKMP消息可通过TCP和UDP传输:Port 500
主题 ISAKMP头格式 ISAKMP载荷格式 ISAKMP协商阶段 ISAKMP交换类型
ISAKMP头格式
ISAKMP头格式- Initiator cookie 8bit串,由ISAKMP交换的发起者生成 会话过程中保持不变,用于验证 生成的方法可不同,建议采用MD5、SHA-1或其它支持的杂凑函数利用通信方源地址、目的地址、UDP/TCP源端口、目的端口、生成时间等生成 必须保证唯一
ISAKMP头格式- Next payload
ISAKMP头格式- Exchange type
ISAKMP头格式- Flag 使用8bit中的低3位 1-加密比特 2-提交比特 3-仅认证比特
ISAKMP载荷格式
SA数据属性
ESP加密算法
ISAKMP载荷类型 通用载荷 安全关联载荷 建议载荷 变换载荷 密钥交换载荷 标识载荷 证书载荷 证书请求载荷 杂凑载荷 签名载荷 nonce载荷 通知载荷 删除载荷 厂商ID载荷
Internet密钥交换
交换阶段 交换模式 生成密钥信息 Oakley群 模式配置 混合认证
IKE -ISAKMP IKE是一个混合协议,使用到三个不同协议的相关部分: -Oakley密钥确定协议 -SKEME IKE实际定义了一个密钥交换,而ISAKMP仅仅提供了一个可由任意密钥交换协议使用的通用密钥交换框架
Internet 密钥两阶段协商
阶段1协商 ISAKMP通信双方建立一个ISAKMP SA,即用于保护双方后面的协商通信的一个协定 然后用这个ISAKMP SA为保护其它协议(如AH和ESP)建立SA的协商
阶段2协商 用于为其它安全服务,如AH和ESP建立SA 一个阶段1的SA可用于建立多个阶段2的SA
Internet 密钥交换模式
主模式 野蛮模式 快速模式 新群模式
主模式 用于协商阶段1的SA 这种交换模式被设计成将密钥交换信息与身份、认证信息相隔离,便于保护什么信息
主模式 1-发起者发送一个封装有建议载荷的SA载荷,而建议载荷重又封装有变换载荷 2-响应者发送一个SA载荷,表明接受协商的SA的建议 3、4-发起者和接受者交换D-H公开值和各种辅助数据,如nonce。Nonce是计算共享密钥(用来生成加密密钥和认证密钥)所必须的 5、6-双方交换标识数据并认证D-H交换。这两个消息中传递的信息是加密的,用于加密的密钥由消息3-4中交换的密钥信息生成,所以身份信息受到保护
野蛮模式 在不需要保护身份信息时,用于协商阶段1的SA
野蛮模式 1-发起者发送一个封装有单个建议载荷的SA载荷,而建议载荷重又封装有变换载荷。在野蛮模式中,只提供带有一个变换的建议载荷,响应者可以选择接受或拒绝该建议。D-H公开值、需要的随机数和身份信息也在其中发送 2-响应者发送一个SA载荷,其中封装有一个包含发起者的建议和推荐的变换的建议载荷。 D-H公开值、需要的随机数和身份信息也在其中发送 3-发送者发送应用一致同意的认证函数生成的结果
快速模式 用于协商阶段2的SA,协商受到阶段1协商好的ISAKMP SA的保护 这种交换模式下交换的载荷都是加密的
新群(new group)模式 用于为D-H密钥交换协商一个新的群 这种交换模式受到阶段1协商好的ISAKMP SA的保护
IPSec和IKE小结 IPSec在网络层上提供安全服务:定义了两个协议AH和ESP IKE提供了密钥交换功能:利用ISAKMP提供的框架、以及Oakley和SKEME的密钥交换协议的优点 通过SA把两部分连接起来 已经发展成为Internet标准
IPSec和IKE小结 IPSec太复杂 - 协议复杂性,导致很难达到真正的安全性 - 管理和配置复杂,使得安全性下降 实现上的兼容性 攻击:DOS,网络层之下的协议、之上的协议的弱点 还在进一步完善