1. สำหรับผู้ใช้งานทั่วไป (ฟรี 100%)
แอปพลิเคชันยอดนิยมส่วนใหญ่เปิดให้ใช้งานฟรี เพื่อช่วยปกป้องบัญชีของคุณ:
- แอป Authenticator: เช่น Google Authenticator, Microsoft Authenticator, และ 2FAS เป็นแอปฟรีที่ใช้สร้างรหัส 6 หลัก (TOTP)
- หมายเหตุ: บางบริการอาจมีค่าใช้จ่ายหากคุณเลือกใช้การส่งรหัสผ่าน SMS (ซึ่งผู้ให้บริการแอปที่คุณใช้จะเป็นคนจ่ายค่าส่ง) หรือใช้ Hardware Token (เช่น YubiKey) ที่ต้องซื้ออุปกรณ์แยก
2. สำหรับนักพัฒนา (เขียนเองได้)
คุณสามารถเขียนระบบ 2FA ขึ้นมาเองได้โดยใช้มาตรฐานสากลที่เรียกว่า TOTP (Time-based One-Time Password) ซึ่งไม่เสียค่าลิขสิทธิ์:
- Library ฟรี: มี Library โอเพนซอร์สรองรับเกือบทุกภาษา เช่น PyOTP (Python), 2amigos/2fa-library (PHP), หรือ otplib (Node.js)
- ขั้นตอนการทำ:
- Generate Secret Key: สร้างคีย์ลับเฉพาะตัวให้ผู้ใช้
- Generate QR Code: นำคีย์ลับไปสร้างเป็น QR Code เพื่อให้ผู้ใช้สแกนผ่านแอป Authenticator
- Verify Code: เขียน Code บน Server เพื่อตรวจสอบว่ารหัส 6 หลักที่ผู้ใช้กรอกมา ตรงกับรหัสที่ Server คำนวณได้ ณ เวลานั้นหรือไม่
ข้อควรระวัง
การเขียนเอง "ฟรี" ในแง่เครื่องมือ แต่มีความรับผิดชอบเรื่อง ความปลอดภัย สูง เช่น คุณต้องเก็บ Secret Key ของผู้ใช้ไว้ในฐานข้อมูลอย่างปลอดภัย (Encrypted) และควรมีระบบ Recovery Codes เผื่อกรณีผู้ใช้ทำมือถือหายด้วยครับ
คุณสนใจอยากลองเขียน 2FA ด้วย ภาษาโปรแกรมไหน เป็นพิเศษไหมครับ? ผมจะได้ส่งตัวอย่าง Code เบื้องต้นให้ดูได้ถูกครับ