中国移动WLAN业务PORTAL协议规范NEW.docx
《中国移动WLAN业务PORTAL协议规范NEW.docx》由会员分享,可在线阅读,更多相关《中国移动WLAN业务PORTAL协议规范NEW.docx(19页珍藏版)》请在冰点文库上搜索。
中国移动WLAN业务PORTAL协议规范NEW
QB-╳╳-╳╳╳-╳╳╳╳
中国移动通信企业标准
中国移动WLAN业务PORTAL协议规范
CMCCWLANServicePortalProtocol
版本号:
2.0.0
目次
前言
本文制定了中国移动WLAN业务Portal规范和协议。
主要包括Portal协议,系统结构,上线流程,下线流程,报文字段,参数等内容。
该规范和协议是中国移动开展WLAN业务采用WEB认证及强制门户网站时遵循的标准。
本标准由中国移动通信集团公司技术部提出并归口。
本标准起草单位:
中国移动通信集团公司研发中心。
本标准主要起草人:
吕志虎,黄宇红,周文辉
本标准解释单位:
中国移动通信集团公司技术部。
1范围
本文制定了中国移动WLAN业务Portal规范和协议。
主要包括Portal协议,系统结构,上线流程,下线流程,报文字段,参数等内容。
该规范和协议是中国移动开展WLAN业务采用强制门户网站时遵循的标准。
该规范和协议是中国移动开展WLAN业务采用强制门户网站时遵循的标准。
2参考标准和协议
[1]IEEEStd.802.11,1999Edition[ISO/IEC8802-11:
1999],StandardsforLocalandMetropolitanAreaNetworks-WirelessLANMediumAccessControl(MAC)andPhysicalLayer(PHY)Specifications.
[2]IEEEStd.802.11b,1999Edition[ISO/IEC8802-11:
1999],StandardsforLocalandMetropolitanAreaNetworks-Part11:
WirelessLANMediumAccessControl(MAC)andPhysicalLayer(PHY)Specifications:
High-SpeedPhysicallayerExtensioninthe2.4GHzBand.
[3]IEEEP802.11f,2001,RecommendedPracticesforMulti-VendorAccessPointInteroperabilityviaInter-AccessPointProtocolacrossDistributionSystemssupportingIEEEP802.11operation.
[4]IEEE802.11i,2001,StandardsforLocalandMetropolitanAreaNetworks-Specificrequirements-Part11:
WirelessLANMediumAccessControl(MAC)andPhysicalLayer(PHY)specifications:
MediumAccessMethod(MAC)SecurityEnhancements.
[5]IETFRFC2865,RemoteAuthenticationDialInUserService(RADIUS),C.Rigney,S.Willens,A.Rubens,W.Simpson,June2000.
[6]IETFRFC2866,RADIUSAccounting,C.Rigney,June2000.
[7]IETFRFC2869,RADIUSExtension,C.Rigney,W.Willats,P.Calhoun,June2000.
[8]RFC2131,DynamicHostConfigurationProtocol.R.Droms.March1997.
[9]RFC2132,DHCPOptionsandBOOTPVendorExtensions.S.Alexander,R.Droms.March1997.
[10]RFC1945,HypertextTransferProtocol--HTTP/1.0.T.Berners-Lee,R.Fielding,H.Frystyk.May1996.
[11]RFC2616,HypertextTransferProtocol--HTTP/1.1.R.Fielding,J.Gettys,J.Mogul,H.Frystyk,L.Masinter,P.Leach,T.Berners-Lee.June1999.
[12]RFC2246,TheTLSProtocolVersion1.0.T.Dierks,C.Allen.January1999.
[13]中国移动WLAN业务总体技术要求
3缩略语
APAccessPoint
ACAccessController
DHCPDynamicHostConfigurationProtocol
DNSDomainNameService
HTTPHyperTextTransportProtocol
NAINetworkAccessIdentifier
RADIUSRemoteAuthenticationDialInUserService
WLANWirelessLocalAreaNetwork
AAAAuthentication,Authorization,Accounting
SSLSecureSocketsLayer
CHAPChallengeHandshakeAuthenticationProtocol
4Portal协议
4.1功能定义
1.认证功能
用户通过PortalServer完成认证功能。
2.下线功能
用户上网结束后,可以使用Portal功能通知AC用户下线;当AC侦测用户下线或者主动切断用户连接时,也能告知Portal。
3.查询功能
用户可以查询上行流量,下行流量。
4.2系统结构
系统结果如图4.1所示。
图4.1系统结构
AP:
接入点。
AC:
接入控制器。
实现用户强制Portal、业务控制,接收PortalServer发起的认证请求,完成用户认证功能。
PortalServer:
门户网站。
推送认证页面,接收WLAN用户的认证信息,向AC发起用户认证请求。
以及用户下线通知。
5流程
用户认证流程包括认证上线流程、下线流程和用户信息查询流程。
5.1用户上线认证流程
上线流程完成用户账号的认证,并把认证结果通知PortalServer,Portalserver将会通知WLAN用户并且显示相应的认证结果。
用户上线认证方式有两种:
CHAP和PAP,其中CHAP方式为必选功能,PAP方式为可选功能。
用户上线Chap认证流程,如图5.1所示:
图5.1用户上线Chap认证流程
1.用户访问网站,经过AC重定向到PortalServer,PortalServer推送认证页面;
2.用户填入用户名、密码,提交页面,向PortalServer发起连接请求;
3.PortalServer向AC请求Challenge;
4.AC分配Challenge给PortalServer;
5.PortalServer向AC发起认证请求;
6.而后AC进行RADIUS认证,获得RADIUS认证结果;
7.AC向PortalServer送认证结果;
8.PortalServer将认证结果填入页面,和门户网站一起推送给客户;
9.PortalServer回应确认收到认证结果的报文。
用户上线Pap认证流程,如图5.2所示:
图5.2用户上线Pap认证流程
1.用户访问网站,经过AC重定向到PortalServer,PortalServer推送认证页面;
2.用户填入用户名、密码,提交页面,向PortalServer发起连接请求;
3.PortalServer向AC发起认证请求;
4.而后AC进行RADIUS认证,获得RADIUS认证结果;
5.AC向PortalServer送认证结果;
6.PortalServer将认证结果填入页面,和门户网站一起推送给客户;
PortalServer回应确认收到认证结果的报文。
5.2用户下线流程
用户下线流程包括用户主动发起下线流程,和用户异常下线流程:
AC侦测到用户下线,主动通知Portalserver。
用户主动下线流程,如图5.3所示:
图5.3用户主动下线流程
1.用户发起下线请求到PortalServer;
2.PortalServer向AC请求下线;
3.AC回应PortalServer下线请求;
4.PortalServer推送下线结果页面给用户。
用户异常下线流程:
AC侦测用户下线流程,主动通知Portalserver。
如图5.4所示:
图5.4AC侦测用户下线流程
1.AC侦测到用户下线,向PortalServer请求下线;
2.PortalServer回应下线成功;
6协议
在AC和PortalServer之间通过Portal协议交互。
6.1协议栈
Portal协议栈如下图6.1所示:
图6.1Portal协议栈
6.2报文格式
协议包采用固定长度头加可变长度的属性字段组成,属性字段采用TLV格式,具体如图6.2所示。
图6.2Web认证报文格式
6.3报文字段说明
Ver
Ver字段是协议的版本号,长度为1字节,目前定义的值为0x01;
Type
Type字段定义报文的类型,长度为1字节,目前其值的定义如表6.1。
表6.1认证报文类型
Type
值
方向
含义
REQ_CHALLENGE
0x01
Client----->Server
PortalServer向AC设备发送的请求Challeng报文
ACK_CHALLENGE
0x02
Client<-----Server
AC设备对PortalServer请求Challeng报文的响应报文
REQ_AUTH
0x03
Client----->Server
PortalServer向AC设备发送的请求认证报文
ACK_AUTH
0x04
Client<-----Server
AC设备对PortalServer请求认证报文的响应报文
REQ_LOGOUT
0x05
Client----->Server
若ErrCode字段值为0x00,表示此报文是PortalServer向AC设备发送的请求用户下线报文;若ErrCode字段值为0x01,表示该报文是PortalServer发送的超时报文,其原因是PortalServer发出的各种请求在规定时间内没有收到响应报文。
ACK_LOGOUT
0x06
Client<-----Server
AC设备对PortalServer请求下线报文的响应报文
AFF_ACK_AUTH
0x07
Client----->Server
PortalServer对收到的认证成功响应报文的确认报文;
NTF_LOGOUT
0x08
Server-->Client
用户被强制下线通知报文
REQ_INFO
0x09
Client-->Server
信息询问报文
ACK_INFO
0x0a
Server-->Client
信息询问的应答报文
Pap/Chap
Pap/Chap字段定义此用户的认证方式,长度为1字节,只对Type值为0x03的认证请求报文有意义:
Chap方式认证---值为0x00;
Pap方式认证---值为0x01;
Rsv
Rsv目前为保留字段,长度为1字节,在所有报文中值为0;
SerialNo
(1)、SerialNo字段为报文的序列号,长度为2字节,由PortalServer随机生成,PortalServer必须尽量保证不同认证流程的SerialNo在一定时间内不得重复,在同一个认证流程中所有报文的SerialNo相同;
(2)、PortalServer发给AC设备的报文
a、由PortalServer发出的Type值为1、3的请求报文其SerialNo都是随机生成数;
b、由PortalServer向AC设备发出的Type值为5的(REQ_LOGOUT)报文其SerialNo值分两中情况:
当ErrCode为0时(请求用户下线报文),SerialNo值为一个随机生成数;当ErrCode为1时,SerialNo值可能和Type值为1或3的报文(请求Challenge超时,或请求认证超时)相同,具体要看是请求Challenge超时还是请求认证超时;
c、由PortalServer向AC设备发出的认证成功确认报文(Type值为7的报文)SerialNo和其发出的相应请求报文的SerrialNo相同;比如对于Type值为7的报文其SerialNo值和Type值为3的请求认证报文相同;
(3)、每一个由AC设备发给PortalServer的响应报文的SerialNo必须和PortalServer发送的相应请求报文的SerialNo一样,否则PortalServer会丢掉从AC设备发来的响应报文;比如Type值为2的报文其SerialNo值必须和Type值为1的报文相同,Type值为4的报文其SerialNo值必须和Type值为3的报文相同,Type值为6的报文其SerialNo值必须和Type值为5的报文相同。
ReqID
(1)、ReqID字段长度为2个字节,由AC设备随机生成,尽量使得在一定时间内ReqID不重复。
(2)、在Chap认证方式中:
a、AC设备在Type为2(ACK-CHALLENGE)的请求Challenge响应报文中把该ReqID的值告诉PortalServer;
b、在Type值为3、4、7(REQ-AUTH,ACK-AUTH,AFF-ACK-AUTH)的报文中ReqID字段的值都和Type值为2的报文中此字段的值相同;
c、在Type值为5(REQ-LOGOUT)的报文中,若报文表示请求Challenge超时则此字段值为0;若报文表示请求认证超时则此字段值和Type值为2(ACK-CHALLENGE)的报文中此字段的值相同;
(3)、在Pap认证方式中,此字段无意义,其值为0;
(4)、在Type值为5(REQ-LOGOUT)的报文中,若报文表示请求下线时则此字段值为0;
(5)、在Type值为1、6(REQ-CHALLENGE,ACK-LOGOUT)的报文中,该字段均无意义,值都为0;
UserIP
UserIP字段为Portal用户的IP地址,长度为4字节,其值由PortalServer根据其获得的IP地址填写,在所有的报文中此字段都要有具体的值;
UserPort
UserPort字段目前没有用到,长度为2字节,在所有报文中其值为0;
ErrCode
ErrCode字段和Type字段一起表示一定的意义,长度为1字节,具体如下:
(1)、对于Type值为1、3、7的报文,ErrCode字段无意义,其值为0;
(2)、当Type值为2时:
ErrCode=0,表示AC设备告诉PortalServer请求Challenge成功;
ErrCode=1,表示AC设备告诉PortalServer请求Challenge被拒绝;
ErrCode=2,表示AC设备告诉PortalServer此链接已建立;
ErrCode=3,表示AC设备告诉PortalServer有一个用户正在认证过程中,请稍后再试;
ErrCode=4,则表示AC设备告诉PortalServer此用户请求Challenge失败(发生错误);
(3)、当Type值为4时:
ErrCode=0,表示AC设备告诉PortalServer此用户认证成功;
ErrCode=1,表示AC设备告诉PortalServer此用户认证请求被拒绝;
ErrCode=2,表示AC设备告诉PortalServer此链接已建立;
ErrCode=3,表示AC设备告诉PortalServer有一个用户正在认证过程中,请稍后再试;
ErrCode=4,表示AC设备告诉PortalServer此用户认证失败(发生错误);
(4)、当Type值为5时:
ErrCode=0,表示此报文是PortalServer发给AC设备的请求下线报文;
ErrCode=1,表示此报文是在PortalServer没有收到AC设备发来的对各种请求的响应报文,而定时器时间到(即超时)时由PortalServer发给AC设备的报文;
(5)、当Type值为6时:
ErrCode=0,表示AC设备告诉PortalServer此用户下线成功;
ErrCode=1,表示AC设备告诉PortalServer此用户下线被拒绝;
ErrCode=2,表示AC设备告诉PortalServer此用户下线失败(发生错误);
(6)、对Type为REQ_INFO时,ErrCode无意义,其值为0;
(7)、对Type为NTF_LOGOUT时,ErrCode含义如下:
ErrCode
含义
0
下线
(8)、对Type为ACK_INFO时,ErrCode含义如下:
ErrCode
含义
0
处理成功,但不表示全部消息都被获取了,有多少信息被获得应通过属性来判断,详见下文
1
功能不支持,表示设备不支持这一功能
2
消息处理失败,由于某种不可知原因,使处理失败,例如询问消息格式错误等。
AttrNum
AttrNum字段表示其后边可变长度的属性字段属性的个数,长度为1字节(表示属性字段最多可有255个属性),其值在所有的报文中都要根据具体情况赋值;
报文属性字段(Attr)的格式
Attr字段(属性字段)是一个可变长字段,由多个属性依次链接而成,每个属性的格式为TLV格式,具体如图6.3。
图6.3属性字段的格式
报文属性字段说明如下:
(1)、属性类型(AttrType)
表6.2属性字段的定义
Attr(属性字段)
AttrType
属性值长度
属性含义
UserName
0x01
<=32(可变)
用户名,具体为:
“用户名”+“@”+“域名”
PassWord
0x02
<=16(可变)
用户提交的明文密码
Challenge
0x03
16(固定)
Chap方式加密的魔术字
ChapPassWord
0x04
16(固定)
经过Chap方式加密后的密码
(2)、属性长度(AttrLen)
AttrLen字段表示属性的长度,长度为1字节,其值是整个属性三个字段AttrType、AttrLen、AttrValue的长度之和。
(3)、属性值(AttrValue)
AttrValue的值为具体的属性值,比如用户名、口令等,长度有些可变,有些固定(具体见表6.2),但最长不能超过253(255-2)字节。
6.4参数
1、此协议规定承载报文的是UDP协议,也即报文为UDP报文,AC设备在固定端口2000(参照《BNAS宽带接入服务器技术规范-YD1148》修订)上等待接收PortalServer发来的各种请求报文和确认报文;
2、PORTAL强制相关参数
当AC实现强制PORTAL功能时,要求在强制PORTALURL中包含以下参数:
参数名称
参数取值
参数说明
认证模式
作用阶段
举例
wlanuserip
十进制的字符串格式
网段在前,主机在后
WLAN用户的私网地址,是认证Portal与AC之间判别WLAN用户的身份识别码
WEB
重定向认证页面请求时
wlanuserip=10.1.2.34
wlanusername
IMSI@SIM格式的字符串格式
WLAN用户的用户名
SIM
重定向门户网站页面请求时
wlanusername=IMSI@SIM
wlanacname
十进制的字符串格式
wlanacname=ACN.CTY.PRO.OPE,属性名为严格小写,属性值为按照下列规定的AC名称。
⏹统一规定全国AC的编码,其编码规则为ACN.CTY.PRO.OPE,其中:
aACN表示AC的名字,由4位数字组成,各省自己规划和分配。
bCTY表示WLAN位于的城市,由4位数字组成,由各个地市的长途区号表示,右对齐左填零。
cPRO表示WLAN位于的省份,由3位数字组成,PRO的代码分配参见附表。
OPE表示WLAN所属的运营商,由2位数字组成,中国移动为00。
WEB
重定向认证页面请求时
wlanacip=ACN.CTY.
PRO.OPE
具体参数格式示例如下:
?
wlanuserip=10.1.2.34&wlanacname=ACN.CTY.PRO.OPE
?
wlanusername=IMSI@SIM
允许在”?
”后面有其他的参数,但是名称不能以wlan作为起始。
3、Chap认证的相关说明:
(1)、challenge的生成(AC生成):
challenge由AC设备在收到请求Challenge报文的时候随机生成,长度为16个字节,跟随Challenge应答报文下发到PortalServer。
(2)、Chap_Password(Chap密码)的生成:
Chap_Password的生成遵循标准的Radious协议中的Chap_Password生成方法(参见RFC2865)。
密码加密使用MD5算法,MD5函数的输入为
ChapID+Password+Challenge(ReqID有AC生成,ChapID是ReqID的低8位)
其中,ChapID取ReqID的低8位,Password的长度不够协议规定的最大长度,其后不需要补零。
Chap_Password=MD5(ChapID+Password+Challenge)
4、无论采用Chap认证还是Pap认证,都允许用户口令为空;
5、当用户向PortalServer提交的连接请求里用户名为空时,PortalServer在向AC设备发送认证请求时应用一个缺省的用户名代替(比如***);
6、认证流程中各种报文所带属性的个数(建议):
(1)、请求Challenge报文:
0个属性;
(2)、对请求Challenge响应的报文:
若请求Challenge成功则为1个属性—Challenge属性,若请求Challenge失