IP安全与WEB安全.ppt
第11章 IP安全与Web安全,内容提要,IPSec的必要性,IPSec中的AH协议和ESP协议 密钥交换协议IKE VPN的功能以及解决方案 Web安全性的3个方面和SSL和TLS安全协议的内容与体系结构,IP安全概述,大型网络系统内运行多种网络协议(TCP/IP、IPX/SPX和NETBEUA等),这些网络协议并非为安全通信设计。而其IP协议维系着整个TCP/IP协议的体系结构,除了数据链路层外,TCP/IP的所有协议的数据都是以IP数据报的形式传输的,TCP/IP协议簇有两种IP版本:版本4(IPv4)和版本6(IPv6)。IPv6是IPv4的后续版本,IPv6简化了IP头,其数据报更加灵活,同时IPv6还增加了对安全性的考虑。,IP安全的必要性,目前占统治地位的是IPv4,IPv4在设计之初没有考虑安全性,IP包本身并不具备任何安全特性,导致在网络上传输的数据很容易受到各式各样的攻击:比如伪造IP包地址、修改其内容、重播以前的包以及在传输途中拦截并查看包的内容等。因此,通信双方不能保证收到IP数据报的真实性。为了加强因特网的安全性,从1995年开始,IETF着手制定了一套用于保护IP通信的IP安全协议(IP Security,IPSec)。IPSec是IPv6的一个组成部分,是IPv4的一个可选扩展协议。IPSec弥补了IPv4在协议设计时缺乏安全性考虑的不足。,IPSec协议簇,IPSec定义了一种标准的、健壮的以及包容广泛的机制,可用它为IP以及上层协议(比如TCP或者UDP)提供安全保证。IPSec的目标是为IPv4和IPv6提供具有较强的互操作能力、高质量和基于密码的安全功能,在IP层实现多种安全服务,包括访问控制、数据完整性、机密性等。IPSec通过支持一系列加密算法如DES、三重DES、IDEA和AES等确保通信双方的机密性。IPSec协议簇包括两个安全协议:AH协议和ESP协议。AH协议(Authentication Header,验证头):可以证明数据的起源地、保障数据的完整性以及防止相同数据包在因特网重播。ESP协议(Encapsulating Security Payload,封装安全载荷):具有所有AH的功能,还可以利用加密技术保障数据机密性。虽然AH和ESP都可以提供身份认证,但它们有2点区别:ESP要求使用高强度的加密算法,会受到许多限制。多数情况下,使用AH的认证服务已能满足要求,相对来说,ESP开销较大。有两套不同的安全协议意味着可以对IPSec网络进行更细粒度的控制,选择安全方案可以有更大的灵活度。,IPSec的实现方式,IPSec的实现方式有两种:传输模式和隧道模式,都可用于保护通信。其中传输模型的作用方式 传输模式用于两台主机之间,保护传输层协议头,实现端到端的安全性。当数据包从传输层传送给网络层时,AH和ESP会进行拦截,在IP头与上层协议之间需插入一个IPSec头。当同时应用AH和ESP到传输模式时,应该先应用ESP,再应用AH。,隧道模式,隧道模式用于主机与路由器或两部路由器之间,保护整个IP数据包。将整个IP数据包进行封装(称为内部IP头),然后增加一个IP头(称为外部IP头),并在外部与内部IP头之间插入一个IPSec头。,IPSec的实施,IPSec可在终端主机、网关/路由器或者两者中同时进行实施和配置。至于IPSec在网络什么地方配置,则由用户对安全保密的要求来决定。在需要确保端到端的通信安全时,在主机实施显得尤为有用。然而,在需要确保网路一部分的通信安全时,在路由器中实施IPSec就显得非常重要。,验证头AH,AH为IP报文提高能够数据完整性校验和身份验证,还具备可选择的重放攻击保护,但不提供数据加密保护。AH不对受保护的IP数据报的任何部分进行加密,除此之外,AH具有ESP的所有其他功能。AH的协议分配数为51,AH和ESP同时保护数据,在顺序上,AH在ESP之后,AH格式,封装安全有效载荷ESP,ESP为IP报文提供数据完整性校验、身份验证、数据加密以及重放攻击保护等。除了AH提供的所有服务外,还提供机密性服务。ESP可在传输模式以及隧道模式下使用。ESP头可以位于IP头与上层协议之间,或者用它封装整个IP数据报。ESP协议分配数为50,ESP头的格式如图,密钥交换协议IKE,IPSec使用共享密钥执行数据验证以及机密性保障任务,为数据传输提供安全服务。对IP包使用IPSec保护之前,必须建立一个安全关联SA,SA可以手工创建或者动态建立。采用手工增加密钥的方式会大大降低扩展能力,利用因特网密钥交换(Internet Key Exchange,IKE)可以动态地验证IPSec参与各方的身份。IKE的主要用途是在IPSec通信双方之间建立起共享安全参数以及验证过的密钥,也就是建立“安全关联”关系。,IKE协议的组成,整个IKE协议规范主要由3个文档定义:RFC2407、RFC2408和RFC2409。RFC2407定义了因特网IP安全解释域。RFC2408描述了因特网安全关联和密钥管理协议(Internet Security Association and Key Manangement Protocol,ISAKMP)。RFC2409描述了IKE协议如何利用Oakley,SKEME和ISAKMP进行安全关联的协商。,ISAKMP协议,ISAKMP定义了整套加密通信语言,目的是为了通信双方建立安全关联并初始化密钥。ISAKMP提供了对身份进行验证的方法和对安全服务进行协商的方法,还规定了通信双方实体的身份验证,安全关联的建立管理,密钥产生的方法以及安全威胁等。ISAKMP消息的构造方法是:在一个ISAKMP报头后链接一个或者多个有效载荷。ISAKMP报头如图,IKE的两个阶段,IKE基于两个阶段的ISAKMP来建立安全关联SA,第一阶段建立IKE SA,第二阶段利用IKE SA建立IPSec的SA。对于第一阶段,IKE交换基于两种模式:主模式(Main Mode)和野蛮模式(Aggressive Mode)。主模式是一种身份保护交换,野蛮模式基于ISAKMP的野蛮交换方法。在第二阶段中,IKE提供一种快速交换(Quick Mode),作用是为除IKE之外的协议协商安全服务。,IKE的第一阶段主模式交换和野蛮模式交换,第一阶段的主要任务是建立IKE SA,为后面的交换提供一个安全通信信道。使用主模式交换和野蛮模式交换。这两种模式都可以建立SA,两者的区别在于野蛮模式只用到主模式一半的消息,因此野蛮模式的协商能力受到限制的,而且它不提供身份保护。但是野蛮模式可以有一些特殊用途,比如远程访问等。另外如果发起者已经知道响应者的策略,利用野蛮模式可以快速的建立IKE SA。主模式和野蛮模式都允许4中不同的验证方法:(1)预共享密钥(2)DSS数字签名、(3)RSA数字签名(4)交换加密。,IKE的第二阶段快速模式交换,快速模式交换主要是为通信双方协商IPSec SA的具体参数,并生成相关密钥。IKE SA通过数据加密、消息验证来保护快速模式交换。快速模式交换和第一阶段交换相互关联,来产生密钥材料和协商IPSec的共享策略。快速模式交换的信息由IKE SA保护,即除了ISA KMP报头外,所有的载荷都需要加密,并且还要对消息进行验证。,VPN技术,虚拟专用网(Virtual Private Network,VPN)指通过一个公用网络(通常是因特网)建立一个临时的、安全的连接,是一条穿过公用网络的安全、稳定的隧道,是对企业内部网的扩展。,VPN的功能,虚拟专用网络可以实现不同网络的组件和资源之间的相互连接。虚拟专用网络能够利用Internet或其它公共互联网络的基础设施为用户创建隧道,并提供与专用网络一样的安全和功能保障。虚拟专用网至少应能提供3个方面功能:加密数据,以保证通过公网传输的信息即使被他人截获也不会泄露。信息认证和身份认证,保证信息的完整性、合法性,并能鉴别用户的身份。提供访问控制,不同的用户有不同的访问权限。,VPN的解决方案,VPN作为一种组网技术的概念,有3种应用方式:远程访问虚拟专网(Access VPN)、企业内部虚拟专网(Intranet VPN)、扩展的企业内部虚拟专网(Extranet VPN)。VPN可以在TCP/IP协议簇的不同层次上进行实现,在此基础上提出了多种VPN解决方案,每一种解决方案都有各自的优缺点,用户根据需求采用。VPN技术通过架构安全为专网通信提供具有隔离性和隐藏性的安全需求。目前,VPN主要采用4种技术来保证安全,这4种技术分别是隧道技术、加解密技术、密钥管理技术和身份认证技术。其中隧道技术是VPN的基本技术。,VPN的解决方案,隧道是由隧道协议形成的,分成第二、三层隧道协议,在网络层实现数据封装的协议叫第三层隧道协议,IPSec就属于这种协议类型;在数据链路层实现数据封装的协议叫第二层隧道协议,常用的有PPTP、L2TP等。此外还有两种VPN的解决方案:在链路层上基于虚拟电路的VPN技术和SOCKS同SSL(Secure Socket Layer)协议配合使用在应用层上构造VPN,其中SOCKS有SOCK v4和SOCK v5两个版本。基于虚拟电路的VPN通过在公共的路由来传送IP服务。电信运营商或者电信部门就是采用这种方法,直接利用其现有的帧交换或信元交换(如ATM网)基础设施提供IP VPN服务。它的QoS能力由CIR(Committed Information Rate)和ATM的QoS来确保,另外它具有虚拟电路拓扑的弹性。但是它的路由功能不够灵活,构建的相对费用比IP隧道技术高,而且还缺少IP的多业务能力,比如:VOIP(Voice Over IP)。,Web安全概述,Web是一个运行于Internet和TCP/IP Intranet之上的基本的Client/Server应用。Web安全性涉及前面讨论的所有计算机与网络的安全性内容。同时还具有新的挑战。Web具有双向性,Web Server易于遭受来自Internet的攻击,而且实现Web浏览、配置管理、内容发布等功能的软件异常复杂,其中隐藏许多潜在的安全隐患。实现Web安全的方法很多,从TCP/IP协议的角度可以分成3种:网络层安全性、传输成安全性和应用层安全性。,网络层安全性,传统的安全体系一般都建立在应用层上。这些安全体系虽然具有一定的可行性,但也存在着巨大的安全隐患,因为IP包本身不具备任何安全特性,很容易被修改、伪造、查看和重播。IPSec可提供端到端的安全性机制,可在网络层上对数据包进行安全处理。IPSec可以在路由器、防火墙、主机和通信链路上配置,实现端到端的安全、虚拟专用网络和安全隧道技术等。基于网络层使用IPSec来实现Web安全的模型如图,传输层安全性,在TCP传输层之上实现数据的安全传输是另一种安全解决方案,安全套接层SSL和TLS(Transport Layer Security)通常工作在TCP层之上,可以为更高层协议提供安全服务。结构如图,应用层安全性,将安全服务直接嵌入在应用程序中,从而在应用层实现通信安全,如图所示。SET(Secure Electronic Transaction,安全电子交易)是一种安全交易协议,S/MIME、PGP是用于安全电子邮件的一种标准。它们都可以在相应的应用中提供机密性、完整性和不可抵赖性等安全服务,SSL/TLS技术,SSL是Netscape公司在网络传输层之上提供的一种基于RSA和保密密钥的安全连接技术。SSL在两个结点间建立安全的TCP连接,基于进程对进程的安全服务和加密传输信道,通过数字签名和数字证书可实现客户端和服务器双方的身份验证,安全强度高。,SSL/TLS的发展过程,1994年Netscape开发了安全套接层协议Secure Socket Layer,专门用于保护Web通讯。最初发布的1.0版本还不成熟,到了2.0的时候,基本上可以解决Web通讯的安全问题,1996年发布了SSL3.0,增加了一些算法,修改了一些缺陷。1997年IETF发布了传输层安全协议TLS 1.0草稿,也称为SSL 3.1,同时,Microsoft宣布与Netscape一起支持TLS 1.0。1999年,正式发布了RFC 2246,也就是The TLS Protocol v1.0的正式版本。这些协议在浏览器中得到了广泛的支持,IE浏览器的SSL和TLS的设置如图,SSL体系结构,SSL协议的目标就是在通信双方利用加密的SSL信道建立安全的连接。它不是一个单独的协议,而是两层协议,结构如图,SSL的会话与连接,SSL会话由握手协议创建,定义了一系列相应的安全参数,最终建立客户机和服务器之间的一个关联。对于每个SSL连接,可利用SSL会话避免对新的安全参数进行代码繁多协商。每个SSL会话都有许多与之相关的状态。一旦建立了会话,就有一个当前操作状态。SSL会话状态参数包括:(1)会话标志符(Session Identifier)用来确定活动或可恢复的会话状态;(2)对等实体证书(Peer Certificate),是对等实体X.509 v3证书;(3)压缩方法(Compression Method);(4)加密规范(Cipher Spec)包括加密算法DES,3DES和IDEA等、消息摘要算法MD5和SHA-1等,以及相关参数;(5)主密码(Master Secret),由客户机和服务器共享的密码;(6)是否可恢复(is Resumable)会话是否可用于初始化新连接的标志。,SSL的会话与连接,SSL连接是一个双向连接,每个连接都和一个SSL会话相关。SSL连接成功后,可以进行安全保密通信。SSL连接状态的参数包括7个:(1)服务器和客户机随机数(Server and Client Random):Server 和Client 为每一个连接所选择的字节序列。(2)服务器写MAC秘密(Server Write MAC Secret):一个密钥,用来对Server 送出的数据进行MAC操作。(3)客户机写MAC秘密(Client Write MAC Secret):一个密钥,用来对Client送出的数据进行MAC操作。(4)服务器写密钥(Server Write Key):用于Server 进行数据加密,Client进行数据解密的对称保密密钥。(5)客户机写密钥(Client Write Key):用于Client 进行数据加密,Server进行数据解密的对称保密密钥;(6)初始化向量(Initialization Vectors):当数据加密采用CBC方式时,每一个密钥保持一个IV。该字段首先由SSL Handshake Protocol,以后保留每次最后的密文数据块作为IV。(7)序列号(Sequence Number):每一方为每一个连接的数据发送与接收维护单独的顺序号。当一方发送或接收一个改变的cipher spec message时,序号置为0,最大264-1,OpenSSL概述,目前实现SSL/TLS的软件虽然不多,但都很优秀。除了SSL标准提出者Netscape实现的,OpenSSL是一个非常优秀的实现SSL/TLS的开放源代码软件包,主要是作为提供SSL算法的函数库供其他软件调用而出现的,可给任何TCP/IP应用提供SSL功能。1995年,Eric A.Young和Tim J.Hudson开始开发OpenSSL,后来不断发展更新,直到现在,SSL还在不断的修改和完善,新版本也不断的推出。最新的版本可以从OpenSSL的官方网站下载。,安全电子交易SET简介,电子商务在提供机遇和便利的同时,也面临着一个最大的挑战,即交易的安全问题。在网上购物的环境中,持卡人希望在交易中保密自己的帐户信息,使之不被人盗用;商家则希望客户的定单不可抵赖,并且,在交易过程中,交易各方都希望验明其他方的身份,以防止被欺骗。1996年2月,美国Visa和MasterCard两大信用卡组织联合国际上多家科技机构,共同制定了应用于Internet上的以银行卡为基础进行在线交易的安全标准,这就是安全电子交易(Secure Electronic Transaction,SET)。它采用公钥密码体制和X.509数字证书标准,主要应用于保障网上购物信息的安全性。,本章小结,本章主要介绍了IP安全性和Web安全性的机制以及实现方法。实现IP安全性的方法是使用IPSec重点介绍了IPSec中的AH协议的结构和ESP协议的结构。介绍了密钥交换协议IKE,需要了解IKE协议的组成重点理解VPN的解决方案以及SSL/TLS技术的体系结构。,