Serangan Token dan Penguatan Keamanan
Melindungi alur autentikasi dari penyalahgunaan.
Serangan Token dan Penguatan Keamanan adalah pelajaran Cyber Security Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Cyber Security Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cyber Security Academy mencakup 4 pelajaran total.
Token sebagai Kredensial
Dalam autentikasi modern, token adalah kredensial. Siapa pun yang memegang token pembawa yang valid akan diperlakukan sebagai pihak yang terautentikasi hingga token tersebut kedaluwarsa atau dicabut.
- Ini membuat pencurian token setara dengan pencurian kredensial.
- Pengerasan berfokus pada pembatasan masa berlaku token, pengikatan token pada pemegangnya, dan pengaktifan pencabutan yang cepat.
Pelajaran ini membahas serangan terhadap token OAuth/OIDC/SAML serta kontrol pertahanan yang menangkalnya.
Kebingungan Algoritme JWT
Serangan JWT klasik menyalahgunakan header alg.
- alg: none, jika diterima, memungkinkan penyerang memalsukan token tanpa tanda tangan.
- Kebingungan RS256 dan HS256: penyerang menandatangani ulang token menggunakan key publik RSA sebagai rahasia HMAC.
Pertahanan: tetapkan algoritme yang diharapkan di sisi server dan jangan pernah membiarkan token menentukan jalur verifikasi yang dijalankan.
Vulnerable: verify(token, key) // alg taken from header
Hardened: verify(token, key, { algorithms: ["RS256"] })
// reject alg:none, reject HS* when RS* expectedPencurian Token melalui XSS dan Log
Kompromi token yang paling umum adalah pencurian langsung token yang valid.
- XSS membaca token dari
localStorageatau memori. - Token dalam URL bocor melalui riwayat peramban, header perujuk, dan log server.
- Pencatatan yang terlalu rinci atas header
Authorization.
Untuk sesi peramban, utamakan cookie httpOnly, Secure, SameSite, serta bersihkan token dari log dan URL.
Set-Cookie: session=...; HttpOnly; Secure; SameSite=Lax
// keeps JS (and thus XSS) from reading the tokenSerangan Pemutaran Ulang
Serangan pemutaran ulang menggunakan kembali token valid yang telah ditangkap untuk bertindak sebagai korban.
- Dapat dikurangi dengan waktu kedaluwarsa yang singkat,
noncesekali pakai (OIDC), dan pelacakan ID asersi (SAML). - TLS mencegah penangkapan pasif melalui jaringan.
- Token yang terikat pada pengirim menghentikan penggunaan ulang meskipun token tersebut dicuri.
Replay defenses:
short exp + nonce/jti uniqueness
TLS everywhere
sender-constrained tokens (mTLS / DPoP)Token yang Terikat pada Pengirim
Token pembawa dapat digunakan oleh siapa pun yang memegangnya. Token yang terikat pada pengirim mengikat token pada key klien tertentu.
- Token yang terikat pada mTLS (RFC 8705) mengaitkan token dengan sertifikat TLS klien.
- DPoP (RFC 9449) mengikat token pada key bukti kepemilikan yang ditandatangani klien untuk setiap permintaan.
Dengan demikian, token yang dicuri tidak berguna tanpa key pribadi yang sesuai.
DPoP: each request carries a signed proof JWT
DPoP: <proof-jwt signed with client private key>
Authorization: DPoP <access_token>Masa Berlaku Singkat dan Rotasi Penyegaran
Batasi jangka waktu token yang dicuri dapat digunakan.
- Jaga agar token akses memiliki masa berlaku singkat (menit).
- Gunakan rotasi token penyegaran: setiap penyegaran menerbitkan token penyegaran baru dan membatalkan yang lama.
- Deteksi penggunaan ulang token penyegaran yang telah dirotasi sebagai sinyal pencurian dan cabut seluruh rantainya.
On /token refresh:
issue new RT, invalidate old RT
if old RT presented again -> breach -> revoke familyPencabutan dan Introspeksi Token
JWT mandiri tetap valid hingga kedaluwarsa, sehingga pencabutan menjadi lebih rumit. Sediakan mekanisme untuk menghentikan akses dengan cepat.
- Titik akhir pencabutan (RFC 7009) membatalkan token penyegaran/akses.
- Introspeksi (RFC 7662) memungkinkan server sumber daya memeriksa status token secara waktu nyata.
- Pertahankan daftar penolakan berdasarkan
jtiuntuk pencabutan penting.
POST /introspect token=...
-> { "active": true, "sub": "...", "scope": "read" }
POST /revoke token=...Penegakan Audiens dan Cakupan
Token yang valid tidak otomatis terotorisasi untuk API Anda. Tegakkan tujuan penggunaannya.
- Periksa aud agar token yang diterbitkan untuk layanan lain tidak dapat diputar ulang ke layanan Anda.
- Terapkan cakupan untuk setiap titik akhir; jangan berasumsi bahwa token yang valid berarti akses penuh.
- Validasi iss untuk memblokir token dari penerbit yang tidak tepercaya.
Ini menghentikan penggunaan ulang token lintas layanan dan penyalahgunaan wakil yang bingung.
Serangan Kekeliruan dan Lintas Penyedia
Ketika klien mendukung beberapa penyedia identitas, serangan kekeliruan dapat menipunya agar mengirimkan kode atau token yang diterbitkan oleh satu penyedia identitas ke titik akhir lain yang dipilih penyerang.
- Klien kehilangan jejak tentang AS yang menjadi sumber respons.
- Pertahanan: ikat respons pada penerbit menggunakan parameter
iss(RFC 9207) dan validasistateuntuk setiap penyedia.
/authorize ... &state=<provider-bound>
callback must include &iss=<expected-AS>
client verifies iss matches the AS it started withPenyimpanan dan Transportasi yang Aman
Tempat dan cara token disimpan menentukan paparannya.
- Sesi peramban: cookie httpOnly, Secure, SameSite; hindari
localStorage. - Perangkat seluler: keychain/keystore OS, jangan pernah menggunakan berkas teks biasa.
- Server: pengelola rahasia, terenkripsi saat tersimpan, dengan hak akses minimum sesuai cakupan.
- Selalu gunakan TLS saat transit; jangan pernah menyematkan token dalam string kueri.
Daftar Periksa Pengerasan Token
Satukan kontrol-kontrol tersebut menjadi dasar operasional.
- Patok algoritme; tolak
alg: nonedan serangan kebingungan. - Validasi iss, aud, exp, tanda tangan, nonce/state.
- TTL token akses yang singkat, ditambah rotasi penyegaran dengan deteksi penggunaan ulang.
- Utamakan token yang terikat pada pengirim (DPoP/mTLS) untuk API bernilai tinggi.
- Dukung pencabutan dan introspeksi.
- Simpan dengan aman; jauhkan token dari URL dan log.
Hardening baseline:
[ ] alg pinned, none rejected
[ ] iss/aud/exp/sig/nonce validated
[ ] short TTL + RT rotation + reuse detection
[ ] DPoP/mTLS for sensitive scopes
[ ] revoke + introspect availablePemeriksaan Singkat: Menetralisasi Token yang Dicuri
Pilih kontrol yang paling membatasi kerusakan akibat pencurian token itu sendiri.
Ringkasan: Serangan dan Pengerasan Token
Hal-hal penting:
- Token adalah kredensial; pencurian berarti pengambilalihan akun.
- Lindungi JWT dengan menetapkan algoritme dan memvalidasi iss, aud, exp, tanda tangan, nonce.
- Batasi paparan dengan masa berlaku singkat dan rotasi penyegaran dengan deteksi penggunaan ulang.
- Token yang terikat pada pengirim (DPoP/mTLS) menetralisasi token pembawa yang dicuri.
- Sediakan pencabutan dan introspeksi, serta jauhkan token dari URL, log, dan localStorage.
Belajar Cyber Security Academy dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 76
- Pelajaran
- 303
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Serangan Token dan Penguatan Keamanan” gratis?
Ya — teks lengkap “Serangan Token dan Penguatan Keamanan” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Cyber Security Academy, upgrade ke CoddyKit PRO. Kursus Cyber Security Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Serangan Token dan Penguatan Keamanan”?
Melindungi alur autentikasi dari penyalahgunaan. Kamu berlatih Cyber Security Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Cyber Security Academy?
Tidak diperlukan pengalaman sebelumnya. Cyber Security Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.
Berapa lama pelajaran “Serangan Token dan Penguatan Keamanan” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Cyber Security Academy ini?
Ya. Setiap pelajaran Cyber Security Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Alur OAuth 2.0
- OpenID Connect (OIDC)
- SAML dan Federasi
- Serangan Token dan Penguatan Keamanan