2010年(8)
分类: 系统运维
2010-04-21 17:09:22
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
以及其他初始化讯息
)
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)
的布署和管理。
在验证服务器的实作方面
,
一般会以
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