HTTPS, Aman di Jalan

Januari tahun ini, pas gw UAS mata kuliah Keamanan Komputer & jaringan, di lembar soalnya ada satu pertanyaan ini. Gw nggak inget bener gimana kata-kata di soal itu, sekarang udah lewat dua bulan dari waktu gw ngerjain soal itu kemarin. Pokoknya di soal itu kita ditanya & disuruh ngejelasin, apa protokol HTTPS bisa nyegah serangan XSS & SQL injection di website yang bersangkutan?

Kira-kira gimana jawabannya? Bisa atau nggak?

Jawabannya sih nggak bisa. Alesannya, karena HTTPS itu fungsinya cuma untuk enkripsi & dekripsi data yang ditransfer antara client & server. Serangan XSS & SQL injection bakal tetep jalan selama scriptnya bisa dijalanin di server, & pastinya enkripsi dari protokol HTTPS nggak ada gunanya di sini. Soalnya script tadi bakal didekripsi lagi di server, & kalo udah didekripsi ya…scriptnya kembali jadi script XSS atau SQL injection lagi. HTTPS nggak ngelakuin filter untuk script-script begini, serangan semacem ini perlu ditangani pake cara lain.

Nggak bisa nangkal dua serangan tadi bukan berarti HTTPS nggak berguna. HTTPS berguna untuk nangkal jenis serangan yang lain, salah satunya session hijacking. Untuk ngelakuin session hijacking, kita butuh data session korban kita ke server. Misalnya kalo kita mau ngebajak account Facebook korban, kita butuh data sessionnya untuk kita pake konek ke Facebook sebagai si korban. Nah, kalo data session yang kita dapet itu udah dienkripsi & kita nggak tau cara untuk ngedekripsinya, kita nggak bisa pake data sessionnya kan?

Cara kerja HTTPS itu kira-kira begini. Data-data yang mau kita kirim dari komputer kita ke server bakal dienkripsi dulu sebelum dikirim. Nantinya pas data-data itu sampai di server, server bakal ngedekripsi data-data tadi sebelum diproses. Kalo udah didekripsi & diproses, server bakal ngeluarin output hasil prosesnya. Outputnya ini bakal dienkripsi dulu di server sebelum dikirim ke komputer kita, nanti kalo udah sampe baru didekripsi & ditampilin di monitor.

Dari situ bisa digambarin alurnya kira-kira begini.

Client -> Server
client (plaintext) -> client (ciphertext) -> network (ciphertext) -> server (ciphertext) -> server (plaintext)

Server -> Client
server (plaintext) -> server (ciphertext) -> network (ciphertext) -> client (ciphertext) -> client (plaintext)

Karena data-data yang lewat di jaringan udah dienkripsi, kalopun ada yang sniffing di jaringan data-datanya masih aman. Soalnya data yang mereka dapet nantinya masih terenkripsi, jadinya mereka harus ngedekripsi itu dulu buat ngedapetin informasi yang ada di dalemnya. Website-website yang pake HTTPS bersertifikat itu algoritma enkripsinya lumayan bagus, jadi nggak bisa segampang itu didekripsi juga.

Jadi kalo kita pake HTTPS password kita nggak bisa dicolong hacker? Ya nggak juga sih, kalo security di servernya bapuk mah passwordnya (sekalian sama data-data yang lain) pasti masih bisa dicolong juga. HTTPS kan cuma ngamanin waktu transfer data aja, kalo sistemnya ternyata punya celah keamanan yang lain yang bisa dieksploitasi sih bisa didapetin juga data-data yang dikirim tadi. Misalnya password itu tadi, kalo ternyata hackernya bisa ngakses database yang ada di server, udah pasti data passwordnya bisa mereka ambil. Biasanya sih password di server dienkripsi juga, tapi nggak semua server enkripsinya bagus. Malah gw pernah ketemu beberapa server yang nggak ngasih enkripsi sama sekali buat password user yang disimpen di databasenya, kalo kasusnya begini sih udah di luar batas kemampuan HTTPS.

2 thoughts on “HTTPS, Aman di Jalan

  1. mas Edwin, thanks ya infonya. ternyata saya harus lebih banyak belajar dan cari info lebih jauh lagi. oh ya, ane punya pertanyaan nih, tapi di blog ane .. tolong dijawab ya ^_^

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s