in Web Security

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:

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 juga understanding 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 Url Form Url Status
HTTP HTTP Not secure, nothing encrypted.
HTTP HTTPS Not secure, vulnerable to mitm attack.
HTTPS HTTP Not secure, form data not encrypted.
HTTPS HTTPS Maximum 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.

Write a Comment

Comment

  1. saya perlu banyak belajar dari web ini.. 🙂
    terima kasih penjelasannya, langganan artikel gimana caranya ya..?
    kalo ada artikel baru disini bisa langsung masuk email saya..

  2. keren gan,asli sedikit2 ane mulai paham
    tapi ane belum bisa terapin postingan ente gan
    bingung banget mempelajarinya
    makin banyak lagi gan postingan nya
    kalau boleh mah,tulis postingan tentang cara ngebuka situs yg di blokir gan