目录
1、认证简介
2、常见认证机制
基于口令的身份认证机制
挑战/响应认证机制
EAP认证机制
3、公钥认证机制
4、使用认证机制的认证协议
RADIUS认证协议
TACACS+认证协议
Kerberos认证协议
LDAP协议
5、接入认证技术
IEEE 802.1X接入认证技术
Portal接入认证技术
MAC接入认证技术
Triple接入认证技术
6、AAA介绍
AAA的实现
7、EAD解决方案
网络是开放的、自由的,在设计之初并没有考虑安全性的问题。在基础的网络安全中,身份认证技术作为第一道,甚至是最重要的一道防线,占据着重要地位。可靠的身份认证技术可以确保信息只被正确的“人”所访问,身份认证技术提供了对某个人(或某件事)的身份的证明。
在现实的生活中,证明身份的方法可以基于三种方式:
-
你所知道的(what you know),比如密码、暗号。
-
你所拥有的(what you have),比如IC卡、银行U盾、身份证等。
-
你就是这个人(who you are),比如指纹、面貌、视网膜等。
-
在IP网络中,我们依靠协议来实现这些认证方法,比如Radius、TACACS、Kerberos、LDAP、SSL等这些认证协议。
认证只是一种手段,那它的目的是什么?当然是为了获取资源,比如接入了网络、进入了密室。这就牵扯到“我是否同意你做‘你想做’的事情”这么一个问题,比如“拿到营业执照了,你才能开店”,这就是授权。授权和认证是如此的自然和紧密,认证完后一般紧接着就是授权,以至于有些人会将它们混淆,但它们真的不一样——认证,是身份证明的问题;授权,是资源控制的问题。
将认证协议同各式的接入技术相结合,就可以实现对接入用户的认证授权,从而实现对用户访问网络这种行为进行控制。
1、认证简介
身份认证可分为用户与系统间的认证和系统与系统间的认证。身份认证必须能准确无误地将对方辨认出来,同时还应该提供双向的认证。目前使用比较多的是用户与系统间的身份认证,它只需单向进行(系统对用户进行身份验证)。随着计算机网络化的发展,以及电子商务与电子政务的大量兴起,系统与系统之间的身份认证也变得越来越重要。
身份认证的基本方式可以基于下述一个或几个因素的组合:
-
所知(Knowledge):即用户所知道的或所掌握的知识,如口令;
-
所有(Possesses):用户所拥有的某个秘密信息,如智能卡中存储的用户个人化参数;
-
特征(Characteristics):用户所具有的生物及动作特征,如指纹、声音、视网膜扫描等。
根据在认证中采用的因素的多少,可以分为单因素认证、双因素认证、多因素认证等方法。
2、常见认证机制
一般而言,用于用户身份认证的技术分为两类:简单认证机制和强认证机制。
基于口令的身份认证机制
基于口令的身份认证技术因其简单易用,得到了广泛的使用。
-
基于静态口令的认证方式:它是最简单、目前应用最普遍的一种身份认证方式。它的安全性仅依赖于口令,口令一旦泄露,用户即可被冒充;同时易被攻击(采用窥探、字典攻击、穷举尝试、网络数据流窃听、重放攻击等很容易攻破该认证系统)。
-
动态口令(Dynamic Password)(也叫一次性口令):是根据专门的算法生成一个不可预测的随机数字组合,每个密码只能使用一次,目前被广泛运用在网银、网游、电信运营商、电子商务、企业等应用领域。它的基本原理是在用户登录过程中,基于用户口令加入不确定因子,对用户口令和不确定因子进行单向散列函数变换,所得的结果作为认证数据提交给认证服务器。在认证过程中,用户口令不在网络上传输。
-
短信密码:身份认证系统以短信形式发送随机的密码到客户的手机上。
-
硬件令牌:当前最主流的是基于时间同步的硬件口令牌,它每60秒变换一次动态口令。
-
手机令牌:是一种手机客户端软件,它是基于时间同步方式,每隔30秒产生一个随机动态密码。
-
挑战/响应认证机制
挑战/响应方式的身份认证机制就是每次认证时认证服务器端都给客户端发送一个不同的“挑战”码,客户端程序收到这个“挑战”码,根据客户端和服务器之间共享的密钥信息,以及服务器端发送的“挑战”码做出相应的“应答”。服务器根据应答的结果确定是否接受客户端的身份声明。从本质上讲,这种机制实际上也是一次性口令的一种。
一个典型的认证过程如下图所示:
EAP认证机制
EAP(Extensible Authentication Protocol),可扩展认证协议,是一种普遍使用的支持多种认证方法的认证框架协议,主要用于网络接入认证。
EAP的架构非常灵活,在Authenticator(认证方)和Supplicant(客户端)交互足够多的信息之后,才会决定选择一种具体的认证方法,即允许协商所希望的认证方法。认证方不用支持所有的认证方法,因为EAP架构允许使用一个后端的认证服务器(也就是AAA服务器),此时认证方将在客户端和认证服务器之间透传消息。
EAP认证方法目前大约有40种,IETF的RFC中定义的方法包括:EAP-MD5、 EAP-OTP、EAP-GTC、EAP-TLS、EAP-SIM和EAP-AKA, 还包括一些厂商提供的方法和新的建议。
EAP过程由认证方发起,而认证协议一般都是由客户端发起,为了在特定的认证协议上支持EAP过程,认证协议需要增加一个或多个的附加报文来满足条件。如以太网上的认证通常情况下是以客户端发送EAPOL报文开始的。
EAP交互过程是Supplicant与Authenticator一来一往的过程,每次只能处理一个EAP报文,在收到响应之前不能发送新的请求,即锁步机制(Lockstep)。因此Authenticator要负责请求消息的重传。如果重传一定次数后都没有收到应答消息,这次的EAP过程就要被终结。
3、公钥认证机制
公钥认证机制中每个用户被分配给一对密钥,称之为公钥和私钥,其中私钥由用户保管,而公钥则向所有人公开。用户如果能够向验证方证实自己持有私钥,就证明了自己的身份。当它用作身份认证时,验证方需要用户方对某种信息进行数字签名,即用户方以用户私钥作为加密密钥,对某种信息进行加密,传给验证方,而验证方根据用户方预先提供的公钥作为解密密钥,就可以将用户方的数字签名进行解密,以确认该信息是否是该用户所发,进而认证该用户的身份。
公钥认证机制中要验证用户的身份,必须拥有用户的公钥,而用户公钥是否正确,是否是所声称拥有人的真实公钥,在认证体系中是一个关键问题。常用的办法是找一个值得信赖而且独立的第三方认证机构充当认证中心(Certificate Authority,CA),来确认声称拥有公开密钥的人的真正身份。要建立安全的公钥认证系统,必须先建立一个稳固、健全的CA体系,尤其是公认的权威机构,即“Root CA”,这也是当前公钥基础设施(PKI)建设的一个重点。
4、使用认证机制的认证协议
许多协议在向用户或设备授权访问之前需要认证校验,通常要用到认证相关的机制。这些认证机制的协议包括RADIUS、TACACS、Kerberos、LDAP等。LDAP提供一种轻量级的目录服务,严格来说不能算作一种认证协议,而对用户进行认证授权只是LDAP的一种应用。
RADIUS认证协议
RADIUS(Remote Authentication Dial In User Service)即远程认证拨号用户服务,是一种分布式的、客户机/服务器结构的信息交互协议(它的客户端最初就是NAS,现在任何运行RADIUS客户端软件的计算机都可以成为RADIUS的客户端),它能保护网络不受未授权访问的干扰。是用于NAS和AAA服务器间通信的一种协议。RADIUS对AAA的三个组件都提供支持:认证、授权和计费。
RADIUS协议通过UDP协议进行通信,RADIUS服务器的1812端口负责认证,1813端口负责计费工作。采用UDP的基本考虑是因为NAS和RADIUS服务器大多在同一个局域网中,使用UDP更加快捷方便。在协议栈中位置如下:
RADIUS协议认证机制灵活,能够支持各种认证方法对用户进行认证。可以采用上述任何一种认证机制。RADIUS是一种可扩展的协议,它进行的全部工作都是基于属性进行的,由于属性可扩展性,因此很容易支持不同的认证方式。
TACACS+认证协议
TACACS+(Terminal Access Controller Access Control System,终端访问控制器控制系统协议)是在TACACS协议的基础上进行了功能增强的安全协议。该协议与RADIUS协议的功能类似,采用客户端/服务器模式实现NAS与TACACS+服务器之间的通信。
TACACS+协议主要用于PPP和VPDN(Virtual Private Dial-up Network,虚拟私有拨号网络)接入用户及终端用户的AAA。其基本流程如下:
TACACS+协议 | RADIUS协议 |
使用TCP,网络传输更可靠 | 使用UDP,网络传输效率更高 |
除了TACACS+报文头,对报文主体全部进行加密 | 只对验证报文中的密码字段进行加密 |
协议报文较为复杂,认证和授权分离,使得认证、授权服务可以分离在不同的安全服务器上实现。例如,可以用一个TACACS+服务器进行认证,另外一个TACACS+服务器进行授权 | 协议报文比较简单,认证和授权结合,难以分离 |
支持对设备的配置命令进行授权使用。用户可使用的命令行受到用户级别和AAA授权的双重限制,某一级别的用户输入的每一条命令都需要通过TACACS+服务器授权,如果授权通过,命令就可以被执行 | 不支持对设备的配置命令进行授权使用 用户登录设备后可以使用的命令行由用户级别决定,用户只能使用缺省级别等于/低于用户级别的命令行 |
Kerberos认证协议
Kerberos协议主要用于计算机网络的身份鉴别(Authentication), 其特点是用户只需输入一次身份验证信息就可以凭借此验证获得的票据(ticket-granting ticket)访问多个服务,即SSO(Single Sign On)。由于在每个Client和Service之间建立了共享密钥,使得该协议具有相当的安全性。
LDAP协议
LDAP(Lightweight Directory Access Protocol,轻量级的目录服务),是目录服务(DAP)在TCP/IP上的实现。它是对X500的目录协议的移植,但是简化了实现方法。
目录是一个为查询、浏览和搜索而优化的专业分布式数据库,它呈树状结构组织数据,就好象Linux/Unix系统中的文件目录一样。目录数据库和关系数据库不同,它有优异的读性能,但写性能差,并且没有事务处理、回滚等复杂功能,不适于存储修改频繁的数据。所以目录天生是用来查询的
LDAP特点
-
LDAP的结构用树来表示,而不是用表格。
-
LDAP可以很快地得到查询结果,不过在写方面,就慢得多
-
LDAP提供了静态数据的快速查询方式
-
Client/server模型,Server 用于存储数据,Client提供操作目录信息树的工具,这些工具可以将数据库的内容以文本格式(LDAP 数据交换格式,LDIF)呈现在您的面前
-
LDAP是一种开放Internet标准,LDAP协议是跨平台的Interent协议
5、接入认证技术
以上介绍了常见的认证技术与不同的局域网接入技术结合,可以实现对接入用户的认证授权,从而实现对局域网接入用户的访问控制。目前在局域网中常见的接入认证技术包括802.1X、Portal、MAC地址认证等。
IEEE 802.1X接入认证技术
802.1x协议作为局域网端口的接入控制机制在以太网中被广泛应用,主要解决以太网内认证和安全方面的问题。
802.1x 协议是一种基于端口的网络接入控制协议,“基于端口的网络接入控制”是指在局域网接入设备的端口这一级,对所接入的用户设备进行认证和控制。连接在端口上的用户设备如果能通过认证,就可以访问局域网中的资源;如果不能通过认证,则无法访问局域网中的资源。
802.1x认证系统采用网络应用系统典型的Client/Server(C/S)结构,包括三个部分:客户端(Client)、设备端(Device)和认证服务器(Server)
-
客户端:局域网用户终端设备,必须是支持EAPOL(Extensible Authentication Protocol over LAN,局域网可扩展认证协议)的设备(如PC机),可通过启动客户端设备上安装的802.1x客户端软件发起802.1x认证。
-
设备端:支持802.1x协议的网络设备(如交换机),对所连接的客户端进行认证。它为客户端提供接入局域网的端口,可以是物理端口,也可以是逻辑端口(如Eth-Trunk口)。
-
认证服务器:为设备端802.1x协议提供认证服务的设备,是真正进行认证的设备,实现对用户进行认证、授权和计费,通常为RADIUS服务器。
Portal接入认证技术
Portal认证通常也称为Web认证,一般将Portal认证网站称为门户网站。Portal认证的基本方式是通过在Portal页面的显著位置设置认证窗口,用户登录Portal认证页面进行认证,认证通过后即可访问Internet。它提供了一种较为简单的用户认证方法,对用户而言,相对其它认证方式更易于使用。它有两大特色:
-
免客户端:只需要网页浏览器(如IE)支持,即可为用户提供认证服务,不需要安装专门的客户端或者拨号程序。
-
新业务载体:利用Portal认证的门户功能,运营商可以将小区广播、广告、信息查询、网上购物等业务放到Portal上。用户上网时会强制地看到上述信息。
Portal的四大主要系统
-
认证客户端:安装于用户终端的客户端系统,如运行HTTP/HTTPS协议的浏览器或运行Portal客户端软件的主机等。对接入终端的安全性检测是通过Portal客户端和安全策略服务器之间的信息交流完成的。
-
接入设备(BAS):交换机、路由器等宽带接入设备的统称,主要有三方面的作用:
-
在认证之前,将用户的所有HTTP请求都重定向到Portal服务器。
-
在认证过程中,与Portal服务器、安全策略服务器、认证/计费服务器交互,完成身份认证/安全认证/计费的功能。
-
在认证通过后,允许用户访问被管理员授权的互联网资源。
-
-
Portal服务器:接收Portal客户端认证请求的服务器端系统,提供免费门户服务和基于Web认证的界面,与接入设备交互认证客户端的认证信息。
-
认证/计费服务器:与接入设备进行交互,完成对用户的认证和计费。
Portal协议主要涉及Portal服务器(Portal Server)和接入设备(BAS),采用C/S结构,基于UDP。
Portal的认证方式分为两种:
-
二层认证方式:支持在接入设备连接用户的二层端口上开启Portal认证功能,只允许源MAC地址通过认证的用户访问外部网络资源。
-
三层认证方式(IP地址都是用户的唯一标识,接入设备基于用户的IP地址下发ACL对接口上通过认证的用户报文转发进行控制):支持在接入设备连接用户的三层接口上开启Portal认证功能。三层接口Portal认证又可分为三种不同的认证方式:直接认证方式、二次地址分配认证方式和跨三层认证方式。直接认证方式和二次地址分配认证方式下,认证客户端必须通过二层直接连接到接入设备;跨三层认证方式下,认证客户端和接入设备之间可以跨接三层转发设备。
MAC接入认证技术
MAC地址认证是一种基于端口和MAC地址对用户的网络访问权限进行控制的认证方法,是一种二层网络接入认证技术,与802.1X以及Portal不同,用户不需要安装任何客户端软件就可进行认证。设备在启动了MAC地址认证的端口上首次检测到用户的MAC地址以后,即启动对该用户的认证操作。认证过程中,不需要用户手动输入用户名或者密码。若该用户认证成功,则允许其通过端口访问网络资源,否则该用户的MAC地址就被添加为静默MAC。在静默时间内(可通过静默定时器配置),来自此MAC地址的用户报文到达时,设备直接做丢弃处理,以防止非法MAC短时间内的重复认证。
MAC地址认证使用的用户名格式分为两种类型:
-
MAC地址用户名格式:使用用户的MAC地址作为认证时的用户名和密码,用户名和密码相同;
-
固定用户名格式:不论用户的MAC地址为何值,所有用户均使用设备上指定的一个固定用户名和密码替代用户的MAC地址作为身份信息进行认证。适用于接入客户端比较可信的网络环境。
MAC地址认证定时器功能:
-
下线检测定时器(offline-detect):用来设置用户空闲超时的时间间隔。如果在两个时间间隔之内,某在线用户没有流量通过设备,设备将切断该用户的连接,同时通知RADIUS服务器,停止对该用户的计费。
-
静默定时器(quiet):用来设置用户认证失败以后,设备停止对其提供认证服务的时间间隔。在静默期间,设备不对来自该用户的报文进行认证处理,直接丢弃。静默期后,如果设备再次收到该用户的报文,则依然可以对其进行认证处理。
-
服务器超时定时器(server-timeout):用来设置设备同RADIUS服务器的连接超时时间。在用户的认证过程中,如果达到服务器超时定时器设置的超时时间,而设备一直没有收到RADIUS服务器的应答,则设备将在相应的端口上禁止此用户访问网络。
Triple接入认证技术
在客户端形式多样的网络环境中,不同客户端支持的接入认证方式有所不同,为灵活地适应这种网络环境中的多种认证需求,需要在接入用户的端口上对多种认证方式进行统一部署,使得用户可以选择任何一种适合的认证机制来进行认证,且只需要成功通过一种方式的认证即可实现接入,无需通过多种认证。
Triple认证方案可满足以上需求,允许在设备的二层端口上同时开启Portal认证、MAC地址认证和802.1X认证功能,使得选用其中任意一种方式进行认证的客户端均可通过该端口接入网络。
6、AAA介绍
AAA概述
AAA是认证(Authentication)、授权(Authorization)和计费(Accounting)的缩写,它是运行于NAS(网络访问服务器)上的客户端程序。提供了一个用来对认证、授权和计费这三种安全功能进行配置的一致性框架,实际上是对网络安全的一种管理。这里的网络安全主要指访问控制:包括哪些用户可以访问网络服务器;具有访问权的用户可以得到哪些服务;以及如何对正在使用网络资源的用户进行计费。
-
AAA支持以下认证方式:
-
不认证:对用户非常信任,不对其检查,一般情况下不采用这种方式。
-
本地认证:将用户信息(包括本地用户的用户名、密码和各种属性)配置在接入服务器上。本地认证的优点是速度快,降低运营成本;但存储信息量受设备硬件条件限制。
-
远端认证:支持通过RADIUS协议或HWTACACS协议进行远端认证,由接入服务器作为Client端,与RADIUS服务器或TACACS服务器通信。
-
-
AAA支持以下授权方式:
-
直接授权:对用户非常信任,直接授权通过。
-
本地授权:根据宽带接入服务器上为本地用户账号配置的相关属性进行授权。
-
HWTACACS授权:由TACACS服务器对用户进行授权。
-
if-authenticated授权:如果用户通过了认证,并且使用的认证方法不是none,则对用户授权通过。
-
RADIUS认证成功后授权:RADIUS协议的认证和授权是绑定在一起的,不能单独使用RADIUS进行授权。
-
-
AAA支持以下计费方式:
-
不计费
-
远端计费:支持通过RADIUS服务器或TACACS服务器进行远端计费。
-
AAA的实现
AAA的实现可采用RADIUS协议。RADIUS用来管理使用串口和调制解调器的大量分散用户。
网络接入服务器简称NAS。当用户想要通过某个网络(如电话网)与NAS建立连接从而获得访问其他网络的权利时,NAS可以选择在NAS上进行本地认证计费,或把用户信息传递给RADIUS服务器,由RADIUS进行认证计费;RADIUS 协议规定了NAS与RADIUS服务器之间如何传递用户信息和计费信息,即两者之间的通信规则;RADIUS服务器负责接收用户的连接请求,完成认证,并把用户所需的配置信息返回给NAS。用户获得授权后,在其正常上线、在线和下线过程中,RADIUS服务器还完成对用户账号计费的功能。
7、EAD解决方案
EAD解决方案全称是Endpoint Admission Domination终端准入控制,其核心就是对终端用户的准入和控制。它以接入认证技术为载体,为网络提供一套立体的安全体系。
EAD主要组件分为终端用户、接入控制设备、第三方补丁和病毒服务器、安全策略服务器。逻辑上分为隔离区和授权安全区域。其接入控制流程如下
终端用户首先通过接入认证技术进行身份认证:
-
身份认证不通过,直接被拒绝,不能访问网络受保护资源。
-
身份认证通过,则首先要把用户放到隔离区,然后进行安全检查:
-
安全检查不合格,则用户将一直被隔离,只能访问隔离区域,直到自动修复或手工修复完成。
-
安全检查合格,则用户会被动态授权,进入安全区域,可以访问受保护网络资源,但仅限于授权的网络资源,不能越权访问。
-
-
用户在线过程中,其行为可以被约束,当打开或者安装禁止的进程或程序时,用户会被要求下线,禁止访问网络。这就是EAD的基本思想和操作。