Passkey คืออะไร และ WebAuthn เกี่ยวอย่างไร
Passkey คือข้อมูลยืนยันตัวตนที่ใช้แทนรหัสผ่าน ทำงานบนมาตรฐาน WebAuthn ของ W3C ร่วมกับข้อกำหนดของ FIDO Alliance เมื่อผู้ใช้สร้าง passkey อุปกรณ์จะสร้างกุญแจสองดอกเป็นคู่ คือ public key ที่เก็บไว้ที่เซิร์ฟเวอร์ของคุณ และ private key ที่อยู่ในอุปกรณ์ของผู้ใช้เท่านั้น
ตอนล็อกอิน เซิร์ฟเวอร์ส่งโจทย์สุ่มมาให้ อุปกรณ์เซ็นโจทย์ด้วย private key หลังจากผู้ใช้ปลดล็อกด้วยลายนิ้วมือ ใบหน้า หรือ PIN ของเครื่อง แล้วเซิร์ฟเวอร์ตรวจลายเซ็นด้วย public key จึงไม่มีความลับที่ใช้ร่วมกันส่งผ่านเครือข่ายเลย
ที่ผู้ใช้เห็นคือแค่ปลดล็อกเครื่องตามปกติ เหมือนตอนเปิดแอปธนาคาร ผู้ให้บริการอย่าง Apple, Google และ Microsoft ซิงก์ passkey ข้ามอุปกรณ์ในบัญชีเดียวกันได้ ผู้ใช้จึงไม่ต้องตั้งค่าใหม่ทุกครั้งที่เปลี่ยนเครื่อง
ทำไมถึงทนต่อ phishing
รหัสผ่านโดนหลอกได้เพราะผู้ใช้พิมพ์เองบนเว็บปลอมที่หน้าตาเหมือนจริง ส่วน passkey ผูกกับโดเมนที่สร้างไว้ เบราว์เซอร์จะไม่ยอมใช้ passkey ของ yourbank.co.th บนเว็บอย่าง yourbank-login.example ต่อให้ผู้ใช้ตั้งใจจะกดก็ตาม
นอกจากนั้นไม่มีรหัสผ่านเก็บอยู่ที่เซิร์ฟเวอร์ให้โดนขโมย ถ้าฐานข้อมูลรั่ว สิ่งที่ผู้โจมตีได้คือ public key ซึ่งเอาไปล็อกอินไม่ได้ และไม่มีรหัส OTP ทาง SMS ที่ถูกดักหรือหลอกถามได้ แต่ passkey ไม่ได้แก้ทุกอย่าง เช่น ถ้าเครื่องผู้ใช้ถูกควบคุมจากมัลแวร์ หรือกระบวนการกู้บัญชีของคุณอ่อน ผู้โจมตีก็ยังอ้อมเข้ามาได้

ขั้นตอนเปิดใช้ในแอปของคุณ
ไม่จำเป็นต้องเลิกใช้รหัสผ่านทันที วิธีที่ปลอดภัยคือเพิ่ม passkey เป็นตัวเลือกควบคู่ก่อน แล้วค่อยๆ ลดบทบาทของรหัสผ่านเมื่อผู้ใช้ส่วนใหญ่เปลี่ยนมาใช้แล้ว
ควรใช้ไลบรารี WebAuthn ที่มีคนดูแลอยู่แล้วทั้งฝั่งเซิร์ฟเวอร์และเบราว์เซอร์ แทนการเขียนการตรวจลายเซ็นเอง เพราะรายละเอียดเล็กน้อยผิดไปนิดเดียวก็เป็นช่องโหว่ได้ และเก็บ credential ID กับ public key แยกตามผู้ใช้ โดยให้ผู้ใช้หนึ่งคนมีได้หลาย passkey
- เลือกไลบรารีหรือผู้ให้บริการยืนยันตัวตนที่รองรับ WebAuthn และทดสอบบนมือถือและเบราว์เซอร์ที่ลูกค้าใช้จริง
- เพิ่มปุ่มสร้าง passkey หลังล็อกอินสำเร็จ เช่น หลังกรอกรหัสผ่านหรือยืนยันทางอีเมล
- รองรับ conditional UI ให้เบราว์เซอร์เสนอ passkey ในช่องกรอกอีเมลอัตโนมัติ
- ติดตามสัดส่วนผู้ใช้ที่ล็อกอินสำเร็จด้วย passkey และจุดที่ผู้ใช้เลิกกลางทาง
- เมื่อพร้อมแล้ว ค่อยเสนอให้ผู้ใช้ปิดการใช้รหัสผ่านของตัวเอง
ช่องทางสำรองและการกู้บัญชี
ผู้ใช้ทำเครื่องหาย เปลี่ยนมือถือ หรือใช้เครื่องที่ไม่รองรับ ได้เสมอ ถ้าไม่มีทางออกที่ปลอดภัย ฝ่ายซัพพอร์ตจะเต็มไปด้วยคนที่เข้าบัญชีไม่ได้ และปลายทางมักจบที่ช่องทางกู้บัญชีที่อ่อนที่สุด ซึ่งผู้โจมตีจะเลือกเข้าทางนั้น
แนวทางที่ใช้ได้คือให้ผู้ใช้ลงทะเบียน passkey มากกว่าหนึ่งอัน เก็บวิธีสำรอง เช่น ลิงก์ยืนยันทางอีเมลที่ทำให้ยาก หรือรหัสกู้คืนที่ให้ผู้ใช้เก็บเอง และกำหนดขั้นตอนยืนยันตัวตนกับฝ่ายบริการที่ชัดเจนสำหรับบัญชีสำคัญ ทุกการกู้บัญชีควรแจ้งเตือนผู้ใช้ทางอีเมลหรือ LINE และมีช่วงรอก่อนเปลี่ยนวิธียืนยันตัวตน
ระบบล็อกอินจะแข็งแรงเท่ากับทางกู้บัญชีที่อ่อนที่สุดของมัน
เคล็ดลับ UX ที่ทำให้ผู้ใช้เข้าใจ
คำว่า passkey ยังใหม่สำหรับผู้ใช้ทั่วไป ใช้ภาษาที่เห็นภาพ เช่น "ล็อกอินด้วยลายนิ้วมือหรือการปลดล็อกเครื่อง" แล้วค่อยบอกว่าเรียกว่า passkey ใส่ข้อความสั้นๆ บอกว่าข้อมูลไม่ได้ถูกส่งไปที่ไหน และเพิ่มภาพประกอบหน้าจอที่ผู้ใช้จะพบ
เลือกเวลาเสนออย่างเหมาะสม อย่าเด้งหน้าต่างให้สร้าง passkey ตั้งแต่ก่อนผู้ใช้ทำอะไรเสร็จ ให้เสนอหลังล็อกอินหรือชำระเงินสำเร็จ และเก็บปุ่ม "ใช้วิธีอื่น" ไว้เสมอ ตั้งชื่อ passkey ในหน้าบัญชี เช่น "iPhone ของฉัน" เพื่อให้ผู้ใช้จัดการหรือลบได้เอง
สรุปสั้น ๆ
- Passkey ใช้คู่กุญแจ public/private บนมาตรฐาน WebAuthn ไม่มีความลับร่วมที่ต้องส่งหรือเก็บ
- ผูกกับโดเมน จึงทนต่อเว็บปลอมได้ดีกว่ารหัสผ่านและ OTP ทาง SMS
- เปิดเป็นตัวเลือกควบคู่ก่อน แล้วค่อยลดบทบาทรหัสผ่าน
- วางทางสำรองและการกู้บัญชีให้ดี เพราะเป็นจุดที่ผู้โจมตีมักเลือกเข้า
- สื่อสารด้วยภาษาง่ายๆ เสนอ passkey ในจังหวะที่เหมาะ และมีทางเลือกอื่นเสมอ
คำถามที่พบบ่อย
บริการที่เกี่ยวข้อง
มีโปรเจกต์แบบนี้อยู่ในใจไหม
เล่าให้เราฟังว่าตอนนี้อยู่ตรงไหน เดี๋ยวเราแนะนำก้าวแรกที่เหมาะให้ โดยไม่มีข้อผูกมัด
คุยกับเรา


