Radius协议工作原理及双因素认证应用

知识就是力量,时间就是生命。这篇文章主要讲述Radius协议工作原理及双因素认证应用相关的知识,希望能为你提供帮助。

运维的朋友应该对AAA协议不陌生吧,认证(Authentication)、授权(Authorization)和计费(Accounting),是网络安全中进行访问控制的一种安全管理机制,其中Radius认证是一种应用最广泛的AAA协议,借用网上的描述:

Radius是一种C/S结构的协议,任何运行RADIUS客户端软件的计算机都可以成为RADIUS的客户端,RADIUS协议认证机制灵活,简单明确,可扩充,可以采用PAP、CHAP或者Unix登录认证等多种方式。
既然是一种C/S架构,组网方式也就非常简单:
图中NAS(网络接入服务器)作为RADIUS客户端,向远程接入用户提供接入及与RADIUS服务器交互的服务。RADIUS服务器上则存储用户的身份信息、授权信息以及访问记录,对用户进行认证、授权和计费服务。
简单描述下工作原理:
1、用户输入用户名和口令;
2、Radius客户端根据获取的用户名和口令,向Radius服务器发送认证请求包(access-request)。
3、  Radius服务器将该用户信息与users  数据库信息进行对比分析,如果认证成功,则将用户的权限信息以认证响应包(access-accept)发送给Radius客户端;如果认证失败,则返回access-reject  响应包。
4、Radius客户端根据接收到的认证结果接入/拒绝用户。
5、如果可以接入用户,则Radius客户端向Radius服务器发送计费开始请求包(accounting-request),status-type  取值为start;
6、Radius服务器返回计费开始响应包(accounting-response);
7、Radius客户端向Radius服务器发送计费停止请求包(accounting-request),status-type  取值为stop;
8、Radius服务器返回计费结束响应包(accounting-response);
Radius协议具有非常多的优势
1、Radius客户端和Radius服务器通过UDP协议进行通信,RADIUS服务器的1812端口负责认证,1813端口负责计费工作,UDP更加快捷方便,而且UDP是无连接的,会减轻RADIUS的压力,也更安全;
2、Radius支持代理功能,就是一台服务器可以作为其他RADIUS服务器的代理,负责转发RADIUS认证和计费数据包,可以实现多台Radius服务器互相配合;
【Radius协议工作原理及双因素认证应用】3、客户端与RADIUS服务器之间的用户密码交互是经过MD5加密的,双方使用共享密钥,这个密钥不经过网络传播以减少在不安全的网络中用户密码被侦听到的可能性;
4、Radius支持重传机制,如果NAS向某个RADIUS服务器提交请求没有收到返回信息,那么可以要求备份RADIUS服务器重传,由于有多个备份RADIUS服务器,因此NAS进行重传的时候,可以采用轮询的方法。如果备份RADIUS服务器的密钥和以前RADIUS服务器的密钥不同,则需要重新进行认证;
5、RADIUS是一种可扩展的协议,所有的交互报文由多个不同长度的ALV(Attribute-Length-Value)三元组组成,新增加属性和属性值不会破坏到协议的原有实现。因此RADIUS协议也支持设备厂商扩充厂家专有属性;
6、RADIUS协议认证机制灵活,支持多种认证用户的方式。如果用户提供了用户名和用户密码的明文,RADIUS协议能够支持PAP、CHAP、UNIX login等多种认证方式。
RADIUS协议简单明确、扩展性强,因此得到了广泛应用,现如今,在双因素认证领域中,更是独占鳌头!
Radius协议在双因素认证领域中的应用首先是网络设备

如路由器、交换机、AC等,主流设备都支持标准的Radius协议aaa认证,客户端基本配置思路如下:
1、配置RADIUS服务器模板,实现设备与RADIUS服务器的通信。
[Switch] radius-server template  ckey
[Switch-radius-ckey] radius-server authentication 10.1.6.6 1812   //指定RADIUS认证服务器的IP地址和端口号,
[Switch-radius-ckey] radius-server shared-key cipher  ckey@1234   //指定RADIUS认证服务器的共享密钥,需要与RADIUS服务器上配置一致
[Switch-radius-ckey] undo radius-server user-name domain-included   //设备向RADIUS服务器发送的报文中的用户名不包含域名
[Switch-radius-ckey] quit
2、配置AAA认证方案,指定认证方式为RADIUS。
[Switch] aaa
[Switch-aaa] authentication-scheme sch1
[Switch-aaa-authen-sch1] authentication-mode radius
[Switch-aaa-authen-sch1] quit
3、在域下引用AAA认证方案、RADIUS服务器模板以及业务方案。
[Switch-aaa] domain default_admin
[Switch-aaa-domain-huawei.com] authentication-scheme sch1
[Switch-aaa-domain-huawei.com] radius-server  ckey
[Switch-aaa-domain-huawei.com] service-scheme sch1
[Switch-aaa-domain-huawei.com] quit
[Switch-aaa] quit
*  各设备厂商或版本不同,配置方法仅供参考;
Radius服务端通常会启用静态密码认证和动态口令认证,以实双因素认证,至于服务端的配置,各个Radius服务端厂商配置方法也会有所不同,可能一些厂商只支持静态密码认证,做到基础的aaa认证,但是无法做到双因素认证,而我们中科恒伦的Radius服务端是结合aaa认证功能以及双因素认证功能,而且是采用web化管理,非常方便;
网络设备启用aaa认证具有很明显的优势:1、统一用户管理
在网络设备自身无需创建用户,直接在Radius服务器上通过web化的方式创建用户,管理非常方便;

2、统一认证管理
用户登录网络设备时,所有认证直接找Radius服务器做认证,做到统一认证管理,为了避免因Radius服务器宕机导致无法登录,也可以在设备上配置逃生账号,正常运维账号无法登录的情况下,启用逃生账号应急登录;
3、统一授权管理
在网络设备自身无需授权分配,直接在Radius服务器上通过web化的方式为不同用户分配不同的管理权限以及命令操作权限,做到集中权限管理;

4、统一审计管理
详细记录xx用户在xx时间访问xx设备;

Radius协议双因素认证在其他机房设备上的应用
Radius协议在双因素认证领域中除了应用于网络设备,还广泛应用于其他机房设备,如堡垒机、防火墙、VPN、负载等,但是这块就没有网络设备那么标准,因为这类设备没有统一的授权规则,所以通常只会用到Radius协议中的认证功能。
这类设备基本上都是图形化管理,可以直接通过页面配置的方式和Radius服务器对接,举几个例子:

△  建恒信安堡垒机配置Radius服务器

△  深信服防火墙配置Radius服务器

△  天融信VPN配置Radius服务器
这些设备都是把认证这一项交给Radius服务器,授权和审计还是由自身来做。这样子的话,对于Radius服务端来讲,只需要做好认证这一项工作,其他的无需理会,所以这类设备之所以启用Radius认证,通常情况下就是要做双因素认证,各厂商做法又有所不同:
部分厂商启用双因素认证,静态密码认证依然是在本地认证、动态口令交给Radius服务端做认证;
而有的厂商启用双因素认证,静态密码和动态口令都交给Radius服务端认证;
还有一些厂商直接把用户名、静态密码、动态口令都交给Radius服务端认证,本地不创建用户;
简单总结下吧1、Radius协议广泛应用于双因素认证领域;
2、网络设备有统一的认证、授权、审计标准,使用Radius管理更方便;
3、堡垒机、防火墙、VPN等其他机房设备缺乏统一授权、审计标准,一般会用Radius协议做双因素认证,而且各个厂商制定的认证逻辑各不相同,具体视具体情况而定。

    推荐阅读