云计算安全:网络准入技术

Published on 2016 - 10 - 16

网络准入的技术分类

从网络安全的分类可以看到,“准入”的执行在“加密”之前,只有接入用户的合法性得到保证,数据加密才有意义,那么我们就先来看看网络准入的技术分类。网络准入是一个由来已久的话题,但一直以来并不是IT安全的重点,直到近年来,才逐渐成为炙手可热的技术领域。无线接入、智能移动终端和云计算的兴起共同催生了这一波热潮。

随着云计算的不断深入,越来越多的企业业务系统由传统的C/S架构向B/S架构迁移,以往访问后台数据需要安装专用软件,IT部门控制客户端软件的许可发放,就能够大致控制访问用户的范围。而在B/S架构中,用户只需要一个Web浏览器即可登录系统。

另一方面,智能手机、智能平板和Wi-Fi的流行推动了BYOD(Bring Your Own Device——员工带自己的设备办公)的兴起。BYOD的意思是携带员工的个人设备接入公司网络,越来越多的人开始在办公场所使用iPad,并用自己的手机登录公司的电子邮箱,这些设备不但不归IT部门管理,而且它们还可以自由地访问公司内部网络,这对数据安全造成了严重的威胁。如果一个人用智能手机下载了公司邮件,回到家后用同一部手机访问被挂了木马的网站,那么包含公司机密信息的邮件就可能被暴露在整个互联网上。随着BYOD越来越普遍,以往对终端设备的那些限制条件都消失了,任何人手中的设备都成了可能访问后台数据库的平台,IT部门突然一下子失去了对局面的控制。于是,对网络的准入控制被重新提上日程。只有合法的用户才能够接入网络,通过对接入用户的控制,IT部门开始试图重新夺回对数据访问的控制权。

控制用户接入网络的技术伴随网络本身的诞生和发展已经衍生出五花八门的派别,每种方式都有自己的特点和适用场景,很难说哪种方式在技术实现和最终效果上技高一筹取得了绝对的领先地位。

在新形势下,接入技术本身并没有发生翻天覆地的变化,其演进更多地是从满足需求的前提出发,将现有的方式进行重新的优化、组合,从而推出一个满足新需求的解决方案。

在实际环境中常见的认证准入方式包括:

  • 二层准入;
  • 三层准入;
  • 基于客户端方式的认证。

根据OSI(Open System Interconnect——开放系统互联网络模型),网络行为从上到下可以划分为七个层次,其中数据链路层和网络层分别是OSI模型中的第二层和第三层,网络设备在收到一个数据包时会首先处理数据包最外面的二层包头,然后再读取内层的三层包头。二层准入就是在数据链路层上完成的准入认证方式,三层准入则是在IP层上完成的认证。下面我们分别对每种方式进行介绍。

二层准入

大型企业往往利用DHCP(Dynamic Host Configuration Protocol——动态主机配置协议)协议进行IP地址的分发,用户电脑无需配置IP地址,在接入网络的时候,网络上的DHCP服务器将自动为每个电脑网卡分配一个可用的IP地址。二层准入就是用户在获得三层IP地址之前必须通过的认证,当用户在接入网络之初,需要同网络侧通过二层连接进行认证数据的交互,只有成功通过认证才能向DHCP服务器申请IP地址,从而收发数据。

二层准入的代表实现方式就是802.1X。802.1X是IEEE802.1协议集的一部分,定义了EAP(Extensible Authentication Protocol——可扩展验证协议)在以太网环境中的实现方式,而EAP是IETF在RFC3748中制定的在数据链路层中进行认证行为的一种机制,以满足在不同的二层环境下进行统一认证的需求。这个逻辑连起来就是,IETF首先制定了在数据链路层也就是二层上进行验证的EAP机制,然后IEEE给出了EAP在以太网环境中的运行方式,这个方式就是大家熟知的802.1X。现在,我们可以来回答两个常常被混淆的问题:

  • 802.1X是802.11的子集吗?

No!802.1X不但可以工作在无线环境中,同样能够工作在有线环境中,并且在Wi-Fi被大规模部署之前,802.1X就已经是有线网络中一种重要的认证方式。

  • EAP是802.1X专用的认证方式吗?

No!理论上,EAP可以被运用在任何一种数据链路层之上,例如PPP或以太。802.1X协议包含三个基本元素,分别是Supplicant(客户端)、Authenticator(认证方)和Authentication Server(认证服务器)。客户端就是支持802.1X功能的终端设备,如笔记本、智能手机。认证方是将客户端接入网络的接入设备,在有线网络中是接入交换机,在无线网络中是无线AP和控制器;在VPN连接中,认证方则是VPN服务器。认证方负责接受客户端的认证请求,但本身并没有处理这些请求的能力,它会将获得的信息转发到认证服务器,由认证服务器辨别客户端的合法性。认证服务器通常是集中部署在网络内的一台安全设备,当收到转发来的用户请求后,认证服务器将请求信息同已有的用户资料做比对,并将结果返还给认证方。

802.1X的认证流程可以归纳为以下四步。

  • 端口初始化

作为认证方的接入交换机探测到有一个客户端连接到一个端口后,它会马上把这个端口置于“未授权”状态,处于“未授权”状态的端口除了802.1X报文不会转发其他任何流量,包括DHCP和HTTP(Hyper Text Transport Protocol——超文本传输协议)流量。

  • EAP初始化

交换机会定时向一个二层广播地址发出EAP请求信令,开启了802.1X功能的客户端在连上交换机后会保持侦听发往这个二层地址的信号,一旦捕捉到交换机发出的EAP请求,客户端便马上回复一个包含自己ID的EAP应答。交换机收到应答后会通知后台的认证服务器,告诉它有一个新的客户端需要进行开始EAP认证。

  • EAP协商

接下来的这个工作准确说来是包含在EAP协议里的标准步骤,由于EAP按照实现方式不同,分为好几个类型,所以在真正开始用户的身份认证之前,客户端同网络侧要协商一个双方都支持的EAP类型来进行后续的流程。

认证服务器收到交换机发来的通知后,马上通过交换机向客户端回送一个EAP报文,这个报文说明了认证服务器希望在接下来的流程中采用的EAP类型,如果客户端对此没有异议,那么双方便可以进行下一步,否则客户端可以同网络侧展开NAK(Negative Acknowledgement——消极认可)协商,直到双方取得共识。

IETF定义了种类繁多的EAP方式,包括EAP-MD5、EAP-OTP、EAP-GTC、EAP-TLS、EAP-IKEv2、EAP-SIM、EAP-AKA、EAP-AKA等,除此之外,还有不少厂家自己开发的EAP版本,如LEAP、EAP-FAST等。因此进行802.1X设计的一个重要原则就是根据实际需求选择恰当的EAP模式,如果你在交换机上配置了EAP-FAST,却发现用户电脑的操作系统不支持这种EAP类型,两边就没法接上头了。

  • 用户身份验证

当客户端和认证服务器成功约定了一种EAP方式后,客户端就可以同交换机开始真正的验证过程。代表用户身份的信息被发送给交换机,交换机又将这个信息转发给认证服务器,根据认证服务器判断的结果,交换机向客户端发出“认证成功”或“认证失败”的报文。

如果用户身份验证成功,交换机端口会被放开,用户获得访问网络的权限;如果验证失败,交换机端口则保持在“未授权”状态,客户端无法通过这个端口收发流量。

当客户端注销的时候,它会向交换机发出一个表示自己离网的EAP报文,交换机随即将这个端口重新置于“未授权”状态。如果交换机发现这个链路层连接中断,它也会将这个端口设置为“未授权”状态,因为这时用户可能直接断开网线离开了,如果这个端口再次连通,也许是一个新用户,那就需要重新进行用户身份的验证了。

在整个过程中,认证方和认证服务器之间通过特定的协议通信,目前采用最普遍的两个协议是RADIUS(Remote Authentication Dial In User Service——远程认证拨号接入用户服务)和TACACS+(Terminal Access Controller Access-Control System Plus——增强型终端访问控制器访问控制系统)。总体说来,TACACS+的稳定性、安全性和灵活性更高,但TACACS+是思科私有协议,因此,在一般的用户接入场合,RADIUS更加常见。

二层准入正如其名所示,所有的流程都是在二层环境下完成的,客户端与交换机之间不会进行IP层面的信令交互。实际上,在客户端通过验证之前,它甚至无法通过DHCP获取IP地址,如果你查看一个802.1X验证失败的电脑网卡,你会发现上面没有可以使用的IP地址。

经过多年的发展,802.1X+RADIUS的实现方式已经发展成为一个功能非常强大的准入方案,RADIUS丰富的字段使得认证不仅仅可以针对用户名与密码,还可以根据接入设备的MAC(Media Access Control——硬件访问控制)地址、IP地址、交换机端口等信息来进行认证。

三层准入

说了这么多,传统的二层方案就是完美的方案了吗?如果放在五年前,也许是这样,但随着网络的发展,接入环境越来越复杂,802.1X在某些方面渐渐显得力不从心了。例如,某些企业需要为访客提供无线网络接入,但不可能每次有来访人员时都在访客的笔记本电脑上配置802.1X策略,这就需要一个快捷的办法将没有经过认证的第三方设备接到网络中。

三层准入就在这种背景下应运而生了。

三层准入又被称为Web认证,顾名思义,认证过程是通过一个Web页面完成的。三层准入可以独立工作,也可以跟802.1X形成混合部署。当Web认证同802.1X部署在一台接入交换机上时,前者可以作为后者的备份机制,当有新的设备需要接入时,接入交换机会首先尝试802.1X的认证流程,如果客户端设备上没有启用802.1X的客户端,则交换机发起的802.1X认证会因为得不到回应而超时,这时便进入Web认证的阶段。除了客户端不支持802.1X的情况,当客户端支持802.1X但是却没有通过认证的时候,交换机也可以回退到Web认证流程。之所以有这种设置是因为802.1X是一种非常普遍的技术,一个酒店客人的笔记本电脑很可能开启了802.1X客户端用来接入办公室的网络,但是这台电脑显然无法通过酒店的二层准入检查,如果因为二层认证失败而就此将客户端设备屏蔽在外,那么绝大部分酒店客人可能都会遇到网络接入问题。

不管是802.1X认证超时还是失败,配置了Web认证的交换机接下来就会自动进入三层准入的阶段,这个阶段可以大致分为以下几个步骤。

  • 交换机端口进入有限接入状态

按照802.1X的标准流程,凡是没有成功通过认证的交换机端口都会被置于禁止转发状态,连接在这个端口的客户端设备网卡虽然链路层是接通的,但只能发送802.1X报文。这样一来,别说发送数据,客户端网络设备连IP地址都拿不到。

因此,进行Web认证的接入交换机不会完全屏蔽端口,相反,它会将这个端口放入一个可以转发数据的VLAN(Virtual LAN——虚拟局域网)。VLAN是数据网络中的一个重要概念,一个VLAN代表一个虚拟网络,只有处于同一个VLAN内部的IP地址之间才能互相通信,不同VLAN之间需要通过三层网关设备才能连通。VLAN的这一特性被广泛用来隔离不同属性的网络设备。

容纳有限接入状态端口的这个VLAN通常是交换机上的默认VLAN,也可以根据实际情况配置为其他任何VLAN。但在放开数据转发的同时,这个端口会被自动放上一组预先配置的ACL(Access Control List——访问控制列表),用户可以自己定义ACL的内容,其目的是限制端口的数据类型,仅仅为其提供一些基本数据的转发服务,如DHCP、DNS等。客户端可以通过DHCP拿到地址,但没有办法获得完全的网络权限,其他类型的数据包将被阻断,这个时候如果想上个QQ啥的是没戏的。

  • 客户端触发认证流程

当交换机端口进入有限转发的状态后,就可以正式开始对客户端设备进行验证了。但真正触发认证流程的并不是交换机,而是客户端设备。

一块标准的网卡在二层也就是链路层就绪后的第一个动作,一般是向DHCP请求IP地址,这个DHCP的广播包就是触发Web认证的信号;如果客户端的IP地址是手动配置的,那么网卡发出的ARP(Address Resolution Protocol——地址转换协议)报文同样能够触发认证流程。前文提到过DHCP是用来向终端设备分配IP地址的一种协议,而ARP则是用于请求特定IP地址对应的MAC地址的机制,如果你需要向一台设备发送一个数据包,可是只知道它的IP地址而不知道MAC地址,那么就可以使用ARP请求来尝试获取这个IP对应的MAC。DHCP和ARP是最常见的以太网报文,通过听取这些报文,交换机可以确定这是一个基本功能正常的网卡。如果即没有DHCP,也没有ARP信号,那么这个网卡八成有些问题,交换机也无需徒劳地发起Web认证了。

当交换机听到来自客户端的DHCP和ARP后,它便将这个设备记录在册,并且周期性地对其发出ARP探针,确保其在线状态。在交换机记录客户端设备的同一时刻,它还会启动一个Web认证的计时器,客户端设备必须在计时器超时前成功通过交换机的认证,否则,此次认证将作废,客户端设备必须重新发起一个新的认证过程。

  • 用户身份验证

客户端设备通过DHCP获得IP地址后,网卡便可以利用这个地址与外界进行三层通讯了。这个时候用户需要发起一个HTTP请求,打开你的浏览器,任意输入一个网址——例如www.sina.com.cn——即可。我们在前面提过,交换机端口在有限转发状态下一般允许DNS流量,因此操作系统会取得www.sina.com.cn这个URL对应的IP地址。操作系统随即会生成一个以这个IP地址的80端口为目的地的HTTP请求报文,并通过网卡发给交换机。

但是这个HTTP并不会被真正转发给新浪的Web服务器,交换机截取到用户的这个HTTP请求后,会将用户重定向到一个预先写好的认证页面上(这个页面可以存放在任意一个IP可达的Web服务器上,某些接入交换机也可兼任Web服务器的工作)。

这个认证页面包含用户名、密码的填写区域,用户在这个页面上输入自己的身份信息,这些信息被回传给接入交换机进行验证。

接入交换机对于收到的用户身份有两种方式进行验证,它可以使用自己保存的本地信息库,也可以将身份信息送给后台的认证服务器,由认证服务器完成身份验证。Web认证使用的认证服务器同802.1X环境类似,部署最广泛的也是RADIUS服务器,从扩展性的角度考虑,企业用户一般会选择集中式的认证服务器,而不是交换机上的本地信息库。

认证服务器将验证结果返回给接入交换机,如果用户身份合法,接入交换机就会在端口上部署一系列事先制定的策略,包括下发预置的ACL等,从而为最终用户提供与之身份匹配的网络访问权限。

当用户离开网络的时候有两种情况,如果用户在Web页面上主动点击注销按钮,交换机会按预设置流程将端口关闭。但如果用户直接拔出网线,那么情况就同802.1X不一样了。Web认证是一个三层机制,且没有客户端软件,网络侧无从探知用户什么时候离线,这就给端口的管理带来了一定的麻烦。所以你常常能在Web登录成功的页面上发现提示性的语言,告诉你“不要将这个页面关闭”,这是因为网络侧的服务器会周期性地同这个页面交换心跳信息,如果这个页面没有反应,那么交换机会认为用户已经离线,随之将端口关闭。

同二层准入一样,三层准入也可以部署在无线环境中,在标准的集中式“瘦AP”企业级无线架构中,无线控制器将承担Web页面推送、RADIUS认证等有线环境中由接入交换机完成的工作。

客户端方式

除了三层准入和二层准入,还有一种很有意思的思路,即通过客户端对接入用户进行认证。这里所说的客户端是指安装在用户设备上的软件,其表现形式五花八门,以杀毒软件起家的厂商会做成杀软的功能子集,以桌面控制立足的厂家会做成控制软件的一部分,而传统的网络设备厂家则会将这部分功能集成到VPN/无线接入的用户端软件中。不管是什么路子,这类软件一般只干两件事情:

  • 从操作系统接手802.1X的认证流程;
  • 对操作系统的健康状况做检查,例如是否安装了最新版补丁、杀毒软件是否更新到最新病毒库等,若操作系统处于可靠的状态则允许接入网络,否则拒绝。

这种方式有一点像一次加强版的体检360软件,医生不但会帮你检查身体,还会基于你的身体状况决定你是否能获得一张游泳证,甚至更细致一些,决定你能否进入深水区还是只能呆在浅水区(不同的网络授权)。由于健康状态的检查内容包含了系统的补丁安装、应用软件安装、杀毒软件更新等情况,因此,必须在客户的设备上安装一个系统权限非常高的客户端软件才能完成所有的检查工作。

下图展示的就是著名的桌面控制工具LANDesk的界面,通过LANDesk Security Suite,IT管理员几乎可以定义最终用户电脑上的任何行为规则。

很明显,客户端方式完全是从企业IT部门的视角出发,对最终用户采取更多的限制。通常,这种方式都会和厂家进行紧密的绑定,通过在每台客户端设备上安装客户端,用户的IT流程和安全规范也紧密地同厂家能够提供的功能选项结合在一起。

二层准入vs.三层准入vs.客户端方式

二层准入、三层准入和客户端方式目前在企业网中都有大量部署,很多用户还会同时采用其中的两种,以弥补单一准入方案的不足。这三种方式基本囊括了当今市场上的绝大部分网络准入产品,因此,我们很有必要在它们之间做一对比,帮助各位理解每种方案的优势和缺陷。

二层准入的特点——成熟、实用

如前所述,二层准入的最大优势就是成熟、实用,有如销售了十多年的捷达车,就两个字——皮实!二层准入的技术方案802.1X由IEEE制定并维护,也是三种方式中唯一可供遵循的公开标准。

基于802.1X的二层接入是一个非常成熟的方案,市场接受程度很高,不管认证方还是认证服务器,都不难找到多家厂商的产品,客户端的支持方面也不是问题,主流的桌面操作系统和智能手机终端大都支持802.1X。用户的接受与市场的成熟,对于安全策略的长期部署是非常重要的,802.1X在这方面的优势异常明显,其他方案不一定有这么幸运。

总的说来,802.1X二层模式具备了以下三个特点。

  • 完全公开的架构

802.1X的每一个部分都有相应的国际标准,便于企业客户自由选择软、硬件,搭建一个灵活的安全架构,不会受制于特定厂家。

  • 成熟的技术标准

802.1X已经部署在全球成千上万的园区网,本身是一项非常成熟的技术,几乎每一台接入交换机都支持802.1X协议,每一台电脑的操作系统都自带802.1X客户端,用户部署802.1X的风险和成本很低。

  • 完善的认证和授权机制

802.1X支持密码验证、支持single sign-on(单点登录)、支持所有主流的认证服务器、支持机器验证……它可以满足你能想到的绝大部分企业安全需求。

如果仔细揣摩这三点,你会发现802.1X同以太网非常相似——公开、成熟、实用,这其实就是企业客户的核心需求。企业的IT部门在做任何选择时首先考虑的都是技术的可延续性以及成熟性,如果某项技术大家都在用,本身功能又实现得七七八八,这个方案就是最优方案,华而不实的新鲜玩意反而难以得到企业用户的垂青。

三层准入的特点——轻便、简单

近年来Web认证的发展非常快,特别是在无线、大型园区等环境中得到了大规模的部署,而主流网络厂家也纷纷将Web认证作为无线控制器和接入交换机的一项默认内置功能。相较其他方案,三层准入具备以下优势。

- 零客户端

同传统的二层准入比较,Web认证最大区别就是去除了对客户端的要求,用户端设备无需进行配置,只要有一个浏览器就OK了,而这个条件基本上所有的个人设备都能够满足。

  • 使用简单

如果将Web认证和802.1X同时提供给最终用户试用,我相信十次里面有七八次,用户会认为Web认证提供了更好的体验。HTML写成的Web页面可以提供丰富的反馈信息,当802.1X认证失败的时候,Windows操作系统仅仅是在右下角弹出一个不起眼的提示,而Web认证则可以返回详细的说明信息,甚至指导用户找出失败的原因。

虽然Web认证凭借这两个优点获得不少用户的青睐,但同二层准入相比,仍然有一些缺陷导致它难以成为企业环境的主力认证方式。

  • 安全性较弱

首先,Web认证检查的内容仍然太简单,大部分时候仅有用户名和密码,在高安全级别的环境中仍显单薄。而802.1X不但可以基于USB Key进行验证,且认证失败的客户端连IP地址都获取不到,将非法用户可影响的区域限制在很小的范围内。

在授权方面,目前大部分交换机的Web认证功能还不支持特定VLAN下发,这跟802.1X比又差了一头。

  • 不支持single sign-on

也许你曾有过这样的疑问,你在公司上网的时候从来不需要输入密码,插上网线就能使用,这有可能是IT部门在你的电脑上配置了single sign-on功能。single sign-on会记住你登陆Windows系统的密码,并且将这个密码用于802.1X的验证过程。single sign-on是一项非常重要的企业网络功能,通过部署single sign-on,用户拥有单一的身份,只需要在开机时输入一次密码即可获得相应的网络访问授权。


single sign-on是每一台Windows电脑默认包含的802.1X功能之一

很显然,Web认证的流程在用户第一次启动浏览器时才开始,它不可能复用开机时的密码,自然也没法支持single sign-on了。

  • 不支持机器认证

机器认证是以太网普及之后的产物,如果你在那种开放式的办公环境里工作,可以站起身去检查一下离你最近的打印机,这台打印机往往都连着一根网线。通过以太网络而不是串口线与用户电脑连接的办公设备可以提供更大的服务范围,但同时也对网络安全提出了挑战,如果有人拔出这根线缆,连到非法电脑上怎么办呢?

我们知道,每一台接入网络的硬件设备除了IP地址以外,还有一个硬件标识,那就是MAC地址。它是由生产厂商写入到硬件芯片中的一串24位数字,是数据链路层的寻址标。每台设备的MAC地址都不一样,用来表明设备的硬件身份,交换机在定位一个终端设备时,需要比对终端设备的IP地址和MAC地址,只有两项都准确无误才能确认终端设备的身份。机器认证就是用于验证这些连接网线的办公设备的方案,MAB(MAC Address Bypass——硬件地址旁路)是最常见的机器认证方式,只有具备合法MAC地址的设备才可以通过这条线路联入网络。MAB是802.1X的后备方案之一,802.1X验证失败的设备只要通过了MAB一样可以获得访问网络的权限。而Web认证则没这个能耐,你总不能指望一台打印机自动打开一个Web页面,还能自己输入用户名和密码吧?

客户端方式的特点——功能全面、无统一标准

客户端方式在三种准入策略中功能最全面,大多数客户端软件都集成了802.1X的认证功能,除此之外还可以对用户的电脑进行健康检查,可以说做到了双保险。同时,客户端软件还能够提供比802.1X更好的交互式体验,用户的学习成本也相应降低。

但客户端方式的最大问题在于其实现方式的不统一,每个厂家的解决方案从原理到界面都千差万别。由于没有公开标准或约定俗成的流程,用户在选型时带有赌博的性质,既不知道产品的实现机制,也不知道产品的生命周期,如果两年以后厂家倒闭或转型,用户将不得不花大价钱将现有的准入方案迁移到新的平台上。所以,客户端方式虽然功能强大,但企业用户在选择此方案时仍然非常谨慎。

以上三种方案从安全性来说,客户端方式最强,二层准入次之,三层准入最弱;而部署复杂度方面正好相反,三层准入不管在用户使用还是后台配置上都最简单,基于802.1X的二层准入相比之下复杂一些,而客户端方式除了本身软、硬件的配置外,还涉及到与现有网络和PC软件的兼容性测试,部署和维护成本远远高出二层准入和三层准入。

三种方案目前仍然面向不同的用户群和使用环境,很难说哪种方案具有压倒性的优势,不过随着移动终端的普及和云计算业务的进一步发展,用户对同一接入方案的需求将越来越强烈,综合了各方优点的单一准入策略也将是网络和安全厂家今后很长一段时间内重点努力的方向。

参考文档