RADIUS 和 EAP 如何以及在何处结合?

2024-01-31

我一直在阅读一些有关身份验证方法的内容。 我读过有关 RADIUS 和 EAP 的内容。 我只是不明白它们之间的联系。

RADIUS是一种身份验证协议,它使用共享密钥和其他方法进行安全身份验证,而EAP更多的是一种通用协议。我知道 EAP 本身不执行任何操作(它只是一个框架),并且使用更具体的类型(如 EAP-TLS)来执行身份验证。

我只是不明白客户端 -> 身份验证器 -> 身份验证服务器的身份验证过程是否应该选择其中一种协议,或者它们是否以某种方式组合。

我确信我完全错了,希望有人能简要解释一下我所缺少的内容。

谢谢你!


Overview

EAP 总是由另一个协议承载。请求者(验证用户的设备)和 NAS(网络访问服务器)之间最常见的传输是 IEEE-802.1X EAPOL(EAP Over Lan)、PPP(点对点协议)和 IKEv2。

对于 NAS(也称为 802.1X 术语中的身份验证器)和 RADIUS 服务器之间的链路,EAP 数据包在 253 字节边界上分段,并分为多个 EAP 消息属性。 EAP 如何通过 RADIUS 传输由以下定义RFC3579 http://www.ietf.org/rfc/rfc3579.txt.

NAS 通常不会监听 EAP 会话。对于提供隐私的 EAP 方法(例如 EAP-TLS、EAP-PEAP 和 EAP-TTLS),侦听无论如何都不会有效,因为将在请求者和 RADIUS 服务器之间建立 TLS 隧道。

验证

当 NAS 收到来自请求者的 EAP 数据包时,它将剥离封装 (EAPOL/PPP/IKEv2) 并将 EAP 数据分段为 253 字节的块。然后,它将 EAP 数据块作为多个 EAP 消息属性插入到 RADIUS 访问请求数据包中。然后,NAS 将向 RADIUS 服务器发送 RADIUS 访问请求数据包。

RADIUS 服务器使用 EAP 消息属性的存在作为其应执行 EAP 身份验证的指示,就像它使用用户密码作为其应执行 PAP 的提示和 CHAP 密码作为其应执行 CHAP 的提示一样。

RADIUS 服务器将按照接收的顺序连接 EAP 消息属性(这就是为什么代理不要重新排序 EAP 消息属性很重要),并将连接的数据传递给初始化 EAP 状态机的代码。

然后,EAP 代码将制定其响应并将其编码为 EAP 数据包,将该数据包拆分为 EAP 消息属性,并在 RADIUS 访问挑战数据包中将这些属性发送回 NAS。

状态属性也将在挑战中发送。该状态属性将包含在 NAS 的下一个访问请求中。状态属性允许 RADIUS 服务器在多轮访问请求/访问挑战之间恢复 EAP 身份验证状态。它通常用作正在进行的 EAP 会话存储的密钥。

当NAS收到Access-Challenge时,它会重新组装EAP-Message属性,将EAP数据封装在EAPOL/PPP/IKEv2中,并将封装的数据发送回请求者。

NAS 充当翻译器,进行多轮访问请求/访问挑战交换。

当 RADIUS 服务器有足够的信息来决定接受或拒绝用户时,它将发回包含 EAP-Success/EAP-Failure 的 EAP-Message。 RADIUS 服务器将在访问接受或接受拒绝数据包中将此 EAP 消息发送回 NAS。RFC3579 http://www.ietf.org/rfc/rfc3579.txt强制要求 EAP-Successes 在 Access-Accept 数据包中返回,EAP-Failures 在 Access-Reject 数据包中返回。

当需要将密钥材料分发给 NAS 和请求者时,NAS 的密钥材料在 Access-Accept 中包含的 MS-MPPE-Recv-Key 和 MS-MPPE-Send-Key RADIUS 属性中提供。在 EAP 方法的进行过程中,请求者将收到(或导出)相同的密钥材料。不同 EAP 方法如何导出此密钥材料是不同的。

当发送访问接受数据包时,通常会包含告诉 NAS 如何配置会话的属性。对于 802.1X/无线环境,返回到 NAS 的常见属性是会话超时(它设置会话时间的最大限制)和 Tunnel-Private-Group-ID 等(RFC3580 https://www.rfc-editor.org/rfc/rfc3580),它指定会话的未标记 VLAN。

总之,RADIUS 可以被视为传输和控制(对于 NAS)协议,而 EAP 可以被视为运行在 RADIUS 之上的实际身份验证/授权协议。

希望这可以帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RADIUS 和 EAP 如何以及在何处结合? 的相关文章

  • 我应该如何安全地存储密码并在 chrome 扩展中使用 http auth

    我正在制作一个 chrome 扩展 需要从安全服务器获取 xml 文件 我目前正在使用 XMLHttpRequest 来调用服务器 https username email protected cdn cgi l email protect
  • 在 PHP MySQL 中使用 jQuery AJAX 提交表单而无需重新加载

    我有一个基本的注册 登录页面 它使用 php 将数据提交到 SQL 数据库 但是 我希望页面在 jQuery AJAX 的帮助下不要在提交时重定向 无论成功与否 这是我目前所拥有的 但不起作用 它不显示任何错误消息 HTML 注册 html
  • ASP.NET MVC - 角色提供程序的替代方案?

    我试图避免使用角色提供程序和成员资格提供程序 因为在我看来它太笨拙了 因此我试图制作自己的 版本 它不那么笨拙并且更易于管理 灵活 现在我的问题是 除了角色提供者之外 还有其他不错的选择吗 我知道我可以自定义角色提供者 会员提供者等 通过更
  • couchdb读取身份验证

    我如何处理 couchdb 中的读取身份验证 我知道角色可以在单独的数据库中定义 但我想在文档级别实现读取身份验证 我正在考虑使用node js 但它似乎不是一个优雅的解决方案 因为couchdb也有一个http服务器 我不想再添加一个 或
  • 通过 https 安全登录后,Weblogic 应用程序切换回 http

    我已在 Weblogic 9 2 MP3 上成功配置 SSL 我能够使用 https 安全地登录应用程序 并继续使用 https 协议处理应用程序 当用户访问提供以下 URL 的应用程序时 情况就是如此 https servername 7
  • R 对等证书无法使用给定的 CA 证书进行身份验证,Windows

    当尝试使用导入谷歌工作表时gs read 函数 我收到以下错误消息 在curl curl fetch memory url handle handle 中出错 对等 无法使用给定的 CA 证书对证书进行身份验证 我正在关注这个vignett
  • SSL 和 Tkinter 不存在于 Python 3.5.2、Debian Linux 的源代码构建中

    我刚刚将 Python 3 5 2 下载到我的 Debian 机器上并使用以下命令构建它 configure make make test sudo make install 一切正常 但在make test输出中 它显示安装程序由于未安装
  • Web 客户端异常:底层连接已关闭:无法建立 SSL/TLS 安全通道的信任关系

    我有一个简单的应用程序 它使用 C Web 客户端类来下载网站 HTML 这是我正在使用的代码的精简示例 WebClient wc new WebClient wc Headers Add user agent Mozilla 4 0 co
  • Spring Security 3 以编程方式登录

    我正在使用 spring 创建一个 REST Web 服务 我需要在其中实现登录 注销功能 函数的 url 应类似于 api login 和 api logout 用户名和密码将使用 POST 方法传递 我在 REST Web 服务下面有一
  • 当建立 TLS / LDAP 或 TLS / HTTP 连接时,线路上会发生什么?

    我正在重新表述我的问题 希望能得到更好的答复 我问了类似的问题这里服务器故障 https serverfault com questions 178561 what are the exact protocol level differen
  • 如何以编程方式创建证书签名请求 (CSR)?

    如何用C实现呢 openssl req new key cert key out cert csr openssl x509 req in cert csr CA rootCA crt CAkey rootCA key CAcreatese
  • 通过 HTTPS 包含 Twitter Widgets.js

    当我们包含以下内容时 我在我们网站上的 HTTPS 服务页面上的混合内容方面遇到了一个小问题http platform twitter com widgets js http platform twitter com widgets js
  • Java FTPS 无法检索文件列表(FileZilla 客户端工作正常)

    我正在使用 Apache Commons Net v3 5 和 Java 8 连接到远程 FTPS 站点 即在互联网上 我可以轻松连接 Windows 10 计算机上的 FileZilla 客户端 但我的 Java 程序无法完成相同的步骤
  • html 表单发布到 Flex 应用程序

    我有一个基本完成的 Flex 应用程序 它使用 Zend AMF 来连接 提供数据 我的应用程序确实有一个登录屏幕 看起来工作正常 现在我想在我的网站上添加另一个登录表单 允 许用户输入用户名 密码 提交表单时应将数据传递给 Flex 应用
  • WebView ssl 错误

    对不起我的英语不好 我需要加载 url https 我有一些问题 当我尝试加载页面时 webView 给我错误 primary error 3 certificate Issued to CN my site com Issued by C
  • 如何将 OpenSSL 与 WinSock 一起使用?

    我在网上搜索过 但没有找到任何与此相关的内容 有谁有使用 WinSock 和 OpenSSL 的简单代码示例吗 我正在寻找一个简单的 Visual C 2005 或更高版本的代码示例 它创建并打开一个 Winsock 连接 并使用 Open
  • tomcat 7 + ssl 不工作 - ERR_SSL_VERSION_OR_CIPHER_MISMATCH

    Ubuntu 14 tomcat 7 java 7 our crt our key 和 gd bundle g2 g1 crt 由 godaddy 提供 该捆绑包中有 3 个证书 通过查看文件可以看出 请注意 我们的密钥和 crt 在 no
  • Golang 网络爬虫 NTLM 身份验证

    Golang 网络抓取工具需要从经过 NTLM 验证的网页中提取信息 有了有效的用户名和密码 网络抓取工具如何与服务器进行 NTLM 4 次握手 以获得对后面受保护网页的访问权限 url username password http www
  • 向 Python 2.6 添加 SSL 支持

    我尝试使用sslPython 2 6 中的模块 但我被告知它不可用 安装OpenSSL后 我重新编译2 6 但问题仍然存在 有什么建议么 您安装了 OpenSSL 开发库吗 我必须安装openssl devel例如 在 CentOS 上 在
  • 在 C++ 和 Windows 中使用 XmlRpc

    我需要在 Windows 平台上使用 C 中的 XmlRpc 尽管我的朋友向我保证 XmlRpc 是一种 广泛可用的标准技术 但可用的库并不多 事实上 我只找到一个库可以在 Windows 上执行此操作 另外一个库声称 您必须做很多工作才能

随机推荐

  • xsd 架构文件必须在 SQLXMLBULKLOADLib.SQLXMLBulkLoad4Class 中进行注释?

    这是使用 SQLXMLBULKLOADLib SQLXMLBulkLoad4Class 的示例 STAThread static void Main string args try SQLXMLBULKLOADLib SQLXMLBulkL
  • 将多个 PHP 脚本合并到一个文件中

    我有一个 PHP 脚本 其中包含一两个其他库 它依赖于使用 include 陈述 为了使其更容易移植 我想以某种方式 编译 脚本和included 将其库放入单个 PHP 脚本中 与ack http betterthangrep com将其
  • 尝试从 Chrome 实现拖放 Gmail 附件

    我一直在尝试将 Gmail 附件从 Chrome 拖放到我的应用程序中 可以将文件从电子邮件拖到桌面并在那里创建附件 所以我知道这一定是可能的 我已经能够让它读取文件名 但是当我从数据对象读取 FileContents 时 我得到一个带有该
  • 将 HTML 转换为 CSV

    我想将从下面的脚本获得的 HTML 表转换为 CSV 文件 但出现类型错误 如下所示 类型错误 序列项 0 预期字符串 找到标签 from bs4 import BeautifulSoup import urllib2 url http w
  • 使用 SQL 按日期过滤

    我想知道您的想法 我必须获得会话期间与系统的所有连接 为了使这个过程自动化 我决定使用 current date 但这不起作用 因为 current date 不是字符串 而是函数 所以我的问题是是否有人可以帮助我查询以获取当天所有连接的数
  • 将基本身份验证和表单登录结合到同一个 REST Api

    有没有办法为同一个 REST 服务设置基本身份验证和表单登录 我想让登录的用户在登录后通过网络浏览器以及从命令行运行来触发此服务curl u username password hostname com api process现在我看到了这
  • 网站加载时显示旋转轮或进度条

    我正在使用名为 jquery treeview 的 jQuery 插件构建一个树视图 构建此树视图需要花费大量时间 大约 5 7 秒 并且我想在页面加载时显示旋转轮或进度条 有谁知道这是怎么做到的吗 我只找到了加载视频或图像的解决方案 其中
  • 来自 Google 的带有 Charts API 示例的 GWT 无法正常工作

    我已经下载了在 GWT 中使用图表所需的 jar 附带的存档 存档中还有示例应用程序 http gwt google com samples hellovisualization 1 1 0 HelloVisualization html
  • 向量和平均数的随机化

    我有一个计算累积平均值和标准差的脚本 library tidyverse tibble aa c 2 3 4 5 6 7 8 gt mutate running mean sapply seq n function i mean aa se
  • .NET 4.5 中等待完成后 HttpContext.Current 为 null

    我在 NET 4 5 Web 应用程序中定义了以下简单的 WCF 服务 ServiceContract public interface IService1 OperationContract WebGet UriTemplate json
  • 将猪结果存储到本地文件

    我运行pig脚本做了一些夸张的操作 并且输出大小非常小 现在我跑 hadoop fs getmerge 分别地 有什么办法让pig脚本将结果直接转储到本地文件中吗 如果您不担心将所有内容合并到一个文件中 那么您可以在 grunt 中使用 c
  • 如何使用OpenCV提高Grabcut算法的准确性?

    我正在使用 OpenCV 的抓取算法在 android 中对图像进行背景减除 算法运行良好 但给出的结果不准确 例如 我的输入图像是 输出图像如下所示 那么我们如何提高Grabcut算法的准确性呢 P S 由于声誉低而没有上传示例图像 对此
  • 将实例添加到 MEF 容器

    如何将已创建的实例添加到 MEF 容器 目录中以在解析导入时使用 我想要 Unity 提供的功能RegisterInstance其容器上的方法 您可以使用撰写导出值 http msdn microsoft com en us library
  • 内部有 Any() 的嵌套 for 循环的 Big O 是什么?

    这个问题基本上是我的后续问题在这里回答 https stackoverflow com a 38332524 542251 我真的很想说这个算法的大O是什么 但我不确定我的说法是否完全正确 所以给定两个数组 B Hello World He
  • MSBuild 条件 IsDebug

    如何确定项目是否在 MSBuild targets 文件中以调试 或发布 模式构建 并使用此信息作为另一个属性的条件 就像是
  • 在 CSV 行末尾查找未终止的引用字段

    无论如何 我们是否可以找到 CSV 行末尾未终止的引用字段 的行号 我正在尝试在 java 中读取 CSV 文件 但出现错误很可能是因为 有一个报价已打开但未关闭 我正在使用 deeplearning4j datavec 的 CSVReco
  • AES 加密在 iOS 和 Android 中产生不同的结果

    尝试在 Android 和 iOS 中使用带有 CBC 和 PKCS7 填充的 AES128 算法来加密示例数据 但结果不同 安卓代码 private static final byte KEY 0x01 0x02 0x03 0x04 0x
  • Html Agility Pack - 按 ID 或类删除标签

    这是我的简化 HTML div div div div div div class divToRemove div div class divToRemove div div 我想删除 ID 或类名为 divToRemove 的 div 然
  • R 错误:names() 应用于非向量

    我有一段代码 仅在第一次运行时才会产生错误 奇怪的是 如果我第二次运行它 我不会得到任何错误 疯狂的定义 此外 错误并不总是出现在同一位置 我的意思是 如果我添加几行注释 错误消息将在注释之后打印 而不是在特定指令之后打印 我无法提供可重现
  • RADIUS 和 EAP 如何以及在何处结合?

    我一直在阅读一些有关身份验证方法的内容 我读过有关 RADIUS 和 EAP 的内容 我只是不明白它们之间的联系 RADIUS是一种身份验证协议 它使用共享密钥和其他方法进行安全身份验证 而EAP更多的是一种通用协议 我知道 EAP 本身不