การผูกโทเค็น
Token Bindingเป็นมาตรฐานที่เสนอสำหรับการขยายTransport Layer Security (TLS) ซึ่งมีจุดมุ่งหมายเพื่อเพิ่มความปลอดภัยของ TLS โดยใช้ใบรับรองการเข้ารหัสลับที่ปลายทั้งสองด้านของการเชื่อมต่อ TLS การปฏิบัติในปัจจุบันมักขึ้นอยู่กับโทเค็น Bearer [ 1 ]ซึ่งอาจสูญหายหรือถูกขโมยได้ โทเค็น Bearer ยังมีความเสี่ยงต่อการโจมตีแบบ man-in-the-middleหรือการโจมตีแบบ replayอีกด้วย ในทางตรงกันข้าม โทเค็นที่ผูกไว้จะถูกสร้างขึ้นโดยตัวแทนผู้ใช้ที่สร้างคู่คีย์ส่วนตัวและคีย์สาธารณะต่อเซิร์ฟเวอร์เป้าหมาย โดยให้คีย์สาธารณะแก่เซิร์ฟเวอร์ และหลังจากนั้นพิสูจน์การครอบครองคีย์ส่วนตัวที่เกี่ยวข้องในการเชื่อมต่อ TLS ทุกครั้งไปยังเซิร์ฟเวอร์
Token Binding คือวิวัฒนาการของ ส่วนขยาย Transport Layer Security Channel ID (เดิมเรียกว่า Transport Layer Security – Origin Bound Certificates (TLS-OBC))
การมีส่วนร่วม ของอุตสาหกรรมแพร่หลาย โดยมีผู้มีส่วนร่วมในการกำหนดมาตรฐาน ได้แก่Microsoft [ 2 ] Google [ 3 ] PayPal , Ping Identity และ Yubico อย่างไรก็ตามการสนับสนุนเบราว์ เซอร์ยังคงมีจำกัด มีเพียง Microsoft Edgeเวอร์ชันเก่าที่ใช้เอนจิน Blink เท่านั้นที่รองรับ Token Binding [ 4 ] Chromiumได้ลบการสนับสนุน Token Binding ในเวอร์ชัน 70 [ 5 ]
มาตรฐาน IETF
เอกสาร RFCและInternet Draftsกลุ่มต่อไปนี้ของIETF ประกอบด้วยชุดข้อกำหนดที่เกี่ยวโยงกันสำหรับการใช้งานในด้านต่างๆ ของมาตรฐาน Token Binding
- โปรโตคอลการผูกโทเค็นเวอร์ชัน 1.0 [ 6 ] อนุญาตให้แอปพลิเคชันไคลเอ็นต์/เซิร์ฟเวอร์สร้างการผูก TLS ที่มีอายุการใช้งานยาวนานและระบุตัวตนได้เฉพาะตัว ซึ่งครอบคลุมเซสชันและการเชื่อมต่อ TLS หลายรายการ จากนั้นแอปพลิเคชันจะสามารถผูกโทเค็นความปลอดภัยทางคริปโตกราฟีกับเลเยอร์ TLS เพื่อป้องกันการส่งออกโทเค็นและการโจมตีแบบเล่นซ้ำ เพื่อปกป้องความเป็นส่วนตัว ตัวระบุการผูกโทเค็นจะถูกส่งผ่าน TLS เท่านั้น และผู้ใช้สามารถรีเซ็ตได้ตลอดเวลา
- ส่วนขยาย Transport Layer Security (TLS) สำหรับการเจรจาโปรโตคอลการผูกโทเค็น [ 7 ] ส่วนขยายสำหรับการเจรจาเวอร์ชันโปรโตคอลการผูกโทเค็นและพารามิเตอร์คีย์
- การผูกโทเค็นผ่าน HTTP [ 8 ] ชุดของกลไกที่อนุญาตให้เซิร์ฟเวอร์ HTTP ผูกโทเค็นความปลอดภัยทางคริปโตกราฟี (เช่น คุกกี้และโทเค็น OAuth) กับการเชื่อมต่อ TLS
- การผูกโทเค็นสำหรับการเชื่อมต่อ Transport Layer Security (TLS) เวอร์ชัน 1.3 [ 9 ] เอกสารประกอบนี้กำหนดวิธีการเจรจาการผูกโทเค็นที่เข้ากันได้กับเวอร์ชันก่อนหน้าบน การเชื่อมต่อ TLS 1.3
- การผูกโทเค็น HTTPS กับพร็อกซีแบบย้อนกลับที่ ยุติTLS [ 10 ]กำหนด ฟิลด์ ส่วนหัว HTTP ที่ทำให้ พร็อกซีแบบย้อนกลับที่ยุติ TLS สามารถส่งข้อมูลไปยังเซิร์ฟเวอร์แบ็กเอนด์เกี่ยวกับข้อความการผูกโทเค็นที่ได้รับการตรวจสอบแล้วซึ่งได้รับจากไคลเอ็นต์ ซึ่งทำให้เซิร์ฟเวอร์แบ็กเอนด์สามารถผูกหรือตรวจสอบการผูกคุกกี้และโทเค็นความปลอดภัยอื่นๆ กับคีย์การผูกโทเค็นของไคลเอ็นต์ได้ สิ่งนี้ช่วยให้พร็อกซีแบบย้อนกลับและเซิร์ฟเวอร์แบ็กเอนด์ทำงานร่วมกันได้ราวกับว่าเป็นการใช้งานฝั่งเซิร์ฟเวอร์เชิงตรรกะเดียวของการผูกโทเค็น HTTPS
ร่างมาตรฐาน IETF ที่เกี่ยวข้อง:
- การ ผูกโทเค็น OAuth 2.0 [ 11 ]ช่วยให้การใช้งาน OAuth 2.0 สามารถใช้การผูกโทเค็นกับโทเค็นการเข้าถึง รหัสการอนุญาต โทเค็นรีเฟรช การให้สิทธิ์การอนุญาต JWT และการตรวจสอบสิทธิ์ไคลเอ็นต์ JWT ได้ การผูกโทเค็นเหล่านี้จะเชื่อมโยงกับคู่คีย์การผูกโทเค็นของไคลเอ็นต์ด้วยวิธีการเข้ารหัสลับ ซึ่งการครอบครองคีย์นี้ได้รับการพิสูจน์แล้วในการเชื่อมต่อ TLS ที่โทเค็นเหล่านี้ตั้งใจจะใช้ การใช้การผูกโทเค็นนี้จะปกป้องโทเค็นเหล่านี้จากการโจมตีแบบคนกลางและการส่งออกโทเค็นและการโจมตีแบบเล่นซ้ำ
มาตรฐานที่เกี่ยวข้อง
การใช้ TLS Token Binding ช่วยให้การตรวจสอบสิทธิ์บนเว็บมีความแข็งแกร่งยิ่งขึ้น มาตรฐานการตรวจสอบสิทธิ์บนเว็บหลายมาตรฐานที่พัฒนาโดยองค์กรมาตรฐานภายนอก IETF กำลังนำมาตรฐานฉบับร่างนี้ไปใช้
- ร่างOpenID Connect Token Bound Authentication 1.0 [ 12 ] OpenID Connect (OIDC) เป็นเลเยอร์ข้อมูลประจำตัวที่เรียบง่ายบน โปรโตคอล OAuth 2.0 OIDC ช่วยให้ไคลเอ็นต์สามารถตรวจสอบข้อมูลประจำตัวของผู้ใช้ปลายทางโดยอิงจากการตรวจสอบสิทธิ์ที่ดำเนินการโดยเซิร์ฟเวอร์การอนุญาต ตลอดจนรับข้อมูลโปรไฟล์พื้นฐานเกี่ยวกับผู้ใช้ปลายทางในลักษณะที่ทำงานร่วมกันได้แบบ REST ข้อกำหนด OIDC Token Bound Authentication ช่วยให้การใช้งาน OIDC สามารถใช้ Token Binding กับ OIDC ID Token ได้ ซึ่งจะผูก ID Token เข้ากับการเชื่อมต่อ TLS ที่ใช้ในการตรวจสอบสิทธิ์ด้วยวิธีการเข้ารหัสลับ การใช้ Token Binding นี้ช่วยปกป้องกระบวนการตรวจสอบสิทธิ์จากการโจมตีแบบ man-in-the-middle และการโจมตีแบบส่งออกและเล่นซ้ำโทเค็น
- คำแนะนำของ W3Cสำหรับการตรวจสอบสิทธิ์เว็บ: API สำหรับการเข้าถึงข้อมูลประจำตัวคีย์สาธารณะ [ 13 ] การตรวจสอบสิทธิ์เว็บ ( WebAuthn ) ซึ่งเป็นอินเทอร์เฟซสำหรับการตรวจสอบสิทธิ์คีย์สาธารณะของผู้ใช้กับแอปพลิเคชันและบริการบนเว็บ ได้ลบการสนับสนุนการผูกโทเค็นในเวอร์ชัน L3 [ 14 ]
ลิงก์ภายนอก
- การผูกโทเค็นที่ BrowserAuth.net
- การนำเสนอเรื่องการผูกโทเค็น (Token Binding) ในงาน Identiverse 2018
- Klingenstein, Nate; Scavo, Tom (10 สิงหาคม 2553). "โปรไฟล์ SSO ของเว็บเบราว์เซอร์ผู้ถือคีย์ SAML V2.0" . OASIS . สืบค้นเมื่อ23 สิงหาคม 2561 .
- บล็อกเกี่ยวกับการผูกโทเค็น OAuth 2.0