Warung Bebas

Saturday, February 25, 2012

Https dalam Form, Amankah?



courtesy of meebo.com
courtesy of meebo.com
Memang benar, ternyata https adalah istilah IT yang banyak mengandung jebakan mitos dan seringkali orang salah mengerti. Kali ini yang saya sorot adalah penggunaan form dalam sebuah halaman html. Bagaimanakah form html yang aman?
Tag form digunakan untuk mengirimkan data ke URL yang disebutkan dalam atribut action. URL form action bisa dalam bentuk http://, https://,mailto: dan sebagainya.
Meebo Login Form
Tentu anda sudah tahu meebo.com yaitu aplikasi web untuk chatting di yahoo messenger, msn dan lainnya. Halaman login meebo ada di http://www.meebo.com, dari URLnya terlihat bahwa halaman ini bukanlah https. Mari kita baca penjelasan meebo soal ini:
If your browser supports SSL, some IFrame magic occurs! When you first load up the Meebo homepage (http://www.meebo.com), the content served to your browser is insecure, which is okay. :) What we’ve done is embed another mini-webpage with an empty form in a hidden IFrame on the page. When you enter your name(s) and password(s), the hidden IFrame fills out that information into its form fields and submits it to an SSL-version of Meebo (https://www.meebo.com). Because the submission occurs over HTTPS, all the data is encrypted and protected. Success or failure is messaged back to your browser, and if you’ve entered your credentials correctly, the event loop is initiated and your Meebo session begins.
Penjelasan meebo di atas banyak mengandung kebohongan dan penyesatan. Pertama dia menyebutkan soal IFrame dan mini webpage, sebenarnya kalau dilihat source htmlnya tidak ada sama sekali iframe. Selain itu meebo juga mengatakan bahwa halaman depan meebo memang insecure (karena bukan https), tapi dia mengatakan itu tidak masalah. Benarkah demikian? Saya jawab penjelasan meebo itu menyesatkan karena faktanya adalah https yang “banci” seperti itu tidaklah aman.
Https Form Inside Http Page
Kalau kita buka source html halaman login meebo, kita akan melihat tag form berikut:
<form action="https://www.meebo.com/" onsubmit="try{gFrontPage.loginUser();}catch(e){alert(gLang.frontPageError)}finally{return false;}" id="frontpagecontainer">
Perhatikan atribut action yang diarahkan pada URL https://www.meebo.com. Itu artinya ketika kita mengklik submit, maka username dan password akan dikirimkan melalui koneksi https, sehingga confidentiality terjamin (tidak bisa disadap). Lalu di mana masalahnya?
Masalahnya adalah form tersebut walaupun action URLnya adalah https, terletak di dalam sebuah halaman yang untrusted dan insecure yaitu http://www.meebo.com. Sudah sering saya jelaskan di artikel saya sebelumnya bahwa http itu untrusted dan insecure (baca jugaunderstanding https dan trusted and untrusted klikbca ) . Karena menggunakan http, maka serangan man-in-the-middle (mitm) bisa dilancarkan. Attacker mitm bisa leluasa mengubah form tersebut dari https://www.meebo.com ke https://www.serverjahat.com tanpa disadari pengguna. Jadi pengguna meebo bukannya mengirim username dan password ke server meebo, tapi malah ke server lain.
Variasi Form Http dan Https
Beberapa variasi kemungkinan halaman dan form URL yang perlu diperhatikan adalah:
  1. Halaman form di http://internetbanking.com/formlogin.html dan tag form login dalam bentuk <form action=http://internetbanking.com/dologin.php>. Ini benar-benar tidak aman karena tidak ada enkripsi sama sekali.
  2. Halaman di http://internetbanking.com/formlogin.html , tag form login dalam bentuk <form action=https://internetbanking.com/dologin.php . Ini pun tetap tidak aman karena formlogin bisa diubah dengan mitm attack.
  3. Halaman di https://internetbanking.com/formlogin.html , tag form login dalam bentuk <form action=http://internetbanking.com/dologin.php>. Form login tidak bisa diserang, namun password dikirimkan tanpa terenkripsi. Sama saja bohong.
  4. Halaman di https://internetbanking.com/formlogin.html, tag form login dalam bentuk <form action=https://internetbanking.com/dologin.php>. Ini baru aman, form login tidak bisa diserang, dan password terenkrip.
Page UrlForm UrlStatus
HTTPHTTPNot secure, nothing encrypted.
HTTPHTTPSNot secure, vulnerable to mitm attack.
HTTPSHTTPNot secure, form data not encrypted.
HTTPSHTTPSMaximum Security
Kesimpulan
Https adalah protokol yang menjamin authentication dan confidentiality. Bila digunakan dengan benar, maka https menjadi jaminan kemanan yang bisa diandalkan.
Sebelumnya saya membahas soal cookie yang tidak diset https only, kali ini saya membahas soal form url. Dua kesalahan tersebut masih sering dilakukan mungkin karena kurangnya pemahaman yang benar akan seluk beluk https.
No related posts.
Tagged with:  •  • 
 

0 comments em “Https dalam Form, Amankah?”

Post a Comment

 

Indahnya Berbagi Copyright © 2012 Fast Loading -- Powered by Blogger