第7章IP安全与Web安全内容提要◎IPSec的必要性,IPSec中的AH协议和ESP协议◎密钥交换协议IKE◎VPN的功能以及解决方案◎Web安全性的3个方面和SSL和TLS安全协议的内容与体系结构7.1IP安全概述大型网络系统内运行多种网络协议(TCP/IP、IPX/SPX和NETBEUA等),这些网络协议并非为安全通信设计。而其IP协议维系着整个TCP/IP协议的体系结构,除了数据链路层外,TCP/IP的所有协议的数据都是以IP数据报的形式传输的,TCP/IP协议簇有两种IP版本:版本4(IPv4)和版本6(IPv6)。IPv6是IPv4的后续版本,IPv6简化了IP头,其数据报更加灵活,同时IPv6还增加了对安全性的考虑。7.1.1IP安全的必要性目前占统治地位的是IPv4,IPv4在设计之初没有考虑安全性,IP包本身并不具备任何安全特性,导致在网络上传输的数据很容易受到各式各样的攻击:比如伪造IP包地址、修改其内容、重播以前的包以及在传输途中拦截并查看包的内容等。因此,通信双方不能保证收到IP数据报的真实性。为了加强因特网的安全性,从1995年开始,IETF着手制定了一套用于保护IP通信的IP安全协议(IPSecurity,IPSec)。IPSec是IPv6的一个组成部分,是IPv4的一个可选扩展协议。IPSec弥补了IPv4在协议设计时缺乏安全性考虑的不足。7.1.1IP安全的必要性---IPSec协议簇IPSec定义了一种标准的、健壮的以及包容广泛的机制,可用它为IP以及上层协议(比如TCP或者UDP)提供安全保证。IPSec的目标是为IPv4和IPv6提供具有较强的互操作能力、高质量和基于密码的安全功能,在IP层实现多种安全服务,包括访问控制、数据完整性、机密性等。IPSec通过支持一系列加密算法如DES、三重DES、IDEA和AES等确保通信双方的机密性。IPSec协议簇包括两个安全协议:AH协议和ESP协议。AH协议(AuthenticationHeader,验证头):可以证明数据的起源地、保障数据的完整性以及防止相同数据包在因特网重播。ESP协议(EncapsulatingSecurityPayload,封装安全载荷):具有所有AH的功能,还可以利用加密技术保障数据机密性。虽然AH和ESP都可以提供身份认证,但它们有2点区别:ESP要求使用高强度的加密算法,会受到许多限制。多数情况下,使用AH的认证服务已能满足要求,相对来说,ESP开销较大。有两套不同的安全协议意味着可以对IPSec网络进行更细粒度的控制,选择安全方案可以有更大的灵活度。7.1.2IPSec的实现方式--传输模式IPSec的实现方式有两种:传输模式和隧道模式,都可用于保护通信。其中传输模型的作用方式传输模式用于两台主机之间,保护传输层协议头,实现端到端的安全性。当数据包从传输层传送给网络层时,AH和ESP会进行拦截,在IP头与上层协议之间需插入一个IPSec头。当同时应用AH和ESP到传输模式时,应该先应用ESP,再应用AH。Internet加密的TCP会话IP包头AH包头ESP包头上层协议(数据)IP包头上层协议(数据)7.1.2IPSec的实现方式--隧道模式隧道模式用于主机与路由器或两部路由器之间,保护整个IP数据包。将整个IP数据包进行封装(称为内部IP头),然后增加一个IP头(称为外部IP头),并在外部与内部IP头之间插入一个IPSec头。Internet局域网局域网局域网加密的隧道IP包头AH包头ESP包头上层协议(数据)IP包头上层协议(数据)安全网关IP包头7.1.3IPSec的实施IPSec可在终端主机、网关/路由器或者两者中同时进行实施和配置。至于IPSec在网络什么地方配置,则由用户对安全保密的要求来决定。在需要确保端到端的通信安全时,在主机实施显得尤为有用。然而,在需要确保网路一部分的通信安全时,在路由器中实施IPSec就显得非常重要。7.1.4验证头AHAH为IP报文提供数据完整性校验和身份验证,还具备可选择的重放攻击保护,但不提供数据加密保护。AH不对受保护的IP数据报的任何部分进行加密,除此之外,AH具有ESP的所有其他功能。AH的协议分配数为51,AH和ESP同时保护数据,在顺序上,AH在ESP之后,AH格式下一头部安全参数索引序列号验证数据载荷长度保留07152331封装安全有效载荷ESPESP为IP报文提供数据完整性校验、身份验证、数据加密以及重放攻击保护等。除了AH提供的所有服务外,还提供机密性服务。ESP可在传输模式以及隧道模式下使用。ESP头可以位于IP头与上层协议之间,或者用它封装整个IP数据报。ESP协议分配数为50,ESP头的格式如图安全参数索引序列号初始化向量有效载荷:要保护的数据07152331填充项验证数据下一头部填充长度ESP头部ESP尾部ESP验证数据加密范围验证范围7.2密钥交换协议IKEIPSec使用共享密钥执行数据验证以及机密性保障任务,为数据传输提供安全服务。对IP包使用IPSec保护之前,必须建立一个安全关联SA,SA可以手工创建或者动态建立。采用手工增加密钥的方式会大大降低扩展能力,利用因特网密钥交换(InternetKeyExchange,IKE)可以动态地验证IPSec参与各方的身份。IKE的主要用途是在IPSec通信双方之间建立起共享安全参数以及验证过的密钥,也就是建立“安全关联”关系。7.2.1IKE协议的组成整个IKE协议规范主要由3个文档定义:RFC2407、RFC2408和RFC2409。RFC2407定义了因特网IP安全解释域。RFC2408描述了因特网安全关联和密钥管理协议(InternetSecurityAssociationandKeyManangementProtocol,KSAKMP)。RFC2409描述了IKE协议如何利用Oakley,SKEME和ISAKMP进行安全关联的协商。Oakley是美国Arizona大学的HilarieOrman提出的,是一种基于Diffie-Hellman算法的密钥交换协议,并提供附加的安全性。SKEME是由密码专家HugoKrawczyk提出的另外一种密钥交换协议,该协议定义了验证密钥交换的一种类型,其中通信各方利用公钥加密实现相互的验证。ISAKMP由美国国家安全局的研究人员提出,该机构是一个高度机密的机构,美国政府过去甚至否定过它的存在。ISAKMP为认证和密钥交换提供了一个框架,可实现多种密钥交换。IKE基于ISAKMP,Oakley和SKEME,是一种“混合型”协议,它建立在由ISAKMP定义的一个框架上,同时实现了Oakley和SKEME协议的一部分。它沿用了ISAKMP的基础、Oakley的模式以及SKEME的共享和密钥更新技术。7.2.2ISAKMP协议ISAKMP定义了整套加密通信语言,目的是为了通信双方建立安全关联并初始化密钥。ISAKMP提供了对身份进行验证的方法和对安全服务进行协商的方法,还规定了通信双方实体的身份验证,安全关联的建立&管理,密钥产生的方法以及安全威胁等。ISAKMP消息的构造方法是:在一个ISAKMP报头后链接一个或者多个有效载荷。ISAKMP报头如图响应者Cookie下一载荷消息ID07152331发起者Cookie主副版本交换类型旗标消息长度7.2.3IKE的两个阶段IKE基于两个阶段的ISAKMP来建立安全关联SA,第一阶段建立IKESA,第二阶段利用IKESA建立IPSec的SA。对于第一阶段,IKE交换基于两种模式:主模式(MainMode)和野蛮模式(AggressiveMode)。主模式是一种身份保护交换,野蛮模式基于ISAKMP的野蛮交换方法。在第二阶段中,IKE提供一种快速交换(QuickMode),作用是为除IKE之外的协议协商安全服务。IKE的第一阶段——主模式交换和野蛮模式交换第一阶段的主要任务是建立IKESA,为后面的交换提供一个安全通信信道。使用主模式交换和野蛮模式交换。这两种模式都可以建立SA,两者的区别在于野蛮模式只用到主模式一半的消息,因此野蛮模式的协商能力受到限制的,而且它不提供身份保护。但是野蛮模式可以有一些特殊用途,比如远程访问等。另外如果发起者已经知道响应者的策略,利用野蛮模式可以快速的建立IKESA。主模式和野蛮模式都允许4中不同的验证方法:(1)预共享密钥(2)DSS数字签名、(3)RSA数字签名(4)交换加密。IKE的第二阶段——快速模式交换快速模式交换主要是为通信双方协商IPSecSA的具体参数,并生成相关密钥。IKESA通过数据加密、消息验证来保护快速模式交换。快速模式交换和第一阶段交换相互关联,来产生密钥材料和协商IPSec的共享策略。快速模式交换的信息由IKESA保护,即除了ISAKMP报头外,所有的载荷都需要加密,并且还要对消息进行验证。7.3VPN技术虚拟专用网(VirtualPrivateNetwork,VPN)指通过一个公用网络(通常是因特网)建立一个临时的、安全的连接,是一条穿过公用网络的安全、稳定的隧道,是对企业内部网的扩展。7.3.1VPN的功能虚拟专用网络可以实现不同网络的组件和资源之间的相互连接。虚拟专用网络能够利用Internet或其它公共互联网络的基础设施为用户创建隧道,并提供与专用网络一样的安全和功能保障。虚拟专用网至少应能提供3个方面功能:加密数据,以保证通过公网传输的信息即使被他人截获也不会泄露。信息认证和身份认证,保证信息的完整性、合法性,并能鉴别用户的身份。提供访问控制,不同的用户有不同的访问权限。7.3.2VPN的解决方案VPN作为一种组网技术的概念,有3种应用方式:远程访问虚拟专网(AccessVPN)、企业内部虚拟专网(IntranetVPN)、扩展的企业内部虚拟专网(ExtranetVPN)。VPN可以在TCP/IP协议簇的不同层次上进行实现,在此基础上提出了多种VPN解决方案,每一种解决方案都有各自的优缺点,用户根据需求采用。7.3.2VPN的解决方案AccessVPN(远程访问VPN)又称为拨号VPN(即VPDN),是指企业员工或企业的小分支机构通过公网远程拨号的方式构筑的虚拟网。典型的远程访问VPN是用户通过本地的信息服务提供商(ISP)登录到因特网上,并在现在的办公室和公司内部网之间建立一条加密信道。VPN服务器总部LAN因特网加密信道移动用户移动用户防火墙公共服务器7.3.2VPN的解决方案IntranetVPN(内部网VPN)。即企业的总部与分支机构间通过公网构筑的虚拟网。这种类型的连接带来的风险最小,因为公司通常认为他们的分支机构是可信的,并将它作为公司网络的扩展。内部网VPN的安全性取决于两个VPN服务器之间加密和验证手段上。VPN服务器VPN服务器总部LAN分支机构LAN因特网路由器路由器加密信道7.3.2VPN的解决方案ExtranetVPN(外联网VPN)即企业间发生收购、兼并或企业间建立战略联盟后,使不同企业网通过公网来构筑的虚拟网。它能保证包括TCP和UDP服务在内的各种应用服务的安全,如Email、HTTP、FTP、RealAudio、数据库的安全以及一些应用程序如Java、ActiveX的安全。VPN服务器总部LAN因特网加密信道防火墙公共服务器防火墙VPN服务器合作伙伴LAN7.3.2VPN的解决方案VPN技术通过架构安全为专网通信提供具有隔离性和隐藏性的安全需求。目前,VPN主要采用4种技术来保证安全,这4种技术分别是隧道技术、加解密技术、密钥管理技术和身份认证技术。其中隧道技术是VPN的基本技术。7.3.2VPN的解决方案隧道是由隧道协议形成的,分成第二、三层隧道协议,在网络层实现数据封装的协议叫第三层隧道协议,IPSec就属于这种协议类型;在数据链路层实现数据封装的协议叫第二层隧道协议,常用的有PPTP、L2TP等。此外还