Saya penulis perpustakaan simpul yang menangani otentikasi cukup mendalam, express-stormpath , jadi saya akan berpadu dengan beberapa informasi di sini.
Pertama, JWT biasanya TIDAK dienkripsi. Meskipun ada cara untuk mengenkripsi JWT (lihat: JWEs ), ini tidak umum dalam praktik karena banyak alasan.
Selanjutnya, segala bentuk otentikasi (menggunakan JWT atau tidak), terkena serangan MitM (man-in-the-middle). Serangan-serangan ini terjadi ketika seorang penyerang dapat MELIHAT lalu lintas JARINGAN saat Anda membuat permintaan melalui internet. Inilah yang dapat dilihat ISP Anda, NSA, dll.
Inilah yang membantu SSL mencegah: dengan mengenkripsi lalu lintas NETWORK Anda dari komputer Anda -> beberapa server saat mengautentikasi, pihak ketiga yang memantau lalu lintas jaringan Anda TIDAK dapat melihat token, kata sandi, atau hal-hal seperti itu kecuali mereka entah bagaimana dapat melakukannya untuk mendapatkan salinan kunci SSL pribadi server (tidak mungkin). Ini adalah alasan SSL WAJIB untuk semua bentuk otentikasi.
Katakanlah, bagaimanapun, bahwa seseorang dapat mengeksploitasi SSL Anda dan dapat melihat token Anda: jawaban untuk pertanyaan Anda adalah YA , penyerang akan dapat menggunakan token itu untuk menyamar sebagai Anda dan membuat permintaan ke server Anda.
Sekarang, di sinilah protokol masuk
JWT hanyalah satu standar untuk token otentikasi. Mereka dapat digunakan untuk apa saja. Alasan JWT agak keren adalah karena Anda dapat menanamkan informasi tambahan di dalamnya, dan Anda dapat memvalidasi bahwa tidak ada yang mengacaukannya (menandatangani).
NAMUN, JWT sendiri tidak ada hubungannya dengan 'keamanan'. Untuk semua maksud dan tujuan, JWT kurang lebih sama dengan kunci API: hanya string acak yang Anda gunakan untuk mengautentikasi terhadap beberapa server di suatu tempat.
Yang membuat pertanyaan Anda lebih menarik adalah protokol yang digunakan (kemungkinan besar OAuth2).
Cara OAuth2 bekerja adalah bahwa ia dirancang untuk memberikan token TEMPORARY kepada klien (seperti JWT!) Untuk otentikasi untuk PERIODE WAKTU SINGKAT SAJA SAJA!
Idenya adalah bahwa jika token Anda dicuri, penyerang hanya dapat menggunakannya untuk waktu yang singkat.
Dengan OAuth2, Anda harus mengautentikasi ulang diri Anda sendiri dengan server sesekali dengan memberikan nama pengguna / kata sandi ATAU kredensial API dan kemudian mendapatkan token kembali sebagai imbalan.
Karena proses ini terjadi sesekali, token Anda akan sering berubah, membuatnya lebih sulit bagi penyerang untuk terus-menerus menyamar sebagai Anda tanpa melalui masalah besar.
Semoga ini membantu ^^