1、TR069 Http Digest 验证流程1 流程及流程图1.1 盒端主动发起 Http Digest 认证流程机顶盒(CPE)通过HTTP Digest Authentication发起与终端管理系统(ACS)的认证连接,连接方式遵循RFC 2617的规定。机顶盒连接终端管理系统的地址由Device.ManagementServer.URL参数提供。机顶盒主动想终端管理系统发起一个HTTP 连接请求,终端管理系统会要求进行HTTP Digest Authentication认证。并按照RFC2671规范,盒端和盒端管理系统在之后的请求和应答时信息均带有认证头信息。认证中的用户名、密码为De
2、vice.ManagementServer.Username 及Device.ManagementServer.Password终端管理系统地址(ACS 地址)在出厂时和快速放装时进行统一配置。 、详细交互流程:1. 盒端(CPE)首先发起不带Digest 验证头的sendInform请求报文,内容如下:POST /ACS HTTP/1.1Host: 192.168.1.176:7547User-Agent: gSOAP/2.7Content-Type: text/xml; charset=utf-8; action=“Content-Length: 3130Connection: keep-
3、aliveSOAPAction: “盒端 终端管理系统1.23.4.5.1TDeviceInfo2TDeviceInfo2 55. 盒端(CPE)收到回复报文后,分析为认证通过报文后,发送一个inform内容为空的确认报文:其实就是个空报文POST /ACS HTTP/1.1Host: 192.168.1.176:7547User-Agent: gSOAP/2.7Content-Type: text/xml; charset=utf-8; action=“Content-Length: 0Connection: keep-aliveAuthorization: Digest realm=“Mo
4、torola CWMP“, username=“1234“, nonce=“VHVlIE5vdiAyOCAxNDo0Nzo1MCAyMDA2MS4xLjEuMTI1“, uri=“/ACS“, nc=0000004a, cnonce=“3871a39cca5484ab7740“, response=“44b394bfa6f2fa749db660a6869c9db2“, opaque=“5ccc069c403ebaf9f0171e9517f40e41“, qop=“auth“SOAPAction: “6. 到此认证结束1.2 盒端管理系统主动发起的连接流程盒端 盒端管理系统H T T P D i
5、 g e s t A u t h e n t i c a t i o n打开连接U D PU D P 响应1. 在盒端管理系统主动发起对盒端的连接请求之前,通过心跳,已获得盒端的连接地址。2. 盒端在收到UDP请求后,应主动返回相应数据包。3. 盒端与盒端管理系统进行交互后,由盒端作为客户端打开TCP连接,进行正常的PRC交换,并在Inform方法的EventCode代码中填写6 CONNECTION REQUEST4. 打开连接,建立 HTTP 摘要认证链接(其交互过程与盒端发起的主动连接请求相同)2 盒端(CPE)发送 Inform 报文函数流程TAcsProxy:Inform()TGSoapWrapper:SendMessage()TGSoapWrapper:SendInform()falsetrueTAcsProxy:Authenticate()TGSoapWrapper:SendAuthentication()soap_send_cwmp_Inform ()soap_begin ()soap_connect ()soap_end_send ()TEventLoop:RunOnce()Bool DaEnabled