Bab 4 Hasil dan Pembahasan - Institutional Repository | Satya Wacana Christian University: Otentikasi Dua Faktor pada Proses Login SIASAT dengan AES, SHA-512, dan PNRG
Bab 4 Hasil dan Pembahasan Pada bab ini akan dibahas tentang hasil perancangan, pengujian,
dan analisis hasil implementasi Verifikasi Dua Langkah Pada Login SIASAT dengan AES, SHA-512, dan PNRG.
4.1 Implementasi Sistem
Berdasarkan perancangan sistem, dilakukan proses pengembangan sistem. Pengembangkan sistem dilakukan dengan menggunakan metodologi pengembangan perangkat lunak prototype
(Pressman & Jawadekar, 1987). Pada proses implementasi
model
dihasilkan beberapa prototype. Diagram prototype model ditunjukkan pada Gambar 12.
.
.
Gambar 4.1 Prototype Model (Pressman & Jawadekar, 1987) Setelah melalui tahap pengembangan prototype, dan evaluasi
prototype , dihasilkan prototype akhir. Ringkasan pengembangan
prototype dan evaluasi ditunjukkan pada Tabel 4.1.Tabel 4.1 Pengembangan dan Evaluasi Prototype No Kebutuhan/Evaluasi Hasil1 Halaman ganti password muncul jika password sama dengan tanggal lahir mahasiswa.
Nomor handphone mahasiswa dienkripsi dengan AES (sudah ada di .Net Framework). Kunci enkripsi yang digunakan adalah password baru (bukan password default tanggal lahir).
Halaman input kode keamanan muncul ketika password yang digunakan BUKAN password default tanggal lahir). Kode keamanan dibangkitkan dengan PNRG, dengan panjang 8 karakter.
Masa berlaku kode keamanan dibatasi sebesar 1 menit. Kode keamanan jangan menggunakan heksadesimal, tetapi menggunaakan lookup string “ABCDEFGH
IJKLMNOPQ RSTUVWXYZ 0123456789 ” sehingga memperbesar kombinasi kode yang dihasilkan.
2 Kode keamanan diberi masa berlaku 1 menit.
Kode keamanan menggunaakan lookup string “ABCDEFGH
IJKLMNOPQ RSTUVWXYZ 0123456789 ” sehingga memperbesar kombinasi kode yang dihasilkan.
Proses random yang dilakukan yaitu membangkitkan angka antara 0 s/d 35, kemudian angka tersebut digunakan untuk memilih karakter pada lookup string Jumlah kesalahan input dibatasi sebanyak 3 kali.
3 Jumlah kesalahan input dibatasi sebanyak 3 kali.
Kemudian akun mahasiswa ditahan selama 60 menit.
Gambar 4.2 Halaman Ganti Password dan Input Nomor HandphoneSesuai dengan perancangan proses sistem dan rancangan yang dilakukan oleh Lolangion (Lolangion & Pakereng, 2014), halaman ganti password dan input nomor handphone (Gambar 13) hanya muncul ketika mahasiswa login pertama kali ke dalam sistem SIASAT. Mahasiswa diwajibkan untuk mengganti password, karena password awal merupakan password yang ditetapkan oleh Administrator SIASAT. Nomor handphone juga perlu dimasukkan oleh Mahasiswa, untuk digunakan pada saat proses pengiriman kode keamanan. Nomor
handphone mahasiswa disimpan di tabel Mahasiswa dalam format
ciphertext . Proses enkripsi dilakukan dengan menggunakan algoritma
AES. Password disimpan dalam bentuk hash, diproses dengan menggunakan algoritma SHA-512. Hasil proses simpan password dan nomor handphone ditunjukkan pada Gambar 4.3.
Kode Program 4.1 Perintah Untuk Proses Enkripsi dengan AES
1. AesCryptoServiceProvider aes = new AesCryptoServiceProvider();
2. aes.KeySize = 128;3. aes.Key = key16; 4.
5. using (ICryptoTransform encrypt = aes.CreateEncryptor()) 6.
{ 7. byte[] dest = encrypt.TransformFinalBlock(src, 0, src.Length); 8. return dest; 9. } Kode Program 4.1 merupakan perintah untuk proses enkripsi.
.Net Framework menyediakan pustaka untuk kriptografi, dan salah satunya adalah algoritma AES. Class AesCryptoServiceProvider (perintah pada baris 1) merupakan class yang membungkus algoritma AES. Melalui class tersebut, dilakukan proses enkripsi dan dekripsi
Kode Program 4.2 Perintah untuk Proses Dekripsi dengan AES 1.
AesCryptoServiceProvider aes = new AesCryptoServiceProvider(); 2. aes.KeySize = 128; 3. aes.Key = key16; 4.
5. using (ICryptoTransform decrypt = aes.CreateDecryptor()) 6.
{ 7. byte[] dest = decrypt.TransformFinalBlock(src, 0, src.Length); 8. return dest; 9. }
Kode Program 4.2 merupakan perintah untuk proses dekripsi. Seperti halnya proses enkripsi, proses dekripsi juga menggunakan pustaka AES yang telah tersedia di .Net Framework.
Gambar 4.4 Halaman Input Verification CodeHalaman input kode keamanan (Gambar 15) muncul setelah mahasiswa melakukan login ke sistem SIASAT. Jika mahasiswa memasukkan kombinasi NIM dan password dengan tepat, maka akan ditampilkan halaman pada Gambar 15. Kode keamanan yang dikirim kepada mahasiswa yang bersangkutan, memiliki masa berlaku 1 menit.
.
Kode Program 4.3 Perintah untuk Membangkitkan Verification code 1. string lookups = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; 2.
var seedString = nim + dateTime.ToString("yyyyMMddHHmmss");
3. var bytes = Encoding.Default.GetBytes(seedString); 4. var seed = Helper.XOR(bytes); 5. int panjangVC = 8; 6.7. Random random = new Random(seed); 8.
9. char[] buffer = new char[panjangVC]; 10. for (int i = 0; i < panjangVC; i++)
11. { 12. var index = random.Next(0, lookups.Length); 13. buffer[i] = lookups[index]; 14. }
15.
16. return new string(buffer);
Kode Program 4.3 merupakan perintah untuk proses membangkitkan kode keamanan. Langkahnya adalah dengan bulan, tanggal, jam, menit dan detik (perintah pada baris 2). Nilai seed
string kemudian dimodulasikan dengan perintah XOR (perintah pada
baris 4), sehingga dihasilkan satu angka seed. Angka seed digunakan pada class Random (perintah baris 7), untuk membangkitkan bilangan semi acak (perintah baris 12). Angka acak diberi batas antara 0 sampai dengan 36, angka 36 tidak termasuk (perintah baris 12). Angka acak yang dihasilkan, digunakan untuk memilih karakter yang terdapat pada
lookup string (perintah baris 1). Contoh angka acak ditunjukkan pada
Gambar 4.5.Gambar 4.5 Verification code Yang Dikirim Melalui SMS Gateway GammuPada Gambar 4.5 ditunjukkan isi dari tabel outbox dari database yang digunakan oleh SMS Gateway Gammu. Tabel ini menjelaskan antrian sms yang akan dikirimkan oleh Gammu ke nomor tujuan yang terdefinisi pada kolom DestinationNumber. Isi sms didefinisikan pada kolom TextDecoded.
Contoh proses pembentukan kode keamanan ditunjukkan pada langkah-langkah berikut:
1. Jika diketahui NIM = 672012601, dan password SIASAT =
gadisdesa, dan nomor handphone = 085641437472 2.
Maka yang tersimpan di adalah
password database
SHA512(“gadisdesa”) =
791FDB1FBFF2039BD8AA6612D03F3E76332FB1F597B42229B834FB DC49E4C585C190642962A36DED48AB6BCC465018997D48696423D5 F2D89E43EB3B70BFA72F
3. Nomor handphone disimpan dengan nilai hasil dari
AES(kunci=gadisdesa, plaintext = 085641437472) =
BC31DE17B42F5517D4FA6C70346C830F 4.
”. Seed tersebut diolah menjadi nilai akhir berupa satu angka, yaitu 50. Seed Strin g 6 7 2 1 2 6 1 2 1 5 4 2 6 2 2 3 ASCII 5 4 5 5 5 4 8 4 9 5 5 4 4 8 4 9 5 4 8 4 9 5 3 4 8 5 2 5 5 4 5 5 5 1 Hasil Modul asi 5 5.
8 I
67201260120150426223231
Kode keamanan
4RZI2JLS
9 J 11 l 18 s
2
28
25 Z
Dilakukan perulangan sebanyak 8 kali, sesuai panjang kode keamanan. Pada tiap perulangan dibangkitkan nilai acak antara 0 s/d 36. Rentang angka tersebut merupakan panjang dari lookup
Kemudian kode keamanan dibentuk dengan menggunakan nilai gabungan antara NIM, dan waktu saat itu sebagai seed. Sebagai contoh “
4 Index ke 30 pada lookup string adalah angka “4”
30
Index Random
“ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789”
string yang digunakan untuk membangkitkan nilai acak, yaitu
17 R
4.2 Pengujian Sistem
Pada sistem yang dibangun, dilakukan pengujian blackbox untuk melihat apakah sistem telah memberikan solusi dari kebutuhan yang terdefinisi. Pengujian blackbox dilakukan dengan cara membandingkan antara luaran yang diharapkan, dengan luaran yang diberikan oleh sistem. Hasil pengujian blackbox ditampilkan pada Tabel 4.2.
Tabel 4.2 Hasil Pengujian BlackboxNo Pengujian Ekspektasi Luaran Sistem Kesimpulan
1 Mahasiswa login pertama kali Halaman ganti
password dan input
nomor handphone ditampilkan Sesuai Lolos
2 Mahasiswa login dengan menggunakan kombinasi NIM dan
Password yang
salah Pesan kesalahan ditampilkan.
Halaman login tetap ditampilkan Sesuai Lolos
3 Mahasiswa login dengan menggunakan kombinasi NIM dan
Password yang tepat.
Halaman input kode keamanan ditampilkan
Sesuai Lolos Kode keamanan (VC) dikirimkan lewat SMS ke nomor handphone
Sesuai Lolos bersangkutan
4 Mahasiswa memasukkan VC yang benar sebelum masa berlaku habis (<= 1 menit) Verifikasi berhasil.
Halaman SIASAT ditampilkan Seusai Lolos
5 Mahasiswa memasukkan VC yang benar, namun lewat masa berlaku ( > 1 menit)
Pesan “VC habis masa berlaku ditampilkan”. Tombol “Kirim Lagi Yang Baru” ditampilkan.
Sesuai Lolos
6 Mahasiswa memasukkan VC yang salah.
Pesan kesalahan ditampilkan. Ditampilkan halaman verifikasi.
Sesuai Lolos
7 Mahasiswa memasukkan VC yang salah kedua kali
Pesan kesalahan ditampilkan. Ditampilkan halaman verifikasi
Sesuai Lolos
8 Mahasiswa memasukkan VC yang salah ketiga kali
Pesan kesalahan ditampilkan. Akses
login untuk
mahasiswa tersebut ditutup selama 60 menit.
Sesuai Lolos
9 Mahasiswa Untuk proses Sesuai Lolos melakukan update verifikasi nomor handphone. selanjutnya, digunakan nomor
handphone yang baru.
10 Mahasiswa login Halaman verifikasi Seusai Lolos setelah lewat 60 ditampilkan dengan menit pemblokiran kode baru login .
Berdasarkan hasil pengujian blackbox yang ditunjukkan pada Tabel 4.2, diperoleh kesimpulan bahwa sistem telah memberikan solusi dari kebutuhan yang terdefinisi. Kode keamanan hanya dapat digunakan ketika masa berlaku belum habis. Kesalahan pengisian sebanyak 3 kali mengakibatkan sistem tidak dapat diakses selama 60 menit.
Pengujian kedua yang dilakukan adalah pengujian performa sistem. Pengujian kecepatan enkripsi dilakukan untuk mengetahui lama waktu yang diperlukan untuk proses enkripsi dan dekripsi nomor handphone. Pada pengujian ini digunakan variasi panjang nomor
handphone yang umum digunakan di Indonesia. Hasil pengujian
ditunjukkan pada Tabel 4.3.Tabel 4.3 Hasil Pengujian Kecepatan EnkripsiWaktu Waktu No Jumlah Ukuran No Enkripsi Dekripsi Handphone Karakter Block (detik) (detik)
1 0811000000
10 1 0.00405 0.00406 2 0811000888 10 1 0.00400 0.00420
3 0811123412
10 1 0.00419 0.00402 4 0811888888 10 1 0.00401 0.00401 5 08500500000 11 1 0.00403 0.00401 6 08500500555 11 1 0.00412 0.00415 7 08500567890 11 1 0.00415 0.00413 8 08500000000 11 1 0.00416 0.00415 9 085640000000 12
1 0.00413 0.00407 10 085641010101 12 1 0.00403 0.00414 11 085644444444 12 1 0.00411 0.00400 12 085645678901 12 1 0.00419 0.00400
Ukuran block yang dihasilkan konstan, karena dengan panjang karakter 10-12 maka akan dimasukkan ke dalam satu block AES yang berukuran 128 bit (16 byte/karakter). AES melakukan proses enkripsi dan dekripsi dalam satuan block, sehingga dengan variasi panjang 10- 12 yang masuk ke dalam 1 block, maka waktu proses enkripsi dan dekripsi tidak berbeda jauh.
Pengujian Waktu Proses Pembangkitan Kode Keamanan dilakukan untuk mengetahui waktu proses terhadap pengaruh input. Pengujian dilakukan dengan mengujikan 10 teks input yang dibangkitkan secara acak berdasarkan pola NIM dan Waktu, kemudian dicatat waktu proses PRNG dan XOR. Hasil pengujian ditunjukkan pada Tabel 4.4.
Tabel 4.4 Hasil Pengujian Waktu Proses Pembangkitan Kode KeamananNo Input Panjang Waktu Proses PRNG (detik) Waktu Proses Akumulasi
XOR (detik) Total (detik)
1 67200718520141217011011 23 0.00374 0.00571 0.00945 2 67200718520141217021111 23 0.00324 0.00595 0.00919 3 67200718520141220090907 23 0.00351 0.00554 0.00905 4 67200718520141220090912 23 0.00335 0.00513 0.00848 5 67200718520141227175634 23 0.00374 0.00585 0.00959 6 67200718520141227180009 23 0.00358 0.00532 0.00890 7 67200718520141228151717 23 0.00330 0.00517 0.00847 8 67200718520141228160007 23 0.00350 0.00589 0.00939 9 67200718520150102145657 23 0.00372 0.00548 0.00920 10 67200718520150102140000 23 0.00362 0.00522 0.00884
Pada hasil pengujian pada Tabel 4.4, diperoleh kesimpulan bahwa panjang input selalu tetap, sehingga proses PRNG menggunakan waktu yang relatif sama yaitu dengan rata-rata 0.003 detik. Waktu akumulasi juga relatif tetap yaitu 0.005 detik.
Perbedaan kode keamanan yang digunakan pada penelitian ini dibandingkan dengan penelitian Lolangion adalah pada proses pembentukan. Pada penelitian Lolangion, digunakan 4 byte kode yang direpresentasikan pada bilangan heksadesimal sehingga menjadi 8 byte. Kombinasi yang terbentuk dapat dihitung dengan perhitungan 256 x 256 x 256 x 256 = 4,294,967,296. Bilangan 256 adalah maksimal rentang nilai byte. Jika dihitung menggunakan kemungkinan kemunculan bilangan heksadesimal maka:
0-F 0-F 0-F 0-F 0-F 0-F 0-F 0-F
16
16
16
16
16
16
16 16 =4,294,967,296 3716CAE5.
Contoh kode keamanan yang dihasilkan: Kode tersebut dihasilkan dari proses akumulasi panjang hash hasil SHA-512, yaitu 64 byte, atau 128 karakter pada heksadesimal. Untuk memperoleh panjang 8 karakter, maka dibagi ke dalam 128/8 = 16 kelompok. Kemudian kelompok satu dengan kelompok kedua dilakukan operasi XOR,
Sedangkan pada penelitian ini, proses pembangkitan dilakukan dengan membangkitkan bilangan acak sebanyak 8 kali, sehingga 2 kali lebih cepat. Kemungkinan kunci yang dihasilkan adalah 36 x 36 x 36 x 36 x 36 x 36 x 36 x 36 =2,821,109,907,456.
A-9 A-9 A-9 A-9 A-9 A-9 A-9 A-9
36
36
36
36
36
36
36 36 =2,821,109,907,456
Berdasarkan analisis ini, maka kode keamanan memiliki kemungkinan bertabrakan lebih kecil karena kombinasi yang dimungkinkan adalah =2,821,109,907,456 kombinasi kode keamanan. Proses pembentukan juga lebih cepat daripada penelitian sebelumnya, yaitu 2 kali lebih cepat.
Pengujian keamanan perlu dilakukan untuk mengetahui hal berikut: (1) Mahasiswa hanya dapat login SIASAT jika memiliki NIM, password dan nomor handphone yang terdaftar di sistem; (2) Kegagalan memasukkan kode keamanan sebanyak 3 kali berakibat akun mahasiswa tertahan selama 60 menit. Hasil pengujian ditunjukkan pada Tabel 5. Pada pengujian ini digunakan NIM dan password yang sama sepanjang pengujian yaitu NIM = 672012601, dan password SIASAT = gadisdesa.
Tabel 4.5 Hasil Pengujian KeamananKode Kode Waktu Kode Keamanan Waktu Keamanan Kode No berlaku Masih Login yang Login yang Cocok kode Berlaku dimasukkan seharusnya
1 FF65SFEE 10:12:02 FF65SFEE 10:13:20 Ya Ya Berhasil
2 AB458612 11:02:04 AB458612 11:00:12 Y Tidak Gagal 1
3 11:04:11 11:05:05 Tidak Ya Gagal 2
23X56EV4
23X56EW4
4
23X56XX4 11:04:23
23X56EW4 11:05:05 Tidak Ya Gagal 3
5 Akun diblokir sampai dengan 12:04:52
6 12:06:00 12:07:00 Ya Ya Berhasil
TYU76213 TYU76213
Berdasarkan hasil pengujian kemanan, disimpulan bahwa sistem hanya dapat diakses oleh pengguna yang memiliki NIM, password SIASAT, dan nomor handphone mahasiswa. Sistem akan menahan akses selama 60 menit bagi pengguna yang hanya memiliki NIM dan password saja, dan memasukkan kode keamanan secara sembarangan sebanyak 3 kali.