1. สำหรับผู้ใช้งานทั่วไป (ฟรี 100%)

แอปพลิเคชันยอดนิยมส่วนใหญ่เปิดให้ใช้งานฟรี เพื่อช่วยปกป้องบัญชีของคุณ:

  • แอป Authenticator: เช่น Google AuthenticatorMicrosoft 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)
  • ขั้นตอนการทำ:
  1. Generate Secret Key: สร้างคีย์ลับเฉพาะตัวให้ผู้ใช้
  2. Generate QR Code: นำคีย์ลับไปสร้างเป็น QR Code เพื่อให้ผู้ใช้สแกนผ่านแอป Authenticator
  3. Verify Code: เขียน Code บน Server เพื่อตรวจสอบว่ารหัส 6 หลักที่ผู้ใช้กรอกมา ตรงกับรหัสที่ Server คำนวณได้ ณ เวลานั้นหรือไม่ 

ข้อควรระวัง

การเขียนเอง "ฟรี" ในแง่เครื่องมือ แต่มีความรับผิดชอบเรื่อง ความปลอดภัย สูง เช่น คุณต้องเก็บ Secret Key ของผู้ใช้ไว้ในฐานข้อมูลอย่างปลอดภัย (Encrypted) และควรมีระบบ Recovery Codes เผื่อกรณีผู้ใช้ทำมือถือหายด้วยครับ 

คุณสนใจอยากลองเขียน 2FA ด้วย ภาษาโปรแกรมไหน เป็นพิเศษไหมครับ? ผมจะได้ส่งตัวอย่าง Code เบื้องต้นให้ดูได้ถูกครับ