Pengantar

Internet of Things (IoT) menghubungkan berbagai perangkat dengan kemampuan komputasi dan sumber daya yang terbatas. Sensor, smart meter, perangkat monitoring, dan aktuator harus dapat berkomunikasi tanpa menggunakan protokol yang terlalu berat.

Salah satu protokol yang dirancang untuk kebutuhan tersebut adalah CoAP (Constrained Application Protocol). Protokol ini dibuat untuk perangkat dan jaringan dengan keterbatasan resource, serta menggunakan pendekatan komunikasi yang ringan. (dikutip dari: IETF RFC 7252 – The Constrained Application Protocol)

Namun, efisiensi CoAP juga menghadirkan tantangan keamanan. Jika komunikasi tidak dilindungi dengan baik, attacker dapat mencoba membaca, memodifikasi, memalsukan, atau mengganggu komunikasi antarperangkat.


Apa Itu CoAP?

Pengertian CoAP

Constrained Application Protocol (CoAP) adalah protokol transfer web yang dirancang untuk perangkat dengan keterbatasan CPU, memory, daya, dan bandwidth.

CoAP memiliki konsep yang mirip dengan HTTP. Protokol ini mendukung metode seperti GET, POST, PUT, dan DELETE sehingga dapat digunakan untuk membangun komunikasi berbasis REST pada perangkat IoT.

Perbedaannya terletak pada desain protokol. CoAP menggunakan format pesan biner yang ringkas dan secara tradisional berjalan di atas UDP.

baca juga : AI Guardrails: Benteng Pengaman untuk Mencegah AI Bertindak di Luar Batas

Mengapa CoAP Digunakan pada IoT?

Perangkat IoT sering bekerja dengan resource terbatas. Karena itu, overhead komunikasi perlu dibuat sekecil mungkin.

CoAP menawarkan beberapa karakteristik yang sesuai untuk kondisi tersebut, seperti:

  • Header yang ringkas.
  • Format pesan biner.
  • Dukungan komunikasi asynchronous.
  • Dukungan multicast.
  • Proxy dan caching sederhana.
  • Dukungan untuk jaringan dengan bandwidth terbatas.

Dengan karakteristik tersebut, CoAP cocok digunakan untuk sensor dan perangkat embedded yang tidak membutuhkan protokol web seberat HTTP.


Mengapa CoAP Membutuhkan Security?

Komunikasi IoT Tidak Selalu Aman

Perangkat IoT dapat ditempatkan di lingkungan yang sulit dikontrol. Sensor bisa berada di area publik, fasilitas industri, rumah, atau lokasi terpencil.

Jika komunikasi tidak dilindungi, attacker yang berada pada jalur komunikasi dapat mencoba melakukan penyadapan atau manipulasi data.

Risiko Data Dimanipulasi

Bayangkan sebuah sensor mengirimkan nilai temperatur ke server.

Jika attacker dapat mengubah nilai tersebut sebelum diterima server, sistem dapat mengambil keputusan berdasarkan data yang salah.

Pada lingkungan industri, manipulasi semacam ini dapat memiliki dampak lebih serius karena data sensor dapat digunakan untuk mengendalikan proses fisik.


Ancaman Keamanan pada CoAP

Eavesdropping

Tanpa perlindungan kriptografi, data CoAP dapat dibaca oleh pihak yang mampu mengamati lalu lintas jaringan.

Informasi yang terekspos dapat berupa data sensor, command, atau informasi lain yang dikirimkan oleh perangkat.

Message Modification

Attacker dapat mencoba mengubah isi komunikasi ketika data tidak memiliki perlindungan integritas.

Akibatnya, perangkat penerima dapat memproses informasi yang berbeda dari data asli.

Spoofing

Attacker juga dapat mencoba menyamar sebagai perangkat atau server yang sah.

Jika identitas endpoint tidak diverifikasi dengan baik, perangkat IoT dapat menerima komunikasi dari pihak yang tidak dipercaya.

baca juga : Kernel Address Space Layout Randomization (KASLR): Benteng Pertahanan Kernel dari Eksploitasi

Replay Attack

Pesan yang valid dapat direkam kemudian dikirim kembali pada waktu lain.

Pada sistem tertentu, replay dapat menyebabkan perintah lama dijalankan kembali. Karena itu, perlindungan terhadap replay menjadi aspek penting dalam keamanan komunikasi IoT.

Denial of Service

CoAP yang menggunakan UDP juga perlu menghadapi risiko serangan berbasis lalu lintas jaringan.

Attacker dapat mengirim banyak paket atau request sehingga perangkat dengan resource terbatas mengalami beban berlebihan.


CoAP Security dengan DTLS

Apa Itu DTLS?

Datagram Transport Layer Security (DTLS) adalah protokol keamanan yang dirancang untuk komunikasi berbasis datagram seperti UDP.

RFC 7252 mendefinisikan binding antara CoAP dan DTLS untuk memberikan perlindungan komunikasi. Mode tersebut dapat digunakan untuk menyediakan keamanan serta autentikasi antara endpoint. (dikutip dari: IETF RFC 7252 – Securing CoAP)

Secara sederhana, DTLS berfungsi sebagai lapisan keamanan di antara CoAP dan transport UDP.

Apa yang Dilindungi?

Penggunaan DTLS dapat memberikan beberapa kemampuan keamanan, seperti:

  • Kerahasiaan data.
  • Integritas pesan.
  • Autentikasi endpoint.
  • Perlindungan terhadap manipulasi komunikasi.

Namun, implementasi keamanan tetap perlu disesuaikan dengan kemampuan perangkat dan kebutuhan sistem.


Mode Keamanan pada CoAP

NoSec

Pada mode NoSec, CoAP tidak menggunakan perlindungan protokol seperti DTLS.

Mode ini paling sederhana, tetapi tidak memberikan perlindungan kriptografi pada komunikasi.

Karena itu, penggunaannya perlu dibatasi pada kondisi yang memang tidak membutuhkan perlindungan tambahan atau sudah memiliki mekanisme keamanan lain.

Pre-Shared Key

Pre-Shared Key (PSK) menggunakan kunci yang sudah diketahui oleh endpoint sebelum komunikasi berlangsung.

Pendekatan ini dapat lebih sederhana untuk perangkat terbatas. Namun, distribusi dan penyimpanan key harus dikelola dengan baik.

Jika satu key digunakan terlalu banyak perangkat, kompromi satu perangkat dapat meningkatkan risiko terhadap perangkat lain.

Raw Public Key

Pada mode ini, perangkat menggunakan pasangan kunci publik dan private key tanpa harus menggunakan sertifikat X.509.

Identitas public key dapat diverifikasi melalui mekanisme yang disepakati sebelumnya.

Certificate

Perangkat juga dapat menggunakan sertifikat digital untuk autentikasi.

Pendekatan ini dapat memberikan model trust yang lebih terstruktur. Namun, pengelolaan sertifikat pada perangkat IoT dalam jumlah besar dapat meningkatkan kompleksitas operasional.


OSCORE: Alternatif Keamanan End-to-End

Apa Itu OSCORE?

OSCORE (Object Security for Constrained RESTful Environments) merupakan mekanisme keamanan pada lapisan aplikasi yang dirancang khusus untuk CoAP.

Berbeda dari perlindungan berbasis transport, OSCORE dapat memberikan perlindungan end-to-end pada request dan response meskipun komunikasi melewati intermediary seperti proxy.

IETF menjelaskan bahwa OSCORE menggunakan COSE untuk memberikan perlindungan pada interaksi CoAP, termasuk encryption, integrity, replay protection, dan binding antara response dengan request. (dikutip dari: IETF RFC 8613 – OSCORE)

Mengapa OSCORE Dibutuhkan?

Pada arsitektur IoT, komunikasi tidak selalu berlangsung langsung antara client dan server.

Pesan dapat melewati proxy atau gateway. Jika keamanan hanya diterapkan pada satu koneksi, intermediary tertentu mungkin tetap dapat melihat atau memanipulasi data setelah perlindungan tersebut berakhir.

OSCORE dirancang untuk mengatasi masalah tersebut dengan memberikan perlindungan pada level objek atau request/response.


CoAP Security: DTLS vs OSCORE

Aspek DTLS OSCORE
Lapisan Transport Application
Fokus Keamanan komunikasi Keamanan objek CoAP
End-to-end melalui proxy Terbatas Ya
Cocok untuk constrained device Ya Ya
Perlindungan payload Ya Ya
Perlindungan melalui intermediary Bergantung arsitektur Dirancang untuk end-to-end

Keduanya tidak selalu harus dianggap sebagai pilihan yang saling menggantikan.

OSCORE bahkan dapat digunakan bersama dengan TLS atau DTLS pada bagian tertentu dari jalur komunikasi. Dengan demikian, desain keamanan dapat menggunakan beberapa lapisan sesuai kebutuhan.


Cara Meningkatkan CoAP Security

Gunakan Enkripsi

Hindari mengandalkan komunikasi CoAP tanpa perlindungan jika data memiliki nilai sensitif.

DTLS atau OSCORE dapat digunakan sesuai kebutuhan arsitektur.

Terapkan Mutual Authentication

Server sebaiknya tidak hanya memverifikasi client. Dalam sistem tertentu, client juga perlu memastikan bahwa server merupakan endpoint yang dipercaya.

Dengan demikian, risiko impersonation dapat dikurangi.

Lindungi Credential

Pre-shared key, private key, dan credential lainnya harus disimpan dengan aman.

Selain itu, hindari penggunaan satu credential yang sama untuk seluruh perangkat.

Terapkan Least Privilege

Perangkat sebaiknya hanya memiliki akses terhadap resource yang memang dibutuhkan.

Contohnya, sensor temperatur tidak selalu membutuhkan permission untuk mengubah konfigurasi seluruh sistem.

Kelola Update Perangkat

Firmware dan library CoAP perlu diperbarui ketika terdapat vulnerability yang relevan.

Selain itu, perangkat sebaiknya memiliki mekanisme update yang dapat diverifikasi agar attacker tidak dapat mengganti firmware dengan versi berbahaya.


Hal yang Perlu Diperhatikan pada IoT

Keterbatasan Resource

Keamanan harus mempertimbangkan CPU, memory, bandwidth, dan konsumsi daya.

Mekanisme kriptografi yang terlalu berat dapat memengaruhi performa perangkat.

Manajemen Key

Key management menjadi salah satu tantangan terbesar dalam IoT.

Perangkat dalam jumlah besar membutuhkan proses provisioning, rotation, revocation, dan recovery yang terstruktur.

Keamanan Gateway

Gateway sering menjadi penghubung antara banyak perangkat IoT dan jaringan utama.

Karena itu, gateway juga harus diamankan. Kompromi terhadap gateway dapat memberikan attacker posisi strategis untuk mengganggu banyak perangkat sekaligus.


Contoh Penerapan CoAP Security

CoAP dapat digunakan pada sistem monitoring kualitas air berbasis IoT.

Sensor mengirimkan data seperti pH atau turbidity ke server menggunakan CoAP. Data tersebut kemudian diproses oleh aplikasi monitoring.

Jika data memiliki risiko manipulasi, komunikasi dapat dilindungi menggunakan DTLS atau OSCORE.

Dengan demikian, sistem tidak hanya fokus pada pengiriman data. Integritas, autentikasi, dan kerahasiaan juga menjadi bagian dari desain komunikasi.

baca juga : Threshold Cryptography & Shamir’s Secret Sharing: Cara Membagi Rahasia Tanpa Satu Titik Kegagalan


Kesimpulan

CoAP Security merupakan bagian penting dalam pengembangan sistem IoT yang menggunakan Constrained Application Protocol.

CoAP dirancang untuk perangkat dengan resource terbatas. Namun, komunikasi yang ringan tetap membutuhkan perlindungan terhadap penyadapan, manipulasi, spoofing, replay, dan berbagai ancaman lainnya.

DTLS dapat digunakan untuk mengamankan komunikasi CoAP pada lapisan transport. Sementara itu, OSCORE memberikan perlindungan end-to-end pada level aplikasi dan dirancang untuk tetap bekerja pada lingkungan yang menggunakan proxy.

Dengan memilih mekanisme keamanan yang sesuai, mengelola key dengan baik, menerapkan least privilege, dan memperbarui firmware secara berkala, sistem IoT dapat memiliki perlindungan yang lebih kuat tanpa mengabaikan keterbatasan perangkat.