蓝海卓越WEB(WEB PORTAL)原理及组网方式.docVIP

  • 4
  • 0
  • 约9.63千字
  • 约 6页
  • 2016-10-13 发布于贵州
  • 举报

蓝海卓越WEB(WEB PORTAL)原理及组网方式.doc

蓝海卓越WEB(WEB PORTAL)原理及组网方式

蓝海卓越WEB认证(WEB PORTAL)原理及组网方式 Portal认证方式具有:不需要安装认证客户端, 减少客户端的维护工作量、;便于运营,可以在Portal页面上开展业务拓展、 技术成熟等优点而被广泛应用于运营商、学校等网络。 本文所要描述的就是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 ,就是报文发

文档评论(0)

1亿VIP精品文档

相关文档