การยืนยันตัวตนหลายปัจจัย

Wasith T. (Bai-Phai)
กูโค้ด
Published in
2 min readNov 5, 2019

หรือที่เรียกว่า multi-factor authentication มีรูปแบบใดบ้างไปดูกัน

อะไรที่คุณรู้ (Knowledge factors, aka. Something you know)

Knowledge factor ถูกใช้ทั่วไปในในการยืนยันตัวตน โดยจะต้องระบุรหัสลับให้ได้ เช่น username, password, pincode, passcode

โดย knowledge factor รวมไปถึงชุดคำถาม และคำตอบด้วย และอาจจะไม่ปลอดถัยเช่น สถานที่เกิดของคุณ ซึ่งอาจจะมีหลายคนที่รู้ หรือสามารถสืบหาได้

หรืออาจจะเป็นคำถามที่เราจำไม่ได้ เช่น คุณสมัครใช้บริการนี้เมื่อไหร่ ? เราอาจจะจำไม่ได้ และไม่ได้จดไว้ด้วย

อะไรที่คุณมี (Possession factors, aka. Something you have)

ซึ่งถูกนำมาใช้ในการยืนยันตัวตนเหมือนกันเช่นบัตร ATM, SIM card หรือ security token ซึ่งมักถูกนำมาใช้ควบคู่กับวิธีการแรก โดยแบ่งได้เป็น 3 ประเภท คือ

  • Disconnected token โดย token ชนิดนี้จะไม่เชื่อต่อกับอุปกรณ์ใด ๆ เลย อาจจะมีหน้าจอแสดงตัวเลข ที่ผู้ใช้งานจะต้องกรอกเข้าระบบด้วยตัวเอง
  • Connected token โดย token ชนิดนี้จะต้องเชื่อมต่อกับตัวระบบ โดยอาจจะผ่านสัมผัส หรือการเชื่อต่อ USB ก็ได้ บัตรแตะเข้าตึกก็อยู่ในประเภทนี้
  • Software token จะคล้ายกับ disconnected token แต่ อยู่ในรูปของ software แต่ต่างกันตรงแบบ hardware นั้น จะไม่สามารถทำซ้ำได้ แต่แบบ software นั้น สามารถส่งวิธีการสร้างรหัสลับไปไว้ที่เครื่องอื่น ๆ ได้ด้วย เช่นเก็บไว้ใน Google Authenticator, 1Password, Authy

อะไรที่คุณเป็น (Inherent factor, aka. Something you are)

ปัจจัย ของอะไรที่คุณเป็นนั้น มักจะเป็นการตรวจพิสูจน์บุคคล (biometrics) เช่นลายนิ้วมือ ลายมือ ใบหน้า เสียง ม่านตา DNA

อะไรที่คุณทำ (Behavioural factor, aka. Something you do)

ซึ่งบางสำนักอาจจะรวมกับแบบก่อนหน้า แบบผมขอแยกออกมาดีกว่า อะไรที่คุณทำเช่น

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

สถานที่ที่คุณอยู่​ (Location factor, aka. Somewhere you are)

ตามนั้นแหละ ตอนนั้นคุณที่อยู่ที่ไหน เช่นถ้าคุณทำงาน แล้วจะเข้าถึงข้อมูลที่ทำงานอยู่ได้คุณต้องนั่งอยู่ในออฟฟิศ และเชื่อมต่อเครือข่ายของบริษัทอยู่

หรือการที่คุณใช้บริการ แล้วบริการนั้นตรวจสอบ IP Address แล้วพบว่าไม่ได้อยู่ในพื้นที่ให้บริการ และคุณต้อง VPN เพื่อไปยังประเทศที่มีการให้ใช้งาน

สถานที่สามารถพัฒนาไปถึงระบบความปลอดภัยได้ เช่นปกติคุณใช้บัญชีในประเทศไทย แล้วอยู่ดี ๆ ไม่กี่นาทีถัดมาถูกพบว่าคุณ login มาจากญี่ปุ่น แปลว่าคุณโดนขโมยรหัสแล้วก็ได้

พอมาใช้รวม ๆ กันแล้ว เลยเรียกว่า

Multi-factor authentication หรือ two-factor authentication เช่นเมื่อ login แล้วต้องกรอก OTP อีกรอบหนึ่ง

โดยบริการโดยทั่วไปเช่น Gmail, Facebook, GitLab ก็มีให้ตั้งค่า two-factor authentication เพื่อป้องกันการเข้าถึงที่ไม่พึงประสงค์ได้

Out-Of-Band (OOB)

คือการที่ใช้อุปกรณ์ในการยืนยันตัวในหมวดใด ๆ จะต้องเป็นอุปกรณ์คนละชิ้นกับอีกหมวด

เช่น OTP คือการรับข้อความสั้นผ่าน SMS แล้วคุณมีมือถืออยู่ในมือ (Something you have) และคุณใช้มือถือนั้นในการจำรหัสผ่านด้วย (Something you know) ซึ่งควรจะเป็นคนละเครื่องกัน

มาตรฐานที่ตกรุ่น

National Institute of Standards and Technology (NIST) ได้ออกมาบอกว่าการใช้รหัสผ่าน SMS หรือการโทรหาถูกจัดเป็น out-of-band (OOB) และอยู่ในหมวดจำกัดการใช้งาน (RESTRICTED) คือต้องมีทางเลือกอื่นในการใช้งาน ต้องแจ้งเตือนว่ามีความเสี่ยงในการใช้งาน และแนะนำทางเลือกอื่น และ OOB ด้วย และการรับ OTP ด้วย email ไม่ถูกรองรับในมาตรฐานล่าสุด

สรุป

ในการให้บริการใด ๆ ควรมีวิธีการยืนยันตัวตนมากกว่าแค่กรอก username, password แต่ควรใช้วิธีการอื่น ๆ ใช้ควบคู่ไปด้วย และแนะนำให้ผู้ใช้งานทำการตั้งค่าเพื่อใช้งานให้เรียบร้อย

และผู้ใช้งานควรจะต้องใช้งาน multi-factor authentication หากบริการนั้น ๆ มีให้ใช้ เพราะจะปลอดภัยกว่าการกรอกรหัสผ่านเพียงอย่างเดียว

สวัสดีครับ

อ้างอิง

--

--

Wasith T. (Bai-Phai)
กูโค้ด

ตบมือเป็นกำลังใจให้ผมด้วยนะครับ 😘