近来有机会接触了一些企业网络准入的项目,感触颇深。针对这个复杂的市场有一点自己的心得,没有结论,意在抛砖引玉,为大家的思考和讨论铺路。
本文只关注企业用户,而且是具备一定用户规模的国内企业用户,不是学校、不是小区宽带;其次,范围是用户对网络资源的访问,包括有线、无线、VPN等等。之所以要这么规定一下,是为了后面的讨论更准确、更有针对性,企业用户有自己的特点和需求,适合其它环境的思路在企业网中很可能玩儿不转,任何一种技术方案只有在立足的环境中才存在讨论的意义。
一. 缘起
网络准入是一个由来已久的话题,但一直以来并不是IT安全的重点,直到近年来,才逐渐成为炙手可热的话题。无线接入、智能移动终端和云计算的兴起共同催生了这一波热潮。
随着云计算的不断深入,越来越多的企业业务系统由传统的C/S架构向B/S架构迁移,以往访问后台数据需要安装专用软件,IT部门控制客户端软件的许可发放,就能够大致控制访问用户的范围。而在B/S架构中,用户只需要一个WEB浏览器即可登录系统,加上智能手机、智能平板和WiFi的流行,以往的限制条件消失了,任何人手中的设备都成了可能访问后台数据库的平台,IT部门突然一下子失去了对局面的控制,因此,对网络的准入控制被重新提上日程。只有合法的用户才能够接入网络,通过对接入用户的控制,IT部门开始试图重新夺回对数据访问的控制权。
二. 几种思路
控制用户接入网络的技术伴随网络本身的诞生和发展已经衍生出五花八门的派别,每种方式都有自己的特点和适用场景,很难说那种方式在技术和最终效果上技高一筹取得了绝对的领先地位。
在新形势下,接入技术本身并没有发生翻天覆地的变化,其演进更多地是从满足需求的前提出发,将现有的方式进行重新的优化、组合,从而推出一个满足新需求的解决方案。在实际环境中常见的认证方式包括二层认证、三层认证和基于客户端方式的认证。
二层认证
二层认证就是用户在获得IP地址之前必须通过的认证,大型企业往往利用DHCP进行IP地址分发,用户在接入网络之初同网络侧通过二层连接进行认证数据的交互,只有成功通过认证才能向DHCP服务器申请IP地址,从而收发数据。
二层认证的代表实现方式就是802.1X。802.1X是IEEE 802.1协议集的一部分,定义了EAP在以太网环境中的实现方式,而EAP是IETF在RFC3748中制定的在数据链路层中进行认证行为的一种机制,以满足在不同的二层环境下进行统一、一致的认证的需求。这个逻辑连起来就是,IETF首先制定了在数据链路层也就是二层上进行验证的EAP机制,然后IEEE给出了EAP在以太网环境中的运行方式,这个方式就是大家熟知的802.1X。现在,我们可以回答两个常常被混淆的问题:
1)802.1X是802.11的子集吗?
No,802.1X不但可以工作在无线环境中,同样能够工作在有线环境中,并且在WiFi被大规模部署之前,802.1X就已经是有线网络中一种重要的认证方式。
2)EAP是802.1X专用的认证方式吗?
No,理论上EAP可以被运用在任何一种数据链路层之上,例如PPP或以太。
基于802.1X的二层认证基本工作方式如下图所示:
上图中的三个元素,分别是客户端(Supplicant)、认证方(Authenticator)和认证服务器(Authentication Server)。客户端就是支持802.1X功能的终端设备,如笔记本、智能手机;认证方是将客户端接入网络的接入设备,在有线网络中是接入交换机,无线网络中是无线AP和控制器,在VPN连接中,认证方则是VPN服务器,认证方负责接受客户端的认证请求,但本身并没有处理这些请求的能力,它会将获得的信息转发到认证服务器,由认证服务器辨别客户端的合法性;认证服务器通常是集中部署在网络内的一台安全设备,当收到转发来的用户请求后,认证服务器将请求信息同已有的用户资料做比对,并将结果返还给认证方,如用户合法,认证方便会将客户端接入网络,否则予以屏蔽,或放入特殊VLAN,至此,一个标准的二层认证流程才结束。
在这个过程中,认证方和认证服务器之间通过特定的协议通信,目前采用最普遍的两个协议是RADIUS和TACACS+,总体说来,TACACS+的稳定性、安全性和灵活性更高,但TACACS+是思科私有协议,因此,在一般的用户接入场合,RADIUS更加常见。
通过多年的发展,802.1X+RADIUS的实现方式已经发展成为一个功能非常强大的准入方案,RADIUS丰富的字段使得认证可以不仅仅针对用户名与密码,还可以根据接入设备的MAC地址、IP地址、交换机端口等信息来进行认证。
之所以解释这么多二层认证的细节,是想说明基于802.1X的二层接入是一个非常成熟的方案,市场接受程度很高,不管认证方还是认证服务器,都不难找到多家厂商的产品,客户端的支持方面也不是问题,主流的桌面操作系统和智能手机终端大都支持802.1X。用户的接受与市场的成熟,对于安全策略的长期部署是非常重要的,802.1X在这方面的优势异常明显,其他方案不一定有这么幸运。
总体说来,802.1X的二层模式具备了以下三个特点:
1)完全公开的架构,每一个部分都有相应的国际标准,便于企业客户自由选择软硬件、搭建一个灵活的安全架构,不会受制于特定厂家;
2)成熟的技术标准,802.1X已经部署在全球成千上万的园区网,本身是一个非常成熟的技术,实施风险和成本低;
3)包含完善的认证和授权机制,能够满足企业用户的大部分需求。
如果仔细揣摩这三点,你会发现802.1X同以太网非常相似–公开、成熟、实用,这其实就是企业客户的核心需求,企业的IT部门在做任何选择时首先考虑的都是技术的可延续性以及成熟性,如果某项技术大家都在用,本身功能又实现得七七八八,这个方案就是最优方案,华而不实的新鲜玩意反而难以得到企业用户的垂青。
三层认证
说了这么多,传统的二层方案是个完美的方案了?如果放在五年前,也许是这样,但随着网络的发展,接入环境越来越复杂,802.1X在某些方面渐渐显得力不从心了。例如,某些企业需要为访客提供无线网络接入,但不可能每次有来访人员时临时在笔记本电脑上配置802.1X策略,这就需要一个快捷的办法将没有经过认证的第三方设备接到网络中。
三层认证就在这种背景下应运而生了。
三层认证又被称为WEB认证,顾名思义,认证过程是通过一个WEB页面完成的。当有新的设备需要接入时,网络设备不会默认屏蔽它,而仅仅为其提供一些基本数据的转发能力,如DHCP、DNS等,客户端可以通过DHCP拿到地址,但他还没有办法获得完全的网络权限,比如上个QQ啥的;此时,用户需要发起一个HTTP请求(在浏览器中访问任意一个WEB页面),交换机或者无线控制器从中截取到用户的这个HTTP请求,并将用户重定向到一个预先写好的认证页面上(这个页面可以存放在任意一个IP可达的WEB服务器上),用户在在这个页面使用用户名/密码完成认证,从而获得全面的网络访问权限。
同传统的二层认证比较,WEB最大区别就是去除了对客户端的要求,用户端设备无需进行配置,只要有一个浏览器就OK了,而这个条件基本上所有的个人设备都能够满足。因此,近年来WEB认证的发展非常快,特别是在无线、大型园区等环境中得到了大规模的部署,而主流网络厂家也纷纷将WEB认证作为无线控制器和接入交换机的一项默认内置功能。
三层认证凭借其自身的特点获得了市场的认可,但在现阶段毕竟还是一个补充方案,难以作为企业环境的主力认证方式。首先,每次上网通过WEB页面登录的方式对大多数企业用户来说都“土”了一点儿,而且WEB认证检查的内容也比较简单,大部分时候仅有用户名和密码,在高安全级别的环境中仍显单薄。
客户端方式
除了三层认证和二层认证,还有一种很有意思的思路,即通过客户端对接入用户进行认证。这里所说的客户端是指安装在用户设备的上的软件,其表现形式五花八门,以杀毒软件起家的厂商会做成杀软的功能子集、以桌面控制立足的厂家会做成控制软件的一部分、而传统的网络设备厂家则会将这部分功能集成到VPN\无线接入的用户端软件中。不管是什么路子,这类软件一般只干两件事情:1)从操作系统接手802.1X的认证流程;2)对操作系统的健康状况做检查,如是否安装了最新版补丁、杀毒软件是否更新到最新病毒库等等,若操作系统处于可靠的状态则允许接入网络,否则拒绝。
这种方式有一点像一个加强版的360软件,它不但帮你检查身体,还基于你的身体状况决定你是否能获得一张游泳证。由于健康状态的检查内容包含了系统的补丁安装、应用软件安装、杀毒软件更新等情况,因此,必须在客户的设备上安装一个系统权限非常高的客户端软件才能完成所有的检查工作。
很明显,客户端方式完全是从企业IT部门的视角出发,对最终用户采取更多的限制。通常,这种方式都会和厂家进行紧密的绑定,通过在每台终端设备上安装客户端,用户的IT流程和安全规范也紧密地同厂家能够提供的功能选项结合在一起。
三种方式的对比表格
三. 延伸思考
用户需要什么样的方案?
企业网的准入是一项非常特殊的技术,最终用户的体验是决定一个项目成败的关键。有的方案从技术上评估非常完美,但实施之后发现最终用户根本接受不了,过多挑战用户的使用习惯,最终被行政层面废掉。
有的客户在被厂家忽悠过后决定在整个公司范围内推广严格的网络准入控制,在所有PC终端上安装安全客户端软件。结果,客户端装上后频频告警,因为不少人在自己的电脑上安装的下载软件强行修改了系统的下载线程限制,还有的员工干脆卸载了原有杀毒软件,自己重新安装了互联网上的免费杀软。这些被折腾过的电脑,在安全客户端内置的严格的策略规则前统统被亮了红灯,上线测试第一周就有不少员工无法正常接入网络。结果IT部门啥都顾不上,成天到各处救火,最后这个系统被大领导一句话下了马。
即使是最通行的802.1X方式,也不一定适应每个地方的水土。当一台配置了802.1X接入的PC机刚开机时需要一定时间同网络侧交互认证信息,如果用户接受程度不高,很可能会认为网络接入效率低,从而投诉,给IT部门造成很大压力。
因此,对于最用用户来说,最好的方案就是用户体验最友好的方案,只有对原有使用流程影响最小的技术方案才能得到上下一致的支持,从而推动最终的全面部署。另一方面,业务部门对准入的支持也至关重要。
IT部门需要什么样的方案
对于IT部门来说,网络准入是一个非常笼统、模糊的概念,什么样的用户能够接入网络?什么样的安全检查才是足够安全?同企业的其他安全策略该如何整合?这些问题在业界都没有统一的结论,而且安全防护是一场没有终点的拉锯战,IT部门不可能无限制地投入资源去追求极致的安全级别。
准入控制的实施过程是非常复杂的,是一个惊动全局的工程,因此,IT部门在上马准入时无不希望是一个循序渐进的过程,先从最基本的二层准入或三层准入开始,逐渐推进到设备健康状态检查等复杂的机制,这在准入项目的实施过程中尤其重要。
其次,准入控制的最终对象是企业内部的人员,而大部分企业往往已经具备了用户数据库,且用户的合法性以此数据库的实时数据为准,比如供人力部门使用的微软Active Directory。新的准入系统要能够方便地与原有数据库集成,特别是将准入系统内复杂的策略直接绑定到已有的用户帐号上。例如有的用户希望对PC机的MAC地址进行认证,而在原有的Active Directory内是没有MAC地址这一个字段的,且这个数据库的管理权不一定在IT部门手里,那么新添加的MAC地址信息如何同原有的用户帐号绑定,并实现帐号信息的定期自动更新就是一个挑战。
最后,准入控制系统一定要有一个清晰、简洁的管理流程和界面。
什么是完美的产品?
综上所述,一个优秀的准入控制技术方案需要具备以下特点:
1)可延续性
所谓可延续性是指采用的技术方案要具有长期的发展路线和支持力度,或者是被广泛应用的公开标准,或者是强大厂商的主流产品。准入机制一旦部署将延伸到网络的各个角落,并同企业今后的安全策略紧密结合起来,如果基础平台不稳定,后期变更将是迁一发动全局的麻烦事;
2)可用性
准入策略的顺利实施一定是以最终用户的接受为基础,因此,准入系统对最终用户的使用流程不能有太大的影响,要提供一个足够友好的用户体验;
3)灵活性
准入策略的内涵非常广泛,企业IT部门在实施时一定是一个逐渐完善的过程,为了应对这种需求,准入系统要具备一定灵活性,各个功能模块的实现不能有冲突;
4)整合性
准入系统要能够方便地同主流的企业数据库系统整合,并将安全策略绑定到相应的用户帐号之上,实现自动化的用户数据更新。
虚拟桌面的机会
网络环境的变化,带来的是访问方式的变化。一方面,网络准入技术开始快速发展,另一方面,很多人开始询问“是否一定需要在网络边界做这么严格的控制,还有没有其他方法?”。
也许是有的。
虚拟桌面在企业内部的应用开始逐渐铺开,员工对数据库的访问全部通过虚拟桌面完成,而硬件本身可能是一个简单的瘦客户端,不具备复杂的功能。在企业网络内部对虚拟桌面流量设置高优先级QoS策略,对其余流量以及网络接入采取从简的思路,在未来,这并非不会是一种解决方案。
总之,随着云计算、智能手机、WiFi等新应用的快速发展,传统的企业网络不得不开始主动变化,这种变化将如何发生,往哪里去,得出怎样的结果,现在都还不明晰,但有一点是明确的,那就是有意企业数据网络和安全的厂家现在就必须开始重视这股潮流,未雨绸缪,才能从容应对未来的新一代企业网络的发展。