- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
蓝海卓越WEB认证(WEB PORTAL)原理及组网方式精选
蓝海卓越WEB认证(WEB PORTAL)原理及组网方式
Portal认证方式具有:不需要安装认证客户端, 减少客户端的维护工作量、;便于运营,可以在Portal页面上开展业务拓展、 技术成熟等优点而被广泛应用于运营商、学校等网络。
以下是部分源代码和说明.
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的
蓝海卓越
文档评论(0)