蓝海卓越WE认证(WEBPORTAL)原理及组网方式
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
蓝海卓越WEB认证(WEB PORTAL)原理及组网方式
Portal认证方式具有:不需要安装认证客户端,减少客户端的维护工作量、;便于运营,可以在Portal页面上开展业务拓展、技术成熟等优点而被广泛应用于运营商、学校等网络。
目前在公共场合也有很多的WIFI热点.WIFI本身不加密,但是当用户访问网络的时候,会要求用户输入用户名和密码.认证成功后就可以上网了.WEB认证的特点显而易见,就是不需要特殊的客户端,有浏览器就可以了.所以,手机也可以方面的使用.
下图是WEB认证的原理图(CHAP认证):
本文所要描述的就是PortalServer的原理与算法.
PortalServer 和BAS 之间的通讯遵循华为的PORTAL v1.0协议.以下是协议格式:
以下是部分源代码和说明.
typedef struct portal_header
{
u_int8_t ver; //版本,在本例中为1
u_int8_t type; //报文类型
u_int8_t auth_type; //认证类型,CHAP或者PHP,本文为CHAP协议
u_int8_t rsv; //保留字段,恒为零
u_int16_t sn; //序列号,用于关联报文用,在一定时间是不能重复的
u_int16_t reqid; //应答ID
u_int32_t userip; //用户的IP
u_int16_t userport; //用户端口,恒为零
u_int8_t errcode; //错误码,非常有用的字段
u_int8_t attrnum; //属性个数
}portal_header_t;
定义了PORTAL协议的协议头.如果属性个数不为零,那么后面将跟attrnum个属性.
以下是构造挑战报文的代码:
sn=(u_int16_t)(1+(int)(9098.0*rand()/(RAND_MAX+1.0))); //随机码
req_chap->ver=ver;
req_chap->type=REQ_CHALLENGE;
req_chap->auth_type=CHAP;
req_chap->rsv=0x00;
req_chap->sn=sn;
req_chap->reqid=0x00;;
req_chap->userip = in->s_addr; //客户的IP
req_chap->userport=0x0;
req_chap->errcode=0x0;
req_chap->attrnum=0x0;
当收到了type为0x02的报文,并且errcode=0x00时,说明挑战成功.接下来就可以发送认证请求报文了,以下是构造请求报文的代码:
(ra->header).ver = 0x01;
(ra->header).type=REQ_AUTH;
(ra->header).auth_type=CHAP;
(ra->header).rsv=0x00;
(ra->header).sn= //新的随机码
(ra->header).reqid = req_chap->reqid;
(ra->header).userip = req_chap->userip;
(ra->header).userport=0x0;
(ra->header).errcode=0x0;
(ra->header).attrnum=0x2;
这个请求报文带两个属性.关键的CHAP密码构造代码如下:
MD5_Init(&ctx);
MD5_Update(&ctx, &reqid, 1);
MD5_Update(&ctx, passwd, strlen(passwd));
MD5_Update(&ctx, challenge, 16);
MD5_Final(d3, &ctx);
如果收到CHAP应答报文,错误代码为零的话,就说明认证成功了.
本程序的使用命令如下:
cr ver protocol basip username password client_ip
ver 协议版本,本文只实现了V1
protocol CHAP 或者PAP ,本文只实现了CHAP,PAP实现起来更简单.
basip BAS的ip ,就是报文发送到的设备IP
username 从WEB过来的用户名
password 从WEB PORTAL 过来的密码
client_ip 客户的IP地址
蓝海卓越Web Portal的组网方式通常如下:
蓝海卓越Web Portal的基本认证过程为:
(1)用户连接到网络后,终端通过DHCP由BAS做DHCP-Relay,向DHCP Server要IP地址(私网或公网);(也可能由BAS直接做DHCP Server)。
(2)用户获取到地址后,可以通过IE访问网页,此时由AC向BAS发起认证请求,BAS为该用户构造对应表项信息(基于端口号、IP),添加用户ACL服务策略(让用户只能访问portal server和一些内部服务器,个别外部服务器如DNS),并将用户访问其他地址的请求强制重定向到强制Web认证服务器进行访问。表现的结果就是用户连接上但不认证的情况下,只能访问指定的页面,浏览指定页面上的广告、新闻等免费信息。
(3)Portal server通过AC向用户提供认证页面,在该页面中,用户输入帐号和口令,并单击"log in"按钮,也可不输入由帐号和口令,直接单击"Log in"按钮;
(4)该按钮启动portal server上的Java程序,该程序将用户信息(IP地址,帐号和口令)送给网络中心设备BAS;
(5)BAS利用IP地址得到用户的二层地址、物理端口号(如Vlan ID, ADSL PVC ID,PPP session ID),利用这些信息,对用户的合法性进行检查,如果用户输入了帐号,使用用户输入的帐号和口令到Radius server对用户进行认证,如果用户未输入帐号,则认为用户是固定用户,网络设备利用Vlan ID(或PVC ID)查用户表得到用户的帐号和口令,将帐号送到Radius server 进行认证;
(6)Radius Server返回认证结果给BAS;
(7)认证通过后,BAS修改该用户的ACL,用户可以访问外部因特网或特定的网络服务;BAS开始计费。
(8)用户离开网络前,连接到portal server上,单击"断开网络"按钮,系统停止计费,删除用户的ACL和转发信息,限制用户不能访问外部网络;
BRAS需要的配置:
(1) 配置Web Portal认证服务器(包括webportal的IP,端口号,密钥)
(2)配置认证前域(由于Web认证用户在未认证前属于非法用户,无法获取IP地址,也没有