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