logo资料库

portal协议标准v2.0.docx

第1页 / 共21页
第2页 / 共21页
第3页 / 共21页
第4页 / 共21页
第5页 / 共21页
第6页 / 共21页
第7页 / 共21页
第8页 / 共21页
资料共21页,剩余部分请下载后查看
1 范围
2 术语和定义
3 概述
4协议
4.1报文格式
4.2报文字段说明
Ver
Type
Pap/Chap
Rsv
SerialNo
ReqID
UserIP
UserPort
ErrCode
AttrNum
Authenticator
报文属性字段(Attr)的格式
5流程和相关说明
5.1Chap认证方式上线流程
Chap认证流程(每一步都正确的情况下)(图 5-1)
Chap认证流程(请求Challenge失败或被拒绝的情况下)(图 5-2 )
Chap认证流程(请求Challenge没有响应的情况下)(图 5-3)
Chap认证流程(认证结果为失败或被拒绝的情况下)(图 5-4)
Chap认证流程(请求认证没有响应的情况下)(图5-5)
5.2 Pap认证方式上线流程
Pap认证流程(每一步都正确的情况下)(图 5-6)
Pap认证流程(认证失败或被拒绝的情况下)(图 5-7)
Pap认证流程(请求认证没有响应的情况下)(图 5-8)
5.3下线流程
下线成功的流程(图 5-9)
下线失败或被拒绝的流程(图5-10)
下线没有响应流程(图 5-11)
5.4信息询问流程(无论成功还是失败,参见图5-12)
5.5下线通知流程(BAS通知Portal Server)
6其他说明
6.1关于TextInfo属性的使用
6.2协议的兼容性
6.3协议的不完善之处
6.4协议其他说明
Q/DKBA 华为技术有限公司企业技术标准 Q/DKBAXXXX-2001 华为公司宽带产品Portal协议标准 第2部分:Portal标准V2.0 2001-XX-XX发布 2001-XX-XX实施 华 为 技 术 有 限 公 司发布
Q/DKBAXXXX-2001 密级:机密 目 次 1 范围 2 术语和定义 3 概述 4协议 4.1报文格式 4.2报文字段说明 4.2.1Ver 4.2.2Type 4.2.3Pap/Chap 4.2.4Rsv 4.2.5SerialNo 4.2.6ReqID 4.2.7UserIP 4.2.8UserPort 4.2.9ErrCode 4.2.10AttrNum 4.2.11 Authenticator 4.2.12报文属性字段(Attr)的格式 5流程和相关说明 5.1信息询问流程(无论成功还是失败) 5.2下线通知流程(BAS通知Portal Server) 6其他说明 6.1关于TextInfo属性的使用 6.2协议的兼容性 6.3协议的不完善之处 2005-3-10, 10:32:13 2 4 4 4 4 4 4 5 5 5 6 6 6 6 6 6 6 6 7 9 9 10 11 11 11 11
Q/DKBAXXXX-2001 密级:机密 前 言 本标准由宽带联合系统部提出。 本标准主要起草部门:宽带联合系统部,MA5200产品组,ESR产品组,iNet产品组 本标准主要解释部门:宽带总体组 本标准主要起草人:杨宏杰、周和秘、乔明 本标准主要审核人:卢朝晖、胡鹏 本标准批准人: 2005-3-10, 10:32:13 3
Q/DKBAXXXX-2001 密级:机密 华为公司宽带产品Portal协议标准V2.0 1 范围 本标准规定了华为公司宽带产品所采用的Portal协议标准。 本标准适用于华为公司具备Portal特性的宽带设备,包括服务器端设备(如:iTellin、iNet IP Hotel系统等)以及BAS端设备(如:ESR、MA5200等) 特别的:对于服务器端设备(如:iTellin、iNet IP Hotel系统等)必须同时支持V1.0与V2.0 协议,对于BAS端设备(如:ESR、MA5200等)以V2.0为标准。 2 术语和定义 Portal —— 门户业务 Web认证 —— 通过Web方式进行用户认证 认证Client —— 本文中使用的概念,表示协议中发起认证请求的一方,可以为Portal Server或 任何发起认证的客户机。在不会引起混淆的情况下,简称为Client 认证Server —— 本文中使用的概念,表示协议中接受认证请求的一方,例如BAS设备。 在不 会引起混淆的情况下,简称为Server BAS ——Broad Access Server 宽带接入设备 3 概述 本文档主要分两部分,一部分描述了PortalServer和BAS设备之间的通信协议,令一部分(附 录)提出了对PortalServer 的Web服务器相关配置和网页设计的一些规定。 PortalServer和BAS设备之间的协议规定了采用Portal认证(或Web认证)时PortalServer和BAS 设备之间的报文格式和通信流程,协议支持PAP和CHAP两种认证方式,对可能出现的各种情况的认 证流程分别做了详细的规定。 Portal V2.0协议是对原有V1.0协议存在的漏洞和不合理之处进行部分完善,增加了用于对协 议报文进行验证的字段Authenticator。 对于V1.0与V2.0相互冲突之处,一律以V2.0为准。 4 协议 4.1 报文格式 协议包采用固定长度头加可变长度的属性字段组成,属性字段采用TLV格式。为了增加对协议 报文的校验,扩充报文格式如下(图 4-1): 2005-3-10, 10:32:13 4
Q/DKBAXXXX-2001 密级:机密 Ver Type PAP/ chap Rsvd SerialNo ReqID UserIP UserPort ErrCode AttrNum Authenticator Authenticator( cont ) Attr ... ... 4.2 报文字段说明 Ver 图4-1 增加报文校验之后的Portal协议报文格式 Ver字段是协议的版本号,长度为 1 字节,Ver = 0x02。之所以对Version进行升级,是因为 对Version 1做了如下的扩充:  修改了报文格式,在AttrNum字段之后增加了16个字节的Authenticator字段。  增加对所有协议报文的校验,包括上线流程、下线流程和查询流程。  修改了TextInfo属性,使其完全符合TLV格式(version 1曾经出现过不完全符合TLV格式的 软件实现版本),不再区分其内容的语言,并且约定:BAS本地产生的提示信息不上报到Portal Server。 Type Type字段定义报文的类型,长度为 1 字节。该版本兼容原协议的全部命令字,同时新增类型 为0x08,0x09,0x0a三个命令字: Type REQ_CHALLENGE 值 0x01 方向 含义 Client --> Server Portal Server向BAS发送 的Challenge请求报文 ACK_CHALLENGE 0x02 Server --> Client BAS对Portal Server请求 Challenge报文的响应报 文 REQ_AUTH 0x03 Client --> Server Portal Server向BAS发送 的认证请求报文 ACK_AUTH 0x04 Server --> Client BAS对Portal Server认证 请求的响应报文 REQ_LOGOUT 0x05 Client --> Server Portal Server向BAS发送 的下线请求报文 2005-3-10, 10:32:13 5
Q/DKBAXXXX-2001 密级:机密 Type ACK_LOGOUT 值 0x06 方向 含义 Server --> Client BAS对Portal Server下线 请求的响应报文 AFF_ACK_AUTH 0x07 Client --> Server Portal Server向BAS发送 的 NTF_LOGOUT REQ_INFO ACK_INFO 0x08 0x09 0x0a Server --> Client 用户被强制下线通知报文 Client --> Server 信息询问报文 Server --> Client 信息询问的应答报文 Pap/Chap 与原协议一致。 表1 协议支持的命令字 Pap/Chap字段定义此用户的认证方式,长度为 1 字节,只对Type值为 0x03 的认证请求报文 有意义: Chap方式认证---值为0x00; Pap 方式认证---值为0x01;  把Pap/Chap放在协议报文的目前位置,使得整个报文不太协调。但是考虑到现实的原因,目 前不对该字段进行任何更改。 Rsv 与原协议一致。 Rsv目前为保留字段,长度为 1 字节,在所有报文中值为 0; SerialNo 与原协议一致。 (1)、SerialNo字段为报文的序列号,长度为 2 字节,由PortalServer随机生成,Portal Server 必须尽量保证不同认证流程的SerialNo在一定时间内不得重复,在同一个认证流程中所有报文的 SerialNo相同; (2)、PortalServer发给BAS设备的报文 a、由Portal Server发出的Type值为1、3的请求报文其SerialNo都是随机生成数; b、由PortalServer向BAS设备发出的Type值为5的报文其SerialNo值分两中情况:当ErrCode为 0时,SerialNo值为一个随机生成数;当ErrCode为1时,SerialNo值可能和Type值为1或3的报文相 同,具体要看是请求Challenge超时还是请求认证超时; c、由PortalServer向BAS设备发出的认证成功确认报文(Type值为7的报文)SerialNo和其发 出的相应请求报文的SerrialNo相同;比如对于Type值为7的报文其SerialNo值和Type值为3的请求 认证报文相同; (3)、每一个由BAS设备发给PortalServer的响应报文的SerialNo必须和Portal Server发送的 相应请求报文的SerialNo一样,否则PortalServer会丢掉从BAS设备发来的响应报文; 比如Type值 2005-3-10, 10:32:13 6
Q/DKBAXXXX-2001 密级:机密 为2的报文其SerialNo值必须和Type值为1的报文相同,Type值为4的报文其SerialNo值必须和Type 值为3的报文相同,Type值为6的报文其SerialNo值必须和Type值为5的报文相同。 ReqID 与原协议一致。 (1)、ReqID字段长度为 2 个字节,由BAS设备随机生成,尽量使得在一定时间内ReqID不重复。 (2)、在Chap认证方式中: a、BAS设备在Type为2的请求Challenge响应报文中把该ReqID的值告诉PortalServer; b、在Type值为3、4、7的报文中ReqID字段的值都和Type值为2的报文中此字段的值相同; c、在Type值为 5 的报文中,若报文表示请求Challenge超时则此字段值为0 ;若报文表示请 求认证超时则此字段值和Type值为2的报文中此字段的值相同; (3)、在Pap认证方式中,此字段无意义,其值为0; (4)、在Type值为 5 的报文中,若报文表示请求下线时则此字段值为0 ; (5)、在Type值为1、6的报文中,该字段均无意义,值都为0; UserIP 与原协议一致。 UserIP字段为Portal用户的IP地址,长度为 4 字节,其值由PortalServer根据其获得的IP地 址填写,在所有的报文中此字段都要有具体的值; UserPort 与原协议一致。 UserPort字段目前没有用到,长度为 2 字节,在所有报文中其值为0; ErrCode ErrCode字段和Type字段一起表示一定的意义,长度为 1字节。 对原协议支持的Type,ErrCode与原协议一致。具体如下: (1)、对于Type值为1、3、7的报文,ErrCode字段无意义,其值为0; (2)、当Type值为 2 时: ErrCode=0,表示BAS设备告诉PortalServer请求Challenge成功; ErrCode=1,表示BAS设备告诉PortalServer请求Challenge被拒绝; ErrCode=2,表示BAS设备告诉PortalServer此链接已建立; ErrCode=3,表示BAS设备告诉PortalServer有一个用户正在认证过程中,请稍后再试; ErrCode=4,则表示BAS设备告诉PortalServer此用户请求Challenge失败(发生错误); (3)、当Type值为 4 时: ErrCode=0,表示BAS设备告诉PortalServer此用户认证成功; ErrCode=1,表示BAS设备告诉PortalServer此用户认证请求被拒绝; ErrCode=2,表示BAS设备告诉PortalServer此链接已建立; 2005-3-10, 10:32:13 7
Q/DKBAXXXX-2001 密级:机密 ErrCode=3,表示BAS设备告诉PortalServer有一个用户正在认证过程中,请稍后再试; ErrCode=4 ,表示BAS设备告诉PortalServer此用户认证失败(发生错误); (4)、当Type值为 5 时: ErrCode=0,表示此报文是PortalServer发给BAS设备的请求下线报文; ErrCode=1,表示此报文是在PortalServer没有收到BAS设备发来的对各种请求的响应报文, 而定时器时间到(即超时)时由PortalServer发给BAS设备的报文; (5)、当Type值为 6 时: ErrCode=0,表示BAS设备告诉PortalServer此用户下线成功; ErrCode=1,表示BAS设备告诉PortalServer此用户下线被拒绝; ErrCode=2, 表示BAS设备告诉PortalServer此用户下线失败(发生错误); 对新增命令报文的ErrCode说明如下:  对Type为REQ_INFO时,ErrCode无意义,其值为0;  对Type为NTF_LOGOUT时,ErrCode含义如下: ErrCode 0 含义 下线  对Type为ACK_INFO时,ErrCode含义如下: ErrCode 含义 0 1 2 处理成功,但不表示全部消息都被获取了,有多少信息 被获得应通过属性来判断,详见下文 功能不支持,表示设备不支持这一功能 消息处理失败,由于某种不可知原因,使处理失败,例 如询问消息格式错误等。 AttrNum 与原协议一致。 AttrNum字段表示其后边可变长度的属性字段属性的个数,长度为 1 字节(表示属性字段最多 可有255个属性),其值在所有的报文中都要根据具体情况赋值; Authenticator 新增字段。 验证字的长度固定为16字节,网络字节顺序。其内容的计算在请求报文和响应报文中略有区别, 并且在验证字的计算时,将类型为7(AFF_ACK_AUTH)和类型为8(NTF_LOGOUT)的报文当作请求报 文,尽管这两种报文不是严格意义上的请求报文(严格的说,AFF_ACK_AUTH更像是响应报文)。验 证字的计算是通过MD5算法实现的,其中报文的各个字段以及BAS和Portal Server之间的共享密钥 secret都参与了计算。以下分别介绍请求报文的验证字和响应报文的验证字。 1. 请求报文的验证字(Request Authenticator): 2005-3-10, 10:32:13 8
分享到:
收藏