Overview

Feature

  • 선택적으로 Reliable한 Uni/Multicast를 지원하는 UDP를 사용
  • 비동기 메시지 교환
  • URI 및 Content-Type 지원
  • RestFul 지원

Concept

Server-Client 구조이며, 중간에 Proxy를 둘 수 있다.

CoAP Server

실제로 CoAP를 통해 입력받아 특정 서비스를 제공하는 디바이스

Proxy

Request를 Fowarding하거나, Response를 Relaying Back 한다.

캐싱(Caching), Namespace/Protocol Translation 을 위해서 사용할 수 있다.

Protocol Translation

Cross Proxy 라고도 하며, Server가 HTTP를 통해서도 CoAP Server와 통신할 수 있도록 한다.

Server와는 HTTP를 이용해서, CoAP Server와는 CoAP를 이용해서 통신한다.

Security

  • Parsing과 URI 처리에서 취약점이 발생할 수 있음
    • 최대한 간단한 Routine으로 처리하거나 Client에게 위임
  • Private Cache가 재사용될 수 있음
    • Identified Request을 Public으로 사용 금지
    • Shared Cache의 재사용 금지
  • Reply와 Response를 함께 보내는 특성으로 인해 DoS에 악용 가능
    • 트래픽 제한을 통해 완화할 수 있지만, 자신의 성능저하를 유발할 수 있음
  • Multicast를 지원하기 때문에 DoS에 악용 가능
    • Multicast Request를 제한해야 함
  • UDP 특성상 rogue Endpoint로 인한 Spoofing 가능
    • 인증 수단/절차를 포함해야 함
  • Fake Address를 이용한 Cross-Protocol 공격 가능
    • Stateless한 특성으로 인해 발생
  • Entropy Source가 부족하기 때문에 Key gen과 같은 행위는 금지
  • 낮은 연산 능력으로 인해 Timing Attack 가능

Reference