产品
产品中心
< 返回主菜单
产品

交换机

交换机所有产品
< 返回产品
交换机
查看交换机首页 >

无线

无线所有产品
< 返回产品
无线
查看无线首页 >

云桌面

云桌面产品方案中心
< 返回产品
云桌面
查看云桌面首页 >

安全

安全所有产品
< 返回产品
安全
查看安全首页 >
产品中心首页 >
行业
行业中心
< 返回主菜单
行业
行业中心首页 >

企业办公网接入认证技术详解

【网络接入认证】在企业办公网场景中最常用到的就是802.1X认证和Portal认证。本文将对802.1X认证技术和Portal认证技术进行详细讲解。

  • 发布时间:2019-04-12

  • 点击量:

  • 点赞:

分享至

我想评论

背 景

办公网承载着企业内部众多关键业务系统,如果终端连接到网络中便可直接访问办公网络资源,会带来网络被攻击的风险,企业内部资料有可能被具有非法意图的攻击者窃取。如何保证用户接入网络的合规与合法性,早已成为业界关注的焦点。网络接入认证技术就是在这样的背景下产生的。

 

多种网络接入认证方式

接入认证的方式有很多种,在园区网中常见的有以下四种:

1、802.1X(Port-Based Network Access Control)认证:

• 是一个基于端口的网络存取控制标准,为LAN提供点对点式的安全接入;

• 802.1X的最终目的就是确认一个物理端口或Wi-Fi连接是否可用,如果认证成功就允许使用该物理端口或Wi-Fi连接。

2、Portal认证:

• 也称Web认证,是一种对用户访问网络的权限进行控制的认证方法;

• 当用户需要访问认证服务器以外的其它网络资源时,就必须通过浏览器在Portal服务器上进行身份认证,只有认证通过后才可以访问相关网络资源。

3、PPPoE(Point-to-Point Protocol Over Ethernet)认证:

• 从窄带技术演化而来,PPP最早就是专门为电话线上网而设计的,当宽带普及后,为了兼容以前的电话线用户习惯,故在宽带网络中继承了PPP技术;

• 当客户端要通过PPPoE上网时,它必须首先进行发现阶段以识别对端的以太网MAC地址,并建立一个PPPoE ID,这样才能成功建立一个会话,从而访问网络资源。

4、IPoE认证:

• 又称DHCP+认证,使用DHCP配合其他技术实现认证,如DHCP+OPTION扩展字段进行认证;

• IPoE认证基于上网用户的物理位置(唯一的VLAN ID/PVC ID)对用户进行认证和计费,用户上网时无需输入用户名和密码。

在企业办公网场景中最常用到的就是802.1X认证和Portal认证。本文将对802.1X认证技术和Portal认证技术进行详细讲解。

 

 

802.1X认证技术详解

 

802.1X认证系统构成

如图1所示,802.1X认证系统由恳请者、认证者、认证服务器三个角色构成。在实际应用中,三者分别对应为:客户端(Client)、网络接入控制设备(Network Access Server,NAS)、RADIUS Server。

 


▲图1:802.1X认证系统构成

 

• 恳请者

恳请者是客户端所扮演的角色;
它请求对网络的访问,并对认证者的请求报文进行应答;
恳请者必须运行符合802.1X客户端标准的软件(目前各操作系统均已集成支持)。

• 认证者

认证者在客户端与认证服务器之间,一般是交换机、AP等接入设备;

认证者设备也称为NAS,它要负责把从客户端收到的认证信息封装成RADIUS格式的报文并转发给RADIUS Server,同时要把从RADIUS Server收到的信息进行解析后转发给客户端;

认证者设备有两种类型的端口:受控端口(Controlled Port)和非受控端口(Uncontrolled Port):

• 连接在受控端口的用户只有通过认证才能访问网络资源;

• 连接在非受控端口的用户无须经过认证便可以直接访问网络资源。非受控端口主要是用来连接认证服务器,以便保证服务器与设备的正常通讯。

• 认证服务器

认证服务器通常为RADIUS服务器,和认证者配合完成认证;

认证服务器保存了用户名和密码,以及相应的授权信息;

一台服务器可以对多台认证者提供认证服务,这样就可以实现对用户的集中管理。

 

802.1X认证状态机

认证通过前(非授权状态)

 

▲图2:认证通过前的端口状态

 

如图2,端口未认证,受控端口开路,只允许EAPOL(Extensible Authentication Protocol over LAN)报文和广播报文(DHCP,ARP)通过端口,不允许其它业务流通过。

• 认证通过后(授权状态)

 

▲图3:认证通过后的端口状态


如图3,认证通过后,受控端口闭合,用户的业务流可以顺利通过。

• 认证状态的保持

认证者可以定时要求客户端重新认证,时间可配置,重新认证的过程对用户是无感知的,即用户不需要重新输入密码。

• 下线方式

1)   物理端口Down——拔插网线、关机、断开Wi-Fi等;

2)   重新认证不通过或超时;

3)   用户主动下线;

4)   网管强制下线。

 

802.1X认证基础协议

 

▲图4:设备间的报文交互

 

如图4,客户端和认证者之间用EAPoL格式封装EAP协议传送认证信息;认证者与认证服务器之间通过RADIUS协议传送信息。

• EAPoL协议

802.1x协议定义了一种报文封装格式,这种报文称为EAPoL(EAP over LANs局域网上的扩展认证协议)报文,主要用于在客户端和认证系统之间传送EAP协议报文,以允许EAP协议报文在LAN上传送。

 


▲图5:EAPoL报文格式


EAPoL报文格式如图5,下面将对报文各字段进行解释:

● PAE(Port Access Entity)Ethernet Type:2字节,表示协议类型,为0x888E;

● Protocol Version:1字节,表示EAPOL帧的发送方所支持的协议版本号;

● Type:1字节,表示EAPoL数据帧类型,具体类型如图6所示;

 


▲图6:EAPoL数据帧类型

 

● Length:2字节,表示数据长度,也就是“Packet Body”字段的长度,单位为字节。如果为0,则表示没有后面的数据域;

• EAPoL-Start和EAPoL-Logoff报文的Length值都为0

● Packet Body:表示数据内容,根据不同的Type有不同的格式。

• EAP协议

当EAPoL数据帧格式Type域为EAP-Packet时,Packet Body为EAP数据报文。

 


▲图7:EAP报文格式

 

EAP报文格式如图7,下面将对报文各字段进行解释:

●Code:一个字节,指明EAP包的类型,共有4种,定义如下:

1--------Request

2--------Response

3--------Success

4--------Failure

由于该字段值只定义了1到4,如果EAP报文的该字段为其它值,则应被认证者和客户端丢弃;

● Identifier:一个字节,用于应答报文和请求报文之间进行匹配;

● Length:两个字节,EAP包的长度,包含Code、Identifier、Length和Data域,单位为字节;

● Data:EAP数据包内容,长度为零个或多个字节,由Code类型决定。Request和Response类型报文的Data域格式如图8所示:

 


▲图8:Request/Response Data域格式

 

Type:1个字节,标识EAP的认证类型,Type字段目前定义的值及其简要说明如下:

• Type=1 ----Identifier(用来询问对端的身份)

• Type=2 ----Notification(非必须的一个消息,传送一些警告消息,比如提示密码将要超期、OTP的顺序号码接近零以及认证失败的警告等)

• Type=3 ----Nak (Response Only)(Request报文中的认证类型不可接受时回复该类型的报文)

• Type=4 ----MD5-Challenge(类似于CHAP中的MD5-Challenge,使用MD5算法)

• Type=5 ----One-Time Password (OTP,一种密码交互的方式)

• Type=6 ----Generic Token Card(通用令牌卡类型,适用于各种需要用户输入信息的令牌卡的实现)

• Type=254 ----Expanded Types(供厂商支持自己的扩展类型)

Type=255 ----Experimental use(在实验新的类型时使用)

Type Data:该字段的内容由Type字段的值决定。

• RADIUS协议

RADIUS是AAA(Authentication、Authorization、Accounting)协议的一个实现,RADIUS协议规定了NAS与RADIUS服务器之间如何传递用户信息和记账信息,RADIUS服务器负责接收用户的连接请求,完成验证,并把传递服务给用户所需的配置信息返回给NAS。

 


▲图9:RADIUS报文格式


RADIUS报文格式如图9,下面将对报文各字段进行解释:

● Code:代指数据包的编号,标识了该数据包是什么类型的,如果是未知类型的数据包就会被默认丢弃,目前大致有以下几种常用编号:

1----Access-Request(接入请求,认证用)

2----Access-Accept (同意接入,认证用)

3----Access-Reject (拒绝接入,认证用)

4----Accounting-Request(计费请求,计费用)

5----Accounting-Response (计费响应,计费用)

11----Access-Challenge (接入挑战,认证用)

● Identifier:RADIUS报文标识;

● Length:RADIUS报文长度;

● Authenticator:用于RADIUS Client 和Server之间消息认证的有效性,和密码隐藏算法。

• 在Access-Request数据包中,Authenticator的值是16字节随机数,被称为请求认证器,认证字的值要不能被预测并且在一个共享密钥的生命期内唯一;

• 在Access-Accept、Access-Reject和Access-Challenge数据包中的Authenticator被称为响应认证器,值定义为MD5(Code + ID + Length + RequestAuth + Attributes + Secret)。

● Attributes:存储用户的信息,如用户名,IP地址等。

 

802.1X认证流程详解

802.1X认证过程如图10:

 


▲图10:802.1X认证过程

 

1. 当用户访问网络时打开(Windows自带客户端可自动打开)802.1x客户端程序,根据提示输入已经在RADIUS服务器中创建的用户名和密码,发起连接请求,此时,客户端程序将向设备端发出认证请求帧(EAPoL-Start),启动认证过程;

2. NAS收到该报文后,发送一个EAP-Request报文响应客户端的认证请求,要求用户提供用户名信息;

3. 客户端收到EAP-Request之后响应一个EAP-Response报文,将用户名封装在EAP报文中发给NAS;

4. NAS将客户端送来的EAP-Request报文与自己的设备IP、端口等相关信息一起封装在RADIUS Access-Request报文中发给认证服务;

5. 认证服务器收到RADIUS Access-Request报文后进行验证,如果该用户的相关信息有效,则对该用户发起一次认证挑战(RADIUS Access-Challenge),要求用户提供密码;

6. NAS收到这条RADIUS Access-Challenge报文后,将挑战请求用EAP-Challenge Request转发给客户端;

7. 客户端接到挑战请求后,将用户密码进行MD5加密处理,并封装在EAP-Challenge Response中返回给NAS;

8. NAS将用户的EAP-Challenge Response封装为RADIUS Access-Request报文转发给认证服务器;

9. 认证服务器对用户的密码进行验证,如果验证失败,服务器将返回一条RADIUS Access-Reject报文,拒绝用户的认证请求;如果验证通过,则发送一条RADIUS Access-Accept报文给交换机;

10. NAS在接到认证服务器发来的RADIUS Access-Accept之后,解除对客户端的访问控制,同时发送一条EAP-Success报文给客户端通知其认证已经成功;

11. NAS向认证服务器发送一条RADIUS Accounting-Request(Start)报文,申请对该用户进行记账;

12. 认证服务器接到请求后开始记账,并向NAS返回一条RADIUS Accounting-Response报文,告知记账操作已经开始;

13. 用户下线时,客户端向NAS发送一条EAPoL-Logoff报文,申请下线;

14. NAS向认证服务器发送RADIUS Accounting-Request(Stop)请求,申请对该用户停止记账;

15. 认证服务器收到请求后停止记账,同时响应一条RADIUS Accounting-Response报文;

16. NAS发送一条EAPoL Failure消息给客户端提示下线成功,并打开对该用户的访问控制。

 

 

Portal认证技术详解

Portal认证,以其轻量、易部署等特点,受到很多企业用户的欢迎。Portal认证业务可以为管理者提供方便的管理功能,如要求所有用户在门户网站进行认证,门户网站可以开展企业个性化信息推广业务等,为信息传播提供一个良好的载体。

 

Portal认证系统构成

 

▲图11:Portal认证系统

 

• Client

认证客户端,通常是一个浏览器,运行HTTP协议,用户通过浏览器上网时浏览器将发出HTTP请求。

• NAS

在网络拓扑中一般是接入层设备,和用户终端设备直接相连;
在NAS上需要启动Portal认证功能,NAS接收Portal Server发过来的用户认证信息,并向RADIUS Server发起认证请求,根据认证结果设置用户是否可以上网,同时向Portal Server反馈认证结果。

• Portal 服务器

提供Portal认证页面,和NAS交互认证客户端的认证信息;
Portal 服务器向客户端推送认证页面,用户在认证页面上填入帐号、密码等信息,提交到Portal服务器,Portal服务器提取其中的账号信息,并将此信息发送到NAS,同时根据NAS反馈的认证结果,通过页面反馈给用户;
Portal服务器可分为内置Portal服务器和外置Portal服务器两种。

• 通常交换机/AC会内置Portal服务器。受限于接入设备存储空间、功能和性能,内置Portal服务器只适合功能简单、接入人数少的场景;

• 如果需要实现微信接入、短信接入等复杂的功能,考虑到接入设备性能和认证体验,需要具有独立于接入设备之外的硬件服务器来承载Portal认证业务。

• RADIUS服务器

与NAS进行交互,提供基于RADIUS协议的用户认证,从而完成对用户的认证、计费和授权。

 

Portal认证状态机

• 认证通过前

客户端通过手动配置或DHCP获取的一个公网IP进行认证,通过认证前用户的所有HTTP请求都重定向(利用的是HTTP协议中的302报文的特性)到Portal服务器。

• 认证通过后

接入设备会打开端口,允许用户访问被管理员授权的互联网资源。

• 认证状态的保持

客户端和Portal 服务器定时发送心跳报文交互,对于客户端来说,4个心跳报文没有收到答复,就认为自己已经下线,重新发起认证;对于Portal服务器,在指定的时间内没有收到心跳报文,就认为用户下线,并通知接入设备将用户下线。但在实际应用中,以锐捷的交换机(交换机做NAS)为例,如果在一定时间内没有收到流量即认为用户下线。

• 下线方式

1)   物理端口Down——拔插网线、关机、断开Wi-Fi等;

2)   重新认证不通过或超时;

3)   用户主动下线;

4)   网管强制下线。

 

Portal认证基础协议

• Portal协议

Portal协议是一种私有协议,承载于TCP上。Portal协议目前有两个版本:Portal v1.0和Portal v2.0,v2.0协议是对原有v1.0协议存在的漏洞和不合理处进行部分完善:

1.   修改了报文格式,在AttrNum字段之后增加了16个字节的Authenticator字段;

2.   增加对所有协议报文的校验,包括上线流程、下线流程和查询流程;

3.   修改了TextInfo属性,使其完全符合TLV【Tag(标签),Length(长度),Value(值)】格式。

若v1.0与v2.0有冲突的地方,目前均以v2.0版本为准。

 


▲图12:Portal报文格式

 

Portal报文如图12,下面将对各字段进行解释:

● Ver:协议的版本号,长度为 1 字节,Ver = 0x01或0x02;

● Type:定义报文的类型,长度为 1 字节;

● Pap/Chap :Pap/Chap字段定义此用户的认证方式,长度为 1 字节,只对Type值为 0x03 的认证请求报文有意义:

• Chap方式认证---值为0x00

• Pap  方式认证---值为0x01

● Rsv:Rsv目前为保留字段,长度为 1 字节,在所有报文中值为 0;

● SerialNo:报文的序列号,长度为 2 字节,由PortalServer随机生成,该字段作用主要用于区别同类型但不同认证流程中的报文;

● ReqID:2个字节,由认证设备随机生成,该字段作用主要用于区别同类型但不同认证流程中的报文,该字段对于PAP认证无意义,在Chap认证中,该字段低8位作为Chap_Password 生成过程中MD5函数的输入;

● UserIP:Portal用户的IP地址,长度为 4 字节,其值由PortalServer根据其获得的IP地址填写,在所有的报文中此字段都要有具体的值;

● UserPort:该字段目前没有用到,长度为 2 字节,在所有报文中其值为0;

● ErrCode:该字段和Type字段一起表示一定的意义,长度为 1字节,各组合意义如下表:

 


▲表1: ErrCode值表
说明:其中type类型为9、10的两个报文其ErrCode的定义为v2.0新增定义。

 

● AttrNum:表示其后边可变长度的属性字段属性的个数,长度为 1 字节,即最多可携带属性255个属性。

 

Portal认证流程详解

Portal认证流程如下:

 


▲图13:Portal认证流程

 

1. 用户通过标准的DHCP协议获取到规划的IP地址;

2. 用户打开IE,访问某个网站,发起HTTP请求;

3. NAS截获用户的HTTP请求,由于用户没有认证过,就强制到Portal服务器;

4. Portal服务器向用户终端推送Web认证页面;

5. 用户在认证页面上填入帐号、密码等信息,提交到Portal服务器;

6. Portal服务器将接收到的用户认证信息发给NAS;

7. NAS向RADIUS服务器发起RADIUS认证;

8. RADIUS服务器根据用户信息判断用户是否合法,向NAS返回认证结果报文;

9. NAS返回认证结果给Portal服务器;

10. Portal服务器根据认证结果,推送认证结果页面;

11. Portal服务器回应NAS收到认证结果报文,如果认证失败,则流程到此结束;

12. 认证如果成功,NAS发起计费开始请求给RADIUS服务器;

13. RADIUS服务器回应计费开始响应报文,并将响应信息返回给NAS,用户上线完毕,开始上网;

14. 在用户上网过程中,为了保护用户计费信息,每隔一段时间NAS就向RADIUS服务器发送记账更新报文;

15. RADIUS服务器回应实时计费确认报文给NAS。


总 结

本文对802.1X 和Portal 认证进行了工作原理和认证流程的详细阐述。简单的说,802.1X认证的最终目的,就是确定一个端口(物理端口或Wi-Fi连接)是否能被放通,从而实现对接入实体的管控。对于一个端口,如果认证成功就打开这个端口,并提供网络服务;如果认证失败就使这个端口保持关闭,不提供网络服务。Portal认证的本质其实和802.1X一样,都是基于认证结果判断接口是否可用。相对于802.1X认证来说,Portal更轻量化,无需安装客户端软件,浏览器即可完成认证。同时,由于Portal服务器和用户浏览器有页面交互,用户可以根据实际需求对认证页面进行定制,将认证主页建设为企业网内部员工信息发布平台。

值得注意的是,现在很多认证方案都是基于这两种认证的,比如双因子认证(用户名密码+短信验证码)、无感知认证(802.1X+MAC或Portal+MAC)、证书认证(802.1X+证书或Portal+证书)、OTP认证(802.1X+随机验证码或Portal+随机验证码)等。此外,还能通过认证获得不同的访问权限。我们可以根据实际需求应用不同的认证方案,关于这些扩展技术方案的实现方式,我们将会在后续的文章中和大家分享。

 

 


本期作者:李莹
锐捷网络互联网系统部行业咨询

 

往期精彩回顾  

相关推荐:

点赞

任何需要,请联系我们

返回顶部

请选择服务项目
关闭咨询页
售前咨询 售前咨询
售前咨询
售后服务 售后服务
售后服务
意见反馈 意见反馈
意见反馈
更多联系方式
是否找到您想要的内容?
您遇到了什么问题?
找不到想要的信息
筛选功能不好用
加载速度太慢
页面体验差
提交
您是否找到了与产品相关的文档
筛选功能是否帮助您更快找到所需的文档?
有帮助
一般
没有帮助
没用过
请问您遇到了什么问题?
需要填写的内容太多
有些信息不懂怎么填
页面有问题/错误
其他
确定
这些客户案例是否对您有帮助?
非常有帮助
比较有帮助
没有帮助
请您对这个客户案例进行评价
兴趣度
相关性
可信度
确定
感谢您的反馈!
感谢您的反馈!