Algoritma MD5

Pada artikel ini, saya mencoba menjelaskan mengenai rancangan konsep pembuatan aplikasi pengecekan saldo dengan menerapkan algoritma MD5 dan RSA pada perangkat bergerak (mobile). Tulisan ini berhubungan dengan penulisan ilmiah yang saya buat. Aplikasi ini digunakan untuk menjaga kerahasiaan data nasabah saat dilakukan transmisi (permintaan data) ke pihak server, sehingga data yang dikirim tetap terjaga kerahasiaan datanya dan juga keabsahan pengiriman.
Aplikasi ini terdiri dari 3 bagian yaitu :
1. Pada sisi klien berupa aplikasi yang berjalan pada perangkat bergerak (mobile), digunakan untuk memasukkan data nasabah dan mengenkripsinya sebelum dikirimkan ke server.
2. Pada sisi server berupa skrip (JSP) yang  digunakan untuk menangani parameter yang dikirim dari aplikasi klien, proses otentikasi (untuk memastikan dari pengguna yang sah), proses dekripsi dengan menggunakan kunci publik pengguna, validasi (untuk memastikan data yang dikirim tidak ada perubahan) dan merespon permintaan klien.
3. Terakhir, pada sisi server (desktop) berfungsi untuk membangkitkan kunci publik dan kunci privat. Pembangkitan kunci ini dilakukan oleh pihak provider. Setelah kunci publik dan privat terbentuk, selanjutnya kunci privat akan diberikan ke klien, dan kunci publik akan disimpan ke dalam basis data server.
Penggunaan algoritma md5 digunakan untuk menghasilkan ukuran string menjadi lebih pendek agar parameter yang dikirim nantinya tidak terlalu panjang. Sedangkan algortima RSA untuk mengenkripsi data yang sudah di-hash sehingga data tersebut telah ditandatangai secara digital (digital signature).
Berikut merupakan rancangan konsep yang dibuat :
rancang_konsep
  1. Klien memasukkan data mengenai kartu kredit seperti nama, nomor KTP, nomor kartu, expire date, dan kunci privat.
  2. Setiap informasi yang dimasukkan akan digabungkan (concat) kemudian dilakukan hashing yang berguna untuk merubah ukuran string menjadi lebih pendek agar parameter yang dikirim nantinya tidak terlalu panjang, sehingga menghasilkan message digest. Kemudian, message digest tersebut dienkripsi dengan kunci privat klien sehingga mengahasilkan string baru yang dinamakan ciphertext atau digital signature. Selain itu informasi nomor KTP juga dilakukan hashing kemudian dienkripsi, sehingga menghasilkan KTP digest. KTP digest tersebut dikirim secara terpisah dari chipertext, dan digunakan untuk proses validasi nantinya.
  3. Data ciphertext dan KTP digest akan dikirimkan ke server. Sedangkan, kunci privat tidak ikut dikirimkan.
  4. Setelah sampai di server, server akan membandingkan informasi KTP digest dan ciphertext dengan yang ada pada basis data server untuk mendapatkan kunci publik klien dan nomor KTP.
  5. Jika data valid, maka telah didapatkan kunci publik klien. Selanjutnya server akan mendekripsikan 2 data, maka akan didapatkan 2 message digest dari informas-informasi yang telah digabungkan sebelumnya dan nomor KTP.
  6. Berikutnya dilakukan pencocokan 2 message digest tersebut dengan 2 message digest yang ada pada server.
  7. Jika data valid, selanjutnya pihak server akan mengirimkan permintaan klien berdasarkan nomor KTP klien dan mengirimkannya kembali ke client dalam bentuk terenkripsi dengan menggunakan kunci publik klien yang berada pada basis data provider.
Pada konsep di atas saya akui masih terdapat kekurangan, antara lain :
  1. Jika terdapat banyak menu layanan pada ponsel (menu layanan di atas hanya satu yaitu melakukan pengecekan saldo) maka proses enkripsi data akan dilakukan lagi selama pengguna mengakses menu yang lain dan begitu seterusnya.
  2. Untuk pengembangan selanjutnya, dibutuhkan suatu lingkungan yang aman agar pada saat dilakukan transmisi benar-benar terjaga kerahasiaanya yaitu protokol https.
Blog, Updated at: 5/21/2011 05:18:00 PM

0 comments:

Post a Comment

ROUGER DELUFFY CHANNEL