Implementasi Access Control List Berbasis Protokol MQTT pada Perangkat NodeMCU

dokumen-dokumen yang mirip
Rancang Bangun IOT Cloud Platform Berbasis Protokol Komunikasi MQTT

Pengembangan Perangkat Lunak IoT Cloud Platform Berbasis Protokol

Implementasi Autentikasi JSON Web Token (JWT) Sebagai Mekanisme Autentikasi Protokol MQTT Pada Perangkat NodeMCU

Analisis Performa Load Balancing Pada Broker MQTT Menggunakan Algoritma Round Robin

Sistem Kendali Berbasis Mikrokontroler Menggunakan Protokol MQTT pada Smarthome

ANALISA TEKNIK OTENTIKASI EAP-SIM PADA 3G WIFI

BAB 3 METODOLOGI. Gambar 3.1 Security Policy Development Life Cycle (SPDLC)

Prosiding SNaPP2012Sains, Teknologi, dan Kesehatan. Ari Muzakir

BAB IV HASIL DAN PEMBAHASAN

Muhammad Dio Khairunnas 1, Endro Ariyanto 2, Sidik Prabowo 3

PERANCANGAN DAN UJI COBA KEAMANAN PADA JALUR TRANSPORT WEB SERVICE MENGGUNAKAN METODE XML SIGNATURE DAN XML ENCRYPTION

TUGAS 3 MID MANAJEMEN JARINGAN BRAMANTIO RIZKI NUGROHO NIM

REALISASI SISTEM AKUISISI DATA MENGGUNAKAN ARDUINO ETHERNET SHIELD DAN SOCKET PROGRAMMING BERBASIS IP

PENGAMANAN JARINGAN KOMUTER

Sistem Monitor Dan Kendali Ruang Server Dengan Embedded Ethernet

Analisis Performansi dan Skalabilitas pada Event-Based IoT Middleware

SINGLE SIGN ON (SSO) MENGGUNAKAN STANDAR SAML PADA SISTEM INFORMASI UNIKOM

BAB I PENDAHULUAN. Konsumsi obat setiap orang berbeda beda karena disesuaikan dengan kebutuhan. disesuaikan dengan kebutuhan orang tersebut.

PERANCANGAN KEAMANAN JARINGAN HOTSPOT MENGGUNAKAN RADIUS SERVER (Studi Kasus : Fakultas Teknik Universitas Pasundan)

Implementasi Quality of Service pada Protokol Message Queue Telemetry Transport Sensor Network (MQTT-SN) Berbasis Arduino dan NRF24L01

1. Pendahuluan 1.1 Latar Belakang

SISTEM KEAMANAN DATA PADA WEB SERVICE MENGGUNAKAN XML ENCRYPTION

BAB I PENDAHULUAN. berkembang seperti penggunaan teknologi internet sebagai pendukung kinerja

BAB III ANALISIS DAN PERANCANGAN SISTEM

Implementasi Protokol MQTT Pada Monitoring Suhu Dan Ketersediaan Pakan Ikan Pada Akuarium

BAB III PEDOMAN-PEDOMAN

Protokol adalah sebuah aturan atau standar yang mengatur atau mengijinkan terjadinya hubungan, komunikasi, dan perpindahan data antara dua atau lebih

ABSTRAK. Kata kunci :SSL, RSA, MD5, Autentikasi, Kriptografi. Universitas Kristen Maranatha

BAB I PENDAHULUAN. 1.1 Latar Belakang

Rancang Bangun Sistem Pervasive Pada Rumah Cerdas Berbasis Protokol Message Queue Telemetry Transport dan Webservice

Situs Jejaring Sosial Menggunakan Elgg

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB I PENDAHULUAN 1.1 Latar Belakang

Implementasi Kura Framework pada Purwarupa Rumah Cerdas

PERANCANGAN DAN REALISASI SISTEM PEMILIHAN SUARA MENGGUNAKAN WIFI DENGAN IP STATIS ABSTRAK

Pada sistem terdistribusi, security berfungsi untuk: pengambilan informasi oleh penerima yang tidak berhak

JURNAL TEKNOLOGI TERPADU Vol. 6 No. 1 April 2018 ISSN Received: Oktober 2017 Accepted: November 2017 Published: April 2018

Amalia Zakiyah D4 LJ TI. LAPORAN RESMI TELNET dan SSH

SISTEM MONITORING SUHU JARAK JAUH BERBASIS INTERNET OF THINGS MENGGUNAKAN PROTOKOL MQTT

BAB I PENDAHULUAN 1.1. Latar Belakang Masalah

Network Access/Interface Layer Internet Layer Host-to-Host Transport Layer Application Layer

PEMODELAN DAN ANALISIS WIRELESS MESH NETWORK DENGAN ARSITEKTUR PUBLISH-SUBSCRIBE DAN PROTOKOL MQTT

1 BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Implementasi MQTT (Message Queuing Telemetry Transport) pada Sistem Monitoring Jaringan berbasis SNMP (Simple Network Management Protocol)

ABSTRAK. Kata Kunci: Konfigurasi, FreeRADIUS, Modul, Web.

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

RANCANG BANGUN MEDIA PEMANTAU PENGGUNAAN ARUS LISTRIK 3 FASA BERBASIS WEB DAN SMS

BAB I PENDAHULUAN 1.2. Latar Belakang Masalah

Annisa Cahyaningtyas

Dosen Pengampu : Muhammad Riza Hilmi, ST.

Cara termudah untuk menginstal Node-RED adalah dengan menggunakan manajer paket node (NPM).

Gambar Notifikasi via

BAB 4 PERANCANGAN DAN EVALUASI

APLIKASI PENGAMANAN PESAN PADA MAIL CLIENT MENGGUNAKAN ALGORITMA RC6

BAB IV HASIL DAN UJI COBA

BAB I PENDAHULUAN. 1.1 Latar Belakang

BAB 1 PENDAHULUAN. infrastruktur internet, baik jaringan kabel maupun nirkabel, di berbagai tempat

BAB 2 TINJAUAN PUSTAKA

KOMUNIKASI DATA & JARINGAN KOMPUTER. Ramadhan Rakhmat Sani, M.Kom

Pemanfaatan dan Implementasi Library XMLSEC Untuk Keamanan Data Pada XML Encryption

APPLICATION LAYER. Pengertian Application layer Service application layer (HTTP, DNS, SMTP)

BAB 1 PENDAHULUAN 1.1 Latar Belakang

TUGAS AKHIR. Sebagai Persyaratan Guna Meraih Gelar Sarjana Strata Satu Teknik Informatika Universitas Muhammadiyah Malang

APLIKASI IOT UNTUK PROTOTIPE PENGENDALI PERALATAN ELEKTRONIK RUMAH TANGGA BERBASIS ESP

PENDAHULUAN TINJAUAN PUSTAKA

Bab I Pendahuluan 1 BAB I PENDAHULUAN

BAB I PENDAHULUAN. service yang tidak bisa dilepaskan dari segala aktivitas yang terjadi di dunia maya,

MANAJEMEN JARINGAN WIRELESS MENGGUNAKAN SERVER RADIUS

BAB I PENDAHULUAN 1.1 Latar Belakang

UNIVERSITAS BINA NUSANTARA. Jurusan Teknik Informatika. Skripsi Sarjana Komputer. Semester Genap tahun 2008/2009

BAB I PENDAHULUAN 1.1 Latar Belakang

Bab I Pendahuluan. I.1 Latar Belakang

Lebih kompatibel dengan Windows karena memang IIS adalah keluaran Microsoft.

1. BAB 1 PENDAHULUAN. 1.1 Latar Belakang

FAULT TOLERANCE. Sistem terdistribusi week 9

SISTEM OTENTIKASI, OTORISASI, DAN PELAPORAN KONEKSI USER PADA JARINGAN WIRELESS MENGGUNAKAN CHILLISPOT DAN SERVER RADIUS

BAB 3 PERANCANGAN SISTEM

Metode Akses Mail dari Client

BAB IV IMPLEMENTASI DAN PENGUJIAN

ABSTRAK. i Universitas Kristen Maranatha

Making Provisions for Applications and Services

Bab 4 Hasil dan Pembahasan

BAB IV IMPLEMENTASI SISTEM. analisis dan perancangan dijadikan acuan dalam pembuatan kode program. Pada

PENGEMBANGAN HOME AUTOMATION SYSTEM MENGGUNAKAN FRAMEWORK OPENHAB SUB SYSTEM : LIGHTING DAN PRESENCE MONITORING

ERWIEN TJIPTA WIJAYA, ST,. M.KOM

BAB IV PENGUJIAN DAN ANALISIS

Perancangan Sistem Single Sign-On Pada Administrasi Jaringan Menggunakan Squid dan Autentikasi LDAP di GUCC

PENERAPAN PROTOKOL MQTT PADA TEKNOLOGI WAN (STUDI KASUS SISTEM PARKIR UNIVERISTAS BRAWIJAYA)

KATA PENGANTAR. Assalamualaikum Wr. Wb.

1 BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 3 ANALISA DAN RANCANGAN MODEL TESTBED QOS WIMAX DENGAN OPNET. menjanjikan akses internet yang cepat, bandwidth besar, dan harga yang murah.

BAB 1 PENDAHULUAN. 1.1 Latar Belakang. 1.2 Rumusan Masalah

REALISASI ALAT BANTU PEMBELAJARAN TEKNIK AUSKULTASI BERBASIS SMARTPHONE ANDROID ABSTRAK

Hanya kunci publik yang dipertukarkan antara pengirim dan penerima. Sebelum transmisi sebenarnya dimulai antaraa dua host, host pengirim mengirimkan

Keamanan Internet Berbasis Wap

BAB I PENDAHULUAN. beras rata-rata per kapita per minggu di Indonesia adalah sebesar kg [2].

BAB III ANALISIS DAN PERANCANGAN

Model Protokol dan Referensi Jaringan. Pertemuan 4

BAB 4 IMPLEMENTASI DAN EVALUASI

BAB III ANALISA DAN PERANCANGAN SISTEM

Transkripsi:

Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer e-issn: 2548-964X Vol. 2, No. 8, Agustus 2018, hlm. 2824-2831 http://j-ptiik.ub.ac.id Implementasi Access Control List Berbasis Protokol MQTT pada Perangkat NodeMCU Ardhian Rizki Ramadhani 1, Adhitya Bhawiyuga 2, Reza Andria Siregar 3 Program Studi Teknik Informatika, Email: 1 ardhiaan@ymail.com, 2 bhawiyuga@ub.ac.id, 3 reza@ub.ac.id Abstrak Protokol MQTT (Message Queuing Telemetry Transport) merupakan sebuah protokol Internet of Things bersifat light-weight yang berbasis mekanisme topic-based publish-subscribe yang cocok diimplementasikan pada lingkungan dan perangkat yang terbatas. Protokol MQTT memiliki masalah dalam keamanan terkait privasi, untuk memastikan identitas klien pada protokol MQTT diperlukan sebuah mekanisme autentikasi dan otorisasi, yang dapat dapat dilakukan dengan menerapkan Access Control List (ACL) pada broker untuk mengatur hak klien yang mengakses suatu topik terkait aktivitas publish/subscribe. Penelitian ini dilakukan untuk mengetahui bagaimana menerapkan mekanisme otorisasi menggunakan ACL pada protokol MQTT yang menggunakan perangkat nodemcu, dan bagaimana pengaruhnya terkait keamanan dan performa. Penelitian ini dilakukan menggunakan broker mosquitto yang menerapkan plugin auth-plug sebagai mekanisme autentikasi dan otorisasi, ACL akan didesain pada database MySQL yang diakses auth-server. Broker dan auth-server akan saling berkomunikasi untuk memeriksa hak akses klien MQTT, identitas klien akan di-encode menggunakan token JWT (JSON Web Token) dan ACL dirancang berdasarkan peran klien. Dari hasil pengujian, ACL yang dirancang berhasil mengamankan sistem berbasis protokol MQTT dengan perangkat nodemcu dengan melakukan mekanisme autentikasi dengan token JWT dan mekanisme otorisasi berdasarkan peran klien, serta berhasil menangani sebanyak 141 pesan per detik, dengan rata-rata waktu untuk publish pesan selama 0,7092 detik. Kata kunci: MQTT, access control list, otorisasi, nodemcu, JSON web token, autentikasi Abstract Message Queuing Telemetry Transport (MQTT) is a light-weight Internet-of-Things protocol based of topic-based publish-subscribe mechanism that is suitable for constrained devices. MQTT has a security problem in terms of privacy, to ensure client s identity which access MQTT protocol required an authentication and authorization mechanisms, that can be achieved by applying Access Control List (ACLs) to the broker that will govern the rights of client to access certain topic on system, such as publish/subscribe. This research will be conducted to find out about how to implement authorization mechanisms using ACLs on MQTT-based system that use nodemcu and how it affects the security and performance. This research will be conducted using mosquito-broker that implements auth-plug plugin as authentication and authorization mechanism, the ACLs will be designed on MySQL database and to be accessed by auth-server. Brokers and auth-server will communicate to check the identity and permissions of client, the client's identity will be encoded using JSON Web Token (JWT), and ACLs will be designed based on roles. From the test results, the ACLs managed to secure MQTT protocol-based systems with nodemcu devices by performing authentication mechanisms using JWT and authorization mechanisms based on client s roles successfully, also successfully handle message with total of 141 each seconds with average time needed to publish each message in the course of 0,7092 seconds. Keywords: MQTT, access control list, authorization, nodemcu, JWT, authentication 1. PENDAHULUAN Internet of Things (IoT), merupakan konsep dimana semua objek saling terhubung dalam sebuah jaringan serta saling berkolaborasi dalam bentuk apapun, kapanpun dan dimanapun, Fakultas Ilmu Komputer Universitas Brawijaya 2824

Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 2825 dengan menghubungkan sensor untuk memonitor parameter tertentu untuk menyediakan informasi bagi pengguna (Aziz, B., 2015). Oleh karena itu, dibutuhkan sebuah perangkat yang menjembatani kemampuan objek tersebut untuk melakukan kegiatan tersebut dan pengguna yang ingin mengaksesnya (Al-Fuqaha, et al., 2015). Perangkat nodemcu merupakan mikrokontroler yang memiliki integrasi modul esp8266 untuk berkomunikasi dengan internet dan mengkonsumsi daya yang rendah, nodemcu juga telah terintegrasi dengan wifi dan dikatakan sebagai perangkat masa depan IoT (Jaffe, S., 2016). Pada umumnya perangkat yang digunakan pada IoT memiliki keterbatasan dalam bentuk spesifikasi contohnya penyimpanan memori yang kecil dan daya yang rendah. Agar perangkat-perangkat yang terbatas ini dapat berkomunikasi dengan baik dibutuhkan sebuah protokol komunikasi. MQTT (Message Queuing Telemetry Transport) merupakan protokol komunikasi Internet of Things (IoT) berbasis mekanisme topic-based publish/subscribe yang bersifat ringan ringan serta di desain secara sederhana, terbuka dan mudah diimplementasi (Sengupta, S., & Ghosh, D., 2013). Salah satu permasalahan yang terdapat dalam setiap sistem, termasuk IoT, adalah keamanan. Untuk memastikan identitas dari klien pada protokol MQTT dibutuhkan sebuah mekanisme autentikasi yang digunakan untuk mengatur dan manajemen identitas klien, serta dibutuhkan mekanisme otorisasi untuk mengatur hak akses pengguna untuk mengakses topik tertentu pada aktivitas tertentu (publish/subscribe), yang dapat dilakukan dengan menggunakan Access Control List (ACL) yang diterapkan pada sisi broker MQTT (Upadhyay, et al., 2016). ACL memiliki tujuan untuk memastikan pengguna yang memiliki hak akses mendapatkan data sesuai keinginan dan pengguna yang tak memiliki hak akses untuk tidak mengakses data tersebut. Berdasarkan dari uraian permasalahan tersebut, maka penelitian ini dilakukan untuk melakukan implementasi mekanisme autentikasi dan otorisasi menggunakan ACL pada sistem berbasis protokol MQTT yang menggunakan perangkat nodemcu. Pada sistem yang dirancang akan digunakan ACL yang akan memeriksa identitas dan hak akses klien MQTT apakah dapat melakukan aktivitas dalam sistem, seperti publish/subscribe pada topik tertentu. ACL akan dirancang menggunakan role-based yang akan memeriksa peran yang dimiliki oleh klien dan hak akses yang dimiliki oleh tiap peran tersebut. NodeMCU akan digunakan sebagai mikrokontroler yang akan mengatur aktivitas sensor dan aktuator dalam sistem. Pengaturan ini bertujuan untuk memastikan bahwa hanya pengguna yang telah terotorisasi yang dapat mengakses data dan memastikan data tersebut berasal dari sumber yang benar, serta pengguna yang tidak terotorisasi tidak dapat mengakses data tersebut, dengan pengaturan ini diharapkan dapat mengamankan aspek privasi sebuah sistem berbasis protokol MQTT. 2. DASAR TEORI 2.1 Message Queuing Telemetry Transport Protocol (MQTT) Gambar 1. Komunikasi Publish/Subscribe MQTT adalah protokol komunikasi topicbased publish/subscribe yang di desain secara ringan, sederhana, terbuka dan mudah untuk diimplementasi (OneM2M, 2016). Model komunikasi topic-based publish-subscribe merupakan komunikasi berbasis event-driven yang memungkinkan sebuah pesan untuk dipushed menuju klien. Pihak pengatur komunikasi sentralnya terdapat pada broker, yang akan bertugas untuk mengatur transaksi/distribusi pesan antara pengirim (publisher) dan penerima (subscriber). Setiap kali klien mengirim (publish) atau menerima pesan (subscribe), mereka akan menyertakan sebuah topik terkait pesan tersebut. Topik merupakan informasi untuk routing yang akan dilakukan oleh broker (Sengupta, S. & Ghosh, D., 2011). Gambar 2. Keamanan pada Tiap Layer MQTT MQTT memiliki model keamanan yang sederhana, autentikasi di MQTT pada saat ini hanya terdapat username dan password yang

Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 2826 bersifat opsional, untuk integrity dan confidentiality pada MQTT dapat diatur menggunakan standar protokol keamanan seperti tranport layer security (TLS) yang juga bersifat opsional. Spesifikasi bawaan MQTT tidak menjelaskan mengenai model otorisasi namun pengimplementasian ACL pada topik tertentu telah didukung oleh MQTT (Niruntasukrat, dkk., 2016). 2.2 Access Control List (ACL) Menurut Andress, J. (2011), terdapat tiga langkah untuk mengamankan informasi yang dimulai dari identifikasi, autentikasi dan otorisasi. Identifikasi merupakan proses klaim identitas dimana kita menuntut identitas pihak tertentu (bisa berupa seseorang atau sesuatu), Autentikasi merupakan metode validasi terhadap klaim identitas pihak tersebut apakah benar atau tidak dan Otorisasi memungkinkan kita untuk menentukan kegiatan pihak tersebut di dalam sistem apakah dibolehkan atau dilarang. Implementasi otorisasi dapat dilakukan dengan menggunakan Access Control List (ACL). ACL dapat dibangun dengan berbagai cara, berdasarkan pada atribut fisik, kumpulan aturan, daftar per-individu atau per-sistem atau dalam bentuk yang lebih kompleks lagi. 2.3 NodeMCU (esp8266) Gambar 4. NodeMCU v2 (esp8266) NodeMCU merupakan sebuah firmware IoT bersifat open-source yang berjalan pada platform esp8266 wifi system on chip (SOC) dari Espressif System dan perangkat keras yang berbasis pada esp12e. NodeMCU merupakan mikrokontroler yang telah terintegrasi dengan wifi, sehinga tidak diperlukan lagi chipset wifi tambahan. NodeMCU banyak digunakan pada lingkungan IoT dan dapat berkomunikasi dengan protokol MQTT (Saikhrisna, dkk. 2017). 3. PERANCANGAN SISTEM Gambar 3. Contoh Access Control List Access Control List (ACL) adalah sebuah aturan yang mengatur subjek mana yang dapat memiliki hak akses terhadap objek yang mana dan jenis akses seperti apa yang dapat dilakukan. ACL memiliki tujuan untuk memastikan pengguna yang memiliki hak akses mendapatkan data sesuai keinginan dan pengguna yang tak memiliki hak akses untuk tidak mengakses data tersebut (Gusmeroli, dkk., 2012). Gambar 5. Gambaran Umum Arsitektur Sistem Arsitektur sistem secara umum digambarkan pada gambar 5, IoT devices merupakan kumpulan perangkat nodemcu yang akan berperan sebagai mikrokontroler untuk sensor dan aktuator, sensor yang akan digunakan adalah sensor DHT11 dan aktuator akan menggunakan tiga LED. NodeMCU yang terhubung dengan DHT11 akan publish data suhu dan kelembaban sedangkan nodemcu yang terhubung ke LED akan subscribe pada topik yang akan menyalakan/mematikan LED tersebut kemudian publish status keadaan LED

Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 2827 tersebut. Server akan terdiri dari broker mosquitto yang menangani komunikasi data melalui protokol MQTT dan Auth-server yang digunakan untuk memeriksa database setiap terjadi mekanisme autentikasi dan otorisasi. User merupakan klien MQTT yang dapat melakukan publish/subscribe ke broker mosquitto melalui protokol MQTT. Mekanisme autentikasi akan melakukan pemeriksaan identitas dari klien MQTT yang mengakses sistem dan mekanisme otorisasi akan mengatur kegiatan (publish/subscribe) klien MQTT tersebut di dalam sistem berdasarkan pada ACL. Token JWT akan digunakan sebagai user-credentials untuk melakukan autentikasi yang menggunakan token yang berisi username dan password klien yang kemudian akan diperiksa dalam database, sedangkan ACL akan digunakan untuk melihat hak yang dimiliki klien tersebut terhadap topik dan jenis akses (publish/subscribe) berdasarkan peran yang dimiliki oleh klien tersebut dalam database. Kedua mekanisme ini akan dilakukan setiap ada kegiatan yang dilakukan oleh klien MQTT dalam sistem untuk memenuhi mekanisme pengamanan sistem. identitas kemudian dikirimkan kembali ke broker, kemudian broker akan menentukan aksi selanjutnya berdasarkan pada hasil autentikasi. Jika hasil identitas klien terdapat dalam database maka broker akan memelihara koneksi hingga koneksi terputus, namun jika identitas klien tidak terdapat dalam database maka broker akan menolak permintaan koneksi. Selanjutnya klien akan mengirimkan permintaan publish pesan dengan topik ke broker, broker yang mendeteksi bahwa terdapat permintaan publish akan meneruskan ke auth-server untuk dilakukan mekanisme otorisasi. Auth-server akan memeriksa ACL pada database perihal apakah klien MQTT tersebut memiliki hak akses untuk publish dengan topik tersebut, kemudian hasil dari otorisasi dikirimkan kembali ke broker. Setelah broker menerima hasil otorisasi maka akan meneruskan pesan yang di-publish ke setiap klien yang subscribe ke topik tersebut jika hasil otorisasi berhasil, namun jika gagal maka permintaan publish akan ditolak. 3.2 Perancangan Penanganan Subscriber 3.1 Perancangan Penanganan Publisher Gambar 7. Penanganan Subscribe Gambar 6. Penanganan Publish Pesan Penanganan publisher sesuai dengan gambar 6, akan dimulai oleh klien MQTT sebelum dapat melakukan publish pesan diharuskan untuk membangun koneksi dengan broker MQTT terlebih dahulu, untuk membangun koneksi klien akan menyertakan sebuah token JWT yang berisi username dan password. Kemudian broker akan mendeteksi bahwa terdapat permintaan koneksi kemudian diteruskan menuju auth-server untuk dilakukan mekanisme autentikasi. Hasil dari pemeriksaan Penanganan subscriber sesuai dengan gambar 7, akan dimulai oleh klien MQTT sebelum dapat melakukan subscribe pada topik tertentu, diharuskan untuk membangun koneksi dengan broker MQTT terlebih dahulu sama dengan penanganan publisher. Kemudian hasil dari pemeriksaan identitas akan dikirimkan kembali ke broker, lalu broker akan menentukan aksi selanjutnya berdasarkan pada hasil autentikasi. Selanjutnya klien MQTT akan mengirimkan permintaan subscribe pada topik ke broker, broker yang mendeteksi permintaan subscribe akan meneruskan ke auth-server untuk dilakukan mekanisme otorisasi. Auth-server

Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 2828 akan menerima permintaan dari broker dan memeriksa ACL pada database perihal apakah klien tersebut memiliki hak akses untuk subscribe pada topik tersebut, kemudian hasil dari otorisasi dikirimkan kembali ke broker. Setelah broker menerima hasil otorisasi maka klien tersebut akan disimpan sebagai subscriber pada topik dan akan dikirimkan pesan saat terjadi publish pesan pada topik tersebut jika hasil otorisasi berhasil, namun jika gagal maka permintaan subscribe oleh klien akan ditolak. 3.3 Perancangan Access Control List Gambar 8. RancanganTopic Tree Access Control List (ACL) pada sistem akan dirancang berdasarkan topik apa yang dapat diakses oleh klien MQTT dan jenis akses seperti apa yang dapat dilakukan. Untuk itu, dibutuhkan sebuah struktur topik pada sistem yang dapat diakses oleh klien MQTT. Tiap topik dalam topic tree dirancang berdasarkan sensor dan aktuator yang diterapkan pada mikrokontroler nodemcu. Selain membutuhkan sebuah struktur topik pada sistem, dibutuhkan juga mekanisme terkait bagaimana ACL agar dapat mengatur mekanisme otorisasi. ACL akan dirancang menggunakan mekanisme role-based access control, dimana akan ada sebuah peran yang digunakan oleh sistem untuk menentukan hak akses pada topik tertentu serta jenis aksesnya. Topic tree ini akan dijadikan informasi dan dimasukkan kedalam database bersama dengan peran untuk menentukan hak akses klien. Hasil perancangan topic tree digunakan sebagai dasar untuk melakukan perancangan daftar peran dan perizinan pada sistem, daftar peran dan perizinan akan dirancang berdasarkan pada tiap level hirarki topik MQTT. Setiap peran dapat melakukan publish atau subscribe pada topik tertentu, penentuan peran mana yang dapat mengakses topik yang mana dan jenis akses seperti apa dirancang berdasarkan pada behavior tiap peran yang akan dimiliki oleh pengguna terhadap sumberdaya apa yang dapat diakses di dalam sistem. Daftar perizinan kemudian akan dimasukkan kedalam database MySQL yang akan diguanakan sebagai ACL. Berikut merupakan daftar peran dalam ACL: - toggle_user - status_user - red_user - green_user - blue_user - Admin - temperature_user - humidity_user - led_sensor - dht_sensor 4. IMPLEMENTASI SISTEM Implementasi sistem akan dilakukan berdasarkan pada hasil rekayasa kebutuhan dan perancangan sistem. Implementasi akan dilakukan pada sisi broker MQTT yaitu dengan melakukan instalasi mosquitto broker dan plugin auth-plug sebagai mekanisme autentikasi dan otorisasi menggunakan backend token JWT. Kemudian akan dilakukan implementasi authserver yang akan menggunakan bottle framework pada python yang akan dijalankan untuk menerima request dari HTTP-method, lalu akan dilakukan implementasi nodemcu dengan sensor dan aktuator sebagai klien MQTT pada bagian perangkat keras dan perangkat lunak. Pada gambar 9, dapat dilihat hasil implementasi mosquitto broker yang dijalankan melalui terminal ubuntu. Dari hasil implementasi tersebut dapat dilihat bahwa mosquitto broker berhasil berjalan dan melakukan konfigurasi backend JWT untuk melakukan pemeriksaan autentikasi dan otorisasi dengan auth-server. Gambar 9. Hasil Implementasi Broker Pada gambar 10, dapat dilihat hasil implementasi auth-server yang dijalankan melalui terminal ubuntu melalui aplikasi python. Dari hasil implementasi tersebut dapat dilihat bahwa auth-server berhasil dijalankan dan sedang menunggu pesan request dari broker terkait mekanisme autentikasi dan otorisasi pada url http://localhost/ pada port 8100.

Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 2829 Gambar 10. Hasil Implementasi Auth-Server Pada gambar 11, dapat dilihat hasil implementasi perangkat keras dari nodemcu sebagai mikrokontroler untuk sensor dan aktuator. Implementasi perangkat keras dilakukan dengan menghubungkan antara kedua perangkat nodemcu dengan ketiga led dan sensor dht11. Setelah berhasil dihubungkan maka selanjutnya dilakukan implementasi perangkat lunak dengan membuat kode program untuk tiap nodemcu yang akan melakukan komunikasi dengan broker sebagai klien MQTT. dengan membuat tiga skenario pengujian menggunakan konfigurasi mosquitto broker yang berbeda, ketiga konfigurasi tersebut meliputi: 1. Konfigurasi mosquitto broker tanpa authserver, serta tanpa Transport Layer Security. 2. Konfigurasi mosquitto broker dengan authserver, namun tanpa Transport Layer Security. 3. Konfigurasi mosquitto broker dengan authserver dan Transport Layer Security. Kemudian pengujian akan dilakukan dengan melakukan koneksi ke broker untuk menguji keamanan mekanisme autentikasi, serta melakukan publish ke broker untuk menguji keamanan mekanisme otorisasi pada setiap konfigurasi broker tersebut. Selain itu akan dilakukan sniffing paket menggunakan wireshark untuk melihat isi paket data. 5.1.1 Hasil Pengujian Tanpa Auth-Server (a) Gambar 12. Uji Autentikasi tanpa Auth-server Berdasarkan gambar 12, dapat dilihat bahwa konfigurasi tanpa auth-server berhasil menerima koneksi dari klien tanpa melakukan mekanisme autentikasi dan memeriksa identitas klien terlebih dahulu. (b) Gambar 11. Hasil Implementasi Perangkat Keras (a) nodemcu+led (b) nodemcu+dht11 5. PENGUJIAN DAN ANALISIS 5.1 Pengujian Keamanan Pengujian keamanan akan dilakukan untuk mengetahui aspek keamanan dari sistem berbasis protokol MQTT yang menerapkan mekanisme autentikasi dan otorisasi. Pengujian ini dilakukan dengan melihat bagaimana hasil penerapan auth-server sebagai pihak yang melakukan cek autentikasi dan otorisasi pada sistem, bagaimana klien MQTT dapat mengakses sistem dan bagaimana hasil perancangan ACL dapat mengatur otorisasi klien MQTT. Pengujian keamanan akan dilakukan Gambar 13. Uji Otorisasi tanpa Auth-server Berdasarkan gambar 13, dapat dilihat bahwa konfigurasi tanpa auth-server berhasil menerima dan meneruskan publish dari klien tanpa melakukan mekanisme otorisasi dan memeriksa ACL terlebih dahulu, sehingga klien dapat publish pesan pada topik manapun. 5.1.2 Hasil Pengujian Dengan Auth-Server Gambar 14. Uji Autentikasi dengan Auth-server

Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 2830 Berdasarkan gambar 14, dapat dilihat bahwa konfigurasi dengan auth-server berhasil menerima koneksi dari klien dengan melakukan pemeriksaan mekanisme autentikasi melalui auth-server dengan menggunakan token JWT sebagai identitas klien dan akan menolak koneksi dari klien yang tidak terautentikasi. Gambar 15. Uji Otorisasi dengan Auth-server Berdasarkan gambar 15, dapat dilihat bahwa konfigurasi dengan auth-server berhasil menerima dan meneruskan publish dari klien dengan melakukan pemeriksaan mekanisme otorisasi melalui auth-server dengan melihat hak akses klien yang ada di ACL dalam database, dan menolak publish dari klien yang tidak memiliki hak akses. 5.1.3 Hasil Pengujian Sniffing Gambar 16. Hasil Sniffing Konfigurasi tanpa TLS Berdasarkan gambar 16, dapat dilihat jika hasil sniffing konfigurasi broker yang tidak menerapkan keamanan TLS dapat dibaca secara plain-text. Meskipun user-credentials yang digunakan sudah di-encode dalam bentuk token JWT namun token JWT tersebut dapat digunakan kembali untuk mengakses sistem. Gambar 17. Hasil Sniffing Konfigurasi dengan TLS Berdasarkan gambar 17, dapat dilihat jika hasil sniffing konfigurasi broker yang menerapkan keamanan TLS tidak dapat dibaca secara plain-text, melainkan dalam bentuk enkripsi. Sehingga user-credentials dan data yang ada dalam sistem tidak dapat dicuri. 5.2 Pengujian Performa Pengujian performa akan dilakukan untuk mengetahui bagaimana performa sistem berdasarkan pada tiga konfigurasi mosquitto broker yang dilakukan pada pengujian kemanan yang akan dibandingkan berdasarkan pengaruh dari tiap konfigarasi tersebut. Pada pengujian ini akan digunakan beberapa parameter untuk menentukan hasil dari performa sistem dengan konfigurasi broker, paramater tersebut akan meliputi, waktu yang dibutuhkan untuk membangun koneksi (Conn-Time), waktu yang dibutuhkan untuk pengiriman atau publish satu pesan (Pub-Time), dan jumlah pesan yang mampu dikirimkan dalam waktu satu detik (Throughput). Konfigurasi Tanpa Auth- Server dan Tanpa TLS Dengan Auth- Server namun Tanpa TLS Dengan Auth- Server dan TLS Tabel 1. Hasil Pengujian Performa Conn- Time (detik) Pub- Time (detik) Throughput (pesan /detik) 0,0288 0,1379 925 0,0662 0,4883 205 0,0853 0,7092 141 Berdasarkan pada hasil pengujian yang di dapatkan tersebut, diketahui bahwa konfigurasi broker yang dibuat mempengaruhi performa terkait jumlah waktu yang dibutuhkan untuk melakukan koneksi, waktu yang dibutuhkan untuk publish pesan dan jumlah pesan yang mampu ditangani oleh server dalam satu detik. Diketahui bahwa dengan menerapkan authserver dan TLS memiliki performa yang ideal, dengan waktu koneksi selama 0,0853 detik, waktu publish selama 0,7092 detik serta jumlah pesan sebanyak 141 pesan dapat ditangani oleh broker tiap detiknya. 6. KESIMPULAN Berdasarkan hasil perancangan, implementasi dan pengujian yang telah dilakukan dalam penelitian ini, didapatkan beberapa kesimpulan sebagai berikut: 1. Berdasarkan pada hasil pengujian keamanan sistem, diketahui bahwa sistem

Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 2831 dengan konfigurasi broker MQTT yang tidak menerapkan mekanisme autentikasi dan otorisasi menggunakan ACL sangat vulnerable karena setiap pengguna dapat mengakses sistem dan melakukan kegiatan apa saja. Sedangkan dengan menerapkan ACL sebagai mekanisme autentikasi dan otorisasi berhasil mengatur dan membatasi identitas serta hak akses pengguna. 2. Berdasarkan pada hasil pengujian keamanan sistem, diketahui bahwa sistem dengan konfigurasi broker MQTT yang tidak menerapkan TLS sangat vulnerable karena data yang berisi user-credentials dapat dicuri dengan melakukan sniffing dan dapat dibaca secara plain-text. Sedangkan dengan menerapkan TLS berhasil melindungi data berisi user-credentials dari sniffing dengan melakukan enkripsi. 3. Berdasarkan pada hasil pengujian performa sistem, didapatkan bahwa penerapan mekanisme autentikasi dan otorisasi menggunakan auth-server mempengaruhi performa sistem. Performa sistem mendapatkan bahwa dengan auth-server dan TLS waktu koneksi yang dibutuhkan mengalami penurunan dengan selisih 0,0565 detik, waktu yang dibutuhkan untuk publish mengalami penurunan dengan selisih 0,5713 detik dan jumlah pesan yang mampu ditangani dalam satu detik mengalami penurunan dengan selisih 784 pesan setiap detiknya. V2.4.1. OneM2M Partners Publications Offices. US. Sengupta, S. & Ghosh, D. 2013. MQTT. Indian IETF-CB Program. Saikrishna, M., & Vijaykiran, G., 2017. IOT Based Home Electrical Appliances Control Using NodeMCU. S1. Ongole SSN Engineering College India. Upadhyay, Y., Borole, A. & Dileepan, D. 2016. MQTT Based Secured Home Automation System. IEEE Xplore Digital Library. DAFTAR PUSTAKA Al-Fuqaha, A., Guizani, M., Mohammadi, M., Aledhari, M. & Ayyash, M. 2015. Internet of Things: A Survey on Enabling Technologies, Protocols and Applications. IEEE Communication Surveys & Tutorial, 17(4), 2347-2378. Aziz, B. 2015. A Formal Model and Analysis of an IoT Protocol. ResearchGate. Jaffe, S., 2016. Design of Inexpensive and Easy to Use Internet of Things Platform. S1. California Polytechnic State University, California. Niruntasukrat, A., Issariyapat, C., Pongpaibool, P., dkk. 2016. Authorization Mechanism for MQTT-based Internet of Things. IEEE Xplore Digital Library. OneM2M, 2016. MQTT Protocol Binding