Alat pembangun · JWT penyahkod
Pemeriksaan Khalayak dan Pengeluar: Menghentikan JWT Daripada Dimainkan Semula Di Tempat Lain
· Mengapa ia penting
jwt pengesahan keselamatan
Token yang dikeluarkan untuk satu perkhidmatan boleh dikemukakan kepada yang lain yang berkongsi pengeluar yang sama. Siaran ini menerangkan cara semakan aud dan iss menghentikannya dan cara membaca kedua-dua tuntutan dalam token.
Perkhidmatan B menerima token yang dimaksudkan untuk perkhidmatan A — ulang tayang silang perkhidmatan yang tidak dihalang oleh tandatangan yang sah
Tandatangan boleh sah untuk token yang dikeluarkan kepada perkhidmatan lain. Jika beberapa API mempercayai platform identiti yang sama tetapi mengabaikan konteks penerima, bukti kelayakan yang dimaksudkan untuk perkhidmatan A mungkin dimainkan semula pada perkhidmatan B. Integriti kriptografi sahaja tidak menjawab siapa yang harus menggunakannya.
ToolAcre boleh mendedahkan `iss` dan `aud` supaya pembangun dapat melihat ketidakpadanan yang jelas. Rentetan tersebut kekal tidak disahkan sehingga tandatangan berjaya, dan alat pelayar tidak pernah melakukan semakan itu. Pelayan sumber sebenar mesti menguatkuasakan kedua-dua perhubungan pengeluar dan khalayak yang dimaksudkan.
iss — mengikat token kepada pengeluar yang dipercayai oleh perkhidmatan anda dan mengapa padanan rentetan tidak mencukupi tanpa pengikatan kunci
`iss` mengenal pasti entiti tuntutan muatan mengeluarkan token. Pengesah memerlukan pengeluar yang dijangka tepat di bawah konfigurasinya sendiri dan mesti mengikat identiti itu kepada hubungan penemuan kunci yang betul. Membandingkan teks tanpa pengikatan kriptografi memberi ruang kepada penyerang untuk menyalin rentetan yang dijangkakan.
Penyahkod menghuraikan `iss` sebagai "yang mencipta token", tetapi itu adalah makna yang didaftarkan, bukan penemuan tentang nilai yang ditampal. Teks penerbit yang boleh dibaca ialah bukti berguna untuk konfigurasi penyahpepijatan. Ia tidak boleh memilih sumber kunci sewenang-wenangnya atau mengesahkan sendiri.
aud — rentetan atau tatasusunan menamakan penerima yang dimaksudkan, dan peraturan bahawa pengesah mesti mendapati dirinya di dalamnya
`aud` menamakan penerima yang dimaksudkan dan mungkin muncul sebagai satu rentetan atau koleksi. Dasar pelayan sumber mesti mendapati dirinya dalam nilai yang disahkan menggunakan peraturan perbandingan tepat yang diperlukan oleh profilnya. Ia tidak sepatutnya menerima token semata-mata kerana beberapa perkhidmatan biasa lain disenaraikan.
ToolAcre membawa tatasusunan sebagai teks JSON dalam jadual tuntutannya, mengekalkan strukturnya yang boleh dilihat untuk pemeriksaan. Ia tidak mengetahui pengecam API semasa dan tidak dapat menentukan padanan. Ketiadaan yang disengajakan itu menghalang penyahkod generik daripada mencipta konteks kebenaran yang tidak dimilikinya.
azp dan skop — OpenID Connect dan OAuth mendakwa yang memperhalusi siapa yang boleh menggunakan token dan untuk apa
`azp` dan `scope` boleh menambah konteks tentang pihak yang diberi kuasa dan meminta kebenaran dalam profil yang mentakrifkan mereka. Mereka tidak menggantikan cek penonton, penerbit atau tandatangan. Nama skop ialah penegasan, bukan pemberian kebenaran sehingga pelayan sumber memetakan nilai yang disahkan kepada dasarnya sendiri.
Penyahkod semasa menganggap ini sebagai tuntutan khusus aplikasi kerana jadual perihalan berdaftarnya meliputi tujuh nama teras. Ia memaparkan nilainya tetapi tidak membekalkan semantik OpenID Connect atau OAuth. Rujuk profil dan kontrak pembekal yang berkenaan sebelum menggunakannya dalam keputusan.
Corak timbalan keliru — cara token yang sah menjadi serangan apabila khalayak tidak disemak
Timbalan yang keliru menggunakan kuasa yang sah dalam konteks yang tidak diingini. Token yang diterima oleh perkhidmatan yang salah boleh mencetuskan corak itu walaupun tiada siapa yang memalsukan tandatangan. Semakan khalayak mengehadkan tempat tuntutan yang disahkan boleh digunakan, manakala pengeluar menyemak mengehadkan penegasan yang dipertimbangkan oleh perkhidmatan.
Inilah sebabnya mengapa bendera "tandatangan sah" am masih tidak mencukupi. Keizinan bergantung pada penerima dan operasi. ToolAcre mengelakkan kekaburan itu sepenuhnya dengan melaporkan tiada hasil pengesahan, meninggalkan perkhidmatan yang digunakan untuk menggabungkan kriptografi dengan dasar kontekstual.
Contoh yang berkesan — membaca iss dan aud daripada dua token dalam penyahkod ToolAcre JWT dan memutuskan perkhidmatan mana yang harus menerima setiap
Cipta dua token tidak berbahaya yang muatannya dinyahkodkan sahaja berbeza dalam `aud`: satu nama `service-a`, satu lagi `service-b`; kedua-duanya menuntut pengeluar yang sama. ToolAcre menjadikan perbezaannya kelihatan. Pengesah perkhidmatan-A tidak boleh menerima sahaja daripada paparan ini dan harus menolak khalayak perkhidmatan-B yang disahkan.
Kemudian balikkan latihan dengan dua rentetan pengeluar. Teks yang dijangka sahaja tidak mencukupi melainkan pengesahan menggunakan kunci yang dipercayai untuk pengeluar tersebut. Contoh-contoh ini memisahkan pemeriksaan daripada penerimaan dan menunjukkan sebab menyalin tuntutan yang kelihatan betul ke dalam token rekaan tidak mengubah dasar yang dipercayai.
Perkara yang tidak dilindungi ini — pengesahan tandatangan, yang tidak pernah dilakukan oleh penyahkod; semakan aud dan iss sahaja penting selepas tandatangan disimpan
Khalayak dan penerbit menyemak perkara sahaja selepas pengesahan kriptografi memastikan bahawa bait yang dilindungi sepadan dengan bahan utama yang dipercayai. ToolAcre tidak melakukan sebarang pengesahan itu. Outputnya tidak dapat menentukan bahawa tuntutan itu masih utuh atau penerbit yang diketahui mengarangnya.
Ia juga tidak mengambil metadata, memilih kunci atau membandingkan penerima yang dikonfigurasikan. Gunakan ujian bahagian belakang dan log untuk membuktikan penolakan untuk penerbit yang salah dan khalayak yang salah. Padanan visual dalam penyahkod ialah petunjuk nyahpepijat, bukti kebenaran yang tidak mencukupi.
Bawa pulang: semak untuk siapa, bukan sahaja untuk siapa yang menandatanganinya — penyahkod ToolAcre JWT menunjukkan dakwaan aud dan iss yang anda perlu bandingkan
Semak untuk siapa token itu, bukan sekadar nama yang dikatakan menandatanganinya. Aliran mantap mengesahkan bait yang dilindungi di bawah perhubungan pengeluar yang dipercayai secara bebas, kemudian memerlukan khalayak yang boleh diterima dan menggunakan peraturan kebenaran khusus perkhidmatan.
Gunakan ToolAcre untuk membaca nilai ujian selamat dan merumuskan semakan sebelah pelayan seterusnya. Jangan pilih kunci pengesahan daripada pengepala yang tidak dipercayai atau data tuntutan dan jangan tukar `iss`, `aud`, `azp` atau `scope` yang dipaparkan kepada geran tanpa aliran dipercayai penuh.