• OTP
  • TOTP
  • MFA
  • HOTP
  • one-time password

รหัสผ่านครั้งเดียว (OTP) คืออะไร?

OTP คืออะไร? ความแตกต่างระหว่าง OTP และ TOTP คืออะไร? OTP ทำงานอย่างไร? บทความนี้จะอธิบายแนวคิดพื้นฐานของ OTP และเหตุผลที่มันถูกนิยมใช้มากกว่ารหัสผ่านแบบคงที่

Simeng
Simeng
Developer

OTP ย่อมาจาก One-Time Password หรือที่รู้จักกันในชื่อ รหัสครั้งเดียว รหัสผ่านชั่วคราว หรือรหัสผ่านแบบไดนามิก มันคือรหัสผ่านชั่วคราวที่ไม่ซ้ำกันซึ่งถูกสร้างขึ้นโดยอัตโนมัติ ใช้ในการยืนยันตัวตนหรือธุรกรรมเพียงครั้งเดียวเท่านั้น

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

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

OTP ทำงานอย่างไร?

มี OTP หลายประเภท ที่ถูกสร้างและส่งมาวิธีที่ต่างกันเพื่อการใช้งานที่หลากหลาย วิธีทั่วไปของ OTP รวมถึง:

SMS OTP / Email OTP

SMS OTP หรือ Email OTP เป็นรูปแบบ OTP ที่ง่ายมาก โดยรหัสผ่านที่ไม่ซ้ำกันถูกสร้างโดยเซิร์ฟเวอร์และส่งถึงผู้ใช้อย่างปลอดภัยผ่านทาง SMS หรืออีเมล จากนั้นผู้ใช้จะป้อนรหัสนี้เพื่อยืนยันตัวตน

วิธีทำงาน:

  • ผู้ใช้ร้องขอ OTP จากเซิร์ฟเวอร์
  • เซิร์ฟเวอร์สร้างรหัสที่มีค่าเลขหรือตัวหนังสือแล้วส่งไปให้ผู้ใช้ทาง SMS หรืออีเมล
  • ผู้ใช้จะได้รหัส OTP จากกล่องจดหมาย SMS หรืออีเมลแล้วป้อนเข้าไปในแอปพลิเคชัน
  • เซิร์ฟเวอร์ยืนยันรหัสกับบันทึกของมันและให้สิทธิเข้าถึงหากรหัสถูกต้อง

มาตรการความปลอดภัย:

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

การใช้งาน:

SMS และ Email OTP มักถูกใช้ในแอปพลิเคชันที่มุ่งหวังผู้บริโภค เช่น การธนาคารออนไลน์ อีคอมเมิร์ซ และแพลตฟอร์มโซเชียลมีเดีย ไม่เพียงแต่ปลอดภัยกว่ารหัสผ่านแบบคงที่ แต่ยังให้วิธีที่สะดวกแก่ผู้ใช้ในการยืนยันตัวตนโดยไม่ต้องจำรหัสผ่านและคำถามเพื่อความปลอดภัยที่ซับซ้อน

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

HMAC-based OTP (HOTP)

HMAC-based OTP ซึ่งถูกกำหนดใน RFC 4226 เป็นอัลกอริธึม OTP ที่ประสานเวลาด้วยการสร้างลำดับรหัสผ่านครั้งเดียวโดยใช้คีย์ลับและค่าเคาน์เตอร์ รหัส OTP แต่ละรหัสถูกสร้างจากการแฮชคีย์ลับและค่าเคาน์เตอร์โดยใช้ฟังก์ชั่นแฮชเข้ารหัส (เช่น SHA-1, SHA-256)

วิธีทำงาน:

  1. Secret: HOTP ต้องการคีย์ลับที่แชร์ระหว่างเซิร์ฟเวอร์และลูกค้า

  2. Counter: เซิร์ฟเวอร์และลูกค้าเก็บค่าของเคาน์เตอร์ที่เพิ่มขึ้นทุกครั้งที่มีการสร้าง OTP

  3. ลูกค้าคำนวณการแฮช HMAC-SHA1 (หรือฟังก์ชันแฮชอื่น) ของค่าเคาน์เตอร์ (C) โดยใช้คีย์ลับที่แชร์ (K)

    • H = HMAC-SHA1(K, C)
  4. ค่าการแฮชถูกตัดให้เหลือ 6 หรือ 8 หลัก (ขึ้นอยู่กับการใช้งาน) เพื่อสร้าง OTP

    • OTP = Truncate(H)mod 10^d
  5. เซิร์ฟเวอร์ติดตามค่าของเคาน์เตอร์และยืนยัน OTP ที่เข้ามาโดยคำนวณค่าการแฮชด้วยค่าเคาน์เตอร์และคีย์ลับเดียวกัน (หากมีข้อไม่ตรงกันเล็กน้อย เซิร์ฟเวอร์อาจอนุญาตช่วงของค่าเคาน์เตอร์เล็กน้อย เช่นเพิ่มขึ้นหนึ่งหรือสองครั้ง เพื่อรับมือกับปัญหาการประสาน)

มาตรการความปลอดภัย:

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

การใช้งาน:

HOTP มักถูกใช้ในฮาร์ดแวร์โทเค็นและระบบเก่าที่การจัดการเวลาอาจเป็นเรื่องท้าทาย สำหรับแอปพลิเคชันสมัยใหม่ TOTP เป็นที่นิยมมากกว่าเนื่องจากมีลักษณะการใช้เวลาตามกระบวนการและติดตั้งใช้งานได้ง่ายกว่า

Time-based OTP (TOTP)

Time-based OTP ซึ่งถูกกำหนดใน RFC 6238 เป็นอัลกอริธึมที่สร้างลำดับรหัสผ่านครั้งเดียวโดยใช้เวลาปัจจุบันและคีย์ลับที่แชร์ TOTP เป็นการขยายของ HOTP ที่ใช้ค่าเวลาแทนค่าเคาน์เตอร์ในการสร้าง OTP ทำให้ OTP มีความเป็นเวลาเพิ่มขึ้น จึงปลอดภัยกว่า HOTP

วิธีทำงาน:

  1. Secret: เช่นเดียวกับ HOTP, TOTP ต้องการคีย์ลับที่แชร์ระหว่างเซิร์ฟเวอร์และลูกค้า

  2. Time step: ความแตกต่างที่สำคัญระหว่าง HOTP และ TOTP คือ TOTP ใช้ค่าการก้าวเวลาด้านเวลา (โดยทั่วไป 30 วินาที) แทนค่าเคาน์เตอร์

  3. ลูกค้าคำนวณการแฮช HMAC-SHA1 ของเวลาปัจจุบันหารด้วยค่าการก้าวเวลาที่ใช้คีย์ลับที่แชร์

    • H(Time) = HMAC-SHA1(K, Time/TimeStep)
  4. ค่าการแฮชถูกตัดให้เหลือ 6 หรือ 8 หลักเพื่อสร้าง OTP

    • OTP(Time) = Truncate(H(Time))mod 10^d
  5. Dynamic OTP: เนื่องจากการสร้าง OTP ขึ้นอยู่กับเวลา OTP จึงมีการเปลี่ยนทุก 30 วินาที ให้ระดับความปลอดภัยสูงกว่า

  6. เซิร์ฟเวอร์ยืนยัน OTP ที่เข้ามาโดยคำนวณค่าการแฮชด้วยเวลาปัจจุบันและคีย์ลับ ตราบใดที่ OTP นั้นอยู่ภายในช่วงเวลาที่ถูกต้อง เซิร์ฟเวอร์จะยอมรับการยืนยันตัวตน

มาตรการความปลอดภัย:

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

การใช้งาน:

TOTP ถูกใช้แพร่หลายในแอปพลิเคชันยืนยันตัวตนซอฟต์แวร์ เช่น Google Authenticator, Authy, และ Microsoft Authenticator แอปเหล่านี้สร้าง OTP ที่ขึ้นอยู่กับเวลาให้ผู้ใช้ยืนยันตัวตนกับบริการออนไลน์ต่าง ๆ รวมถึงแพลตฟอร์มโซเชียลมีเดีย, บริการคอมพิวต์เมฆ, และสถาบันการเงิน

แอป TOTP กลายเป็นรูปแบบ OTP ที่ได้รับความนิยมที่สุดสำหรับ MFA เนื่องจากมันให้ความสมดุลระหว่างความปลอดภัยและการใช้งาน ผู้ใช้สามารถสร้าง OTP บนอุปกรณ์พกพาโดยไม่ต้องพึ่งพาการส่งผ่าน SMS หรืออีเมล ทำให้เป็นวิธีการยืนยันตัวตนที่ปลอดภัยและสะดวกกว่า

ข้อดีของ OTP

  1. ความปลอดภัยที่เพิ่มขึ้น

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

    • OTP สร้างง่ายและใช้ง่าย ต้องการการโต้ตอบจากผู้ใช้เพียงเล็กน้อย
    • สนับสนุนอย่างกว้างขวางโดยแพลตฟอร์มและบริการต่าง ๆ อย่างเช่น TOTP ต้องการการตั้งค่าน้อยและสามารถใช้งานได้ตามแอปยืนยันตัวตนที่มีอยู่แล้วหลากหลาย
  3. ความยืดหยุ่น

    • สามารถส่ง OTP ผ่านหลายช่องทางได้ รวมถึง SMS, อีเมล, และแอปยืนยันตัวตน ให้ความยืดหยุ่นให้ผู้ใช้เลือกวิธีที่ต้องการ
  4. การปฏิบัติตามระเบียบข้อบังคับ

    • OTP ปฏิบัติตามมาตรฐานอุตสาหกรรมและกฎระเบียบ เช่น PCI DSS, GDPR, และ HIPAA ซึ่งต้องการกลไกการยืนยันที่แข็งแรงเพื่อปกป้องข้อมูลที่สำคัญ

ทำไม OTP ถูกนิยมใช้มากกว่ารหัสผ่านแบบคงที่?

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