1、第八章 安全通信协议,第八章 安全通信协议,目前网络面临着各种威胁,其中包括保密数据的泄露、数据完整性的破坏、身份伪装和拒绝服务等。保密数据的泄露。罪犯在公网上窃听保密性数据。这可能是目前互相通信之间的最大障碍。没有加密,发送的每个信息都可能被一个未被授权的组织窃听。由于早期协议对安全考虑的匮乏,用户名或口令这些用户验证信息均以明码的形式在网络上传输。窃听者可以很容易地得到他人的帐户信息。,数据完整性的破坏。即使数据不是保密的,也应该确保它的完整性。也许你不在乎别人看见你的交易过程,但你肯定在意交易是否被篡改。身份伪装。一个聪明的入侵者可能会伪造你的有效身份,存取只限于你本人可存取的保密信息。
2、目前许多安全系统依赖于IP地址来唯一地识别用户。不幸的是,这种系统很容易被IP欺骗并导致侵入。拒绝服务。一旦联网之后,必须确保系统随时可以工作。在过去数年内,攻击者已在TCP/IP协议簇及其具体实现中发现若干弱点,使得他们可以造成某些计算机系统崩溃。,8.1 IP安全协议IPSec,IPSec用来加密和认证IP包,从而防止任何人在网路上看到这些数据包的内容或者对其进行修改。IPSec是保护内部网络,专用网络,防止外部攻击的关键防线。它可以在参与IPSec的设备(对等体)如路由器、防火墙、VPN客户端、VPN集中器和其它符合IPSec标准的产品之间提供一种安全服务。IPSec 对于 IPv4 是
3、可选的,但对于 IPv6 是强制性的。,8.1.1 IPSec体系结构,IPSec是一套协议包,而不是一个单独的协议 RFC文号。IPSec 协议族中三个主要的协议:IP认证包头AH(IP Authentication Header):AH协议 为IP包提供信息源验证和完整性保证。IP封装安全负载ESP (IP Encapsulating Security Payload)ESP协议提供加密保证。Internet密钥交换IKE (The Internet Key Exchange): IKE提供双方交流时的共享安全信息,8.1.1 IPSec体系结构(续),IPSec的体系结构如图,8.1.1
4、 IPSec体系结构(续),IPSec提供的安全性服务:1)访问控制:通过调用安全协议来控制密钥的安全交换, 用户身份认证也用于访问控制。 2)无连接的完整性:使用IPSec,可以在不参照其他数据 包的情况下,对任一单独的IP包进行完整性校验。 3)数据源身份认证:通过数字签名的方法对IP包内的 数据来源进行标识。,4)抗重发攻击:重发攻击是指攻击者发送一个目的主机已接收过的包,通过占用接收系统的资源,使系统的可用性受到损害。为此IPSec提供了包计数器机制,以便抵御抗重发攻击。 5)保密性:确保数据只能为预期的接收者使用或读,而 不能为其他任何实体使用或读出。保密机制是通过使用加密算法来实现
5、的。,8.1.1 IPSec体系结构(续),8.1.2 IPSec模式,IPSec对IP包可以执行的操作分别是:只加密,只认证, 既加密也认证。 IPSec有两种工作模式:传输模式(Transport Mode)和隧道模式(Tunnel Mode)。 1.传输模式(Transport Mode) : IPSec协议头插入到原IP头部和传输层头部之间,只对IP包的有效负载进行加密或认证。,8.1.2 IPSec模式(续),2.隧道模式:IPSec会先利用AH或ESP对IP包进行认证或者加密, 然后在IP包外面再包上一个新IP头。,图8.3 隧道模式AH数据包,8.1.3 IPSec的安全策略,1
6、.安全关联SA 传输模式SA: 传输模式SA只能用于两个主机之间的IP通信 隧道模式SA: 隧道模式SA既可以用于两个主机之间的IP通 信也可用于两个安全网关之间或一个主机与一个安全网关之 间的IP通信。SA是安全策略通常用一个三元组唯一的表示: 1)SPI:安全参数索引(Security Parameters Index),说明 用SA的IP头类型,它可以包含认证算法、加密算法、用于认证,8.1.3 IPSec的安全策略(续),加密的密钥以及密钥的生存期; 2)IP目的地址:指定输出处理的目的IP地址,或输入处理的源IP地址;3)安全协议标识符:指明使用的协议是AH还是ESP或者两者同时使用
7、。 2. 安全关联数据库SAD SAD存放着和安全实体相关的所有SA,每个SA由三元组索引。一个SAD条目包含下列域: 序列号计数器:32位整数,用于生成AH或ESP头中的序列号; 序列号溢出标志:标识是否对序列号计数器的溢出进行审核;,8.1.3 IPSec的安全策略(续),抗重发窗口:使用一个32位计数器和位图确定一个输入的AH或ESP数据包是否是重发包; IPSec协议操作模式:传输或隧道; AH的认证算法和所需密钥; ESP的认证算法和所需密钥; ESP加密算法,密钥,初始向量(IV)和IV模式; 路径最大传输单元; 进出标志; SA 生存期状态。,8.1.3 IPSec的安全策略(续
8、),3. 安全策略数据库SPDSPD决定了对数据包提供的安全服务,所有IPSec 实施方案的策略都保存在该数据库中。IP包的处理过程中,系统要查阅SPD,每一个数据包,都有三种可能的选择:丢弃、绕过IPSec或应用IPSec:1)丢弃:根本不允许数据包离开主机穿过安全网关;2)绕过:允许数据包通过,在传输中不使用IPSec进行 保护;3)应用:在传输中需要IPSec保护数据包,对于这样的传输SPD必须规定提供的安全服务、所使用的协议和算法等等。,8.1.3 IPSec的安全策略(续),8.1.4 IPSec认证与加密,IPSec提供了两种安全机制:认证和加密。认证机制使IP通信的数据接收方能够
9、确认数据发送方的真实身份以及数据在传输过程中是否遭篡改;加密机制通过对数据进行编码来保证数据的机密性,以防数据在传输过程中被窃听。 AH定义了认证的应用方法,提供数据源认证和完整性保证;ESP定义了加密和可选认证的应用方法,提供可靠性保证。IKE的作用是协助进行安全管理,它在IPSec 进行处理过程中对身份进行鉴别,同时进行安全策略的协商和处理会话密钥的交换工作。,IP认证包头AH AH协议提供无连接的完整性、数据源认证和抗重发保护服务,但不提供保密性服务。它能保护通信免受篡改,但不能防止窃听,适用于传输非机密数据。AH在每一个数据包上添加一个身份验证包头。该包头位于IP包头和传输层协议包头之
10、间,如图8.5所示。,8.1.4 IPSec认证与加密,8.1.4 IPSec认证与加密(续),AH包头字段内容包括: 下一个包头(Next Header,8位):标识紧跟AH头后面使用IP协议号的包头; 载荷长度(Payload Len,8位):AH包头长度; 保留(Reserved,16位):为将来的应用保留,(目前为0); 安全参数索引 (SPI,32位):与目的 IP 地址一同标识SA; 序列号(Sequence Number Field,32位):从1开始的32位单增序列号,不允许重复,唯一地标识每一个发送的数据包,为SA提供反重发保护。 认证数据(Authentication Da
11、ta,长度可变):包含完整性检查和。,2. IP封装安全负载ESP ESP为IP包提供完整性检查、认证和加密。它使用HMAC-MD5或HMAC-SHA-1算法对IP进行认证。为了保证各种IPSec之间实现互操作性,目前ESP必须提供对56位DES算法的支持。ESP可以单独使用,也可以和AH结合使用。,8.1.4 IPSec认证与加密(续),8.1.4 IPSec认证与加密(续),ESP包头字段内容包括: 安全参数索引SPI(Security Parameters Index):同AH; 序列号(Sequence Number):同AH; 填充域(Padding):0-255个字节。用来保证加密
12、数据部分满足块加密的长度要求,若数据长度不足,则填充; 填充域长度(Padding Length):接收端根据该字段长度去除数据中的填充位; 下一个包头(Next Header):同AH; 认证数据 (Authentication Data):包含完整性检查和。完整性检查部分包括ESP包头、传输层协议、数据和ESP包尾,但不包括IP包头,因此ESP不能保证IP包头不被篡改。ESP加密部分包括传输层协议、数据和ESP包尾。,8.1.4 IPSec认证与加密(续),3. AH 与ESP的比较AH提供认证服务但是不提供加密服务。图8.7说明了AH认证的作用范围。,ESP提供认证和加密服务。但它认证的
13、范围与AH是不同的,图8.8列出了ESP对数据包认证或加密的作用域。,8.1.4 IPSec认证与加密(续),8.1.5 IPSec认证与加密,IPSec支持手工设置密钥和自动协商两种方式管理密钥。手工设置密钥方式是管理员使用自己的密钥手工设置每个系统。这种方法在小型网络环境和有限的安全需要时可以工作得很好。自动协商方式则能满足其它所有的应用需求。使用自动协商方式,通讯双方在建立SA时可以动态地协商本次会话所需的加密密钥和其它各种安全参数,无须用户的介入。当采用自动协商密钥时就需要使用IKE。IKE 是一个混合型协议 ,用来管理IPSec所用加密密钥的产生及处理。,8.1.5 IPSec认证与
14、加密(续),IKE提供的好处如下: 允许管理员不必在两个对等体中手工指定所有IPSec SA参数; 可以安全地建立用于对等体之间的会话密钥; 允许为IPSec SA指定一个生存期; 允许加密密钥在IPSec 会话过程中改变; 允许IPSec 提供防重发攻击服务; 允许为一个可以管理的、可以扩展的IPSec 实施采用CA支持;,8.1.5 IPSec认证与加密(续),1IKE的组成IKE 由三个不同的协议组成: Internet安全关联和密钥管理协议ISAKMP (Internet Security Association and Key Management Protocol):提供了一个通用
15、的SA属性格式框架和一些可由不同密钥交换协议使用的协商、修改、删除SA的方法。 2) OAKLEY:提供在两个IPSec对等体间达成加密密钥的机制。 3) SKEME (Secure Key Exchange MEchanism protocol):提供为认证目的使用公钥加密认证的机制。,8.1.5 IPSec认证与加密(续),2IKE的主要功能 对使用的协议、加密算法和密钥进行协商; 交换公共密钥; 在交换后对密钥进行管理。 3IKE建立SA (1)IKE阶段1IKE阶段1的基本目的是认证IPSec 对等体,在对等体 间协商创建一个安全通道IKE SA,并对该通道进行认证 为双方进一步IKE
16、通信提供机密性、数据完整性以及数据 认证服务。,8.1.5 IPSec认证与加密(续),执行过程如下: 在对等体之间协商一个相匹配的IKE SA策略以保护IKE 交换。该IKE SA指定协商的IKE参数,并且是双向的,其中包括:所使用的认证方法、加密和散列算法、加密算法使用的共享密钥、IKE SA的生存期等; 执行一个被认证的Diffie-Hellman,其最终结果是拥有了一个将被IPSec加密算法使用的相匹配的共享密钥; 认证和保护IPSec对等体的身份; 建立起一个安全通道,以便协商IKE阶段2的参数。,8.1.5 IPSec认证与加密(续),(2)IKE阶段2IKE阶段2的基本目的是使用
17、已建立的IKE SA建立IPsec SA。执行过程如下: 策略协商,双方交换保护需求,例如使用何种IPSec协议(AH或ESP),使用何种hash算法(MD5或SHA),是否需要加密,若是,选择何种加密算(3DES或DES),在上述三方面达成一致后,将建立起两个SA,分别用于入站和出站通信; 会话密钥“材料”刷新或交换; 周期性的重新协商IKE SA参数,以确保安全性; 执行一次额外的Diffie-Hellman交换(任选)。,8.1.5 IPSec认证与加密(续),4IPSec的工作过程IPSec涉及到许多技术和加密算法,它的操作过程被分为5个主要的步骤: IPSec启动过程由配置在 IPS
18、ec对等体中的 IPSec安全策略指定要被加密的数据流启动IKE过程; IKE阶段1IKE认证IPSec对等体,并协商SA,创建安全通道IKE SA; IKE阶段2利用已建立的IKE SA,在对等体中建立相匹配的IPSec SA; 数据传送数据根据存储在SA数据库中的IPSec参数和密钥在IPSec对等体间传送; IPSec隧道终止通过删除或超时机制结束IPSec SA。,8.1.6 IPSec应用实例,例1. 端到端安全,如图8.9所示。主机H1、H2位于两个不同的网关R1和R2内,均配置了IPSec。 R1、R2通过Internet相连,但都未应用IPSec。主机H1、H2可以单独使用ES
19、P或AH,也可以将两者组合使用。使用的模式既可以是传输模式也可以是隧道模式。,8.1.6 IPSec应用实例(续),例2. 基本的VPN支持,如图8.10所示。网关R1、R2运行隧道模式ESP,保护两个网内主机的通信,所有主机可以不必配置IPSec。当主机H1向主机H2发送数据包时,网关R1要对数据包进行封装,封装的包通过隧道穿越Internet后到达网关R2。R2对该包解封,然后发给H2。,H1,H2,8.1.6 IPSec应用实例(续),例3. 保护移动用户访问公司的内部网,如图8.11所示。位于主机H1的移动用户要通过网关R1访问其公司的内部主机H2。主机H1和网关R1均配置IPSec,
20、而主机H2未配置IPSec。当H1给H2发数据包时,要进行封装,经过Internet后到达网关R1, R1对该包解封,然后发给H2。,H1,H2,R1,8.1.6 IPSec应用实例(续),例4. 嵌套式隧道,如图8.12所示。主机H1要同主机H2进行通信,中间经过两层隧道。公司的总出口网关为R1,而主机H2所在部门的网关为R2。H1同R2间有一条隧道,H1和R1间也有一条隧道。当H2向H1发送数据包P时,网关R2将它封装成P1,P1到达网关R1后被封装成P2,P2经过Internet到达主机H1,H1先将其解封成P1,然后将P1还原成P。,H1,H2,R1,R2,8.1.7 IPSec的局限
21、性,1) IPSec仅用来验证主机,而不能对用户进行身份验证。如果不能保证使用IPSec 设备的人是授权用户,IPSec将没有意义。2) IPSec不能防止黑客截取加密的数据包,读取非解密的数据包来分析网络的信息,例如源和目的网关地址、数据包大小等。3) 如果运行IPSec 兼容软件的计算机已经被入侵,那么来自该计算机的任何通信都是不可信任的,尽管通信使用了IPSec 。,8.2 安全协议SSL,基于HTTP协议传输的信息是不加密的,这就使得在网上传输口令字之类的敏感信息受到很大的威胁。安全套接层SSL(Security Socket Layer) 是一种在两台机器之间提供安全通道的协议。它具
22、有保护传输数据以及识别通信机器的功能。它能处理服务器和客户机之间的相互认证,得到标准浏览器Netscape和IE的支持,已经成为网络用来鉴别网站和网页浏览者的身份,以及在浏览器使用者和网页服务器之间进行加密通讯的全球化标准。,8.2.1 SSL概述,1. SSl的历史SSL最初是由网景(Netscape)公司开发,使用公钥加密被传输的数据,用来在Web客户端和服务器之间增加HTTP协议的安全性。TETF将SSL作了标准化,并将其称为TLS(Transport Layer Security),表示传输层的安全性,所以SSL的用途不仅仅局限于HTTP。 2. SSL提供的服务 SSL主要提供三方面
23、的服务: 1) 用户和服务器的合法性认证:认证用户和服务器的合法性,使得它们能够确信数据将被发送到正确的客户机和服务器上。,8.2.1 SSL概述(续),客户机和服务器都有各自的数字证书。为了验证用户和服务器是否合法,SSL要求在握手交换数据时进行数字认证,以此来确保合法性。 2)加密数据以隐藏被传送的数据:SSL采用的加密技术既有对称密钥技术,也有公开密钥技术。在客户机与服务器进行数据交换之前,先交换SSL初始握手信息,在信息中采用了各种加密技术对其加密,以保证其机密性和数据的完整性,并且用数字证书进行鉴别,这样就可以防止非法用户进行破译。 3)保护数据的完整性:SSL采用Hash函数和机密
24、共享的方法来提供信息的完整性服务,建立客户机与服务器之间的安全通道,使所有经过该协议处理的信息在传输过程中能全部完整准确无误地到达目的地。,8.2.1 SSL概述(续),3. SSL的局限性尽管SSL有很好的安全性,但也有它的不足: 1)不适合复杂环境。一般来讲,在通信模型简单的情况下SSL可以工作的很好。环境越复杂,使用SSL提供安全就越困难。2)仅限于TCP协议。由于SSL要求有TCP通道,所以对于使用UDP协议的DNS类型的应用场合是不适合的。HTTP FTPSMTPSSLTCP层IP层图8.13 SSL在TCP/IP模型中的位置3)通信各方只有两个。由于SSL的连接本质上是一对一的,所
25、以在通信方只有两个的情况下它会工作的很好。在多对多的环境中,它的表现欠佳。,8.2.2 SSL的体系结构,以TCP/IP模型来看,SSL是定位在TCP层之上的应用协议,如图8.13所示。任何TCP/IP层以上的网络协议都被SSL所支持,因此HTTP、FTP、SMTP等皆是SSL的保护范围。,图8.13 SSL在TCP/IP模型中的位置,8.2.2 SSL的体系结构(续),使用SSL安全机制时,客户端首先与服务器建立连接,服务器把它的数字证书与公钥一并发送给客户端,客户端随机生成会话密钥,使用从服务器得到的公钥对会话密钥进行加密,并将会话密钥在网络上传递给服务器,而会话密钥只有在服务器端用私钥才
26、能解密,这样,客户端和服务器端就建立了一个唯一的安全通道。建立了SSL安全通道后,只有SSL允许的客户才能与SSL允许的Web站点进行通信,并且在使用URL资源定位器时,输入https:/ ,而不是http:/。,8.2.2 SSL的体系结构(续),SSL采用两层协议体系,如图8.14所示。该协议包含两个部分:SSL 握手协议(SSL Handshake protocol)和SSL 记录协议(SSL Record protocol)。前者负责通信前的参数协商,后者定义SSL的内部数据格式。其中SSL 握手协议由三个子协议构成,它们是改变密码规范协议(Change cipher spec pro
27、tocol)、报警协议(Alert protocol)和握手协议(Handshake protocol)。,图8.14 SSL协议组成,8.2.2 SSL的体系结构(续),SSL握手协议 SSL握手协议是SSL的前置步骤。 客户端与服务器先进行沟通、协调与SSL通信有关的参数设置。握手有三个目的: 1) 客户端与服务器对保护数据的算法达成一致; 2) 对算法使用的加密密钥达成一致; 3) 确定是否对客户端进行认证。,8.2.2 SSL的体系结构(续),图8.15说明了握手的步骤,8.2.2 SSL的体系结构(续),下面对握手步骤作进一步的说明: 1)Client Hello:首先由客户端计算机
28、向Web服务器说“Hello”,并同时将客户端计算机所能支持的安全模块告诉对方,以便沟通。信息内容包括:SSL协议版本、本次联机的识别码以及加密模块等。 2)Server Hello:服务器接收到客户端信息后,立即送出以下信息给客户端: 服务器的数字证书,以便客户端检查服务器的身份; 如果服务器要求双方相互认证,则送出“认证请求”信息。要求客户端也提供识别身份的数字证书; 服务器用来加密的公钥。,8.2.2 SSL的体系结构(续),3) 客户端对服务器的数字证书进行验证,并抽取服务器的公用密钥,再产生一个叫做pre-master-secret的随机密码串,并使用服务器公钥对其加密,然后将加密后
29、的信息发送给服务器。如果服务器请求,客户端的数字证书也将被发送给服务器。 4)客户端将所有握手消息的消息鉴别码 MAC(Message Authentication Code ) ,发送给服务器。 5)服务器将所有握手消息的MAC发送给客户端。到这个阶段为止,通信双方都已经达成了共识,并准备传送真正的信息内容。,8.2.2 SSL的体系结构(续),2. SSL记录协议 在SSL中,数据传输使用SSL记录协议来实现。记录协议将数据流分割成一系列片断,并对每个片断单独进行保护,然后加以传输。在接收方,对每条记录单独进行解密和验证。这种方案使得数据一经准备好就可以从连接的一端传送到另一端,接收到就可
30、以立即进行处理。,8.2.2 SSL的体系结构(续),SSL数据的分段与保护如图8.16所示。MAC用来提供数据完整性保护。将MAC附加到片段的尾部,并对数据与MAC整合在一起的内容进行加密,形成加密的负载。最后给负载加上头信息,头信息与经过加密的负载称为记录,记录是实际传输的内容。,8.2.2 SSL的体系结构(续),图8.17给出了用DES分组密码加密的SSL记录范例。头信息用白色来表示,经过加密的负载用深色表示。该范例使用MD5来产生MAC,因此需要对记录进行填充,以适应DES的分组长度。,8.3 安全协议SSH,SSH,安全Shell(Secure Shell)是一种通用的、功能强大的
31、,基于软件的网络安全解决方案,它可以在大多数操作系统上运行,通过安全认证和加密技术,为不安全的网络应用增加安全性。SSH可以支持安全远程登录、安全远程命令执行、安全文件传输、访问控制、TCPIP端口转发等。SSH不是一个命令解释器,也没有提供通配符扩展、命令历史纪录等功能,而是创建了一个通道在远程计算机上运行shell,其风格类似于Unix的rsh命令。所不同的是rsh是一个不安全的提供远程登录的程序,而SSH却在本地计算机和远程计算机之间使用了端到端的加密技术。,8.3.1 SSH概述,1.SSH的历史1995年初芬兰赫尔辛基大学(Helsinki University of Technol
32、ogy)的校园网受到密码窃听的攻击,研究人员Tatu Ylonen为此开发了SSH1以便自己使用。他于1995年12月成立了SSH 通信安全公司SCS(SSH Communications Security, Inc.)对SSH1进行维护,并使其商业化。1996年SCS对SSH代码进行了重写,推出了与SSH1不兼容的版本SSH2。IETF也成立了一个SECSH(Secure Shell Working Group)工作组,以对SSH-2协议进行标准化,并于1997年2月提交了第一份SSH-2协议的Internet 草案。 1998年SCS发布了基于SSH-2协议的软件产品SSH2,尽管SSH2
33、比SSH1的安全性好,但是SSH2并没有取代SSH1,因为SSH1是免费的,而SSH2是一个商业产品。 现在SSH1已经不再开发,只进行错误修正。而SSH2和OpenSSH仍然继续在开发,与此同时还有许多其它的SSH产品,8.3.1 SSH概述(续),2. SSH可以防止的攻击 窃听:网络窃听者读取网络信息。SSH的加密防止了窃听的危害。即使窃听者截获了SSH会话的内容,也不能将其解密。 名字服务和IP伪装:攻击者搞乱名字服务或者盗用IP地址来冒充一台机器,此时与网络有关的程序就可能被强制连接到错误的机器上。SSH通过加密验证服务器主机的身份避免了攻击者搞乱名字服务以及IP欺骗。SSH客户端会
34、根据和密钥关联的本地服务器名列表和地址列表对服务器主机密钥进行验证。如果所提供的主机密钥不能和该列表中的任意一项匹配,SSH就会报警。,8.3.1 SSH概述(续),连接劫持:攻击者使TCP连接偏离正确的终点。SSH的完整性检测负责确定会话在传输过程中是否被修改。如果曾经被修改,就立即关闭该连接,而不会使用任何被修改过的数据。 中间人攻击:中间人冒充真正的服务器接收用户传给服务器的数据,然后再冒充用户把数据传给真正的服务器。SSH使用服务器主机认证以及限制使用容易受到攻击的认证方法(如密码认证)来防止中间人攻击。 插入攻击:攻击者在客户端和服务器的连接中插入加密数据,最终解密成攻击者希望的数据
35、。使用3DES算法可以防止这种攻击,SSH-1的完整性检查机制是非常脆弱的,而SSH-2和OpenSSH都进行了专门设计,来检测并防止这种攻击。,8.3.1 SSH概述(续),3. SSH不能防止的攻击 密码崩溃:如果你的密码被窃取,SSH将无能为力。 IP和TCP攻击:SSH是在TCP之上运行的,因此它也容易受到针对TCP和IP缺陷发起的攻击。SSH的隐私性、完整性和认证可以确保将拒绝服务的攻击危害限制在一定的范围之内。 流量分析:攻击者通过监视网络通信的数据量、源和目的地址以及通信的时间,能够确定他何时将采取拒绝服务攻击,而SSH不能解决这种攻击。,8.3.2 SSH的体系结构,SSH基于
36、客户机/服务器体系结构,如图8.18所示,8.3.2 SSH的体系结构(续),SSH软件包由两部分组成,一部分是服务端软件包,另一部分是客户端软件包。服务端是sshd进程,在后台运行并响应来自客户端的连接请求。一般包括公共密钥认证、密钥交换、对称密钥加密和非安全连接。客户端包含ssh程序以及像scp(远程拷贝)、slogin(远程登陆)、sftp(安全文件传输)等其他的应用程序。本地客户端发送一个连接请求到远程服务端,服务端检查申请的包和IP地址再发送密钥给客户端,然后客户端再将密钥发回给服务端,自此连接建立。,8.4 虚拟专用网VPN,随着Internet和电子商务的蓬勃发展,各企业开始允许
37、其合作伙伴也能够访问本企业的局域网,从而大大简化了信息交流的途径,增加了信息交换的速度。这些合作和联系是动态的,并依靠网络来维持和加强。于是大家发现,基于Internet的商务活动面临非善意的信息威胁和安全隐患。另外一些企业随着自身的发展壮大与跨国化,分支机构不仅越来越多,而且相互间的网络基础设施互不兼容也更为普遍。所以,这些企业的信息技术部门在连接分支机构方面也遇到日益棘手的问题。用户的需求也就促成了虚拟专用网络VPN(Virtual Private Network)技术的诞生。,8.4.1 VPN的基本概念,VPN是两个专用网络通过公用网络相互连接传输私有信息的一种方法。虚拟是因为两个专用
38、网络的连接沒有传统网络所需的物理的端到端的链路,而是架构在以Internet为基础的公网之上的逻辑网络。专用是指在VPN上通信的数据是被加密的,与使用专用网一样安全。如图8.19所示。,8.4.1 VPN的基本概念(续),图8.20是VPN在网络中放置的位置。,8.4.1 VPN的基本概念(续),VPN的功能 1)通过隧道或者虚电路实现网络互联;2)支持用戶对网络的管理,其中包括安全管理、设备管理、 配置管理、访问控制列表管理、QoS管理等;3)允许管理员对网络进行监控和故障诊断。 2. VPN的优点1) 省钱:用VPN组网,可以不租用电信专线线路,节省了电话费的开支; 2) 选择灵活、速度快
39、:用戶可以选择多种Internet连接技术,而且对于带宽可以按需定制; 3) 安全性好:VPN的认证机制可以更好地保证用户数据的私密性和完整性; 4) 实现投资的保护:VPN技术的应用可以建立在用戶现有防火牆的基础上,用戶正在使用的应用程序也不受影响。,8.4.1 VPN的基本概念(续),3. VPN的缺点 1)相对专线而言,VPN不可靠。带宽和时延不稳定。对于 实时性很强的应用,比如网络间断10分钟,企业信息系统就会瘫痪的网络不适合使用VPN; 2)相对专线而言,VPN不安全性。由于Internet上鱼龙混杂,它的安全性不如物理专用网; 3)用VPN组网以后,企业内部网范围扩大了,会出现比较
40、多的管理问题。,8.4.1 VPN的基本概念(续),4. VPN的适用范围(1) 有三种情况很适合采用VPN:1)位置众多,特别是单个用户和远程办公室站点较多;2)用户或者站点分布范围广,彼此之间的距离远,遍世界各地;3)带宽和时延要求不是很高。站点数量越多,站点之间的距离越远,VPN解决方案越有 可能成功。(2) 有三种情况不适合采用VPN:1)不管价格多少,网络性能都被放在第一位的情况;2)采用不常见的协议、不能在IP隧道中传送应用的情况;3)大多数应用是语音或视频类的实时通信。,8.4.2 VPN使用的隧道协议,为了在公网中传输私有数据,VPN使用隧道技术达到此目的。隧道技术类似于点对点
41、连接技术,它在公网建立一条数据通道即隧道,让数据包通过这条隧道传输。为创建隧道,隧道的客户机和服务器双方必须使用相同的隧道协议。隧道协议分别以OSI参考模型的第二层或第三层隧道协议为基础。需要注意的是,无论采用何种隧道技术,一旦进行加密或验证,都会对系统的性能造成影响。密码算法需要消耗大量的处理器时间,而且大多数密码算法还有一个建立准备过程,所以在选择安全性时必须选择高性能的设备。,8.4.2 VPN使用的隧道协议(续),1. 点对点隧道协议PPTP 1996年,Microsoft和Ascend等公司在PPP的基础上开发了点对点隧道协议PPTP(Point to Point Tunnel Pr
42、otocol)。PPTP支持多种网络协议,可把IP、IPX、AppleTalk或NetBEUI的数据包封装在PPP包中,然后再将整个包封装在PPTP隧道协议包中。PPTP的加密方法采用Microsoft点对点加密算法MPPE(Microsoft Point-to-Point Encryption)。可以选用相对较弱的40位密钥或强度较大的128位密钥。,8.4.2 VPN使用的隧道协议(续),2. 第2层转发协议L2F第二层转发协议L2F(Layer 2 Forwarding) 是Cisco公司于1996年制定的,于1998年5月提交给IETF。L2F主要用于路由器和拨号访问服务器,它可以在A
43、TM、帧中继、IP网上建立多协议的VPN通信方式。L2F需要ISP支持,并且要求两端传输设备都支持L2F,而对客户端无特殊要求。,8.4.2 VPN使用的隧道协议(续),3. 第2层隧道协议L2TP第二层隧道协议L2TP(Layer2 Tunneling Protocol)是Cisco、Ascend、Microsoft 和RedBack公司的专家们在修改了十几个版本后,于1999年8月公布的标准,标号为RFC2661。L2TP可以使用IPSec机制进行身份验证和数据加密。通常将L2TP和IPSec结合起来使用。L2TP作为隧道协议,提供隧道的建立或封装,以及第二层验证;IPSec对L2TP隧道
44、进行加密,提供对会话的安全保证。,8.4.2 VPN使用的隧道协议(续),L2TP与PPTP的比较 L2TP结合了L2F和PPTP 的优点。隧道的建立有两种方式:用户初始化隧道和网络接入服务NAS(Network Access Server)初始化隧道。前者一般指“主动”隧道,后者指“强制”隧道。“主动”隧道是用户为某种特定请求建立的,而“强制”隧道则是在没有任何来自用户的动作以及选择的情况下系统自动建立的。,8.4.2 VPN使用的隧道协议(续),L2TP作为“强制”隧道模型是让拨号用户与网络中的另一点建立连接的重要机制。而PPTP则是“主动”隧道模型,它允许终端系统进行配置,与任意位置的P
45、PTP服务器建立一条点到点的隧道,在协商和隧道建立过程中没有中间媒介NAS的参与,在这里NAS的作用只是提供网络服务。 L2TP比PPTP提供的安全性高,因为在这种环境中接入服务器能够确定用户是从哪里来的。L2TP用于比较集中的、固定的VPN用户,而PPTP适合移动用户。在VPN的实现中采用L2TP还是PPTP,取决于要把控制权放在NAS还是用户手中。,8.4.2 VPN使用的隧道协议(续),4. 通用路由协议封装GRE 通用路由协议封装GRE(generic routing encapsulation)是由Net-smiths和Cisco公司于1994年提交给IETF的,标号为RFC1701
46、和RFC1702 。GRE是一种基于IP的隧道技术,规定了怎样用一种网络层协议去封装另一种网络层协议的方法。它可被用来在基于IP的骨干网上传输IP、IPX、AppleTalk等多种协议的数据流量。同时,GRE还可被用来在Internet网络上通过隧道传输广播和组播信息,如RIP、OSPF、IGRP、EIGRP等路由更新信息。,8.4.2 VPN使用的隧道协议(续),GRE只提供了数据包的封装,没有加密功能来防止网络侦听和攻击。通常将GRE和IPSec结合起来使用。GRE作为隧道协议,而IPSec提供用户数据的加密,从而提供更好的安全性。GRE作为VPN机制的缺点是管理费用高。由于GRE需要手工
47、配置,所以配置和维护隧道所需的费用和隧道的数量是直接相关的,每次隧道的终点改变,隧道都要重新被配置。尽管隧道也可以自动配置,但如果不能考虑相关路由信息,就容易形成回路,回路一旦形成,会极大地恶化路由的效率。,8.4.2 VPN使用的隧道协议(续),IP安全协议IPSec IPSec把多种安全技术集合到一起,可以建立一个安全、可靠的隧道,同时还有一整套保证用户数据安全的措施,利用它建立起来的隧道更具有安全性和可靠性。IPSec还可以和L2TP、GRE等其他隧道协议一同使用,给用户提供更大的灵活性和可靠性。此外,IPSec可以运行于网络的任意一部分,它可以运行在路由器和防火墙之间、路由器和路由器之
48、间、PC机和服务器之间、PC机和拨号访问设备之间。IPSec经过IETF数年的完善,现在已经成为主流VPN选择的必备协议。,8.4.2 VPN使用的隧道协议(续),6. 多协议标记交换MPLS 多协议标记交换MPLS(Multi protocol Label Switching)由Cisco、Force10 Networks和Juniper Networks等公司于2001年1月提交给IETF,其标号分别为RFC3031和RFC3032 。MPLS技术是与IPSec互补的VPN标准。 IETFIPSec工作组(属于Security Area部分)的工作主要涉及网络层的保护,所以该组设计了加密安
49、全机制以便灵活地支持认证、完整性、访问控制和系统加密;而IETFMPLS工作组(属于Routing Area部分)则从另一方面着手开发了支持高层资源预留、QoS和主机行为定义的机制。,8.4.2 VPN使用的隧道协议(续),当IP数据包进入网络核心时,边界路由器给它分配一个标记。自此,MPLS设备就会自始至终查看这些标记信息,将这些有标记的包交换至其目的地。由于路由处理减少,网络的等待时间也就随之缩短,而可伸缩性却有所增加。MPLS数据包的服务质量类型可以由MPLS边界路由器根据IP包的各种参数来确定,这些参数可以是IP的源地址、目的地址、端口号、TOS值等。同时,通过对特殊路由的管理,还能有效地解决网络的负载均衡和拥塞问题。当网络出现拥塞时,MPLS可实时建立新的转发路由来分散流量以缓解网络拥塞。,8.4.3 VPN采用的技术,实现VPN的技术基础是隧道技术、数据加密和身份验证。隧道技术使得各种内部数据包可以通过公网进行传输;数据加密用于加密隐蔽传输信息(见第2章);身份验证用来鉴别用户的身份(见第3章);数据认证用来防止数据被篡改,同时QoS技术对VPN的实现也至关重要。,