보안

CoAP(Constrained Application Protocol)

CoAP(Constrained Application Protocol)는 제한된 환경에서 동작하는 IoT 장치를 위한 경량 애플리케이션 계층 프로토콜입니다.
특히 정보보안 분야에서 CoAP는 DTLS 기반의 보안 통신, 자원 접근 제어, 경량화된 암호화 등 중요한 보안 요소를 갖추고 있어 주목받습니다.

1. CoAP 개요

항목설명
정식 명칭Constrained Application Protocol
표준화 기관IETF (RFC 7252)
기반 프로토콜UDP
역할HTTP와 유사한 RESTful 인터페이스 제공 (GET, POST, PUT, DELETE)
사용 목적리소스가 제한된 IoT 장치 간의 효율적인 통신

HTTP는 TCP 기반이고 무겁기 때문에, IoT처럼 CPU, 메모리, 전력 등이 제한된 장치에서는 CoAP가 더 적합합니다.

2. CoAP 기본 구조

  • URI 방식의 리소스 접근 (RESTful)
  • UDP 기반 전송
  • 비동기 메시징 지원
  • 멀티캐스트 통신 가능
  • 옵션(Option) 기반 헤더 구조 → 유연성 & 경량성 확보

3. CoAP의 보안 메커니즘

✅ 1) DTLS (Datagram Transport Layer Security)

  • UDP 기반 통신을 위한 TLS 대체 프로토콜
  • CoAP는 DTLS를 사용하여 암호화, 무결성, 인증을 제공합니다.
기능설명
암호화AES-CCM 등을 통해 메시지 내용 보호
무결성MAC(Message Authentication Code)을 통해 위변조 방지
상호 인증PSK, RPK, X.509 인증서 방식 모두 지원
리플레이 공격 방지DTLS 시퀀스 번호로 대응

📌 DTLS 보안 모드 (RFC 7925 기준)

모드설명
NoSec보안 미적용 (테스트 용도 또는 공개 자원 접근)
PreShared Key (PSK)미리 공유한 키를 사용한 경량 인증
Raw Public Key (RPK)인증서 없이 공개키 직접 전달
X.509PKI 기반 인증서 사용 (상대적으로 무거움)

✅ 2) OSCORE (Object Security for Constrained RESTful Environments)

  • CoAP 메시지 자체에 엔드투엔드 암호화를 적용하는 방식
  • DTLS는 Hop-by-hop 보안만 가능하지만, OSCORE는 End-to-End 보안 가능
  • 메시지 헤더 일부는 암호화 안 하고, Payload만 암호화

▶️ DTLS는 전송 계층 보안,
▶️ OSCORE는 응용 계층 보안

✅ 3) 접근 제어 (Access Control)

  • CoAP은 단독으로 복잡한 인증 기능은 없지만, DTLS + Token 방식으로 제한적 접근 제어 가능
  • 향후 ACE (Authentication and Authorization for Constrained Environments) 프레임워크와 연동 가능
  • OAuth 2.0을 경량화한 방식으로 리소스 서버 인증도 가능

4. 보안 위협 및 대응

보안 위협설명대응 방안
중간자 공격 (MITM)암호화 없을 시 데이터 탈취 위험DTLS 적용, 인증서 또는 PSK
스푸핑 공격가짜 장치로 위장 가능Mutual Authentication
리플레이 공격이전 메시지를 재전송DTLS 시퀀스, OSCORE nonce
과부하 공격 (DoS)UDP 기반의 무연결 특성 악용Rate Limiting, DTLS Handshake 제한
자원 접근 통제 실패허가되지 않은 접근 허용OAuth 기반 토큰 인증, ACE 연동

5. CoAP 보안 설계 시 고려사항

항목권장사항
암호화 사용필수 (DTLS or OSCORE)
인증 수단PSK (경량), X.509 (보안성), RPK (균형)
자원 분리민감 리소스는 별도 인증 및 권한 필요
Key Management키 주기적 갱신, PSK 교환 채널 보호
IoT 플랫폼 연계ACE, LwM2M 등 상위 프레임워크 고려

6. CoAP vs HTTP (보안 비교)

항목CoAP + DTLSHTTP + TLS
프로토콜UDPTCP
보안 계층DTLS (경량 TLS)TLS
인증PSK, RPK, X.509X.509
지원 방식멀티캐스트, 비동기유니캐스트, 동기
적합 환경IoT, 센서 네트워크일반 웹/앱 환경

🧪 실무 예시

  • 스마트 미터링 시스템 → CoAP + DTLS PSK 사용
  • 홈 오토메이션 → CoAP + OSCORE로 End-to-End 보안
  • 군사/의료 IoT 환경 → CoAP + X.509 인증서 기반 강력 보안

📚 요약

항목요약
CoAPIoT 환경에서 HTTP 역할을 대신하는 경량 프로토콜
보안 적용DTLS, OSCORE 기반으로 암호화 및 인증 제공
보안 리스크스푸핑, MITM, 리플레이 등 다양한 위협 존재
보안 설계인증 방식 선택, 키 관리, 자원 접근 제어 필수

zerg96

Recent Posts

노트북(윈도우)에서 아이폰 유선 테더링 하기

윈도우 운영체제의 노트북에서는 iPhone 유선 테더링이 잘 안되는 경우가 많습니다. 보통 iPhone의 드라이버가 설치가 안되있어서인…

3일 ago

오라클 래치(Latch)

오라클 데이터베이스의 성능을 논할 때, 내부적으로 발생하는 경합(Contention)은 피할 수 없는 주제다. 특히 다수의 프로세스가…

7일 ago

사장님도 3표, 나도 3표? ‘3%룰’ 완전 정복!

안녕하세요, 혹시 이런 생각해 본 적 없으신가요? "내가 투자한 회사는 누가 감시하고, 어떻게 운영될까?" 오늘은…

3주 ago

Vector Store(벡터 스토어)

'벡터 스토어' 완벽 가이드: AI 시대, 데이터의 새로운 심장을 만나다 IT 업계는 인공지능(AI)이라는 거대한 패러다임의…

3주 ago

Gemini CLI (재미나이 CLI)

1. Gemini CLI란 무엇인가요? Gemini CLI는 터미널 환경에서 직접 Gemini 모델과 상호작용할 수 있도록 만들어진…

3주 ago

과적합 (overfitting)

과적합은 머신러닝에서 학습용데이터를 과하게 학습하여, 실제데이터를 예측하지 못하는 현상을 말합니다. 인공지능(AI)의 학습 방법은 우리가 시험공부를…

1개월 ago