AAA协议介绍.doc

上传人:jian****018 文档编号:10191296 上传时间:2020-04-10 格式:DOC 页数:20 大小:196.50KB
返回 下载 相关 举报
AAA协议介绍.doc_第1页
第1页 / 共20页
AAA协议介绍.doc_第2页
第2页 / 共20页
AAA协议介绍.doc_第3页
第3页 / 共20页
点击查看更多>>
资源描述
AAAAAA简介AAA是Authentication、Authorization、Accounting(认证、授权、计费)的简称,是网络安全的一种管理机制,提供了认证、授权、计费三种安全功能。AAA一般采用客户机/服务器结构,客户端运行于NAS(Network Access Server,网络接入服务器)上,服务器上则集中管理用户信息。NAS对于用户来讲是服务器端,对于服务器来说是客户端。AAA的基本组网结构如图 1。图 1 AAA基本组网结构示意图当用户想要通过某网络与NAS建立连接,从而获得访问其它网络的权利或取得某些网络资源的权利时,NAS起到了验证用户或对应连接的作用。NAS负责把用户的认证、授权、计费信息透传给服务器(RADIUS服务器或HWTACACS服务器),RADIUS协议或HWTACACS协议规定了NAS与服务器之间如何传递用户信息。图1-1的AAA基本组网结构中有两台服务器,用户可以根据实际组网需求来决定认证、授权、计费功能分别由使用哪种协议类型的服务器来承担。例如,可以选择HWTACACS服务器实现认证和授权,RADIUS服务器实现计费。这三种安全服务功能的具体作用如下:l 认证:确认远端访问用户的身份,判断访问者是否为合法的网络用户;l 授权:对不同用户赋予不同的权限,限制用户可以使用的服务。例如用户成功登录服务器后,管理员可以授权用户对服务器中的文件进行访问和打印操作;l 计费:记录用户使用网络服务中的所有操作,包括使用的服务类型、起始时间、数据流量等,它不仅是一种计费手段,也对网络安全起到了监视作用。当然,用户可以只使用AAA提供的一种或两种安全服务。例如,公司仅仅想让员工在访问某些特定资源的时候进行身份认证,那么网络管理员只要配置认证服务器就可以了。但是若希望对员工使用网络的情况进行记录,那么还需要配置计费服务器。如上所述,AAA是一种管理框架,它提供了授权部分实体去访问特定资源,同时可以记录这些实体操作行为的一种安全机制,因其具有良好的可扩展性,并且容易实现用户信息的集中管理而被广泛使用。AAA可以通过多种协议来实现,目前设备支持基于RADIUS协议、HWTACACS协议或LDAP协议来实现AAA,在实际应用中,最常使用RADIUS协议。RADIUS协议简介RADIUS(Remote Authentication Dial-In User Service,远程认证拨号用户服务)是一种分布式的、客户端/服务器结构的信息交互协议,能保护网络不受未授权访问的干扰,常应用在既要求较高安全性、又允许远程用户访问的各种网络环境中。该协议定义了基于UDP的RADIUS帧格式及其消息传输机制,并规定UDP端口1812、1813分别作为认证、计费端口。RADIUS最初仅是针对拨号用户的AAA协议,后来随着用户接入方式的多样化发展,RADIUS也适应多种用户接入方式,如以太网接入、ADSL接入。它通过认证授权来提供接入服务,通过计费来收集、记录用户对网络资源的使用。客户端/服务器模式l 客户端:RADIUS客户端一般位于NAS设备上,可以遍布整个网络,负责传输用户信息到指定的RADIUS服务器,然后根据从服务器返回的信息进行相应处理(如接受/拒绝用户接入)。l 服务器:RADIUS服务器一般运行在中心计算机或工作站上,维护相关的用户认证和网络服务访问信息,负责接收用户连接请求并认证用户,然后给客户端返回所有需要的信息(如接受/拒绝认证请求)。RADIUS服务器通常要维护三个数据库,如图 2所示:图 2 RADIUS服务器的组成l “Users”:用于存储用户信息(如用户名、口令以及使用的协议、IP地址等配置信息)。l “Clients”:用于存储RADIUS客户端的信息(如接入设备的共享密钥、IP地址等)。l “Dictionary”:用于存储RADIUS协议中的属性和属性值含义的信息。安全和认证机制RADIUS客户端和RADIUS服务器之间认证消息的交互是通过共享密钥的参与来完成的,并且共享密钥不能通过网络来传输,增强了信息交互的安全性。另外,为防止用户密码在不安全的网络上传递时被窃取,在传输过程中对密码进行了加密。RADIUS服务器支持多种方法来认证用户,如基于PPP的PAP、CHAP认证。另外,RADIUS服务器还可以为其它类型的认证服务器提供代理客户端的功能,向其提出认证请求。RADIUS的基本消息交互流程用户、RADIUS客户端和RADIUS服务器之间的交互流程如图 3所示。图 3 RADIUS的基本消息交互流程消息交互流程如下:(1) 用户发起连接请求,向RADIUS客户端发送用户名和密码。(2) RADIUS客户端根据获取的用户名和密码,向RADIUS服务器发送认证请求包(Access-Request),其中的密码在共享密钥的参与下由MD5算法进行加密处理。(3) RADIUS服务器对用户名和密码进行认证。如果认证成功,RADIUS服务器向RADIUS客户端发送认证接受包(Access-Accept);如果认证失败,则返回认证拒绝包(Access-Reject)。由于RADIUS协议合并了认证和授权的过程,因此认证接受包中也包含了用户的授权信息。(4) RADIUS客户端根据接收到的认证结果接入/拒绝用户。如果允许用户接入,则RADIUS客户端向RADIUS服务器发送计费开始请求包(Accounting-Request)。(5) RADIUS服务器返回计费开始响应包(Accounting-Response),并开始计费。(6) 用户开始访问网络资源;(7) 用户请求断开连接,RADIUS客户端向RADIUS服务器发送计费停止请求包(Accounting-Request)。(8) RADIUS服务器返回计费结束响应包(Accounting-Response),并停止计费。(9) 用户结束访问网络资源。RADIUS报文结构RADIUS采用UDP报文来传输消息,通过定时器管理机制、重传机制、备用服务器机制,确保RADIUS服务器和客户端之间交互消息的正确收发。RADIUS报文结构如图 4所示。图 4 RADIUS报文结构各字段的解释如下:(1) Code域长度为1个字节,用于说明RADIUS报文的类型,如表 1所示。表 1 Code域的主要取值说明Code报文类型报文说明1Access-Request认证请求包方向Client-Server,Client将用户信息传输到Server,由Server判断是否接入该用户。该报文中必须包含User-Name属性,可选包含NAS-IP-Address、User-Password、NAS-Port等属性2Access-Accept认证接受包方向Server-Client,如果Access-Request报文中的所有Attribute值都可以接受(即认证通过),则传输该类型报文3Access-Reject认证拒绝包方向Server-Client,如果Access-Request报文中存在任何无法被接受的Attribute值(即认证失败),则传输该类型报文4Accounting-Request计费请求包方向Client-Server,Client将用户信息传输到Server,请求Server开始/停止计费,由该报文中的Acct-Status-Type属性区分计费开始请求和计费结束请求5Accounting-Response计费响应包方向Server-Client,Server通知Client已经收到Accounting-Request报文,并且已经正确记录计费信息(2) Identifier域长度为1个字节,用于匹配请求包和响应包,以及检测在一段时间内重发的请求包。类型一致的请求包和响应包的Identifier值相同。(3) Length域长度为2个字节,表示RADIUS数据包(包括Code、Identifier、Length、Authenticator和Attribute)的长度,范围从204096。超过Length域的字节将作为填充字符被忽略。如果接收到的包的实际长度小于Length域的值时,则包会被丢弃。(4) Authenticator域长度为16个字节,用于验证RADIUS服务器的应答,另外还用于用户密码的加密。Authenticator包括两种类型:Request Authenticator和Response Authenticator。(5) Attribute域不定长度,用于携带专门的认证、授权和计费信息,提供请求和响应报文的配置细节。Attribute可包括多个属性,每一个属性都采用(Type、Length、Value)三元组的结构来表示。l 类型(Type),1个字节,取值为1255,用于表示属性的类型,表 2列出了RADIUS认证、授权、计费常用的属性。l 长度(Length),表示该属性(包括类型、长度和属性)的长度,单位为字节。l 属性值(Value),表示该属性的信息,其格式和内容由类型和长度决定,最大长度为253字节。表 2 RADIUS属性属性编号属性名称属性编号属性名称1User-Name45Acct-Authentic2User-Password46Acct-Session-Time3CHAP-Password47Acct-Input-Packets4NAS-IP-Address48Acct-Output-Packets5NAS-Port49Acct-Terminate-Cause6Service-Type50Acct-Multi-Session-Id7Framed-Protocol51Acct-Link-Count8Framed-IP-Address52Acct-Input-Gigawords9Framed-IP-Netmask53Acct-Output-Gigawords10Framed-Routing54(unassigned)11Filter-ID55Event-Timestamp12Framed-MTU56-59(unassigned)13Framed-Compression60CHAP-Challenge14Login-IP-Host61NAS-Port-Type15Login-Service62Port-Limit16Login-TCP-Port63Login-LAT-Port17(unassigned)64Tunnel-Type18Reply-Message65Tunnel-Medium-Type19Callback-Number66Tunnel-Client-Endpoint 20Callback-ID67Tunnel-Server-Endpoint21(unassigned)68Acct-Tunnel-Connection22Framed-Route69Tunnel-Password23Framed-IPX-Network70ARAP-Password24State71ARAP-Features25Class72ARAP-Zone-Access26Vendor-Specific73ARAP-Security27Session-Timeout74ARAP-Security-Data28Idle-Timeout75Password-Retry29Termination-Action76Prompt30Called-Station-Id77Connect-Info31Calling-Station-Id78Configuration-Token32NAS-Identifier79EAP-Message33Proxy-State80Message-Authenticator34Login-LAT-Service81Tunnel-Private-Group-id35Login-LAT-Node82Tunnel-Assignment-id36Login-LAT-Group83Tunnel-Preference37Framed-AppleTalk-Link84ARAP-Challenge-Response38Framed-AppleTalk-Network85Acct-Interim-Interval39Framed-AppleTalk-Zone86Acct-Tunnel-Packets-Lost40Acct-Status-Type87NAS-Port-Id41Acct-Delay-Time88Framed-Pool42Acct-Input-Octets89(unassigned)43Acct-Output-Octets90Tunnel-Client-Auth-id44Acct-Session-Id91Tunnel-Server-Auth-idRADIUS扩展属性RADIUS协议具有良好的可扩展性,协议(RFC 2865)中定义的26号属性(Vendor-Specific)用于设备厂商对RADIUS进行扩展,以实现标准RADIUS没有定义的功能。设备厂商可以封装多个自定义的“(Type、Length、Value)”子属性来扩展RADIUS。如图 5所示,26号属性报文内封装的子属性包括以下四个部分:l Vendor-ID域占4字节,表示厂商代号,最高字节为0,其余3字节的编码见RFC 1700。H3C公司的Vendor-ID是2011。l Vendor-Type,表示扩展属性的子属性类型。l Vendor-Length,表示该子属性长度。l Vendor-Data,表示该子属性的内容。图 5 包括扩展属性的RADIUS报文片断HWTACACS协议简介HWTACACS(HW Terminal Access Controller Access Control System,HW终端访问控制器控制系统协议)是在TACACS(RFC 1492)基础上进行了功能增强的安全协议。该协议与RADIUS协议类似,采用客户端/服务器模式实现NAS与HWTACACS服务器之间的通信。HWTACACS协议主要用于PPP(Point-to-Point Protocol,点对点协议)和VPDN(Virtual Private Dial-up Network,虚拟私有拨号网络)接入用户及终端用户的认证、授权和计费。其典型应用是对需要登录到设备上进行操作的终端用户进行认证、授权、计费。设备作为HWTACACS的客户端,将用户名和密码发给HWTACACS服务器进行验证。用户验证通过并得到授权之后可以登录到设备上进行操作。HWTACACS协议与RADIUS协议的区别HWTACACS协议与RADIUS协议都实现了认证、授权、计费的功能,它们有很多相似点:结构上都采用客户端/服务器模式;都使用公共密钥对传输的用户信息进行加密;都有较好的灵活性和可扩展性。两者之间存在的主要区别如表 3所示。表 3 HWTACACS协议和RADIUS协议区别HWTACACS协议RADIUS协议使用TCP,网络传输更可靠使用UDP,网络传输效率更高除了HWTACACS报文头,对报文主体全部进行加密只对验证报文中的密码字段进行加密协议报文较为复杂,认证和授权分离,使得认证、授权服务可以分离在不同的安全服务器上实现。例如,可以用一个HWTACACS服务器进行认证,另外一个HWTACACS服务器进行授权协议报文比较简单,认证和授权结合,难以分离支持对设备的配置命令进行授权使用。用户可使用的命令行受到用户级别和AAA授权的双重限制,某一级别的用户输入的每一条命令都需要通过HWTACACS服务器授权,如果授权通过,命令就可以被执行不支持对设备的配置命令进行授权使用用户登录设备后可以使用的命令行由用户级别决定,用户只能使用缺省级别等于/低于用户级别的命令行HWTACACS的基本消息交互流程下面以Telnet用户为例,说明使用HWTACACS对用户进行认证、授权和计费的过程。基本消息交互流程图如图 6所示。图 6 Telnet用户认证、授权和计费流程图在整个过程中的基本消息交互流程如下:(1) Telnet用户请求登录设备。(2) HWTACACS客户端收到请求之后,向HWTACACS服务器发送认证开始报文。(3) HWTACACS服务器发送认证回应报文,请求用户名。(4) HWTACACS客户端收到回应报文后,向用户询问用户名。(5) 用户输入用户名。(6) HWTACACS客户端收到用户名后,向HWTACACS服务器发送认证持续报文,其中包括了用户名。(7) HWTACACS服务器发送认证回应报文,请求登录密码。(8) HWTACACS客户端收到回应报文,向用户询问登录密码。(9) 用户输入密码。(10) HWTACACS客户端收到登录密码后,向HWTACACS服务器发送认证持续报文,其中包括了登录密码。(11) HWTACACS服务器发送认证回应报文,指示用户通过认证。(12) HWTACACS客户端向HWTACACS服务器发送授权请求报文。(13) HWTACACS服务器发送授权回应报文,指示用户通过授权。(14) HWTACACS客户端收到授权回应成功报文,向用户输出设备的配置界面。(15) HWTACACS客户端向HWTACACS服务器发送计费开始报文。(16) HWTACACS服务器发送计费回应报文,指示计费开始报文已经收到。(17) 用户请求断开连接。(18) HWTACACS客户端向HWTACACS服务器发送计费结束报文。(19) HWTACACS服务器发送计费结束报文,指示计费结束报文已经收到。LDAP协议简介LDAP(Lightweight Directory Access Protocol,轻量级目录访问协议)是一种基于TCP/IP的目录访问协议,用于提供跨平台的、基于标准的目录服务。它是在继承了X.500协议优点的基础上发展起来的,并对X.500在读取、浏览和查询操作方面进行了改进,适合于存储那些不经常改变的数据。LDAP协议的典型应用是用来保存系统的用户信息,如Microsoft的Windows操作系统就使用了Activey Directory Server来保存操作系统的用户、用户组等信息,用于用户登录Windows时的认证和授权。LDAP目录服务在LDAP中,目录代表了系统中的组织信息、人员信息以及资源信息,它是按照树型结构组织,由条目(Entry)组成的。条目是具有DN(Distinguished Name,可区别名)的属性(Attribute)集合。LDAP的目录服务功能建立在Client/Server的基础之上,所有的目录信息存储在LDAP服务器上。LDAP服务器就是一系列实现目录协议并管理存储目录数据的数据库程序。目前,Microsoft的Active Directory Server、IBM的Tivoli Directory Server和Sun的Sun ONE Directory Server都是常用的LDAP服务器软件。使用LDAP协议进行认证和授权LDAP协议中定义了多种操作来实现LDAP的各种功能,用于认证和授权的操作主要为绑定和查询。l 绑定操作的作用有两个:一是用于检查用户信息的合法性。如果绑定请求中的用户DN在服务器指定根目录下不存在或用户DN密码不正确,则绑定失败,用户不能访问LDAP服务器;二是获取LDAP服务器的访问权限。如果要对服务器指定目录下的信息进行查询操作,进行绑定的用户一定要有查询该目录的权限。l 查询操作就是构造查询条件,并获取LDAP服务器的目录资源信息的过程。例如,获取通用名CN(Common Name)为user-name的用户的DN。使用LDAP协议进行认证时,其基本的工作流程如下:(1) LDAP客户端使用具有足够目录资源访问权限的用户DN(一般使用LDAP服务器管理员DN)与LDAP服务器进行绑定,获得查询权限。(2) LDAP客户端使用认证信息中的用户名构造查询条件,在LDAP服务器指定根目录下查询此用户,得到用户的DN。(3) 最后,LDAP客户端使用用户DN和用户密码与LDAP服务器进行绑定,检查用户密码是否正确。使用LDAP协议进行授权时,操作与认证过程相似,只是在查询用户时,除获得用户DN外,还可以获得用户信息中的授权信息。如果只需要查询用户时获得的授权信息,则可不再进行后面的操作,如果还需要其它授权信息可以在获得相应查询权限后,继续再对其它授权信息进行查询。LDAP的基本消息交互流程下面以Telnet用户登录设备为例,说明如何使用LDAP来对用户进行的认证和授权。基本消息交互流程如图1-7所示。图 7 LDAP认证的基本消息交互流程在整个过程中的基本消息交互流程如下:(1) 用户发起连接请求,向LDAP客户端发送用户名和密码。(2) LDAP客户端收到请求之后,与LDAP服务器建立TCP连接。(3) LDAP客户端以管理员DN和管理员DN密码为参数向LDAP服务器发送管理员绑定请求报文(Administrator Bind Request)获得查询权限。(4) LDAP服务器进行绑定请求报文的处理。如果绑定成功,则向LDAP客户端发送绑定成功的回应报文。(5) LDAP客户端以输入的用户名为参数,向LDAP服务器发送用户DN查询请求报文(User DN Search Request)。(6) LDAP服务器收到查询请求报文后,根据报文中的查询起始地址、查询范围、以及过滤条件,对用户DN进行查找。如果查询成功,则向LDAP客户端发送查询成功的回应报文。查询得到的用户DN可以是一或多个。(7) LDAP客户端以查询得到的用户DN和用户输入的密码为参数,向LDAP服务器发送用户DN绑定请求报文(User DN Bind Request),检查用户密码是否正确。(8) LDAP服务器进行绑定请求报文的处理。l 如果绑定成功,则向LDAP客户端发送绑定成功的回应报文。l 如果绑定失败,则向LDAP客户端发送绑定失败的回应报文。LDAP客户端以下一个查询到的用户DN(如果存在的话)为参数,继续向服务器发送绑定请求,直至有一个DN绑定成功,或者所有DN均绑定失败。如果所有用户DN都绑定失败,则LDAP客户端通知用户登录失败并拒绝用户接入。(9) LDAP客户端与LDAP服务器进行授权报文的交互。如果需要使用其它方案(如HWTACACS等)继续进行授权,则与对应服务器进行授权报文的交互。(10) 授权成功之后,LDAP客户端通知用户登录成功。基于域的用户管理一个ISP(Internet Service Provider,Internet服务提供者)域是由属于同一个ISP的用户构成的群体。NAS设备对用户的管理是基于ISP域的,每个接入用户都属于一个ISP域。用户所属的ISP域是由用户登录时提供的用户名决定的,如图 8所示。图 8 用户名决定域名用户的认证、授权、计费都是在相应的ISP域视图下应用预先配置的认证、授权、计费方案来实现的。AAA有缺省的认证、授权、计费方案,分别为本地认证、本地授权、本地计费。如果用户所属的ISP域下未应用任何认证、授权、计费方案,系统将使用缺省的认证、授权、计费方案。为便于对不同接入方式的用户进行区分管理,AAA将用户划分为以下几个类型:l lan-access用户:LAN接入用户,如802.1X认证、MAC地址认证用户。l login用户:登录设备用户,如SSH、Telnet、Web、FTP、终端接入用户。l Portal接入用户。l PPP接入用户。l VoIP接入用户。l SSL VPN接入用户。l WAPI接入用户。用户登录设备后,AAA还可以对其提供以下服务,用于提高用户登录后对设备操作的安全性:l 命令行授权:用户执行的每一条命令都需要接受授权服务器的检查,只有授权成功的命令才被允许执行。l 命令行计费:用户执行过的所有命令或被成功授权执行的命令,会被计费服务器进行记录。l 级别切换认证:在不退出当前登录、不断开当前连接的前提下,用户将自身的用户级别由低向高切换的时候,需要通过服务器的认证,级别切换操作才被允许。AAA支持在ISP域视图下针对不同的接入方式配置不同的认证、授权、计费的方法(一组不同的认证/授权/计费方案)。设备的RADIUS服务器功能通常,RADIUS的服务器端位于中心计算机或工作站上,RADIUS的客户端位于NAS设备上。若网络设备上能够实现RADIUS服务器的功能,则该网络设备就可以作为RADIUS服务器端与RADIUS的客户端配合完成用户的认证、授权和计费等功能。这种情况下,如图 9所示,RADIUS的客户端和RADIUS的服务器端既可以集中位于同一台设备上,也可以分别位于不同的设备上。设备支持RADIUS服务器功能给RADIUS的应用提供了更多便利,一方面,使得用户组网方式更加灵活,另一方面,可减少用户专门部署RADIUS服务器的组网成本。该功能常被应用于集群网络结构中,通过在汇聚层的管理设备上配置RADIUS服务器功能,并在接入层的成员设备上部署相应的认证方案,实现对用户的认证、授权。图 9 设备作为RADIUS服务器典型组网图设备作为RADIUS服务器可以实现如下功能:l 用户信息管理:支持创建、修改或删除用户信息。用户信息包括用户名、口令、权限、过期时间,以及用户描述信息等。l RADIUS客户端信息管理:支持创建、删除RADIUS客户端。RADIUS客户端以IP地址为标识,并具有共享密钥等属性。RADIUS服务器通过配置指定被管理的RADIUS客户端,并只处理来自其管理范围内的客户端的RADIUS报文,对其它报文直接作丢弃处理。共享密钥用于保证RADIUS客户端和RADIUS服务器端通信的安全性。l 支持RADIUS协议的认证和授权功能(暂不支持计费功能)。作为RADIUS服务器的设备接收到RADIUS报文后,首先检查RADIUS客户端是否在可管理的范围内,并使用共享密钥检验报文的合法性,然后依次检查用户帐号是否存在、用户口令是否正确,并根据RADIUS服务器的配置检查用户的其它属性是否满足要求,例如帐号是否在有效期内等因素,最后决定是否允许用户通过认证,并对认证通过的用户授予对应的权限。AAA支持多实例在MPLS VPN组网中,要求在私网客户端业务隔离的情况下,实现对客户端的集中认证,这就需要AAA支持基于多实例的报文交互。通过AAA支持多实例,可实现RADIUS、HWTACACS认证/授权/计费报文在MPLS VPN之间的交互。如图 10所示,连接客户端的PE设备作为NAS,通过MPLS VPN把私网客户端的认证/授权/计费信息透传给网络另一端的私网服务器,实现了对私网客户端的集中认证,且各私网的认证报文互不影响。
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 模板表格


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!