วันก่อนผมได้เขียนบล็อกเรื่อง 2-Factor Authentication ไป บล็อกตอนนี้ก็ถือว่าเป็นภาคต่อแล้วกัน เพราะผมจะเอา YubiKey ซึ่งเป็น Universal 2nd Factor แบบ USB มาลองใช้ให้ได้อ่านกัน เพราะนี่คืออีกวิธีการป้องกันตนเองที่บริษัทใหญ่ๆ หลายบริษัทเขาให้พนักงานเขาใช้กัน แต่คำถามมันมีอยู่ว่า แล้วในความเป็นจริง ถ้าเป็นผู้ใช้งานทั่วไป มันจะเวิร์กมากน้อยแค่ไหน
เดี๋ยวนี้ YubiKey มันมีหลายแบบครับ มีทั้งแบบ USB-A, USB-C, Lightning + USB-C และยังมีแบบที่มี NFC อีก เรียกว่าแทบจะครอบคลุมทุกการเชื่อมต่อกับอุปกรณ์แล้ว (แต่อุปกรณ์จะรองรับหรือไม่ เป็นอีกเรื่องนะครับ) สามารถไปหาเลือกซื้อเอาไว้ที่เว็บไซต์ https://www.yubico.com/products/yubikey-hardware/ เลย แต่ได้ข่าวว่าใช้เวลาราวๆ 10-20 วันทำการกว่าจะส่งมานะครับ แต่ถ้าอดใจรอไม่ไหว ลองหาซื้อจาก Lazada ดู ค้นๆ ชื่อ YubiKey ครับ มีคนขายอยู่ ของผมซื้อมาจากร้าน WTC Computer ในราคา 900 บาท จะได้มาเป็นรุ่น NEO ซึ่งไม่มีขายแล้ว แม้แต่บนเว็บ Yubico เอง (ฮา)

หน้าตาของ YubiKey NEO นี่ก็คล้ายๆ กับ USB-A แฟลชไดร์ฟครับ แต่จะแบนกว่า แล้วมันมีส่วนที่เหมือนจะเป็นตัวสแกนลายนิ้วมือ แต่จริงๆ เป็นปุ่มแบบเอาไว้แตะนะครับ มีสัญลักษณ์รูปสัญญาณ WiFi ด้วย ตรงนี้ลองพยายามหาข้อมูลแล้ว มันคือสัญลักษณ์บอกว่า อันนี้รองรับ NFC ครับ ฉะนั้นก็จะสามารถใช้ร่วมกับพวกสมาร์ทโฟนที่มี NFC ได้ด้วย

วิธีการใช้งานคร่าวๆ ก็คือ เสียบเข้ากับเครื่องคอมพิวเตอร์ จากนั้นก็ไปที่เว็บไซต์ https://www.yubico.com/start แล้วก็ไปเลือกเอาว่าเราจะใช้ YubiKey กับบริการอะไร หรือโปรแกรมอะไร ซึ่งบอกเลยว่า ไม่ใช้ทุกบริการออนไลน์ หรือทุกโปรแกรม จะรองรับการยืนยันตัวตนขั้นตอนที่สองด้วย YubiKey ครับ (และถึงแม้จะรองรับ ก็อาจไม่ได้รองรับทุกรุ่น) แต่พวกบริการหลักๆ เช่น Google, Facebook, Twitter, Dropbox, Windows logon, macOS logon อะไรพวกนี้สามารถใช้ YubiKey ได้ แล้วตัวมันเองก็มี SDK ให้นักพัฒนาสามารถเอาไปใช้เขียนโปรแกรม เผื่อในกรณีของผู้ใช้ระดับองค์กร ที่อยากจะใช้ YubiKey ในการร่วมยืนยันตัวตนบนแอปพลิเคชันของตนเอง


ทีนี้ แต่ละบริการ แต่ละโปรแกรม ก็จะมีวิธีการตั้งค่าเพื่อใช้ YubiKey แตกต่างกันไป ยากง่ายก็ต่างกันครับ อย่างเช่นของ Google นี่ แค่ไปที่ Google Account > Security > 2-Step Verification เพื่อเปิดใช้ฟีเจอร์นี้ก่อน แล้วไปตรงหัวข้อ Security Key แล้วก็ทำการ Add Security Key เข้าไป ทำตามขั้นตอนที่บอกบนหน้าเว็บ ซึ่งก็คือ อย่าเพิ่มเสียบ YubiKey เข้าไป คลิก Next ไปก่อน มันจะถามหาให้เราเสียบ YubiKey จากนั้นพอเสียบเข้าไปปุ๊บ มันก็จะตรวจเจอ เราก็แค่ตั้งชื่อซะ แล้วคลิก Done ก็เรียบร้อยแล้ว

ทีนี้ เวลาที่ล็อกอินเข้าบริการ Google (เช่น Gmail) พอกรอก Username และ Password เรียบร้อยแล้ว ถ้าเราเสียบเจ้า YubiKey นี่อยู่ มันก็จะทำการยืนยันตัวตนในขั้นตอนที่สองให้เองโดยอัตโนมัติ ที่เราต้องทำเพิ่มก็แค่ แตะเบาๆ ตรงปุ่มบนตัว YubiKey นั่นแหละ พอแตะเสร็จแล้ว ก็จะล็อกอินได้เลยครับ

แต่ในขณะเดียวกัน ถ้าเกิดจะใช้ YubiKey นี่ ในการล็อกอินเข้า Windows ละก็ จะต้องดาวน์โหลดโปรแกรม YubiKey Personalization Tool และ Computer Login Tool มาติดตั้ง (มีทั้งเวอร์ชัน Windows และ macOS) แล้วก็ต้องทำตามขั้นตอนที่ระบุไว้สำหรับระบบปฏิบัติการแต่ละตัวครับ (ของ Linux นี่แอบโหด ขอบอก) ซึ่งบอกเลยว่า คนทั่วไปไม่เหมาะจะเอามาใช้แน่นอน และผมว่าการป้องกันตัวเองถึงระดับนั้น มันไม่จำเป็นสำหรับผู้ใช้งานทั่วไปครับ แต่ถ้าเป็นพวกบริษัทใหญ่ๆ ที่คอมพิวเตอร์ของออฟฟิศมีการเก็บข้อมูลสำคัญเอาไว้ หรือสามารถใช้เข้าถึงข้อมูลสำคัญๆ ได้ การใช้ YubiKey นี่ผมว่าก็จำเป็น และก็หมดห่วงเรื่องการตั้งค่า เพราะมีแผนกไอทีนิ
ตัว YubiKey เขาบอกว่าเบราวเซอร์ที่รองรับก็มี Google Chrome, Mozilla Firefox และ Opera แต่ก็อย่างที่เห็น ผมลองใช้ด้วย Microsoft Edge กับ Safari (บน macOS) มันก็ใช้ได้ไม่มีปัญหาอะไรนะ แต่ก็อีกนั่นแหละ และยังไงๆ การรองรับแค่เบราวเซอร์ที่ว่ามานี่ ผมว่ามันก็ครอบคลุมเบราวเซอร์สำหรับ Desktop เกือบหมดแล้ว
YubiKey ตัวเดียว สามารถเก็บข้อมูลการยืนยันตัวตนบนบริการออนไลน์ต่างๆ และโปรแกรมต่างๆ ได้หลากหลายครับ นี่ผมลองทั้งกับ Google Account (2 บัญชีพร้อมๆ กัน), Facebook, Twitter คือ ยัดเข้าไปได้เรื่อยๆ บางบริการมันมีข้อจำกัด เช่น LastPass นี่ แม้จะรองรับ Multi-Factor Authentication แต่ว่าถ้าจะใช้ Security Key จะต้องเป็นแพ็กเกจแบบ Premium (เสียตังค์ $3/เดือน) ขึ้นไป ถึงจะใช้ฟีเจอร์นี้ได้ หรือ WordPress ก็จะต้องลงปลั๊กอินก่อน เป็นต้น ก็ต้องไปไล่ดูเอาในเว็บไซต์ของ Yubico นั่นแหละว่าจะเซ็ตอะไรยังไง สำหรับบริการไหน

โดยส่วนตัวของผม YubiKey นี่ไม่ค่อยมีประโยชน์ชัดเจนเท่าไหร่ เพราะปัจจุบัน พวกสมาร์ทโฟนก็สามารถทำหน้าที่แทนได้ครับ ขอแค่ลงแอปจำพวก Authenticator เอาไว้ เพียงแต่มันจะไม่สะดวกเท่าเอา USB มาจิ้มแบบนี้ เพราะ Authenticator มักจะมาในรูปของการใช้ TOTP (Time-based One-Time Password) เป็นรหัส 6 หลักให้กรอกหลังล็อกอิน แต่ก็มีหลายบริการ ที่ใช้วิธีเด้ง Notification ขึ้นมาบนสมาร์ทโฟน แล้วให้เราแตะยืนยันการล็อกอิน แบบนี้ก็ง่ายหน่อย เพียงแต่เราก็ต้องหยิบสมาร์ทโฟนขึ้นมาไง แต่ถ้าเทียบกับการที่จะต้องหยิบ YubiKey มาเสียบ ก็วุ่นพอกันแหละ … ที่สำคัญคือ ถ้าเกิด YubiKey หายนี่ก็ชิบหายได้เหมือนกัน และใครๆ เขาก็แนะนำว่าถ้าไม่หาซื้อ YubiKey มาอีกอัน (ซึ่งราคาเฉียดพัน หรือพันกว่าบาท สำหรับบางรุ่น ยี่ห้ออื่นๆ นอกจาก YubiKey ก็มีราคาเป็นพันกว่าบาท เช่นกัน) ก็ต้องใช้วิธี 2-Factor Authentication แบบอื่น เช่น ส่ง SMS, โทรมาบอกรหัส หรือใช้แอป Authenticator เป็นตัวสำรองเอาไว้อยู่ดีครับ แต่ก็ไม่ใช่ทุกบริการออนไลน์หรือทุกโปรแกรม ที่จะรองรับการใช้วิธีสำรองหลายๆ แบบด้วยนะ บางบริการเองไม่รองรับการใช้แอป Authenticator หลายตัวด้วยเหอะ (คือ ถ้าจะเปลี่ยนไปใช้แอป Authenticator ตัวอื่น ก็ต้องลบของเก่าออกก่อน)
ฉะนั้น ในภาพรวม ก็ต้องบอกว่า YubiKey มีประโยชน์ในฐานะที่เป็น 2nd Factor Authentication ได้ดี แต่ก็แค่สะดวกสำหรับบางบริการหรือบางโปรแกรม ในขณะที่บางบริการและบางโปรแกรมนั้น การตั้งค่าทำได้ยากเอาเรื่องอยู่ ถ้าคิดจะใช้ ผมว่าก็ต้องเป็นคนที่มีพื้นฐานด้านไอทีประมาณนึงเลยแหละ และอย่างน้อยๆ ต้องอ่านภาษาอังกฤษออก และใจเย็น อดทนมากพอที่จะทำการตั้งค่าตามคู่มือของมัน (ลองอ่านคู่มือสำหรับการตั้งค่าสำหรับ Windows ก่อนก็ได้)