Bagaimana BBC meluncurkan HSTS untuk keamanan dan performa yang lebih baik.

BBC meluncurkan dataset untuk situs mereka guna meningkatkan keamanan dan performa. Cari tahu artinya, dan bagaimana Hubungi FI untuk membantu Anda.

Adopsi HTTPS terus meningkat dalam beberapa tahun terakhir. Berdasarkan Web Almanac 2021 Arsip HTTP, sekitar 91% dari semua permintaan untuk desktop dan seluler disajikan melalui HTTPS. HTTPS tidak hanya tersedia untuk tetap digunakan, tetapi juga merupakan prasyarat yang diperlukan untuk menggunakan fitur seperti Service Worker serta protokol modern seperti HTTP/2 dan HTTP/3.

Baru-baru ini, Neil Craig, seorang Arsitek teknis utama di BBC, men-tweet bahwa HTTP Strict Transport Security (HSTS) sedang diluncurkan secara perlahan untuk bbc.com. Cari tahu artinya bagi BBC, dan apa artinya bagi Anda.

Permasalahan

Server web sering memproses permintaan di kedua porta 80 dan 443. Port 80 digunakan untuk permintaan HTTP yang tidak aman, sedangkan 443 untuk permintaan HTTPS yang aman. Hal ini dapat menimbulkan masalah, karena saat Anda memasukkan alamat ke kolom URL tanpa awalan protokol https://—seperti yang cenderung dilakukan oleh sebagian besar pengguna—beberapa browser akan mengarahkan traffic ke versi HTTP situs yang tidak aman, karena alasan lama (meskipun tidak selalu demikian).

Cara umum untuk memastikan pengguna tidak mengakses versi situs yang tidak aman adalah dengan melakukan pengalihan HTTP-ke-HTTPS untuk semua permintaan. Cara ini memang berhasil, tetapi akan memulai rantai peristiwa berikut:

  1. Server menerima permintaan HTTP.
  2. Server mengeluarkan pengalihan untuk menuju ke HTTPS yang setara dengan sumber daya yang diminta.
  3. Server harus menegosiasikan koneksi yang aman dengan browser.
  4. Konten akan dimuat seperti biasa.

Meskipun pengalihan berfungsi dengan baik, pengalihan dapat salah dikonfigurasi dengan cara yang masih memungkinkan akses ke versi situs yang tidak aman. Meskipun semuanya dikonfigurasi dengan benar, masih ada masalah keamanan yaitu pengguna akan tetap terhubung melalui HTTP yang tidak aman selama fase pengalihan, yang menyebabkan pengguna rentan terhadap kemungkinan serangan man in the middle yang berbahaya.

Masuk ke dataset

Dukungan Browser

  • 4
  • 12
  • 4
  • 7

Sumber

HSTS ditentukan oleh header respons HTTP Strict-Transport-Security untuk permintaan HTTPS. Jika ditetapkan, kunjungan kembali ke situs akan memicu pengalihan khusus yang dikenal sebagai "Pengalihan Internal 307", yaitu saat browser menangani logika pengalihan, bukan server. Tindakan ini mencegah permintaan disadap, karena tidak pernah keluar dari browser, sehingga lebih aman. Sebagai bonus tambahan, jenis pengalihan ini sangat cepat, sehingga latensi apa pun yang terlihat selama hop HTTP-ke-HTTPS akan dihilangkan.

Pengalihan internal 307 dari HTTP ke HTTPS, yang dipicu oleh header ]( Pengalihan 307 hanya memerlukan waktu 2 milidetik.

Mirip dengan sintaksis yang mirip dengan perintah max-age Cache-Control, header HSTS menentukan perintah max-age. Perintah ini mengambil nilai dalam detik yang menentukan berapa lama kebijakan tersebut berlaku untuk:

Strict-Transport-Security: max-age=3600

Dalam contoh sebelumnya, kebijakan hanya akan berlaku selama satu jam.

Men-deploy ](

Kelemahan utama dari men-deploy solusi adalah jika Anda belum siap untuk memperlakukan origin Anda sebagai hal yang benar-benar aman. Misalnya Anda memiliki sejumlah subdomain tempat resource ditayangkan, tetapi mungkin tidak semuanya aman. Dalam skenario ini, header itinerari dapat merusak situs Anda.

BBC mengambil pendekatan yang tepat untuk menerapkan solusi. Seperti yang disebutkan Neil Craig dalam tweet-nya, nilai awal yang ditetapkan untuk bbc.com adalah max-age=10.

Pendekatan ini berarti bahwa kebijakan tersebut pada awalnya hanya berlaku selama sepuluh detik. Hal ini tidak memberikan banyak manfaat, tetapi intinya adalah untuk mengetahui apakah mungkin ada masalah dengan penerapan ccTLD yang sama. Seiring berjalannya waktu, Anda dapat meningkatkan kebijakan secara bertahap dan melihat apakah terjadi masalah. Pada saat penulisan ini, bbc.com menentukan kebijakan Pihak Ketiga, max-age=86400, dan jumlah tersebut hampir pasti akan meningkat dari waktu ke waktu.

Anda tentu tidak ingin keluar dengan nilai max-age yang panjang saat men-deploy ]( Anda bisa saja mendapati diri Anda bergegas untuk memperbaiki masalah ketika pengguna mengalami masalah. Mulailah dari hal kecil, lalu lanjutkan dari waktu ke waktu. Setelah yakin semuanya berjalan dengan baik, Anda dapat menetapkan perintah max-age ke jangka waktu yang lebih lama. Sebaiknya tetapkan max-age ke satu atau dua tahun saat platform ini telah diluncurkan sepenuhnya.

Dapatkan navigasi awal yang lebih aman dan cepat dengan daftar pramuat ](

Kebijakan PRIA hanya berlaku setelah kunjungan pertama ke situs, jadi manfaatnya tidak ada untuk kunjungan pertama ke situs. Pengalihan yang tidak aman akan tetap dilakukan saat ini. Namun, Anda dapat melakukan pramuat kebijakan Pihak Ketiga dengan mengirimkan situs ke daftar pramuat Pihak Ketiga, yang merupakan daftar hardcode pada situs yang diketahui browser benar-benar merupakan HTTPS. Jika situs Anda ada di daftar pramuat, kunjungan pertama juga akan terlindungi, dan pengalihan HTTP-ke-HTTPS akan seketika.

Cobalah sendiri

Jika BBC merasa nyaman menguji Analytics, kemungkinan besar Anda dapat melakukan hal yang sama untuk situs Anda. Coba praktikkan untuk situs Anda, dan—jika Anda ingin meningkatkannya—tambahkan ke daftar pramuat {/7} setelah yakin tidak ada bug yang memberi pengguna pengalaman yang lebih aman dan yang lebih cepat.