มาตรฐาน · FIDO CTAP 2.2 hybrid (passkey QR)

ควรสแกน QR การลงชื่อเข้าใช้ passkey นี้หรือไม่?

เฉพาะเมื่อ คุณ เพิ่งเริ่มการลงชื่อเข้าใช้ passkey บนอุปกรณ์ที่แสดง QR หากคนอื่นสร้าง QR ไม่ว่าจะเป็นคนแปลกหน้า เพื่อน หรือ "ฝ่ายสนับสนุนด้านเทคนิค" อย่าสแกน

ตรวจสอบ QR passkey → มาตรฐานทั้งหมด →

การลงชื่อเข้าใช้ passkey ข้ามอุปกรณ์ทำงานอย่างไร

passkey คือข้อมูลรับรองตัวตน ซึ่งเป็นคู่กุญแจสาธารณะ/ส่วนตัว ที่ผูกกับอุปกรณ์ใดอุปกรณ์หนึ่งของคุณ หากคุณลงทะเบียน passkey สำหรับ example.com บนโทรศัพท์ของคุณ มีเพียงโทรศัพท์ของคุณเท่านั้นที่สามารถลงนาม login challenge สำหรับ example.com ได้

นั่นใช้ได้ดีเมื่อคุณลงชื่อเข้าใช้บนโทรศัพท์ แต่เกิดอะไรขึ้นเมื่อคุณลงชื่อเข้าใช้บนแล็ปท็อปที่ไม่มี passkey? คุณมีสามตัวเลือก:

  1. พิมพ์รหัสผ่าน ซึ่งทำลายจุดประสงค์ทั้งหมดของ passkey
  2. ลงทะเบียน passkey ใหม่บนแล็ปท็อป ไม่เป็นไร แต่เฉพาะเมื่อคุณเชื่อถือแล็ปท็อปนี้ในระยะยาว
  3. ใช้ passkey บนโทรศัพท์ผ่านการขนส่งข้ามอุปกรณ์ แล็ปท็อปแสดง QR โทรศัพท์ของคุณสแกน แล้วโทรศัพท์ดำเนินการรับรองตัวตน

ตัวเลือกที่ 3 คือสิ่งที่ FIDO CTAP 2.2 "hybrid" กำหนดไว้ QR คือการบูตสแตรป มีข้อมูลเพียงพอสำหรับโทรศัพท์ของคุณที่จะสร้างอุโมงค์ที่เข้ารหัสไปยังแล็ปท็อปและยืนยันการลงชื่อเข้าใช้

ข้อมูลอะไรอยู่ใน QR

URI มีลักษณะดังนี้:

FIDO:/0123456789012345678901234567890123456789...

ตัวเลขฐาน 10 คือการเข้ารหัส base10 ของ CBOR map หลังจากถอดรหัส base10 + แยกวิเคราะห์ CBOR แล้ว map จะมีคีย์จำนวนเต็ม:

คีย์ 0, กุญแจสาธารณะ peer

ไบต์กุญแจสาธารณะ X9.62 แบบไม่บีบอัด (33 ไบต์สำหรับ P-256) โทรศัพท์ใช้สิ่งนี้เพื่อสร้างอุโมงค์ที่เข้ารหัส

คีย์ 1, ความลับ QR / nonce อุโมงค์

ข้อมูลสุ่ม 10 ไบต์ ระบุ QR นี้โดยเฉพาะ การโฆษณา BLE ส่งกระจาย hash ของมันเพื่อให้โทรศัพท์ค้นพบเซสชัน

คีย์ 2, คำแนะนำการดำเนินการ

0 = make-credential (ลงทะเบียน passkey ใหม่), 1 = get-assertion (ลงชื่อเข้าใช้), 2 = discoverable-credential

คีย์ 3, โดเมนเซิร์ฟเวอร์อุโมงค์

โฮสต์ HTTPS ที่ทำหน้าที่เป็นตัวกลางอุโมงค์ระหว่างสองอุปกรณ์เมื่อ BLE โดยตรงไม่สามารถเข้าถึงได้ (เช่น ข้าม NAT) โดยปกติคือเซิร์ฟเวอร์ที่ดำเนินการโดยผู้จำหน่าย เช่น cable.ua5v.com (Google) หรือ cable.auth.com (Apple/MS)

คีย์ 4, เวลาประทับ

วินาทีนับจาก epoch เมื่อสร้าง QR ใช้เพื่อป้องกันการเล่นซ้ำ โทรศัพท์ปฏิเสธที่จะดำเนินการ QR ที่เก่ากว่าหนึ่งนาที

คีย์ 5, แฟล็ก state-assisted

บูลีน ระบุว่าแล็ปท็อปต้องการให้โทรศัพท์เข้าร่วมการรักษาสถานะแบบ passive หรือไม่

โมเดลภัยคุกคาม: ใครกด "ลงชื่อเข้าใช้ด้วย passkey" ก่อน?

โปรโตคอลนี้ปลอดภัยด้านการเข้ารหัส การตรวจสอบความใกล้ชิด Bluetooth นั้นจริงและจำกัดการโจมตีให้อยู่กับผู้ที่อยู่ใกล้ทางกายภาพ ปัญหาไม่ได้อยู่ที่โปรโตคอล

ผ่าน social engineering ที่ การเริ่มต้น ผู้โจมตีเริ่มการลงชื่อเข้าใช้ passkey สำหรับบัญชี ของคุณ บนแล็ปท็อป ของผู้โจมตี แล้วแสดง QR ให้คุณ

หากคุณสแกน โทรศัพท์ของคุณส่งลายเซ็น passkey กลับไปยัง เบราว์เซอร์แล็ปท็อปของผู้โจมตี เว็บไซต์ที่คุณเพิ่งรับรองความถูกต้องตอนนี้ให้ผู้โจมตีเข้าสู่ระบบ

โปรดทราบว่าการตรวจสอบระยะใกล้ไม่ช่วยได้ เพราะผู้โจมตีอยู่ใกล้ตัวจริงๆ เนื้อหา QR ไม่ช่วยได้ เพราะมีความถูกต้องทางการเข้ารหัส ปลายทาง login ไม่ช่วยได้ เพราะเป็นเว็บไซต์ที่ถูกต้องที่คุณมี passkey อยู่ สิ่งเดียวที่ช่วยได้คือการรับรู้สถานการณ์: คุณไม่ควรสแกน FIDO QR ที่คุณไม่ได้สร้างขึ้นเองโดยการคลิก "Sign in" บนอุปกรณ์ของคุณเอง

สิ่งที่เครื่องสแกนของเราแสดง

เมื่อคุณอัปโหลด FIDO QR เข้าเครื่องสแกนของเรา ผลแสดง:

คลาสภัยคุกคามมักเป็น suspicious เสมอ ไม่ใช่เพราะโปรโตคอลมีปัญหา แต่เพราะการตัดสินใจด้านความปลอดภัยขึ้นอยู่กับบริบทที่เซิร์ฟเวอร์ไม่มีทางรู้

เมื่อใดที่ปลอดภัย (และเมื่อใดที่ไม่)

ปลอดภัย: คุณนั่งอยู่ที่แล็ปท็อป เปิดเว็บไซต์ธนาคารหรืออีเมล คลิก "ลงชื่อเข้าใช้ด้วย passkey" และแล็ปท็อปแสดง QR ที่คุณสแกนด้วยโทรศัพท์เองทันที

ไม่ปลอดภัย: บุคคลอื่นนอกจากคุณเริ่มการลงชื่อเข้าใช้ ซึ่งรวมถึงบุคคลใดก็ตามทางโทรศัพท์ บุคคลใดก็ตามในหน้าจอที่แชร์ หรืออีเมล/เว็บไซต์ที่แสดง QR ให้คุณสแกน

หากคุณไม่แน่ใจว่า QR มาจากการลงชื่อเข้าใช้ที่ คุณ เริ่ม ให้ยกเลิกการลงชื่อเข้าใช้บนอุปกรณ์ต้นทาง (ปิดเบราว์เซอร์) แล้วเริ่มต้นใหม่

ที่เกี่ยวข้อง

ตรวจสอบ FIDO QR

อัปโหลดภาพหรือวาง FIDO: URI ผลแสดงการดำเนินการ เซิร์ฟเวอร์อุโมงค์ เวลาประทับ และคำเตือนชัดเจนให้ปฏิเสธ QR ที่ไม่ได้สร้างโดยคุณเอง

เปิดเครื่องสแกน →