802.1x认证,RADIUS认证

IEEE 802.1X

IEEE 802.1XIEEE制定关于用户接入网络的认证标准(注意:此处X是大写[1]),全称是“基于端口的网络接入控制”,属于IEEE 802.1网络协议组的一部分。于2001年标准化,之后为了配合无线网络的接入进行修订改版,于2004年完成。它为想要连接到LANWLAN的设备提供了一种认证机制。

IEEE 802.1X协议在用户接入网络(可以是以太网802.3或者WLAN网)之前运行,运行于网络中的数据链路层EAP协议RADIUS协议。

IEEE 802.1X定义了在IEEE 802上运行扩展认证协议(EAP,即"EAP over LAN"或EAPOL[2])的封装方式。

扩展认证协议(英语:Extensible Authentication Protocol,缩写为 EAP),是一个在无线网络点对点协议中普遍使用的认证框架。

EAP是一个认证框架,不是一个特殊的认证机制。EAP提供一些公共的功能,并且允许协商所希望的认证机制。这些机制被叫做EAP方法,现在大约有40种不同的方法。IETF的RFC中定义的方法包括:EAP-MD5, EAP-OTP, EAP-GTC, EAP-TLS, EAP-SIM,和EAP-AKA, 还包括一些厂商提供的方法和新的建议。无线网络中常用的方法包括EAP-TLS, EAP-SIM, EAP-AKA, PEAP, LEAP,和EAP-TTLS。

当EAP被基于IEEE 802.1X的网络接入设备(诸如802.11a/b/g ,无线接入点)调用时,现代的EAP方法可以提供一个安全认证机制,并且在用户和网络接入服务器之间协商一个安全的PMK。该PMK可以用于使用TKIPAES加密的无线会话

https://baike.baidu.com/item/EAP协议

EAP协议是使用可扩展的身份验证协议的简称,全称Extensible Authentication Protocol。是一系列验证方式的集合,设计理念是满足任何链路层的身份验证需求,支持多种链路层认证方式。

EAP协议简介:

EAP(Extensible Authentication Protocol)为可扩展身份验证协议,是一系列验证方式的集合,设计理念是满足任何链路层的身份验证需求,支持多种链路层认证方式。EAP协议是IEEE 802.1x认证机制的核心,它将实现细节交由附属的EAP Method协议完成,如何选取EAP method由认证系统特征决定。这样实现了EAP的扩展性及灵活性,如图所示,EAP可以提供不同的方法分别支持PPP,以太网、无线局域网的链路验证。

EAP-RADIUS

EAP-RADIUS 并不是一种 EAP 类型,但是可以通过验证程序将任何 EAP 类型的 EAP 消息传递到 RADIUS 服务器,以便进行身份验证。例如,将 ISA 服务器配置为用于 RADIUS 身份验证时,将封装在远程 VPN 客户端和 ISA 服务器之间发送的 EAP 消息,并在远程访问服务器和 RADIUS 服务器之间将格式设置为 RADIUS 消息。

EAP-RADIUS 用在将 RADIUS 作为身份验证提供程序的环境中。使用 EAP-RADIUS 的优势在于不需要在每个远程访问服务器上安装 EAP 类型,只需要在 RADIUS 服务器上安装即可。在 Internet 验证服务 (IAS) 中,只需要在 ISA 服务器上安装 EAP 类型。

概述

      802.1X验证涉及到三个部分:申请者、验证者和验证服务器申请者是一个需要连接到LAN/WAN的客户端设备(如便携机),同时也可以指运行在客户端上,提供凭据给验证者的软件。验证者是一个网络设备,如以太网交换机或无线接入点。验证服务器通常是一个运行着支持RADIUSEAP协议的主机。

     验证者就像是一个受保护网络的警卫。申请者(如客户端设备)不允许通过验证者访问到受保护一侧的网络,直到申请者的身份被验证和授权。这就像是允许进入一个国家之前要在机场的入境处提供一个有效的签证一样。使用802.1X基于端口的验证,申请者向验证者提供凭据,如用户名/密码或者数字证书,验证者将凭据转发给验证服务器来进行验证。如果验证服务器认为凭据有效,则申请者(客户端设备)就被允许访问被保护侧网络的资源。

EAP数据首先被封装在EAPOL帧中,传输于申请者(Supplicant)和验证者(Authenticator)之间。随后又封装在RADIUS或Diameter,传输于验证者和验证服务器(Authentication server)之间。

 

1.EAPOL协议

EAPOL(EAPoverLANs)是802.1X协议定义的一种报文封装格式,主要用于在客户端和设备端之间传送EAP协议报文,以允许EAP协议报文在LAN上传送。

2.EAP协议

802.1X协议采用EAP(ExtensibleAuthenticationProtocol,可扩展认证协议)来实现客户端、认证系统和认证服务器之间认证信息的交互。通过支持EAP协议,可以使用认证服务器来实现各种认证机制,认证系统仅仅需要传送认证信息,并根据认证返回的结果控制受控端口的状态。

3.RADIUS协议

RADIUS(RemoteAuthentication Dial In UserService用户远程拨入认证服务)是一种AAA的应用协议,意思就是同时兼顾验证(authentication)、授权(authorization)及计费(accounting)三种服务的一种网络传输协议。
 

    

如图所示:如果是协议帧直接通过非授权接口,也就是只允许802.1X的认证报文EAPoL通过。如果是授权接口(传输数据报文)那么必须在用户完成身份认证之后才可以传输。

EAP终结认证

 

这篇博客可以补充:

https://blog.csdn.net/phunxm/article/details/9389661

RADIUS

RADIUS:Remote Authentication Dial In User Service,远程用户拨号认证系统由RFC2865,RFC2866定义,是应用最广泛的AAA协议。AAA是一种管理框架,因此,它可以用多种协议来实现。在实践中,人们最常使用远程访问拨号用户服务(Remote Authentication Dial In User Service,RADIUS)来实现AAA。

RADIUS是一种C/S结构的协议,它的客户端最初就是NAS(Net Access Server)服务器,任何运行RADIUS客户端软件的计算机都可以成为RADIUS的客户端。RADIUS协议认证机制灵活,可以采用PAPCHAP或者Unix登录认证等多种方式。RADIUS是一种可扩展的协议,它进行的全部工作都是基于Attribute-Length-Value的向量进行的。RADIUS也支持厂商扩充厂家专有属性。

由于RADIUS协议简单明确,可扩充,因此得到了广泛应用,包括普通电话上网、ADSL上网、小区宽带上网、IP电话、VPDN(Virtual Private Dialup Networks,基于拨号用户的虚拟专用拨号网业务)、移动电话预付费等业务。IEEE提出了802.1x标准,这是一种基于端口的标准,用于对无线网络的接入认证,在认证时也采用RADIUS协议。

功能描述

组网应用

常见的AAA组网示意如图所示,其中RADIUS应用在AAA服务器上对用户进行认证、授权和计费服务。

AAA组网AAA组网

图中NAS(网络接入服务器)作为RADIUS客户端,向远程接入用户提供接入及与RADIUS服务器交互的服务。RADIUS服务器上则存储用户的身份信息、授权信息以及访问记录,对用户进行认证、授权和计费服务

工作原理

用户接入NAS,NAS使用Access-Require数据包RADIUS服务器提交用户信息,包括用户名、密码等相关信息,其中用户密码是经过MD5加密的,双方使用共享密钥,这个密钥不经过网络传播;RADIUS服务器对用户名和密码的合法性进行检验,必要时可以提出一个Challenge,要求进一步对用户认证,也可以对NAS进行类似的认证;如果合法,给NAS返回Access-Accept数据包,允许用户进行下一步工作,否则返回Access-Reject数据包,拒绝用户访问;如果允许访问,NAS向RADIUS服务器提出计费请求Account- Require,RADIUS服务器响应Account-Accept,对用户的计费开始,同时用户可以进行自己的相关操作。

RADIUS还支持代理和漫游功能。简单地说,代理就是一台服务器,可以作为其他RADIUS服务器的代理,负责转发RADIUS认证和计费数据包。所谓漫游功能,就是代理的一个具体实现,这样可以让用户通过本来和其无关的RADIUS服务器进行认证,用户到非归属运营商所在地也可以得到服务,也可以实现虚拟运营。

RADIUS服务器和NAS服务器通过UDP协议进行通信,RADIUS服务器的1812端口负责认证,1813端口负责计费工作。采用UDP的基本考虑是因为NAS和RADIUS服务器大多在同一个局域网中,使用UDP更加快捷方便,而且UDP是无连接的,会减轻RADIUS的压力,也更安全。

RADIUS协议还规定了重传机制。如果NAS向某个RADIUS服务器提交请求没有收到返回信息,那么可以要求备份RADIUS服务器重传。由于有多个备份RADIUS服务器,因此NAS进行重传的时候,可以采用轮询的方法。如果备份RADIUS服务器的密钥和以前RADIUS服务器的密钥不同,则需要重新进行认证。

优势特点

RADIUS协议承载于UDP之上,官方指定端口号为认证授权端口1812、计费端口1813。RADIUS协议简单明确、扩展性好,因此得到了广泛应用,具有以下特点:

  • 采用通用的客户端/服务器结构组网

NAS作为RADIUS的客户端负责将用户信息传递给指定的RADIUS服务器,然后处理RADIUS服务器的返回结果。RADIUS服务器负责接收用户的连接请求,对用户进行认证,给客户端返回用户配置信息。

  • 采用共享密钥保证网络传输安全性

客户端与RADIUS服务器之间的交互是通过共享密钥来进行相互认证的,以减少在不安全的网络中用户密码被侦听到的可能性。

  • 具有良好的可扩展性

RADIUS是一种可扩展的协议,所有的交互报文由多个不同长度的ALV(Attribute-Length-Value)三元组组成,新增加属性和属性值不会破坏到协议的原有实现。因此RADIUS协议也支持设备厂商扩充厂家专有属性。

  • 协议认证机制灵活

RADIUS协议认证机制灵活,支持多种认证用户的方式。如果用户提供了用户名和用户密码的明文,RADIUS协议能够支持PAP、CHAP、UNIX login等多种认证方式。

RADIUS协议简单明确、扩展性强,因此得到了广泛应用。在普通电话拨号上网、ADSL拨号上网、社区宽带上网、VPDN业务、移动电话预付费等业务中都能见到RADIUS的身影。

 

共享密钥与公开密钥:
当你需要在一个购物网站输入账号以及密码时时,含有你的账号与密码信息的数据会被发送到服务器,在发送的过程中,数据会有两种加密形式——共享密钥加密和公开密钥加密。
共享密钥加密可以这样理解,服务器为了使数据传输更安全,送给你一把钥匙,这把钥匙可以将数据锁在一个盒子里,当然也可以打开已经锁上的盒子。当数据送至服务器时,服务器会用同样的钥匙打开盒子。这种方法的坏处是,一旦贼人得到钥匙,便可以打开已经锁上的盒子。而公开密钥则避免了这种情况。
公开密钥加密会使用两把钥匙,服务器会发送给你一把只能锁上盒子却不能打开盒子的钥匙,而服务器自己会留一把可以打开盒子的钥匙,这样就避免了钥匙在中途被其他人抢走风险。当服务器发回响应时会用同样的方式,只不过留有可以打开盒子钥匙的人变成了你。

协议结构

Identifier― 匹配请求和响应的标识符

Length― 信息大小,包括头部。

Authenticator域占用16个字节,用于Radius Client 和Server之间消息认证的有效性,和密码隐藏算法。访问请求Access-Request报文中的认证字的值是16字节随机数,认证字的值要不能被预测并且在一个共享密钥的生命期内唯一。

1.访问请求认证字

在Access-Request包中认证字的值是16字节随机数,认证字的值要不能被预测,并且在一个共享密钥的生命期内唯一; [6] 

2.访问回应认证字

Access-Accept Access-Reject 和Access-Challenge包中的认证字称为访问回应认证字,访问回应认证字的值定义为MD5(Code+ID+Length+RequestAuth+Attributes+Secret); [6] 

3.计费请求认证字

在计费请求包中的认证字域称为计费请求认证字,它是一个16字节的MD5校验和,计费请求认证字的值定义为MD5(Code + Identifier + Length + 16 zero octets + request attributes +shared secret); [6] 

4.计费回应认证字

在计费回应报文中的认证字域称为计费回应认证字,它的值定义为MD5(Accounting-Response Code + Identifier + Length + the RequestAuthenticator field from the Accounting-Request packet being replied to +the response attributes + shared secret);

消息交互

radius服务器对用户的认证过程通常需要利用nas等设备的代理认证功能,radius客户端和radius 服务器之间通过共享密钥认证相互间交互的消息,用户密码采用密文方式在网络上传输,增强了安全性。radius 协议合并了认证和授权过程,即响应报文中携带了授权信息。

基本交互步骤如下:

(1) 用户输入用户名和口令;

(2) radius客户端根据获取的用户名和口令,向radius服务器发送认证请求包(access-request)。

(3) radius服务器将该用户信息与users 数据库信息进行对比分析,如果认证成功,则将用户的权限信息以认证响应包(access-accept)发送给radius客户端;如果认证失败,则返回access-reject 响应包。

(4) radius客户端根据接收到的认证结果接入/拒绝用户。如果可以接入用户,则radius客户端向radius服务器发送计费开始请求包(accounting-request),status-type 取值为start;

(5) radius服务器返回计费开始响应包(accounting-response);

(6) radius客户端向radius服务器发送计费停止请求包(accounting-request),status-type 取值为stop;

(7) radius服务器返回计费结束响应包(accounting-response)。

https://www.ctolib.com/topics-98619.html

  • 0
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值