没有合适的资源?快使用搜索试试~ 我知道了~
首页RFC2865 RADIUS中文翻译:互联网认证协议详解
RFC2865 RADIUS中文翻译:互联网认证协议详解
需积分: 5 1 下载量 98 浏览量
更新于2024-06-18
收藏 73KB DOCX 举报
RFC2865,全称为"远程拨入用户认证服务(Remote Authentication Dial-In UserService, RADIUS)",是一项由R. Droms等人于1997年提出的互联网工程任务组(IETF)标准,用于在网络接入服务器(NAS, Network Access Server)和共享认证服务器之间交换用户的认证、授权和配置信息。这份文档是针对中文读者的翻译版本,由中国互动出版网于2002年6月21日发布,版权归该网站所有,允许在非商业环境下自由转发,但需保留翻译和版权信息。 RADIUS最初使用的通信方式是用户数据报协议(UDP),其默认端口是1645,但后来由于与数据量度服务(Datametrics Service)的冲突,官方分配的新端口是1812。这一协议设计用于解决远程用户通过拨号或无线等方式接入网络时的身份验证问题,对于提高网络安全性至关重要。 文档详细描述了RADIUS协议的工作原理,包括NAS如何发送请求,认证服务器如何响应,以及信息交互的流程。它特别强调了RADIUS在设计上的局限性,如缺乏阻塞控制机制,这可能导致在大规模和高流量环境中出现性能下降和数据丢失。因此,阅读者可能会对互联网工程任务组(IETF)的AAA(接入认证会计计费)工程小组的后续工作感兴趣,他们可能正在寻求改进RADIUS,使之更适合于支持更大规模的网络和具备更好的流量管理功能。 总结来说,RFC2865是关于RADIUS协议的权威指南,对于网络管理员和IT专业人员理解网络接入控制、安全性和协议设计具有重要价值。阅读这份文档可以帮助他们优化网络架构,提升用户体验,同时关注RADIUS技术的演进和发展趋势。
资源详情
资源推荐
如果收到来自客户端的请求中有任何代理状态属性,在给客户端的回复中,转发服务器
必须在给客户端的回复中包括这些代理状态属性。当转发服务器转发这个请求时,它可以把
代理状态属性包含在其中,也可以在已转发的请求中忽略代理状态属性。如果转发服务器在
转发的接入请求中忽略了代理状态属性,它必须在响应返回给用户之前把这些代理状态属性
添加到该响应中。
现在我们更为详细地说明每一步。
1.NAS 传输它的接入请求给转发服务器。如果用户密码存在,转发服务器会用与 NAS 共
有的密钥对用户密码进行解密。如果在数据包中有一个 CHAP 密码属性存在,没有 CHAP 盘问
属性存在,转发服务器必须保证请求鉴别码完整的情况下,或者把它拷贝到 CHAP 盘问属性中。
转发服务器可以向数据包添加一个代理状态属性(只能添加一个)。如果它添加了代理状
态,该代理状态只能出现在数据包中任何其他代理状态属性之后。转发服务器禁止修改任何
其他已经存在于数据包中的代理状态属性(转发服务器可以选择不转发它们,但一定不能对
它们修改)。转发服务器禁止改变包括代理状态在内的同种类型任何属性的顺序。
2.如果用户密码存在的话,转发服务器用和远程服务器共有的密钥对用户密码进行加密。
它还会根据要求设置标识,向远程服务器转发接入请求。
3.远程服务器(如果是最终目标服务器)会使用用户密码、CHAP 密码或者是将来扩
展时指定的一些方法验证用户的合法性,然后返回接入允许、接入拒绝或者接入盘问给转发
服务器。对于这个例子,远程服务器传输的是一个接入允许数据包,远程服务器必须按照原
有的顺序而且不做任何修改的情况下,把所有的代理状态属性从接入请求中拷贝到响应数据
包中。
4.转发服务器使用它与远程服务器共有的密钥对响应鉴别码(Response Authenticator)
进行验证,如果验证失败,它会简单的将数据包丢弃。如果验证通过,转发服务器去掉最后
的代理状态(如果数据包内它附加过一个),使用它与 NAS 共有的密钥签发响应鉴别码,恢
复标识使它与 NAS 传输的源请求标识匹配,然后传输接入允许给 NAS。
转发服务器可能修改属性以执行本地策略。关于这种策略的讨论是在这篇文档范围之
外,而且是受以下限制的。转发服务器禁止修改数据包中存在的代理状态、状态或类别属性。
转发服务器的实施者应该认真考虑什么样的值可以做为服务类型(Service-Type)接受。
对在代理请求允许中通过 NAS 提示的服务种类或管理的服务种类一起传输服务种类的结果
要给与认真的考虑,而且实施者希望可以提供一些机制阻止那些以上提到的这些种类,或者
是其他的服务种类,或者是其他的属性。关于这些机制的讨论不是在本文档范围之内的。
2.4 为什么使用 UDP
一个经常问到的问题是为什么使用 UDP 而不是 TCP 作为传输协议。选择 UDP 是基于严格
的技术上的原因。
这有许多必须被理解的论点。RADIUS 是一个事务,基于几个具有有趣特点的协议。
1.如果向主验证服务器发出的请求失败,则必须查找备用服务器。
为了满足这个要求,考虑到向备用服务器传输请求,请求副本必须保留在传输层。
这意味着重发计时器仍然是需要的。
2.这个特别协议的计时要求与 TCP 所提供的有较大的不同。
在一种极端的情况下,RADIUS 不做丢失数据的响应检查。用户愿意为完成验证而
等几秒钟。通常带有侵略性的 TCP 中继 (基于平均往返时间)是不需要的,TC 确认 P 开销也
是不需要的。
在另一种极端情况下,用户不愿花几分钟等待验证。因此两分钟后,可靠的 TCP 数
据递送也是无效的。对备用服务器快速的使用能在用户放弃之前获得访问。
3. 协议的无状态特性简化了 UDP 的使用
服务器和客户机不停变化。系统重新启动,或单路供电。通常情况下,这不会产生问题,
但会导致出现超时和 TCP 连接中断检测,通过编写编码能够处理这类异常事件。无论如何
UDP 完全消除了这类特殊处理以及其中的任何一部分。每一个服务器和客户端只需一次打开
他们 UDP 传输,尔后可以使传输处于一种打开的状态,也许在网络上从始至终传输的是不
成功信息。
4. UDP 简化了服务器的实现
在最早的 RADIUS 实现中,服务器是单线程的。这意味着只能有一个请求被接收、处理
和返回。随后发现在后台安全机制会占用实时时间(1 秒或更多)的环境中这样做是难管理
的。服务器的请求队列会被填满,在每分钟内有成百上千的用户正在等待验证的环境中,请
求的轮换时间会长于用户所能忍受的等待时间,(尤其严重的是在数据库中的一次特殊的查
找,或者花在 DNS 上的时间大于 30 秒的情况)。显而易见的解决方法是多线程。用 UDP 解决
这一问题是很简单的。每一个请求得到一个单独的进程,通过一个简单的 UDP 数据包进行与
客户端原始通信,从而达到与客户端 NAS 直接响应的目的。
UDP 并不是一副万能药。应当注意的是使用 UDP 需要一种内嵌于 TCP 的功能:使用 UDP,
我们必须通过人工成功管理联系同一台服务器中继计时器,但我们并不需要花费同样的我们
必须通过人工成功管理联系同一台服务器中继计时器,但我们并不需要花费同样的注意力给
TCP 提供的计时器。这是在这个协议中以很小的代价换来 UDP 诸多优点的惩罚.
没有 TCP 我们仍然可能使用着金属线连接的锡罐通信。但是对于这个特殊的协议,UDP
是一个更好的选择。
2.5 中继提示
如果 RADIUS 服务器和副 RADIUS 服务器拥有共享密钥,在向备用服务器转发数据包时用相同
的 ID 和请求鉴别码是可行的,因为属性内容没有发生变化。用一个新的请求鉴别码向备用服
务器传输也是可以的。
如果你改变了用户密码属性的内容(或者其他属性),你需要一个新的请求鉴别码,因此还需
要一个新的 ID。
如果 NAS 向一个与前一个服务器完全相同的服务器传输 RADIUS 请求,而且属性内容没有发生
变化,你必须使用相同请求鉴别码、ID、和源端口号。若出现属性被修改,你必须使用新的
请求鉴别码和 ID。
NAS 可以在所有的服务器中使用同一个 ID,或者对每一个服务器使用单独的 ID,这是根据使
用者的要求决定。如果由于额外的请求,一个 NAS 需要多于 256 个 ID,它可以使用额外的源
端口号传输这些请求,并对每一个源端口 ID 进行跟踪。这样做,某一时刻对某一个服务器
的额外请求,上限大约是 16,000,000。
2.6 保持激活状态应该考虑的损害
一些应用者已经采取传输测试的 RADIUS 请求给服务器的方法,看服务器是否处于激活状态。
这种方法是不可取得,因为它会增加额外的负荷,而且因为没有提供任何附加有用信息,所
以损害可测量性。因为一个 RADIUS 请求是包含在一个单独的数据包中,在你送出 ping 的这
段时间里,你或许可以传输一个 RADIUS 请求,得到一个 RADIUS 响应得知 RADIUS 服务器处于
激活状态。如果你没有要传输的 RADIUS 请求,就不必关心服务器是否处于激活状态,因为你
没有使用到它。
如果你想监视你的 RADIUS 服务器,可以使用简单网络管理协议(SNMP),这是 SNMP 的指责所
在。
3. 包的格式
一个完整的 RADIUS 数据包是被封装在 UDP 的数据域中[4],在那 UDP 目标端口域指定为
1812 (十进制数)。
在应答数据包生成时,源端口号和目的端口号进行颠倒。
本备忘录是为 RADIUS 协议作评注的。RADIUS 早期的配置中是使用的 UDP 的 1645 端口号,它
是与数据矩阵服务(datametrics)冲突。标准 RADIUS 端口号是 1812。
以下是 RADIUS 数据格式的总结。域是从左向右传输的。
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 编码 | 标识符 | 长度 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| 鉴别码 |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 属性 ...
+-+-+-+-+-+-+-+-+-+-+-+-+-
编码
编码域是一位字节,确定 RADIUS 数据包的类型。在接收到一个无效编码域的地数据包后,该
数据包只是会被简单的丢弃。
RADIUS 指定了如下编码:
1 接入请求(Access-Request)
2 接入允许(Access-Accept)
3 接入拒绝(Access-Reject)
4 记账请求(Accounting-Request)
5 记账回应(Accounting-Response)
剩余55页未读,继续阅读
-飞得更高-
- 粉丝: 41
- 资源: 17
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C语言快速排序算法的实现与应用
- KityFormula 编辑器压缩包功能解析
- 离线搭建Kubernetes 1.17.0集群教程与资源包分享
- Java毕业设计教学平台完整教程与源码
- 综合数据集汇总:浏览记录与市场研究分析
- STM32智能家居控制系统:创新设计与无线通讯
- 深入浅出C++20标准:四大新特性解析
- Real-ESRGAN: 开源项目提升图像超分辨率技术
- 植物大战僵尸杂交版v2.0.88:新元素新挑战
- 掌握数据分析核心模型,预测未来不是梦
- Android平台蓝牙HC-06/08模块数据交互技巧
- Python源码分享:计算100至200之间的所有素数
- 免费视频修复利器:Digital Video Repair
- Chrome浏览器新版本Adblock Plus插件发布
- GifSplitter:Linux下GIF转BMP的核心工具
- Vue.js开发教程:全面学习资源指南
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功