540 likes | 1.18k Views
IPSec : AH 和 ESP. 薛开平( Xue Kaiping ) 信息网络实验室 Lab. of Information and Networks kpxue@ustc.edu.cn. 本章内容. 3.1 IPSec 协议的引入 3.2 IPv4 和 IPv6 协议 3.3 IPSec 中的安全组合( SA ) 3.4 认证头标 AH 3.5 封装安全载荷头标 ESP 3.6 IPSec 的传输模式与隧道模式 3.7 IPSec 与 NAT 3.8 IPSec 隧道模式的应用 -VPN 3.9 IPSec 的实现. 本章内容.
E N D
IPSec:AH和ESP 薛开平(Xue Kaiping) 信息网络实验室 Lab. of Information and Networks kpxue@ustc.edu.cn
本章内容 • 3.1 IPSec协议的引入 • 3.2 IPv4和IPv6协议 • 3.3 IPSec中的安全组合(SA) • 3.4 认证头标AH • 3.5 封装安全载荷头标ESP • 3.6 IPSec的传输模式与隧道模式 • 3.7 IPSec与NAT • 3.8 IPSec隧道模式的应用-VPN • 3.9 IPSec的实现
本章内容 • 3.1 IPSec协议的引入 • 3.2 IPv4和IPv6协议 • 3.3 IPSec中的安全组合(SA) • 3.4 认证头标AH • 3.5 封装安全载荷头标ESP • 3.6 IPSec的传输模式与隧道模式 • 3.7 IPSec与NAT • 3.8 IPSec隧道模式的应用-VPN • 3.9 IPSec的实现
IP Security Protocols • IPSec(IP Security)是Internet的网络层安全协议,于1995年8月发布IPSec 1.0,1998年11月发布了IPSec 2.0,同时支持IPv4和IPv6,它规定了: • IPSec的整体结构(RFC4301,2411) • IPSec协议(认证与加密)(RFC4302,4303,4305,2403) • 密钥管理协议(RFC4304,4306,2412)
为什么需要IPSec? • 计算机网络的安全性能差,存在众多安全隐患。 • 如伪造、篡改、重放、窃听 • 安全保护的范围 • 点到点(链路):由于IP分组头要用来寻路,在路由器上需要相应的安全操作(如认证或加解密) • 端到端:只需要在收发两端进行安全操作
本章内容 • 3.1 IPsec协议的引入 • 3.2 IPv4和IPv6协议 • 3.3 IPSec中的安全组合(SA) • 3.4 认证头标AH • 3.5 封装安全载荷头标ESP • 3.6 IPSec的传输模式与隧道模式 • 3.7 IPSec与NAT • 3.8 IPSec隧道模式的应用-VPN • 3.9 IPSec的实现
IPv4和IPv6协议 • IPv4协议——Internet的网络层协议
IPv6协议 • Version – 4 bit IP version (6) • Traffic Class – 8 bit priority value • Flow Label – 20 bit • Payload Length – 16 bit length of packet • Includes all extension headers plus user data • Allows for 216 – 1 (65,535) bytes • Optional Extension Headers allow for larger packet sizes • Next Header – 8 bit identifier of next header • Hop Limit – 8 bit value denoting number of hops left before packet is dropped • Source Address – 128 bit address of sending host • Target Address – 128 bit address of target host
IPv6地址 • 128位地址可产生2128个地址=3.4x1038。 • 理论上说,地球上每平方米有665,570,793,348,866,943,898,599个IPv6地址. • 实际分析表明,地球上每平方米可用的IPv6地址数为1564 - 3,911,873,538,269,506,102 • 表示方法采用十六进制冒号分割法 • 如1025:1ab6:0:0:0:87:a76f:1234 • 以上地址还可表示为1025:1ab6::87:a76f:1234 • 混合表示::FFFF:129.144.52.38 • 地址前缀表示:IPv6地址/前缀长度
Traffic class IPv4与IPv6头标比较 • V6: 6 fields + 2 addr • V4: 10 fields + 2 addr + options • Deleted: • Header length • type of service • identification, flags, fragment offset • Header Checksum • Added: • Traffic class • Flow label • Renamed: • length -> Payload length • Protocol -> Next header • time to live -> Hop Limit • Redefined: Option mechanism
IPv6 extension headers • 中继点选项(Hop-by-hop options) • 寻路头标(Routing) • 分段头标(Fragment) • 信宿选项(Destination options) • 认证头标(Authentication) • 封装安全载荷头标(Encapsulating Security Payload )
Extension Header Order • IPv6 Header • Hop by Hop Options Header • Destination Options Header 1 • Routing Header • Fragmentation Header • Authentication Header • Encapsulating Security Payload Header • Destination Options Header 2
Application data abcdefghi abc def ghi TCP TCP TCP abc abc TCP TCP def def TCP TCP ghi ghi IP IP IP IP Data in TCP/IP
Application data abcdefghi abc def ghi TCP TCP abc TCP def TCP ghi IP/IPSec IP IP IP IPSec IPSec IPSec TCP TCP TCP uvw xyz lmn Data in TCP/IPSec/IP
本章内容 • 3.1 IPsec协议的引入 • 3.2 IPv4和IPv6协议 • 3.3 IPSec中的安全组合(SA) • 3.4 认证头标AH • 3.5 封装安全载荷头标ESP • 3.6 IPSec的传输模式与隧道模式 • 3.7 IPSec与NAT • 3.8 IPSec隧道模式的应用-VPN • 3.9 IPSec的实现
3.3 IPSec中的安全组合(SA) • 需求:认证、加密算法及其参数、密钥、当前正在使用的序列号等 • SA:为使通信双方的认证/加密算法及其参数、密钥的一致,相互间建立的联系被称为安全组合或安全关联(Security Association)。数据传输是双向的,不同方向可能存在不同的策略,因此SA是单向的,在双向通信时要建立两个SA。对于某一主机来说,某个会话的输出数据和输入数据流处理需要两个独立的SA。 • SA是通过密钥管理协议在通信双方之间进行协商,协商完毕后,双方都在它们的安全关联数据库(SAD)中存储该SA参数。 • SA由一个三元组唯一地标识,该三元组为安全参数索引SPI、一个用于输出处理的目的IP地址和协议(如AH或ESP)。
安全参数索引(SPI) • SPI是为了唯一标识SA而生成的一个32位整数,由目的端确定。包含在AH头标和ESP头标中,其值1~255被IANA留作将来使用,0被保留,目前有效的值为256~232-1 • 有了SPI,相同源、目的节点的数据流可以建立多个SA
安全策略数据库 • 安全策略数据库(SPD) • SPD中包含一个策略条目的有序表,通过使用一个或多个选择符来确定每一个条目。 • 选择符可以是五元组(目的/源地址,协议,目的/源端口号),或其中几个,理论上可以根据数据包的任何一个域来确定。 • 条目中包含: • 策略(是否需要IPSec处理):丢弃,绕过不使用IPSec,加载IPSec • SA规范 • IPSec协议(AH or ESP) • 操作模式 • 算法 • 对外出处理,应在SPD中查找指向SAD中SA的指针
安全关联数据库(SAD) • SAD包含现行的SA条目,每个SA由三元组索引,一个SAD条目包含下面域: • 序列号计数器:32位整数,用于生成AH或ESP头中的序列号 • 序列号溢出:是一个标志,标识是否对序列号计数器的溢出进行审核。 • 抗重放窗口:使用一个32位计数器和位图确定一个输入的AH或ESP数据包是否是重放包 • AH的认证算法和所需密钥 • ESP的认证算法和所需密钥 • ESP加密算法,密钥,初始向量(IV)和IV模式 • IPSec操作模式 • 路径最大传输单元(PMTU) • SA生存期
本章内容 • 3.1 IPsec协议的引入 • 3.2 IPv4和IPv6协议 • 3.3 IPSec中的安全组合(SA) • 3.4 认证头标AH • 3.5 封装安全载荷头标ESP • 3.6 IPSec的传输模式与隧道模式 • 3.7 IPSec与NAT • 3.8 IPSec隧道模式的应用-VPN • 3.9 IPSec的实现
3.4 认证头标AH (Authentication Head) • AH协议提供无连接的完整性、数据源认证和抗重放保护服务 • 不提供保密性服务 • AH使用消息认证码(MAC)对IP进行认证
认证头标 • 安全参数索引(Security Parameters Index):此32比特和目的IP地址、IPSec协议(AH或ESP)组合即可确定SA,以确定采用的IPSec协议、操作模式、密码算法、密钥等。当建立新SA时,SPI的产生由目的系统选择。
认证头标 • 序列号(Sequence Number Field):单调增加的32位无符号整数,利用该域抵抗重发攻击(Replay Attack)
序列号的使用-防止重放 • 接收到包含在窗口中的新包,且验证通过,则直接进行标记; • 接收包超过了窗口右边界,且验证通过,则窗口右移,使得新包成为右边界; • 接收包超过了左边界或者没有通过验证,丢弃该包。
认证头标 • 认证数据(Authentication Data Variable):是一个长度可变的域,长度为32比特的整数倍。具体格式因认证算法而异 。该认证数据也被称为数据报的完整性校验值(Integrity Check Value, ICV)
AH处理 • 外出处理 • 使用相应的选择符(目的IP地址,端口号和传输协议)查找安全策略数据库获取策略。如需要对分组进行IPSec处理,且到目的主机的SA已经建立,那么符合分组选择符的SPD将指向外出SA数据库的一个相应SA束。如果SA还未建立,IPSec将调用IKE协商一个SA,并将其连接到SPD条目上。 • 产生或增加序列号,当一个新的SA建立时,序列号计数器初始化为0,以后每发一个分组,序列号加1 • 计算ICV(完整性校验值) • 转发分组到目的节点
AH处理 • 进入处理 • 若IP分组采用了分片处理,要等到所有分片到齐后重组 • 使用IP分组头中的SPI、目的IP地址以及IPSec协议在进入的SA数据库中查找SA,如果查找失败,则抛弃该分组,并记录事件。 • 使用已查到的SA进行IPSec处理。 • 使用分组中的选择符进入SPD查找一条域选择符匹配的策略,检查策略是否相符 • 检查序列号,确定是否为重放分组 • 使用SA指定的MAC算法计算ICV,并与认证数据域中的ICV比较,如果两值不同,则抛弃分组
完整性校验值ICV的计算 • 根据SA指定的认证算法和密钥对IP分组计算出消息认证码(MAC)。 • MAC的计算包括IP头标,计算前先将可变域置0,不变域和可预测域保持不变。但在隧道模式下,内部IP头标的可变域不用设为0。 • ICV的长度依赖于使用的MAC算法,例如,HMAC-MD5的ICV是128位,HMAC-SHA1的ICV是160位。如果ICV不是32的整数倍,就需要填充成32的整数倍。
本章内容 • 3.1 IPsec协议的引入 • 3.2 IPv4和IPv6协议 • 3.3 IPSec中的安全组合(SA) • 3.4 认证头标AH • 3.5 封装安全载荷头标ESP • 3.6 IPSec的传输模式与隧道模式 • 3.7 IPSec与NAT • 3.8 IPSec隧道模式的应用-VPN • 3.9 IPSec的实现
3.5 封装安全载荷头标Encapsulating Security Payload • ESP提供数据保密、无连接完整性、抗重播服务 • ESP大都采用对称密码体制加密数据 • ESP使用消息认证码(MAC)提供认证服务
填充的目的 • 加密算法要求明文为某个数目字节的整数倍; • 32位对齐; • 隐藏实际载荷长度,提供流量保密性
ESP处理 • 外出处理 • 使用分组的相应选择符(目的IP地址、端口、传输协议等)查找安全策略数据库(SPD)获取策略,如分组需要IPSec处理,且其SA已建立,则与选择符相匹配的SPD项将指向安全关联数据库中的相应SA,否则则使用IKE建立SA。 • 生成或增加序列号 • 加密分组,SA指明加密算法,一般采用对称密码算法 • 计算完整性校验值
ESP处理 • 进入处理 • 若IP分组分片,先重组 • 使用目的IP地址、IPSec协议、SPI进入SAD索引SA,如果查找失败,则丢弃分组 • 使用分组的选择符进入SPD中查找与之匹配的策略,根据策略检查该分组是否满足IPSec处理要求 • 检查抗重播功能 • 如SA指定需要认证,则检查数据完整性 • 解密
本章内容 • 3.1 IPsec协议的引入 • 3.2 IPv4和IPv6协议 • 3.3 IPSec中的安全组合(SA) • 3.4 认证头标AH • 3.5 封装安全载荷头标ESP • 3.6 IPSec的传输模式与隧道模式 • 3.7 IPSec与NAT • 3.8 IPSec隧道模式的应用-VPN • 3.9 IPSec的实现
IPSec的传输模式与隧道模式 • 传输模式 • 在传输模式中,AH和ESP头标被插在IP头标及其他选项(或扩展头标)之后,但在传输层协议之前。它保护净荷的完整性和机密性。 • 隧道模式 • 在隧道模式下,AH或ESP头标插在IP头标之前,另外生成一个新的IP头放在前面,隧道的起点和终点的网关地址就是新IP头的源/目的IP地址。 • 保护整个IP分组
IPSec Uses • 优点: • 对边界所有流量强制实现安全性,内部网络无需关注开销; • 对上层协议、终端用户透明 • 构建安全的虚拟专用网
本章内容 • 3.1 IPsec协议的引入 • 3.2 IPv4和IPv6协议 • 3.3 IPSec中的安全组合(SA) • 3.4 认证头标AH • 3.5 封装安全载荷头标ESP • 3.6 IPSec的传输模式与隧道模式 • 3.7 IPSec与NAT • 3.8 IPSec隧道模式的应用-VPN • 3.9 IPSec的实现
IPSec与NAT • NAT(Network Address Translation) ,NATPT通常在防火墙或网关上实现,对过往的IP地址、端口号进行转换 • 具有AH头标或ESP头标的的IP分组不能穿越NAT和NATPT • 地址的修改使得接收端的AH认证失败 • 上层信息(端口号、校验和)的加密,使端口无法得知,校验和验证失败 • 针对ESP问题,IETF的解决方案:在ESP头标前插入一个UDP头标
本章内容 • 3.1 IPsec协议的引入 • 3.2 IPv4和IPv6协议 • 3.3 IPSec中的安全组合(SA) • 3.4 认证头标AH • 3.5 封装安全载荷头标ESP • 3.6 IPSec的传输模式与隧道模式 • 3.7 IPSec与NAT • 3.8 IPSec隧道模式的应用-VPN • 3.9 IPSec的实现
3.8 IPSec隧道模式的应用-VPN • VPN( Virtual Private Networks )虚拟专网 • 在虚拟专网中,任意两个节点之间的连接并没有传统专网所需的端到端的物理链路,而是利用某种公众网的资源动态组成的。 • IETF草案理解基于IP的VPN为:“使用IP机制仿真出一个私有的广域网” • 是通过隧道技术在公共数据网络上仿真一条点到点的专线技术。 • 所谓虚拟,是指用户不再需要拥有实际的专用线路,而是使用Internet公共线路。所谓专用网络,是指用户可以为自己制定一个最符合自己需求的网络。 • IPSec VPN就是利用IPSec技术在Internet上建立的VPN
The Internet 虚拟专网的用途 实现: 通过隧道技术(协议)和一些认证、加密机制,实现跨越Internet的互连 背景: 跨国(地区)公司分支机构的LAN互连
本章内容 • 3.1 IPsec协议的引入 • 3.2 IPv4和IPv6协议 • 3.3 IPSec中的安全组合(SA) • 3.4 认证头标AH • 3.5 封装安全载荷头标ESP • 3.6 IPSec的传输模式与隧道模式 • 3.7 IPSec与NAT • 3.8 IPSec隧道模式的应用-VPN • 3.9 IPSec的实现
3.9 IPSec的实现 • FreeBSD,OpenBSD • KAME:www.kame.net • OpenBSD Doc :www.openbsd.org/ • Linux • FreeS/Wan:www.swan.org • Openswan、StrongsWan是FreeS/Wan的延续 • Solaris • Cisco IOS (PIX and Routers) • Windows 2000