맨위로가기

TR-069

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

TR-069는 CPE(Customer-premises equipment, 고객 구내 설비)를 원격으로 관리하기 위한 통신 프로토콜이다. 장치와 자동 구성 서버(ACS) 간의 HTTP 또는 HTTPS를 통해 텍스트 기반 명령을 전송하며, 서비스 활성화 및 재구성, 원격 가입자 지원, 펌웨어 및 구성 관리, 진단 및 모니터링 등의 기능을 제공한다. 장치의 매개변수를 설정하고 검색하여 설정을 관리하며, 데이터 모델은 장치 제조업체와 모델에 관계없이 공통적으로 적용된다. 보안 취약점으로 인해 악용될 수 있으며, 이를 해결하기 위한 오픈 소스 프로젝트가 존재한다.

더 읽어볼만한 페이지

  • 인터넷 표준 - DNSSEC
    DNSSEC는 DNS의 보안 취약점을 개선하기 위해 도메인 정보에 디지털 서명을 추가하여 응답 레코드의 무결성을 보장하고 DNS 위장 공격을 막는 기술로, RRSIG, DNSKEY 등 다양한 리소스 레코드 유형을 사용하여 인증 체인을 구성하며 공개 키 암호 방식을 활용한다.
  • 인터넷 표준 - IPv6
    IPv6는 IPv4 주소 고갈 문제를 해결하고자 개발된 차세대 인터넷 프로토콜로, 128비트 주소 체계를 통해 사실상 무한대에 가까운 IP 주소를 제공하며, 주소 자동 설정, 패킷 처리 효율성 향상, 보안 기능 강화 등의 특징을 갖는다.
TR-069
일반 정보
약칭CWMP
정식 명칭CPE WAN 관리 프로토콜
종류기술 표준
분야원격 모니터링 및 관리
발표 기관Broadband Forum
웹사이트Broadband Forum TR-069
개발 및 발표
최초 발표일2004년 5월
최신 버전Amendment 6 Corrigendum 1
최신 버전 발표일2020년 6월
관련 표준
관련 표준TR-069 Amendment 4 (2011년 7월)
TR-069 Amendment 5 (2013년 11월)

2. 통신

CWMP(CPE WAN 관리 프로토콜)는 텍스트 기반 프로토콜로, 장치(CPE)와 자동 구성 서버(ACS) 간의 통신은 HTTP 또는 HTTPS를 통해 이루어진다. 이때 CPE는 클라이언트, ACS는 서버 역할을 하며, 프로비저닝 세션 흐름은 전적으로 장치가 제어한다.

CWMP 개요

2. 1. 전송

CWMP는 텍스트 기반 프로토콜이다. 장치(CPE)와 자동 구성 서버(ACS) 간에 전송되는 명령은 HTTP(Hypertext Transfer Protocol|하이퍼텍스트 전송 프로토콜영어)를 통해 전송된다. (더 자주 HTTPS를 이용한다.) 이 수준(HTTP)에서 CPE는 클라이언트 역할을 하고 ACS는 HTTP 서버 역할을 한다. 이는 본질적으로 ''프로비저닝 세션''의 흐름에 대한 제어가 장치(CPE)의 전적인 책임임을 의미한다.

2. 2. 구성 매개변수

장치가 서버에 연결하려면 먼저 특정 매개변수를 구성해야 한다. 여기에는 장치가 연결하려는 서버의 ACS URL과 장치가 프로비저닝 세션을 시작하는 간격(''PeriodicInformInterval'')이 포함된다. 또한 보안상의 이유로 인증이 필요한 경우 사용자 이름 및 암호와 같은 데이터가 제공되어야 한다.[3]

2. 3. 프로비저닝 세션

모든 통신 및 작업은 프로비저닝 세션 내에서 수행된다. 세션은 항상 장치(CPE)가 'Inform' 메시지를 전송하여 시작한다. 서버가 이를 수신하고 세션 준비가 되었음을 'InformResponse' 메시지로 알리면, 세션 초기화 단계가 완료된다. 이후 두 단계의 순서는 'HoldRequests' 플래그 값에 따라 달라진다. 'false'이면 장치 요청 전송이 먼저, 그렇지 않으면 ACS 명령이 먼저 전송된다. 다음 설명은 'false' 값을 가정한다.

두 번째 단계에서는 장치에서 ACS로 명령이 전송된다. 프로토콜에는 여러 메서드가 정의되어 있지만, 일반적으로는 이전에 요청된 다운로드 또는 업로드 완료를 ACS에 알리는 'TransferComplete' 메서드 하나만 사용된다. 이 단계는 ACS로의 '빈 HTTP-요청' 전송으로 마무리된다.

세 번째 단계에서는 CWMP 레벨에서 역할이 변경된다. 장치의 '빈 HTTP-요청'에 대한 HTTP 응답에는 ACS의 CWMP 요청이 포함된다. 이후 이전 CWMP 요청에 대한 CWMP 응답을 포함하는 HTTP 요청이 이어진다. 여러 명령이 순차적으로 전송될 수 있다. 이 단계(및 전체 프로비저닝 세션)는 더 이상 보류 중인 명령이 없음을 나타내는 ACS의 '빈 HTTP 응답'으로 종료된다.

2. 3. 1. 세션 트리거

특정 이벤트는 프로비저닝 세션을 트리거한다. 여기에는 다음이 포함된다.

  • 부트스트랩 - 장치가 처음 서버에 연결될 때, 서버 URL이 변경되었을 때, 또는 장치 설정이 기본값으로 재설정되었을 때
  • 주기적 - 장치가 ''PeriodicInformInterval'' 설정에 따라 주기적인 세션을 수행하도록 예약됨
  • 연결 요청 - 장치가 서버의 연결 요청에 응답함
  • 값 변경 - 모니터링 중인 매개변수의 값이 변경됨
  • 부팅 - 장치가 재설정되거나 전원이 손실된 후 다시 연결되었을 때
  • 예약됨 - 장치가 이전에 ''ScheduleInform'' 명령을 통해 추가 세션을 초기화하도록 서버에서 지시했을 때
  • 전송 완료 - 장치가 서버에서 요청한 파일 다운로드 또는 업로드를 완료한 후
  • 진단 완료 - 장치가 진단을 완료하면[3]

2. 3. 2. 보안 및 인증

CWMP를 통해 사용자 이름 및 암호 등 중요한 데이터가 CPE로 전송될 수 있으므로, 안전한 전송 채널을 제공하고 항상 ACS에 대해 CPE를 인증하는 것이 필수적이다. ACS ID의 보안 전송 및 인증은 HTTPS를 사용하고 ACS 인증서를 확인하여 쉽게 제공할 수 있다. CPE 인증은 더 까다롭다. 장치의 ID는 HTTP 수준에서 공유 비밀(암호)을 기반으로 확인된다. 암호는 각 프로비저닝 세션에서 당사자(CPE-ACS) 간에 협상될 수 있다. 장치가 처음으로 ACS에 연결하거나 공장 초기화 후에는 기본 암호가 사용된다. 대규모 네트워크에서는 각 장치가 고유한 자격 증명을 사용하고 해당 목록이 장치 자체와 함께 제공되며 보호되도록 하는 책임은 조달 부서에 있다.[1]

2. 4. 연결 요청

ACS는 연결 요청 메커니즘을 통해 장치에 세션 시작을 요청할 수 있으며, 이 메커니즘은 HTTP를 기반으로 한다. 장치(CPE)는 HTTP 서버 역할을 하며, ACS는 협상된 URL을 방문하고 HTTP 인증을 수행하여 장치로부터 연결을 요청한다. 공유 비밀은 프로비저닝 서버(ACS)에 대한 DDoS 공격에 CPE가 사용되는 것을 방지하기 위해 사전에 장치와 협상된다. 장치에서 확인을 전송한 후 프로비저닝 세션은 가능한 한 빨리, 확인 전송 후 30초 이내에 시작되어야 한다.

2. 4. 1. NAT를 통한 연결 요청

CWMP 프로토콜은 NAT (예: IP-폰, 셋톱 박스) 뒤에 연결된 장치에 도달하기 위한 메커니즘도 정의한다. STUN과 UDP NAT 트래버설을 기반으로 하는 이 메커니즘은 TR-069 부록 G (구 TR-111)에 정의되어 있다.

프로토콜 개정 5는 XMPP를 기반으로 하는 NAT를 통한 연결 요청 실행의 대체 방법을 도입했다(자세한 내용은 [http://www.broadband-forum.org/technical/download/TR-069_Amendment-5.pdf TR-069 개정 5]의 부록 K 참조).[1]

3. 데이터 모델

대부분의 설정 및 진단은 장치 매개변수의 값을 설정하고 검색하는 방식으로 수행된다. 이러한 매개변수는 잘 정의된 계층 구조로 구성되어 있다. 광대역 포럼은 데이터 모델 표준을 XML, PDF 두 가지 형식으로 게시한다. 지원되는 표준 및 확장은 장치 데이터 모델에 명확하게 표시되어야 한다.

3. 1. 데이터 모델 구조

매개변수는 모든 장치 모델 및 제조업체에 거의 공통적으로 적용되는 잘 정의된 계층 구조로 구성된다. 광대역 포럼은 데이터 모델 표준을 XML 및 PDF 파일 형식으로 게시한다. 지원되는 표준 및 확장은 장치 데이터 모델에 명확하게 표시되어야 한다. 이는 Device:1.0 및 InternetGatewayDevice:1.1부터는 Device.DeviceSummary 또는 InternetGatewayDevice.DeviceSummary 필드, Device:1.4 및 InternetGatewayDevice:1.6부터는 SupportedDatamodel 필드에 있어야 한다.

모델은 항상 'Device' 또는 'InternetGatewayDevice'라는 단일 키로 시작하며, 각 레벨에서 객체 및 매개변수(또는 배열 인스턴스)가 허용된다. 키는 '.' (점)을 구분 기호로 사용하여 객체와 매개변수의 이름을 연결하여 구성된다. (예: InternetGatewayDevice.Time.NTPServer1)

각 매개변수는 쓰기 가능 또는 쓰기 불가능으로 표시될 수 있으며, 이는 장치가 GetParameterNamesResponse 메시지로 보고한다. 매개변수에 적용 가능한 값, 해당 유형 및 의미도 표준에 의해 정의된다.

3. 2. 다중 인스턴스 객체

데이터 모델의 일부는 하위 트리의 여러 사본이 존재해야 하는 경우가 있는데, 포트 포워딩 테이블과 같이 테이블을 설명하는 경우가 그 예시이다. 배열을 나타내는 객체는 인스턴스 번호 또는 별칭 이름만 자식으로 갖는다.

다중 인스턴스 객체는 나타내는 내용에 따라 쓰기 가능 또는 읽기 전용일 수 있다. 쓰기 가능한 객체는 자식의 동적 생성 및 제거를 허용한다. 예를 들어, 객체가 이더넷 스위치의 4개의 물리적 포트를 나타내는 경우에는 데이터 모델에서 해당 포트를 추가하거나 제거할 수 없어야 한다. 인스턴스가 객체에 추가되면 식별자가 할당되며, 할당된 후에는 공장 초기화를 제외하고 장치의 수명 주기 동안 식별자를 변경할 수 없다.

3. 3. 일반적인 문제점

대부분의 장치는 표준을 완전히 준수하지 않는다. 가장 흔한 문제점으로는 파라미터 누락, 인스턴스 식별자 생략(단일 인스턴스만 존재하는 다중 인스턴스 객체의 경우), 잘못된 파라미터 접근 레벨, 정의된 유효값만 올바르게 사용하지 않는 경우 등이 있다.[1] 예를 들어, WLAN 프로토콜 지원 표준을 나타내는 필드의 경우, 'g' 값은 802.11b 및 802.11g를 지원해야 하며, 'g-only'는 802.11g만 지원해야 한다.[1] 'bg' 또는 'b/g'와 같은 값은 광대역 포럼(Broadband Forum) 표준에 따르면 유효하지 않지만, 장치 데이터 모델에서 매우 흔하게 발견된다.[1]

4. 일반적인 작업

전체 프로비저닝은 정의된 일련의 간단한 작업을 기반으로 구축된다. 각 명령은 원자적으로 간주되지만 트랜잭션 지원은 없다. 장치가 명령을 이행할 수 없는 경우 ACS에 적절한 오류가 반환되어야 한다. 장치는 프로비저닝 세션을 절대 중단해서는 안 된다.

메시지설명
GetParameterNames장치에서 지원되는 매개변수 목록을 검색한다.
GetParameterValues키로 식별된 매개변수의 현재 값을 검색한다. 이 호출의 변형은 개체를 키로 사용하며, 개체의 모든 매개변수를 검색한다.
SetParameterValues하나 이상의 매개변수 값을 설정한다.
GetParameterAttributes하나 이상의 매개변수 속성을 검색한다.
SetParameterAttributes하나 이상의 매개변수 속성을 설정한다.
DownloadURL로 지정된 파일을 다운로드하여 사용하도록 CPE에 명령한다. 파일 유형에는 펌웨어 이미지, 구성 파일, 벨소리 파일 등이 포함된다.
Upload지정된 대상으로 파일을 업로드하도록 CPE에 명령한다. 파일 유형에는 현재 구성 파일, 로그 파일 등이 포함된다.
AddObject객체에 새 인스턴스를 추가한다.
DeleteObject객체에서 인스턴스를 제거한다.



작업의 더 완벽한 목록과 프로토콜 분석은 [4]을 참조하십시오.

5. TR-069를 통한 상위 수준 작업

TR-069는 다음과 같은 상위 수준 작업을 지원한다.[1]


  • 서비스 활성화 및 재구성
  • 원격 가입자 지원
  • 펌웨어 및 구성 관리

5. 1. 서비스 활성화 및 재구성

TR-069는 제로 터치 또는 원 터치 구성 프로세스의 일부로 서비스 초기 구성을 지원한다. 또한, 장치 공장 초기화, 교체 후 서비스 재설정도 가능하다.[1]

5. 2. 원격 가입자 지원


  • * 장치 상태 및 기능 확인
  • * 수동 재구성[1]

5. 3. 펌웨어 및 구성 관리


  • 펌웨어 업그레이드/다운그레이드[1]
  • 구성 백업/복원[1]

5. 4. 진단 및 모니터링

TR-069 프로토콜은 다음과 같은 진단 및 모니터링 기능을 수행한다.

  • 처리량 및 연결 진단: TR-143 표준에 따라 네트워크 처리량을 측정하고 연결 문제를 진단한다.
  • 매개변수 값 검색: 장치의 다양한 설정 값을 원격으로 확인한다.
  • 로그 파일 검색: 장치에 저장된 로그 파일을 검색하여 문제 해결에 활용한다.

6. 보안

ISP ACS 또는 ACS와 고객 구내 설비(CPE) 간의 링크가 무단 주체에 의해 손상되면 서비스 제공업체의 전체 가입자 기반의 TR-069 지원 장치에 대한 접근 권한이 생길 수 있다. 고객 정보 및 장치 작동은 잠재적 공격자에게 제공되며, 여기에는 클라이언트 네트워크의 다른 MAC 주소도 포함된다. DNS 쿼리를 불법 DNS 서버로 은밀하게 리디렉션하는 것이 가능하며, 백도어 기능이 있는 비밀 펌웨어 업데이트도 가능하다.[5] TR-069 ACS 소프트웨어는 종종 안전하지 않게 구현되는 것으로 밝혀졌다.[6] TR-064(LAN 측 DSL CPE 구성)와 TR-069(CWMP)의 결합된 구현에서, 적절한 보호 없이 연결 요청에 대해 공용 인터넷을 통해 동일한 HTTP 엔드포인트를 재사용하는 결함이 여러 공급업체의 장치에서 발견되었으며, 미라이 기반 봇넷 및 기타 멀웨어에 의해 악용된다.[7][8]

7. 오픈소스

다음은 TR-069를 지원하는 오픈소스 프로젝트들이다.

프로젝트명설명
tr069
cpe
freeacs
openacs
osacs
EasyCwmpC/SHELL로 개발된 cwmp 클라이언트의 오픈 소스 구현


참조

[1] 웹사이트 CPE WAN Management Protocol http://www.broadband[...] Broadband Forum 2011-07
[2] 웹사이트 CPE WAN Management Protocol http://www.broadband[...] Broadband Forum 2013-11
[3] 웹사이트 Crash course in TR-069 (CWMP) https://www.avsystem[...] 2020-11-16
[4] 서적 2023 46th MIPRO ICT and Electronics Convention (MIPRO) 2023
[5] 뉴스 Many home routers supplied by ISPs can be compromised en masse, researchers say http://www.pcworld.c[...]
[6] 뉴스 Check Point's Malware and Vulnerability Research Group uncovered several flaws in solutions from ACS vendors http://www.friendly-[...]
[7] 웹사이트 Mirai attack on home routers and alleged TR-069 vulnerability https://www.qacafe.c[...] 2020-04-25
[8] 웹사이트 Practical ways to misuse a router http://blog.ptsecuri[...] 2017-06-16



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com