ฉันเป็นผู้เขียนของไลบรารี่โหนดที่จัดการกับการพิสูจน์ตัวตนในเชิงลึก, express-stormpath , ดังนั้นฉันจะพูดสอดกับข้อมูลบางอย่างที่นี่
ก่อนอื่น JWT มักไม่มีการเข้ารหัส ในขณะที่มีวิธีการเข้ารหัส JWTs (ดู: JWEs ) สิ่งนี้ไม่ได้เป็นเรื่องธรรมดาในทางปฏิบัติด้วยเหตุผลหลายประการ
ถัดไปขึ้นไปการตรวจสอบความถูกต้องทุกรูปแบบ (โดยใช้ JWT หรือไม่ก็ตาม) ขึ้นอยู่กับการโจมตีของ MitM (การโจมตีแบบกึ่งกลาง) การโจมตีเหล่านี้เกิดขึ้นเมื่อผู้โจมตีสามารถดูทราฟฟิกเครือข่ายของคุณเมื่อคุณทำการร้องขอผ่านอินเทอร์เน็ต นี่คือสิ่งที่ ISP ของคุณสามารถมองเห็นได้ NSA ฯลฯ
นี่คือสิ่งที่ SSL ช่วยป้องกัน: โดยการเข้ารหัสการรับส่งข้อมูล NETWORK ของคุณจากคอมพิวเตอร์ของคุณ -> เซิร์ฟเวอร์บางอย่างเมื่อตรวจสอบความถูกต้องบุคคลที่สามที่ตรวจสอบการรับส่งข้อมูลเครือข่ายของคุณไม่สามารถเห็นโทเค็นรหัสผ่านหรืออะไรทำนองนั้น เพื่อรับสำเนาของคีย์ SSL ส่วนตัวของเซิร์ฟเวอร์ (ไม่น่าเป็นไปได้) นี่คือเหตุผลที่ SSL เป็นตัวควบคุมสำหรับการตรวจสอบสิทธิ์ทุกรูปแบบ
สมมติว่ามีใครบางคนสามารถใช้ประโยชน์จาก SSL ของคุณและสามารถดูโทเค็นของคุณ: คำตอบสำหรับคำถามของคุณคือใช่ผู้โจมตีจะสามารถใช้โทเค็นนั้นเพื่อเลียนแบบคุณและส่งคำขอไปยังเซิร์ฟเวอร์ของคุณ
ตอนนี้นี่คือที่มาของโปรโตคอล
JWT เป็นเพียงหนึ่งมาตรฐานสำหรับโทเค็นการตรวจสอบความถูกต้อง พวกเขาสามารถใช้เพื่ออะไรสวยมาก เหตุผลที่เจดับบลิวทีเอนั้นเจ๋งมากก็คือคุณสามารถฝังข้อมูลเพิ่มเติมลงไปในนั้นได้และคุณสามารถตรวจสอบได้ว่าไม่มีใครมายุ่งกับมัน (ลงชื่อ)
อย่างไรก็ตามเจดับบลิวทีเองไม่มีส่วนเกี่ยวข้องกับ 'ความปลอดภัย' สำหรับทุกเจตนาและวัตถุประสงค์ JWT นั้นเหมือนกับคีย์ API มากขึ้นหรือน้อยลง: เพียงแค่สตริงสุ่มที่คุณใช้ตรวจสอบสิทธิ์กับเซิร์ฟเวอร์บางแห่ง
สิ่งที่ทำให้คำถามของคุณน่าสนใจยิ่งขึ้นคือโปรโตคอลที่ใช้งานอยู่
วิธีการทำงานของ OAuth2 ก็คือมันได้รับการออกแบบมาเพื่อให้ลูกค้าโทเค็นชั่วคราว (เช่น JWTs!) สำหรับการตรวจสอบสิทธิ์สำหรับระยะเวลาสั้น ๆ เท่านั้น!
แนวคิดคือถ้าโทเค็นของคุณถูกขโมยผู้โจมตีสามารถใช้งานได้เพียงช่วงเวลาสั้น ๆ
ด้วย OAuth2 คุณต้องรับรองความถูกต้องของตัวคุณเองกับเซิร์ฟเวอร์อีกครั้งโดยการระบุชื่อผู้ใช้ / รหัสผ่านหรือข้อมูลรับรอง API ของคุณจากนั้นรับโทเค็นกลับมาเพื่อแลกเปลี่ยน
เนื่องจากกระบวนการนี้เกิดขึ้นทุก ๆ เวลาโทเค็นของคุณจะเปลี่ยนแปลงบ่อยครั้งทำให้ผู้โจมตีทำการแอบอ้างเป็นคุณอย่างต่อเนื่องโดยไม่มีปัญหา
หวังว่านี่จะช่วยได้ ^^