Bahasa Indonesia

Alat pengembang · dekoder JWT

Pemeriksaan Pemirsa dan Penerbit: Menghentikan JWT Diputar Ulang di Tempat Lain

· Mengapa itu penting

jwt otentikasi keamanan

Satu token diarahkan ke layanan yang dimaksudkan dan diblokir dari yang lain
Ilustrasi vektor ToolAcre asli

Token yang diterbitkan untuk satu layanan dapat diberikan ke layanan lain yang berbagi penerbit yang sama. Posting ini menjelaskan bagaimana pemeriksaan aud dan iss menghentikannya, dan cara membaca kedua klaim dalam sebuah token.

Layanan B menerima token yang dimaksudkan untuk layanan A — pemutaran ulang lintas layanan yang tidak dapat dicegah oleh tanda tangan yang valid

Tanda tangan dapat berlaku untuk token yang dikeluarkan untuk layanan berbeda. Jika beberapa API memercayai platform identitas yang sama tetapi mengabaikan konteks penerima, kredensial yang ditujukan untuk layanan A dapat diputar ulang di layanan B. Integritas kriptografi saja tidak menjawab siapa yang harus menggunakannya.

ToolAcre dapat mengungkapkan `iss` dan `aud` sehingga pengembang dapat menemukan ketidakcocokan yang jelas. String tersebut tetap tidak terverifikasi hingga tanda tangan berhasil, dan alat browser tidak pernah melakukan pemeriksaan tersebut. Server sumber daya sebenarnya harus menegakkan hubungan penerbit dan audiens yang dituju.

iss — mengikat token ke penerbit yang dipercaya layanan Anda, dan mengapa pencocokan string tidak cukup tanpa pengikatan kunci

`iss` mengidentifikasi entitas yang klaim muatannya mengeluarkan token. Pemverifikasi memerlukan penerbit yang diharapkan secara tepat dalam konfigurasinya sendiri dan harus mengikat identitas tersebut ke hubungan penemuan kunci yang benar. Membandingkan teks tanpa pengikatan kriptografi memberikan ruang bagi penyerang untuk menyalin string yang diharapkan.

Dekoder mendeskripsikan `iss` sebagai “siapa yang membuat token”, namun itu adalah makna yang terdaftar, bukan temuan tentang nilai yang ditempelkan. Teks penerbit yang dapat dibaca adalah bukti berguna untuk konfigurasi debug. Itu tidak dapat memilih sumber kunci sembarangan atau mengautentikasi dirinya sendiri.

aud — string atau larik yang memberi nama penerima yang dituju, dan aturan yang harus ditemukan oleh pemverifikasi

`aud` nama penerima yang dituju dan dapat muncul sebagai satu string atau kumpulan. Kebijakan server sumber daya harus berada dalam nilai yang diautentikasi menggunakan aturan perbandingan yang tepat yang diperlukan oleh profilnya. Seharusnya tidak menerima token hanya karena beberapa layanan familiar lainnya terdaftar.

ToolAcre membawa array sebagai teks JSON dalam tabel klaimnya, menjaga strukturnya yang terlihat untuk diperiksa. Ia tidak mengetahui pengenal API saat ini dan tidak dapat menentukan kecocokan. Ketidakhadiran yang disengaja tersebut mencegah decoder generik menciptakan konteks otorisasi yang tidak dimilikinya.

azp dan scope — klaim OpenID Connect dan OAuth yang menyaring siapa yang boleh menggunakan token dan untuk apa

`azp` dan `scope` dapat menambahkan konteks tentang pihak yang berwenang dan meminta izin di profil yang mendefinisikan mereka. Mereka tidak menggantikan pemeriksaan audiens, penerbit atau tanda tangan. Nama cakupan adalah pernyataan, bukan pemberian izin hingga server sumber daya memetakan nilai yang diautentikasi ke kebijakannya sendiri.

Decoder saat ini memperlakukan ini sebagai klaim khusus aplikasi karena tabel deskripsi terdaftarnya mencakup tujuh nama inti. Ini menampilkan nilainya tetapi tidak menyediakan semantik OpenID Connect atau OAuth. Konsultasikan profil yang berlaku dan kontrak penyedia sebelum menggunakannya dalam mengambil keputusan.

Pola wakil yang bingung - bagaimana token yang sah menjadi serangan ketika audiens tidak diperiksa

Seorang deputi yang bingung menggunakan otoritas yang sah dalam konteks yang tidak diinginkan. Token yang diterima oleh layanan yang salah dapat memicu pola tersebut bahkan ketika tidak ada yang memalsukan tanda tangannya. Audiens memeriksa batas di mana klaim yang diautentikasi dapat diterapkan, sementara penerbit memeriksa batas yang pernyataannya dipertimbangkan oleh layanan.

Inilah sebabnya mengapa tanda umum “tanda tangan valid” masih belum cukup. Otorisasi tergantung pada penerima dan pengoperasian. ToolAcre menghindari ambiguitas tersebut sepenuhnya dengan tidak melaporkan hasil verifikasi, sehingga membiarkan layanan konsumsi menggabungkan kriptografi dengan kebijakan kontekstual.

Contoh praktis - membaca iss dan aud dari dua token di decoder ToolAcre JWT dan memutuskan layanan mana yang harus menerima masing-masing token

Buat dua token tidak berbahaya yang muatannya yang didekodekan hanya berbeda dalam `aud`: satu memberi nama `service-a`, yang lain `service-b`; keduanya mengklaim penerbit yang sama. ToolAcre membuat perbedaannya terlihat. Pemverifikasi layanan-A tidak boleh menerima tidak hanya dari tampilan ini dan harus menolak audiens layanan-B yang diautentikasi.

Kemudian balikkan latihan dengan dua string penerbit. Teks yang diharapkan saja tidak cukup kecuali verifikasi menggunakan kunci yang dipercaya untuk penerbit tersebut. Contoh-contoh ini memisahkan pemeriksaan dari penerimaan dan menunjukkan mengapa menyalin klaim yang terlihat benar ke dalam token palsu tidak mengubah kebijakan tepercaya.

Apa yang tidak tercakup dalam hal ini — verifikasi tanda tangan, yang tidak pernah dilakukan oleh decoder; pemeriksaan aud dan iss hanya penting setelah tanda tangan dipegang

Pemeriksaan audiens dan penerbit hanya penting setelah verifikasi kriptografi menetapkan bahwa byte yang dilindungi sesuai dengan materi kunci tepercaya. ToolAcre tidak melakukan verifikasi tersebut. Keluarannya tidak dapat membuktikan bahwa suatu klaim masih utuh atau bahwa penerbit yang dikenallah yang membuat klaim tersebut.

Itu juga tidak mengambil metadata, memilih kunci atau membandingkan penerima yang dikonfigurasi. Gunakan pengujian dan log backend untuk membuktikan penolakan terhadap penerbit yang salah dan audiens yang salah. Kecocokan visual dalam decoder adalah petunjuk debugging, tidak pernah cukup sebagai bukti otorisasi.

Kesimpulan: periksa untuk siapa, bukan hanya siapa yang menandatanganinya — decoder ToolAcre JWT menunjukkan klaim aud dan iss yang perlu Anda bandingkan

Periksa untuk siapa token itu, bukan hanya nama yang tertulis di dalamnya. Alur yang kuat mengautentikasi byte yang dilindungi berdasarkan hubungan penerbit tepercaya secara independen, kemudian memerlukan audiens yang dapat diterima dan menerapkan aturan otorisasi khusus layanan.

Gunakan ToolAcre untuk membaca nilai pengujian yang aman dan merumuskan pemeriksaan sisi server berikutnya. Jangan memilih kunci verifikasi dari header atau data klaim yang tidak tepercaya, dan jangan mengubah `iss`, `aud`, `azp`, atau `scope` yang ditampilkan menjadi hibah tanpa aliran tepercaya penuh.