TR069 Http Digest 验证流程

来源:互联网 发布:域名备案掉了怎么办 编辑:程序博客网 时间:2024/06/06 10:01
1流程及流程图

1.1盒端主动发起Http Digest认证流程







机顶盒(CPE)通过HTTP Digest Authentication发起与终端管理系统(ACS)的认证连接,连接方式遵循RFC 2617的规定。

机顶盒连接终端管理系统的地址由Device.ManagementServer.URL参数提供。

机顶盒主动想终端管理系统发起一个HTTP 连接请求,终端管理系统会要求进行HTTP Digest Authentication认证。并按照RFC2671规范,盒端和盒端管理系统在之后的请求和应答时信息均带有认证头信息。

认证中的用户名、密码为Device.ManagementServer.Username Device.ManagementServer.Password

l终端管理系统地址(ACS地址)在出厂时和快速放装时进行统一配置。

详细交互流程:

1.盒端(CPE)首先发起不带Digest 验证头的sendInform请求报文,内容如下:

图片
 
图片
 
 

2.盒端管理系统(ACS)收到上述报文后,发现没有认证消息(带有Authorization:标识的报文),然后发送401错误报文:

图片

3.盒端(cpe)收到报文后,经过分析得到报文错误为401,代码中通过分析报文中是否有WWW-Authenticate:  Digest 字段,如果有,那么将其中的realm,nonce,opaque,qop的值存储下来,并将程序中的Http Digest认证参数:DaEnabled置为true,使发送下一个回复报文之前初始化Http Digest认证插件。通过函数:http_da_post_header,(本地配置的realm必须与收到的realm一致否则验证不能通过)将本地文件配置的realm和从盒端管理系统(ACS)收到的nonce,opaque,qop等值通过函数http_da_calc_HA1,生成一个唯一的字符串并存入response字段,并将这些信息组合到报文的头部,最后发送给ACS的报文为:

图片

4.盒端管理系统(ACS)收到上述报文后,确认其Authorization:字段,并且Authorization:段中的response的值正确,那么认证通过,并发送回复报文:

图片

5.盒端(CPE)收到回复报文后,分析为认证通过报文后,发送一个inform内容为空的确认报文:——其实就是个空报文

图片

  6.到此认证结束

      1.2盒端管理系统主动发起的连接流程

图片

1.在盒端管理系统主动发起对盒端的连接请求之前,通过心跳,已获得盒端的连接地址。

2.盒端在收到UDP请求后,应主动返回相应数据包。

3.盒端与盒端管理系统进行交互后,由盒端作为客户端打开TCP连接,进行正常的PRC交换,并在Inform方法的EventCode代码中填写6CONNECTION REQUEST

4.打开连接,建立HTTP摘要认证链接其交互过程与盒端发起的主动连接请求相同

2盒端(CPE)发送Inform报文函数流程

0 0
原创粉丝点击