Alat pembangun · JWT penyahkod
Anatomi JWT: Pemisahan pada Titik dan Penyahkod Base64url
· Bagaimana ia berfungsi
jwt pengekodan keselamatan
JWT ialah tiga segmen base64url yang dipisahkan oleh titik. Siaran ini menyahkod setiap bahagian dengan tangan, menerangkan sebab segmen tandatangan bukan teks dan menunjukkan perkara yang boleh dan tidak boleh diberitahu oleh penyahkod kepada anda.
Rentetan panjang dalam pengepala Kebenaran — perkara yang anda lihat dan sebab ia mempunyai dua titik tepat
Token pembawa selalunya tiba dalam pengepala Kebenaran sebagai rentetan padat yang dipisahkan dengan titik. JWT yang ditandatangani biasa dalam bentuk JWS padat mempunyai tiga segmen dan oleh itu dua titik pemisah. Token aktif ialah bukti kelayakan: jangan tampal token pengeluaran ke dalam demonstrasi.
Siri padat — pengepala, muatan dan tandatangan sebagai tiga segmen base64url
Dalam siri JWS padat, segmen pertama ialah pengepala yang dilindungi, yang kedua ialah muatan dan yang ketiga ialah tandatangan atau MAC. Tandatangan meliputi dua segmen pertama yang dikodkan, dicantumkan dengan titik. Memisahkan rentetan menempatkan segmen; ia tidak dapat mewujudkan kepercayaan.
Base64url tanpa padding — abjad JWS menggunakan dan sebab segmen tidak mempunyai tanda yang sama di belakang
Base64url menggunakan - dan _ sebagai ganti + dan / dalam Base64 biasa. Padat JWS meninggalkan jejak = pelapik; penyahkod boleh memulihkan padding sebelum menyahkod. Penyahkodan menghasilkan bait. Untuk pengepala dan tuntutan JSON, nyahkod bait sebagai UTF-8 sebelum menghuraikan teks.
Pengepala — objek kecil JSON menamakan algoritma dan, selalunya, kunci
Pengepala biasanya JSON mengandungi alg dan kadangkala pengecam kunci, nak. Ini adalah pernyataan yang dibuat oleh token itu sendiri. Pengesah mesti menguatkuasakan dasar algoritma yang dibenarkan sendiri dan mendapatkan kunci yang sesuai dengan selamat; membaca alg sahaja bukan kebenaran.
Muatan — objek tuntutan JSON, boleh dibaca oleh sesiapa sahaja yang memegang token
Muatan mengandungi tuntutan seperti sub, exp dan aud. Sesiapa sahaja yang memegang token boleh membacanya; pengekodan bukan penyulitan. Ex NumericDate mengira saat sejak zaman Unix, tetapi tuntutan yang tidak disahkan tidak mempunyai kuasa. Jangan simpan rahsia dalam muatan yang boleh dibaca.
Tandatangan — bait mentah pada dua segmen pertama, tidak bermakna sebagai teks dan tidak berguna tanpa kunci
Segmen terakhir ialah bait tandatangan yang dikodkan dalam base64url, bukan objek JSON ketiga. Mengesahkannya memerlukan algoritma kriptografi, kunci dan dasar aplikasi. ToolAcre sengaja tidak melakukan pengesahan: ia melaporkan kehadiran tandatangan dan sentiasa menandakan tandatanganDisahkan palsu.
Contoh yang berkesan — menyahkod segmen token sampel mengikut segmen, termasuk JSON yang muncul
Ambil pengepala tunjuk cara tidak sensitif {"alg":"HS256","typ":"JWT"} dan muatkan {"sub":"demo"}. Pengekodan base64url mereka ialah eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 dan eyJzdWIiOiJkZW1vIn0. Penyahkodan memulihkan JSON. Menambahkan segmen ketiga yang sewenang-wenangnya tidak menjadikan token itu sahih.
Bawa pulang: penyahkodan sedang membaca, tidak mempercayai — penyahkod ToolAcre JWT menunjukkan pengepala dan muatan dan tidak sekali-kali mengesahkan tandatangan, jadi tiada apa yang ditunjukkan yang membuktikan token itu tulen
Penyahkodan ialah membaca, tidak mempercayai. Gunakan penyahkod ToolAcre JWT untuk pengepala, tuntutan dan amaran token buang; gunakan pengesah dipercayai aplikasi anda untuk memutuskan sama ada token yang ditandatangani adalah sah. Tuntutan yang dipaparkan sahaja tidak boleh memberikan akses.