在51CTO
安全频道特别策划的CISSP的成长之路系列的上一篇文章《用户的生物特征》里,J0ker给大家介绍了访问控制凭证的最后一个分类:用户的生物特征,以及一些应用比较广泛的生物验证手段。以生物特征为验证凭证的访问控制方案能够提供比使用其他两种凭证的同类产品高得多的安全性,但生物特征的访问控制方案的部署和维护成本也最高,而且用户的接受程度也不是很好。
企业在选择访问控制方案的时候,往往会综合考虑访问控制方案的技术要求和部署使用成本,在安全要求不是很高的场合,企业往往会倾向于选择不需要添置额外验证设备的逻辑访问控制方案。因此,我们在日常工作中,接触更多的是各种基于密码验证的访问控制系统,在接下去的几个文章里,J0ker就打算介绍一下各种逻辑访问控制方案,首先J0ker将介绍集中式的访问控制方案。
在网络化应用广泛使用的今天,用户对信息资源的访问已经从最开始的物理访问为主,到现在的以远程访问为主:企业总部与处在不同地区的分支机构需要频繁的交换信息、出差途中的员工需要从企业的相关部门获取信息并分享业务资料、合作伙伴或外包厂商也需要从企业中获取和进行中的项目的信息。这些目的和技术实现都不相同的场景,一般都需要通过电话拨号、互联网或VPN服务等方式进入企业的内部网络。对企业来说,为用户提供对网络资源的远程访问是一件相当有安全挑战的事情,企业在允许远程用户访问到自己的内部网络和信息资源之前,必须先对远程用户的使用权进行一定的限制,这就是用于确认用户身份的验证(Authentication)、分配用户访问权限的授权(Authorization)和检测用户是否进行违反安全规定操作的审计(Accounting)操作,也就是我们经常可以接触到的AAA概念。
何谓AAA?AAA是:
验证(Authentication):确认用户的身份以及用户是否允许访问网络资源
授权(Authorization):决定用户可以进行什么操作
审计(Accounting):跟踪用户做了什么以及完成的结果,审计常用于检查用户是否进行了违规操作或进行网络使用时间/资源的计费。
我们可以从下图中形象的了解到一个基础的AAA服务是如何为远程用户对网络的访问提供服务的,图中包括三个对象,从左往右分别为:远程用户、网络访问服务器(防火墙、VPN服务器等)、用户验证服务器。
图1、AAA服务的过程示意图
远程用户访问网络资源的AAA过程如下:
1、远程用户给网络访问服务器(NAS)发送自己的用户名和密码
2、NAS接收用户提供的用户名和密码信息
3、NAS将用户的用户名和密码信息转交给验证服务器
4、验证服务器通过用户的身份验证后,将用户可用的网络连接参数(带宽、可用时长等)、用户授权和协议信息返回给NAS
5、NAS确认并向用户提供连接服务,并将此次连接写入验证服务器的日志中。
因此,我们可以很清晰的了解到,AAA服务的安全程度,直接关系到网络资源是否能够得到妥善的保护,并防止来自网络外部和内部的各种非法用户的访问。针对各种基于网络的安全远程访问的AAA需求,互联网工程任务小组(IETF)专门组建了一个AAA工作小组。继 完成Radius、TACACS协议之后,当前这个工作小组的主要工作目标就是创建一个支持多种不同网络访问模型(如拨号网络、移动IP和漫游操作等)的标准的基础协议,能够满足以下的几点需求:
分布式的安全模型(服务器-客户端结构),分布式的安全模型能够将用户身份验证过程与通讯过程分离,从而使用户的身份信息能够保存到一个中央的数据库中。
验证过程:客户端和服务器之间的通讯应在验证后才能进行,以此来保证通讯双方的真实性和通讯内容的完整性。通讯中的敏感信息还应该事先进行加密,防止密码或其他的验证信息被拦截或泄漏。
灵活的验证手段:AAA服务器应该能够支持多种验证手段,如密码验证协议(PAP)、挑战-握手验证协议(CHAP)、标准Unix登录流程,或者Microsoft的Active Directory等,这样AAA服务器才能适应复杂的应用环境。为了增强拨号连接的访问安全性,AAA服务器也应该对呼叫号码识别(CLID)和回拨功能提供支持。
使用可扩展的协议:AAA服务器通常还应设计成能支持可扩展的协议,即使技术进步使新的协议进入市场,AAA服务器也可以在不影响现有协议的情况下对新协议提供支持。
针对上述的AAA服务实现需求,IT业界开发出了多种不同的AAA方案。其中,Radius和TACACS是行业事实上的标准,常被用于互联网连接提供商(ISP)的网络服务验证及大型企业的远程访问控制中,而它们的继任者DIAMETER则是一个目前仍处在评估状态的标准草案(RFC)。这三种方案都能在提供安全的远程访问验证功能的同时,有效的减少企业的管理成本。接下来J0ker来简单介绍一下这三种AAA方案:
Radius:Radius是远程拨号用户验证服务的缩写(Remote Authentication Dial In User Service),由Livingston 公司开发,是当前最为流行的AAA服务协议,它应用最为广泛的领域是互联网服务提供商(ISP)。Radius服务器和客户端之间的通讯采用UDP协议,但因为Radius协议本身并不要求加密,因此,为了提高在非安全网络验证过程抵抗非法用户监听的能力,Radius还支持使用一次性密码。Radius服务的验证和授权功能是不分离的,而审计功能是一个独立的功能模块,因此,Radius服务可以使用单独部署的审计服务。
TACACS:TACACS是终端访问控制器访问控制系统(Terminal Access Controller Access Control System)的缩写,TACACS最先使用在互联网的前身ARPAnet上,并由网络厂商Cisco完善了它的第二版XTACACS和第三版TACACS+。和Radius为网络服务的使用提供AAA服务不同,TACACS针对的是网络资源访问,另外,TACACS使用的通讯协议是TCP,这点也是和Radius不同的。TACACS服务集成了验证、授权和审计服务,它的验证功能支持CHAP、一次性密码等不同的验证协议,授权功能主要使用访问控制列表方式,而审计功能则可记录系统或会话级的日志。
DIAMETER:针对Radius应用面较窄、支持的设备和应用较少的缺点,IT业界推出了DIAMETER协议,我们可以认为DIAMETER协议是扩展的Radius协议。DIAMETER协议的最大特点是,它是一种基于节点的AAA服务,除了能够使用在传统的拨号服务上之外,还能使用在无线链接、移动电话或VPN等其他接入服务上。同时DIAMETER的验证、授权和审计功能都是独立的,网络厂商或企业可以根据自己的实际需要,使用DIAMETER标准的功能,或自己构建适合应用需要的功能支持。目前DIAMETER协议仍是一个RFC草案,有兴趣的朋友可以自行到 IETF的官方站点去查阅资料http://www.ietf.org/html.charters/aaa-charter.html.