Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer Vol. 1, No. 9, Juni 2017, hlm. 803-812
e-ISSN: 2548-964X http://j-ptiik.ub.ac.id
Analisis dan Implementasi Algoritma SHA-1 dan SHA-3 pada Sistem Autentikasi Garuda Training Cost Firlhi Kurniawan1, Ari Kusyanti2, Heru Nurwarsito3 Program Studi Teknik Informatika, Fakultas Ilmu Komputer, Universitas Brawijaya Email:
[email protected],
[email protected],
[email protected] Abstrak Garuda Training Cost merupakan suatu aplikasi web perhitungan biaya pelatihan untuk pilot dan pramugari yang dikembangkan di Garuda Indonesia Training Center. Aplikasi ini menggunakan algoritma hash function SHA-1 untuk mengamankan password pengguna yang tersimpan di database. Tetapi, dikarenakan telah ditemukannya kelemahan dan kolisi pada algoritma ini, maka algoritma ini sudah kurang aman lagi. Maka dari itu, pada penelitian ini, penulis akan menggantikan algoritma SHA-1 tersebut dengan algoritma penerusnya, yaitu SHA-3. Algoritma SHA-3 diimplementasikan pada proses login, proses perubahan password pengguna dan proses penambahan pengguna. Setelah itu dilakukan pengujian dan analisis untuk mengetahui kinerja dari kedua algoritma tersebut. Ada tiga jenis pengujian yang dilakukan, yang pertama yaitu pengujian brute-force, yang kedua pengujian avalanche effect dan yang terakhir pengujian waktu pemrosesan. Dari pengujian brute-force, algoritma SHA-3 jauh lebih baik dari algoritma SHA-1. Ditunjukkan dengan 30 kali percobaan brute-force untuk password dengan 10 karakter, hash yang dihasilkan SHA-1 membutuhkan waktu rata-rata 14 jam 53 menit dan 51 detik untuk menemukan plaintext-nya. Sedangkan hash yang dihasilkan SHA-3 membutuhkan waktu rata-rata 4 hari 13 jam 6 menit dan 6 detik untuk menemukan plaintext-nya. Untuk pengujian avalanche effect, algoritma SHA-1 mendapatkan persentase perubahan sebesar 100% sedangkan SHA-3 mendapatkan 95%. Sedangkan untuk pengujian waktu pemrosesan, SHA-1 lebih baik karena kompleksitas algoritma SHA-3 yang lebih tinggi. Walaupun dua dari tiga pengujian tersebut SHA-1 lebih unggul, bukan berarti SHA-3 tidak lebih baik. Persentase minimum avalanche effect untuk sebuah algoritma agar dapat dikatakan baik adalah lebih dari 50%. Sedangkan waktu pemrosesan tersebut masih dalam satuan milliseconds, sehingga pengguna tidak merasakan dampaknya secara langsung. Kesimpulannya, dari ketiga pengujian tersebut menunjukkan bahwa SHA-3 memiliki ketahanan yang lebih tinggi dari algoritma SHA-1. Kata kunci: aplikasi web, keamanan password, fungsi hash, kriptografi, algoritma SHA-1, algoritma SHA-3 Abstract Garuda Training Cost is a web application for calculating the training costs for pilots and flight attendants developed in Garuda Indonesia Training Center. This application use SHA-1 hash function algorithm to secure user password in database. However, the weakness and colisions have been found in this algorithm, therefore this algorithm less secure. Hence, in this research authors will replace the SHA-1 with the algorithm successor, SHA-3. This algorithm will be implemented in login process, password change process and adding users process. Both algorithm will be tested and analyzed to determine the performance of the algorithm. There are three types of tests performed. The first is brute-force testing, second is avalanche effect testing and the final test is processing time testing. From the brute-force test result, SHA-3 algorithm much better than SHA-1. From the 30 times testing for 10-character password, the SHA-1 generated hash need average 14 hours 53 minutes and 51 seconds to find the plaintext. While SHA-3 generated hash need average 4 days 13 hours 6 minutes and 6 seconds to find the plaintext. For the avalanche effect testing, SHA-1 algorithm get a percentage change of 100%, while SHA-3 get 95%. For the processing time testing, SHA-1 algorithm is better because of SHA-3 higher complexity. Although two of three test SHA-1 is better, does not mean SHA-3 is not better. Minimum avalanche effect percentage for an algorithm is 50%. And that processing time is still in milliseconds unit, so that user do not feel the impact directly. In conclusion, the three these tests show that the SHA-3 has a higher resistance than the algorithm SHA-1. Fakultas Ilmu Komputer Universitas Brawijaya
803
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
804
Keywords: web application, password security, hash function, cryptography, SHA-1 algorithm, SHA-3 algorithm
1. PENDAHULUAN Garuda Training Cost merupakan aplikasi berbasis web yang dikembangkan di Garuda Indonesia Training Center. Aplikasi ini adalah sebuah alat bantu yang dibuat untuk bidang pemasaran di Garuda Indonesia Training Center. Data-data yang dikelola dalam aplikasi ini yaitu laporan keuangan, biaya pelatihan untuk internal, dan biaya pelatihan untuk pihak ketiga. Serta untuk mekanisme login terdapat pula data username dan password. Untuk dapat mengakses sistem tersebut, diharuskan login terlebih dahulu. Untuk menjamin keamanan dari data-data tersebut, sudah ada beberapa mekanisme keamanan yang sudah diterapkan pada sistem ini, salah satunya yaitu hash password dengan algoritma SHA-1. Fungsi SHA-1 ini merupakan suatu fungsi hash yang sudah lumayan tua. Berdasarkan penelitian sebelumnya pada jurnal yang berjudul Finding Collisions in the Full SHA-1, telah ditemukan kolisi pada algoritma SHA-1 ini (Wang, 2005). Hal ini pula yang menjadi latar belakang akan diterapkannya fungsi hash pengganti SHA-1, yaitu SHA-3 (Keccak) yang baru diresmikan pada tahun 2015 lalu. Keunikan implementasi SHA-3 pada penelitian ini yaitu dia hanya menggunakan algoritma SHA-3 sebagai algoritma untuk melakukan hash pada password, sedangkan pada penelitian yang lain digunakan juga autentikasi menggunakan one time password (Fakhrusy, 2016). Hipotesis dari penelitian ini yaitu kinerja dan keamanan dari algoritma SHA-3 akan lebih unggul dibandingkan dengan algoritma SHA-1, dikarenakan algoritma SHA-3 ini dibuat untuk memperbaiki algoritma SHA-1 yang telah ditemukan kelemahan dan kolisinya. Oleh karena itu, algoritma yang sebelumnya sudah diterapkan pada aplikasi Garuda Training Cost yaitu SHA-1, akan digantikan dengan algoritma yang lebih baik. 2. LANDASAN KEPUSTAKAAN 2.1. Kajian pustaka Telah banyak penelitian yang berkaitan Fakultas Ilmu Komputer, Universitas Brawijaya
dengan fungsi algoritma hash. Dari jurnal yang dipelajari, hal-hal yang didapat antara lain teori dasar aplikasi berbasis web secara umum, kriptografi, keamanan web, dan juga bagaimana cara untuk menguji, membandingkan, dan menganalisis algoritma hash yang telah ada, sehingga dapat digunakan dalam penelitian ini. Berdasarkan penelitian sebelumnya yang berkaitan dengan algoritma SHA-1, yaitu berjudul Finding Collisions in the Full SHA-1 telah ditemukan kolisi pada algoritma hash SHA-1 (Wang, 2005). Sedangkan penelitian sebelumnya untuk algoritma SHA-3 yang berjudul Efficient and Concurrent Reliable Realization of the Secure Cryptographic SHA-3 Algorithm. Di sana dijelaskan tentang bagaimana algoritma Keccak menjadi pemenang dan distandarisasi menjadi algoritma SHA-3, serta kelebihannya dibandingkan algoritma lain (Sarmadi, 2014). Pada pustaka yang telah dipelajari, kebanyakan penelitian sebelumnya terfokus pada algoritma hash yang sudah lama, seperti MD5 dan SHA-1. Dari hal itulah yang melatarbelakangi penelitian tentang algoritma SHA-3 yang terbilang masih baru, bagaimana kinerjanya pada saat implementasi dan bagaimana jika dibandingkan dengan pendahulunya yaitu SHA-1. Dengan berbekal metode dari penelitian sebelumnya, diharapkan dapat membangun sebuah sistem yang lebih aman dengan memanfaatkan metode atau solusi yang sudah diteliti tersebut yaitu SHA-3 agar terbangun sebuah sistem yang dapat diandalkan baik dari segi integritas data. 2.2. Secure Hash Algorithm-1 (SHA-1) SHA dikembangkan oleh National Institute of Standards and Technology (NIST) dan dipublikasikan sebagai Federal Information Processing Standards (FIPS 180) pada tahun 1993. Secure Hash Standard (SHS) menspesifikasikan SHA-1 untuk menghitung nilai hash dari sebuah pesan atau file. SHA-1 memiliki panjang pesan maksimal 264 bits dan memiliki keluaran sebesar 160 bits yang dinamakan message digest atau hash code. Message digest tersebut dapat digunakan sebagai masukan untuk Digital Signature Algorithm (DSA), yang digunakan untuk
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
menghasilkan signature untuk memverifikasi pesan tersebut. Pada saat ditemukan kelemahan pada algoritma SHA-0, berbagai revisi dan perbaikan dilakukan untuk membuat suatu algoritma yang lebih baik. Hasil dari perbaikan tersebut diterbitkan pada tahun 1995 dan dijadikan acuan untuk pembuatan algoritma SHA-1. Algoritma SHA-1 merupakan revisi teknis dari algoritma SHA. Algoritma SHA-1 dapat dikatakan aman karena proses perhitungannya tidak memungkinkan untuk menemukan pesan yang sebenarnya dari message digest yang dihasilkan. Setiap perubahan yang terjadi pada pesan saat perjalanan akan menghasilkan message digest yang berbeda. Algoritma SHA1 berbasis pada algoritma MD4 dan rancangannya sangatlah mirip terhadap algoritma tersebut. 2.3. Secure Hash Algorithm-3 (SHA-3) Pada tahun 2006, NIST mengadakan kompetisi hash function untuk membuat sebuah standar hash baru, yaitu SHA-3. SHA-3 dibuat tidak untuk menggantikan SHA-2, dikarenakan belum ada serangan hebat yang terjadi pada SHA-2. NIST membuat SHA-3 dikarenakan kekhawatiran dikarenakan MD5, SHA-0, SHA1 yang telah berhasil ditembus. Karena itulah NIST mencari algoritma hash alternatif yang sangat berbeda dengan algoritma sebelumnya, yaitu SHA-3. Pada tahun 2012, Keccak menjadi pemenang dalam kompetisi ini. Kemudian pada tahun 2014 mempublikasikan draft FIPS 202 tentang “SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions”. Setelah itu pada tahun 2015 SHA-3 diresmikan sebagai standar baru fungsi hash (Charles, 2015). Tidak seperti SHA-1, SHA-3 memiliki ukuran keluaran yang beragam. Jenis-jenis keluaran SHA-3 tersebut yaitu SHA-3 224, SHA-3 256, SHA-3 384, SHA-3 512, SHAKE128 dan SHAKE256 Dikarenakan berbagai jenis keluaran tersebut, maka SHA-3 ini masuk kedalam jenis sponge function. Pada jurnal yang berjudul “Cryptographic sponge function”, sponge function menyediakan cara tertentu agar dapat menggeneralisasikan fungsi hash dengan hasil keluaran yang beragam (Bertoni, 2011).
805
2.4. Perbandingan SHA-1 dengan SHA-3 1.
2.
3.
Algoritma SHA-1 hanya dapat mengolah input dengan panjang maksimal 264 bit, sedangkan algoritma SHA-3 dapat mengolah input dengan panjang tak terhingga. Ukuran output yang dihasilkan oleh algoritma SHA-1 berukuran 160 bits. Sedangkan ukuran output yang dihasilkan SHA-3 berukuran beragam, mulai dari 224, 256, 384, dan 512 bits. Menjadikan algoritma SHA-3 lebih tahan terhadap serangan brute force. Pada tahun 2015 telah ada yang berhasil melakukan serangan theoretical dan collision pada algoritma SHA-1, menjadikan algoritma ini sudah kurang aman jika dibandingkan SHA-3 yang masih sangat baru dan belum bisa ditembus.
3. METODOLOGI Dalam bab ini akan dijelaskan tentang cara sistematik yang akan digunakan untuk menyelesaikan masalah penelitian dan juga tahapan yang dilakukan dalam pengujian dan analisis dari algoritma hash SHA-1 dan SHA-3. Tahapan-tahapannya terdiri dari studi literatur, analisis kebutuhan, perancangan sistem, implementasi sistem, pengujian dan analisis sistem, dan kesimpulan. Tahapan-tahapan tersebut digambarkan pada Gambar 3.
Gambar 3 Diagram blok metodologi penelitian
4. PERANCANGAN DAN IMPLEMENTASI 4.1. Analisis kebutuhan Pengertian dari analisis ialah penguraian
Fakultas Ilmu Komputer, Universitas Brawijaya
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
dari suatu pembahasan, dalam hal ini analisis mengenai perancangan sistem autentikasi pada aplikasi Garuda Training Cost dengan menggunakan algoritma hash SHA-3 yang berguna untuk mengetahui apa saja yang dapat dijadikan isi dari perancangan yang akan dibuat. 4.1.1 Analisis permasalahan Dalam penelitian yang sedang dibahas yaitu perancangan sistem autentikasi pada aplikasi Garuda Indonesia Training Cost dengan menggunakan algoritma hash SHA-3. Analisis dari permasalahan yang sedang dibahas pada penelitian ini akan dijelaskan pada Gambar 4.
806
Setelah itu sistem akan melakukan hash terlebih dahulu terhadap password tersebut dengan menggunakan algoritma SHA-1 atau SHA-3, kemudian disimpan ke database. 6. Halaman penambahan pengguna digunakan untuk menambahkan pengguna baru ke dalam sistem, pengguna mengisi form dan menekan tombol Submit. Setelah itu sistem akan melakukan hash terlebih dahulu terhadap password dengan menggunakan algoritma SHA-1 atau SHA-3, kemudian disimpan ke database beserta data-data yang lain. 4.1.2 Analisis data Analisis data merupakan tahapan dimana dilakukannya analisis terhadap data-data apa sja yang diolah dalam sistem. Pada aplikasi ini, data yang akan di lakukan hash terbatas pada password. Di karenakan untuk dapat mengakses semua fitur dan data di sistem, harus terlebih dahulu login menggunakan username dan password. 5. PENGUJIAN DAN ANALISIS 5.1. Parameter pengujian
Gambar 4 Skema global sistem Garuda Training Cost
Penjelasan skema global sistem Garuda Training Cost di atas adalah sebagai berikut. 1. Pengguna melakukan login dengan memasukkan username dan password agar dapat masuk ke dalam sistem. 2. Kemudian akan dilakukan hashing pada password pengguna tersebut dengan menggunakan algoritma fungsi hash SHA-1 atau SHA-3. 3. Setelah itu, hasil dari proses hashing pada tahap sebelumnya tadi dicocokkan dengan hash yang telah tersimpan di dalam database. 4. Jika hasil hash cocok dengan hash yang ada di dalam database, maka pengguna dapat masuk ke dalam sistem dan menggunakan fitur yang tersedia, yakni pada tahap 5 dan tahap 6. 5. Halaman perubahan password digunakan untuk mengubah password dari pengguna yang telah terdaftar, pengguna mengubah password dan menekan tombol Submit. Fakultas Ilmu Komputer, Universitas Brawijaya
Parameter yang digunakan untuk menguji kedua algoritma hash yaitu SHA-1 dan SHA-3 pada penelitian ini ada 3. Yang pertama adalah waktu yang ditempuh pada saat melakukan brute-force testing pada kedua algoritma. Kemudian pengujian avalanche effect. Dan yang terakhir yaitu waktu pemrosesan saat proses login. Setelah pengujian dilakukan, hasil dari pengujian brute-force dan waktu pemrosesan akan diproses lebih lanjut dengan menggunakan Independent Samples t-Test dan One-Way ANOVA untuk mengetahui apakah ada perbedaan yang signifikan antara kedua algoritma. 5.2. Test vector Untuk memastikan algoritma SHA-1 dan SHA-3 yang diterapkan pada penelitian ini sudah benar dan sesuai dengan ketentuan, maka digunakanlah test vector untuk algoritma SHA1 dan SHA-3, yang merujuk pada situs http://www.di-mgt.com.au/sha_testvectors.html. Hash yang dihasilkan pada algoritma SHA-1 dan SHA-3 yang digunakan pada penelitian ini akan dibandingkan dengan test vector tersebut. Berikut adalah test vector dan hasil hash dari algoritma yang digunakan pada penelitian ini.
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
Test vector untuk algoritma SHA-1 dan SHA-3. a. Pesan: “abc” SHA-1: a9993e36 4706816a ba3e2571 7850c26c 9cd0d89d SHA-3: 3a985da74fe225b2 045c172d6bd390bd 855f086e3e9d525b46bfe2451 1431532 b. Pesan: “” (string kosong) SHA-1: da39a3ee 5e6b4b0d 3255bfef 95601890 afd80709 SHA-3: a7ffc6f8bf1ed766 51c14756a061d662 f580ff4de43b49fa 82d80a4b80f8434a c. Pesan: "abcdbcdecdefdefgefghfghighijhijkijkljklm klmnlmnomnopnopq" SHA-1: 84983e44 1c3bd26e baae4aa1 f95129e5 e54670f1 SHA-3: 41c0dba2a9d62408 49100376a8235e2c 82e1b9998a999e21 db32dd97496d3376 Hash yang dihasilkan oleh algoritma SHA1 dan SHA-3 yang digunakan pada penelitian ini menunjukkan hasil yang sama dengan test vector. Hal ini menunjukkan bahwa algoritma yang digunakan sudah benar dan sesuai dengan ketentuan untuk algoritma SHA-1 dan SHA-3. 5.3. Skenario pengujian Variasi password yang digunakan untuk pengujian ini adalah password dengan 8, 9 dan 10 karakter. Dikarenakan aplikasi Garuda Training Cost membutuhkan password minimal 8 karakter dan maksimal 10 karakter. Jenis algoritma SHA-3 yang digunakan adalah SHA3-256. Berikut ini adalah plaintext dan hasil hash yang akan digunakan dalam pengujian ini. a. 8 karakter: “firlhiku” (lowercase) SHA-1: 97aa74da3b34d20c75c69ed24eff1 9c971b8303b SHA-3: 8d341d9bb59e3cbafc76cb4c22c14 d617e052600a90d47ffce80d4b6252a70c5 8 karakter: “firlhi21” (lowercase dan angka) SHA-1: 3c5aa2bc19d5bd6d116b1ce044ab 9d2ef7c171ae SHA-3: b70896f9fff3f5a6872678aee3b242 09345f18f10fa08b8485f6fe22f34b4f65 8 karakter: “#vapori3” (lowercase, angka dan simbol) SHA-1: b0bfd36509cdd6941e2e0f24a0cbc 6487107adaa
Fakultas Ilmu Komputer, Universitas Brawijaya
807 SHA-3: 1fc9286f6e50cf10a719d85b36b1c d6a1b50f6557f21f04bb7c0c2e642270629 8 karakter: “&Rez4zif” (lowercase, angka, simbol dan uppercase) SHA-1: 97078de52a4a453ea965e18295bd daee76fd6cc6 SHA-3: 1878f50f1550126444a8ff678c4b2 292853aee1af6f6fa9f91a7bbb5cecab563
5.4. Pengujian brute-force 5.4.1 Tujuan pengujian Tujuan dari pengujian ini adalah untuk mengetahui ketahanan dan kekuatan dari algoritma SHA-1 dan SHA-3 terhadap serangan brute-force. Mekanisme dari brute-force ini yaitu melakukan serangan terhadap suatu hash yang dihasilkan dengan algoritma SHA-1 dan SHA-3, dengan mencoba segala kombinasi huruf, angka dan simbol agar didapatkan plaintext dari hash tersebut. 5.4.2 Prosedur pengujian Pengujian ini dilakukan dengan menggunakan program hashcat. Program ini berfungsi untuk mendapatkan plaintext dari suatu hash ataupun ciphertext. Untuk melihat perbedaan waktu pengujian brute-force untuk 8 karakter lowercase pada algoritma SHA-1 dan SHA-3, maka dilakukanlah independent sample t-test pada data hasil pengujian tersebut. Ketentuan pengambilan keputusan untuk pengujian independent sample t-test didasarkan pada ketentuan sebagai berikut: Hipotesis: H0: Tidak ada perbedaan yang signifikan antara waktu pengujian brute-force pada algoritma SHA-1 dan SHA-3 H1: Terdapat perbedaan yang signifikan antara waktu pengujian brute-force pada algoritma SHA-1 dan SHA-3 Kriteria keputusan: a. Jika probabilitas (Sig.) > 0,05 maka H0 diterima b. Jika probabilitas (Sig.) < 0,05 maka H0 ditolak 5.4.3 Hasil pengujian Berdasarkan pengujian yang telah dilakukan, berikut ini disajikan tabel waktu estimasi pengujian brute-force untuk algoritma SHA-1 dan SHA-3 yang didapatkan dari
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
program hashcat. Semua pengujian dilakukan sebanyak 30 kali. a. Password 8 karakter lowercase Hasil pengujian independent sample t-test perbedaan waktu pengujian brute-force untuk 8 karakter lowercase pada algoritma SHA-1 dan SHA-3 dapat dilihat pada Tabel 5. Tabel 5 Independent samples t-Test untuk pengujian brute-force password 8 karakter lowercase t-test for Equality of Means Sig. (2t df tailed) Waktu
Equal variances assumed Equal variances not assumed
-47,180
58
0,000
-47,180
29,160
0,000
Diketahui nilai t dari hasil perhitungan ttest dari hasil pengujian waktu brute-force pada algoritma SHA-1 dan SHA-3 adalah -47,180 dengan probabilitas (Sig.) 0,000. Karena probabilitas 0,000 < 0,05 maka H0 ditolak. Artinya terdapat perbedaan yang signifikan antara waktu pengujian brute-force pada algoritma SHA-1 dan SHA-3.
detik. Jika dilihat dari grafik, perbedaan antara keduanya sangatlah jauh. Setelah itu, pengujian terakhir pada password 10 karakter, didapatkan rata-rata waktu tempuh untuk hash SHA-1 adalah 14 jam 53 menit 51 detik, sedangkan untuk hash SHA3 memakan waktu sampai 4 hari 13 jam 6 menit 6 detik. Dari 30 percobaan tersebut, waktu estimasi yang diberikan program hashcat juga fluktuatif, seperti percobaan ke-10, memakan waktu sampai 4 hari 10 jam 4 detik. Berdasarkan keseluruhan pengujian bruteforce yang telah dilakukan, akan diringkas dalam tabel perbandingan yang ditunjukkan pada Tabel 5(a). Tabel 5(a) Perbandingan keseluruhan pengujian brute-force untuk password dari algoritma SHA-1 dan SHA-3 Jumlah Karakter
8
5.4.4 Analisis pengujian Pada pengujian brute-force ini, didapatkan beberapa data yang disajikan dalam bentuk tabel. Sebelum dilakukan t-test, keseluruhan satuan waktu yang digunakan dalam pengujian diubah ke detik terlebih dahulu. Pada Tabel 5, dengan menggunakan perangkat GPU Nvidia GeForce GTX 1060 3GB, dari 30 percobaan, waktu yang ditempuh untuk mendapatkan suatu mesage dari password 8 karakter yang telah di hash dengan SHA-1 hanya memakan waktu rata-rata 16 detik. Jika dibandingkan dengan waktu yang ditempuh pada hash SHA-3, yaitu rata-rata 11 menit 9 detik, maka sangatlah jauh. Padahal skenario pengujian yang digunakan hanya menggunakan huruf lowercase, jika ditambahkan dengan huruf uppercase, angka ataupun simbol, maka waktu yang ditempuh akan berbeda. Hal yang serupa juga terjadi pada saat pengujian dilakukan untuk password 9 dan 10 karakter. Disini juga akan terlihat sekali keunggulan dari algoritma hash SHA-3. Pada pengujian untuk password 9 karakter, rata-rata waktu yang ditempuh oleh SHA-1 adalah 1 menit 29 detik, sedangkan waktu yang ditempuh oleh SHA-3 adalah 4 jam 54 menit 6 Fakultas Ilmu Komputer, Universitas Brawijaya
808
9
10
Jenis Karakter Lowercase Lowercase dan angka Lowercase, angka dan simbol Lowercase, angka, simbol dan uppercase Lowercase Lowercase dan angka Lowercase, angka dan simbol Lowercase, angka, simbol dan uppercase Lowercase Lowercase dan angka Lowercase, angka dan simbol Lowercase, angka, simbol dan uppercase
SHA-1
SHA-3
Berdasarkan Tabel 5(a), dari keseluruhan pengujian mulai dari 8, 9 dan 10 karakter dan semua jenis karakter yaitu lowercase, lowercase dikombinasikan dengan angka, lowercase dikombinaiskan dengan angka dan simbol dan lowercase dikombinasikan dengan angka, simbol dan uppercase, algoritma SHA-3 lebih baik dari segi ketahanan dan kekuatan untuk pengujian brute-force. Jadi kesimpulannya, dari hasil pengujian brute-force untuk algoritma SHA-1 dan SHA-3 pada password dengan 8, 9 dan 10 karakter, algoritma hash SHA-3 jauh lebih unggul dari SHA-1. Hal ini dikarenakan hash yang dihasilkan oleh algoritma SHA-3 lebih panjang dari algoritma SHA-1, pada pengujian ini digunakan jenis SHA-3 dengan panjang
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
keluaran 256 bit, sedangkan panjang keluaran algoritma SHA-1 hanya 160 bit. Hal inilah yang menyebabkan waktu yang ditempuh oleh SHA3 pada saat pengujian jauh lebih lama dibandingkan dengan SHA-1. Jadi dapat disimpulkan dari pengujian ini, pada aspek kekuatan dan ketahanan algoritma terhadap serangan brute-force, SHA-3 lebih baik dari algoritma SHA-1.
809
menggunakan dua plaintext sebagai pembanding, plaintext pertama yaitu “firlhiku” dan yang kedua “firlhiki”. a. SHA-1 Tabel 5(b) Hasil pengujian avalanche effect untuk algoritma SHA-1
5.5. Pengujian avalanche effect b. SHA-3
5.5.1 Tujuan pengujian Pengujian avalanche effect bertujuan untuk membandingkan berapa besarkah perubahan yang terjadi ketika plaintext berubah. Output dapat berupa ciphertext ataupun digest. Pada jurnal yang berjudul “Effective Implementation and Avalanche Effect of AES”, hasil dari enkripsi atau hash dikatakan baik apabila perubahan 1 bit input menghasilkan perubahan besar pada output (Kumar, 2012). Avalanche effect merupakan parameter pengujian yang biasa digunakan untuk menggambarkan tingkat keamanan pada kriptografi kunci simetris dan fungsi hash. 5.5.2 Prosedur pengujian Pengujian ini dilakukan untuk melihat tingkat keamanan algoritma. Avalanche effect dihitung dengan rumus pada Persamaan 1. AE = Jumlah bit yang berubah pada hash Jumlah bit keseluruhan pada hash
x 100% (1)
Pengujian dilakukan dengan menggunakan hash SHA-1 dan SHA-3 dari password dengan plaintext “firlhiku” dan “firlhiki”. Plaintext yang digunakan disini berbeda dengan pengujian yang lainnya, dikarenakan disini akan diuji seberapa besarkan perubahan sebuah output atau hash jika satu karakter diubah. Dalam hal ini yaitu huruf “u” diganti dengan huruf “i”. Setelah didapatkan hash dari kedua plaintext tersebut, hash tersebut kemudian dibandingkan. Ada berapa bit karakter yang berubah ketika dilakukan pergantian tersebut. Setelah didapatkan berapa bit yang berubah, barulah dihitung dengan menggunakan rumus AE (Avalanche Effect). 5.5.3 Hasil pengujian Berikut ini adalah hasil pengujian avalanche effect dari kedua algoritma dengan Fakultas Ilmu Komputer, Universitas Brawijaya
Tabel 5(c) Hasil pengujian avalanche effect untuk algoritma SHA-3
5.5.4 Analisis pengujian Hasil dari pengujian avalanche effect untuk algoritma SHA-1 terdapat pada Tabel 5(b), sedangkan untuk algoritma SHA-3 terdapat pada Tabel 5(c). Untuk pengujian avalanche effect pada algoritma SHA-1, hash untuk kedua plaintext berubah sebanyak 100%, artinya hash yang dihasilkan benar-benar berbeda. Walaupun plaintextnya sangat mirip, hanya diubah satu karakter saja. Pada pengujian avalance effect ini, algoritma SHA-1 masih lebih unggul jika dibandingkan dengan algoritma SHA-3, yang setelah dihitung avalanche effectnya hanya berubah sebanyak 95%. Tetapi, syarat suatu algoritma dikatakan baik adalah jika avalanche effectnya sama dengan 50% atau lebih. Jadi dapat disimpulkan, walaupun algoritma SHA-1 memiliki nilai avalanche effect yang lebih baik, bukan berarti algoritma SHA-3 yang memiliki nilai yang lebih rendah dari SHA-1 dikatakan buruk. Keduanya merupakan algoritma yang sangat baik, dikarenakan sudah melebihi syarat yang telah ditentukan, yaitu 50%. 5.6. Pengujian waktu pemrosesan 5.6.1 Tujuan pengujian Tujuan dari dilakukannya pengujian pemrosesan saat login ini yaitu mengetahui berapa banyak waktu diperlukan untuk mencocokkan hash
waktu untuk yang yang
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
dihasilkan pada saat seseorang login dengan hash yang telah tersimpan pada database. 5.6.2 Prosedur pengujian Untuk melakukan pengujian waktu pemrosesan, ditambahkan beberapa baris kode pada kode access.php agar dapat menghitung waktu yang ditempuh pada kedua algoritma dan menyimpannya ke dalam database pada saat proses login. Waktu perhitungan akan dimulai pada saat pengguna menekan tombol login dan akan berhenti pada saat pengguna telah masuk ke antarmuka utama sistem. Untuk melihat perbedaan waktu pengujian pemrosesan pada saat login untuk 8 karakter lowercase pada algoritma SHA-1 dan SHA-3, maka dilakukanlah independent sample t-test pada data hasil pengujian tersebut. Ketentuan pengambilan keputusan untuk pengujian independent sample t-test di dasarkan pada ketentuan sebagai berikut: Hipotesis: H0: Tidak ada perbedaan yang signifikan antara waktu pengujian pemrosesan pada saat login pada algoritma SHA-1 dan SHA-3 H1: Terdapat perbedaan yang signifikan antara waktu pengujian pemrosesan pada saat login pada algoritma SHA-1 dan SHA-3 Kriteria keputusan: a. Jika probabilitas (Sig.) > 0,05 maka H0 diterima b. Jika probabilitas (Sig.) < 0,05 maka H0 ditolak 5.6.3 Hasil pengujian Berikut ini adalah hasil pengujian yang didapatkan dari tabel MySQL yang telah dibuat sebelumnya untuk menyimpan waktu pengujian. a. Password 8 karakter lowercase Hasil pengujian independent sample t-test perbedaan waktu pengujian pemrosesan pada saat login untuk 8 karakter lowercase pada algoritma SHA-1 dan SHA-3 dapat dilihat pada Tabel 5(d). Tabel 5(d) Independent samples t-Test untuk pengujian waktu pemrosesan pada saat login password 8 karakter lowercase t-test for Equality of Means Sig. (2t df tailed) Waktu
Equal variances assumed
-11,037
58
Fakultas Ilmu Komputer, Universitas Brawijaya
0,000
810 Equal variances not assumed
-11,037
29,363
0,000
Diketahui nilai t dari hasil perhitungan t-test dari hasil pengujian waktu pemrosesan pada saat login pada algoritma SHA-1 dan SHA-3 adalah -11,037 dengan probabilitas (Sig.) 0,000. Karena probabilitas 0,000 < 0,05 maka H0 ditolak. Artinya terdapat perbedaan yang signifikan antara waktu pengujian pemrosesan pada saat login pada algoritma SHA-1 dan SHA-3. 5.6.4 Analisis pengujian Pada pengujian waktu pemrosesan pada saat login ini, didapatkan beberapa data yang disajikan dalam bentuk tabel. Data dari tabel tersebut didapatkan dari data yang tersimpan pada database. Pada Tabel 5(aa), dapat dilihat perbedaan waktu pemrosesan antara kedua algoritma untuk password 8 karakter lowercase, dimana untuk SHA-1 rata-rata waktu pemrosesannya 0,00142785 ms dan untuk SHA-3 adalah 0,00550367 ms. Dalam hal ini, waktu pemrosesan untuk algoritma SHA-1 lebih cepat dibandingkan dengan SHA-3. Hal ini disebabkan beberapa macam faktor, yang akan dijelaskan lebih lanjut. SHA-1 lebih unggul dalam semua pengujiannya. Tetapi hal ini tidak serta merta membuat algoritma SHA-3 tidak lebih baik, dikarenakan waktu tersebut masih dalam batas wajar, dan pengguna juga tidak akan merasakan langsung dampak dari waktu tersebut. Banyak faktor yang mempengaruhi waktu pemrosesan pada pengujian ini. Yang pertama adalah dikarenakan pengujian ini dilakukan di localhost, waktu yang didapatkan bisa mungkin berbeda jika aplikasi ditempatkan pada server yang sebenarnya. Selanjutnya yaitu pada fungsi, dikarenakan sampai saat ini, bahasa pemrograman PHP belum menyediakan fungsi untuk hash dengan algoritma SHA-3, sedangkan untuk algoritma SHA-1 sudah ada. Jadi, untuk algoritma SHA-3 digunakan fungsi dari luar. Karena hal ini juga waktu pemrosesan untuk SHA-3 memakan waktu lebih lama, dikarenakan algoritma SHA-3 memiliki kompleksitas dan kerumitan yang lebih tinggi daripada algoritma SHA-1. Dan faktor terakhir adalah kerumitan fungsi serta panjang huruf yang diproses, seperti yang dijelaskan
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
sebelumnya, panjang keluaran dari hash algoritma SHA-3 lebih panjang dari pada SHA1, dimana SHA-3 memiliki 256 bit dan SHA-1 memiliki 160 bit. Karena itulah, waktu pemrosesan untuk SHA-3 lebih lama dibandingkan dengan SHA-1. Dan dengan struktur fungsi dari algoritma SHA-3 yang lebih baru dan kompleks daripada SHA-1, dapat mempengaruhi waktu pemrosesan ini juga. Mungkin juga terdapat faktor lain yang mempengaruhi waktu pemrosesan tersebut yang belum dapat penulis temukan disini. Berdasarkan keseluruhan pengujian waktu pemrosesan yang telah dilakukan, akan diringkas dalam tabel perbandingan yang ditunjukkan pada Tabel 5(e). Tabel 5(e) Perbandingan keseluruhan pengujian waktu pemrosesan untuk password dari algoritma SHA-1 dan SHA-3 Jumlah Karakter
8
9
10
Jenis Karakter Lowercase Lowercase dan angka Lowercase, angka dan simbol Lowercase, angka, simbol dan uppercase Lowercase Lowercase dan angka Lowercase, angka dan simbol Lowercase, angka, simbol dan uppercase Lowercase Lowercase dan angka Lowercase, angka dan simbol Lowercase, angka, simbol dan uppercase
SHA-1
SHA-3
Berdasarkan Tabel 5(e), dari keseluruhan pengujian mulai dari 8, 9 dan 10 karakter dan semua jenis karakter yaitu lowercase, lowercase dikombinasikan dengan angka, lowercase dikombinasikan dengan angka dan simbol dan lowercase dikombinasikan dengan angka, simbol dan uppercase, algoritma SHA-1 lebih cepat dalam memproses password tersebut. Jadi kesimpulannya, untuk analisis pengujian waktu pemrosesan pada saat login, SHA-1 lebih unggul daripada SHA-3. Tetapi perlu diingat, hal ini juga tidak bisa membuat SHA-1 lebih baik dari SHA-3, dikarenakan waktu yang ditempuh yaitu dalam milliseconds, Fakultas Ilmu Komputer, Universitas Brawijaya
811
pengguna tidak akan merasakan dampak langsung dari waktu ini. Pengguna akan tetap dapat merasa nyaman dalam menggunakan aplikasi ini dengan sistem autentikasi dengan algoritma SHA-3 yang telah diterapkan untuk menggantikan algoritma SHA-1. 6. PENUTUP 6.1. Kesimpulan Berdasarkan hasil penelitian yang telah dilakukan, dapat disimpulkan beberapa hal mengenai algoritma SHA-1 dan SHA-3. 1. Algortima fungsi hash SHA-3 telah berhasil diterapkan pada sistem Garuda Training Cost untuk menggantikan algoritma pendahulunya yaitu SHA-1, dengan menambahkan sebuah kode pada sistem dan mengganti beberapa baris kode yang ada pada sistem. Kode yang diganti tersebut berada pada proses login, proses perubahan password dan proses penambahan pengguna baru. 2. Kinerja dari algoritma hash SHA-3 dapat dikatakan lebih baik daripada algoritma SHA-1 berdasarkan pada hasil pengujian yang telah dilakukan. Pada saat pengujian brute-force, waktu yang ditempuh untuk mendapatkan plaintext 8, 9 dan 10 karakter dari hash SHA-3 memakan waktu yang sangat berbanding jauh dengan algoritma SHA-1, membuat algoritma SHA-3 ini sangat tahan terhadap serangan dibandingkan dengan SHA-1. Pada pengujian avalanche effect, memang algoritma SHA-1 lebih unggul, tetapi keduanya sudah mencapai standar untuk sebuah algoritma agar dapat dikatakan baik, yaitu perubahan 1 bit pada plaintext menyebabkan perubahan pada hasil hash lebih dari 50%. Algoritma SHA-1 mencapai persentase 100% sedangkan SHA-3 mencapai persentase 95%. Dan dari pengujian terakhir yaitu waktu pemrosesan, algoritma SHA-1 lebih cepat dari algoritma SHA-3, dikarenakan algoritma SHA-3 harus memproses lebih banyak output yaitu 256 bit dibandingkan dengan SHA-1 yang hanya 160 bit. Faktor lain yang mempengaruhi juga yaitu fungsi SHA-1 merupakan fungsi bawaan dari bahasa pemrograman yang digunakan untuk implementasi, yaitu PHP. Sedangkan fungsi algoritma SHA-3 merupakan fungsi
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
3.
tambahan dari luar yang menyebabkan fungsi ini lebih lambat untuk diproses serta kerumitan dan kompleksitas algoritmanya yang lebih tinggi. Tetapi dari segi keamanan dan ketahanan, algoritma SHA3 jauh lebih baik. Analisis untuk ketahanan algoritma SHA-1 dan SHA-3 terhadap serangan dilakukan dengan cara memperhatikan dan membandingkan seluruh hasil dari pengujian yang telah dilakukan, yaitu pengujian brute-force, avalanche effect dan waktu pemrosesan.
6.2. Saran Saran yang dapat penulis berikan untuk penelitian selanjutnya yaitu dapat menganalisis algoritma SHA-3 dengan algoritma lain yang lebih baru atau lebih aman, dikarenakan pada saat penulisan algoritma SHA-3 merupakan yang paling baru. Dapat juga dilakukan pengujian dengan menggunakan metode lain, dan juga untuk lebih meningkatkan keamanan dari suatu sistem web dapat menambahkan sistem autentikasi yang lainnya tidak hanya dengan hash password, dapat dengan HTTPS atau yang lainnya. Diharapkan penelitian ini dapat dijadikan rujukan untuk pengembangan selanjutnya. 7. DAFTAR PUSTAKA Bernstein, J. D., 2005. Understanding bruteforce. Department of Mathematics, Statistics, and Computer Science (M/C 249). The University of Illinois at Chicago Bertoni, G., 2011. Cryptographic sponge function. STMicroelectronics NXP Semiconductors. Canni`ere, De Christophe and Rechberger, Christian. 2006. Finding SHA-1 Characteristics: General Results and Applications. Institute for Applied Information Processing and Communications (IAIK). Graz University of Technology, Inffeldgasse 16a Fakhrusy, M., 2016. Implementasi HMACSHA-3-Based One Time Password pada Skema Two-Factor Authentication. Institut Teknologi Bandung Kumar, Amish dan Tiwari Namita, 2012. Effective Implementation and Avalanche Effect of AES. International Journal of Fakultas Ilmu Komputer, Universitas Brawijaya
812 Security, Privacy and Trust Management (IJSPTM), Vol. 1, No 3/4
Oak, 2006. Understanding the independentsamples t Test. Northern Arizona University. Oak,
2006. Understanding the One-Way ANOVA. Northern Arizona University.
Rhee, Y. M, 2003. Internet Security: Cryptographic principles, algorithms and protocols. School of Electrical and Computer Engineering. Seoul National University, Republic of Korea. Romine, H. Charles, 2015. SHA-3 Standard: Permutation-Based Hash and ExtendableOutput Functions. Federal Information Processing Standards Publications Sarmadi, B.S, 2014. Efficient and Concurrent Reliable Realization of the Secure Cryptographic SHA-3 Algorithm. IEEE Transactions on Computer-Aided Design Of Integrated Circuits And Systems, Vol. 33, No. 7 Shaugi, A., 2012. Analisa dan Perbandingan Hasil Implementasi Algoritma MD5 dan SHA-1 pada sistem keamanan Simple-O. S1. Universitas Indonesia. Stalling, W., 2011. Network Security Essentials: Application and Standards, 4 th Edition. New Jersey: Pretince Hall Stalling, W., 2005. Cryptography and Network Principles and Pratctices 4th Edition. New Jersey: Pretince Hall Wang, X., 2005. Finding Collisions in the Full SHA-1. China: Shandong University