Institutional Repository | Satya Wacana Christian University: Implementasi Teknik Kriptografi AES dan One Time Password pada Aplikasi Pelaporan Berbasis Social Media

  Implementasi Teknik Kriptografi AES dan One Time Password pada Aplikasi Pelaporan Berbasis Social Media Artikel Ilmiah Diajukan kepada Fakultas Teknologi Informasi Untuk Memperoleh Gelar Sarjana Komputer Peneliti : Willy Wijaya Soegiarto (672014031) Hindriyanto Dwi Purnomo, ST., MIT., Ph.D Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Salatiga November 2017

1. Latar Belakang Masalah

  Manusia pada dasarnya merupakan makhluk sosial yang selalu membutuhkan interaksi dan komunikasi dengan manusia lainnya. Sifat dasar manusia inilah yang pada akhirnya mendorong pengembangan IPTEK pada bidang informasi dan komunikasi. Semakin hari, interaksi dan komunikasi antar individu semakin dipermudah dengan adanya temuan-temuan di bidang teknologi informasi dan komunikasi. Salah satu contoh produk teknologi yang telah banyak digemari masyarakat dan banyak dimanfaatkan untuk sarana bertukar informasi saat ini adalah Social Media. Terlepas dari berbagai perdebatan mengenai dampak positif dan dampak negatif yang ditimbulkan oleh Social Media, pada kenyataannya Social Media saat ini telah mengakar dalam diri masyarakat dan susah untuk dipisahkan dari kehidupan sehari-hari masyarakat zaman sekarang.

  Social Media sendiri sangat erat hubungannya dengan aktivitas pertukaran

  data, terutama proses pengunggahan data (upload). Banyaknya aktivitas upload data yang dilibatkan dalam Social Media ini tentunya memperbesar peluang untuk terjadinya upaya pencurian data, seperti di antaranya serangan Sniffing dan Phishing jika tidak ada penanganan yang tepat pada jaringan keamanan data.

  Serangan Sniffing bekerja secara pasif dengan cara memonitor dan mengambil data yang lewat melalui jaringan, sehingga seringkali kehadirannya sulit dideteksi [1]. Sebagai salah satu upaya untuk menghindari serangan Sniffing, dapat diterapkan metode Kriptografi AES untuk menjaga kerahasiaan data yang akan dikirim dengan cara menyandikannya. Metode Kriptografi AES dinilai tepat untuk penyandian data karena tingkat keamanan, efisiensi, serta kesederhanaannya [2]. Algoritma AES dikembangkan dengan mode operasi

  

Cipher Block Chaining (CBC). Mode Operasi CBC memanfaatkan initialization

vector (IV) yaitu suatu vector awal yang tidak bermakna, sehingga hasil

  cipherteks menjadi lebih unik [3]. Selain itu mode Operasi CBC juga telah didukung oleh platform Visual Basic .NET [4] yang digunakan pada aplikasi pelaporan data yang telah dibangun.

  Sementara serangan Phishing juga menjadi ancaman serius karena selalu berkembang dengan metode baru dan memiliki karakteristik yang terus berubah sehingga menjadi semakin sulit dideteksi. Serangan Phishing dijalankan dengan cara menyamar menjadi pihak yang seakan-akan dapat dipercaya, kemudian mengakses serta mencuri informasi dan data pribadi korban yang ditiru. Phishing umumnya memiliki beberapa jenis penyerangan, di antaranya man-in-the-middle,

  

malware phishing , key loggers, session hijackers, web Trojans, IP address

manipulation , dan system reconfiguration attacks [5]. Bahaya Phishing dapat

  dihindari dengan melakukan implementasi metode autentikasi. Autentikasi adalah metode untuk mengkonfirmasi identitas, melacak asal-usul, memastikan apakah sebuah produk sesuai dengan yang seharusnya, serta memastikan apakah sebuah program dapat dipercaya atau tidak [6].

  Berdasarkan latar belakang masalah tersebut, maka dilaksanakan penelitian yang bertujuan untuk melakukan implementasi teknik kriptografi AES dan one

  time password pada aplikasi pelaporan berbasis social media.

2. Tinjauan Pustaka

  Terkait dengan topik bahasan, sebelumnya metode One Time Password (OTP) telah terlebih dahulu dimanfaatkan dalam penelitian berjudul

  “Software

  Tokens Based Two Factor Authentication Scheme

  ”. Pada penelitian tersebut dilakukan implementasi Two Factor Authentication pada aplikasi berbasis mobile J2ME. Kedua faktor yang digunakan dalam autentikasi adalah PIN serta password

  

Init secret yang berupa One Time Password. Autentikasi berbasis pada Time

Synchronous Authentication dengan menggunakan RFC1321 MD5 Message

Digest Algorithm of Epoch Time. Ide dari penelitian ini adalah untuk membatasi

aktivitas login selama 60 detik [7].

  Kemudian implementasi algoritma AES pada aplikasi Android sebelumnya telah dilakukan pada penelitian berjudul “Implementasi Kriptografi AES Untuk Aplikasi Chatting Sistem Jejaring Klaster Berbasis Android

  ”. Pada jurnal penelitian tersebut, peneliti memanfaatkan algoritma kriptografi AES dengan panjang kunci 128 bit untuk menyandikan data yang ditransmisikan pada setiap kegiatan chatting pada sistem jejaring klaster berbasis Android. Peneliti beranggapan bahwa sebelumnya masih banyak aplikasi chatting yang tidak dilengkapi dengan fungsi penyandian data, sehingga rawan terhadap pencurian informasi [8].

  Berdasarkan beberapa penelitian yang telah membahas mengenai OTP dan AES tersebut, disusunlah penelitian terkait dengan mengimplementasikan teknik kriptografi algoritma kriptografi AES dan autentikasi One time password untuk mengamankan data pada aplikasi pelaporan berbasis social media yang difokuskan pada proses upload data.

  Autentikasi merupakan metode yang umumnya digunakan untuk menentukan keabsahan dari suatu identitas [9]. Pada aplikasi yang dibangun memanfaatkan konsep Two-factor Authentication dengan menggunakan token OTP dan data log in (userId dan password) sebagai media autentikasi. One time

  

password dipilih karena memiliki batasan waktu dan tidak dapat digunakan ulang

  [10]. Dalam penyusunan token OTP, terdapat dua faktor yang harus diperhitungkan, yakni [7] :

  1. Elemen yang digunakan harus unik dan hanya dimiliki pribadi tersebut, namun tidak boleh mudah ditebak.

  2. Elemen yang digunakan harus diketahui oleh client dan server, sehingga dapat dicocokkan. Karena token tidak perlu didekripsi, maka pembuatan token menggunakan algoritma MD5 yang dirancang dengan konsep penyandian hash satu arah, sehingga pesan asli sulit untuk dikembalikan seperti semula. Langkah yang dilakukan dalam algoritma kriptografi MD5 adalah sebagai berikut [12] :

  1. Penambahan bit-bit pengganjal (padding bits).

  2. Penambahan nilai panjang pesan semula.

  3. Inisialisasi penyangga (buffer) MD.

  4. Pengolahan pesan dalam blok berukuran 512 bit. Kriptografi juga digunakan untuk mengamankan data yang dikirimkan pada proses upload data. Kriptografi sendiri merupakan suatu ilmu atau seni penyandian data [11]. Dalam suatu sistem kriptografi (Cryptosystem) terdiri dari dua tahap yaitu enkripsi dan dekripsi, dimana prosesnya diatur oleh satu atau beberapa kunci [13]. Proses yang terjadi di dalam suatu sistem kriptografi dapat dilihat pada Gambar 1.

  Gambar 1 Proses dalam Sistem Kriptografi [13]

  Algoritma kriptografi yang digunakan adalah AES dengan panjang kunci 128-

  

bit . AES merupakan algoritma block cipher dengan ukuran blok 128-bit yang

banyak putarannya ditentukan oleh panjang kuncinya.

  

Tabel 1 Relasi Panjang Kunci dengan Jumlah Ronde pada AES [14].

  Parameter AES-128 AES-192 AES-256 Panjang Kunci (Bit) 128 192 256 Jumlah Putaran

  10

  12

  14 Ukuran Blok Plainteks 128 128 128

  Karena kunci yang digunakan berukuran 128-bit, maka algoritma AES yang digunakan akan terdiri dari 10 putaran untuk setiap proses dekripsi dan enkripsi. Proses enkripsi dan dekripsi yang terjadi pada algoritma AES dengan panjang kunci 128-bit secara umum dapat dilihat pada Gambar 2.

  Gambar 2 Proses Enkripsi dan Dekripsi AES 128-bit [14]

  Untuk proses enkripsi dan dekripsi selalu diawali dengan Add Round Key baru kemudian dilanjutkan dengan 10 putaran. Setiap putaran enkripsi, dengan pengecualian putaran ke 10 memiliki empat tahap, yaitu : Substitutes bytes (Penggantian bytes), Shift Rows (Penggeseran baris), Mix Column (Pengacakan kolom), Add Round Key (Penambahan kunci putaran). Putaran ke sepuluh dari proses enkripsi hanya terdiri dari tiga tahap, yakni: Substitute bytes, Shift Rows, dan Add Round Key.

  Untuk proses dekripsi, putaran pertama sampai putaran kesembilan memiliki tahapan sebagai berikut : Inverse Shift rows, Inverse Substitute bytes,

  = ℎ − =

  = ℎ (IV) = ℎ −

  Dengan :

  (2)

  ( −1)

  Fungsi dekripsi untuk tiap block ditunjukkan pada Persamaan (2) [15] : = ( )⨁

  

Gambar 4 Proses Dekripsi Mode Operasi CBC [15]

  = − Proses dekripsi pada mode operasi CBC ditunjukkan pada Gambar 4.

  Dengan : = ℎ (IV)

  

Add Round Key, dan Inverse Mix Columns. Putaran kesepuluh terdiri dari tiga

  ) (1)

  ( −1)

  Fungsi enkripsi untuk setiap block ditunjukkan pada Persamaan (1) [15] : = ( ⨁

  Gambar 3 Proses Enkripsi Mode Operasi CBC [15]

  Proses enkripsi pada mode operasi CBC ditunjukkan pada Gambar 3.

  AES memiliki mode operasi Cipher Block Chaining (CBC) yang menerapkan fungsi umpan balik (feedback), yakni setiap block current yang sedang diproses akan di-XOR-kan dengan hasil dari block sebelumnya. Oleh karena itu, block pertama berisi initialization vector (IV) yang merupakan block acak tidak bermakna untuk membuat cipherteks menjadi unik [3].

  tahapan yakni Inverse shift Rows, Inverse Substitute bytes, dan Add Round Key [14].

  = = −

  Social media merupakan teknologi yang memanfaatkan media komputer

  untuk dapat berbagi informasi, ide, serta ekspresi lainnya melalui komunitas virtual dan jaringan [16]. Social media pada umumnya dapat diakses melalui teknologi berbasis web dengan menggunakan perangkat komputer, atau mengunduh aplikasi penyedia layanan yang terdapat pada perangkat genggam seperti handphone [17].

  Melalui social media setiap individu, kelompok atau organisasi dapat saling berbagi, berdiskusi, atau merevisi konten yang telah dibagikan sebelumnya [18]. Hal ini berarti social media banyak melibatkan proses transmisi data, termasuk di dalamnya proses upload. Upload adalah proses pengiriman data dari satu sistem komputer ke sistem komputer lainnya, yang pada umumnya berjalan dari sistem komputer yang lebih kecil ke sistem komputer yang lebih besar [19].

3. Metode Perancangan

  Penelitian yang dilakukan, diselesaikan melalui tahapan penelitian yang terdiri atas empat tahapan yang ditunjukkan pada Gambar 5.

  

Gambar 5 Metode Penelitian [20]

  Tahapan tersebut dapat dijelaskan sebagai berikut : pada tahap pertama, dilakukan identifikasi masalah (1) untuk mengetahui inti permasalahan serta mempelajari kebutuhan user serta kebutuhan sistem dari permasalahan. Selain itu dilakukan penyusunan teori pendukung dan mencari metode yang cocok untuk permasalahan yang dihadapi. Kemudian berdasarkan teori serta metode yang telah dipelajari sebelumnya, pada tahap kedua dilakukan perancangan sistem keamanan data (2) meliputi : menyusun rencana implementasi teknik kriptografi AES dan metode autentikasi one time password pada aplikasi pelaporan; perancangan

  (UML) yang terdiri dari use case diagram, dan

  Unified Modelling Language

activity diagram ; Perancangan User Interface; serta perancangan database. Pada

tahap ketiga dilakukan implementasi sistem keamanan data (3) berdasarkan

  rancangan yang telah dibangun. Setelah itu pada tahap keempat dilakukan Pengujian Sistem (4) berupa pengujian Performance dan Stress test pada server untuk melihat tingkat kejemuan dari server setelah adanya implementasi sistem keamanan data.

  Aplikasi pelaporan PT. XYZ merupakan aplikasi pelaporan yang ditujukan untuk memfasilitasi aktivitas pelaporan serta pertukaran aspirasi pegawai dalam hubungannya dengan aktivitas bisnis PT. XYZ. Aplikasi pelaporan PT. XYZ memiliki basis Mobile dan dapat terhubung dengan Server melalui koneksi vpn

  

Internet . Admin yang bertugas untuk melakukan kontrol terhadap laporan

  dihubungkan kepada server menggunakan koneksi vpn internet. Arsitektur sistem dari aplikasi pelaporan PT. XYZ terlihat pada Gambar 6.

  Gambar 6 Arsitektur Sistem Aplikasi Pelaporan PT. XYZ

  Untuk dapat mengakses aplikasi pelaporan PT. XYZ, pegawai harus melakukan proses Log In terlebih dahulu pada aplikasi dengan mengisikan NIK sebagai ID pengenal dan password yang sesuai. Nomor Induk Kepabeanan (NIK) digunakan sebagai UserID karena NIK hanya dimiliki oleh pegawai PT. XYZ. Fungsi yang dapat diakses user pada aplikasi pelaporan PT. XYZ dijabarkan sebagai berikut :

  1. Log In dengan menggunakan userID dan password, 2.

  Melakukan upload laporan, dengan elemen yang dilaporkan meliputi : judul, kategori, lokasi, serta deskripsi laporan.

  3. Mengelola Timeline, meliputi : a.

  Melihat laporan yang telah di-upload, b.

  Mencari laporan yang telah di-upload, 4.

   Fungsi Komentar , meliputi : a.

  Melihat Komentar yang terdapat pada laporan, b.

  Melakukan penambahan komentar terhadap laporan yang dilihat, 5. Mengelola Profil, meliputi : a.

  Melihat profil b.

  Melakukan update profil : melakukan perubahan nickname Data laporan yang telah di-upload oleh pegawai kemudian harus disortir terlebih dahulu oleh Admin. Jika laporan yang masuk dianggap telah sesuai dan bukan merupakan spam, maka laporan akan diterbitkan sehingga dapat dilihat dan diakses oleh seluruh pengguna aplikasi pelaporan PT. XYZ.

  Berdasarkan fungsi serta role masing-masing actor yang dijabarkan, kemudian disusun use case diagram yang ditunjukkan pada Gambar 7.

  Gambar 7 Use Case Diagram Aplikasi Pelaporan

  Kemudian untuk lebih memahami aliran aktivitas yang terjadi, arah aliran dari aktivitas, keputusan yang dihasilkan pada setiap aktivitas, serta akhir dari setiap aliran aktivitas, dibagunlah rancangan activity diagram [17]. Activity

diagram dari aplikasi pelaporan yang telah dibangun ditunjukkan pada Gambar 8.

  Gambar 8 Activity Diagram Aplikasi Pelaporan Aktivitas pada aplikasi pelaporan PT. XYZ diawali dengan Log In dimana

  

client akan diminta untuk melakukan proses Log In. Apabila UserID dan

Password ternyata sesuai, alur akan berlanjut ke proses autentikasi. Jika proses

  autentikasi user telah valid, maka semua data yang berhubungan dengan jalannya fungsi menu aplikasi akan diambil dari database kemudian dikirimkan ke sisi

  

client. Dalam proses pengirimannya data akan diamankan dengan menggunakan

  sistem kriptografi (enkripsi dan dekripsi). Saat user menjalankan menu yang berhubungan dengan upload dan manipulasi data, seperti penambahan laporan, tambah komentar, mencari laporan, dan update laporan, data akan dienkripsi dan dikirimkan ke sisi server, untuk kemudian didekripsi dan disimpan ke database.

  Secara umum, rancangan dari implementasi teknik kriptografi AES dan one

  

time password pada aplikasi pelaporan berbasis social media digambarkan dalam

bentuk flowchart yang terdapat pada Gambar 9 dan Gambar 10.

  Gambar 9 Rancangan Autentikasi pada Proses Log In User

4. Hasil dan Pembahasan Proses Autentikasi berjalan setelah user melakukan proses log in.

  • time2+userid.substring(1,2); sResult = getMD5(ToHash);

  3.

  ditampung dalam variabel messageDigest, kemudian diubah menjadi bilangan integer positif. Variabel messageDigest kemudian dikonversi kembali dalam bentuk string agar dapat disusun menjadi hash.

  Input

  Pertama dilakukan deklarasi MD5 sebagai mode enkripsi yang digunakan.

  byte [] messageDigest = md.digest(input.getBytes()); BigInteger number = new BigInteger(1, messageDigest); String hashtext = number.toString(16); while (hashtext.length() < 32) { hashtext = "0" + hashtext;)} return hashtext;

  6.

  5.

  4.

  2.

  Gambar 10 Rancangan Implementasi Kriptografi pada Proses Upload Data

  Kode Program 2 Enkripsi MD5 1.

  Pembuatan token pada Kode Program 1 dapat dijelaskan sebagai berikut : pada saat user melakukan post userId dan password, sistem akan mengambil data waktu jam milik client. Kemudian data jam client yang telah didapatkan akan dikombinasikan bersama userId dan data waktu lainnya (berisi tahun, bulan, hari). Hasilnya kemudian dienkripsi dengan menggunakan algoritma MD5.

  6. String time1 = new SimpleDateFormat( "yyyyMMdd" ).format(new Date()); String time2 = new SimpleDateFormat( "HH" ).format(new Date()); String userid = userid; ToHash = userid.substring(2,3)+time1+ "|" +userid.substring(0,1)+ "|"

  5.

  4.

  3.

  2.

  Kode Program 1 Pembuatan Token Client 1.

  Pembuatan token menggunakan metode kriptografi MD5, dengan elemen UserID dan waktu Server.

7. MessageDigest md = MessageDigest.getInstance( "MD5" );

  Karena proses autentikasi menggunakan token yang hanya dapat digunakan pada jam tersebut, maka untuk menghindari permasalahan dimana user melakukan Log In di akhir jam, maka diberikan kelonggaran dalam bentuk penggunaan token pada jam sebelumnya untuk melakukan autentikasi ulang apabila autentikasi pertama gagal. Kode program penentuan token autentikasi ditunjukkan pada Kode Program 3.

  3.

  Pada sisi server, data chiperteks yang diterima dari client kemudian akan didekripsi kemudian disimpan ke dalam database. Kunci dekripsi yang digunakan memiliki konsep yang serupa dengan token autentikasi, dimana kunci dekripsi hanya dapat digunakan pada jam tersebut. Untuk itu untuk menghindari permasalahan saat pengiriman di akhir jam, pada fungsi decrypt diberikan kelonggaran dimana kunci pada jam sebelumnya akan digunakan apabila kunci pada jam saat ini menghasilkan dekripsi yang gagal. Proses dekripsi dinyatakan gagal dan data akan ditolak apabila dekripsi menggunakan kunci jam saat ini dan dekripsi menggunakan kunci satu jam sebelumnya gagal dilakukan. Untuk kode program pada fungsi dekripsi selengkapnya terlihat pada Kode Program 5.

  "1nI4DaLL4ahHP4Dd11N9994ANnNKKkkKKuUuUNnnnnCcCCI1I!I!" ; Cipher cipher = Cipher.getInstance( "AES/CBC/PKCS5Padding" ); byte [] keyBytes = new byte [16]; byte [] b = key.getBytes( "UTF-8" ); int len = b.length; if (len > keyBytes.length) len = keyBytes.length; System.arraycopy(b, 0, keyBytes, 0, len); SecretKeySpec keySpec = new SecretKeySpec(keyBytes, "AES" ); IvParameterSpec ivSpec = new IvParameterSpec(keyBytes); cipher.init(Cipher.ENCRYPT_MODE, keySpec, ivSpec); byte [] results = cipher.doFinal(text.getBytes( "UTF-8" )); result = Base64.encodeToString(results, Base64. DEFAULT );

  12.

  11.

  10.

  9.

  8.

  7.

  6.

  5.

  4.

  2.

  Kode Program 3 Kelonggaran Waktu untuk Proses Autentikasi 1.

  Kode Program 4 Fungsi Encrypt Data 1.

  Pada fungsi upload, setiap data yang akan dikirim harus dienkripsi satu- persatu dengan menggunakan fungsi Encrypt. Fungsi Encrypt menggunakan basis algoritma kriptografi AES dengan mode operasi Cipher Block Chaining. Kunci enkripsi yang digunakan untuk fungsi Encrypt tersusun atas kombinasi waktu, kunci milik user (userkey) dan string random sebagai salt. Karena menggunakan mode operasi cipher block chaining, maka digunakan variable ivParameterSpec untuk mengisi block pertama. Kode program untuk fungsi Encrypt dijabarkan pada Kode Program 4.

  10. If status = 0 Then 'untuk Autentikasi pertama strToHash = userid.Substring(2,1) + dt.ToString( "yyyyMMdd" ) + "|" +

userid.Substring(0,1) + "|" + dt.ToString( "HH" ) + userid.Substring(1, 1)

ElseIf status = 1 Then 'untuk Autentikasi kedua strToHash = userid.Substring(2,1) + dt.ToString( "yyyyMMdd" ) + "|" + userid.Substring(0,1)+ "|" +dt.AddHours(-1).ToString( "HH" )+ userid.Substring(1,1) Else strToHash = "Gagal" End If

  9.

  8.

  7.

  6.

  5.

  4.

  3.

  2.

13. String key = time + sharedpreferences .getString( "userKey" , "" )+

  Kode Program 5 Fungsi Decrypt Data 1.

  31.

  24.

  25.

  26.

  27.

  28.

  29.

  30.

  32.

  22.

  33.

  34.

  35. If status = 0 Then time = GetTime() ElseIf status = 1 Then time = GetTime_1() End If Dim key As String = time + userid + "1nI4DaLL4ahHP4Dd11N9994ANnNKKkkKKuUuUNnnnnCcCCI1I!I!" Dim rijndaelCipher As New RijndaelManaged() rijndaelCipher.Mode = CipherMode.CBC rijndaelCipher.Padding = PaddingMode.PKCS7 rijndaelCipher.KeySize = &H80 '128bit rijndaelCipher.BlockSize = &H80

Dim encryptedData As Byte () = Convert.FromBase64String(textToDecrypt)

Dim pwdBytes As Byte () = Encoding.UTF8.GetBytes(key) Dim keyBytes As Byte () = New Byte (15) {} Dim len As Integer = pwdBytes.Length If len > keyBytes.Length Then len = keyBytes.Length End If Array.Copy(pwdBytes, keyBytes, len) rijndaelCipher.Key = keyBytes rijndaelCipher.IV = keyBytes plainText =

rijndaelCipher.CreateDecryptor().TransformFinalBlock(encryptedData, 0,

encryptedData.Length) result = Encoding.UTF8.GetString(plainText) Catch ex As Exception If status = 0 Then result = "RETRY" Else Dim dt As DateTime = DateTime.Now Dim waktu As String = dt.ToString( "dd-MM-yyyy HH:mm" ) result = "DECRYPTION FAILED... " + waktu End If

  Dengan cara kerjanya yang cukup kompleks, maka perlu dilakukan pengujian dan analisa untuk melihat dampak yang ditimbulkan dari implementasi sistem keamanan data terhadap server. Pengujian yang dilakukan berupa uji

  

performance test dan stress test untuk melihat performa dan tingkat tekanan

server setelah adanya implementasi sistem keamanan data.

  Karena proses yang dilakukan oleh server setelah menerima data dari client sebelumnya hanya penyimpanan data pada database, maka pengujian

  

performance test dan stress test dilakukan terhadap alur saat server menangani

request dari client. Hal ini supaya perbedaan yang terjadi pada server sebelum dan

  setelah adanya implementasi sistem keamanan data pada sistem dapat terlihat dengan lebih jelas.

  23.

  21.

  2.

  10.

  3.

  4.

  5.

  6.

  7.

  8.

  9.

  11.

  20.

  12.

  13.

  14.

  15.

  16.

  17.

  18.

  19.

  Pengujian performance test dilakukan dengan skenario 1000 client meminta akses dengan delay 100 ms dan batasan waktu 300 ms untuk setiap request-nya. Hasil pengamatan terhadap performa server sebelum adanya implementasi sistem keamanan data dan setelah adanya implementasi sistem keamanan data dibandingkan pada Tabel 2.

  

Tabel 2 Perbandingan Kinerja Server Sebelum dan Sesudah Implementasi Sistem Keamanan Data

Nilai Waktu Sebelum Nilai Waktu Sesudah Variabel

  Implementasi Implementasi Min Duration 12 ms 15 ms Max Duration 163 ms 236 ms Average Duration 28 ms 35 ms Total Duration 28118 ms 35125 ms

  Berdasarkan hasil pengamatan terlihat bahwa server memerlukan waktu yang lebih untuk dapat memproses request dari client namun masih pada batas yang tergolong wajar. Setelah adanya implementasi sistem keamanan data server dapat menyelesaikan permintaan 1000 client dalam waktu 35,125 detik, yang mana mengalami peningkatan waktu 7,007 detik atau sebesar 25% dari waktu pemrosesan awal.

  Selanjutnya dilakukan uji stress test dengan skenario jumlah client yang melakukan request terhadap server naik menjadi 10.000 dengan delay waktu antar

  

request 1 ms dan waktu time out 300 ms. Berdasarkan hasil Stress Test

  ditunjukkan bahwa dengan tekanan 10.000 request, waktu terlama yang dibutuhkan server untuk melayani request adalah 629 ms, sementara waktu tercepat yang dibutuhkan server untuk menangani request adalah 12 ms. Secara keseluruhan server membutuhkan waktu 186030 ms (186 detik) untuk menyelesaikan 10.000 request dengan average duration (waktu rata-rata penyelesaian) sebesar 19 ms dengan asumsi client juga berada pada kondisi normal. Grafik hasil pengujian stress test diperlihatkan pada Gambar 11.

  Gambar 11 Grafik Stress Test

  Penilaian kinerja server secara umum juga dipengaruhi oleh kondisi client yang ditangani. Sebagai contoh, jika client berada pada kondisi terbaik, maka

  

server sebenarnya dapat menyelesaikan pekerjaan dengan average duration 17

  ms, sehingga banyaknya request yang dapat ditangani pun meningkat dari 52,63

  

request /detik menjadi 58,82 request/detik. Untuk hasil pengujian berdasarkan

kondisi server dan client secara lengkap terlihat pada Tabel 3.

  

Tabel 3 Hasil Uji Stress Test

Client Client Server Server

  Variabel (keseluruhan) (kondisi terbaik) (keseluruhan) (kondisi terbaik) Average Duration 19 ms 17 ms 17 ms 15 ms

  

52,63 58,82 58,82

Throughput

  66,67 request/sec

request /sec request /sec request /sec

Inter-arrival time 5019 ms 5017 ms 5017 ms 5015 ms

  264 295 295 334 Concurrent users

  Pada saat server berada pada kondisi terbaik, server mengalami peningkatan

  

average duration menjadi 15 ms sehingga dapat menangani 66,67 request setiap

  detik, dengan concurrent users atau jumlah user yang dapat ditangani secara bersamaan sebanyak 334. Nilai Inter-Arrival time (Jarak waktu antara penerimaan

  

request dengan pemberian request) didapatkan dari hasil penjumlahan antara

  dengan think time (jeda antar permintaan). Adanya peningkatan

  average duration

average duration dan think time yang sama untuk seluruh kondisi, menimbulkan

nilai inter-arrival time ikut mengalami peningkatan. Dengan demikian dapat

  dikatakan bahwa pada kondisi server terbaik, waktu penyelesaian untuk 10.000 request mengalami peningkatan 4 detik dari kondisi awal.

5. Simpulan

  Berdasarkan hasil penelitian dan pengujian, dapat disimpulkan bahwa implementasi sistem keamanan data yang memanfaatkan teknik kriptografi AES dan autentikasi OTP dapat mengurangi resiko keamanan data tanpa mengurangi kinerja sistem secara signifikan. Autentikasi one time password dapat mengurangi bahaya serangan phishing karena dibatasi oleh jam dan memerlukan data pribadi milik user. Selain itu, karena data yang dikirim tidak dapat dibaca pihak luar dengan adanya penyandian data, maka bahaya laten dari serangan sniffing juga dapat diatasi dengan adanya implementasi sistem kriptografi pada proses upload data. Pengujian performance test setelah implementasi teknik kriptografi AES dan autentikasi one time password pada aplikasi pelaporan data dengan skenario penanganan 100 client dengan waktu delay 100 ms dan batasan waktu request 300 ms, menimbulkan kenaikan waktu proses sebesar 25% dari waktu performa awal. Beban yang ditimbulkan cukup ringan, sehingga server masih dapat mengatasi permintaan request dalam jumlah yang besar dan beruntun dalam waktu yang relatif singkat. Sementara uji stress test dengan skenario 10.000 user dengan delay waktu antar request 1 ms dan waktu time out 300 ms memiliki waktu pemrosesan rata-rata sebesar 15 ms pada saat server berada pada kondisi terbaik.

  Untuk pengembangan selanjutnya, dapat dilakukan perbaikan untuk algoritma kelonggaran waktu untuk autentikasi pada akhir jam untuk memperketat keamanan autentikasi. Selain itu dapat digunakan algoritma RSA untuk enkripsi kunci AES untuk menambah keamanan karena mempergunakan konsep private dan public key. Selain itu dengan teknologi yang lebih memadai, diharapkan teknik AES yang digunakan data dapat dikembangkan dengan mode operasi block

  

cipher yang lebih modern seperti Counter (CTR) atau Galois/Counter Mode

  (GCM). Selain itu untuk proses autentikasi dapat dikembangkan saluran SSL untuk menambah keamanan data.

6. Daftar Pustaka [1] Vimalsevaran, M., 2016.

  Packet Sniffing: What it’s Used for, its Vulnerabilities, and How to Uncover Sniffers , Massachusetts : Tufts

  University. [2] Aziz, A.R., 2017. Implementasi Enkripsi Text Menggunakan Algoritma

  Advanced Encryption Standard dan Elliptic Curve Cryptography, Surabaya : Institut Teknologi Sepuluh Nopember.

  [3] Ahmad, F., Basuki, P. N., Rudianto, C., 2016. Perancangan Kriptografi

  Block Cipher Berbasis CBC (Cipher Block Chaining) Termodifikasi dalam

  Pengamanan Data Lokasi pada Database Server Aplikasi MeetApss, Salatiga : Fakultas Teknologi Informasi Universitas Kristen Satya Wacana. [4] Microsoft, (n.d.). CipherMode Enumeration

  Diakses Pada 17 Juli 2017. [5] Williamson, G. D., 2006. Enchanced Authentication in Online Banking.

  New York : Utica College Economic Crime Institute. [6] Valente, E., 2009. Two-Factor Authentication: Can You Choose the Right One?. New York : SANS Institute.

  [7] Singhal, M., Tapaswi, S., 2012. Software Tokens Based Two Factor

  Authentication Scheme . International Journal of Information and Electronics Engineering, Vol. 2, No. 3, hlm.383-386.

  [8] Latumahina, E. J., Suprihadi, 2016. Implementasi Kriptografi AES Untuk Aplikasi Chatting Sistem Jejaring Klaster Berbasis Android. Salatiga : Fakultas Teknologi Informasi Universitas Kristern Satya Wacana.

  [9] Turner, D., 2016. Digital Authentication : The Basics .

  kses Pada 31 Agustus 2017.

  [10] Handare, S., Nagpurkar, V., Mittal, J., 2014. Securing SMS Based One Time

  Password Technique from Man in the Middle Attack. International Journal of Engineering Trends and Technology, Vol. 11, No. 3, hlm. 154-158.

  [11] Siregar, H. M. S., 2014. Pengamanan File menggunakan Algoritma Kriptografi Rijndael. Bandung : Fakultas Teknik Universitas Widyatama. [12] Munir, R., 2004. Fungsi Hash Satu-Arah dan Algoritma MD5. Bandung : Institut Teknologi Bandung. [13] Kurniawan, Y., 2004. Kriptografi : Keamanan Internet dan Jaringan Telekomunikasi. Bandung : Informatika. [14] More, S., Bansode, R., 2015. Implementation of AES with Time

  Complexity Measurement for Various Input. Global Journal of Computer

  Science and Technology: E Network, Web & Security, Vol. 15, No. 4, hlm. 10-20. [15] William F. Ehrsam, Carl H. W. Meyer, John L. Smith, Walter L. Tuchman,

  "Message Verification and Transmission Error Detection by Block Chaining ", US Patent 4074066, 1976. [16] Obar, J. A., Wildman, S., 2015. Social Media Definition and the

  Governance Challenge: An Introduction to the Special Issue . Telecommunications policy. Vol.39, No.9, hlm. 745 –750.

  [17] Kietzmann, J. H., Hermkens, K.,2011. Social media? Get serious!

  Understanding the functional building blocks of social media . Business Horizons, Vol 54, No. 3, hlm. 241-251.

  [18] Pavlik, J. V., McIntosh, S., 2015. Converging Media : A New Introduction

  th to Mass Communication 4 Edition . New York : Oxford University Press.

  [19] Segebarth, M., 2005, Uploading .

  kses 5 Oktober 2017.

  [20] Hasibuan, Z. A., 2007, Metodologi Penelitian Pada Bidang Ilmu Komputer Dan Teknologi Informasi: Konsep, Teknik, dan Aplikasi, Jakarta: Ilmu Komputer Universitas Indonesia.

Dokumen yang terkait

1 BAB I PENDAHULUAN 1.1 Latar Belakang - Institutional Repository | Satya Wacana Christian University: Penerapan Model Assure dalam Meningkatkan Keterampilan Proses IPA Siswa Kelas 5 SD Negeri Asinan 01 Semester I Tahun Pelajaran 2017/2018

0 0 7

Institutional Repository | Satya Wacana Christian University: Penerapan Model Assure dalam Meningkatkan Keterampilan Proses IPA Siswa Kelas 5 SD Negeri Asinan 01 Semester I Tahun Pelajaran 2017/2018

0 0 7

Institutional Repository | Satya Wacana Christian University: Penerapan Model Assure dalam Meningkatkan Keterampilan Proses IPA Siswa Kelas 5 SD Negeri Asinan 01 Semester I Tahun Pelajaran 2017/2018

0 0 7

Institutional Repository | Satya Wacana Christian University: Penerapan Model Assure dalam Meningkatkan Keterampilan Proses IPA Siswa Kelas 5 SD Negeri Asinan 01 Semester I Tahun Pelajaran 2017/2018

0 0 23

Institutional Repository | Satya Wacana Christian University: Penerapan Model Assure dalam Meningkatkan Keterampilan Proses IPA Siswa Kelas 5 SD Negeri Asinan 01 Semester I Tahun Pelajaran 2017/2018

0 0 45

Institutional Repository | Satya Wacana Christian University: Upaya Peningkatan Hasil Belajar IPA Menggunakan Model Think Pair Share (TPS) Dipadukan dengan Eksperimen pada Siswa Kelas 5 SD Negeri Tolokan Kecamatan Getasan

0 0 8

Institutional Repository | Satya Wacana Christian University: Upaya Meningkatkan Hasil Belajar Mata Pelajaran IPA Melalui Model Project Based Learning bagi Siswa Kelas V di SDN Tingkir Tengah 1 Semester II Tahun Pelajaran 2014 / 2015

0 0 17

Institutional Repository | Satya Wacana Christian University: Upaya Meningkatkan Hasil Belajar Mata Pelajaran IPA Melalui Model Project Based Learning bagi Siswa Kelas V di SDN Tingkir Tengah 1 Semester II Tahun Pelajaran 2014 / 2015

0 0 83

Institutional Repository | Satya Wacana Christian University: Perancangan Autentikasi Time Based One Time Password (TOTP) MD5 dan Kriptografi AES-CBC 128 bit untuk Proses Penerimaan Data dalam Aplikasi Pelaporan

0 0 22

Institutional Repository | Satya Wacana Christian University: Perancangan dan Implementasi Sistem Akseptasi Klaim PT. Jakarta Teknologi Utama Motor Menggunakan Pega Systems: Studi Kasus PT. Jakarta Teknologi Utama Motor, Jakarta

0 0 17