Universal 2nd Factor (U2F) เป็นมาตรฐานความปลอดภัยแบบ 2 ปัจจัยที่ผลักดันโดยกูเกิลและ Yubico มาตั้งแต่ปี 2014 โดยเน้นที่การยืนยันตัวตนด้วยอุปกรณ์ USB key
ภายหลังการยืนยันตัวตนด้วย USB key แพร่หลายมากขึ้น เกิดกลุ่ม FIDO Alliance ที่มีองค์กรเข้าร่วมเป็นจำนวนมาก สุดท้ายผลักดันให้เกิดมาตรฐานใหม่ Web Authentication หรือ WebAuthn ของ W3C ที่ใช้ล็อกอินเว็บโดยไม่ต้องใช้รหัสผ่านแบบเดิม ขึ้นมาทดแทน (จะมองว่า WebAuthn คือ U2F API เวอร์ชัน 2 ก็ได้)
ในฐานะเบราว์เซอร์ของกูเกิล Chrome รองรับ U2F API มาตั้งแต่เวอร์ชัน 38 และภายหลังก็รองรับ WebAuthn เพิ่มตามมาในเวอร์ชัน 67 แต่หลังจากรองรับ API ทั้งสองตัวคู่กันมาสักระยะหนึ่ง ก็ได้เวลาที่ Chrome จะหยุดสนับสนุน U2F API ใน Chrome 98 ที่จะออกเดือนกุมภาพันธ์ 2022
กูเกิลประกาศข่าวนี้ตั้งแต่กลางปี 2021 โดยนักพัฒนาเว็บไซต์ที่รองรับเฉพาะ U2F API จำเป็นต้องปรับโค้ดมาใช้ WebAuthn แทน (ซึ่งเปลี่ยนแปลงไม่เยอะนัก) ส่วนผู้ใช้ก็สามารถใช้ USB key อันเดิมล็อกอินได้เลย (ฮาร์ดแวร์ไม่ได้ล้าสมัย เลิกใช้เฉพาะตัว API ของเดิม)
ที่มา - The New Stack
Comments
รอว่าเมื่อไหร่จะเป็นที่แพร่หลายเหมือน Flash Drive แบบทุกวันนี้ที่หาซื้อได้ง่ายและราคาไม่แพง
ราคาตอนนี้ไม่แพงแล้วครับ ผมซื้ออันละ 990 บาท จาก Lazada ยี่ห้อ Thetis
oxygen2.me, panithi's blog
Device: ThinkPad T480s, iPad Pro, iPhone 11 Pro Max, Pixel 6
ส่วนตัวผมก็ยังรู้สึกว่าเกือบพันก็ยังแพงอยู่ดีอ่ะครับ อยากให้ราคาต่ำกว่า 500
อาจจะเพราะเห็นตัวจริงมันดูเป็นพลาสติกและก็เบาด้วย
มันอาจจะดูเป็น H/W โง่ๆ แต่จริงๆ แล้วมันถูกออกแบบมาให้ทนทานสูง และป้องกันการโดน hack จากกระบวนการทางกายภาพด้วย ยิ่ง key ที่เป็นไปตามมาตราฐาน FIPS ยิ่งแพงหนักเข้าไปอีก
+1
จะซื้อ yubico มาใช้แต่เห็นราคาแล้ว เอิ่มม ยอมเปิด authy ในมือถือก่อนละกัน ขนาดพี่แกเป็นคนผลักดันนะ แต่ login google account ยังต้องใช้ email กับ password อยู่ ใช้ security key แทนเหมือน ms account ได้เมื่อไหร่ค่อยคิดอีกที
เอ่อขอถามแบบคนไม่รู้และไม่เคยใช้หน่อยนะครับ
แล้ว USB Key หรือ YubiKey 1 อันนี่ สามารถเก็บหรือใช้ยืนยันได้กี่บัญชีครับ
หรือว่าไม่เกี่ยวกับรหัสผ่านบัญชีใดๆ จะเว็บไหน รหัสอะไร กี่เว็บก็ได้
เว็บหรือระบบมันจะตรวจสอบว่าบัญชีหรือรหัสผ่านนั้น ตรงกับรหัสตัว USB Key ที่ใช้เสียบตอนตั้งค่า 2FA หรือเปล่าแค่นั้นครับ
เก็บกี่อันก็ได้ครับ เพราะตัวเว็บจะเป็นคนจำตัว key เองไม่ใช่ USB key จำบัญชีของเรา
ถ้าเกิดว่าใช้ key เดียวกับ 2 บัญชี ตัวเว็บจะรู้หรือเปล่าครับ ว่าเป็นทั้ง 2 แชร์ key กัน (เช่นจาก "Key ID"?)
อ้างอิงจาก https://developers.yubico.com/U2F/Protocol_details/Overview.html
คำตอบคือ "ไม่รู้" เพราะการจะได้ public key ต้องผ่าน key pair อีกชั้นหนึ่งโดยใช้ตัวแปรอีกหลายตัวแปรก่อนจะได้ public key มาเก็บ
ทางเทคนิคมาเลย ขอบคุณครับ
https://youtu.be/dDZNDVO5EFQ?t=1561 วิธีการทำงานของ Asymmetric key
private key => ใช้ encode, export public key
public key => ใช้ decode
ส่วนการ implement ก็ reply บน
มันปลอดภัยกว่า password ตรงมันหลุดยากครับ ดูตาม flow reply บน
คือไม่มี flow ตรงที่เราส่ง private key ให้ใครเลย
ส่วนคนมี public key ทำได้แค่เอาไป verify signature
และ decode data ที่เขาส่งให้ว่ามันยังเหมือนเดิมหรือไม่เท่านั้น
แล้วหากเป็นเว็บเดียวกันล่ะครับ
เช่น Google Account ผมมี 5 บัญชี แต่ละบัญชีก็เปิด 2FA ซึ่งปกติผมใช้แอพ Google Authenticator.
แต่หากผมเปลี่ยนมาใช้ USB Key มันจะตรวจ Key จาก USB Key ชนกันรึเปล่า
ไม่ชนกัน ใน 1 key จะใช้กับกี่บัญชีก็ได้บน Google
ไม่ชนครับ ผมใช้ 3 บัญชีเปิด advance protection หมดใช้ได้ครับ
แล้วแต่ชนิดว่าใช้ทำอะไรด้วยครับ บางอย่างก็จำกัดบางอย่างก็ไม่จำกัดเพราะเป็นแบบความเห็นบนว่า
How many accounts can I register my YubiKey with?