Enkripsi data bertujuan untuk melindungi informasi dari pihak yang tidak berwenang dengan cara mengubah data asli (plaintext) menjadi bentuk tidak terbaca (ciphertext). Dalam sistem IoT, enkripsi diperlukan pada tiga kondisi yaitu:
- Data in Transit yang artinya saat data dikirim antar perangkat, gateway, atau server.
- Data at Rest – saat data disimpan dalam memori, SD card, atau basis data.
- Data in Use – saat data diproses di RAM atau CPU oleh sistem. Berikut ini adalah jenis enkripsi yang dapat dilakukan:
A. Enkripsi Simestris
Enkripsi simetris menggunakan satu kunci yang sama untuk enkripsi dan dekripsi. Algoritma yang dapat digunakan adalah AES-GCM atau AES-CCM yang mendukung Authenticated Encryption with Associated Data (AEAD) yang menjamin sekaligus kerahasiaan dan integritas. Yang umumnya digunakan pada protokol ZigBee (IEEE 802.15.4), Bluetooth Low Energy (BLE), dan TLS.
Cara kerja teknis:
- Data diubah menjadi blok 128-bit.
- Setiap blok dienkripsi menggunakan kunci rahasia 128/192/256 bit.
- Galois Counter Mode (GCM) menambahkan authentication tag agar perubahan data dapat terdeteksi.
Contoh penerapan pada perangkat IoT (ESP32):



Berikut hasil yang didapatkan:

B. Enkripsi Asimestris
Digunakan saat perangkat berkomunikasi dengan server atau melakukan handshake TLS. Metode ini menggunakan dua kunci berbeda yaitu kunci publik dan kunci privat. Kunci publik digunakan untuk enkripsi. Kunci privat digunakan untuk dekripsi. Untuk rekomendasi pada IoT dapat menggunakan algoritma Elliptic Curve Cryptography (ECC) karena lebih ringan daripada RSA. Contoh kurva modern yaitu secp256r1 (NIST P-256) dan Curve25519 (lebih efisien, cocok untuk MCU) Contoh penerapan handshake TLS (ESP32):


Format Sertifikat ECC:

Berikut ini adalah proses keamanan dengan menerapkan otentikasi dan otorisasi:
A. Otentikasi Perangkat ke Broker/Server
Dalam komunikasi machine-to-machine (M2M) seperti antara sensor dan broker MQTT, otentikasi perangkat menjadi sangat penting untuk mencegah entitas palsu masuk ke jaringan. Terdapat dua metode utama yang umum digunakan, yaitu mutual TLS (mTLS) dan Pre-Shared Key (PSK). Pada Mutual TLS (mTLS) perangkat maupun server memiliki sertifikat digital yang ditandatangani oleh Certificate Authority (CA) berikut adalah contoh implementasi di Broker MQTT:

Sedangkan untuk Pre-Shared Key (PSK) digunakan pada perangkat berdaya sangat terbatas, metode mTLS bisa terlalu berat karena membutuhkan proses kriptografi
asimetris. Sebagai alternatif, dapat digunakan TLS-PSK, di mana kunci rahasia dibagikan sebelumnya kepada perangkat dan server.
![]()
B. Otorisasi (Authorization)
Setelah entitas berhasil diautentikasi, langkah berikutnya adalah menentukan apa yang boleh dilakukan oleh entitas tersebut. Tujuan otorisasi adalah membatasi akses sesuai peran, atribut, atau identitas topik. Berikut adalah berapa proses yang dapat dilakukan:
- Role-Based Access Control (RBAC)
Mengatur akses berdasarkan peran tertentu, misalnya, admin untuk semua akses, operator untuk hanya membaca data, device untuk hanya mengirim data telemetri. Kebijakan RBAC mudah diimplementasikan, namun kurang fleksibel untuk sistem multi- tenant yang kompleks.
- Attribute-Based Access Control (ABAC)
ABAC menilai akses berdasarkan atribut seperti device_id, tenant, region, atau risk_score. Kombinasi RBAC untuk kontrol makro dan ABAC untuk aturan mikro sering digunakan dalam sistem IoT berskala besar.
- Kontrol Akses MQTT Berbasis Topik (Topic-level ACL)
Dalam sistem IoT berbasis MQTT, otorisasi dilakukan pada tingkat topic. Setiap perangkat hanya boleh, Publish ke topik miliknya (devices/<id>/telemetry) dan Subscribe ke topik perintah (devices/<id>/cmd). Berikut contoh kebijakan sederhana (pseudo-ACL):
