HWTACACS(HUAWEI Terminal Access Controller Access Control System,华为终端访问控制器控制系统协议)是在TACACS(RFC 1492)基础上进行了功能增强的安全协议。该协议与RADIUS协议类似,采用客户端/服务器模式实现NAS与HWTACACS服务器之间的通信。
HWTACACS协议主要用于PPP(Point-to-Point Protocol,点对点协议)和VPDN(Virtual Private Dial-up Network,虚拟私有拨号网络)接入用户及终端用户的认证、授权和计费。其典型应用是对需要登录到设备上进行操作的终端用户进行认证、授权、计费。设备作为HWTACACS的客户端,将用户名和密码发给HWTACACS服务器进行验证。用户验证通过并得到授权之后可以登录到设备上进行操作。
1.3.1 HWTACACS协议与RADIUS协议的区别HWTACACS协议与RADIUS协议都实现了认证、授权、计费的功能,它们有很多相似点:结构上都采用客户端/服务器模式;都使用公共密钥对传输的用户信息进行加密;都有较好的灵活性和可扩展性。两者之间存在的主要区别如表1-3所示。
表1-3 HWTACACS协议和RADIUS协议区别
HWTACACS协议
RADIUS协议
使用TCP,网络传输更可靠
使用UDP,网络传输效率更高
除了HWTACACS报文头,对报文主体全部进行加密
只对验证报文中的密码字段进行加密
协议报文较为复杂,认证和授权分离,使得认证、授权服务可以分离在不同的安全服务器上实现。例如,可以用一个HWTACACS服务器进行认证,另外一个HWTACACS服务器进行授权
协议报文比较简单,认证和授权结合,难以分离
支持对设备的配置命令进行授权使用。例如,可以授权一个通过安全认证登录设备的用户对设备进行配置
不支持
1.3.2 HWTACACS的基本消息交互流程下面以Telnet用户为例,说明使用HWTACACS对用户进行认证、授权和计费的过程。基本消息交互流程图如图1-6所示。
图1-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服务器发送计费结束报文,指示计费结束报文已经收到。
1.4 协议规范与AAA RADIUS HWTACACS相关的协议规范有:
l RFC 2865:Remote Authentication Dial In User Service (RADIUS)
l RFC 2866:RADIUS Accounting
l RFC 2867:RADIUS Accounting Modifications for Tunnel Protocol Support
l RFC 2868:RADIUS Attributes for Tunnel Protocol Support
l RFC 2869:RADIUS Extensions
l RFC 1492:An Access Control Protocol, Sometimes Called TACACS