TR069之CPE与ACS的Digest验证

本文介绍了TR069协议中CPE与ACS的Digest认证过程,包括环境配置、easyCWMP与GenieACS的安装,以及ACS端和CPE端发起的认证流程。文中通过实验记录了遇到的问题及解决方案,适合初学者了解TR069的基本操作。
摘要由CSDN通过智能技术生成

前言:通过了解CPE与ACS的验证过程,可以初步认识TR069的一些规则。本文只是在实验中的一点经验记录,并未对协议有深入讲解,某些观点可能存在纰漏。仅适用于刚接触TR069的筒子。

环境

系统:Ubuntu14.04LTS
CPE:easyCWMP
ACS:GenieACS

*其他开源ACS:
openACS:早已停止维护,源码也被作者删除了。目前有一个openACS的官网,此openACS非彼openACS,大家注意了.
freeACS:安装很方便,脚本一键安装,可自行浏览官网。
GenieACS:我知道最新的开源ACS,目前仍在维护。文档全面,推荐用这个来搭建测试服务器。*

easyCWMP安装

官方文档写的算是很详细了,95%的步骤没问题。这里只提一下按照官方文档可能会出错的几个地方:
libubox在make时,报错

blobmsg_json.c:78:2 error: implicit declaration of function 'is_error'
jshn.c:162:2: error: implicit declaration of function 'is_error'

解决办法:在对应的文件加入以下代码:

#define is_error(ptr) (ptr == NULL)

一共有2-3个文件有这个问题,都按上面添加。

运行easycwmp时报错

error while loading shared libraries: libjson-c.so.3: cannot open shared object file: No such file or directory

解决办法:执行如下命令

ln -sf /usr/local/lib/libjson-c.so.3.0.0 /usr/lib/libjson-c.so.3

GenieACS安装

GenieACS的文档很是详细,这里不赘述安装过程了,参见官网文档吧,注意文档中的版本,避免各种版本不兼容的问题。

认证流程

TR069的认证规则有多种,本文只描述了Digest认证过程。Digest认证既可以从CPE端发起,也可以从ACS端发起,下面我们会分开讨论,但有一些公用的步骤,我们先在这里说明。
GenieACS与CPE的通信默认是建立在非加密的连接上的,在实际使用时,我们肯定是要用一些手段的。因为TR069上层使用http协议的,我们很容易想到要使用https,这就需要证书了。本文是实验性质,肯定是要自己动手制作一个证书的,执行如下命令即可(确保已安装openssl)

openssl genrsa 1024 > key.pem
openssl req -new -x509 -key key.pem > cert.pem

最简单的步骤了,证书有效期30天。
此段内容参考GenieACS文档
注意:Component Name 填写GenieACS所在PC的IP吧。

ACS端发起的Digest认证

认证流程如下:

CPE                                              ACS

1.<------------------http(不带auth头信息)-------------

2.------------------ 401 Unauthorized---------------->

3.<------------------http get(带auth头信息)-----------

4.------------------200 OK--------------------------->

5.<-----------------100 continue----------------------

6.------------------6 connect request---------------->

7.<------------------200 OK---------------------------

GenieACS文档传送门
用GenieACS来测试ACS发起的Digest认证比较简单。在GenieACS安装根目录的config文件夹下,有一个auth-sample.js文件:

+++ RECEIVED HTTP REQUEST +++
http_digest_auth_fail_response(336):: http_digest_auth_fail_response: header: Digest realm="realm@easycwmp",qop="auth",nonce="1057d42b5253defd585d849e59e803f70001b083",opaque="328458fab28345ae87ab3210a8513b14eff452a2"--- RECEIVED HTTP REQUEST ---
+++ HTTP SERVER CONNECTION FAILED +++
+++ RECEIVED HTTP REQUEST +++
http_digest_auth_check(379):: http_digest_auth_check: header: username="easycwmp",realm="realm@easycwmp",nonce="1057d42b5253defd585d849e59e803f70001b083",uri="/",qop=auth,nc=00000001,cnonce="0a4f113b",response="4055d3c9d9284a0ec0e1340065414342",opaque="328458fab28345ae87ab3210a8513b14eff452a2"
--- RECEIVED HTTP REQUEST ---
+++ HTTP SERVER CONNECTION SUCCESS +++
2018-05-03 15:37:04 [easycwmp] NOTICE - acs initiated connection
2018-05-03 15:37:04 [easycwmp] NOTICE - add event '6 CONNECTION REQUEST'
2018-05-03 15:37:04 [easycwmp] NOTICE - start session
+++ HTTP CLIENT CONFIGURATION +++
http_client_init(51):: url: https://10.10.2.226:7547
http_client_init(53):: ssl_cert: /home/zzj/OpenWRT/genicacs/genieacs-gui/config/cert.pem
http_client_init(55):: ssl_cacert: /home/zzj/OpenWRT/genicacs/genieacs-gui/config/cert.pem
--- HTTP CLIENT CONFIGURATION ---
2018-05-03 15:37:04 [easycwmp] NOTICE - configured acs url https://
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenWRT是一种基于Linux的开源嵌入式操作系统,常用于路由器等网络设备中。TR069是一种用于远程管理和配置设备的协议。在OpenWRT中,CPE(Customer Premises Equipment)和ACS(Auto Configuration Server)之间的通信是通过TR069协议实现的。 CPEACS之间的通信需要进行认证,其中包括Digest认证过程。在这个过程中,CPEACS之间首先建立一个非加密的连接,然后可以选择使用https来进行加密通信。为了使用https,需要生成一个证书。在OpenWRT中,可以使用openssl来生成证书,具体的步骤如下: 1. 执行以下命令生成私钥文件key.pem: ``` openssl genrsa 1024 > key.pem ``` 2. 执行以下命令生成证书文件cert.pem: ``` openssl req -new -x509 -key key.pem > cert.pem ``` 这样,就生成了一个用于https通信的证书。接下来,CPEACS就可以通过TR069协议进行通信,实现远程管理和配置设备的功能。在选择ACS时,可以考虑使用GenieACS,因为它是一个开源的ACS,目前仍在维护,并且有全面的文档支持。 请注意,以上提到的是OpenWRT中使用TR069协议进行CPEACS之间通信的基本步骤和一些选项,具体的配置和细节可能会根据具体情况有所不同。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [TR069CPEACSDigest验证](https://blog.csdn.net/zzj000/article/details/80182992)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值