7 คะแนน โดย GN⁺ 2024-04-27 | 3 ความคิดเห็น | แชร์ทาง WhatsApp

เหตุผลที่ความฝันเกี่ยวกับ Passkeys พังทลาย

ความฝัน

  • ในปี 2019 ผู้เขียนเริ่มพัฒนาไลบรารี Webauthn สำหรับ Rust
  • ในเวลานั้นมีมุมมองเชิงบวกว่าเทคโนโลยีนี้อาจมาแทนรหัสผ่านได้
    • คาดว่าจะรองรับการยืนยันตัวตนแบบสองขั้นตอน, การยืนยันตัวตนแบบไร้รหัสผ่าน, การยืนยันตัวตนแบบไม่ต้องใช้ชื่อผู้ใช้ เป็นต้น
  • ไลบรารีที่ผู้เขียนพัฒนาขึ้นมีอิทธิพลต่ออุตสาหกรรมอย่างมาก

สัญญาณเตือน

  • Chrome ครองตลาดอยู่ ทำให้หาก Chrome ไม่รองรับ สิ่งนั้นก็มักจะถูกกันออกจากมาตรฐาน
    • Authenticator Selection Extension เป็นตัวอย่างที่ชัดเจน
  • การที่การตัดสินใจสำคัญเกิดขึ้นในการประชุมแบบพบหน้าซึ่งจัดในสหรัฐฯ ก็เป็นปัญหาเช่นกัน
    • ส่งผลให้ผู้เข้าร่วมจากนานาชาติถูกกันออกไป

ช่วงขาลง

  • ในปี 2022 Apple เปิดตัว Passkeys
    • ตอนแรกดูเหมือนจะออกแบบมาได้ดี แต่ภายหลังจากการประกาศของผู้นำ ทำให้ Passkey ถูกนิยามให้เป็น Resident Key
    • สิ่งนี้ส่งผลให้ security key ที่มีพื้นที่จัดเก็บน้อยถูกกันออกไป
  • หลังจากนั้น Passkey ก็กลายสภาพเป็นเครื่องมือสำหรับกักผู้ใช้ไว้กับแพลตฟอร์ม

สถานการณ์ที่เลวร้ายลง

  • Chrome และ Safari บังคับให้ใช้ caBLE แทน security key
    • เป็นวิธีที่ใช้งานได้แย่มาก
  • Android บล็อกการใช้ security key บนเว็บไซต์ที่รองรับ Passkey
    • ตัวอย่างสำหรับนักพัฒนาก็ชี้นำให้ใช้เฉพาะ Google Passkey
  • ผู้ใช้จำนวนมากประสบปัญหาอย่างมากในการใช้ Passkey
    • เกิดปัญหาอย่างบั๊ก ขั้นตอนที่ซับซ้อน และการทำกุญแจหาย
  • มีกรณีที่ Passkey ถูกลบบ่อยครั้งจาก Apple Keychain

มุมมองในอนาคต

  • ผู้เขียนคาดว่า Passkey จะล้มเหลวสำหรับผู้บริโภคทั่วไป
    • เพราะการไล่ล่าผลประโยชน์ของบริษัททำให้ประสบการณ์ผู้ใช้เสียหาย
  • ถึงขั้นที่คู่ชีวิตของผู้เขียนบอกว่าวิธีใช้รหัสผ่านยังดีกว่า Passkey
  • ในองค์กรยังคงจำเป็นต้องใช้ security key แต่ปัญหาด้านการใช้งานก็ยังคงอยู่
  • ผู้เขียนจะยังคงดูแลโปรเจกต์ webauthn-rs ต่อไป แต่กำลังมองหาทางเลือกอื่นแทน Passkey

ความเห็นของ GN⁺

  • การที่ Passkey กำลังไหลไปในทิศทางที่กีดกัน security key และทำให้การผูกติดกับแพลตฟอร์มรุนแรงขึ้น เป็นจุดที่น่ากังวล การจำกัดทางเลือกของผู้ใช้ดูไม่ใช่สิ่งที่พึงประสงค์
  • ดูเหมือนว่าจำเป็นต้องพัฒนาการใช้งานควบคู่ไปกับการพัฒนาเทคโนโลยี ไม่ควรปล่อยให้มันซับซ้อนเกินไปหรือมีข้อจำกัดมากเกินไป
  • เมื่ออิทธิพลของบริษัทไม่กี่แห่งเพิ่มสูงขึ้น ปัญหาในกระบวนการกำหนดมาตรฐานก็ดูเป็นเรื่องเร่งด่วนที่ต้องแก้ไข น่าจะต้องมีโครงสร้างการตัดสินใจที่เปิดกว้างและโปร่งใสมากกว่านี้
  • วิธีอย่างใบรับรองอุปกรณ์หรือสมาร์ตการ์ดที่ถูกเสนอเป็นทางเลือกดูน่าสนใจ น่าจะเป็นแนวทางที่ช่วยก้าวข้ามข้อจำกัดของ Passkey เดิม พร้อมทั้งปรับปรุงการใช้งานได้
  • เนื่องจากตอนนี้ยังเป็นช่วงรอยต่อ จึงดูเหมือนว่าต่อจากนี้ยังต้องมีการพัฒนาเทคโนโลยีอย่างต่อเนื่องและรับฟังฟีดแบ็กจากผู้ใช้อยู่เสมอ หวังว่าผู้มีส่วนได้ส่วนเสียที่หลากหลายจะร่วมมือกันสร้างระบบยืนยันตัวตนที่ดีกว่าเดิม

3 ความคิดเห็น

 
[ความคิดเห็นนี้ถูกซ่อน]
 
GN⁺ 2024-04-27
ความคิดเห็นจาก Hacker News
  • ปัญหาใหญ่ที่สุดของ Passkeys คือไม่สามารถไว้วางใจบริษัทที่ให้บริการมันได้ แม้มันจะถูกล็อกไว้กับแพลตฟอร์มด้วยเหตุผลด้านความปลอดภัย แต่บ่อยครั้งก็แยกไม่ออกจากการล็อกผู้ใช้ไว้กับแพลตฟอร์ม ถ้าสร้าง Passkey บนอุปกรณ์ Apple มันจะไม่มีทางออกจากอุปกรณ์นั้นได้เลย และไม่มีวิธีเปลี่ยนแปลง แม้ว่ามันจะปลอดภัยจากฟิชชิง แต่ก็ไม่รู้ว่าถ้า Apple ลบกุญแจนั้น หรือถ้าต้องการเลิกใช้ iPhone จะต้องทำอย่างไร

  • ในการถกเถียงยาว ๆ เกี่ยวกับ Passkeys มีการหลีกเลี่ยงแปลก ๆ ต่อส่วนของความปลอดภัยแบบ "สิ่งที่รู้" ในสหรัฐฯ ศาลและหน่วยงานบังคับใช้กฎหมายสามารถขอชื่อผู้ใช้ ลายนิ้วมือ การสแกนม่านตา Face ID ฯลฯ ได้อย่างถูกกฎหมาย แต่ไม่มีสิทธิ์ดึงบางสิ่งออกมาจากสมอง Passkeys สนับสนุนการแทนที่ "สิ่งที่รู้" ด้วย "สิ่งที่มี" ซึ่งเป็นฝันร้ายด้านความปลอดภัย

  • ความเห็นตรงข้าม: ชอบ Passkeys มาก ใช้เบราว์เซอร์ Firefox และตัวจัดการ 1Password และบน iPhone ก็ใช้ 1Password + Firefox ดูที่ passkeys.directory แล้วเปลี่ยนการล็อกอินของ GitHub, Google, Microsoft ฯลฯ มาเป็น Passkeys คำอย่าง "ล็อกอินด้วย Passkey" แทนที่จะเป็น "ล็อกอินด้วย Touch ID" ทำให้สับสน 1Password ซิงก์ Passkeys ข้ามอุปกรณ์ให้ ถ้าจำเป็นต้องล็อกอินบนคอมพิวเตอร์สาธารณะก็อาจไม่สะดวก แต่ก็ไม่ได้ทำแบบนั้นบ่อย

  • ตอนนี้ยังหลีกเลี่ยง Passkeys เพราะยังไม่มี mental model ที่ชัดเจนอยู่แล้ว กำลังใช้รหัสผ่านแบบสุ่มที่สร้างโดยตัวจัดการรหัสผ่านแบบเดิม จึงไม่รู้สึกจำเป็นต้องเปลี่ยน ชื่อผู้ใช้/อีเมล + รหัสผ่านเป็นสิ่งที่เข้าใจได้ แต่พอนึกถึงความยุ่งยากของ "รหัสผ่านเฉพาะแอป" ก็กลัวว่าเครื่องมือโอเพนซอร์ส/CLI บางตัวอาจทำงานร่วมกับ Passkeys ได้ไม่ดี จึงคิดว่ารอให้สถานการณ์นิ่งกว่านี้ก่อนจะดีกว่า

  • ลงทุนกับระบบนิเวศ Apple Keychain แบบเต็มตัวและมีอุปกรณ์ Apple หลายเครื่อง จึงรู้สึกว่า Passkeys ยอดเยี่ยม ในฐานะนักพัฒนา ต้องเจอข้อจำกัดของ SMS 2FA ที่อ่อนแอทุกวัน ผู้ใช้สามารถถูกหลอกด้วย social engineering จนยอมบอกรหัส 2FA ได้ง่าย ๆ Passkeys ให้ทางออกที่ปลอดภัยกว่า ทำให้นักพัฒนาไม่ต้องกังวลว่าผู้ใช้จะโทรหา CS แล้วอ่านรหัสให้ฟังดัง ๆ Passkey ไม่เสียหายจากการสลับซิม และไม่สามารถแชร์ให้มิจฉาชีพได้

  • ในฐานะคนสายเทคนิค ไม่ค่อยเข้าใจว่า Passkeys ทำงานอย่างไร ทำไมถึงดีกว่า และจริง ๆ แล้วมันคืออะไร ถ้าฟีเจอร์ความปลอดภัยไม่ได้ง่ายพอ ๆ กับการจำชื่อผู้ใช้และรหัสผ่านแล้วเก็บไว้ในที่ปลอดภัย มันก็จะไม่เวิร์ก มีการพูดถึงกุญแจที่อยู่บนอุปกรณ์ แต่ก็สงสัยว่าเมื่อใช้ทั้งโทรศัพท์และพีซีจะเข้าถึงอย่างไร ตอนแรกยังต้องใช้ชื่อผู้ใช้/รหัสผ่านหรือไม่ หรือจำเป็นต้องมีกุญแจที่ต้องเสียบเข้ากับอุปกรณ์

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

  • ถ้าใครไม่รู้ว่า Passkeys ทำงานทางเทคนิคอย่างไร แนะนำให้อ่านคู่มือการใช้งานนี้: https://webauthn.guide/ ไม่เข้าใจความเกลียดชังที่มีต่อ Passkeys การเปลี่ยนไปใช้ public-key challenge สำหรับการยืนยันตัวตนถือเป็นความก้าวหน้าครั้งใหญ่ของความปลอดภัยบนเว็บ แต่ละเบราว์เซอร์/OS จะปกป้องและสำรอง private key ไว้ แม้จะทำกุญแจหาย ก็ยังใช้ขั้นตอน "ลืมรหัสผ่าน" เพื่อตั้งค่าข้อมูลรับรองการยืนยันตัวตนใหม่ได้

  • ถ้าจะพิจารณาใช้ Passkeys ต้องมีเงื่อนไขต่อไปนี้:

  1. ต้องสามารถมี Passkey อยู่ในซอฟต์แวร์ได้ (แม้จะมีปัญหาด้านความปลอดภัยก็ตาม)
  2. ต้องสามารถปิดการทำงานของฟังก์ชัน attestation ได้

ยังไม่ได้ตรวจสอบว่า implementation ของ WebAuthn ใน Firefox หรือ Chrome บน Linux ตอบโจทย์ข้อกำหนดเหล่านี้หรือไม่

  • พยายามตามความคืบหน้าในโลกของ 2FA อยู่ และ Passkeys เป็นสิ่งที่ทำให้งงที่สุด เห็นกระแสโหมว่า Passkeys คือเทคโนโลยีรุ่นถัดไปอยู่มาก แต่หาคำอธิบายว่ามันคืออะไรและทำงานอย่างไรจริง ๆ ได้ยาก พอรู้ว่ามันคือกุญแจที่เก็บไว้ใน security key ก็รู้สึกผิดหวัง ชอบแนวคิดการสร้างกุญแจขึ้นมาทันทีตามชื่อโดเมน ข้อดีของ Passkeys คือไม่ต้องจำชื่อผู้ใช้ที่ใช้กับเว็บไซต์ แต่ก็เป็นข้อดีเล็กน้อยเท่านั้น

  • คำตอบสำหรับคำถามที่เกี่ยวข้องว่า เทคโนโลยีที่คำนวณและสร้างกุญแจขึ้นใหม่ทันทีจากชื่อโดเมนอย่างเป็นทางการเรียกว่าอะไร (อิง FIDO2? อิง WebAuthn?): พบได้ที่ https://fy.blackhats.net.au/blog/… โดยกุญแจที่สร้างขึ้นใหม่แบบทันทีนั้นเรียกว่า "non-resident credential".