IEEE 802.11、802.11a和802.11b(也被称作Wi-Fi)均是无线局域网(LAN)的标准,可以提供1Mb或者更高的带宽。因为这些网络与有线局域网不同,所以无线LAN部署过程所特有的几个问题必须得到解决。 IEEE 802.11无线LAN的主要部署问题是管理网络访问以及无线数据传输的隐私保护。IEEE 802.11标准使用WEP预定义密钥进行访问控制和隐私保护。但是,管理数千个工作站的预定义密钥却并不是一件切实可行的事情。 IEEE 802.11标准 IEEE 802.11是一个共享的无线局域网(LAN)标准。它使用了带有冲突规避能力的载体侦听多重访问(CSMA)介质访问控制(MAC)协议。该标准允许在物理层进行直接序列(DS)和跳频(FH)展布频谱传输。该标准起初所能够提供的最大数据传输速度可以达到2Mb/秒。而在802.11b规范的物理层定义提供了一个速度更高的版本,能够利用DS展布频谱传输实现最高达11Mb/秒的传输速度。IEEE(Institute of Electrical and Electronics Engineers,电气和电子工程师协会)标准委员会还在802.11a规范中定义了物理层标准。该标准基于正交频分复用(OFDM)技术,可以实现最高达54Mb/秒的数据传输速度。 安全性问题 尽管802.11在无线局域网环境下得到了快速的增长和应用,但是无线网络下的很多安全性问题仍然不容忽视。 802.11无线LAN标准基于有线定价保密(Wired Equivalent Privacy,WEP)算法定义了一些身份验证和加密服务。WEP算法使用一个长度为40位的密钥进行身份验证和加密操作。另外,很多802.11实现还允许使用长度为104位的密钥。但是,该标准却没有定义出一个密钥管理协议,它假设共享密钥通过一个独立于802.11的安全渠道提交给802.11无线基站(STA)。 WEP密钥管理协议的缺乏是实现802.11安全性的一个主要限制,特别是在一个拥有大量站点的无线基础设施网络中(即使用访问点与有线网络进行连接的无线网络)。这种类型网络的一些例子包括:企业园区和公共场所(例如机场和酒店大厅)。在对这些密钥进行人工配置之后,密钥在很长一段时间内都不会发生改变,黑客们便有了足够的时间对网络进行各种形式的攻击以获得密钥和解密网络中传输的数据。身份验证和加密服务的缺乏也会对ad hoc无线网络(点对点的无线网络)的运行造成影响,用户一般使用这些网络进行点对点的协作通信;例如,用户可以在会议室中建立一个这样的网络。 所以,身份验证和加密对于无线环境来说显得尤为重要,用户需要获得一些访问控制和安全机制,以及在802.11中定义一个密钥管理协议。 特定于WEP的问题 除了密钥管理协议的缺乏之外,WEP也会带来一些其它的安全性问题。这些问题包括: 初始化向量(Initialization Vector,IV)冲突:本问题发生在WEP分配RC4 初始化向量(IV)的过程之中,IV用来在一个伪随机数发生器中创建密钥,而密钥则被用来加密无线网络中传输的数据流量。WEP中的IV是一个能够复用的24位字段,从而保证了密钥的复用性。但是,WEP标准并没有制订如何分配这些IV。因此很多无线网络卡都会重新将IV设置为0,然后在每次使用时将IV的值增加1。如果某个攻击者能够捕获使用相同IV(如果密钥没有改变,密钥也相同)的两个数据包,便可以使用一些方法确定出原始数据包所占的部分。 密钥复用导致了该弱点和其它弱点,使得攻击者可以分析出重复使用的密钥。这些攻击者需要获得大量的数据包(500万到600万个数据包),才能准确地通过这些数据包计算出完整的WEP密钥,但是在一个繁忙的大型网络之中,在很短的时间之内就会产生如此之多的数据包,可能只需要10分钟就足够了(虽然,甚至是某些最大型的企业网络,也可能需要更多的时间来收集到足够的数据包)。在受WEP保护的无线网络中,很多时候,多个站点或者全部站点都使用同一个共享密钥。这就增加了发生IV冲突的可能性。如果不经常修改WEP密钥,网络将变得不够安全。这进一步增加了人们对WEP密钥管理协议的需要。 注入恶意代码:如果某个攻击者知道一个加密数据包的结构(已知协议头字段等等),他们可以翻转数据位以修改该数据包,创建一个恶意数据包 -- 改变命令、地址等等。加密数据包能够对数据包的完整性进行检查,以确保数据包没有被篡改,但是在WEP中,完整性检查也可以被修改,这样,新的数据包也可以是有效的,并且能够为目标设备所接受。 如果攻击者知道目标地址在数据包中的位置,便可以修改另一个未知数据包中的该地址。新的地址可以是攻击者所控制的一台计算机。如果该数据包从无线网络中发送,AP会解密该数据包,然后将其发送给伪装的目的计算机。 实时解密,IV表:IV的短小和密钥的长期复用使得攻击者可以创建一个IV表和密钥流,然后根据每一个解密后的数据包填充该表。最终,该表将包含所有可能的IV,可以用来实时解密所有网络数据包。 802.11现有的一些安全问题包括: 没有针对数据包的身份验证机制,来确定每个数据包的来源。 802.11具有可被分离攻击利用的漏洞--强迫用户脱离无线网络。 缺少用户识别和身份验证能力。 没有集中的身份验证、授权和账户支持。 RC4流密码可以通过如上所述的攻击所获得。 某些根据口令来生成WEP密钥 -- 从而使得口令很容易被攻击者所窃取。 不支持扩展的身份验证手段,例如:令牌卡;证书/智能卡;一次性口令;生物特征等等。 存在密钥管理问题,例如:重复使用全局性密钥,没有基于站点和会话的动态密钥管理。 802.1X-解决密钥管理问题 Microsoft与其它公司在IEEE标准化组织中密切合作,定义出了一个基于端口的网络访问控制(802.1X)草案标准。我们还在IEEE中对802.1X在802.11无线网络中的具体应用方式做出了定义。 802.11不要求所用站点都使用同一个WEP密钥,并且允许站点保有两套共享密钥:一个为特定于每隔站点的单播会话密钥;一个为多播的全局密钥。当前的802.11实现主要支持共享的多播/全局密钥,但是预计在不远的将来将支持特定于站点的单播会话密钥。所有这些密钥的管理和更新工作将是一个困难和艰巨的过程。 当前,用于访问控制的802.11安全选项与大型网络或者ad-hoc网络的规模并不相称。此外,当站点从一个AP漫游到另一个AP时,内部访问点协议(IAPP)的缺乏也进一步加剧了密钥管理问题的复杂程度。如果没有该协议,身份验证工作必须重新进行。 802.1X是一个基于端口和用于网络访问控制的草案标准。它可以向以太网络提供经过身份验证的网络访问。基于端口的网络访问控制使用交换LAN的物理特性来为连接到LAN端口上的设备提供身份验证,如果身份验证过程失败,系统将阻止对该端口的访问。 802.1X的工作方式 本文的以下几个部分将对使用802.1X对无线和有线网络实施访问控制和为加密操作提供密钥的具体方式进行高水平概述。 认证者或申请者 LAN端口在网络访问控制的交互过程中可以扮演以下两种角色之一:认证者(authenticator)或申请者(supplicant)。 认证者是在允许用户通过该端口访问服务之前“施加”身份验证行为的端口。申请者是“请求”通过认证者的端口对服务进行访问的端口。 此外,身份验证服务器也可以执行身份验证功能;它代表认证者检查申请者的凭据。身份验证服务器然后向认证者做出响应,指出申请者是否可以得到授权,以对认证者的服务加以访问。身份验证服务器可以是一个单独的实体,也可以与认证者共同位于同一个实体上。 受控制和非控制端口 认证者基于端口的访问控制从一个单一的物理LAN端口上为LAN定义了两个逻辑访问点如以下图1所示。 图1:受控制和非控制的端口 第一逻辑访问点,即上图中的非控制端口(Uncontrolled Port),允许认证者与LAN上的其它系统之间进行不受控制的数据交换 -- 忽略系统的授权状态。第二个逻辑访问点,即上图中的控制端口(Controlled Port),允许LAN上的系统和认证者的服务之间进行数据交换 -- 但是只有在系统经过授权后才能进行。 非控制端口的一个用途是为认证者和申请者之间的数据交换提供一条途径。 受控制端口的授权状态(Authorization State)决定了数据能够从申请者通过该端口流向LAN。授权状态最初可能为“未授权”(Unauthorized),是否能够变为“已授权”(Authorized)要取决于申请者的身份验证情况。 一个简单的802.1X交换 扩展身份验证协议(Extensible Authentication Protocol,EAP)是一个支持身份验证信息通过多种机制进行通信的协议。利用802.1X,EAP可以用来在申请者和身份验证服务器之间传递验证信息。这意味着EAP消息需要通过LAN介质直接进行封装。EAP over LAN(EAPOL)即是出于此目的而定义的。认证者负责在申请者和身份验证服务器之间转递消息。身份验证服务器可以是一台远程身份验证拨入用户服务(Remote Authentication Dial In User Service,RADIUS)服务器。 说明:802.1X不会明确将身份验证限定到EAP和RADIUS,但是它却是一种较为典型的使用方法。 以下举一个例子,说明对申请者进行身份验证所需经过的步骤: 认证者发送一个EAP - Request/Identity(请求/身份)消息给申请者。 申请者发送一个EAP - Response/Identity(响应/身份)以及它的身份给认证者。认证者将收到的消息转发给身份验证服务器。 身份验证服务器利用一个包含口令问询的EAP - Request消息通过认证者对申请者做出响应。 申请者通过认证者将它对口令问询的响应发送给身份验证服务器。 如果身份验证通过,授权服务器将通过认证者发送一个EAP - Success响应给申请者。认证者可以使用该“Success”(成功)响应将受控制端口的状态设置为“已授权”。 视您所使用身份验证机制的不同,还有其它几种可能的消息流动方式。 使用802.1X进行无线身份验证 通过使用RADIUS(Remote Authentication Dial-In User Service)对客户机的安全凭据进行验证,802.1X可以用在无线网络的身份验证工作之中。 如果希望无线访问点能够安全地识别出某个特定客户机的数据通信,需要对基本的802.1X协议进行扩展。我们可以向客户机传递一个身份验证密钥,然后将其传递给无线访问点,并将这个过程作为身份验证程序的一部分,从而实现上述目的。只有接受身份验证的客户机知道身份验证密钥,该身份验证密钥可以加密由客户机发送的所有数据包。 802.1X是面向LAN网络访问控制的一个IEEE标准。该标准定义了以太网和令牌环网的网络访问控制方法。它并没有定义在802.11中使用802.1X的具体方法。经过3次修改之后, 802.1X已经可以用来对802.11网络的访问实施控制: 802.11规定,“关联”(associate)和“非关联”(dissociate)消息同以太网端口的“连接”和“未连接”相等价。从而能够对何时进行身份验证加以控制。 从访问点发送到客户机的801.1X消息应该带有客户机的目标MAC地址,而不是802.1X MAC地址。客户机应该只处理发送到他们MAC地址或者802.1X MAC地址的802.1X消息。 访问点应该根据客户机是否通过了身份验证,通过受控制端口对网络访问加以控制。 无线站点的身份验证 以下步骤描述了利用访问点(Access Point,AP)和RADIUS服务器对站点进行身份验证的基本方法。 如果没有有效的身份验证密钥,AP会禁止所有的网络流量通过。 当一个无线站点(申请者)进入一个无线AP认证者的覆盖范围时,无线AP会向无线站点发出一个问询。 在受到来自AP的问询之后,站点做出响应,告知自己的身份。 然后,AP将站点的身份转发给RADIUS(身份验证)服务器,以便启动身份验证服务。 然后,RADIUS服务器请求站点发送它的凭据,并且指定确认站点身份所需凭据的类型。 站点将它的凭据发送给RADIUS。 在对站点凭据的有效性进行了确认之后,RADIUS服务器将身份验证密钥发送给AP。该身份验证密钥将被加密,只有AP能够读出该密钥。 (请记住:在站点和RADIUS服务器之间传递的请求通过AP的“非控制”端口进行传递,因为站点不能直接与RADIUS服务器建立联系。AP不允许STA站点通过“受控制”端口传送数据,因为它还没有经过身份验证。) AP使用从RADIUS服务器处获得的身份验证密钥保护站点数据的安全传输--特定于站点的单播会话密钥以及多播/全局身份验证密钥。 全局身份验证密钥必须被加密。这就要求所使用的EAP方法必须能够生成一个加密密钥,这也是身份验证过程的一个组成部分。传输层安全(Transport Level Security,TLS)协议提供了两点间的相互身份验证、完整性保护、密钥对协商以及密钥交换。有鉴于此,您可以使用EAP-TLS在EAP内部提供TLS机制。 利用802.1X解决WEP问题 人们先前对WEP的种种非议由于以下原因而终于停止了: 提供了针对每个站点或者每个会话的密钥,以限制使用同一个密钥发送数据包的次数。 确保密钥能够得到经常的修改--大约每隔5-10分钟或者每400万个数据包就重新生成一个新的密钥。此外,还对密钥的重新使用做出了限制,而这一点正是人们以前对WEP进行猛烈抨击的主要原因。 随着802.1X的不断实现和部署,这一步骤将自动完成。 在完成了身份验证之后,802.1X协议应该已经得到配置,要求站点以特定的时间间隔定期重新进行身份验证。802.1X因此提供了特定于每个站点和会话的密钥,并且经常修改这些密钥,从而消除了密钥的重新使用问题。此外,802.1X支持用户身份识别和验证,以及集中化的身份验证、授权和账户管理。在未来,它还将为其它扩展身份验证手段提供支持。 802.1X使用的身份验证方案 IEEE 802.1X 定义了一种封装计划,以在LAN环境中实现EAP数据包在申请者(Supplicant)和认证者(Authenticator)之间的传输。EAP为PPP上的其它身份验证方法提供了一种标准的机制。通过EAP,用户可以添加更多的身份验证方案,包括:智能卡、Kerberos、Public Key(公共密钥)、一次性口令等等。 Service Pack 1(SP1)之前的Windows XP支持基于公共密钥基础结构(PKI)的EAP-TLS和用户名/口令EAP-MD5身份验证方法。Windows XP SP1支持可用于无线身份验证的Protected EAP(PEAP)和 EAP-TLS身份验证方法。 EAP-MD5最初的开发遵守EAP规范。但是,出于很多原因,我们不建议您使用EAP-MD5。直接在无线介质上通过问询/应答方法进行基于用户名/口令的身份验证很容易受到离线字典攻击。此外,MD5不能提供相互验证,它仅仅允许服务器验证客户机。它也没有为服务器和气客户机用户建立一个安全通道所需的密钥衍生提供足够的空间。 EAP-TLS是一种基于PKI的身份验证方法,它使用保存在注册表或者智能卡上的证书进行身份验证。EAP-TLS支持相互验证,受完整性保护的密钥对协商以及通话双方间的密钥交换。如图2所示,基于PKI的TLS身份验证方法通过证书为客户机和服务器提供了双向的相互验证。 虽然EAP为身份验证提供了足够的灵活性,但是EAP在IEEE 802.1X身份验证过程中发生,并且发生在利用WEP加密无线帧之前。能够访问媒介的恶意用户可以将恶意数据包注入会话,或者捕获成功进行了身份验证的EAP消息进行分析。对于无线连接来说,这尤其是一个大问题,因为恶意用户不用进入您的企业就可以完成这些工作。 PEAP是EAP的一种类型,它首先创建一个安全的通道,该通道既是加密的,而且也通过TLS进行完整性检查,从而解决了安全性问题。然后,通过另一种类型的EAP进行的新一轮EAP协商开始了,以便对客户机的网络访问企图进行身份验证。因为TLS通道可以保护EAP协商以及对网络访问尝试进行的身份验证过程,用户可以利用基于口令的身份验证协议在无线环境中进行身份验证 工作,而这些协议在一般情况下很容易遭到离线字典形式的攻击。 Windows XP SP1支持利用Microsoft Challenge-Handshake Authentication Protocol version 2 (MS-CHAP v2) EAP进行的PEAP(也被称作PEAP with MS-CHAP v2),以及利用EAP-TLS身份验证类型进行的PEAP。 PEAP with MS-CHAP v2允许基于口令的安全无线身份验证。它不要求无线客户机使用计算机和用户证书,它只要求在RADIUS服务器上安装计算机证书。 有关PEAP的更多信息,请参看利用PEAP with MS-CHAP Version 2实现基于口令的安全无线访问一文。 此外,Windows XP SP1还支持使用基于智能卡的用户证书对无线用户进行身份验证。 图2. 无线连接上的安全身份验证方式 802.1X和VPN 决定何时使用虚拟专用网(VPN)和何时使用802.1X可能让人有点困惑。这些技术实际上互为补充,很多时候我们会同时使用这些技术。 IEEE 802.1X允许后端的身份验证服务器对客户机进行验证,并且根据服务器上针对特定客户机的策略授权相关的网络访问。B类身份验证方式(例如EAP-TLS)的使用还在服务器和客户机上提供了密钥。作为一个成功身份验证过程的一部分,密钥还会提供给网络访问服务器(Network Access Server,NAS),例如:无线访问点。然后,客户机和NAS可以使用这些密钥保护客户机和NAS间无线数据传输的安全。 说明:它仅仅加密通过无线介质在客户机和NAS间进行传输的数据,不会为NAS以外的数据提供安全。 从Internet上对大多数企业网络的访问需要客户机建立一条到企业网络的VPN连接。建立VPN连接可以确保客户机和企业网络中的VPN服务器之间的数据安全。 因此,IEEE 802.1X和VPN结合使用可以让二者互为补充,为从公共位置访问Internet的客户机提供必需级别的数据安全性。 |
Powered by Discuz!
© 2003-2024 广州威思信息科技有限公司