Token Terikat Penghantar dengan mTLS
Pelajari cara pengikatan sijil klien TLS salingan mengubah token pembawa menjadi token terikat penghantar, sekali gus menghalang token yang dicuri daripada diulang oleh penyerang.
Token Terikat Penghantar dengan mTLS ialah pelajaran OAuth2 & OpenID Connect secara Mendalam percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran OAuth2 & OpenID Connect secara Mendalam, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus OAuth2 & OpenID Connect secara Mendalam merangkumi sejumlah 4 pelajaran.
Kelemahan Token Pembawa
Token pembawa biasa boleh digunakan oleh sesiapa sahaja yang memilikinya. Jika token itu bocor melalui log, proksi, atau pepijat XSS, pencuri boleh menggunakannya dengan bebas. Token terikat kepada penghantar mengatasi masalah ini dengan mengikat token kepada klien yang sah.
Apakah mTLS?
TLS bersama bermaksud kedua-dua pihak mengemukakan sijil: pelayan membuktikan identitinya seperti biasa dan klien turut mengemukakan sijil. Pelayan kebenaran kemudiannya boleh mengikat token yang dikeluarkan kepada sijil klien tersebut.
RFC 8705
Perkara ini dipiawaikan dalam RFC 8705 (Pengesahan Klien TLS Bersama OAuth 2.0 dan Token Akses Terikat Sijil). Piawaian ini merangkumi pengesahan klien melalui mTLS serta pengikatan token akses kepada sijil.
Tuntutan cnf
Apabila AS mengeluarkan token yang terikat kepada sijil, AS merekodkan tuntutan pengesahan (cnf) yang mengandungi cap jari SHA-256 sijil klien di bawah kunci x5t#S256.
{
"sub": "client-app",
"cnf": {
"x5t#S256": "bwcK0esc3ACC3DB2Y5_lESsXE8o9ltc05O89jdN-dg2"
}
}Semakan Pelayan Sumber
Apabila klien memanggil API melalui mTLS, pelayan sumber mengira cap jari sijil yang dikemukakan dan membandingkannya dengan cnf.x5t#S256 token. Jika berbeza, token itu ditolak.
thumb = sha256(der_of_client_cert)
if base64url(thumb) != token.cnf['x5t#S256']:
reject('certificate binding mismatch')Mengapa Token yang Dicuri Tidak Berguna
Walaupun memiliki token itu, penyerang tidak boleh mengemukakan kunci persendirian klien, jadi mereka tidak boleh melengkapkan jabat tangan mTLS dengan sijil yang sepadan. Cap jari tidak akan sepadan dan API akan menolak mereka.
Pengesahan Klien mTLS
RFC 8705 juga membolehkan klien mengesahkan diri di titik akhir token menggunakan sijil mereka dan bukannya rahsia yang dikongsi, melalui kaedah tls_client_auth (PKI) atau self_signed_tls_client_auth.
Alias Titik Akhir mTLS
Oleh sebab mTLS memerlukan konfigurasi TLS yang berasingan, penyedia menerbitkan mtls_endpoint_aliases dalam penemuan supaya klien mengakses versi titik akhir token dan titik akhir lain yang terikat kepada sijil.
{
"mtls_endpoint_aliases": {
"token_endpoint": "https://mtls.op.example.com/token"
}
}mTLS berbanding DPoP
Kedua-duanya mencapai kekangan penghantar:
- mTLS — bergantung pada sijil peringkat TLS, amat sesuai untuk pelayan-ke-pelayan dan infrastruktur dengan PKI.
- DPoP — JWT bukti pada peringkat aplikasi, lebih sesuai untuk klien pelayar atau awam yang tidak boleh mengurus sijil klien.
Pertimbangan Operasi
mTLS memerlukan penyediaan dan penggiliran sijil serta penamat TLS yang meneruskan sijil klien kepada aplikasi anda. Rancang kitar hayat sijil dan pastikan proksi songsang anda meneruskan sijil yang telah disahkan kepada pelayan sumber.
Bila Perlu Menggunakannya
Pilih token yang terikat kepada mTLS untuk API berjaminan tinggi, terkawal selia, atau bertaraf kewangan serta perkhidmatan bahagian belakang yang dipercayai apabila pengurusan sijil boleh dilaksanakan. Langkah ini meningkatkan kos pencurian token dengan ketara.
Semakan Pantas
Uji pengetahuan anda tentang pengikatan mTLS.
Imbas Kembali
Token mTLS yang terikat kepada penghantar (RFC 8705) mengikat token kepada sijil klien.
- Token membawa cap jari sijil
cnf.x5t#S256. - Pelayan sumber memadankan cap jari sijil yang dikemukakan; token yang dicuri tanpa kunci persendirian akan gagal.
- mTLS juga membolehkan pengesahan klien berasaskan sijil dan menggunakan alias titik akhir mTLS.
- Bandingkan dengan DPoP untuk klien awam.
Pelajari OAuth2 & OpenID Connect secara Mendalam dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 12
- Pelajaran
- 48
Soalan Lazim
Adakah pelajaran “Token Terikat Penghantar dengan mTLS” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran OAuth2 & OpenID Connect secara Mendalam, termasuk “Token Terikat Penghantar dengan mTLS”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus OAuth2 & OpenID Connect secara Mendalam merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Token Terikat Penghantar dengan mTLS”?
Pelajari cara pengikatan sijil klien TLS salingan mengubah token pembawa menjadi token terikat penghantar, sekali gus menghalang token yang dicuri daripada diulang oleh penyerang. Anda berlatih OAuth2 & OpenID Connect secara Mendalam menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan OAuth2 & OpenID Connect secara Mendalam?
Tiada pengalaman terdahulu diperlukan. Pembelajaran OAuth2 & OpenID Connect secara Mendalam di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.
Berapa lamakah pelajaran “Token Terikat Penghantar dengan mTLS” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran OAuth2 & OpenID Connect secara Mendalam ini?
Ya. Setiap pelajaran OAuth2 & OpenID Connect secara Mendalam menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Persetujuan dan Pengalaman Pengguna
- Perkongsian Sumber Rentas Asal (CORS)
- Log Keluar Saluran Hadapan berbanding Saluran Belakang
- Token Terikat Penghantar dengan mTLS