Cryptology Academy · บทเรียน

การพิสูจน์ตัวตนแบบไร้รหัสผ่าน: WebAuthn และ FIDO2

สำรวจมาตรฐาน WebAuthn ของ W3C และพาสคีย์ FIDO2 ในฐานะอนาคตของการพิสูจน์ตัวตน

บทเรียน 4 จาก 413 ขั้นตอน

การพิสูจน์ตัวตนแบบไร้รหัสผ่าน: WebAuthn และ FIDO2 เป็นบทเรียน Cryptology Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cryptology Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน

สถาปัตยกรรม FIDO2

FIDO2 เป็นคำเรียกรวมสำหรับข้อกำหนด Web Authentication ของ W3C (WebAuthn) ซึ่งใช้ร่วมกับโพรโทคอลระหว่างไคลเอ็นต์กับตัวตรวจสอบสิทธิ์ 2 (CTAP2) ของ FIDO Alliance ทั้งสองส่วนนี้ร่วมกันกำหนดระบบยืนยันตัวตนแบบไม่ใช้รหัสผ่านอย่างครบถ้วน โดยใช้การเข้ารหัสด้วยกุญแจสาธารณะที่ผูกกับต้นทางของฝ่ายที่พึ่งพา

ประเภทของอุปกรณ์ยืนยันตัวตน

FIDO2 รองรับอุปกรณ์ยืนยันตัวตนสองประเภท อุปกรณ์ยืนยันตัวตนบนแพลตฟอร์มติดตั้งอยู่ภายในอุปกรณ์ เช่น Touch ID และ Face ID บนอุปกรณ์ Apple และ Windows Hello บน Windows ส่วนอุปกรณ์ยืนยันตัวตนแบบพกพาเป็นโทเค็นฮาร์ดแวร์ภายนอก เช่น YubiKey, Google Titan Key และคีย์ Feitian ทั้งหมดใช้การเข้ารหัสด้วยกุญแจสาธารณะและสร้างคำแถลงการรับรอง

การลงทะเบียน: การสร้างข้อมูลรับรอง

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

การยืนยันตัวตน: การยืนยันข้อมูลรับรอง

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

การผูกกับต้นทางช่วยป้องกันฟิชชิง

รหัสฝ่ายที่พึ่งพาในการยืนยันข้อมูลรับรองของ WebAuthn ถูกผูกกับต้นทาง (โดเมน) ของหน้าที่ร้องขอด้วยกลไกการเข้ารหัส อุปกรณ์ยืนยันตัวตนจะปฏิเสธการลงลายเซ็นการยืนยันข้อมูลรับรองสำหรับต้นทางที่แตกต่างจากต้นทางที่ลงทะเบียนไว้ การออกแบบเช่นนี้ทำให้ WebAuthn ทนทานต่อฟิชชิงโดยพื้นฐาน เว็บไซต์ฟิชชิงปลอมจึงไม่สามารถดำเนินการยืนยันตัวตนให้เสร็จสมบูรณ์ได้

กุญแจประจำอุปกรณ์และการไม่ใช้รหัสผ่านอย่างแท้จริง

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

การตรวจสอบผู้ใช้เทียบกับการแสดงตนของผู้ใช้

WebAuthn แยกความแตกต่างระหว่างการตรวจสอบผู้ใช้ (UV) กับการแสดงตนของผู้ใช้ (UP) การแสดงตนของผู้ใช้กำหนดเพียงให้ผู้ใช้แตะหรือสัมผัสอุปกรณ์ยืนยันตัวตน ส่วนการตรวจสอบผู้ใช้ยังกำหนดให้ตรวจสอบด้วย PIN หรือข้อมูลชีวมิติ เพื่อพิสูจน์ว่าบุคคลนั้นอยู่ตรงหน้า การใช้งานที่มีความปลอดภัยสูงควรกำหนดให้ใช้ UV ในการยืนยันตัวตน

โพรโทคอล CTAP2

CTAP2 กำหนดโพรโทคอลระหว่างไคลเอ็นต์ (เบราว์เซอร์หรือ OS) กับอุปกรณ์ยืนยันตัวตนแบบพกพาภายนอกผ่าน USB, NFC หรือ BLE โดยระบุคำสั่งสำหรับการสร้างข้อมูลรับรอง การสร้างการยืนยันข้อมูลรับรอง และการจัดการอุปกรณ์ยืนยันตัวตน CTAP2.1 เพิ่มความสามารถต่าง ๆ เช่น การจัดการข้อมูลรับรองและนโยบายบังคับใช้ UV เสมอ

พาสคีย์: ข้อมูลรับรองที่ซิงโครไนซ์

พาสคีย์คือข้อมูลรับรอง WebAuthn แบบค้นหาได้ ซึ่งซิงโครไนซ์ข้ามอุปกรณ์ของผู้ใช้ผ่านระบบคลาวด์เข้ารหัสของผู้จำหน่ายแพลตฟอร์ม เช่น พวงกุญแจ iCloud ของ Apple, ตัวจัดการรหัสผ่านของ Google และ Windows Hello สำหรับธุรกิจ พาสคีย์ช่วยให้ยืนยันตัวตนโดยไม่ใช้รหัสผ่านและใช้งานข้ามอุปกรณ์ได้ โดยผสานความปลอดภัยเข้ากับความสะดวกที่ผู้ใช้คาดหวังจากรหัสผ่าน

ขั้นตอนการใช้งานพาสคีย์

ขั้นตอนการยืนยันตัวตนด้วยพาสคีย์โดยทั่วไปมีดังนี้ ผู้ใช้ไปยังเว็บไซต์และคลิก "เข้าสู่ระบบด้วยพาสคีย์" เบราว์เซอร์จะแสดงพาสคีย์ที่มีให้ใช้สำหรับเว็บไซต์นั้น ผู้ใช้ยืนยันตัวตนด้วยข้อมูลชีวมิติ (Face ID, Touch ID หรือ Windows Hello) เบราว์เซอร์จะลงลายเซ็นคำท้าทายและส่งการยืนยันข้อมูลรับรอง กระบวนการทั้งหมดใช้เวลาเพียงไม่กี่วินาทีโดยไม่ต้องป้อนรหัสผ่าน

เปรียบเทียบ WebAuthn กับการยืนยันตัวตนแบบดั้งเดิม

รหัสผ่านแบบดั้งเดิม: ถูกหลอกเอาได้ นำกลับมาใช้ซ้ำได้ และอาจถูกถอดรหัสจากการรั่วไหลของฐานข้อมูล รหัส OTP (TOTP): ถูกหลอกเอาได้แบบเรียลไทม์ รหัส SMS: เสี่ยงต่อการสับเปลี่ยน SIM และถูกหลอกเอาได้ WebAuthn/พาสคีย์: ทนทานต่อฟิชชิงด้วยการผูกกับต้นทาง ไม่มีข้อมูลลับฝั่งเซิร์ฟเวอร์ให้ขโมย ใช้แยกกันในแต่ละเว็บไซต์ และมีกุญแจส่วนตัวที่ฮาร์ดแวร์ป้องกันไว้ WebAuthn เป็นกลไกการยืนยันตัวตนที่แข็งแกร่งที่สุดซึ่งมีการใช้งานอย่างแพร่หลายในปัจจุบัน

ตรวจสอบ WebAuthn เทียบกับรหัสผ่าน

คุณสมบัติใดของ WebAuthn ที่ทำให้ทนทานต่อการโจมตีแบบฟิชชิงโดยพื้นฐาน แตกต่างจากรหัสผ่านหรือรหัส TOTP

สรุปบทเรียน: FIDO2 และ WebAuthn

FIDO2 ผสาน WebAuthn (W3C) และ CTAP2 (FIDO Alliance) เพื่อให้ยืนยันตัวตนโดยไม่ใช้รหัสผ่านและทนทานต่อฟิชชิง อุปกรณ์ยืนยันตัวตนบนแพลตฟอร์ม (Touch ID, Face ID) และอุปกรณ์ยืนยันตัวตนแบบพกพา (YubiKey) ใช้การเข้ารหัสด้วยกุญแจสาธารณะที่ผูกกับต้นทางของฝ่ายที่พึ่งพา พาสคีย์ต่อยอดความสามารถนี้ด้วยการซิงโครไนซ์ข้ามอุปกรณ์ WebAuthn มอบความปลอดภัยในการยืนยันตัวตนที่แข็งแกร่งที่สุดและพร้อมใช้งานอย่างแพร่หลายในปัจจุบัน

เริ่มต้นได้ฟรี

เรียนรู้ Cryptology Academy ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
67
บทเรียน
261

คำถามที่พบบ่อย

บทเรียน “การพิสูจน์ตัวตนแบบไร้รหัสผ่าน: WebAuthn และ FIDO2” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การพิสูจน์ตัวตนแบบไร้รหัสผ่าน: WebAuthn และ FIDO2” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cryptology Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การพิสูจน์ตัวตนแบบไร้รหัสผ่าน: WebAuthn และ FIDO2”

สำรวจมาตรฐาน WebAuthn ของ W3C และพาสคีย์ FIDO2 ในฐานะอนาคตของการพิสูจน์ตัวตน คุณปฏิบัติ Cryptology Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cryptology Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cryptology Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “การพิสูจน์ตัวตนแบบไร้รหัสผ่าน: WebAuthn และ FIDO2” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Cryptology Academy นี้ได้ไหม

ได้ บทเรียน Cryptology Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ปัญหาพื้นฐานของการพิสูจน์ตัวตนด้วยรหัสผ่าน
  2. SRP: โพรโทคอลรหัสผ่านระยะไกลที่ปลอดภัย
  3. โพรโทคอล PAKE และคุณสมบัติของโพรโทคอล
  4. การพิสูจน์ตัวตนแบบไร้รหัสผ่าน: WebAuthn และ FIDO2
← กลับไปที่ Cryptology Academy