HSTS adalah tajuk respons keamanan web. Nama tersebut merupakan akronim dari “HTTP Strict Transport Security”. Fungsi header HSTS adalah memaksa browser untuk terhubung ke situs web menggunakan HTTPS.
Tip: HTTPS menggunakan enkripsi untuk mengamankan koneksi web Anda dari peretas yang mencoba memodifikasi atau memantaunya. HTTP tidak memiliki perlindungan ini sehingga peretas di tempat yang tepat dapat memantau dan memodifikasi lalu lintas HTTP Anda.
Header respons web adalah bagian dari meta-data yang dikirim oleh server saat merespons permintaan web. Bagian dari tajuk ini sering disebut sebagai tajuk keamanan karena tujuannya adalah untuk meningkatkan keamanan situs web dan pengguna.
Header HSTS memiliki dua bagian wajib dan dua opsional. Nama header “Strict-Transport-Security” dan kemudian operator dan nilai “max-age” keduanya wajib. Sepasang operator lain, "includeSubDomains" dan "preload" juga terkadang digunakan.
Saat browser menerima respons HTTPS dengan header HSTS, browser tersebut diinstruksikan untuk terhubung ke situs web ini dan semua sumber daya di dalamnya, secara eksklusif menggunakan HTTPS selama durasi timer "usia maksimal". “Max-age” adalah variabel yang menjelaskan berapa lama sebuah setting harus diingat oleh browser. Nilai "max-age" tercantum dalam detik, nilai yang disarankan adalah "31536000", yaitu satu tahun.
Idenya adalah bahwa dalam durasi timer ini, yang disetel ulang dengan setiap pemuatan halaman berikutnya, browser akan memerlukan koneksi HTTPS dan menolak sumber daya HTTP apa pun. Ini melindungi dari serangan person-in-the-middle, di mana peretas antara Anda dan server web dapat memanipulasi respons yang Anda terima.
Poin utama di mana ini melindungi Anda adalah koneksi pertama. Biasanya, ketika Anda terhubung ke situs web, Anda dapat meminta situs web HTTP, dan kemudian diteruskan ke situs web HTTPS. Sayangnya, peretas dengan posisi person-in-the-middle dapat mencegah peningkatan ke HTTPS ini dan kemudian dapat mencuri atau memantau aktivitas Anda di situs web. Namun, setelah header HSTS dilihat oleh browser, browser Anda akan membuat koneksi pertama melalui HTTPS, melindungi Anda dari peretas.
HSTS juga mencegah pemuatan sumber daya yang tidak aman yang juga dapat dimodifikasi secara jahat oleh penyerang jika dikirimkan melalui HTTP.
Operator “includeSubDomains” digunakan untuk menunjukkan bahwa header juga harus berlaku untuk semua subdomain situs web.
Daftar pramuat HSTS
Anda mungkin memperhatikan bahwa HSTS masih tidak melindungi Anda saat pertama kali terhubung ke situs web. Di sinilah operator "pramuat" masuk. Situs web dapat mengajukan diri untuk dimasukkan dalam daftar pramuat HSTS, operator "pramuat" adalah indikator yang diperlukan jika ini masalahnya. Daftar pramuat HSTS diperbarui dan disimpan secara teratur di browser, jika situs termasuk di dalamnya, browser akan menerapkan perlindungan HSTS padanya. Ini terjadi bahkan pada koneksi pertama sebelum browser dapat melihat header respons HSTS.
Tip: "Usia maks" satu tahun atau lebih diperlukan untuk ditambahkan ke daftar pramuat HSTS.
Masalah dengan HSTS
Salah satu poin utama HSTS adalah menampilkan pesan kesalahan jika ada masalah dengan koneksi HTTPS. Sebagai tindakan pencegahan keamanan ekstra, pengguna tidak seharusnya dapat melewati pesan kesalahan HSTS, karena mereka dapat melakukannya dengan kesalahan HTTPS normal.
Sayangnya, ini dapat menyebabkan masalah jika perusahaan meluncurkan HSTS sebelum seluruh situs web, dan setiap sumber daya yang digunakan di dalamnya, mendukung HTTPS. Dalam hal ini, pengguna akan mulai melihat pesan kesalahan keamanan HSTS yang tidak dapat mereka lewati, yang pada dasarnya merusak situs web sepenuhnya. Bagian terburuknya adalah, hanya menghapus tajuk HSTS tidak memperbaiki masalah bagi pengguna tersebut, karena browser mereka akan terus menerapkan HSTS untuk "usia maksimum" yang berpotensi selama berbulan-bulan.
Oleh karena itu, sangat penting bahwa "usia maks" pendek digunakan saat pertama kali menerapkan header. Jika ada masalah, maka mereka hanya bertahan untuk waktu yang singkat setelah ditemukan. Hanya setelah Anda yakin bahwa situs web Anda sepenuhnya sesuai dengan HSTS, Anda harus mengonfigurasi penghitung waktu HSTS yang panjang.
Tip: Ini juga memungkinkan untuk menetapkan "usia maksimal" 0, ini pada dasarnya menghapus entri HSTS yang disimpan dari siapa pun yang melihatnya. Ini dapat membantu jika ada masalah, tetapi hanya akan memengaruhi pengguna saat dan jika mereka memutuskan untuk mencoba lagi.