1、1虚拟专用网(VPN)是公共网络或其他不安全环境中的安全专用连接。因为采用加密和隧道协议来确保数据在传输中的机密性与完整性,所以它是专用的连接。必须记住的是,VPN技术需要隧道才能运作,同时还会进行加密。我们需要VPN是因为在系统与系统之间和网络与网络之间传递太多的机密信息。这些信息可能是凭证、银行账户数据、社会保障号、医疗信息或者其他我们不想让别人知道的数据。近年来,我们的网络变得越来越复杂,保护数据传输过程安全的需求在增加,对VPN解决方案的需求也在增加。2点对点隧道协议(Point-To-Point Tunneling Protocol,PPTP)成为事实上的标准VPN软件,自从Micr
2、osoft把它用于Windows产品中时,它就成为最受欢迎的软件。由于多数互联网通信开始都是通过电信链接进行的,因此业内需要一个方法来保证PPP连接的安全。PPTP的最初目的是提供一个用IP网络隧道连接PPP的方法,但是现在多数实现中也都包括了安全功能,因为提供保护成为网络传输中的一个重要要求。PPTP使用通用路由封装(Generic Routing Encapsulation,GRE)和TCP来封装PPP数据包,并通过IP网络延伸PPP连接。如图4-70所示。在Microsoft的实现中,隧道传输的PPP流量可以用PAP、CHAP、MS-CHAP或者EAP-TLS进行身份验证,PPP有效载荷
3、用Microsoft的点对点加密(Microsoft Point-to-Point Encryption,MPPE)进行加密。其他供货商也已经把PPTP功能集成入他们的产品中以达到互操作的目的。3后来开发的另外一个VPN解决方案把PPTP和Cisco的第二层转发(Layer 2 Forwarding,L2F)协议的功能结合在一起。第二层隧道协议(Layer 2 Tunneling Protocol,L2TP)用各种网络类型(IP、ATM、X.25等)来隧道传输PPP流量;这样一来,不像PPTP那样只限于IP网络。PPTP和L2TP的侧重点非常相似,那就是使PPP流量到达一个与不理解PPP的网络
4、相连接的终点。和PPTP一样,L2TP实际在PPP流量的传输过程中并不提供太多保护,只是它和提供安全功能的协议集成在一起。L2TP继承了PPP的身份验证并整合IPSec以提供机密性、完整性,以及可能提供另外一层身份验证。4IPSec是为专门保护IP流量而开发的一套协议。IPv4没有集成任何安全,所以开发了IPSec来“拴住”IP和保护协议传输的数据的安全。PPTP和L2TP工作在OSI模型的数据链路层,IPSec工作在网络层。IPSec包含的主要协议及其基本功能如下:身份验证首部(Authentication Header,AH)提供数据完整性、数据源验证和免受重放攻击的保护。封装安全有效载荷
5、(Encapsulating Security Payload,ESP)提供机密性、数据源验证和数据完整性。互联网安全连接和密钥管理协议(Internet Security Association and Key Management Protocol,ISAKMP)提供安全连接创建和密钥交换的框架。互联网密钥交换(Internet Key Exchange,IKE)提供验证的密钥材料以和ISAKMP一起使用。在IPSec VPN配置中,既可以分别使用也可以一起使用AH和ESP。AH协议提供数据源验证(系统身份验证)和免受未经授权修改的保护,但是不提供加密功能。如果VPN需要提供机密性,那么必
6、须启用和恰当配置ESP。当两个路由器需要建立一个IPSec VPN连接时,它们会有一个安全属性列表,需要通过握手进程进行约定。这两个路由器必须约定算法、密钥材料、协议类型和使用模式,所有这些都用于保护在它们之间传输的数据。5下面是TLS VPN的最常见实现类型:TLS 门户VPN 个体用一个标准TLS连接到网站上来安全地访问多个网络服务。被访问的网站一般叫做门户,因为它通过一个地点提供对其他资源的访问。远程用户使用Web浏览器访问TLS VPN网络,进行身份验证后,会呈现一个网页,作为访问其他资源的门户。TLS 隧道VPN 个体用web浏览器通过一个TLS隧道来安全地访问多个网络服务,包括不是
7、Web型的应用程序和协议。这通常需要进行个性化编程,从而允许服务通过Web型连接被访问。6隧道协议总结点对点隧道协议(Point-to-Point Tunneling Protocol,PPTP):工作在客户端/服务器模型中 延伸和保护PPP连接 在数据链路层上工作 只能通过IP网络传输第二层隧道协议(Layer 2 Tunneling Protocol,L2TP):L2F和PPTP的混合 延伸和保护PPP连接 在数据链路层上工作 能在多种网络中传输,而不仅仅是IP网络 为了提高安全,与IPSec相结合IPSec:能同时处理多个VPN连接 提供安全的身份验证和加密 只支持IP网络 关注LAN网
8、络间通信,而非用户之间的通信 在网络层上工作,实现IP安全传输层安全(TLS):在传输层工作,主要保护Web和e-mail流量 提供细粒化的访问控制和配置 由于TLS已经嵌入Web浏览器中,所以容易部署 仅仅能保护少数协议类型,因此不是基础设施级别的VPN解决方案VPN解决方案各有千秋,各有侧重点:当一个PPP连接需要通过IP网络延伸时则使用PPTP。当一个PPP连接需要通过非IP网络延伸时则使用L2TP。IPSec用于保护IP流量,常用于网关之间的连接。当特定的应用层流量类型需要保护时则使用SSL VPN。为了搞清楚你是否理解这些协议在一起运作的方式和原因,问自己下面的问题:(1)如果互联网
9、是IP型网络,我们为什么还需要PPP?(2)如果PPTP和L2TP本身并不真正保证数据安全,那么要它们还有什么用?(3)如果PPTP和L2TP大致功能相同,为什么还用L2TP代替PPTP?(4)如果一个连接正在使用IP、PPP和L2TP,为什么还要使用IPSec?让我们一起回答一下这些问题。假设你是一位远程用户,现在在家里办公。从你家到公司的网络没有专用链接,你的流量需要通过互联网才能与公司网络进行通信。你家和你的ISP之间的线路是一个点对点电信链接,一个点在你家的路由器上,另一个点在ISP的交换机上。点对点电信设备不理解IP,所以你的路由器必须把你的流量封装在ISP设备能够理解的协议内,即P
10、PP协议。现在你的流量并非去往互联网上的某些网站,相反,它的目的地是你公司的企业网络。这意味着你的流量必须通过一个隧道经由互联网,然后到达它最终的目的地。互联网不理解PPP,所以你的PPP流量必须与能够工作在互联网上的协议封装在一起,创建所需的隧道,与PPTP或者L2TP一样。如果你的ISP和公司网络之间的连接不是在常规网络(IP网络)而是在WAN型连接上(ATM、帧中继)进行,那么L2TP必须用于这种PPP隧道,因为PPTP不能通过非IP网络来传输。7密码身份验证协议(Password Authentication Protocol,PAP)被远程用户用于在PPP线路上进行身份验证。它对试图
11、通过远程系统访问一个系统的用户进行身份标识和身份验证,在身份验证之前,这个协议要求用户输入一个密码。通过PPP建立连接后,密码和用户名凭证通过网络发送至身份验证服务器。身份验证服务器具有一个用户凭证数据库,它比较所应用的凭证,以便对用户进行身份验证。PAP是最不安全的身份验证方法之一,因为它以明文形式发送凭证,这使得凭证很容易被网络嗅探者截获。尽管并不推荐使用,但是如果某些系统无法应用任何其他的身份验证协议,那么还是要依赖PAP。在连接的握手过程中,两个实体要协商如何进行身份验证、使用哪些连接参数、数据流的速度以及其他因素。双方将进行协商并努力在最安全的身份验证方法上达成一致。它们可能首先从E
12、AP开始。如果一台计算机并不具备EAP功能,它们就试图在CHAP上取得一致;如果一台计算机并不具备CHAP功能,那么它们可能被迫使用PAP。如果还不能接受这种身份验证方法,那么管理员将配置RAS以只接受CHAP身份验证或更高级别的身份验证方法,而且根本不能使用PAP。挑战握手身份验证协议(Challenge Handshake Authentication Protocol,CHAP)解决了PAP中存在的一些脆弱性。它不必发送密码,而是采用挑战/响应机制进行身份验证。当用户希望建立一个PPP连接,并且双方同意使用CHAP进行身份验证时,用户的计算机会向身份验证服务器发送一个登录请求。身份验证服
13、务器向用户送出一个挑战,即一个随机值。这个挑战使用预先定义的密码作为加密密钥进行加密,加密后的挑战值返回至服务器。身份验证服务器还使用预先定义的密码作为加密密钥对挑战值进行解密,并将解密后的值与发送的原始值进行比较。如果两个值相同,那么身份验证服务器就推断用户必定输入了正确的密码,并且批准身份验证。EAP并不像PAP和CHAP一样属于身份验证机制。相反,它提供一个框架,使得许多类型的身份验证技术能够在PPP连接中使用。顾名思义,EAP对身份验证方法进行扩展,从常规方法(PAP和CHAP)扩展到其他方法,如一次性密码、令牌卡、生物测定学、Kerberos、数字证书等机制。因此,当用户连接一个身份
14、验证服务器并且双方都具有EAP功能时,它们就能在一个更长的可能的身份验证方法列表中进行协商。8链路加密有时也称为在线加密,它通常由服务提供商提供,并且集成入网络协议。所有的信息都被加密,数据包在每一跳中都必须进行解密,这样路由器或其他中间设备才能知道数据包的下一个发送地点。路由器必须解密数据包的头部,读取头部内的路由和地址信息,然后重新加密井继续向前发送。在端到端加密中,因为数据包的头部和尾部没有进行加密,所以数据包不需要解密,也不需要在每一跳中重新加密。起点和终点之间的设备只是读取所需的路由信息,然后将数据包向前继续发送。端到端加密通常由发送端计算机的用户发起。它为用户提供了更高的灵活性,使
15、得用户能够决定某些信息是否需要加密。之所以将其称为“端到端,原因在于消息从一端传送到另一端时一直保持加密状态,而链路加密的数据包在经过两端之间的每一台设备时都需要进行解密。链路加密的优点包括如下:所有的数据(包括数据包的头部、地址和路由信息)都被加密。用户除了启动之外不需要做任何事情。它在OSI模型中的较低层运作。链路加密的缺点包括如下:因为每个跳设备都必须接收一个密钥,而且密钥改变时必须更新每一个密钥,所以密钥分发和管理更为复杂。数据包在每一跳都进行解密,因此存在更多脆弱点。端到端加密的优点包括如下:为用户提供了决定哪些数据被加密以及如何加密的更大灵活性。因为每一个应用程序或用户都可以选择特
16、定的配置,所以可以获得更高的功能细粒度。网络中每一跳的计算机都不需要拥有解密数据包的密钥。端到端加密的缺点包括如下:数据包的头部、地址和路由信息未被加密,因此缺乏保护。9多用途互联网邮件扩展(Multipurpose Internet Mail Extensions,MIME)是一种说明多媒体数据和电子邮件如何传输的技术规范。互联网具有规定邮件怎样格式化、怎样封装、怎样传输以及怎样打开的邮件标准。如果消息或文档包含二进制附件,那么MIME会规定应该怎样处理消息的这一部分。安全MIME(Secure MIME,S/MlME)是一种对电子邮件进行加密和数字签名以及提供安全数据传输的标准。通过允许对
17、电子邮件及其附件进行加密,S/MlME扩展了MIME。加密和散列算法可以由邮件包的用户决定,而不是向他们指定具体的规范。S/MIME遵循公钥密码学标准(Public Key Cryptography Standards,PKCS)。通过加密算法提供机密性,通过散列算法提供完整性,通过使用X.509公钥证书提供身份验证,并且通过加密签名消息摘要提供不可否认性。可靠加密(Pretty Good Privacy,PGP)由Phil Zimmerman在1991年作为一种免费电子邮件保护程序而设计,它是第一个广泛使用的公钥加密程序。PGP是一个完整的密码系统,它使用加密来保护电子邮件和文件。尽管用户可
18、以选择各种不同的算法来进行加密,但PGP主要使用RSA公钥加密来实现密钥管理,使用IDEA对称密码来完成批量数据的加密。PGP可以通过使用IDEA加密算法来提供机密性,通过使用:MD5散列算法来提供完整性,通过使用公钥证书来提供身份验证,以及通过对消息进行加密签名来提供不可否认性。PGP使用自己的数字证书类型,而不是PKI中使用的数字证书类型,不过两者的目的相似。PGP并不使用CA层次结构或任何类型的正式信任证书,而是在其密钥管理方式中依赖于“信任Web”。每个用户都生成和分发自己的公钥,并且对彼此的公钥进行签名,从而建立了一个彼此信任的用户团体。这一点与CA方式不同。在CA方式中,没有人互相信任,他们只信任CA。10HTTP安全(HTTPS):在SSL运行的HTTP(HTTP在应用层上运行,而SSL在传输层上运行)。这两种技术都可以在OSI模型中加密来自较高层的流量。安全套接字层(SSL)使用公钥加密,并且提供数据加密、服务器身份验证、消息完整性以及可选客户端身份验证。SSL的开放社区版本是传输层安全(TLS)Cookie是浏览器保存在用户硬盘上的文本文件。安全外壳(SSH)在功能上类似于一种隧道机制,它为远程计算机提供终端式访问。1112