第16章网络访问控制和云安全第17章传输层安全第18章无线网络安全第19章电子邮件安全第20章IP安全性本章我们从两个重要的方面讨论网络安全:网络访问控制和云安全。我们首先总体上介绍网络访问控制系统,总结它的主要元素和涉及的相关技术。接着我们会讨论可扩展的认证协议和IEEE802.1X,他们是两种广泛实施的标准,是许多网络访问控制系统的基础。本章后半部分讲述云安全相关内容。首先总体上介绍云计算相关知识,接着讨论云安全问题。网络访问控制(networkAccessControl,NAC)是对网络访问管理的总称。NAC在用户登录网络的时候进行认证,决定其可以获取哪些数据及可以执行哪些行为。NAC同时还检测用户的计算机及移动设备(终端)的安全情况。1.网络访问控制系统的组成元素一个网络访问控制系统的组成元素有:访问请求者(AR):AR是试图访问网络的节点。它可能是NAC系统管理的任何设备,包括工作站、服务器、打印设备、摄像机及其他具有IP的设备。AR通常被认为是请求者或者简单说是客户端。16.1网络访问控制策略服务器:根据AR的信息和企业制定的策略,策略服务器决定哪些访问是被允许的。策略服务器通常依赖后台系统,包括反病毒软件、补丁管理系统及用来帮助决定主机环境的用户字典。网络接入服务器(NAS):NAS是一个接入控制点,为用户远程连接企业的内部网络提供访问控制。通常它也被称为媒体网关,远程访问服务器或者策略服务器。一个NAS可能包含自己的认证服务器,或是依赖策略服务器提供的认证服务。下图是一张常见的网络接入图。许多不同种类的AR通过向相应的NAS申请,来尝试访问企业网络。第一步通常是对AR进行认证。认证通常包括一些安全协议和密钥的使用。NAS可能执行这个认证过程,也可能只在认证过程担当中介的作用。在之后的过程中,认证发生在请求者和认证服务器之间。认证服务器是策略服务器的一部分或者通过认证服务器接入的。认证过程提供多种目的的服务。它验证请求者所声明的身份,使得策略服务器能够由身份决定AR所拥有的权限。认证的过程可以会产生会话密钥,来确保在企业网络上用户和资源之间的安全通信。通常,策略服务器或辅助服务器会对AR进行检查,决定AR是否可以进行远程交互连接的访问。这些检查(又称为健康、适配、筛选或评估检查)需要对用户系统上的软件进行认证,来确定其是否符合企业制定的安全配置基本要求。比如,用户的反恶意软件必须是最新的,操作系统补丁要打满,远程主机必须是由企业拥有并控制的。这些检查必须在AR获得访问企业网络的授权之前进行。在这些检查结果的基础上,企业可以决定远程计算机是否可以进行交互远程访问。如果一个用户具有可接受的授权凭证,但远程计算机并没有通过安全检查,用户和远程计算机的网络访问会被拒绝,或者在隔离网络中进行受限的访问,这使得授权用户能够修复安全缺陷。上图展示了隔离网络的组成,通常包括策略服务器和AR相关的适用性服务器,也可能包含不需要常规安全门限的应用服务器。一旦AR经过授权,明确了在企业网络访问中的级别,NAS就会使AR能够与企业网络中的资源进行交互。NAS可能会为了执行安全策略传递它的每次交换,也可能使用其他的方法限制AR的权限。2.网络访问实施方法实施方法是为了控制对企业网络的访问而实施在AR上的行为。许多供应商支持多种实施方法,允许用户使用一个或多种方法的组合来进行配置。下面将介绍常见的NAC实施方法。IEEE802.1X:这是一个链路层协议,它在一个端口被分配IP之前执行授权。IEEE802.1X使用可授权访问协议进行授权。虚拟本地局域网(VLAN):企业网络是一系列有联系的LAN组成的网络。通过这种方式,它在逻辑上被分割为一系列虚拟的LAN。NAC系统根据设备是否需要安全修复、只需要网络访问或需要访问企业资源决定哪些VLAN来管理相应的AR。VLAN可被动地创立,VLAN中服务器和AR之间的成员关系可重叠。也就是说,一个服务器或AR可以属于一个或多个VLAN。防火墙:一个防火墙提供一个表单。它允许或拒绝企业主机和外部用户之间的网络流量。DHCP管理:动态主机配置协议是一个可以给主机动态分配IP的网络协议。一个DHCP服务器收到DHCP请求,然后进行IP分配。因此,NAC的实施发生在以子网和IP分配为基础的IP层。一个DHCP服务器的安装和配置是简单的,但是它受限于多种形式的IP欺骗,提供了受限的安全性。还有很多其他的实施方法被供应商支持。可扩展认证协议(EAP)在RFC3748中定义。它是一个网络访问和授权协议的框架。EAP提供了许多协议消息,他们可以封装多种认证方法,在客户和认证服务器之间使用。EAP可以在多种网络和链路层设备进行操作,包括点到点链路、LAN及其他网络。可以适应多种链路和网络的认证需求。下图展示了组成EAP的协议层次。16.2可扩展认证协议1.认证方法EAP支持多种认证方法,这就是EAP可扩展的含义所在。EAP在客户端系统和认证服务器之间为认证信息交换提供了一个通用的传输服务。基本的EAP传输服务通过使用一个特殊的认证协议、方法进行扩展。这些协议会同时装在EAP客户端和认证服务器上。许多方法都规定可以在EAP上工作。下面是一些常见的EAP支持方法:EAP-TLS(EAPTransportLayerSecurity):EAP-TLS(RFC5216)定义了TLS协议(第17章将会介绍)如何封装在EAP消息中。EAP-TLS使用TLS中的握手协议,而非它的加密方法。客户端和服务器使用其数字证书进行相互认证。客户端通过使用服务器的主密钥加密一个随机数,产生一个预主(Pre-master)密钥,并将其发往服务器。客户端和服务器都使用预主密钥产生相同的密钥。EAP-TTLS(EAPTunneledTLS):EAP-TTLS和EAP-TLS基本相同,不同之处在于服务器首先要通过证书向客户端证明自己。与EAP-TLS中相同,它使用密钥建立一个安全的连接(“隧道”),但这个连接用来对客户进行认证,可能的话,服务器会再次使用EAP方法或是老方法[如PAP(口令认证协议)和CHAP(挑战-握手认证协议)]。EA-TTLS在RFC5281中有详细的定义。EAP-GPSK(EAPGeneralizedPre-SharedKey):EAP-GPSK在RFC5433中定义。它是一种使用交互认证的EAP方法,会话密钥由预共享秘钥(PSK)产生。EAP-GPSK制定了一个基于预共享密钥的EAP方法,采用了基于密钥的密码算法。因此,在消息流和计算开销方面十分有效,但是它要求客户端和服务器之间存在预共享秘钥。它为成功进行交互认证提供了受保护的安全信道,它是为在如IEEE802.11这种不安全网络上进行认证设计的。EAP-GPSK不需要公钥密钥交换。这种EAP方法协议交换最少可以4步完成。EAP-IKEv2:它的基础是第20章会讲到的互联网密钥交换协议版本2(IKEv2)。它支持交互认证,会话密钥建立使用了多种方法,它在RFC5106中进行定义。2.EAP交换无论在认证中使用何种方法,认证信息和认证协议信息都会包含在EAP消息中。RFC3748定义了EAP消息交换的目标是成功的认证。在RFC3748中,成功的认证是指在一次EAP消息交换中,根认证者根据认证结果决定是否允许客户访问及客户端决定是否进行访问。认证者的决定通常包括认证和授权。客户端可能通过了认证者的认证,但访问可能会因为策略原因被认证者拒绝。下图展示了一个典型的EAP使用。下面将介绍它的组件:EAP请求者(EAPpeer):尝试访问网络的客户计算机。EAP认证者(EAPauthenticator):一个接入点或NAS。他们要求提前进行认证,以便接入到网络。认证服务器(Authenticatorserver):它是一个服务器计算机,它利用EAP方法和EAP客户端进行交互,认证客户端的信息,授权其访问网络。典型地,授权服务器是一个提供远端用户接入认证服务(RADIUS)的服务器。认证服务器作为后台服务器可以为许多EAP认证者提供认证客户的服务。EAP认证者进一步决定是否给客户端提供接入,这也被称为EAP转移模式。有时认证者可能会代替EAP服务器,如此在EAP执行过程中就只包含两部分。第一步,通常使用一个底层协议(如PPP协议或IEEE802.1X)来连接EAP认证者。EAP客户端在这层操作的软件实体被称为请求者。EAP消息对于每种选定的EAP方法包含适当信息。它会在EAP客户端和认证服务器之间进行交换。EAP消息应该包含以下几个部分:编码(code):指明EAP包的类型,共有4种:(1)Request;(2)Response;(3)Success;(4)Failure。标志符(Identifier):用于匹配Request消息和Response消息。长度(Length):EAP包的长度,包含了Code、Identifier、Length和Data域。数据(Data):包含涉及认证的信息。通常Data域包含Type域和Type-Data域,其中Type域指明了所包含数据的类型。Success和Failure消息不包含Data域。EAP认证交换过程如下所述:在底层交换建立了EAP所需连接后,认证者向客户端发送一个对于其身份的请求,客户端会返回一个带有其身份信息的回应。通信过程会遵从一系列流程,为了完成认证信息的交换,流程由一系列认证者的请求和客户端的回应组成。请求-应答交换的次数取决于验证方式。会话将在出现以下两种情况时终止;(1)认证者认为该客户端不能通过认证,发送Failure消息;(2)认证者认为认证成功,发送Success消息。下图给出了一个EAP交换的例子。图中有一个从客户端发送到认证者的消息或信号,但并没有显示,它使用非EAP协议,请求一个EAP交换来获得网络接入。一个例子就是下一节讨论的IEEE802.1X。认证者和客户端交互中首次Request和Response消息是关于身份的,认证者请求客户端的身份,客户端在应答消息中声明自己的身份。应答通过认证者传递到认证服务器。其余的EAP交换在客户端和认证服务器之间进行。在收到身份Response消息后,服务器选择一种EAP方法,并发送第一个EAP消息,这个消息的Type域与这种EAP方法相关联。如果客户端支持这种EAP方法,就会回应一个这种方法的应答消息。如果不支持,客户端发送一个NAK,服务器或者选择另一种EAP方法或者发送Failure消息结束这次连接。选择的EAP方法决定了请求-应答交换的次数。在交换中进行了包括密钥材料等适当认证信息的交换。当服务器认证认证成功或认证失败时,交换结束。IEEE802.1X基于端口的网络访问控制是为LAN提供访问控制设计的。表16.1简要定义了在IEEE802.1X表中使用的关键词。Supplicant,networkaccesspoint,authentication分别对应EAP中的peer,authenticator,authenticationsever。直到AS(使用一个认证协议)认证一个请求者,认证者只是在AS和请求者之间传递控制和认证消息。此时802.1X控制信道是通畅的,802.11数据信道是拥挤的。一旦请求者认证被通过,并被分配了密钥,认证者就能转发请求者的数据,但是其受限于预定义的请求者访问权限。在这种情况下,数据信道就通畅了。16.3IEEE802.1X基于端口的网络访问控制正如下图所示:802.1X使用了受控端口和非受控端口的概念。端口是认证者和相关物理网络连接定义的逻辑实体。每个逻辑端口对应这两种物理端口中的一个。一个非受控端口允许协议数据单元(PDU)在AS和请求者之间交换,无须考虑请求者的认证状态。一个受控端口只有在请求者的状态允许这次交换时,才允许PDU在网络上其他系统和请求者之间进行交换。802.1X定义的一个基本元素称为EAPOL(EAPoverLAN)。EA