Pendahuluan
Aset merupakan barang atau benda yang terdiri dari benda yang bersifat
tidak bergerak dan benda yang bersifat bergerak, baik yang berwujud dan tidak
berwujud yang tercakup dalam kekayaan perusahaan atau instansi. Pengelolaan
aset dan kebutuhan informasi mengenai data dan informasi suatu aset sangatlah
penting guna untuk memperbaiki kinerja atau efisiensi di dalam suatu instansi atau
lembaga [1]. Sebagai contoh informasi untuk mengetahui apakah suatu alat
produksi sudah saatnya untuk diganti atau masih layak untuk diperbaiki.
Lembaga Penjaminan Mutu dan Audit Internal (LPMAI) merupakan suatu
lembaga yang berada dalam Universitas Kristen Satya Wacana (UKSW) yang
bergerak dalam penjaminan mutu UKSW. LPMAI terdiri dari beberapa divisi,
diantara divisi tersebut adalah Sumber Daya dan Informasi (SDI) yang dimana
salah satu tugas dari divisi SDI adalah melakukan pengelolaan aset. LPMAI
Universitas Kristen Satya Wacana memiliki banyak aset yang belum
terdokumentasi dengan baik. Oleh karena belum adanya sebuah sistem untuk
mengelola data aset di LPMAI dan untuk memudahkan proses inventarisasi aset,
maka dibuatlah aplikasi inventaris aset yang berbasis web.
Dalam pemrograman web terdapat dua metode untuk mengirimkan data dari
client ke server. Kedua metode tersebut adalah parameter POST method dan
parameter GET method. POST method adalah jenis request dimana pengiriman
data dilakukan dengan memasukkan data pada sebuah permintaan (body of
request), sementara GET method adalah jenis request yang menempatkan data
yang dikirimkan pada URL web yang dituju. Hal ini menjadi salah satu
kelemahan dari GET method karena rentan terhadap serangan seperti XSS
maupun SQL injection [2]. Salah satu mekanisme untuk meningkatkan keamanan
adalah dengan menggunakan teknologi enkripsi. Enkripsi (encryption) adalah
proses yang dilakukan untuk mengamankan sebuah pesan (yang disebut plaintext)
menjadi pesan yang tersembunyi (disebut ciphertext). Ciphertext adalah pesan
yang sudah tidak dapat dibaca dengan mudah. Proses sebaliknya, untuk mengubah
ciphertext menjadi plaintext, disebut dekripsi (decryption) [3].
Berikut adalah hasil pengujian terhadap keamanan web dari serangan SQL
injection sebelum dilakukan proses enkripsi URL. Pengujian dilakukan
menggunakan aplikasi Web Cruiser Web Vulnerability Scanner.
2. Tinjauan Pustaka
Penelitian terdahulu yang berkaitan dalam penelitian ini berjudul
“Perlindungan Web pada Login Sistem Menggunakan Algoritma Rijndael”
membahas tentang pengamanan sistem menggunakan algoritma Rijndael untuk
mengenkripsi data. Algoritma Rijndael terpilih sebagai algoritma kriptografi yang
dapat melindungi informasi dengan baik serta efisien dalam implementasinya dan
dinobatkan sebagai Advanced Encryption Standard (AES). Algoritma ini akan
ditanamkan pada login sistem untuk melindungi akses yang tidak sah dari
penyerang. Hasil dari penggunaan algoritma Rinjdael dapat melindungi sistem
login dengan baik sehingga sistem dinyatakan aman dari para penyerang website
[4].
Penelitian yang berjudul “Implementasi AESCHIPPER Class Untuk
Enkripsi URL di Sistem Informasi Akademik Fakultas Teknik Universitas
Diponegoro” membahas tentang bagaimana mengatasi kelemahan parameter GET
yang ada pada aplikasi berbasis web yaitu Sistem Informasi Akademik Fakultas
Teknik Universitas Diponegoro dengan menggunakan teknik enkripsi ke URL
yang menggunakan parameter GET. Prosesnya adalah mengenkripsi variabel pada
sisi client dan mendekripsi pada sisi server untuk mengembalikan data aktual.
Hasilnya adalah variabel yang dikirim dengan parameter GET tidak ditampilkan
pada URL pada tiga modul, yaitu halaman menu utama, ganti password dan link
keluar dari sistem. Proses enkripsi menambahkan akses waktu ke sistem dengan
rata-rata 0:05 detik, sehingga garis besar tidak mempengaruhi kinerja sistem [2].
Mengacu pada penelitian terdahulu, maka penelitian ini akan
mengimplementasikan algoritma AES untuk enkripsi URL pada aplikasi
inventaris aset LPMAI yang berbasis web. Dalam penelitian ini, aplikasi
inventaris aset dibuat dengan PHP, MySQL, Bootstrap, Javascript, library FPDF
untuk generate keluaran berupa dokumen pdf, dan library ChartJs untuk
menampilkan anggaran dalam bentuk grafik.
Pemrograman web atau aplikasi web adalah aplikasi yang dibangun
berbasiskan web dengan menggunakan konsep client-server. Aplikasi yang
dibangun disimpan pada sisi server dalam bentuk dokumen yang disebut dengan
dokumen web yang dirancang dengan menggunakan HTML. Sisi client bertugas
untuk menampilkan halaman web yang terdapat pada server sesuai dengan
1
permintaan pengguna/client dengan menggunakan protokol HTTP [2]. Proses
enkripsi URL menggunakan modul enkripsi dan dekripsi yang berasal dari
phpclasses.org dan diterapkan ke dalam aplikasi inventaris aset. Ilmu yang
mempelajari enkripsi dan dekripsi adalah kriptografi.
Kriptografi adalah ilmu mengenai teknik enkripsi dimana data diacak
menggunakan suatu kunci enkripsi menjadi sesuatu yang sulit dibaca oleh
seseorang yang tidak memiliki kunci dekripsi [5]. Pada dasarnya, sebuah metode
keamanan memiliki 2 proses utama yaitu enkripsi dan dekripsi. Enkripsi
(encryption) adalah proses menyandikan plaintext menjadi ciphertext, sedangkan
dekripsi (decryption) adalah proses mengembalikan chipertext menjadi plaintext
semula [6]. Dalam proses enkripsi dekripsi ada 2 istilah yaitu plaintext dan
ciphertext, dimana plaintext adalah pesan atau data awal yang masih jelas terbaca,
sedangkan ciphertext adalah pesan hasil pemrosesan suatu algoritma kemanan
data sehingga pesan atau data tidak terbaca, bisa berupa simbol ataupun susunan
huruf yang acak. Dalam penelitian ini enkripsi URL pada aplikasi inventaris aset
menerapkan algoritma AES (Advanced Encryption Standard).
Algoritma AES merupakan algoritma enkripsi yang populer dan merupakan
standar baru yang menggantikan algoritma DES (Data Encryption Standard),
karena DES sudah dianggap tidak aman. Pada bulan Oktober 2000, NIST
mengumumkan untuk memilih Rijndael (dibaca: Rhine-doll), dan pada bulan
November 2001, Rijndael ditetapkan sebagai AES, dan diharapkan Rijndael
menjadi standard kriptografi yang dominan paling sedikit selama 10 tahun [7].
Algoritma AES memiliki panjang kunci yang fleksibel dengan 3 varian bit, yaitu
128, 192 dan 256. Untuk panjang blok plaintext yang akan dienkripsi sebesar 128
bit atau setara dengan 16 karakter.
2
1. AddRoundKey: melakukan XOR antara state awal (plaintext) dengan cipher
key. Tahap ini disebut juga initial round.
2. Putaran sebanyak Nr – 1 kali. Proses yang dilakukan pada setiap putaran
adalah:
a. SubBytes: substitusi byte dengan menggunakan tabel substitusi (S-box).
b. ShiftRows: pergeseran baris-baris array state secara wrapping.
c. MixColumns: mengacak data di masing-masing kolom array state.
d. AddRoundKey: melakukan XOR antara state sekarang round key.
3. Final round: proses untuk putaran terakhir:
a. SubBytes
b. ShiftRows
c. AddRoundKey
3. Metode Penelitian
Pada penelitian ilmiah ini dilakukan beberapa tahapan penelitian yang
memiliki keterkaitan antara tahapan satu dengan tahapan lain. Tahapan dalam
penelitian ini dapat dilihat pada gambar 3 [9].
3
merupakan tahap dokumentasi terhadap penelitian yang telah dilakukan dalam
bentuk artikel ilmiah.
Metode perancangan sistem yang dipakai dalam pembuatan aplikasi
inventaris aset yaitu metode prototype. Metode prototype adalah metode dalam
pengembangan rekayasa software yang bertahap dan berulang serta
mementingkan sisi user. Pengembangan software dengan metode ini dilakukan
secara bertahap mulai dari membuat purwarupa yang sederhana, selanjutnya
purwarupa akan dikembangkan dari waktu ke waktu hingga pembuatan software
selesai dan sesuai dengan kebutuhan user.
Gambar 5 merupakan use case diagram pada aplikasi inventaris aset. Use
case menjelaskan manfaat sistem yang dilihat dari sudut pandang orang atau
4
sesuatu yang berada diluar sistem (aktor), aktor user hanya bisa melihat data aset,
divisi, laporan peminjaman aset, dan grafik anggaran per tahun saja, yang telah
diolah oleh admin, manipulasi data atau menghapus sejumlah data hanya bisa
dilakukan oleh aktor admin. Admin merupakan staf bagian SDI (Sumber Daya dan
Informasi) yang bertugas melakukan manajemen aset, user, divisi, dan anggaran.
5
Gambar 7 merupakan activity diagram user dari aplikasi inventaris aset.
User melakukan login untuk melihat data aset, melihat laporan peminjaman, dan
melihat grafik anggaran.
Proses enkripsi dan dekripsi URL pada aplikasi inventaris aset dapat
dijelaskan dalam flowchart pada gambar 8 dan gambar 9.
6
e) Menggabung hasil dekripsi 32 karakter menjadi satu string dekripsi utuh.
f) Mengambil plaintext hasil proses dekripsi untuk diproses di database.
Pada halaman ini mengharuskan admin maupun user untuk melakukan login
dengan memasukkan username dan password yang sudah terdaftar di database
sistem. Kemudian sistem akan menentukan apakah pengguna merupakan admin
atau user. Jika sistem memverifikasi pengguna maka akan tampil halaman
beranda seperti pada gambar 11.
7
Gambar 11 merupakan tampilan halaman admin. Admin memiliki semua
hak akses create, read, update, delete terhadap fungsi-fungsi pada aplikasi seperti
mengelola data aset, divisi, anggaran, dan laporan peminjaman aset.
Seperti pada penjelasan sebelumnya, penelitian ini menambahkan fitur pada
aplikasi inventaris aset berupa enkripsi URL pada parameter GET dengan
algoritma AES yang bertujuan untuk meningkatkan keamanan aplikasi inventaris
aset.
AES merupakan algoritma block cipher yang menggunakan sistem
permutasi dan subtitusi (P-BOX dan S-BOX) dan memiliki 3 jenis yaitu 128, 192,
dan 256 bit. Berdasarkan ukuran blok yang tetap, AES bekerja pada matriks
berukuran 4x4 di mana tiap-tiap sel matriks terdiri atas 1 byte (8 bit). Dalam
penelitian ini menggunakan AES 128-bit yang setara dengan 16 karakter.
y
hex
0 1 2 3 4 5 6 7 8 9 a b c d e f
0 63 7c 77 7b f2 6b 6f c5 30 01 67 2b fe d7 ab 76
1 ca 82 c9 7d fa 59 47 f0 ad d4 a2 af 9c a4 72 c0
2 b7 fd 93 26 36 3f f7 cc 34 a5 e5 f1 71 d8 31 15
3 04 c7 23 c3 18 96 05 9a 07 12 80 e2 eb 27 b2 75
4 09 83 2c 1a 1b 6e 5a a0 52 3b d6 b3 29 e3 2f 84
5 53 d1 00 ed 20 fc b1 5b 6a cb be 39 4a 4c 58 cf
6 d0 ef aa fb 43 4d 33 85 45 f9 02 7f 50 3c 9f a8
7 51 a3 40 8f 92 9d 38 f5 bc b6 da 21 10 ff f3 d2
x
8 cd 0c 13 ec 5f 97 44 17 c4 a7 7e 3d 64 5d 19 73
9 60 81 4f dc 22 2a 90 88 46 ee b8 14 de 5e 0b db
a e0 32 3a 0a 49 06 24 5c c2 d3 ac 62 91 95 e4 79
b e7 c8 37 6d 8d d5 4e a9 6c 56 f4 ea 65 7a ae 08
c ba 78 25 2e 1c a6 b4 c6 e8 dd 74 1f 4b bd 8b 8a
d 70 3e b5 66 48 03 f6 0e 61 35 57 b9 86 c1 1d 9e
e e1 f8 98 11 69 d9 8e 94 9b 1e 87 e9 ce 55 28 df
f 8c a1 89 0d bf e6 42 68 41 99 2d 0f b0 54 bb 16
Berikut merupakan contoh penerapan AES 128 bit pada variabel URL.
1. Definisikan plaintext dan key.
Plaintext : kode_aset=A00003 (16 karakter)
Key : ard0.saR0fa rich
2. Lakukan konversi plaintext dan key diatas ke dalam nilai hexadecimal.
Konversi plaintext ke hexadecimal.
k o d e _ a s e t = A 0 0 0 0 3
6B 6F 64 65 5F 61 73 65 74 3D 41 30 30 30 30 33
8
Konversi key ke hexadecimal.
a r d 0 . s a R 0 f a r i c h
61 72 64 30 2E 73 61 52 30 66 61 20 72 69 63 68
9
o Plaintext dalam HEX: 6B 6F 64 65 5F 61 73 65 74 3D 41 30 30 30 30
33.
o Ambil plaintext lalu XOR dengan kunci putaran 0.
⊕ =
S-BOX
⊕ =
10
Tabel 3 Hasil Ciphertext Setiap Putaran
Putaran ke-10 adalah putaran akhir pada proses enkripsi. Pada putaran ini
tidak ada proses mix column, hanya melalui proses subtitusi S-BOX, shift row dan
add roundkey. Jadi chipertext yang ditampilkan ke URL adalah hasil putaran ke-
10 yaitu: f05c5ea429a89d35879a7696fe27b1c1. Tabel 3 merupakan hasil dari satu
contoh proses enkripsi dengan AES 128 bit, untuk hasil enkripsi dari masukan
berupa plaintext dan keluaran berupa chipertext dapat dilihat pada tabel 4.
Plaintext Chipertext
kode_aset=A00001 933410dc26eff325c753a12dfc1720cb
kode_aset=A00002 88faa3bd4023c954025018656050fec8
kode_aset=A00003 f05c5ea429a89d35879a7696fe27b1c1
kode_aset=A00004 d0ce13b245bd91b313cb4585a5406533
kode_aset=A00005 c01ab31748256519b06cd5bc39cd88fd
kode_aset=A00006 6de44cc18d8174e3bf34a17f4ffbcbb3
kode_aset=A00007 84b29a2671a30a1f9802d36c920b33d2
kode_aset=A00008 356f12422898151720b71e89acc5b5fd
kode_aset=A00009 e2e0cffba5b21e84a90c3aa0aa434053
kode_aset=A00010 f75b5124b45c1b293192efbb132ebb83
Pada tabel 4 disajikan plaintext berupa parameter GET dari URL dan hasil
keluaran berupa chipertext hasil enkripsi AES 128 bit.
Proses dekripsi merupakan proses merubah ciphertext menjadi plaintext
awal. Proses dekripsi dilakukan sama seperti enkripsi, tetapi dimulai dari putaran
ke-10 menuju putaran ke-0 untuk mendapatkan plaintext awal.
11
Pada bagian ini dijelaskan pseudo-code implementasi algoritma AES untuk
enkripsi URL pada sistem informasi data aset LPMAI berbasis web. Proses
enkripsi dan proses dekripsi sebagai berikut:
Proses Enkripsi
{Program ini digunakan untuk melakukan proses enkripsi URL}
Kamus:
Nr: Jumlah Ronde
w: Baris Byte Kunci Ronde
CT: Chipertext
K: Kunci
P: Plaintext: parameter GET
Start
(Nr, w) (K)
CT = P
AddRoundKey(CT,w[0...3])
for i=1 Nr do
SubBytes(CT)
ShiftRows(CT)
if i ≠ Nr then
MixColumn(CT)
endif
AddRoundKey(CT,w[(i*4)...(i*4+3)])
end for
End
Proses Dekripsi
{Program ini digunakan untuk melakukan proses dekripsi URL}
Kamus:
Nr: Jumlah Ronde
w: Baris Byte Kunci Ronde
CT: Chipertext
K: Kunci
P: Plaintext: parameter GET
Start
(Nr, w) (K)
P = CT
AddRoundKey (P, w [Nr*4...Nr*4-3])
for i=1 Nr do
InvSubBytes (P)
InvShiftRows (P)
AddRoundKey (P, w [(Nr-1)*4...((Nr-i)*4)+3])
if i ≠ Nr then
InvMixColumn (P)
end if
AddRoundKey (CT, w [(i*4)...(i*4+3)])
end for
End
12
Selanjutnya pada penelitian ini dilakukan pengujian keamanan web dari
serangan SQL injection setelah proses enkripsi URL menggunakan aplikasi Web
Cruiser Web Vulnerability Scanner dan pengujian waktu akses sistem. Waktu
akses sistem merupakan salah satu parameter yang digunakan untuk mengukur
performa suatu sistem/aplikasi. Pengukuran waktu akses sistem yang
menggunakan enkripsi URL maupun yang tanpa enkripsi URL menggunakan
add-on bernama firebug di perambah Mozilla Firefox.
Pengujian keamanan web dari serangan SQL injection menggunakan
aplikasi Web Cruiser Web Vulnerability Scanner ditampilkan pada gambar 12.
Waktu akses diukur dalam satuan detik. Dari gambar 13 dan 14 terlihat
bahwa sistem dengan enkripsi URL memiliki waktu akses 1.08 detik. Sedangkan
pada sistem tanpa enkripsi URL memiliki waktu akses 1.01 detik. Terdapat selisih
sebesar 0.07 detik dimana sistem dengan enkripsi memiliki waktu akses lebih
lama dibanding sistem tanpa enkripsi.
13
Tabel 5 Perbandingan waktu akses dengan enkripsi dan tanpa enkripsi
5. Simpulan
6. Daftar Pustaka
[1] Yahya, Mochammad Indra. 2012. Perancangan Sistem Informasi Aset
Manajemen Berbasis Web di SMP Negeri 35 Surabaya. Surabaya:
Universitas Pembangunan Nasional.
[2] Subari, Arkhan dan Manan, Saiful. 2014. Implementasi Aeschipper Class
Untuk Enkripsi URL Di Sistem Informasi Akademik Fakultas Teknik
Universitas Diponegoro. Semarang: Jurnal Sistem Komputer Vol. 4 No. 2,
Universitas Diponegoro.
[3] Rahardjo, Budi. 2002. Keamanan Sistem informasi Berbasis Internet. PT
14
Insan Komunikasi Indonesia, Bandung.
[4] Dharmawan, Eka A. Yudaningtyas, Erni dan Sarosa, M. 2013. Perlindungan
Web pada Login Sistem Menggunakan Algoritma Rijndael. Malang: Jurnal
EECCIS Vol. 7, No. 1, Universitas Brawijaya.
[5] Kromodimoeljo, S. 2009. Teori dan Aplikasi Kriptografi. SPK IT
Consulting. Hal. 5.
[6] Wowor, A. D. Kriptografi. Salatiga: Fakultas Teknologi Informasi UKSW.
[7] Munir, R. 2004. Data Encryption Standart (DES). Bandung: Institut
Teknologi Bandung.
[8] Munir, R. 2004. Advanced Encryption Standard (AES). Bandung: Institut
Teknologi Bandung.
[9] Hasibuan, Zainal A. 2007. Metode Penelitian Pada Bidang Ilmu Komputer
dan Teknologi Informasi:konsep, teknik dan aplikasi. Jakarta: Fakultas Ilmu
Komputer Universitas Indonesia.
[10] Pressman, Roger S. 2001. Software Engineering a Practitioner’s Approach.
New York: McGraw-Hill Higher Education.
15