Chinaunix首页 | 论坛 | 博客
  • 博客访问: 47658
  • 博文数量: 8
  • 博客积分: 401
  • 博客等级: 一等列兵
  • 技术积分: 125
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-15 12:28
文章分类
文章存档

2010年(8)

我的朋友

分类: 系统运维

2010-04-21 17:09:22

浅谈IEEE 802.1X/EAP架构

看到一片不错的文章,转过来跟大家分享一下,浅显易懂.



(一)

IEEE 802.1X 为一个 网路存取控制 (Port-Based Network Access Control)” 的架构。在 802.1X 的架构里 , 有三种基本角色 , 分别是申请者 (supplicant) 、验证者 (authenticator) 、验证服务器 (Authentication Server, AS)

申请者 (supplicant) 就是想要对网路进行存取的使用者机器 , WLAN 环境里 , 就是指支持无线局域网的 Notebook PC 、手持装置。事实上 , 验证阶段就是由申请者提出验证要求 (EAPOL-Start) 后开始进行一连串的验证程序。 ( 严格来说 , 除了安装无线网卡之外 , 要成为 supplicant 还必须安装支持特定 EAP method supplicant 软体 , 由于 Windows XP 已经内建有支持部份 EAP method supplicant 机制 , 所以在使用上没有明显的感觉 , 但是有些 Linux 的版本 , 在安装无线网路卡后 , 还必须安装 supplicant 软体 , 才能成为 supplicant)

验证者 (authenticator) 其实就是网路存取控制器 , 在有线网路环境中 , 它可能是一台交换器 (switch HUB) ;在 WLAN 环境中 (infrastructure mode), 它应该就是一台 AP 或是一台无线交换器。验证者虽然是网路存取的控制者 , 但是它并不维护使用者资讯 ( 目前有些较先进的企业型 AP, 提供管理者可以直接于 AP 建立使用者帐号 , 不过这种方式仅限小规模的应用 ), 也就是说在验证阶段 , 验证使用者的工作是交由验证服务器来负责 , 而验证者仅负责转送申请者和验证服务器之间的验证交换讯息 , 当然这个时候 , 除了验证的交换讯息之外 , 验证者会将其他的讯息丢弃 (dropped) ( 其实在 802.1X 规格书中 , 于验证阶段时 , 验证者除了允许转送验证交换讯息外 , 亦允许使用 DHCP 以及其他初始化讯息 )

验证服务器 (Authentication Server, AS) 在验证阶段里 , 验证服务器担负起真正验证使用者的工作 ( 验证服务器可能维护着使用者资讯 , 当然 , 在大规模的布署里 , 使用者资料库也有可能是建立在 LDAP 服务器或是 Microsoft AD) 。不管验证成功或失败 , 验证服务器都会通知验证者 , 验证者再根据验证成功与否来决定是否授与申请者使用网路的权利。另外 , 为了因应无线局域网的应用 , 避免使用者遭到 伪装 攻击而因此被窃取使用者帐号 , 验证服务器在验证使用者之前 , 必须先向使用者提出身份证明 , 以证明自己是 合法 的验证服务器 , 并间接证明验证者也是 合法 验证者。


(二)

IEEE 802.1X 没有定义任何实作的方法 , 严格来说 ,IEEE 802.1X 并不能算是个标准 , 而是个架构 (framework) 。架构或许很好理解 , 但是该以什么方式来实作 ? 要选择那一种 EAP method? 架构里的三种基本角色包括申请者、验证者、验证服务器 , 申请者就有如支持 802.1X 的无线装置 , Notebook PC PDA , 验证者就有如支持 802.1X AP 等这类的网路存取控制 , 那验证服务器呢 ? 有什么样的实作方式可以来实现验证服务器的机制 ?

 

人类天生矛盾 , 选择性少的时候觉得没有弹性 , 一旦选择性多的时候 , 却又不知该如何选择 !! 其实业界目前来说有不少验证服务器的实作方式 , 亦开发出不少的 EAP method 。我无法在此一一介绍每一种实作的方式 ( 因为我也没有所有实作方式的经验 ), 所以就挑了一、二个我实际作过 , 而且在业界也有不少公司或企业采用的方式来简单描述一下。

 

有两种 EAP method 在目前业界有很多实作的案例 , 分别是 EAP-TLS 以及 EAP-PEAP 。这两种方式也是目前大部分的操作系统以及验证服务器实作均会支持的两种方式 , 而且这两种方式也都符合无网局域网的应用要求 – “ 加密的通道 以及 互相验证

EAP-PEAP

PEAP 是一种受保护的 EAP 方式 (Protected EAP, PEAP), 采用这种方式的目的是可以搭配 旧式的身份验证方式 一起使用。所谓 旧式的身份验证方式 就是指如 MS-CHAP-V2 这类的内层 (inner) 身份验证方式 ( 由于 Microsoft” 广大 的使用市场 , 所以 MS-CHAP-V2 也是目前支持最多的 PEAP 内层身份验证方式。之所以称 MS-CHAP-V2 旧式的身份验证方式 是因为在由 Windows 2003 Server 所建立的 AD , 使用 Windows XP client, 其所采用的验证协定是 Kerberos) 。这种 EAP method 首先验证服务器会先以自身的服务器凭证 (certificate) 来证明自身的 合法性 后建立起一条安全通道 ( 加密的通道 ), 后续的验证程序就是在这个安全通道内进行 , 接着验证服务器会要求无线终端装置的使用者输入使用者帐号 ( 使用 MS-CHAP-V2) 以完成验证程序。采用这种 EAP method, 除了验证服务器须安装由凭证授权中心 (CA) 所发行的服务器凭证以及根凭证之外 , 无线终端装置仅须安装 CA 根凭证即可 ( 这样无线终端装置才能够信任验证服务器的服务器凭证 ), 当然 , 除了于公司内建 CA 之外 , 亦可采行向受信任的第三方 CA 购买凭证的方式来布署。

EAP-TLS

这种方式 号称 是众多 EAP 方式 (EAP method) 中安全强度最高的一种方式 , 但也是建制和管理复杂度最高的一种方式。这种 EAP method 验证服务器和无线终端装置都是以凭证来进行互相验证。首先验证服务器以服务器凭证来宣告其 合法性 ”, 再以双方凭证中 public-key 的方式协商出一把 session-key, 使用者装置再以此 session-key 加密并传送使用者凭证中的使用者资讯给验证服务器以验证使用者身份。言下之意 , 验证服务器和使用者装置除了双方都要安装 CA 根凭证之外 , 还要分别安装服务器凭证和使用者凭证 , 想想看 , 有多少个使用者 , 就要发行多少张使用者凭证 , 这当中还涉及凭证的使用期限、撤销凭证、撤销清单的发布等管理需求 , 而这个管理需求一般就是指 PKI(Public Key infrastructure) 的布署和管理。

 

EAP-TLS 之所以被 号称 为安全强度最高的 EAP method, 是因为一般认为使用者帐号 (account) 可以 ”, 而凭证却无法 。但由于 EAP-TLS 涉及到凭证的管理 , 甚至于 PKI 的布署 , PKI 的布署又是另一项浩大的工程 ( 当然 , 也可以利用 Linux 搭配 FreeRADIUS OpenSSL 进行小规模的应用 ) 。所以在安全性、建制成本、管理成本的考量之下 , 一般而言 ,EAP-PEAP 会比 EAP-TLS 更受欢迎。

(三)

在验证服务器的实作方面 , 一般会以 RADIUS 的方式来实作 , 有两种实作方式既容易取得 , 设定上也不会太复杂 ( 这两种实作方式虽然也经常被应用在 production 的环境中 , 但老话一句 , 应用之前还是要经过详细的规划以及测试 ), 分别是 Microsoft IAS 以及开放源码的 FreeRADIUS

IAS(Internet Authentication Service)

这是 Microsoft 的网际网路验证服务 , 内建于 Windows 2003 Server(S.E. 以及 E.E. 均有支持 , 只是 S.E. 会有一些限制存在 , 例如在 Windows 2003 Server standard edition 安装 IAS, 此时一台 IAS 服务器仅能支持最大 50 RADIUS 用户端 , 也就是 50 AP, 然而 , 虽然存在着这样的限制 , 但即使是在一、二百人应用的场合 , 也已经是绰绰有余 ), 使用 IAS 最大的好处是可以轻易的与 Microsoft AD(Windows 2000 原生模式或 Windows Server 2003 功能的网域层级 , 预设是混合模式 ) 整合在一起 , 只要提供 IAS 的服务器为 AD 的成员服务器 (member server), 就可以很有弹性的授予个别使用者或群组使用权利 ( 在实际应用上 , 通常会建立一个群组 , 例如 wireless users, 再将要授予无线网路使用权利的使用者加入到这个群组 ) 。当然 IAS 服务器也可以是一台独立服务器 , 只是这种情况下 , 使用者资料是建立于 IAS 服务器上 , 这种模式较适合小规模的应用。 IAS 亦支持 EAP-PEAP 以及 EAP-TLS 这两种 EAP method

FreeRADIUS

Linux + FreeRADIUS + OpenSSL 最大的好处是可以大大降低作业系统的授权使用费用 , 甚至于 免费 使用 , 这也是 open source 最吸引人的地方 , 再加上稳定度、自由度以及越来越人性化的介面 , 这也是为什么越来越多人或公司要舍 Microsoft 而就 Linux 。大部份的 Linux distribution( 例如 RedHat SuSE Fedora) 都已经内含 FreeRADIUS 以及 OpenSSL 的套件 (RPM) FreeRADIUS 扮演的角色就有如 Microsoft IAS Server 的角色 ,OpenSSL 则可以利用来发行凭证 ( 非必要 , 端视使用那一种 EAP method 而定 ) 。同样的 ,RADIUS Server 可以利用现有的 LDAP Server( 须搭配相关的 schema 以及 object classes) 上的使用者资讯来进行验证 , 当然 , 也可以由 RADIUS Server 自己来维护一份使用者资讯。 FreeRADIUS 亦支持 EAP-PEAP 以及 EAP-TLS 这两种 EAP method


阅读(3840) | 评论(0) | 转发(0) |
0

上一篇:WLAN 是如何运行的

下一篇:fork VS. exec

给主人留下些什么吧!~~