TR-069

TR-069

기술 보고서 069 (TR-069)는 인터넷 프로토콜(IP) 네트워크에 연결된 고객-프리미엄 장비(CPE)의 원격 관리 및 프로비저닝을 위한 애플리케이션 계층 프로토콜을 정의하는 광대역 포럼의 기술 사양이다. TR-069는 자동 구성, 소프트웨어 또는 펌웨어 이미지 관리, 소프트웨어 모듈 관리, 상태 및 성능 관리, 진단을 위한 지원 기능을 제공하는 CPE WAN 관리 프로토콜(CWMP)을 사용한다.

CPE WAN 관리 프로토콜은 양방향 SOAP 기반 및 HTTP 기반 프로토콜이며, CPE와 ACS(자동 구성 서버) 간의 통신을 제공한다. 이 프로토콜은 모뎀, 라우터, 게이트웨이와 같은 다양한 인터넷 액세스 장치뿐만 아니라 셋톱 박스, VoIP 전화와 같은 인터넷에 연결되는 최종 사용자 장치들의 증가하는 수를 다룬다.

TR-069는 2006년, 2007년, 2010년, 2011년 7월(버전 1.3),[1] 2013년 11월(버전 1.4 [2]am5)에 처음 발표되었다.

HGI(Home Gateway Initiative), DVB(Digital Video Broadcasting) 및 WiMAX Forum과 같은 기타 기술 이니셔티브는 주거용 네트워킹 장치와 단말기의 원격 관리를 위한 프로토콜로서 CWMP를 승인했다.

커뮤니케이션

운송

CWMP는 텍스트 기반 프로토콜이다. 장치(CPE)와 자동 구성 서버(ACS) 간에 전송된 주문은 HTTP(또는 더 자주 HTTPS)를 통해 전송된다. 이 수준(HTTP)에서 CPE는 클라이언트, ACS는 HTTP 서버 역할을 한다. 이는 기본적으로 프로비저닝 세션의 흐름에 대한 통제가 기기의 유일한 책임임을 의미한다.

Remote CPE Control via TR-069.svg

구성 매개 변수

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

프로비저닝 세션

모든 통신과 운영은 프로비저닝 세션의 범위에서 수행된다. 세션은 항상 기기(CPE)에 의해 시작되며, 정보 메시지의 전송으로 시작한다. 세션에 대한 서버의 수신 및 준비는 InformResponse 메시지로 표시된다. 이것으로 세션 초기화 단계가 종료된다. 다음 두 단계의 순서는 깃발 HoldRequests의 값에 따라 달라진다. 값이 false일 경우 초기화 단계는 기기 요청 전송이 뒤따르며 그렇지 않을 경우 ACS 명령이 먼저 전송된다. 다음 설명은 값이 거짓이라고 가정한다.

두 번째 단계에서는 명령이 장치에서 ACS로 전송된다. 프로토콜이 ACS의 장치에 의해 호출될 수 있는 여러 가지 방법을 정의하지만, 단 하나의 일반적인 방법인 TransferComplete - 이전에 발행된 Download 또는 Upload 요청에 의해 개시된 파일 전송의 완료를 ACS에 알리기 위해 사용된다. 이 단계는 비어 있는 HTTP 요청을 ACS로 전송함으로써 마무리된다.

세 번째 단계에서 역할은 CWMP 수준에서 변경된다. 장치에 의한 빈 HTTP 요청에 대한 HTTP-응답은 ACS의 CWMP-요청을 포함한다. 이후 이전 CWMP 요청에 대한 CWMP-반응을 포함하는 HTTP 요청이 이어진다. 여러 개의 주문이 하나 둘씩 전송될 수 있다. 이 단계(및 전체 프로비저닝 세션)는 더 이상 보류 인 주문이 없음을 나타내는 ACS의 빈 HTTP 응답에 의해 종료된다.

세션 트리거

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

  • 부트스트랩 – 장치가 서버에 처음 접속했을 때, 서버 URL이 변경되거나 장치 설정이 기본값으로 재설정됨.
  • 주기적 – 기기가 PeriodInformInterval 설정에 따라 정기 세션을 수행하도록 예약됨.
  • 연결 요청 – 장치가 서버의 연결 요청에 응답함
  • 값 변경 – 모니터링 중인 파라미터의 값이 변경됨;
  • 부팅 – 장치가 재설정되거나 전원이 끊겼다가 다시 연결된 후,
  • 예약됨 – 이전에 서버에서 ScheduleInform 명령을 사용하여 추가 세션을 초기화하도록 지시받은 경우
  • 전송 완료 – 서버에서 요청한 파일의 다운로드 또는 업로드가 완료된 후
  • 진단 완료 –[3] 장치 진단이 완료되면

보안 및 인증

중요 데이터(사용자 이름, 비밀번호 등)는 CWMP를 통해 CPE로 전송될 수 있으므로, 보안 전송 채널을 제공하고 항상 ACS에 대해 CPE를 인증하는 것이 필수적이다. ACS ID의 보안 전송 및 인증은 HTTPS의 사용과 ACS 인증서의 검증에 의해 쉽게 제공될 수 있다. CPE 인증은 더 문제다. HTTP 레벨에서 공유 비밀(암호)을 기반으로 기기의 정체성을 확인한다. 암호는 모든 프로비저닝 세션에서 당사자 간에 협상될 수 있다. 장치가 처음으로 ACS에 접속할 때(또는 출고 시 재설정 후) 기본 암호가 사용된다. 대형 네트워크에서는 각 장치가 고유한 자격 증명을 사용하고 있는지 확인하는 것이 조달의 책임이며, 장치 자체와 함께 목록이 전달되고 보안이 유지된다.[citation needed]

연결 요청

프로비저닝 세션 흐름의 초기화 및 제어는 기기의 단독 책임이지만, ACS가 장치에서 세션 시작을 요청할 수 있다. 접속 요청 메커니즘도 HTTP를 기반으로 한다. 이 경우 장치(CPE)는 HTTP-서버의 역할에 들어간다. ACS는 협상된 URL을 방문하여 HTTP 인증을 수행하여 기기에 연결을 요청한다. 또한 공유 비밀은 ACS(프로비저닝 서버)에 대한 DDoS 공격에 CPE를 사용하지 못하도록 사전에 장치와 협상(예: 이전 프로비저닝 세션)한다. 장치에 의해 확인이 전송된 후에는 가능한 한 빨리 그리고 확인 전송 후 30초 이내에 프로비저닝 세션을 시작해야 한다.

NAT을 통한 연결 요청

또한 CWMP 프로토콜은 NAT 뒤에 연결된 장치(예: IP-Phones, 셋톱 박스)에 도달하기 위한 메커니즘을 정의한다. STUN 및 UDP NAT 통과에 기반한 이 메커니즘은 문서 TR-069 부록 G(이전의 TR-111)에 정의되어 있다.

프로토콜의 수정안 5는 XMPP를 기반으로 NAT을 통한 연결 요청 실행의 대체 방법을 도입한다(자세한 내용은 TR-069 수정안 5의 부록 K 참조).

데이터 모델

대부분의 구성과 진단은 기기 매개변수 값 설정과 검색을 통해 수행된다. 이것들은 모든 기기 모델과 제조자에게 다소 공통적인 잘 정의된 계층 구조로 구성된다. 광대역 포럼은 데이터 모델 표준을 두 가지 형식으로 공개한다. 즉, 각 후속 데이터 모델의 세부 사양이 포함된 XML 파일과 버전 간 모든 변경 사항과 사람이 읽을 수 있는 세부 정보가 포함된 PDF 파일이다. 지원되는 표준과 확장은 기기 데이터 모델에 명확히 표시해야 한다. 이것은 Device 필드에 있어야 한다.장치요약 또는 InternetGatewayDevice.DeviceSummaryDevice:1.0InternetGatewayDevice:1.1에서 각각 시작해야 한다. 필드를 찾을 수 없는 경우 InternetGatewayDevice:1.0이 암시되어 있다. Device:1.4InternetGatewayDevice:1.6 새 필드('<RO')를 참조하십시오.지원되는 표준 사양에 대해 SupportedDatamodel)이 도입되었다.

모델은 항상 제조업체의 선택에 따라 Device 또는 InternetGatewayDevice라는 단일 키에 뿌리를 두고 있다. 구조물의 각 수준에서 매개변수(또는 배열 인스턴스)가 허용된다. 키는 '.'(점)을 구분자로 사용하여 개체와 매개 변수의 이름을 연결함으로써 생성된다. InternetGatewayDevice.시간.NTPServer1 .

각 매개변수는 쓰기 가능 또는 쓰기 불가능으로 표시할 수 있다. 이는 GetParameterNamesResponse 메시지에서 장치에 의해 보고된다. 장치는 읽기 전용으로 표시된 매개변수의 변경을 허용하지 않아야 한다. 데이터 모델 사양 및 확장은 대부분의 파라미터의 필수 상태를 명확하게 표시한다.

매개변수, 매개변수 유형 및 의미에 적용되는 값도 표준에 의해 정확하게 정의된다.

다중 인스턴스 객체

데이터 모델의 일부 부분에서는 하위 트리의 여러 복사본이 있어야 한다. 가장 좋은 예는 예를 들어 포트 포워딩 테이블과 같은 표를 설명하는 것이다. 배열을 나타내는 객체는 하위 항목으로 인스턴스 번호 또는 별칭 이름만 가질 수 있다.

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

일반적인 문제

매개변수 목록과 그 속성이 잘 정의되어 있음에도 불구하고 대부분의 장치는 표준을 완전히 따르지 않는다. 대부분의 일반적인 문제에는 누락된 매개 변수, 누락된 인스턴스 식별자(한 인스턴스만 존재하는 다중 인스턴스 개체의 경우), 잘못된 매개 변수 액세스 수준 및 정의된 유효한 값만 올바르게 사용하는 것이 포함된다. 예를 들어 WLAN 프로토콜의 지원 표준을 나타내는 필드의 경우 'g' 값은 802.11b 및 802.11g의 지원, 'g 전용' 지원은 802.11g의 지원만을 나타내야 한다. 'bg' 또는 'b/g'와 같은 값은 광대역 포럼 표준에 따라 합법적이지 않지만, 장치 데이터 모델에서 매우 일반적으로 발견된다.

공통작업

전체 프로비저닝은 정의된 단순 운영셋 위에 구축되며, 각 질서는 비록 거래에 대한 지원은 없지만 원자력으로 간주된다. 장치가 주문을 이행할 수 없는 경우 적절한 오류를 ACS로 반환해야 하며, 기기가 프로비저닝 세션을 중단해서는 안 된다.

메시지 설명
GetParameterNames 장치에서 지원되는 매개 변수 목록 검색
GetParameterValues 키로 식별된 매개 변수의 현재 값을 검색하십시오. 이 통화의 변형은 물체를 그 열쇠로 삼는다. 개체의 모든 매개 변수를 검색함
SetParameterValues 하나 이상의 매개 변수 값 설정
GetParameterAttributes 하나 이상의 매개 변수의 특성 검색
SetParameterAttributes 하나 이상의 매개 변수의 특성 설정
다운로드. CPE에 URL로 지정된 파일을 다운로드하여 사용하도록 주문하십시오. 파일 형식에는 펌웨어 이미지, 구성 파일, 링거 파일 등이 포함된다.
업로드 CPE에서 지정된 대상에 파일을 업로드하도록 주문하십시오. 파일 형식에는 현재 구성 파일, 로그 파일 등이 포함된다.
AddObject 개체에 새 인스턴스 추가
DeleteObject 개체에서 인스턴스 제거

TR-069를 통해 높은 수준의 운영 가능

  • 서비스 활성화 및 재구성
    • 제로 터치 또는 원터치 구성 프로세스의 일부로 서비스를 처음 구성
    • 서비스 재설정(예: 장치가 공장 재설정, 교환된 후)
  • 원격 가입자 지원
    • 장치 상태 및 기능 확인
    • 수동 재구성
  • 펌웨어 및 구성 관리
    • 펌웨어 업그레이드/다운그레이드
    • 구성 백업/복원
  • 진단 및 모니터링
    • 처리량(TR-143) 및 연결 진단
    • 매개변수 값 검색
    • 로그 파일 검색

보안

ISP ACS의 타협이나 ACS와 CPE 사이의 연결은 서비스 제공자의 전체 가입자 기반에 있는 TR-069 지원 기기에 대한 접근을 제공할 수 있다. 고객 정보 및 장치 작동은 클라이언트의 네트워크에 있는 다른 MAC 주소를 포함하여 잠재적인 공격자가 이용할 수 있을 것이다. 악의적인 DNS 서버로 DNS 쿼리를 은밀히 리디렉션하는 것이 가능할 수 있으며 백도어 기능을 통해 몰래 펌웨어를 업데이트할 수도 있다.[4] TR-069 ACS 소프트웨어는 종종 불안정하게 구현되는 것으로 밝혀졌다.[5] 적절한 보호 없이 접속 요청에 대해 공용 인터넷을 통해 동일한 HTTP 엔드포인트를 재사용한 TR-064(LAN측 DSL CPE 구성)와 TR-069(CWMP)의 결합 구현 결함이 다양한 벤더의 장치에서 발견돼 미라이 기반 보트넷과 기타 악성코드에 의해 악용되고 있다.[6][7]

참고 항목

참조

  1. ^ "CPE WAN Management Protocol" (PDF). TR-069 Amendment 4. Broadband Forum. July 2011. Retrieved February 16, 2012.
  2. ^ "CPE WAN Management Protocol" (PDF). TR-069 Amendment 5. Broadband Forum. November 2013. Retrieved March 3, 2014.
  3. ^ a b "Crash course in TR-069 (CWMP)". AVSystem. Retrieved November 16, 2020.
  4. ^ ISP에 의해 공급되는 많은 홈 라우터가 대량으로 손상될 수 있다고 연구자들은 말한다.
  5. ^ Check Point의 멀웨어 및 취약성 연구 그룹은 ACS 공급업체의 솔루션에서 몇 가지 결함을 발견했다.
  6. ^ "Mirai attack on home routers and alleged TR-069 vulnerability". www.qacafe.com. Retrieved April 25, 2020.
  7. ^ "Practical ways to misuse a router". blog.ptsecurity.com. Retrieved June 16, 2017.

외부 링크

오픈 소스 구현