Alat pembangun · JWT penyahkod
Nyahkod vs Sahkan: Perkara yang JWT Buktikan Tandatangan dan Mengapa Penyahkod Melangkaunya
· Bagaimana ia berfungsi
jwt keselamatan kriptografi
Penyahkodan tidak memerlukan kunci; pengesahan memerlukan yang betul. Siaran ini menerangkan perkara yang dilindungi oleh tandatangan, cara HMAC dan pengesahan asimetri berbeza, dan sebab alat penyahkod sahaja jujur untuk membuktikan apa-apa.
Ia didekod dengan baik, jadi ia mesti sah — andaian yang membawa kepada menerima token palsu
Token boleh menyahkod dengan sempurna selepas penyerang menulis muatan baharu dan melampirkan teks sewenang-wenangnya sebagai segmen ketiga. Penghuraian Base64url dan JSON ialah transformasi awam; tidak memeriksa siapa yang memasang rentetan. Oleh itu, "Tuntutan dipaparkan pada skrin" bukanlah bukti bahawa pengeluar mencipta atau meluluskannya.
ToolAcre mengukuhkan sempadan ini di beberapa tempat. Hasilnya sentiasa membawa `signatureVerified: false`, UI mengulangi makluman tuntutan yang tidak disahkan di sebelah output dan ujian menegaskan tiada permukaan `valid` atau `verify`. Itu adalah kejujuran yang disengajakan, bukan ciri kemudahan yang hilang.
Perkara yang dilindungi oleh tandatangan — bait tepat bagi pengepala dan muatan yang dikodkan, dicantumkan dengan titik
Untuk JWS padat, input tandatangan ialah segmen pengepala terlindung yang dikodkan, titik literal dan segmen muatan yang dikodkan. Pengesahan melibatkan bait yang dikodkan tepat, bukan JSON yang baru dicetak cantik. Menyusun semula sifat atau menukar ruang kosong boleh mencipta bait yang berbeza walaupun apabila manusia melihat objek yang setara.
Segmen ketiga membawa tandatangan berkod atau MAC bait yang dihasilkan melalui input tersebut. ToolAcre mengekalkan segmen mentah dan mungkin melaporkan panjang baitnya, tetapi ia tidak pernah menjalankan semakan kriptografi. Mengukur bentuk data tidak dapat memastikan bahawa kunci yang dijangkakan menciptanya atau bahawa dua segmen pertama kekal tidak berubah.
HMAC berbanding asimetri — rahsia kongsi yang boleh dipalsukan oleh sesiapa sahaja yang boleh mengesahkan, berbanding kunci awam yang sahaja boleh mengesahkan
Dengan HMAC, rahsia kongsi menyokong kedua-dua mencipta dan menyemak MAC. Pihak yang boleh mengesahkan dengan rahsia itu juga boleh menghasilkan token lain, jadi pengedaran rahsia mentakrifkan sempadan amanah. Nota ToolAcre menjadikan akibat ini jelas untuk label algoritma HS yang diiktiraf.
Tandatangan asimetri memisahkan keupayaan menandatangani peribadi daripada bahan pengesahan awam. Memiliki kunci awam boleh menyokong pemeriksaan tanpa memberikan kuasa menandatangani. Pembezaan ini tidak menjadikan label asimetri yang diisytiharkan pengepala boleh dipercayai: pengesah mesti sudah mengetahui algoritma dan kunci pengeluar yang boleh diterima.
Dari mana kunci itu berasal — konfigurasi untuk rahsia kongsi, titik akhir JWKS untuk kunci awam, dipadankan oleh kanak-kanak
Rahsia yang dikongsi harus datang daripada konfigurasi perkhidmatan yang dilindungi, bukan teks token. Kunci pengesahan awam mungkin datang daripada perhubungan pengeluar yang dipercayai dan set kunci terkawal. A `kid` boleh membantu memilih dalam set itu, tetapi ia tidak boleh menukar kandungan pengepala yang tidak dipercayai sewenang-wenangnya kepada fail, pangkalan data atau carian rangkaian.
ToolAcre tidak mempunyai konfigurasi pengeluar dan tidak meminta kunci, jadi pengesahan adalah mustahil untuk dilaksanakan secara bertanggungjawab di sana. Halaman web generik tidak boleh menyimpulkan organisasi yang anda percayai, khalayak yang anda layan atau algoritma mana yang dibenarkan oleh aplikasi anda. Itu adalah input dasar aplikasi, bukan sifat yang boleh ditemui dengan penyahkodan.
Mengapa penyahkodan tidak memerlukan kunci — base64url ialah pengekodan, bukan penyulitan, jadi sesiapa sahaja boleh membaca tuntutan
Tiada kunci diperlukan untuk menyahkod kerana base64url ialah pengekodan boleh balik dan bukannya penyulitan. Tandukan dan muatan bertujuan untuk mengembara dengan token dan boleh dipulihkan oleh mana-mana pemegang. Ini membolehkan pemeriksaan yang berguna, tetapi juga bermakna maklumat sulit tidak boleh disembunyikan di sebalik bunyi visual aksara yang dikodkan.
JSON penghuraian menambah struktur sahaja. Ia boleh memberitahu anda bahawa `roles` ialah tatasusunan atau `exp` ialah nombor, bukannya mana-mana nilai itu sahih. ToolAcre menjadikan nilai berstruktur sebagai teks dan perihalan berdaftar sebagai dokumentasi sambil menyerahkan kebenaran kepada sistem yang boleh mengesahkan dan menguatkuasakan dasar.
Contoh yang berfungsi — token dengan satu aksara muatan diubah masih didekod dengan sempurna; sahaja notis pengesahan
Mulakan dengan token sintetik yang muatannya tertera `{"sub":"demo","role":"reader"}`. Tukar satu aksara muatan yang dikodkan supaya bait masih membentuk JSON yang sah, mungkin menghasilkan peranan yang berbeza. Kedua-dua versi boleh membahagi, menyahkod dan mencetak cantik. Laluan penyahkod tidak mempunyai sebab untuk menolak versi yang diubah.
Pengesah yang dikonfigurasikan dengan betul mengira semula atau menyemak hasil kriptografi ke atas input tandatangan yang diubah dan menolak ketidakpadanan. Perbandingan ini menunjukkan sempadan yang tepat: kejayaan penyahkod meliputi sintaks, manakala kejayaan pengesah boleh mewujudkan integriti berbanding kunci yang dipercayai dan algoritma yang dibenarkan sebelum dasar tuntutan dinilai.
Perkara yang tidak dilindungi ini — penyahkod ToolAcre JWT tidak sekali-kali mengesahkan tandatangan, melalui reka bentuk; tiada apa yang ditunjukkannya membuktikan token itu tulen
ToolAcre tidak sekali-kali mengesahkan tandatangan. Segmen kosong menerima amaran, pengekodan tandatangan yang salah bentuk menerima satu lagi dan bait yang boleh diukur dilaporkan sebagai hadir tetapi tidak disahkan. Tiada satu pun daripada cawangan ini menghasilkan keputusan token yang tulen. Pelaksanaan tidak mempunyai pemerolehan kunci tersembunyi atau laluan pelaksanaan algoritma.
Malah pengesahan kriptografi yang berjaya tidak akan membenarkan tindakan secara automatik. Perkhidmatan yang menggunakan masih memerlukan penerbit, khalayak, masa dan semakan khusus aplikasi. Artikel ini berhenti sebelum konfigurasi pustaka kerana sokongan dan lalai berbeza-beza; rujuk pengesah dan versi yang tepat yang digunakan oleh perkhidmatan anda.
Bawa pulang: nyahkod untuk memeriksa, mengesahkan untuk mempercayai — gunakan penyahkod ToolAcre JWT untuk yang pertama dan pustaka sebelah pelayan dengan kunci yang betul untuk yang kedua
Nyahkod untuk memeriksa dan mengesahkan sebelum mempercayai. Gunakan alat pelayar untuk token tamat tempoh atau sintetik apabila anda perlu melihat medan pengepala, nilai muatan, penukaran masa dan amaran struktur. Jangan biarkan keluaran yang boleh dibaca itu mengalir terus ke dalam keputusan akses.
Alihkan kerja berbangkit kepada pengesah yang dipercayai dengan bahan utama yang dibekalkan secara bebas, algoritma yang disematkan dan dasar perkhidmatan. Sahaja laluan itu boleh menguji ketulenan dan integriti, dan sahaja semakan tuntutan seterusnya boleh memutuskan kebenaran. Keengganan penyahkod untuk mengaburkan kerja tersebut ialah ciri keselamatan.