注意:本页面内容为W3xue原创,未经授权禁止转载,违者必究!
来源:W3xue 发布时间:2018/3/16 16:58:34
在上一章节中,我们学习了数字证书的相关内容,在启用数字证书后,服务器端和客户端之间的通信受到了SSL协议的保护。那么SSL的基本原理是什么?其后继者TLS有哪些新特性?IPSec有什么特性?这一章我们就来学习这些内容。
一、SSL和TLS
1、安全通道
安全通道(Schannel)是包括一组安全协议的安全支持提供程序(SSP,Security Support Provider),这些协议通过加密技术提供身份验证和安全的私有通信。Schannel协议不仅可以通过使用X.509证书提供身份验证,而且可以通过使用称为“密码套件”的多组加密算法来提供安全通信。
Schannel包括以下协议:
- TLS。TLS协议是用来保护互联网上传输信息私密性的工业标准协议。该协议让客户端/服务器端应用程序能够侦测到信息篡改、拦截和伪造。TLS是保护互联网信息传输安全的首选协议,该协议有时被称为SSL3.1。
- SSL。SSL协议与TLS协议紧密关联。SSL 3.0是受到广泛支持的协议。
- PCT。PCT协议用来支持向下兼容,不应将其用于新开发的应用程序。
2、SSL/TLS工作原理
在服务器上启用SSL后,SSL会自动对传输的信息进行加密,这样就可以保持传输过程的安全。
SSL加密过程依赖服务器上的公钥和私钥。私钥仅存在于服务器上,Web服务器使用它加密和解密安全信息。而公钥则存在于任何安装了该Web服务器证书的客户端计算机中。安装公钥后,用户可以向Web服务器发送加密信息,并能解密从服务器传输来的信息。用户启用SSL后,SSL安全会话将被启动,公钥将会为会话创建唯一的会话密钥,并对信息加密。
由Web服务器证书生成的每个会话密钥都是唯一的,因此,即使攻击者在浏览器中安装了同样的证书,也不能解密他人的信息。甚至原来加密信息的浏览器也解密不了该信息(因为使用的是非对称加密),只有拥有相应私钥的Web服务器才能解密该信息。拥有相应私钥的Web服务器,在获取加密的信息后,使用私钥解密,这个通信阶段通常被称为SSL握手。
需要注意的是,使用了SSL协议来传输信息,并不是意味着信息不会被截获,而是说,在这些加密信息被截获后,由于目前计算机计算能力的限制,无法在短时间内破解,而如果破解了,这段会话早就结束了,会话密钥会被销毁,就算破解了也没有用了。但是,在未来通用量子计算机商用化的时候,要么必须寻找新的加密方法,要么需要指数级的增加加密强度,否则,量子计算机会轻易破解掉目前市面上所有的加密方法。
如果Web应用程序强制要求客户端证书,则用户访问该应用时,用户的个人证书将会被自动发送到服务器。需要注意的是,证书被发送到服务器的过程,并不要求使用SSL。如果用户拥有不止一个证书,则浏览器会询问用户使用哪一个证书;如果用户没有证书,则不允许该用户访问应用。如果Web应用程序并不强制要求客户端证书,则用户即使没有个人证书,也可以访问Web应用程序。
不同的Web服务器软件,其启用SSL协议的过程不尽相同,且一般CA都会对设置过程进行详尽的描述,这里不再一一赘述。
3、SSL/TLS使用准则
在Web应用程序中使用SSL/TLS时,应考虑使用如下准则:
- 只支持SSL/TLS不足以保证通讯能安全进行。仅仅启用SSL/TLS是不够的,必须将常规HTTP通信使用的80端口干掉,只开放443端口。还可以通过代码的方式检查客户端的证书映射和SSL。
- 在页面中嵌入HTTPS链接并不能确保保密性。对于WEB应用中,关键性的部分,如用户账户,必须在服务器上要求SSL访问。
- SSL的使用会降低服务器性能。SSL和其他任何公钥加密协议都会消耗大量的Web服务器资源,因为必须为每一个连接的用户进行大量的计算和资源分配工作。这一点从客观上限制了最大用户连接数。如果你的站点追求极致性能,而没有关键信息,可以考虑不使用HTTPS。或者只在关键页面,如用户登录页面等其他敏感页面,或者整个文件夹中使用SSL。但类似Chrome等浏览器,在真正的通用量子计算机商用化之前,会将HTTP网站标记为不可信的网站,这一点需要考虑。
- 保持SSL/TLS页面简单化。基于前一条原因,必须将页面进行充分的压缩,包括尽量不使用图片。因为SSL会加密页面上的所有东西,包括图片。
- 使用加密硬件加速器。这些设备通过在定制硬件上执行复杂耗时的公钥操作来减轻主服务器的负担。
二、IPSec
IPSec是用加密安全服务来保证IP网络中通讯安全性和机密性的开放标准框架。在Windows2000及更高版本中,对同一网络、企业内部网或外部网内主机间的数据传输(包括工作站与服务器间和服务器与服务器间的通讯),可以使用IPSec来验证计算机身份和加密数据。
1、IPSec概述
IPSec的主要目标是保护IP包。IPSec是基于端对端的安全模型,这意味着发送方和接收方都必须是知道IPSec保护的唯一主机。在假设通讯过程不安全的前提下,每台计算机都在自己的一端处理安全问题,而对只将数据从源地址路由到目标地址的计算机,不要它支持IPSec。
IPSec由策略和筛选器组成。可以使用筛选器操作创建新的筛选器,以决定拒绝或允许不满足筛选器的通信数据包通过。可以建立筛选器来保护IP地址之间的通讯数据包,然后可以基于筛选器创建策略。在IPSec中,有默认的策略和筛选器,也可以生成自己的筛选器。
在Web应用中,IPSec可以用来保护Web服务器与防火墙之内的SQL Server数据库服务器(或其他服务器)之间的通讯。和SSL一样,使用IPSec会降低服务器性能,所以应该只在需要使用它们时启用。
IPSec在传输层实现加密、完整性检查和身份验证时,对应用程序是完全透明的。应用程序可以使用TCP和UDP端口以常用方式继续与其他程序通讯。
使用IPSec,可以通过加密两台计算机之间传输的所有数据来实现信息传输的机密性,可以确保信息的完整性(不加密的情况下),提供两台计算机(不是用户)之间相互的身份验证。例如,建立只接受指定客户端计算机(如某个Web服务器或应用程序)请求的策略有助于保证数据库服务器的安全。IPSec还可以指定限制哪些计算机与其他计算机进行通讯,也可以限制用指定的IP协议和TCP/UDP端口通讯。
需要注意的是,IPSec不是用来替代应用程序内部的安全机制的,它可以用来保护非TLS协议免受网络攻击。IPSec完全由IPSec管理单元控制和配置,IPSec管理单元在MMC控制台的本地安全策略中。
要测试IPSec策略,可以使用IPSec监视器。IPSec监视器(Ipsecmon.exe)提供有关哪个IPSec策略正被启用,以及计算机间是否已经建立了安全通道等方面的信息。
2、实现IPSec
可以使用在IP安全策略管理的MMC管理单元中配置的策略来控制IPSec。用IP安全策略管理来集中管理Active Directory 客户端的IPSec策略:或对运行控制台的计算机进行本地管理,或远程管理某台计算机或某个域。要配置计算机的IPSec策略,必须使用管理员账号。
可以使用自定义的IPSec策略,或使用自定义的IPSec策略,来选择要加密的计算机和相应的安全方法。IPSec策略使用规则来管理如何和何时调用策略,规则根据源地址、目标地址和IP通信类型来提供启动和控制安全操作的能力。
要激活IPSec策略,首先,从“本地安全策略”控制台,定位到“计算机配置\Windows设置\安全设置”,然后单击“IP安全策略,在本地计算机”。然后,在详细窗格中,右击要指派的策略,单击“指派”。
IPSec有两种模式可以选择,一是传输模式,二是隧道模式。传输模式是默认的模式,可以对传输的数据进行验证和加密。隧道模式适用于远程网络间建立安全通讯,其优点是两个隧道端点之间的数据传输是安全的,与最终达到的目标地址无关。使用隧道模式时,不需要为每台计算机配置IPSec,但该模式不提供每个网络内部的安全性。使用该模式要求两个端点之间都有路由器和一个IP地址。
有关如何使用 IPSec的情况,可以阅读微软MSDN的官方文档:如何使用 IPSec,这里不再赘述。
3、IPSec与SSL
SSL,与传统的IPSec 技术各具特色,各有千秋。SSL 比较适合用于移动用户的远程接入(Client-Site),而IPSec 则在网对网(Site-Site)的VPN连接中具备先天优势。这两种产品将在VPN市场上长期共存,优势互补。在产品的表现形式上,两者有以下几大差异:
- IPsec 多用于“网—网”连接,用于保护所有传输,而SSL 用于“C/S”连接,只用于保护HTTP、LDAP等特定协议的连接。SSL 的用户使用标准的浏览器,无需安装客户端程序,即可通过SSL VPN隧道接入内部网络;而IPSec VPN的移动用户需要安装专门的IPSec客户端软件。
- IPsec 保护所有通讯,而SSL可以选择保护哪些部分,所以后者对服务器负担较小。
- IPsec 可以设定只有特定应用程序才能访问数据库等资源,而SSL要达到这一点必须使软件内置SSL协议。
- SSL VPN是基于应用层的VPN,而IPsec VPN是基于网络层的VPN。IPsec VPN对所有的IP应用均透明;而SSL VPN保护基于Web的应用更有优势,当然好的产品也支持TCP/UDP的C/S应用,例如文件共享、网络邻居、Ftp、Telnet、Oracle等。
- SSL 用户不受上网方式限制,SSL VPN隧道可以穿透防火墙;而IPSec客户端需要支持“NAT穿透”功能才能穿透防火墙,而且需要防火墙打开UDP500端口。
- SSL 只需要维护中心节点的网关设备,客户端免维护,降低了部署和支持费用。而IPSec VPN需要管理通讯的每个节点,网管专业性较强。
- SSL VPN 更容易提供细粒度访问控制,可以对用户的权限、资源、服务、文件进行更加细致的控制,与第三方认证系统(如:radius、AD等)结合更加便捷。而IPSec VPN主要基于IP组对用户进行访问控制。
- IPsec 要求两台计算机都运行Windows,而SSL则没有操作系统限制。
在实现技术及应用方面,从以下四个方面论述:
一、SSL VPN和IPSec VPN在底层协议上的区别。简单来说,SSL和IPSec两个都是加密的通讯协议, 从任何TCP网络来保护基于IP的数据流。这两种通讯协议都有它们自己独特的特色和好处。IPSec协议是网络层协议, 是为保障IP通信而提供的一系列协议族。SSL协议则是套接层协议,它是保障在Internet上基于Web的通信的安全而提供的协议。IPSec针对数据在通过公共网络时的数据完整性、安全性和合法性等问题设计了一整套隧道、加密和认证方案。IPSec能为IPv4/IPv6网络提供能共同操作使用的、高品质的、基于加密的安全机制。提供包括存取控制、无连接数据的完整性、数据源认证、防止重发攻击、基于加密的数据机密性和受限数据流的机密性服务。SSL用公钥加密通过SSL连接传输的数据来工作。SSL是一种高层安全协议,建立在应用层上。SSL VPN使用SSL协议和代理为终端用户提供HTTP、客户机/服务器和共享的文件资源的访问认证和访问安全SSL VPN传递用户层的认证。确保只有通过安全策略认证的用户可以访问指定的资源。SSL是专门设计来保护HTTP通讯协议。当浏览器和Web服务器双方皆已设定好来支持SSL时,如果透过这个通讯协议所传输的数据流加密,SSL将提供一个安全的"封套"来保护浏览器和Web服务器中的IP封包。在IPSec和SSL通讯协议的设计上有一些原理上的不同。第一,IPSec是以网络层为中心,而SSL是以应用层为中心。第二,IPSec需要专门的使用端软件,而SSL使用任何SSL支持的浏览器为使用端。最后,SSL原本是以机动性为中心而IPSec不是。
二、 SSL VPN 和IPSec VPN在连接方式上的区别。在连接方式上,SSL VPN 和IPSec VPN 也有很大的区别。IPSec VPN 最初设计是用来为企业的各个部门之间提供站点到站点通信的。由于企业将用户扩展到了包括远程访问,于是不得不扩充IPSec协议的标准,或者修改厂商实现的协议。IPSec VPN通过在两站点间创建隧道提供直接(非代理方式)接入,实现对整个网络的透明访问;一旦隧道创建,用户PC就如同物理地处于企业LAN中。它要求软硬件兼容,要求"隧道"两端几乎只能是同一个供应商的软件。采用IPSec VPN,企业要指定"隧道"两端使用的技术,但是很少有公司能够或者愿意强迫他们的合作伙伴或者客户也选用这个技术,这就限制了通过IPSec VPN建立企业外网的应用。相对于传统的IPSec VPN,SSL能让企业实现更多远程用户在不同地点接入,实现更多网络资源访问,且对客户端设备要求低,因而降低了配置和运行支撑成本。很多企业用户采纳SSL VPN作为远程安全接入技术,主要看重的是其方便的接入能力。SSL VPN提供增强的远程安全接入功能。IPSec VPN的接入方式,使用户PC就如同物理地处于企业LAN中。这带来很多安全风险,尤其是在接入用户权限过大的情况下。SSL VPN提供安全、可代理连接,只有经认证的用户才能对资源进行访问,这就安全多了。SSL VPN能对加密隧道进行细分,从而使得终端用户能够同时接入Internet和访问内部企业网资源,也就是说它具备可控功能。另外,SSL VPN还能细化接入控制功能,易于将不同访问权限赋予不同的用户,实现伸缩性访问;这种精确的接入控制功能对远程接入IPSec VPN来说几乎是不可能实现的。SSL VPN基本上不受接入位置限制,可以从众多Internet接入设备、任何远程位置访问网络资源。SSL VPN通信基于标准TCP/UDP协议传输,因而能遍历所有NAT设备、基于代理的防火墙和状态检测防火墙。这使得用户能够从任何地方接入,无论是处于其他公司网络中基于代理的防火墙之后,或是宽带连接中。而IPSec VPN在稍复杂的网络结构中则难于实现。另外,SSL VPN能实现从可管理企业设备或非管理设备接入,如家用PC或公共Internet接入场所,而IPSec VPN客户端只能从可管理或固定设备接入。随着远程接入需求的不断增长,远程接入IPSec VPN在访问控制方面受到极大挑战,而且管理和运行成本较高,它是实现点对点连接的最佳解决方案,但要实现任意位置的远程安全接入,SSL VPN则要更加理想。
三、SSL VPN 和IPSec VPN在安全方面的区别。IPSec安全协议的一个主要优势就是只需要在客户和网络资源边缘处建立通道。仅保护从客户到公司网络边缘连接的安全,不管怎样,所有运行在内部网络的数据是透明的,包括任何密码和在传输中的敏感数据。SSL安全通道是在客户到所访问的资源之间建立的,确保端到端的真正安全。无论在内部网络还是在因特网上数据都不是透明的。客户对资源的每一次操作都需要经过安全的身份验证和加密。使用IPSec的联机方式,每一个使用者端在网络上会被当成一个节点,而此联机会一直处于激活的状态(Active)。因此,一但使用者端的计算机被黑客或病毒入侵,黑客就可以透过此网络连结进入另一个端点,也就是公司内部。因这样的运作模式,此节点很有可能成为黑客、病毒入侵的管道。使用SSL VPN的方式做网络联机则可以避免这样的问题发生。因为,SSL VPN的一大特点就是具有Session保护功能,就是在会话停止一段时间以后切自动断联机,如果需要继续访问则需要重新登录。这样的SSL通讯协议机制可以有效避免黑客和病毒的入侵威胁。远程用户以IPSec VPN的方式与公司内部网络建立联机之后,内部网络所连接的应用系统,都可以被侦测到,这就提供了黑客攻击的机会。若是采取SSL VPN来联机,因为是直接开启应用系统,并没在网络层上连接,黑客不易侦测出应用系统内部网络机制,所受到的威胁也仅是所联机的应用系统,攻击机会相对减少许多。
四、SSL VPN和IPSec VPN在企业应用方面的互补。许多专家认为,就通常的企业高级用户和LAN-to-LAN连接所需要的直接访问企业网络功能而言,IPSec VPN的优势无可比拟。然而,典型的SSL VPN却被认为最适合于普通远程员工访问基于Web的应用。因而,如果需要更全面的、面向基于浏览器应用的访问,以及面向远程员工、把所有办公室连接起来,SSL VPN无疑是首选。另一方面,SSL VPN不需要在最终用户的PC和便携式电脑上装入另外的客户软件。有些公司之所以选择SSL而不是IPSec,这项不需要客户软件的功能正是一个重要因素。除此之外,SSL VPN还有其它经常被提到的特性,包括降低部署成本、减小对日常性支持和管理的需求。此外,因为所有内外部流量通常都经过单一的硬件设备,这样就可以控制对资源和URL的访问。厂商推出这类不需要客户软件的VPN产品后,用户就能通过与因特网连接的任务设备实现连接,并借助于SSL隧道获得安全访问。这需要在企业防火墙后面增添硬件,但企业只要管理一种设备,不必维护、升级及配置客户软件。因为最终用户通过与因特网连接的任何设备就能访问企业的网络,SSL更容易满足大多数员工对移动连接的需求。不过这种方案的问题在于,SSL VPN的加密级别通常不如IPSec VPN高。所以,尽管部署和支持成本比较低,但SSL VPN仍有其缺点。同时,SSL VPN还具有一定的局限性,只能访问通过网络浏览器连接的资源。SSL VPN在不需要客户软件的运行环境中有其效率和好处,但在性能、应用覆盖等方面也存在问题。SSL VPN这种方案可以解决操作系统的客户软件问题、客户软件维护问题,但肯定不能完全替代IPSec VPN,因为各自所要解决的是几乎没多少重叠的两种不同问题。对需要远程访问的大多数公司而言,所支持的应用应当包括公司为尽量提高效率、生产力和盈利能力所需要的各种应用。SSL VPN能支持的应用种类比较有限。
大多数SSL VPN都是HTTP反向代理,这样它们非常适合于具有Web功能的应用,只要通过任何Web浏览器即可访问。HTTP反向代理支持其它的查询/应答应用,譬如基本的电子邮件及许多企业的生产力工具,譬如ERP和CRM等客户机/服务器应用。为了访问这些类型的应用,SSL VPN为远程连接提供了简单、经济的一种方案。它属于即插即用型的,不需要任何附加的客户端软件或硬件。然而,同样这个优点偏偏成了SSL VPN的最大局限因素:用户只能访问所需要的应用和数据资源当中的一小部分。SSL VPN无法为远程访问应用提供全面的解决方案,因为它并不有助于访问内部开发的应用,也不有助于访问要求多个渠道和动态端口以及使用多种协议这类复杂的应用。不过这对公司及远程用户来说却是一个关键需求。譬如说,SSL VPN没有架构来支持即时消息传送、多播、数据馈送、视频会议及VoIP。
尽管SSL能够保护由HTTP创建的TCP通道的安全,但它并不适用于UDP通道。然而,如今企业对应用的支持要求支持各种类型的应用:TCP和UDP、客户机/服务器和Web、现成和内部开发的程序。在这方面就需要应用IPSec VPN才能胜任。
理想的应用情况是:企业在总部和各个分部之间通过IPSec VPN进行连接,这样可以把总部和分部的终端包括在一个LAN中。而为移动办公或者出差的人员提供VPN的接入服务。充分利用IPSec VPN的互补性,使企业的网络结构更加的合理。
总的来说,IPSec VPN和SSL VPN在应用方面都有各自的优点和缺点。往往一方的缺点就是对方的缺点。两种技术在应用上具有很大的互补性。企业在选购VPN产品的时候,可以针对这些优缺点,结合企业自身的应用合理的选择合适的VPN产品。
注意:本页面内容为W3xue原创,未经授权禁止转载,违者必究!
来源:W3xue 发布时间:2018/3/16 16:58:34