HTTP vs HTTPS: Kenapa Huruf S Itu Penting
Memahami perbedaan HTTP dan HTTPS, cara kerja enkripsi TLS, dan kenapa semua website modern wajib HTTPS.
Surat pos biasa vs surat bersegel
Bayangkan mengirim surat berisi nomor rekening lewat dua cara: kartu pos terbuka yang bisa dibaca siapa pun di kantor pos, atau amplop bersegel yang dibawa kurir terpercaya langsung ke tangan penerima. HTTP adalah kartu posnya: data dikirim polos tanpa enkripsi, bisa dibaca siapa pun yang mengintip di tengah jalan (misalnya pemilik WiFi publik). HTTPS adalah amplop bersegelnya: data dienkripsi sehingga yang mengintip hanya melihat teks acak.
Huruf S di HTTPS singkatan dari Secure. Di baliknya ada protokol bernama TLS (Transport Layer Security) yang mengenkripsi seluruh percakapan HTTP.
Kenapa HTTPS harus ada
Internet awal memakai HTTP polos karena sederhana. Masalahnya, jaringan itu tidak bisa dipercaya: WiFi kafe, ISP, bahkan peretas di jaringan yang sama bisa membaca atau mengubah data yang lewat. Serangan man-in-the-middle bisa mencuri password atau menyisipkan iklan ke halaman yang kamu buka. HTTPS lahir untuk tiga jaminan: kerahasiaan (tidak bisa dibaca orang lain), integritas (tidak bisa diubah diam-diam), dan autentikasi (kamu benar-benar bicara dengan server yang dimaksud, bukan penipu).
Contoh 1: apa yang terlihat tanpa enkripsi
Saat kamu login lewat HTTP polos, inilah yang bisa dilihat pengintip jaringan:
POST /login HTTP/1.1
Host: bank-palsu.contoh.id
{"email": "[email protected]", "password": "rahasia123"}Password terlihat jelas. Sekarang lewat HTTPS, yang terlihat hanya:
TLS handshake... encrypted data... encrypted data...
Isi request, URL lengkap, bahkan query parameter, semuanya tersembunyi. Yang terlihat hanya nama domain tujuan.
Contoh 2: cara browser memverifikasi server
Sebelum enkripsi dimulai, ada proses TLS handshake:
- Browser meminta sertifikat digital ke server.
- Server mengirim sertifikat yang diterbitkan otoritas terpercaya (misalnya Let's Encrypt).
- Browser memeriksa: sertifikat valid? Nama domain cocok? Belum kedaluwarsa?
- Kalau lolos, keduanya sepakat membuat kunci enkripsi sesi.
Ikon gembok di address bar adalah hasil pemeriksaan ini. Klik gembok itu dan kamu bisa melihat siapa penerbit sertifikat dan masa berlakunya. Sertifikat gratis dari Let's Encrypt membuat tidak ada alasan lagi untuk tidak pakai HTTPS.
Kesalahan umum pemula
Salah: mengira ikon gembok berarti website 100% aman. Gembok hanya berarti koneksimu terenkripsi dan servernya terverifikasi. Website phishing pun bisa punya gembok. Yang benar: gembok + periksa nama domain dengan teliti.
Salah: mencampur konten HTTP di halaman HTTPS (mixed content). Halaman HTTPS yang memuat gambar atau script lewat HTTP akan diblokir browser. Yang benar: semua resource memakai HTTPS.
Salah: lupa redirect HTTP ke HTTPS. User mengetik domain tanpa https dan tetap dilayani versi polos. Yang benar: server selalu redirect 301 dari HTTP ke HTTPS.
Salah: memakai HTTPS tapi API key ditaruh di URL. Query parameter memang terenkripsi di jaringan, tapi tetap tersimpan di log server dan history. Yang benar: data sensitif lewat header atau body.
Studi kasus: WiFi kafe dan HSTS
Tahun 2010, sebuah tool bernama Firesheep menggegerkan dunia: siapa pun di WiFi publik bisa membajak session Facebook orang lain hanya dengan mengklik. Penyebabnya: Facebook masih memakai HTTP polos untuk sebagian traffic. Kasus ini mempercepat adopsi HTTPS massal.
Satu celah yang tersisa: serangan downgrade, di mana peretas memaksa browser memakai HTTP polos meski server mendukung HTTPS. Solusinya adalah header HSTS (HTTP Strict Transport Security):
Strict-Transport-Security: max-age=31536000; includeSubDomainsHeader ini memerintahkan browser: "selama setahun, hanya hubungi saya lewat HTTPS, tolak HTTP polos." Setelah menerima header ini sekali, browser tidak akan pernah mencoba HTTP lagi ke domain itu. Kombinasi HTTPS + HSTS + redirect 301 dari HTTP menutup hampir semua celah intipan jaringan.
Satu hal lagi yang sering ditanyakan: apakah HTTPS memperlambat website? Dulu ya, sedikit. Sekarang dengan TLS 1.3 dan HTTP/2, overhead-nya hampir tidak terasa, bahkan HTTPS + HTTP/2 seringkali LEBIH CEPAT dari HTTP polos karena multiplexing. Jadi tidak ada alasan performa untuk menghindari HTTPS.
Catatan teknis: TLS 1.3 adalah versi modern yang handshake-nya lebih cepat (1 round trip). Kalau kamu mengelola server sendiri, pastikan TLS 1.0/1.1 yang sudah usang dimatikan.
Tantangan
Bedakan HTTP dan HTTPS dari DevTools
Buka dua website: satu HTTP (coba http://neverssl.com) dan satu HTTPS. Di DevTools > tab Security, bandingkan:
- Apa status keamanannya masing-masing?
- Klik gembok di address bar website HTTPS, catat penerbit sertifikatnya.
- Di tab Network, lihat kolom Protocol: apa bedanya?
Tulis temuanmu dalam 3 baris.