接入认证技术portal v1对接某设备记录

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。

转载自:https://www.ruijie.com.cn/jszl/83513/

posted @ 2024-04-20 23:01  codestacklinuxer  阅读(3)  评论(0编辑  收藏  举报