Implementasi Algoritma AES (
Advanced Encryption
Standard
) Untuk Enkripsi URL Pada Aplikasi Inventaris
Aset Berbasis Web
Artikel Ilmiah
Kepada
Fakultas Teknologi Informasi
untuk memperoleh Gelar Sarjana Komputer
Peneliti :
Ardo Sarofa Putra (672013214) Dr. Sri Yulianto J.P., S.Si., M.Kom.
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Kristen Satya Wacana
1. 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 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.
Gambar 1 Celah Keamanan SQL injection
enkripsi URL. Hal ini perlu dilakukan karena dalam aplikasi inventaris aset ini berisi informasi penting tentang seluruh aset berupa data tanggal masuk, kondisi aset, harga tiap aset, anggaran tiap tahun, data pengguna dll. Dalam penelitian ini enkripsi URL dengan algoritma AES hanya diterapkan pada parameter GET saja. Tujuan dari penelitian ini adalah menciptakan suatu URL yang aman melalui teknik enkripsi dengan algoritma AES pada parameter GET method. Proses enkripsi yang pertama adalah mengenkripsi parameter dan value terlebih dahulu. Selanjutnya pada script pemrosesan, parameter dan value di dekripsi menjadi
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.
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.
Gambar 2 Diagram Proses Enkripsi AES-128 [8]
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].
Gambar3 Tahapan Penelitian [9]
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 4 Metode Prototype [10]
Gambar 4 merupakan gambar tahapan dari metode prototype yang dapat dijelaskan sebagai berikut: 1) Listen to Customer, pada tahap ini dilakukan analisis apa saja yang dibutuhkan customer yaitu sebuah aplikasi inventaris aset yang aman dan mudah digunakan; 2) Build adalah membangun sistem dan desain antarmuka web berdasarkan perancangan menggunakan UML (Unified Modeling Language). Sistem dirancang menggunakan UML untuk selanjutnya dibuat aplikasi berbasis web dan di integerasikan dengan database; 3) Customer Test, pada tahap ini dilakukan pengujian sistem dengan cara pengujian secara langsung oleh customer dan customer akan memberikan review terhadap aplikasi.
Gambar 5Use Case Diagram
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.
Gambar 6Activity Diagram Admin Gambar 7Activity Diagram User
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.
Gambar 8Flowchart Enkripsi URL Gambar 9Flowchart Dekripsi URL
Gambar 8 menunjukkan flowchart proses enkripsi URL, langkah-langkah proses enkripsi tersebut dapat dijelaskan sebagai berikut:
a) Mengambil plaintext berupa data dari parameter GET. b) Membangkitkan kunci enkripsi.
c) Membagi panjang string yang akan dienkripsi dengan panjang 16 karakter. d) Mengenkripsi setiap 16 karakter.
e) Menggabung hasil enkripsi setiap 16 karakter menjadi satu string enkripsi utuh.
f) Mengambil chipertext hasil proses enkripsi untuk ditampilkan pada URL. Gambar 9 merupakan flowchart proses dekripsi URL, langkah-langkah proses dekripsi tersebut dapat dijelaskan sebagai berikut:
a) Mengambil chipertext dari URL.
b) Membangkitkan kunci dekripsi (sama dengan kunci enkripsi).
c) Karena string hasil enkripsi memiliki panjang 32 karakter, maka untuk proses dekripsi ini panjang string dibagi menjadi 32 karakter.
e) Menggabung hasil dekripsi 32 karakter menjadi satu string dekripsi utuh. f) Mengambil plaintext hasil proses dekripsi untuk diproses di database.
4. Hasil dan Pembahasan
Penelitian ini menghasilkan penerapan enkripsi URL pada aplikasi inventaris aset di LPMAI yang berbasis web. Pengguna aplikasi ini dibagi menjadi dua, yaitu admin dan user. Admin berperan untuk mengelola seluruh data aset dan user hanya dapat melihat data keseluruhan aset dan melihat data anggaran per tahun berupa grafik.
Gambar 10 Halaman Login
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.
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.
Tabel 1 S-BOX AES (Advanced Encryption Standard)
hex y
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
Konversi key ke hexadecimal.
•Subtitusi byte dengan S-BOX. w[3] = (F9,FB,45,40)
•XOR w[3] dengan round constant (01,00,00,00). g(w[3]) = (F8,FB,45,40)
•XOR g(w[3]) dengan matriks awal. w[4] = w[0] ⊕ g(w[3]) = (99,89,21,70)
•w[5] = w[4] ⊕ w[1] = (B7,FA,40,22)
•w[6] = w[5] ⊕ w[2] = (87,9C,21,02)
•w[7] = w[6] ⊕ w[3] = (F5,F5,42,6A)
•Gabung w[4],w[5],w[6],w[7], jadi roundkey pertama adalah: 99 89 21 70 B7 FA 40 22 87 9C 21 02 F5 F5 42 6A
Semua kunci yang telah melalui proses ekspansi kunci disajikan pada tabel 2.
Tabel 2 Hasil Ekspansi Kunci Setiap Putaran
Putaran Hasil (Hexadecimal)
0 617264302e7361523066612072696368
4. Proses enkripsi AES 128 bit
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.
⊕ =
•Putaran 1, Substitution Bytes
o Subtitusikan matriks terkini hasil XOR yaitu dengan S-BOX AES.
S-BOX
•Putaran 1, Shift Row
o Geser baris 1,2,3 ke kiri.
•Putaran 1, Mix Column
o Mix column mengalikan matriks tetap dengan matriks saat ini.
=
•Add Roundkey, Putaran 1
o XOR kan matriks saat ini dengan kunci putaran 1.
⊕ =
Jadi hasil AES Putaran 1: 999CB1D5B0FB04EB0E3582A8590006FC
Tabel 3 Hasil Ciphertext Setiap Putaran
Putaran Hasil (Hexadecimal)
0 0a1d005571121237445b20104259535b 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.
Tabel 4Plaintext dan Chipertext
Plaintext Chipertext
Pada tabel 4 disajikan plaintext berupa parameter GET dari URL dan hasil keluaran berupa chipertext hasil enkripsi AES 128 bit.
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
{Program ini digunakan untuk melakukan proses dekripsi URL}
Kamus:
Nr: Jumlah Ronde w: Baris Byte Kunci Ronde CT: Chipertext
K: Kunci
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.
Gambar 12 Pengujian Web Cruiser Web Vulnerability Scanner
Gambar 12 menunjukkan hasil pengujian keamanan web dari serangan SQL injection. Hasilnya tidak lagi terdeteksi celah keamanan dari parameter GET seperti pada gambar 1, tetapi masih ada celah kemanan dari parameter POST karena pada penelitian ini memang tidak menguji parameter POST. Dibawah ini merupakan gambar pengujian firebug pada perambah Mozilla Firefox.
Gambar 13 Pengujian firebug untuk sistem dengan enkripsi URL
Gambar 14 Pengujian firebug untuk sistem tanpa enkripsi URL
Tabel 5 Perbandingan waktu akses dengan enkripsi dan tanpa enkripsi
No Proses Waktu Akses (detik) Selisih Dengan enkripsi Tanpa enkripsi
Tabel 5 menampilkan perbandingan hasil perhitungan waktu akses sistem yang menggunakan enkripsi URL dan tanpa enkripsi URL. Berdasarkan tabel 5 menunjukkan bahwa setiap sistem yang menggunakan enkripsi selalu memiliki waktu akses lebih lama dibandingkan dengan sistem yang tanpa enkripsi. Dapat disimpulkan bahwa rata-rata hasil perhitungan waktu akses sistem adalah 0.06 detik. Tetapi dengan selisih waktu akses yang tidak sampai 1 detik, hal ini tidak akan mempengaruhi performa keseluruhan sistem. Angka-angka dari pengujian waktu akses sistem diatas selalu berubah setiap saat, akan tetapi selisih antara keduanya tidak jauh berbeda.
5. Simpulan
Berdasarkan data penelitian yang telah dilakukan, maka dapat diambil kesimpulan bahwa algoritma AES dapat diimplementasikan pada URL sebuah web dengan teknik enkripsi. Enkripsi URL ini menghasilkan keluaran berupa URL yang tidak menampilkan variabel asli melainkan chipertext hasil enkripsi. Hal ini akan membuat keamanan sistem yang lebih baik, karena akan melindungi dari serangan SQL injection yang menyerang melalui URL. Hasil dari pengujian keamanan web terhadap serangan SQL injection menggunakan aplikasi Web Cruiser Web Vulnerability Scanner adalah URL dengan parameter GET yang telah melalui proses enkripsi tidak lagi terdeteksi sebagai celah keamanan, namun masih terdapat celah keamanan pada parameter POST karena penelitian ini tidak menguji parameter tersebut. Pengujian waktu akses sistem menjelaskan bahwa sistem dengan enkripsi URL menyebabkan waktu akses sistem sedikit lebih lama dibandingkan sistem tanpa enkripsi, dengan selisih rata-rata sebesar 0.06 detik.
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.
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.