Kredensial Sesi Terikat Perangkat (DBSC) adalah kemampuan web baru yang dirancang untuk melindungi sesi pengguna dari pencurian cookie dan pembajakan sesi. Fitur ini kini tersedia untuk pengujian sebagai Uji Coba Origin di Chrome 135.
Latar belakang
Cookie memainkan peran penting dalam autentikasi web modern, yang memungkinkan pengguna tetap login di seluruh sesi penjelajahan. Namun, penyerang semakin mengeksploitasi cookie autentikasi yang dicuri untuk membajak sesi, mengabaikan autentikasi multi-faktor, dan mekanisme keamanan login lainnya.
Operator malware sering mengeksfiltrasi cookie sesi dari perangkat yang disusupi, sehingga memungkinkan akses tidak sah ke akun pengguna. Karena cookie adalah token pembawa, cookie memberikan akses tanpa memerlukan bukti kepemilikan, sehingga menjadikannya target yang menguntungkan bagi penyerang.
Kredensial Sesi Terikat Perangkat (DBSC) bertujuan untuk mengganggu pencurian cookie dengan membuat sesi terautentikasi yang terikat ke perangkat. Pendekatan ini mengurangi kemungkinan cookie yang diekspor dapat mengakses akun dari perangkat lain.
Cara kerjanya
DBSC memperkenalkan API baru yang memungkinkan server membuat sesi terautentikasi yang terikat ke perangkat. Saat sesi dimulai, browser akan membuat pasangan kunci publik-pribadi, yang menyimpan kunci pribadi dengan aman menggunakan penyimpanan yang didukung hardware seperti Trusted Platform Module (TPM) jika tersedia.
Kemudian, browser akan mengeluarkan cookie sesi reguler. Selama masa aktif sesi, browser secara berkala membuktikan kepemilikan kunci pribadi dan memuat ulang cookie sesi. Masa berlaku cookie dapat ditetapkan cukup singkat sehingga mencuri cookie tidak akan menjadi manfaat bagi penyerang.
Komponen utama
Pendaftaran sesi:
- Saat pengguna login, server meminta sesi
terikat perangkat menggunakan header HTTP
Sec-Session-Registration
. - Browser akan membuat pasangan kunci baru, yang menyimpan kunci pribadi dengan aman.
- Cookie autentikasi berumur pendek juga dibuat dan terikat dengan pasangan kunci ini.
- Server mengaitkan sesi dengan kunci publik yang sesuai, sehingga memastikan sesi hanya dapat digunakan di perangkat asli.
- Saat pengguna login, server meminta sesi
terikat perangkat menggunakan header HTTP
Pembaruan sesi dan bukti kepemilikan:
- Saat cookie berumur pendek habis masa berlakunya, Chrome akan memicu pembaruan sesi.
- Browser mengirimkan permintaan ke endpoint refresh yang ditentukan server
(disediakan selama pendaftaran sesi), dan, jika server menyediakannya, tantangan yang ditandatangani menggunakan header
Sec-Session-Challenge
. - Server memverifikasi bukti kepemilikan dengan memvalidasi respons yang ditandatangani dengan kunci pribadi sesi.
- Jika valid, server akan mengeluarkan cookie baru dengan masa berlaku singkat, sehingga sesi dapat dilanjutkan.
Salah satu manfaat pendekatan ini adalah Chrome menunda permintaan yang akan kehilangan cookie berumur pendek yang dimuat ulang. Perilaku ini membuat cookie yang terikat sesi selalu tersedia selama sesi dan memungkinkan developer mengandalkan cookie tersebut dengan lebih yakin daripada dengan pendekatan saat cookie mungkin berakhir masa berlakunya atau hilang tanpa perpanjangan otomatis.
Contoh penerapan
Server dapat meminta sesi yang terikat perangkat seperti ini:
HTTP/1.1 200 OK
Sec-Session-Registration: (ES256);path="/refresh";challenge="12345"
Saat sesi aktif, server dapat memverifikasinya dengan pertukaran tantangan-respons:
HTTP/1.1 401 Unauthorized
Sec-Session-Challenge: "verify-session"
Browser akan merespons dengan:
POST /refresh
Sec-Session-Response: "signed-proof"
Manfaat
- Memitigasi pencurian cookie: Meskipun cookie sesi dicuri, cookie tersebut tidak dapat digunakan dari perangkat lain.
- Meningkatkan keamanan tanpa perubahan UX besar: Berfungsi secara transparan di latar belakang tanpa memerlukan interaksi pengguna tambahan.
- Mengurangi ketergantungan pada cookie sesi berumur panjang: Cookie berumur pendek otomatis diperbarui selama sesi tetap valid di perangkat asli.
- Mendukung mekanisme kriptografi standar: Memanfaatkan penyimpanan aman yang didukung TPM jika tersedia, memberikan perlindungan yang kuat terhadap eksfiltrasi.
Pertimbangan privasi dan keamanan
DBSC dirancang untuk meningkatkan keamanan sekaligus menjaga privasi pengguna:
- Tidak ada vektor pelacakan tambahan: Setiap sesi dikaitkan dengan pasangan kunci unik, sehingga mencegah pelacakan lintas sesi.
- Tidak ada sidik jari perangkat jangka panjang: Server tidak dapat mengaitkan sesi yang berbeda di perangkat yang sama kecuali jika diizinkan secara eksplisit oleh pengguna.
- Dapat dihapus oleh pengguna: Sesi dan kunci dihapus saat pengguna menghapus data situs.
- Selaras dengan kebijakan cookie: DBSC mengikuti cakupan berbasis situs yang sama seperti cookie, sehingga memastikannya tidak menyebabkan kebocoran data lintas origin.
Cobalah
Uji Coba Origin Kredensial Sesi yang Terikat Perangkat tersedia mulai Chrome 135.
Untuk pengujian lokal
Untuk menguji DBSC secara lokal:
- Buka
chrome://flags#device-bound-session-credentials
dan aktifkan fitur.
Untuk pengujian publik
Untuk menguji DBSC dengan uji coba origin di lingkungan publik:
- Buka halaman Uji Coba Origin Chrome dan daftar.
Tambahkan token yang diberikan ke header HTTP situs Anda:
Origin-Trial: <your-trial-token>
Resource
- Spesifikasi Kredensial Sesi yang Terikat Perangkat
- Repositori GitHub untuk DBSC
- Panduan integrasi Kredensial Sesi yang Terikat Perangkat (DBSC)
Berpartisipasi dan membentuk masa depan keamanan web
Bergabunglah bersama kami untuk membuat autentikasi web lebih aman. Sebaiknya developer web menguji DBSC, mengintegrasikannya ke dalam aplikasi mereka, dan membagikan masukan. Anda dapat berinteraksi dengan kami di GitHub atau berpartisipasi dalam diskusi dengan Web Application Security Working Group.
Dengan menerapkan DBSC, kita dapat secara kolektif mengurangi risiko pembajakan sesi dan meningkatkan keamanan autentikasi bagi pengguna. Mulai sekarang dan bantu tentukan masa depan keamanan web.