Cara Kerja Identitas Digital untuk ESP32 dan PLC di Sistem Blockchain IoT

Bayangkan sebuah pabrik dengan 200 sensor ESP32 yang mengirim data ke satu broker MQTT yang sama. Kalau salah satu perangkat “palsu” berhasil terhubung dan mengirim data suhu 25°C padahal mesin sebenarnya sudah 90°C, sistem monitoring bisa terkecoh sepenuhnya — bukan karena datanya diubah di tengah jalan, tapi karena datanya memang berasal dari perangkat yang tidak berhak. Ini soal identitas digital perangkat IoT: bagaimana memastikan data benar-benar berasal dari perangkat yang sah, bukan sekadar memverifikasi datanya tidak diubah. Untuk konsep integritas data itu sendiri, baca cara membuat hash data sensor ESP32 — artikel ini fokus ke lapisan sebelumnya: memastikan pengirimnya sah.

Kenapa Username/Password MQTT Saja Tidak Cukup

Kebanyakan implementasi MQTT hanya mengandalkan username dan password statis per perangkat. Ini rentan karena beberapa alasan konkret: kredensial yang sama sering ditanam langsung di firmware (hardcoded), sehingga kalau satu perangkat berhasil di-reverse-engineer, kredensialnya bisa dipakai untuk menyamar sebagai perangkat itu di perangkat lain. Selain itu, tidak ada cara mudah untuk mencabut akses satu perangkat spesifik tanpa mengganggu perangkat lain yang berbagi pola kredensial serupa, dan tidak ada jejak kriptografis yang membuktikan pesan tertentu benar-benar berasal dari perangkat bersangkutan pada waktu tertentu.

Prinsip Dasar: Kunci Privat Sebagai Identitas

Pendekatan yang lebih kuat memberi setiap perangkat pasangan kunci kriptografi (public-private key pair) yang unik. Kunci privat disimpan hanya di perangkat itu sendiri (idealnya di secure element seperti ATECC608A, atau minimal di partisi flash yang terenkripsi), sementara kunci publiknya didaftarkan ke sistem sebagai identitas perangkat. Setiap kali perangkat mengirim data, ia menandatangani (sign) payload dengan kunci privatnya. Sistem penerima memverifikasi tanda tangan itu memakai kunci publik yang terdaftar — kalau cocok, terbukti pesan itu berasal dari pemegang kunci privat yang sah, tanpa kunci privatnya pernah dikirim ke mana pun.

[GAMBAR: diagram alur registrasi perangkat — device generate keypair, kirim public key ke server, server simpan sebagai identitas terdaftar]

Model Identitas: Registrasi, Rotasi, dan Pencabutan

Siklus hidup identitas perangkat perlu mencakup tiga hal. Pertama, registrasi: perangkat baru didaftarkan dengan public key-nya dicatat di database identitas (bisa berupa tabel sederhana, atau sistem PKI/certificate authority internal untuk skala besar). Kedua, rotasi kunci: kunci sebaiknya bisa diganti secara berkala atau saat dicurigai bocor, tanpa harus mengganti fisik perangkatnya. Ketiga, dan paling sering diabaikan, pencabutan (revocation): kalau sebuah perangkat dicuri, rusak, atau dicurigai disusupi, identitasnya harus bisa langsung dicabut sehingga data atas namanya tidak lagi diterima sistem, tanpa memengaruhi perangkat lain.

Tanpa mekanisme pencabutan yang jelas, satu perangkat yang disusupi bisa terus “sah” di mata sistem tanpa batas waktu — ini salah satu celah paling umum pada implementasi identitas IoT yang terburu-buru.

Kenapa Ini Relevan untuk Blockchain

Di sinilah blockchain punya peran yang masuk akal: sebagai registry identitas yang tidak bisa diubah sepihak. Alih-alih daftar perangkat terdaftar disimpan di satu database yang bisa diedit siapa pun dengan akses admin, daftar public key dan status pencabutan bisa dicatat di smart contract. Siapa pun yang ingin memverifikasi apakah sebuah perangkat masih sah bisa mengeceknya langsung ke chain, tanpa harus memercayai satu pihak sebagai penjaga tunggal daftar tersebut. Ini terutama bernilai kalau ada pihak eksternal (pembeli mesin bekas, auditor, mitra bisnis) yang perlu memverifikasi riwayat dan keabsahan sebuah perangkat secara independen.

FungsiDisimpan di mana
Public key perangkatOn-chain (smart contract registry)
Status aktif/dicabutOn-chain (smart contract registry)
Kunci privat perangkatTidak pernah keluar dari perangkat (secure element)
Log data mentah dan metadata perangkatOff-chain (database backend)

Batasan yang Perlu Diingat

  • Blockchain tidak berada di jalur kontrol. Fungsi kontrol, interlock, dan emergency stop tetap di PLC atau sistem safety yang sesuai standar.
  • Smart contract tidak boleh menggerakkan aktuator secara langsung tanpa verifikasi dan interlock di sisi PLC/edge.
  • Waktu konfirmasi transaksi tidak deterministik, sehingga proses pencabutan identitas darurat sebaiknya juga dicerminkan di lapisan akses lokal (misalnya broker MQTT langsung menolak koneksi), bukan hanya menunggu konfirmasi on-chain.
  • Identitas yang kuat tidak menggantikan keamanan fisik perangkat — kalau seseorang bisa membongkar perangkat dan mengekstrak kunci privat dari flash yang tidak terenkripsi, seluruh model ini runtuh.
  • Perubahan pada sistem produksi mengikuti prosedur manajemen perubahan dan izin pihak berwenang di fasilitas terkait.

Contoh Konkret: Perangkat Dicuri, Identitas Dicabut

Bayangkan sebuah unit ESP32 yang terpasang di lini produksi lepas dari lokasinya — entah dicuri atau dipindah tanpa izin. Kalau identitasnya berupa username/password statis yang juga dipakai perangkat sejenis, mencabut aksesnya berarti mengganti kredensial di banyak tempat sekaligus, berisiko mengganggu perangkat lain yang sah. Dengan model kunci privat-publik, tim cukup menandai satu public key spesifik sebagai “dicabut” di registry (baik di database maupun smart contract). Begitu ditandai, broker MQTT atau backend akan menolak semua pesan yang ditandatangani dengan kunci privat perangkat itu, sementara ratusan perangkat lain tetap berjalan normal tanpa terganggu. Inilah nilai praktis dari identitas per-perangkat yang granular dibanding kredensial yang dibagi bersama.

Langkah Praktis Memulai

Kalau ingin mulai menerapkan ini secara bertahap: mulai dari perangkat baru saja (jangan migrasi paksa perangkat lama sekaligus), gunakan secure element yang sudah tersedia luas seperti ATECC608A untuk ESP32 (harganya relatif terjangkau dan sudah didukung library Arduino), dan bangun dulu registry sederhana (bahkan di database biasa) sebelum memutuskan pindah ke smart contract — validasi dulu alurnya bekerja dari sisi firmware dan backend, baru pertimbangkan tingkat desentralisasi yang dibutuhkan berdasarkan siapa saja pihak yang perlu memverifikasi identitas perangkat secara independen. Migrasi bertahap seperti ini juga memberi ruang untuk menguji proses rotasi dan pencabutan kunci pada skala kecil sebelum diterapkan ke seluruh armada perangkat.

Kesimpulan

Identitas digital perangkat adalah lapisan yang sering terlewat dalam diskusi blockchain untuk IoT, padahal ini fondasi yang membuat hash dan integritas data di lapisan atasnya benar-benar berarti — percuma data terbukti “tidak diubah” kalau sumber datanya sendiri tidak bisa dipastikan sah. Kunci privat sebagai identitas, dengan registry yang mendukung rotasi dan pencabutan, adalah pola yang jauh lebih kuat dibanding username/password statis.

Baca Juga

Belajar Lebih Terstruktur

Materi ini tersedia dalam bentuk course terstruktur di bisaioti.id, lengkap dengan kit hardware supaya bisa langsung dipraktikkan.

[perlu data: nama course yang relevan, link course, nama kit hardware]

Related Articles

Chat Langsung dengan Kami
Staff bisaioti 1 — +62 823-3306-4821 E-Course, Offline Course, Hardware & Teknis IoT/OT Staff bisaioti 2 — +62 823-3306-4821 Training Korporat & Toko Hardware