Analisa Keamanan Transaksi Data

download Analisa Keamanan Transaksi Data

of 11

Transcript of Analisa Keamanan Transaksi Data

ANALISA KEAMANAN TRANSAKSI DATA DAN ALTERNATIF LOGIN SECURE MENGGUNAKAN PROTOKOL HTTPEdi Widodo (J4F009015)

I.

Pendahuluan Sejak dikemukakan pertama oleh tim berners-lee seorang fisikawan inggris pada tahun 1990 , hypertext transfer protocol telah menjadi standard utama dalam komunikasi antar komputer dalam jaringan yang luas (internet) sehingga membentuk World Wide Web (WWW). Seiring dengan semakin meluasnya penggunaan internet maka aktifitas bisnis yang melibatkan internet juga semakin marak. Email, Homepage dan aktifitas jual beli melalui internet. Tidak seperti bisnis konvensional dimana antara kedua pihak saling bertatap muka, maka bisnis melalui internet kedua pihak tidak pernah bertemu secara fisik, hanya melakukan aktifitas pertukaran data. Seperti halnya bepergian dalam jarak jauh, data juga mengalami perjalanan jauh antara pengirim dan penerima, singgah diantara terminal-terminal penghubung antara area data satu dengan lainnya. Kemungkinan dalam perjalanan ini data dibaca orang menjadi sangat besar. Kemudian timbul pertanyaan, bagaimana saya sebagai pengirim data yakin bahwa data yang saya kirim akan sampai tujuan tanpa diketahui orang, jika ternyata data tersebut bersifat rahasia.

II.

HTTP (Hypertext Transfer Protocol) HTTP bekerja dengan cara sebuah komputer kepada Server melalui port tertentu (biasanya menggunakan port 80 atau 8080) kemudian server merespon permintaan paket tersebut dan mengirimkan kepada client yang bersangkutan. Sumberdaya yang hendak diakses oleh client menggunakan identifikasi URL (Uniform resource Locator) Dalam melakukan komunikasi berbasis HTTP, client dan server menggunakan komunikasi seperti dibawah ini (C : Client, S : Server)C C C S S S S S : : : : : : : : (Inisialisasi koneksi) GET /index.htm HTTP/1.1 Host: www.wikipedia.org 200 OK Mime-type: text/html -- data dokumen -(close connection)

Sumber : Wikipedia (HTTP) Dari mekanisme seperti di atas, dapat disimpulkan HTTP tidak melakukan sesi autentikasi, sehingga prosesnya berlangsung sangat cepat.Magister Sistem Informasi Universitas Diponegoro Page 1

III.

HTTPS (Hypertext Transfer Protokol Secure) Hypertext transfer protocol secure atau bisa dikatakan sebagai versi aman dari HTTP. Ditemukan oleh netscape communicator corp. Cara kerja https adalah dengan menyandikan data sesi menggunakan protocol SSL (secure socket layer). https tidak secepat http, karena adanya autentikasi dalam setiap sesi datanya. https biasanya menggunakan port 443 untuk melakukan komunikasi.

Gambar 1 : Skema HTTPS https mengirimkan data terenkripsi, tidak dalam bentuk plaintext seperti halnya http. Meskipun demikian bukan berarti juga benar-benar aman, seringkali pengguna merasa aman sehingga mengabaikan factor lain dari sisi keamanan. Data yang dikirim memang aman dari aktifitas pencegatan di tengah jalan, tapi data penting tersebut kemudian tersimpan di dalam server. Server inilah yang kemudian menjadi incaran kejahatan lainnya. Seperti transaksi menggunakan kartu kredit, kebanyakan penyedia layanan transaksi tidak otomatis mengirimkan data no account ke penyedia layanan kartu kredit, tetapi disimpan di dalam server mereka, untuk berbagai keperluan administrative, dari sinilah celah keamanan memungkinakan digunakan sebagai sasaran kejahatan. IV. Mekanisme Pencurian Informasi Paket Data Seperti dijelaskan di atas, untuk sampai kepada tujuan akhir, data dari client harus melewati begitu banyak terminal untuk sampai kepada tujuan. Dari terminal ke terminal ini memungkinkan seorang cracker menyadap komunikasi data atau biasa disebut Man in The Middle Attack (MITM). Sebagai contoh berapa banyak hops yang harus dilewati data sebelum sampai ke tujuan ketika computer saya mengakses situs http://www.undip.ac.id adalah seperti di bawah ini.C:\Documents and Settings\Programmer>tracert 182.255.0.101

Magister Sistem Informasi Universitas Diponegoro

Page 2

Tracing route to 182.255.0.101 over a maximum of 30 hops 1 2 3 4 5 6 7 8 35 118 43 43 48 87 131 117 ms ms ms ms ms ms ms ms 36 34 38 39 92 52 49 49 ms ms ms ms ms ms ms ms 113 34 40 42 45 99 53 104 ms ms ms ms ms ms ms ms 125.163.128.1 125.160.0.221 118.98.48.165 61.5.118.173 118.97.4.37 118.97.4.38 182.255.2.6 182.255.0.101

Trace complete.

Diantara terminal-terminal tersebut seorang penyerang dapat menyadap paket data yang dikirimkan dari client menuju server. Bagaimana seorang penyerang bisa menyadap sementara sudah ada sertifikasi keamanan, ilustrasi dibawah ini menjelaskan bagaimana MITM bekerja.

Gambar 2 : Skema penyerangan MITM (Charlie) Hal-hal yang mampu dilakukan oleh MITM adalah : a. Sniffing b. Intercepting : Charlie mengetahui semua pembicaraan antara Alice dan Bob : Charlie mencegat pesan dari Alice ketika Alice ingin menutup percakapan dengan Bob Im going to sleep, Bye!. Dengan begini Bob mengira Alice masih berkomunikasi dengannya : Charlie mengubah jawaban Bob kepada Alice dari account Paypal bob menjadi charlie. : Charlie menanyakan nomor social security number kepada Bob, padahal pertanyaan ini tidak pernah diajukan oleh Alice.

c. Tampering d. Fabricating

Magister Sistem Informasi Universitas Diponegoro

Page 3

V.

Melakukan aktifitas sniffing Untuk melakukan aktifitas sniffing diperlukan beberapa tools yang banyak tersedia di internet. Saya melakukan simulasi dengan menggunakan alat sebagai berikut: 1. 2. 3. 4. Modem ADSL untuk melakukan koneksi ke Telkom Speedy Router sekaligus akses point untuk jaringan Hotspot Pesawat Celullar Sony Erricson XPERIA X8 Laptop Acer yang digunakan untuk melakukan aktifitas sniffing

Topologi jaringan dalam ujicoba kali ini adalah sebagai berikut

Gambar 3. Skema ujicoba sniffing Alasan penggunaan pesawat selular sebagai object pengamatan untuk membuktikan bahwa dalam percobaan ini dilakukan dalam area hotspot dan tanpa menggunakan tools tertentu, sehingga posisi handphone adalah target secara umum yang melakukan aktifitas browsing normal. VI. Mekanisme Kerja proses sniffing Pada bagian ini kita akan melakukan proses sniffing terhadap client (Handphone) yang mencoba akses login kedalam web msi.undip. 1. Handphone melakukan akses ke halaman web login msi undip http://msi.undip.ac.id/loginmhs 2. Laptop melakukan aktifitas sniffing dengan tools wireshark dan tools tambahan, mencegat dan membaca paket yang dikirimkan dari handphone menuju server 3. Username dan password dikirimkan dari browser menuju server dalam bentuk plaintext, sehingga langsung bisa dibaca pada laptop yang melakukan pengamatan.

Magister Sistem Informasi Universitas Diponegoro

Page 4

Gambar 4 : Tangkapan Wireshark Dari gambar terlihat ada aktifitas POST dari client 192.168.0.101 menuju 182.255.0.101. untuk memastikan bahwa alamat tujuan tesebut adalah server undip, kita bisa gunakan tools whois. Hasilnya seperti pada gambar 5

Gambar 5. Hasil dari whois untuk IP 182.255.0.100

Magister Sistem Informasi Universitas Diponegoro

Page 5

Gambar 6. Hasil tangkapan paket data Form Login 4. Seperti pada gambar 6, tertangkap username dan password dikirimkan secara plaintext. VII. Membuat halaman login terenkripsi Pemrograman halaman web bersifat client server, artinya semua aktifitas pemrosesan data dilakukan disisi server, client hanya berfungsi sebagai antarmuka untuk mengirim dan menerima data. Oleh karena itu untuk membuat data terkirim dalam format terenkripsi tentu saja tidak mudah. Proses enkripsi dan dekripsi biasanya dilakukan disisi server atau digunakan protocol komunikasi yang secure seperti HTTPS, SSH, VPN dan sebagainya. Pada tulisan ini akan kita coba membuat halaman login secure menggunakan protocol HTTP, sehingga data yang dikirimkan meskipun terbaca oleh pengintai, tetapi data tersebut adalah hasil dari sebuah proses penyandian. Untuk melakukan hal ini digunakan kombinasi antara html, php, javascript dan session. Logika Penyandian dihalaman browser menggunakan algorithma MD5 (Script terlampir) adalah sebagai berikut : 1. Baca data input username dan password dari browser 2. Sebelum dikirim password disandikan menggunakan algorithma MD5 3. Data dikirim ke server dalam bentuk terenkripsi 4. Ambil data username dan password dari server, sandikan menggunakan algorithma MD5 5. Bandingkan message digest password yand dikirimkan dengan data message digest password yang di ambil dari server 6. Jika sama, maka login berhasilPage 6

Magister Sistem Informasi Universitas Diponegoro

Mencoba Hasil Enkripsi halaman login dan membaca proses sniffingnya a. Deploy halaman login ke dalam server, untuk percobaan ini halaman web akan di deploy ke laptop dengan web server apache versi 2.2.15 (Win32) dan PHP versi 5.2.9-2 b. Akses halaman login melalui ponsel seperti yang dilakukan sebelumnya pada situs msi.undip.ac.id

Gambar 7. Halaman Login Secure c. Pantau dan capture aktifitas pengiriman data dengan tools wireshark

Gambar 8. Tertangkap POST pada protocol HTTP d. Hasil dari enkripsi password dengan MD5 dapat kita lihat dari penelusuran paket seperti terlihat pada gambar dibawah ini

Magister Sistem Informasi Universitas Diponegoro

Page 7

Gambar 9. Hasil POST dari secure Login Terlihat bahwa username tetap terbaca secara plain, sementara password terkirim dalam format messagediggest 5 (MD5) Kekurangan yang didapat dari percobaan ini 1. Hanya password yang dapat dienkripsi 2. Client kemungkinan tidak mendukung javascript, sementara halaman login ini menggunakan fungsi javascript untuk melakukan encoding MD5 3. Hanya mampu mengatasi penyerang passive, yang hanya membaca paket terkirim. VIII. Kesimpulan Dari percobaan diatas dapat disimpulkan beberapa hal dalam melakukan aktifitas browsing menggunakan protocol HTTP. 1. Tidak ada yang 100% aman jika kita melakukan aktifitas browsing 2. Protokol HTTP cepat namun tidak aman, sementara HTTPS lebih lambat namun memberikan keamanan yang sangat baik 3. Usahakan untuk tidak mengirimkan data penting melalui protocol HTTP 4. Hindari mengirimkan data rahasia dengan memanfaatkan fasilitas HOTSPOT 5. Sebisa mungkin gunakan protocol https jika akan melakukan aktifitas transaksi data dengan tingkat kerahasiaan tinggi. 6. Gunakan tool-tool analisa jaringan seperti dijelaskan di atas dengan bijaksana, bukan untuk melakukan tindak kejahatan.

Magister Sistem Informasi Universitas Diponegoro

Page 8

Lampiran Kode ProgramLogin.php Login function login() { var loginForm = document.getElementById("loginForm"); if (loginForm.username.value == "") { alert("Please enter your user name."); return false; } if (loginForm.password.value == "") { alert("Please enter your password."); return false; } var submitForm = document.getElementById("submitForm"); submitForm.username.value = loginForm.username.value; submitForm.response.value = hex_md5(loginForm.challenge.value+loginForm.password.value); submitForm.submit(); } Please Login Error User Name: Password: