1第10章IP安全协议(IPSec)2背景•EverythingoverIP(TCP/IP,VOIP…)。–但是IP不能提供安全性。•前身:IPSP(IPSecurityProtocol)。•IETF中的IPSecurityProtocolWorkingGroup工作组负责标准化,目标:–该体制不仅适用于IP目前的版本(IPv4),也能在IP的新版本(IPng或IPv6)下工作;–可为运行于IP顶部的任何一种协议提供保护;–与加密算法无关,即使加密算法改变了或增加新的算法,也不对其他部分的实现产生影响;–必须能实现多种安全策略,但要避免给不使用该体制的人造成不利影响。3IPSec初始文档集RFC编号RFC名称现状1825SecurityArchitecturefortheInternetProtocol被RFC2401取代1826IPAuthenticationHeader(AH)被RFC2402取代18211IPEncapsulatingSecurityPayload(ESP)被RFC2406取代1828IPAuthenticationusingKeyedMD5有效1829TheESPDES-CBCTransform有效4IPSec体系结构5IPSec提供的安全机制•鉴别–保证收到的数据包的确是由数据包头所标识的数据源发来的,且数据包在传输过程中未被篡改。•保密性–保证数据在传输期间不被未授权的第三方窥视。•密钥管理–解决密钥的安全交换。6IPSec提供的安全服务协议安全服务AHESP(只加密)ESP(加密并鉴别)访问控制服务YYY无连接完整性Y-Y数据源鉴别Y-Y拒绝重放的分组YYY保密性-YY流量保密性-YY7IPSec的典型用途•保证因特网上各分支办公点的安全连接。•保证因特网上远程访问的安全。•通过外部网或内部网建立与合作伙伴的联系。•提高了电子商务的安全性。8IPSec的优点•如果在路由器或防火墙上执行了IPSec,它就会为周边的通信提供强有力的安全保障。一个公司或工作组内部的通信将不涉及与安全相关的费用。•IPSec在传输层之下,对于应用程序来说是透明的。当在路由器或防火墙上实现IPSec时,无需更改用户或服务器系统中的软件设置。即使在终端系统中执行IPSec,应用程序一类的上层软件也不会被影响。•IPSec对终端用户来说是透明的,因此不必对用户进行安全机制的培训。•如果需要的话,IPSec可以为个体用户提供安全保障,这样做就可以保护企业内部的敏感信息。9IPSec的工作模式•传输模式–传输模式保护的是IP载荷。•隧道模式–隧道模式保护的是整个IP包。10传输模式和隧道模式的比较11IPSec的实施位置—端主机•优点:–可以保障端到端的安全性;–能够实现所有的IPSec安全模式;–能够针对单个数据流提供安全保障;–在建立IPSec的过程中,能够记录用户身份验证的相关数据和情况。•实施方案可分为两类:–与主机中的操作系统集成;–作为一个单独的部分在协议堆栈的网络层和数据链路层之间实施。12IPSec的实施位置—路由器•优点:–能对两个子网(私有网络)间通过公共网络(如Internet)传输的数据提供安全保护;–能通过身份验证控制授权用户从外部进入私有网络,而将非授权用户挡在私有网络的外面。•实施方案也可分为两类:–IPSec功能集成在路由器软件中;–IPSec功能在直接物理接入路由器的设备中实现,该设备一般不运行任何路由算法,只用来提供安全功能。13鉴别首部(AH)•为IP提供数据完整性–防止传输过程中对数据包内容的修改。•数据源身份验证(鉴别)–防止地址欺骗攻击。•一些有限的抗重播服务–防止消息重放攻击。•不保证任何的机密性14AH的组成格式15抗重播服务(Antireply)•序列号字段–创建一个新的SA时,发送者会将序列号计数器初始化为0;–每当在这一SA上发送一个数据包,序列号计数器的值就加1并将序列号字段设置成计数器的值;–当达到其最大值232-1时,就应建立一个新的SA。•一种”滑动”窗口机制–IP是无连接的、不可靠的,需设立窗口;–窗口的最左端对应于窗口起始位置的数据包序列号N,则最右端对应于可以接收的合法分组的最高序号N+W-1。16窗口的移动•接收到的数据包必须满足如下全部条件才不会被丢弃并将相应的窗口位置做上标记:–接收到的数据包的序列号必须是新的,即在窗口中未出现过;–接收到的数据包的序列号必须落在窗口内部,或落在窗口右侧;–接收到的数据包能通过鉴别检查。•接收到的数据包落在窗口右侧且通过鉴别检查,窗口就会向前走,使得该序号成为窗口的右边界。17W=16的滑动窗口18完整性校验值ICV•由MAC算法产生的消息鉴别码或截短的消息鉴别码组成–HMAC-MD5-96;–HMAC-SHA-1-96。•用HMAC求MAC时算法的输入如下:–IP数据包头:只包括在传输期间不变的字段或接受方可预测的字段,其余不定的字段全置为0;–AH::除“鉴别数据”字段外其他的所有字段,“鉴别数据”字段被置为0;–IP数据包中的所有的上层协议数据。19IPv4包头中的确定字段和不定字段20传输模式和隧道模式的AH数据包格式21封装安全载荷(ESP)•提供保密性和抗重播服务–包括数据包内容的保密性和有限的流量保密性。•可选:提供数据完整性和鉴别服务。•是一个通用的、易于扩展的安全机制–协议定义同具体的算法是分开的。22ESP的格式23ESP的加密和鉴别•用来加密的算法叫作加密器(cipher)。•负责身份鉴别的算法叫鉴别器(authenticator)。•每个ESPSA都至少有一个加密器或一个鉴别器。•可选的算法包括:–三密钥的三重DES;–RC5;–IDEA;–CAST;–Blowfis。24传输模式和隧道模式的ESP数据包格25安全关联SA•安全关联SA是指由IPSec提供安全服务的数据流的发送者到接收者的一个单向逻辑关系,用来表示IPSec如何为SA所承载的数据通信提供安全服务。•其方式是使用AH或ESP之一,一个SA不能同时使用AH和ESP两种保护措施。•SA决定两个主机间通信的安全特征。26安全关联SA•一个SA是由三个参数来惟一标识的:–安全参数索引SPI:分配给该SA的32位标识符,其位置在AH和ESP的首部,作用是使接收实体在收到数据时能够确定在哪个SA下进行处理,只具有本地意义。–目的IP地址:即SA中接收实体的IP地址,该地址可以是终端用户系统地址,也可以是防火墙或安全网关等网络设备的地址。它同时决定了方向。–安全协议标识符:说明SA使用的协议是AH协议还是ESP协议。27安全关联数据库SAD•SecurityAssociationDatabase。•SAD中的元组用于定义与每个SA相关联的参数值,如:–序列号、序列号溢出标记、抗重播窗口、AH信息、ESP信息、SA的有效期、IPSec协议工作模式、路径最大传输单元MTU。28安全策略数据库SPD•SecurityPolicyDatabase。•人机间的安全接口,包括:–要保护什么样的通信数据(被保护对象);–由谁来实行保护(实施保护者);–采用何种手段如何保护通信数据(处理方法)。29SA管理•创建–先协商SA参数,再更新SDAB;–可通过人工创建,也可采用动态创建方式。•删除–有效期过期:超出时间或使用SA的字节数已超过策略设定的值;–密钥已遭破坏;–另一端要求删除这个SA。30SA的组合方式•需为同一数据流建立多个SA以实现所需的安全服务,称这种多个SA序列为“SA集束”。•有两种方式:–传输邻接方式:指对同一IP数据包多次应用非隧道模式的AH和ESP两个协议;–循环隧道方式:指对同一IP数据包在隧道模式下多次使用两种协议,即每使用一次协议,都生成一个新的IP数据包对原数据包进行封装。31SA的基本组合32密钥管理协议•主要包括两部分:–因特网安全关联和密钥管理协议ISAKMP(InternetSecurityAssociationandKeyManagementProtocol):ISAKMP提供了一个因特网密钥管理框架,并为安全属性的协商提供了特定的协议支持,包括协议的格式等。相关的RFC文档是RFC2408。–因特网密钥交换IKE(InternetKeyExchange)::IKE利用ISAKMP来定义密钥交换,是对安全服务进行协商的手段。IKE以Oakley密钥交换协议为基础。相关的RFC文档是RFC2409。33ISAKMP•提供了消息交换的一个框架,定义了对双方的身份进行验证的格式方法,密钥交换时交换信息的格式方法及对安全服务进行协商的格式方法。•对IPSec而言,即定义了SA的建立、协商、修改、删除等所需的过程和消息格式。•其格式不依赖于特定的密钥交换协议、加密算法和鉴别机制,而是提供了一个整体性的框架。34ISAKMP的有效载荷•有效载荷是ISAKMP消息的基本构造模块。•不同的密钥交换协议和密钥交换过程有不同的有效载荷。•ISAKMP规范对有效载荷的格式和载荷的特有属性进行了全面而详尽的描述,见RFC2408。•目前ISAKMP共定义了13种载荷类型。35ISAKMP的格式36例:一条ISAKMP消息在一条ISAKMP消息中,有效载荷之间通过有效载荷首部中的“下一有效载荷”字段链接到一起。37ISAKMP的消息交换(1)•基本交换过程(BaseExchange)①I—〉R:SA;NONCE②R—〉I:SA;NONCE③I—〉R:KE;IDI;AUTH④R—〉I:KE;IDR;AUTH38ISAKMP的消息交换(2)•具有身份保护的交换过程(IdentityProtectionExchange)①I—〉R;SA;②R—〉I;SA;③I—〉R:KE;NONCE④R—〉I:KE;NONCE⑤*I—〉R:IDI;AUTH⑥*R—〉I:IDR;AUTH39ISAKMP的消息交换(3)•仅用于鉴别的交换过程(AuthenticationOnlyExchange)①I—〉R:SA;NONCE②R—〉I:SA;NONCE;IDR;AUTH③*I—〉R:IDI;AUTH40ISAKMP的消息交换(4)•主动交换过程(AggressiveExchange)①I—〉R:SA;KE;NONCE;IDI②R—〉I:SA;KE;NONCE;IDR;AUTH③*I—〉R:AUTH41ISAKMP的消息交换(5)•信息交换过程(InformationalExchange)用于SA管理中信息的单向传输。42Diffie-Hellman协议•优点:–密钥仅在需要时才被建立,不需要将密钥存储很长一段时间,因此不易受到攻击,降低了密钥泄漏的危险性;–协议除要求有预先协商好的全局参数外,不要求有其他预先已存在的基础设施,实现简单方便。•缺点:–协议未提供有关通信双方身份的任何信息。–易受中间人攻击。即第三方C在和A通信时扮演B;而在和B通信时扮演A。A和B都同C协商了一个密钥,然后C就可以监听和修改通信数据流,而A和B毫不知情,都以为是在和对方通信。–协议的计算量很大,因此易受到阻塞性攻击。43Oakley密钥交换协议•继承Diffie-Hellman协议的优点,克服其缺点。–采用了称为cookie程序的交换机制来防止阻塞攻击;–通信双方可以协商Diffie-Hellman密钥交换所用的群,即协商所需的全局参数;–使用一次性随机数来防止重放攻击;–可使通信双方交换Diffie-Hellman公开密钥的值;–对Diffie-Hellman密钥交换过程加以鉴别以防止中间人攻击。44IKE•属于ISAKMP框架的一种实例。•对Oakley定义的模式进行了规范,为Oakley和SKEME密钥交换方案的综合体。•IKE本身是一种常规用途的安全交换协议,可用于策略的协商及帮助验证加密资源的建立。45IKE•IKE描述了安全参数协商的两个独立阶段。1.通信双方间建立一个已通过身份验证和安全保护的通道;2.用这个通过了验证和安全保护的通道为另一个不同的协议如IPSec协