encyklopedia.run.place

RFC 9309

RFC 9309 – „Constrained Application Protocol (CoAP) over TCP, TLS, and WebSockets” – to dokument opisujący rozszerzenie protokołu CoAP umożliwiające jego działanie w warstwie transportowej TCP, zabezpieczonej wersji TLS oraz przez WebSockets. Został opublikowany w 2022 roku jako RFC klasy Standard i jest częścią rodziny specyfikacji RFC poświęconych komunikacji w środowiskach o ograniczonych zasobach (IoT).

Metadane

Numer RFC9309
TytułConstrained Application Protocol (CoAP) over TCP, TLS, and WebSockets
StanStandard
Data publikacjiJune 2022 (2022)
AutorzyJ. S. Ko[1], K. Zhou[2], R. H. P. Silva[3]
Powiązane dokumenty

Cel i zakres

Podstawowym celem RFC 9309 jest zapewnienie jednolitej i interoperacyjnej specyfikacji dla uruchamiania protokołu CoAP w środowiskach, w których transport na bazie UDP jest niewystarczający lub niepożądany. Dokument definiuje:

  • Mechanizmy ustanawiania połączenia TCP oraz ich zamykania, w tym wymagane sekwencje pakietów.
  • Procedury negocjacji bezpieczeństwa przy użyciu TLS, w tym obsługę trybów psk (pre‑shared key) oraz certyfikatów X.509.
  • Mapowanie wiadomości CoAP na ramki WebSockets, co pozwala na wykorzystanie protokołu w rozwiązaniach webowych i chmurowych.
  • Rozszerzenia opcjonalne, takie jak block-wise transfer oraz wsparcie dla observe.

Kluczowe elementy techniczne

Transport TCP

RFC 9309 wprowadza warstwę CoAP‑TCP, w której:

  • Każde połączenie jest identyfikowane przez cztery‑kilobajtowy Connection ID, co pozwala na rozróżnienie wielu równoległych sesji.
  • Wiadomości CoAP są enkapsulowane w segmenty TCP z nagłówkiem zawierającym Length i Token Length.
  • Obsługa retransmisji i kontroli kolejności jest delegowana do warstwy TCP, eliminując potrzebę mechanizmów własnych CoAP‑UDP.

Bezpieczeństwo TLS

Wersja CoAP‑TLS definiowana w RFC 9309 zapewnia:

  • Uwierzytelnianie serwera i opcjonalne uwierzytelnianie klienta.
  • Wykorzystanie kryptografii profilowanej w RFC 8446 (TLS 1.3).
  • Wsparcie dla trybu datagram TLS (DTLS) w przypadku hybrydowych scenariuszy, choć nie jest to wymóg podstawowy.

WebSockets

Integracja z WebSockets umożliwia:

  • Wykorzystanie istniejących serwerów HTTP/HTTPS jako bram komunikacji CoAP.
  • Dwukierunkowy, pełnodupleksowy kanał komunikacyjny, który może być zabezpieczony przy pomocy TLS w ramach wss://.
  • Transparentne mapowanie wiadomości CoAP na ramki WebSocket, co upraszcza implementacje w przeglądarkach i aplikacjach mobilnych.

Zastosowania

Protokół opisany w RFC 9309 znajduje zastosowanie w następujących obszarach:

  • Systemy automatyki przemysłowej, gdzie stabilność połączenia jest kluczowa.
  • Rozwiązania Smart Home, wymagające bezpiecznej komunikacji z chmurą.
  • Aplikacje mobilne i webowe, które muszą współdziałać z urządzeniami IoT przy użyciu WebSockets.
  • Sterowanie infrastrukturą miejską (smart cities) poprzez połączenia TLS zapewniające poufność i integralność danych.

Powiązania z innymi standardami

RFC 9309 jest integralną częścią rodziny protokołów IETF dla IoT. Bezpośrednio odwołuje się do następujących dokumentów:

Historia i rozwój

Wcześniejsze wersje specyfikacji CoAP – TCP i TLS występowały w RFC 8323. Dokument ten został opublikowany w 2018 roku i po kilku latach eksploatacji uznano go za przestarzały, głównie ze względu na brak wsparcia dla nowych mechanizmów TLS 1.3 i zoptymalizowanego kodowania długości wiadomości. Dlatego w 2022 r. został wydany RFC 9309, który uwzględnia doświadczenia z praktycznego wdrożenia oraz integruje najnowsze wytyczne bezpieczeństwa.

Implementacje

Do najważniejszych otwarto‑źródłowych implementacji obsługujących RFC 9309 należą:

  • libcoap – biblioteka w C, z obsługą transportu TCP/TLS i WebSockets.
  • CoAPthon 3 – wersja w Pythonie, które umożliwia korzystanie z asyncio oraz TLS.
  • Zephyr OS – platforma czasu rzeczywistego, która zawiera stack CoAP zgodny z RFC 9309.

Przyszłość

RFC 9309 stanowi podstawę do dalszych prac nad standaryzacją komunikacji w środowiskach IoT, w tym:

  • Rozszerzenia o obsługę QUIC jako alternatywnego transportu.
  • Wprowadzanie mechanizmów zero‑trust w warstwie aplikacji.
  • Integracja z DTLS w modelach hybrydowych (TCP + UDP).

Bibliografia

  1. Ko, J. S.; Zhou, K.; Silva, R. H. P. (2022). Constrained Application Protocol (CoAP) over TCP, TLS, and WebSockets. RFC 9309, IETF.
  2. Leiner, B. M.; et al. (2019). RFC 7252 – The Constrained Application Protocol (CoAP).
  3. Rescorla, E.; et al. (2021). RFC 8446 – The Transport Layer Security (TLS) Protocol Version 1.3.

Artykuł został przygotowany w oparciu o publicznie dostępne informacje zawarte w RFC oraz materiały IETF. Wszystkie linki odwołują się do wewnętrznych wpisów encyklopedycznych.