เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ · ตัวถอดรหัส JWT
JWT ทางเลือกอื่นที่เปรียบเทียบ: PASETO, บิสกิต, มาการอง และโทเค็นทึบแสง
· พื้นหลัง
jwt การรับรองความถูกต้อง สถาปัตยกรรม
ความยืดหยุ่นของ JWT ต้นตอของปัญหาด้านความปลอดภัยส่วนใหญ่ และมีหลายรูปแบบที่ออกแบบมาเพื่อลบออก โพสต์นี้เปรียบเทียบ PASETO, บิสกิต, มาการูน และโทเค็นทึบแสงธรรมดากับ JWT ในเรื่องความปลอดภัยและการทำงานร่วมกัน
ความสามารถในการยืดหยุ่น — ความคล่องตัวของอัลกอริทึมของ JWT และการอ้างสิทธิ์แบบเลือกได้ทำให้เกิดข้อบกพร่องได้อย่างไร
JWT เปิดเผยส่วนหัวที่ยืดหยุ่นและการอ้างสิทธิ์ที่เป็นทางเลือก ซึ่งอาจกลายเป็นส่วนเสริมได้เมื่อแอปพลิเคชันถือว่าอินพุตโทเค็นเป็นนโยบายตัวตรวจสอบ การตอบสนองที่ถูกต้องไม่ใช่รูปแบบอื่นโดยอัตโนมัติ ขั้นแรกให้ระบุว่าตัวเลือกใดที่เป็นไปไม่ได้ ฝ่ายใดต้องการการตัดสินใจแบบออฟไลน์ และสถานะการเพิกถอนหรือการมอบอำนาจอยู่ที่ใด
ToolAcre แสดงคุณสมบัติ JWT แบบแคบหนึ่งรายการ: เพย์โหลดที่เซ็นชื่อสามส่วนสามารถอ่านได้โดยไม่ต้องมีการตรวจสอบยืนยัน ไม่สามารถเปรียบเทียบทางเลือกอื่นหรือรับรองห้องสมุดของตนได้ การเปรียบเทียบนี้จึงกำหนดกรอบคำถามทางสถาปัตยกรรม และละเว้นประสิทธิภาพที่ไม่ได้รับการตรวจสอบ การนำไปใช้ และการอ้างสิทธิ์ตามกำหนด
PASETO ได้รับการออกแบบโดยใช้ตัวเลือกโปรโตคอลที่มีเวอร์ชัน รายละเอียดการสนับสนุนเป็นของการดำเนินการ
โดยทั่วไปแล้ว PASETO จะถูกนำเสนอเป็นตระกูลโปรโตคอลที่มีเวอร์ชันซึ่งจำกัดตัวเลือกการเข้ารหัสให้แคบลง แทนที่จะใช้ส่วนหัว `alg` ที่มีรูปแบบอิสระ ทิศทางการออกแบบดังกล่าวสามารถลดข้อผิดพลาดในการเลือกอัลกอริทึมได้ แต่เวอร์ชัน วัตถุประสงค์ และลักษณะการทำงานของไลบรารีที่แน่นอนต้องได้รับการยืนยันในการใช้งานที่คุณต้องการปรับใช้
ตัวถอดรหัส JWT ไม่สามารถอ่านหรือตรวจสอบ PASETO ได้ การเลือกจะเปลี่ยนแปลงสมมติฐานด้านเครื่องมือ ความสามารถในการทำงานร่วมกัน และการจัดการคีย์ ประเมินว่าโปรโตคอลที่มีข้อจำกัดตรงกับสภาพแวดล้อมของผู้ออกและผู้บริโภคของคุณหรือไม่ แทนที่จะถือว่า “ไม่มีส่วนหัว alg” เสมือนเป็นหลักฐานด้านความปลอดภัยที่สมบูรณ์
บิสกิตมุ่งเป้าไปที่การอนุญาตแบบลดทอนได้ พื้นที่เก็บข้อมูลนี้ไม่ตรวจสอบชุดคุณลักษณะของตน
บิสกิตเกี่ยวข้องกับการอนุญาตแบบลดทอนและตรรกะที่นำโทเค็น ที่สามารถให้บริการโมเดลการมอบหมายที่แตกต่างจากออบเจ็กต์การอ้างสิทธิ์ JWT แบบแฟลต พื้นที่เก็บข้อมูลไม่มีตัวแยกวิเคราะห์ Biscuit ตัวตรวจสอบ หรือการทดสอบ ดังนั้นบทความนี้จึงไม่ยืนยันไวยากรณ์โดยละเอียด การสนับสนุนการเข้ารหัส หรือค่าเริ่มต้นในการปฏิบัติงาน
สอบถามว่าผู้ถือปลายน้ำจำเป็นต้องเพิ่มข้อจำกัดโดยไม่ได้รับอำนาจในวงกว้างหรือไม่ มีการประเมินนโยบายอย่างไร และมีการแจกจ่ายกุญแจอย่างไร จากนั้นทดสอบการใช้งานที่เลือก ตารางการอ้างสิทธิ์ JWT ของ ToolAcre ไม่มีการประเมินที่เทียบเท่ากัน และไม่ควรใช้เพื่อเปรียบเทียบความถูกต้องของคุณลักษณะ
มาการูนใช้การมอบหมายแบบเน้นคำเตือน การรับประกันการใช้งานอยู่นอกพื้นที่เก็บข้อมูลนี้
Macaroons ใช้คำเตือนเป็นแบบจำลองการมอบหมายและโดยทั่วไปจะอธิบายด้วยการรับรองความถูกต้องแบบลูกโซ่ พวกเขากล่าวถึงรูปแบบอำนาจที่แตกต่างจากเพียงแค่การวางบทบาทหรือขอบเขตใน JWT ขอย้ำอีกครั้งว่าการรับประกันที่แน่นอนและกฎการประมวลผลข้อแม้เป็นของการใช้งานและเอกสารโปรโตคอลที่เลือก
คำถามทางสถาปัตยกรรมคือข้อจำกัดที่ได้รับมอบหมายนั้นเป็นข้อกำหนดระดับเฟิร์สคลาสหรือไม่ หากไม่เป็นเช่นนั้น การนำโทเค็นพิเศษมาใช้อาจเพิ่มความซับซ้อนโดยไม่เกิดประโยชน์ หากเป็นเช่นนั้น ให้ตรวจสอบโมเดลและปล่อยการพึ่งพาอย่างชัดเจน แทนที่จะทำให้เป็นหน้าจอถอดรหัส
โทเค็นทึบแสงที่มีการวิปัสสนา — ไม่มีรูปแบบใดๆ เลย มีค่าใช้จ่ายแบบไปกลับ
โทเค็นทึบแสงไม่เปิดเผยโครงสร้างการอ้างสิทธิ์ที่ไคลเอ็นต์สามารถอ่านได้จากการออกแบบ เซิร์ฟเวอร์ทรัพยากรอาจปรึกษาผู้ออกหรือบริการวิปัสสนาเพื่อเรียนรู้สถานะปัจจุบันและการอนุญาต การไปกลับนั้นเพิ่มความพร้อมใช้งานและการอ้างอิงเวลาแฝง ในขณะเดียวกันก็คืนค่าจุดตัดสินใจกลางที่เป็นประโยชน์สำหรับการเพิกถอนและการเปลี่ยนแปลงนโยบาย
ค่าทึบแสงไม่ปลอดภัยในการเข้าสู่ระบบหรือวางในเว็บไซต์ มันอาจยังคงเป็นหนังสือรับรองผู้ถือ ToolAcre ควรปฏิเสธเนื่องจากอินพุต JWT มีรูปแบบไม่ถูกต้อง แทนที่จะคาดเดาเนื้อหา ใช้วิปัสสนาที่ควบคุมโดยผู้ออกจากโครงสร้างพื้นฐานที่เชื่อถือได้ ไม่ใช่การถอดรหัสสาธารณะ
ที่ JWT ยังคงชนะ — การทำงานร่วมกันกับผู้ให้บริการข้อมูลประจำตัวและระบบนิเวศ OpenID Connect
JWT ยังคงน่าดึงดูดเมื่อผู้ให้บริการข้อมูลประจำตัว ไคลเอนต์ และเซิร์ฟเวอร์ทรัพยากรที่มีอยู่แบ่งปันระบบนิเวศและโปรไฟล์ของตนแล้ว ความสามารถในการทำงานร่วมกันมีมากกว่าประโยชน์ของชุดข้อจำกัดสีเขียวที่สะอาดกว่า ข้อได้เปรียบนั้นยังคงขึ้นอยู่กับอัลกอริธึมที่มีระเบียบวินัย คีย์ ผู้ออก ผู้ชม และการบังคับใช้ประเภทโทเค็น
เพย์โหลดที่อ่านได้ยังรองรับการดีบัก แม้ว่าความสะดวกดังกล่าวจะเพิ่มความเสี่ยงในการเปิดเผยข้อมูลก็ตาม ToolAcre ช่วยในการตรวจสอบแต่จงใจปฏิเสธการยืนยัน องค์กรที่เลือก JWT ควรจัดงบประมาณสำหรับการกำหนดค่าตัวตรวจสอบและการทดสอบเชิงลบ แทนที่จะจ้างความไว้วางใจจากภายนอกไปยังเครื่องมือที่คุ้นเคย
สิ่งนี้ไม่ครอบคลุม — ประสิทธิภาพและความพร้อมของไลบรารีในแต่ละภาษา ซึ่งเปลี่ยนแปลงเร็วเกินกว่าจะระบุได้
การเปรียบเทียบนี้ละเว้นการจัดอันดับประสิทธิภาพและความสมบูรณ์ของภาษา-ไลบรารี เนื่องจากข้อเท็จจริงเหล่านั้นเปลี่ยนแปลงและไม่ได้ถูกกำหนดโดยหลักฐานที่เก็บข้อมูล นอกจากนี้ยังหลีกเลี่ยงการอ้างว่าทางเลือกอื่นๆ จะช่วยแก้ปัญหาการจัดเก็บคีย์ การโจรกรรมข้อมูลประจำตัว การสร้างแบบจำลองการอนุญาต หรือการตรวจสอบการปฏิบัติงานโดยอัตโนมัติ
ประเมินห้องสมุดปัจจุบันในภาษาเป้าหมาย แนวทางปฏิบัติในการบำรุงรักษา โปรไฟล์ การตอบสนองต่อเหตุการณ์ และข้อจำกัดในการบูรณาการ สร้างต้นแบบเส้นทางการยอมรับและการปฏิเสธที่สำคัญต่อโมเดลภัยคุกคามของคุณ ชื่อรูปแบบไม่สามารถใช้แทนหลักฐานที่ปฏิบัติการได้
สิ่งสำคัญ: เลือกข้อจำกัดที่คุณต้องการ — หากคุณไปที่ JWT ตัวถอดรหัส ToolAcre JWT จะเป็นเครื่องมือตรวจสอบ ทางเลือกอื่นจำเป็นต้องมีของตัวเอง
เลือกข้อจำกัดที่คุณต้องการ หากความคล่องตัวของอัลกอริทึมไม่จำเป็น ให้เลือกการออกแบบที่ทำให้ตัวเลือกที่ไม่ต้องการทำได้ยาก หากจำเป็นต้องเพิกถอนส่วนกลาง ให้รวมรัฐด้วย ถ้าการลดทอนเป็นศูนย์กลาง ให้ประเมินระบบที่เน้นการมอบหมาย หากความเข้ากันได้ของระบบนิเวศมีอิทธิพลเหนือ ให้จำกัด JWT อย่างเคร่งครัด
ToolAcre เป็นเพียงเครื่องมือตรวจสอบสำหรับสาขา JWT มันไม่ได้ถอดรหัสทางเลือกอื่นหรือพิสูจน์ว่า JWT น่าเชื่อถือ ไม่ว่าการออกแบบใดจะชนะ การยอมรับข้อมูลประจำตัวจะต้องเกิดขึ้นในซอฟต์แวร์ที่เชื่อถือได้ซึ่งมีนโยบายที่ชัดเจนและพฤติกรรมความล้มเหลวที่ผ่านการทดสอบแล้ว