Pahami HTTP, SSL, & HTTPS, Agar Terhindar Dari MITM Attack

Apa itu MITM Attack?

MITM Attack adalah serangan dimana Attacker berada di tengah-tengah dari dua pihak yg saling berkomunikasi. Lalu Attacker bebas mendengarkan, mengubah percakapan di antara dua pihak tsb.

Jadi dengan serangan MITM ini, Attacker tidak hanya pasif mendengarkan, tetapi juga aktif mengubah komunikasi yg terjadi diantara dua pihak tsb.

Sebagai contoh, pada percakapan antara "Ipin" dan "Upin" , ada si "Jarjit" yg berada di "Ipin" dan "Upin" sedang melakukan MITM Attack.
"Jarjit" tidak hanya bisa mendengarkan percakapan "Ipin" dan "Upin", namun juga bisa mengubah percakapannya.

Ketika "Ipin" berkata “Besok makan siang jam 7”, si "Jarjit" bisa mengubahnya menjadi “Besok makan siang dibatalkan” sehingga "Upin" mengira makan siang dengan "Ipin" dibatalkan.

Mengapa MITM Attack Bisa Terjadi?

MITM attack bisa terjadi karena sebelum berkomunikasi kedua pihak tidak melakukan Authentication. 

Authentication berguna utk memastikan identitas pihak yg berkomunikasi, apakah saya sedang berbicara dengan orang yg benar, atau orang ke-3 (Man In The Middle).

Tanpa Authentication "Ipin" akan mengira sedang berbicara dengan "Upin", sedangkan "Upin" juga mengira sedang berbicara dengan "Ipin", padahal yg sebenarnya terjadi adalah "Upin" sedang berbicara dengan "Jarjit" dan "Ipin" juga sedang berbicara dengan "Jarjit", sehingga "Jarjit" bertindak sebagai "Man In The Middle". Seharusnya sebelum "Ipin" dan "Upin" berbicara, terlebih dulu Authentication, untuk memastikan “Who are you speaking with?”. "Upin" harus memastikan “Are you really "Ipin"? Prove it!”, sedangkan "Ipin" juga harus memastikan “Are you really "Upin"? Prove it!”.

Menggunakan SSL

SSL adalah protokol yg memiliki tingkat keamanan sangat tinggi. SSL tidak hanya mengatur tentang enkripsi, namun juga mengatur tentang Authentication sehingga SSL tidak rentan terhadap serangan "Man In The Middle".

SSL menggunakan sertifikat yg memanfaatkan kunci publik dan kunci private sebagai cara untuk melakukan Authentication. Dengan menggunakan Sertifikat SSL ini, pengunjung web bisa yakin sedang berkomunikasi dengan web server yang benar, bukan Attacker In The Middle yg menyamar menjadi web server suatu situs.

HTTP adalah protokol yg tidak bisa dipercaya karena rentan terhadap MITM Attack, sedangan HTTP over SSL (HTTPS) adalah protokol yg bisa dipercaya karena protokol ini tidak rentan terhadap serangan MITM. Informasi yg dilihat pengunjung pada browser di sebuah page HTTP sebenarnya tidak bisa dipercaya karena tidak ada jaminan integritas dan keontentikan data.
Informasi tersebut kemungkinan sudah diubah di tengah jalan atau berasal dari sumber yang tidak otentik (orang lain), dan pengunjung tidak bisa melakukan verifikasi.

Sedangkan informasi yg dilihat pengunjung pada browser di sebuah halaman HTTPS bisa dipercaya karena dijamin informasi yg diterima adalah sama dengan yg dikirim web server dan informasi tersebut juga dijamin dikirim oleh web server yg benar.

Sangat jarang orang mengunjungi situs dengan mengetikkan HTTPS:// bahkan menggunakan HTTP:// pun orang sudah malas. Kebanyakan orang langsung mengetikkan alamat situs yg ditujunya tanpa harus diawali dengan HTTP:// atau HTTPS://

Secara default browser akan berasumsi bahwa pengunjung akan menggunakan protokol HTTP, bukan HTTPS bila pengunjung tidak menyebutkan protokolnya.

Kebanyakan situs yang harus memakai HTTPS, memang dirancang untuk menerima request melalui HTTP (Port 80) atau HTTPS (Port 443). Situs pada Port 80 biasanya hanya dijadikan jembatan untuk menuju situs yang sebenarnya pada Port 443. Bila pengunjung masuk melalui Port 80, maka server akan memberikan link untuk menuju URL HTTPS, atau dengan memberikan Response Redirect.

Bisa disimpulkan bahwa sebagian besar pengunjung memasuki HTTPS dengan melalui HTTP, dengan kata lain HTTP sebagai gerbang menuju HTTPS. Metode pengalihan dari situs HTTP ke situs HTTPS ada beberapa cara, yaitu:

  • Memberikan link menuju URL HTTPS.
  • Memberikan response redirect ke URL HTTPS.
  • Menggunakan META Tag Auto Refresh ke URL HTTPS.
  • Menggunakan JavaScript untuk load halaman HTTPS.
  • Attacking HTTP, not HTTPS

HTTPS adalah protokol yg sangat Aman, sehingga tidak mudah diserang dengan MITM Attack. Namun mengingat kenyataan bahwa kebanyakan orang mengakses HTTPS melalui HTTP, maka Attacker memiliki peluang untuk menyerang ketika pengunjung masih berada dalam protokol HTTP.

SSLStrip adalah tool untuk melakukan MITM Attack pada protokol HTTP  (bukan HTTPS), dengan maksud untuk menyerang situs-situs yang dilindungi dengan HTTPS.

SSLStrip sebagai “Man In The Middle", akan mencegah peralihan dari HTTP ke HTTPS dengan secara aktif mengubah response dari server sehingga pengunjung akan tetap berada dalam protokol HTTP.

Cara SSLStrip melakukan pencegahan peralihan dari HTTP ke HTTPS :

  • Memberikan link menuju URL HTTPS: SSLStrip akan mengubah link berawalan HTTPS menjadi HTTP, sehingga yg muncul di browser korban bukan link ke HTTPS melainkan link ke HTTP.
  • Memberikan Response Redirect ke URL HTTPS: SSLStrip akan mengubah header Location dari URL berawalan HTTPS menjadi HTTP.
  • Menggunakan META Tag Auto Refresh ke URL HTTPS: SSLStrip akan mengubah url HTTPS menjadi HTTP.
  • Menggunakan JavaScript untuk load halaman HTTPS: SSLStrip akan mengubah url HTTPS menjadi HTTP.

Tips Pencegahan

MITM Attack dengan SSLStrip ini dilakukan dengan memanfaatkan kemalasan pengguna untuk langsung menggunakan HTTPS. Pengguna yang malas memilih untuk menggunakan HTTP biasa dan berharap di-redirect ke url HTTPS otomatis atau menemukan link ke url HTTPS. Padahal pada saat pengguna menggunakan HTTP biasa itulah pengguna berpotensi terkena serangan mitm. Bila pengguna langsung menggunakan HTTPS, maka pengguna akan aman dan terbebas dari serangan mitm. Jadi mulai sekarang biasakanlah mengetikkan HTTPS:// di URL anda bila ingin mengakses situs yang sensitif.

Itulah tadi sedikit penjelasan tentang HTTP, SSL, & HTTPS untuk menghindari MITM Attack.