Implementasi Access Control List Berbasis Protokol MQTT pada Perangkat NodeMCU

  Vol. 2, No. 8, Agustus 2018, hlm. 2824-2831 http://j-ptiik.ub.ac.id

  

Implementasi Access Control List Berbasis Protokol MQTT pada Perangkat

1 NodeMCU 2 3 Ardhian Rizki Ramadhani , Adhitya Bhawiyuga , Reza Andria Siregar

  Program Studi Teknik Informatika, Fakultas Ilmu Komputer, Universitas Brawijaya 1 2 3 Email: ardhiaan@ymail.com, bhawiyuga@ub.ac.id, 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

  /subscribe. Penelitian ini dilakukan untuk mengetahui bagaimana menerapkan mekanisme

  publish

  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

  dimana “semua” objek saling terhubung dalam 1.

   PENDAHULUAN sebuah jaringan serta saling berkolaborasi dalam

  bentuk apapun, kapanpun dan dimanapun,

  Internet of Things (IoT), merupakan konsep Fakultas Ilmu Komputer Universitas Brawijaya

  

2824 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 topic-

  based 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 di-

  pushed 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 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.

  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).

  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 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 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.

  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 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 Gambar 7. Penanganan Subscribe

3.1 Perancangan Penanganan Publisher

  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 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.

  • toggle_user
  • status_user
  • red_user
  • green_user
  • blue_
  • Admin - temperature_user
  • humidity_user
  • led_sensor
  • dht_sensor 4.

IMPLEMENTASI SISTEM

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:

  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 auth- server 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.

  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.

  5.1.2 Hasil Pengujian Dengan Auth-Server Gambar 14. Uji Autentikasi dengan 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.

  Gambar 13. Uji Otorisasi 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.

  5.1.1 Hasil Pengujian Tanpa Auth-Server Gambar 12. Uji Autentikasi tanpa Auth-server

  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.

  3. Konfigurasi mosquitto broker dengan auth- server dan Transport Layer Security.

  Security .

  2. Konfigurasi mosquitto broker dengan auth- server, namun tanpa Transport Layer

  Security .

  Konfigurasi mosquitto broker tanpa auth- server, serta tanpa Transport Layer

  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 dengan membuat tiga skenario pengujian menggunakan konfigurasi mosquitto broker yang berbeda, ketiga konfigurasi tersebut meliputi: 1.

  Gambar 11. Hasil Implementasi Perangkat Keras (a) nodemcu+led (b) nodemcu+dht11 5.

  (a) (b)

PENGUJIAN DAN ANALISIS

5.1 Pengujian Keamanan

  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.

  Pub- Time Through- put

  1. Berdasarkan pada hasil pengujian keamanan sistem, diketahui bahwa sistem

  Berdasarkan hasil perancangan, implementasi dan pengujian yang telah dilakukan dalam penelitian ini, didapatkan beberapa kesimpulan sebagai berikut:

  6. KESIMPULAN

  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 auth- server 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.

  0,0853 0,7092 141

  Tanpa TLS 0,0662 0,4883 205 Dengan Auth- Server dan TLS

  Tanpa TLS 0,0288 0,1379 925 Dengan Auth- Server namun

  (detik) (detik) (pesan /detik) Tanpa Auth- Server dan

  Tabel 1. Hasil Pengujian Performa Konfigurasi Conn- Time

  Gambar 15. Uji Otorisasi dengan Auth-server

  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).

  5.2 Pengujian Performa

  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.

  Gambar 17. Hasil Sniffing Konfigurasi dengan TLS

  digunakan sudah di-encode dalam bentuk token JWT namun token JWT tersebut dapat digunakan kembali untuk mengakses sistem.

  plain-text . Meskipun user-credentials yang

  Berdasarkan gambar 16, dapat dilihat jika hasil sniffing konfigurasi broker yang tidak menerapkan keamanan TLS dapat dibaca secara

  Gambar 16. Hasil Sniffing Konfigurasi tanpa TLS

  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

  dengan konfigurasi broker MQTT yang

  V2.4.1. OneM2M Partners Publications tidak menerapkan mekanisme autentikasi Offices . US. dan otorisasi menggunakan ACL sangat

  Sengupta, S. & Ghosh, D. 2013. MQTT. Indian

  vulnerable karena setiap pengguna dapat IETF-CB Program .

  mengakses sistem dan melakukan kegiatan Saikrishna, M., & Vijaykiran, G., 2017. IOT apa saja. Sedangkan dengan menerapkan

  Based Home Electrical Appliances Control ACL sebagai mekanisme autentikasi dan otorisasi berhasil mengatur dan membatasi Using NodeMCU. S1. Ongole SSN

  Engineering College India. identitas serta hak akses pengguna.

  2. pada hasil pengujian Berdasarkan Upadhyay, Y., Borole, A. & Dileepan, D. 2016. keamanan sistem, diketahui bahwa sistem

  MQTT Based Secured Home Automation dengan konfigurasi broker MQTT yang System. IEEE Xplore Digital Library. 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.

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