portal认证系统服务器原理及应用

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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访问网页,BAS为该用户构造对应表项信息(基于端口号、IP),添加用户ACL服务策略(让用户只能访问portal server和一些内部服务器,个别外部服务器如DNS),并将用户访问其他地址的请求强制重定向到强制Web认证服务器进行访问。表现的结果就是用户连接上但不认证的情况下,只能访问指定的页面,浏览指定页面上的广告、新闻等免费信息。

(3)Portal server向用户提供认证页面,在该页面中,用户输入帐号和口令,并单击"log in"按钮,也可不输入由帐号和口令,直接单击"Log in"按钮;

(4)该按钮启动portal server上的Java程序,该程序将用户信息(IP地址,帐号和口令)送给网络中心设备BAS;

(5)BAS利用IP地址得到用户的二层地址、物理端口号(如Vlan ID, ADSL PVC ID,PPP session ID),利用这些信息,对用户的合法性进行检查,如果用户输入了帐号,使用用户输入的帐号和口令

相关文档
最新文档