0% menganggap dokumen ini bermanfaat (0 suara)
12 tayangan28 halaman

Bab 4

Diunggah oleh

Randy Machfud Y1F
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
12 tayangan28 halaman

Bab 4

Diunggah oleh

Randy Machfud Y1F
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 28

IMPLEMENTASI JSON WEB TOKEN PADA AUTHENTICATION

DENGAN ALGORITMA HMAC SHA-256

Tugas akhir diajukan


untuk melengkapi
persyaratan mencapai
gelar kesarjanaan

NAMA : RANDY MACHFUD


NPM : 202043500409

PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS


TEKNIK DAN ILMU KOMPUTER
UNIVERSITAS INDRAPRASTA PGRI
2023
BAB IV
PEMBAHASAN

A. Definisi Masalah
A. Identifikasi Masalah
Dalam era digital saat ini, keamanan data merupakan aspek
yang sangat penting dalam berbagai aplikasi dan layanan. Dalam
rangka melindungi integritas, kerahasiaan, dan otentikasi data,
teknologi keamanan seperti JSON Web Token (JWT) dan algoritma
HMAC SHA-256 digunakan secara luas. JWT adalah standar
terbuka (RFC 7519) yang digunakan untuk merepresentasikan
informasi dalam bentuk token yang dapat ditandatangani secara
digital. Metodologi penelitian yang digunakan dalam penelitian ini
adalah metode penelitian deskriptif. Metode deskriptif merupakan
metode yang menggambarkan tujuan dari data yang dikumpulkan
dan mencatat setiap aspek dari situasi yang diselidiki untuk
mendapatkan gambaran yang jelas tentang apa yang dibutuhkan.
Ditemukan bahwa terdapat beberapa kebocoran data ketika tidak
melakukan keamanan data secara berlapis, diantara kasus-kasus
yang pernah terjadi seperti kehilangan data data penting yang
terdapat didalam website dan kebocoran data penting yang
menyebabkan identitas tersebar luaskan. Kesimpulan dari
penggunaan JSON Web Token (JWT) dan algoritma HMAC SHA-
256 untuk keamanan website adalah bahwa kombinasi ini
memberikan lapisan perlindungan yang kuat terhadap ancaman
keamanan yang umum terjadi di lingkungan online.

B. Penyelesaian Masalah
 Autentikasi yang Aman : JWT dengan HMAC SHA-256
memungkinkan Anda untuk mengotentikasi pengguna dengan
cara yang aman. HMAC (Hash-based Message Authentication
Code) adalah algoritma yang kuat untuk menghasilkan tanda
tangan digital yang mengamankan data dalam JWT.
 Manajemen Sesi yang Tidak Diperlukan : Dalam implementasi
tradisional, server perlu mengelola sesi pengguna. Dengan JWT,
sesi tidak perlu disimpan di server, sehingga mengurangi beban
server dan memudahkan skalabilitas.
 Single Sign-On (SSO) : JWT dapat digunakan untuk
mengimplementasikan SSO, di mana pengguna dapat mengakses
beberapa aplikasi dengan satu kali masuk. JWT dapat berisi
klaim tentang identitas pengguna yang dapat digunakan oleh
berbagai layanan tanpa perlu masuk ulang.
 Otorisasi yang Fleksibel : JWT dapat menyertakan klaim yang
mendefinisikan izin pengguna. Ini memungkinkan Anda untuk
mengontrol dengan cermat apa yang dapat diakses oleh
pengguna yang telah terotentikasi.
 Pengiriman Data Terenkripsi : Anda dapat mengenkripsi data
dalam JWT untuk melindungi informasi sensitif. Dengan
algoritma HMAC SHA-256, Anda dapat yakin bahwa data
tersebut tidak telah diubah oleh pihak yang tidak sah.
 Scalability : JWT memungkinkan pengguna untuk terus
mengakses sumber daya tanpa perlu berinteraksi dengan server
untuk validasi token setiap kali. Ini membantu meningkatkan
skalabilitas aplikasi Anda.
 Tidak Bergantung pada Koneksi Sesi : Karena JWT tidak
bergantung pada sesi server, aplikasi yang menggunakan JWT
dapat dengan mudah diperluas dan berjalan di berbagai
lingkungan seperti mikroservis dan arsitektur berbasis cloud.
 Integritas Data : HMAC SHA-256 memastikan integritas data
dalam JWT. Jika data dalam JWT diubah oleh pihak yang tidak
sah, tanda tangan HMAC SHA-256 akan gagal, dan token tidak
akan dianggap valid.
 Mudah Dalam Penggunaan : JWT sangat mudah digunakan
dalam berbagai bahasa pemrograman dan framework. Ini
membuatnya menjadi pilihan yang populer untuk autentikasi
dalam berbagai jenis aplikasi.
 Memungkinkan Pembuatan Token dengan Waktu Terbatas :
Anda dapat membuat token JWT dengan waktu terbatas (JWT
yang kadaluarsa), yang membantu melindungi keamanan
aplikasi dengan membatasi durasi penggunaan token.

B. Pembahasan Algoritma
HMAC (Hash-based Message Authentication Code) adalah
konstruksi kriptografis yang menggunakan algoritma hash bersama
dengan kunci rahasia untuk menghasilkan tanda tangan atau kode
otentikasi. SHA-256 adalah salah satu algoritma hash yang populer dan
menghasilkan nilai hash 256- bit. Dalam konteks JWT, algoritma
HMAC SHA-256 digunakan untuk membuat tanda tangan digital dari
token. Proses ini melibatkan penggabungan payload dengan kunci
rahasia, kemudian menghasilkan nilai hash menggunakan algoritma
SHA-256. Nilai hash ini adalah tanda tangan digital yang akan
dimasukkan ke dalam token JWT. Berikut merupakan fungsi dari
Algoritma HMAC SHA-256 dapat dilihat pada gambar.

Fungsi utama SHA-256 adalah untuk menerima input berupa data


atau pesan M dengan panjang berapa pun, lalu mengembalikan nilai
hash h(M) dengan panjang 256 bit. SHA- 256 menggunakan 6 fungsi
logis, masing-masing beroperasi pada kata 32-bit yang direpresentasikan
sebagai x, y, dan z. Hasil dari setiap fungsi adalah kata 32-bit baru.

Berikut adalah fungsi boolean di SHA-256.

Keterangan:
ROTR (Right Rotate)
SHR (Right Shift)
Selanjutnya token yang didapat dari JWT tersebut di encryption
dengan JSON Web Encryption (JWE) dengan menggunakan algoritma
HMAC SHA-256 dimana pesan yang diterima diberikan kunci
tambahan yang sama dengan hasilnya dapat dilihat pada gambar berikut.

Gambar diatas bertujuan supaya payloud tidak dapat membuat


tanda tangan baru karena memerlukan kunci untuk melakukannya yang
hanya da di konfigurasi API.
C. Pemodelan Perangkat Lunak
1. Pemodelan Perangkat Lunak
A. Use Case Diagram
 Use Case Diagram

 Use Case Narrative

No. Use Case 1


Nama Use Case Aplikasi Web
Deskripsi User Menggunakan Aplikasi Web untuk
melakukan Login atau Autentikasi pada aplikasi.
Actor Utama User
Actor Pendukung Tidak Ada
Use Case yang di-Include
Kondisi Awal User akan melakukan Login pada Aplikasi Web
Kondisi Akhir User berhasil Login dengan Aplikasi Web
Pemicu JWT Authentication (POST)
Alur Utama Actor Sistem
1. User melakukan
Login Aplikasi
2. Melakukan
Autentikasi dan
Otorisasi
3. Berhasil Login atau
Akses database sesuai
kebutuhan
Alur Alternatif 2a. Jika gagal
Autentikasi dan
Otorisasi
3a. Gagal Login atau
Akses database
Pengecualian Tidak ada
No. Use Case 2
Nama Use Case Aplikasi Dektop
Deskripsi User Menggunakan Aplikasi Dekstop untuk
melakukan Login atau Autentikasi pada aplikasi.
Actor Utama User
Actor Pendukung Tidak Ada
Use Case yang di-Include
Kondisi Awal User akan melakukan Login pada Aplikasi
Dekstop
Kondisi Akhir User berhasil Login dengan Aplikasi Dekstop
Pemicu JWT Authentication (POST)
Alur Utama Actor Sistem
1. User melakukan
Login Aplikasi
2. Melakukan
Autentikasi dan
Otorisasi
3. Berhasil Login atau
Akses database sesuai
kebutuhan
Alur Alternatif 2a. Jika gagal
Autentikasi dan
Otorisasi
3a. Gagal Login atau
Akses database
Pengecualian Tidak ada
No. Use Case 3
Nama Use Case Aplikasi Mobile
Deskripsi User Menggunakan Aplikasi Mobile untuk
melakukan Login atau Autentikasi pada aplikasi.
Actor Utama User
Actor Pendukung Tidak Ada
Use Case yang di-Include
Kondisi Awal User melakukan Login pada Aplikasi Mobile
Kondisi Akhir User berhasil Login dengan Aplikasi Mobile
Pemicu JWT Authentication (POST)
Alur Utama Actor Sistem
1. User melakukan
Login Aplikasi
2. Melakukan
Autentikasi dan
Otorisasi
3. Berhasil Login atau
Akses database sesuai
kebutuhan
Alur Alternatif 2a. Jika gagal
Autentikasi dan
Otorisasi
3a. Gagal Login atau
Akses database
Pengecualian Tidak ada
No. Use Case 4
Nama Use Case Aplikasi Eksternal
Deskripsi User Menggunakan Aplikasi Eksternal untuk
melakukan Login atau Autentikasi pada aplikasi.
Aplikasi Eksternal yang dimaksud yaitu aplikasi
yang tidak di maintenance pada internal
perusahaan atau berbeda vendor aplikasi.
Actor Utama User
Actor Pendukung Tidak Ada
Use Case yang di-Include
Kondisi Awal User melakukan Login pada Aplikasi Eksternal
Kondisi Akhir User berhasil Login dengan Aplikasi Eksternal
Pemicu JWT Authentication (POST)
Alur Utama Actor Sistem
1. User melakukan
Login Aplikasi
2. Melakukan
Autentikasi dan
Otorisasi
3. Berhasil Login atau
Akses database sesuai
kebutuhan
Alur Alternatif 2a. Jika gagal
Autentikasi dan
Otorisasi
3a. Gagal Login atau
Akses database
Pengecualian Tidak ada

No. Use Case 5


Nama Use Case JWT Authentication Web Service
Deskripsi JWT Authentication sebagai autentikator dengan
Algoritma HMAC SHA-256 berfungsi untuk
meningkatkan keamanan dalam Login atau
Akses ke database.
Actor Utama JWT Authentication Web Service
Actor Pendukung Tidak Ada
Use Case yang di-Include
Kondisi Awal JWT proses autentikasi user pada aplikasi login
yang melakukan request
Kondisi Akhir JWT akses database memberikan respon atau
balikan data sesuai kebutuhan kepada user yang
melakukan request.
Pemicu Tidak Ada
Alur Utama Actor Sistem
1. Autentikasi request
dan validasi Login
2. Akses database
sesuai request
3. Kirim balikan data
sesuai request
Alur Alternatif 2a. Gagal akses
database
3a. Kirim message
error gagal akses dan
alasannya
Pengecualian Tidak ada

B. Activity Diagram
 Activity Diagram

No. Use Case 1


Nama Use Case Aplikasi Web
Deskripsi User Menggunakan Aplikasi Web untuk
melakukan Login atau Autentikasi pada aplikasi.
Actor Utama User
Actor Pendukung Tidak Ada
Use Case yang di-Include
Kondisi Awal User akan melakukan Login pada Aplikasi Web
Kondisi Akhir User berhasil Login dengan Aplikasi Web
Pemicu JWT Authentication (POST)
No. Use Case 2
Nama Use Case Aplikasi Dekstop
Deskripsi User Menggunakan Aplikasi Dekstop untuk
melakukan Login atau Autentikasi pada aplikasi.
Actor Utama User
Actor Pendukung Tidak Ada
Use Case yang di-Include
Kondisi Awal User akan melakukan Login pada Aplikasi
Dekstop
Kondisi Akhir User berhasil Login dengan Aplikasi Dekstop
Pemicu JWT Authentication (POST)
No. Use Case 3
Nama Use Case Aplikasi Mobile
Deskripsi User Menggunakan Aplikasi Mobile untuk
melakukan Login atau Autentikasi pada aplikasi.
Actor Utama User
Actor Pendukung Tidak Ada
Use Case yang di-Include
Kondisi Awal User akan melakukan Login pada Aplikasi
Mobile
Kondisi Akhir User berhasil Login dengan Aplikasi Mobile
Pemicu JWT Authentication (POST)
No. Use Case 4
Nama Use Case Aplikasi Eksternal
Deskripsi User Menggunakan Aplikasi Eksternal untuk
melakukan Login atau Autentikasi pada aplikasi.
Aplikasi Eksternal yang dimaksud yaitu aplikasi
yang tidak di maintenance pada internal
perusahaan atau berbeda vendor aplikasi.
Actor Utama User
Actor Pendukung Tidak Ada
Use Case yang di-Include
Kondisi Awal User akan melakukan Login pada Aplikasi
Eksternal
Kondisi Akhir User berhasil Login dengan Aplikasi Eksternal
Pemicu JWT Authentication (POST)
No. Use Case 5
Nama Use Case JWT Authentication Web Service
Deskripsi JWT Authentication sebagai autentikator dengan
Algoritma HMAC SHA-256 berfungsi untuk
meningkatkan keamanan dalam Login atau
Akses ke database.
Actor Utama JWT Authentication Web Service
Actor Pendukung Tidak Ada
Use Case yang di-Include
Kondisi Awal JWT proses autentikasi user pada aplikasi login
yang melakukan request
Kondisi Akhir JWT akses database memberikan respon atau
balikan data sesuai kebutuhan kepada user yang
melakukan request.
Pemicu Web Service Autentikator untuk Akses Database
C. Class Diagram
 Class Diagram

a. Autentikasi
Pada class ini terjadi checking user,password dan
reqId untuk jenis perintah yang dijalankan untuk database.
b. ReqMaster
Pada class ini terjadi checking perintah apa yg di
berikan oleh JWT untuk merespon balikan data dari
database yang diperlukan.
c. Return
Pada class ini terjadi penampungan data dari
database untuk di teruskan kembali ke Aplikasi yang
meminta sesuai dengan kebutuhannya.

D. Sequence Diagram
 Sequence Diagram

Pada diagram tersebut di gambarkan user melakukan Login


pada Aplikasi Web meminta akses database sesuai dengan reqId.
Sebelum mendapatkan akses, aplikasi melakukan autentikasi
pada JWT Autentikasi dengan HMAC SHA-256 terlebih dahulu.
Setelah autentikasi berhasil, JWT melakukan pengambilan data
dari database yang diminta sesuai dengan reqId. Namun, jika
gagal JWT langsung mengembalikan pesan bahwa Autentikasi
gagal.
Pada diagram tersebut di gambarkan user melakukan Login
pada Aplikasi Dekstop meminta akses database sesuai dengan
reqId. Sebelum mendapatkan akses, aplikasi melakukan
autentikasi pada JWT Autentikasi dengan HMAC SHA-256
terlebih dahulu. Setelah autentikasi berhasil, JWT melakukan
pengambilan data dari database yang diminta sesuai dengan
reqId. Namun, jika gagal JWT langsung mengembalikan pesan
bahwa Autentikasi gagal.
Pada diagram tersebut di gambarkan user melakukan Login
pada Aplikasi Mobile meminta akses database sesuai dengan
reqId. Sebelum mendapatkan akses, aplikasi melakukan
autentikasi pada JWT Autentikasi dengan HMAC SHA-256
terlebih dahulu. Setelah autentikasi berhasil, JWT melakukan
pengambilan data dari database yang diminta sesuai dengan
reqId. Namun, jika gagal JWT langsung mengembalikan pesan
bahwa Autentikasi gagal.
Pada diagram tersebut di gambarkan user melakukan Login
pada Aplikasi Mobile meminta akses database sesuai dengan
reqId. Sebelum mendapatkan akses, aplikasi melakukan
autentikasi pada JWT Autentikasi dengan HMAC SHA-256
terlebih dahulu. Setelah autentikasi berhasil, JWT melakukan
pengambilan data dari database yang diminta sesuai dengan
reqId. Namun, jika gagal JWT langsung mengembalikan pesan
bahwa Autentikasi gagal.
Pada diagram tersebut di gambarkan Aplikasi meminta
akses database sesuai dengan reqId. Sebelum mendapatkan
akses, aplikasi melakukan autentikasi pada JWT Autentikasi
dengan HMAC SHA-256 terlebih dahulu. Setelah autentikasi
berhasil, JWT melakukan query pada database, kemudian hasil
query data dikirim sesuai dengan reqId. Namun, jika gagal JWT
langsung mengembalikan pesan bahwa Autentikasi gagal.
E. Object Diagram
 Object Diagram

 Use Case Description


a. Autentikasi
Pada Object ini terjadi Aplikasi yang mencoba
masuk (user) adalah "admin". Kata sandi yang digunakan
(password) telah dienkripsi dengan algoritma HMAC-
SHA256. Permintaan ID (reqId) adalah "0001". Hasil
autentikasi mengembalikan objek yang berisi data dan
pesan (return) dengan status autentikasi berhasil
(status=1).
b. ReqMaster
Pada Object ini merepresentasikan permintaan
master dengan ID "0001". Permintaan ini memiliki nama
"Login Aplikasi" (reqName) dan status aktif (Status=1).
Permintaan master ini berkaitan dengan proses autentikasi
yang sebelumnya dijelaskan.
c. Return
Pada Object ini merepresentasikan hasil
pengembalian dari sebuah permintaan dengan reqId "0001".
Objek ini berisi data tabel yang terkait dengan
"User_Master" dan memiliki status yang menunjukkan
keberhasilan eksekusi permintaan (status=1). Hasil ini
mungkin berkaitan dengan hasil autentikasi yang dijelaskan
dalam objek Autentikasi.

F. Deployment Diagram
 Use Case Narrative

 Use Case Description


a. Aplikasi Web / Dekstop / Mobile / Eksternal
Aplikasi yang dapat diakses oleh pengguna dari
berbagai jenis platform, seperti web, desktop, mobile, atau
eksternal. Kemudian dapat mengobrol dengan JWT
Autentikasi melalui bahasa Web Services.
b. JWT Authentikasi
Mekanisme otentikasi berbasis JWT (JSON Web
Token) dengan menambahkan HMAC SHA-256 sebagai
otorisasinya.
c. Database
Ini adalah server basis data (database server).
2. Rancangan Layar

Pada rancangan layar ini, tergambarkan user untuk


melakukan login Aplikasi. User harus input userid dan password
dengan benar.

D. Kelebihan dan Kekurangan Penelitian


1. Kelebihan Penelitian
 Keamanan
Algoritma HMAC SHA-256 memberikan tingkat keamanan
yang baik. SHA-256 merupakan fungsi hash kriptografis yang kuat
dan umum digunakan.
 Ringkas dan Efisien
JWT menggunakan format yang ringkas, sehingga mudah
ditransfer melalui HTTP Header atau Parameter URL. Ini
membuatnya efisien untuk digunakan dalam komunikasi web.
 Dukungan Industri
JWT dengan algoritma HMAC SHA-256 adalah standar
industri yang umum digunakan. Hal ini memudahkan
interoperabilitas dengan sistem lain yang mendukung JWT.
 Decentralized Authentication
JWT mendukung autentikasi terdesentralisasi. Setiap pihak
yang menerima token dapat memverifikasinya tanpa perlu
menghubungi server otentikasi, karena informasi yang diperlukan
sudah terkandung dalam token.
 Fleksibilitas dan Customisability
JWT dapat dengan mudah disesuaikan dengan kebutuhan
spesifik aplikasi. Anda dapat menyertakan klaim tambahan dalam
token untuk menyimpan informasi tambahan yang diperlukan.

2. Kekurangan Penelitian
 Manajemen Status Sesi Tidak Trivial
JWT adalah mekanisme otentikasi yang stateless, yang
berarti server tidak menyimpan status sesi pengguna. Ini dapat
membuat manajemen status sesi lebih rumit, terutama jika
diperlukan pembatalan atau penonaktifan token tertentu.
 Keterbatasan Pada Penyimpanan Data
Ukuran maksimal data yang dapat disimpan dalam JWT
tergantung pada pembatasan ukuran maksimal untuk header dan
payload. Ini dapat menjadi keterbatasan jika informasi tambahan
yang besar perlu disimpan.
 Tidak Dapat Dicabut (Non-Revocable)
Setelah token JWT diterbitkan, sulit untuk mencabut atau
mematikan token sebelum waktu kadaluwarsa tanpa menyimpan
status sesi di server. Ini berbeda dengan mekanisme otentikasi
tradisional yang dapat mencabut sesi kapan saja.
 Potensi Kerusakan jika Kunci Terungkap
Keamanan JWT bergantung pada kerahasiaan kunci yang
digunakan untuk menandatangani token. Jika kunci bocor, hal ini
dapat membahayakan keamanan sistem secara keseluruhan.
 Kurangnya Mekanisme Pembaruan (Refresh)
JWT tidak secara intrinsik mendukung mekanisme
pembaruan atau refresh token tanpa mengganti seluruh token. Ini
dapat menimbulkan kekhawatiran keamanan jika token lama tidak
dapat dengan cepat dinonaktifkan.
 Waktu Kadaluwarsa Harus Diatur Saat Pembuatan Token
Waktu kadaluwarsa token harus diatur saat token dibuat. Ini
dapat menjadi kurang fleksibel jika kebutuhan waktu kadaluwarsa
bervariasi.

Anda mungkin juga menyukai