Facebook's 2-Factor Authentication

ป้องกันโดนแฮ็คโซเชียลด้วยการยืนยันตัวตน 2 ระดับ (2-Factor Authentication) -ตอนที่ 1

ช่วงนี้เรามักจะพูดกันเรื่องไทยแลนด์ 4.0 กันอยู่บ่อยๆ ซึ่งเป็นยุคที่คาดว่าการรับและจ่ายเงินต่างๆจะทำผ่านระบบที่เป็นอิเล็กทรอนิกส์หรือใช้แอพบนมือถือมากขึ้น แต่ถ้าได้คุยกับผู้คนธรรมดาทั่วๆ ไปแล้วกลับพบว่าคนไทยเรายังไม่ค่อยสนใจใช้มาตรการป้องกันการเข้าถึงแอพสำหรับรับ-จ่ายเงินเหล่านั้น รวมไปถึงบัญชีผู้ใช้โซเชียลมีเดียต่างๆ เช่น LINE, Facebook หรือแม้แต่เรื่องพื้นฐานอย่าง e-mail มากเท่าที่ควร ทำให้ยิ่งใช้ระบบไฮเทคขึ้นเท่าไหร่ ก็ยิ่งเสี่ยงกับปัญหาเรื่องถูกขโมยเงิน หรือถูกขโมยตัวตนบนโลกโซเชียล แล้วนำไปใช้ในทางที่เสียหาย เช่นปลอมตัวไปกระทำผิด เช่น ขอยืมเงินหรือหลอกลวงเพื่อนหรือญาติพี่น้องในเรื่องต่างๆ บ่อยขึ้น

ความจริงระบบเหล่านี้ถูกออกแบบมาให้มีกลไกรักษาความปลอดภัยในตัวอยู่ระดับหนึ่งแล้ว คือระบบที่เรียกว่า “การยืนยันตัวตน 2 ระดับ” (2-Factor Authentication หรือเขียนย่อๆ ว่า 2FA) แต่ส่วนมากผู้ใช้จะละเลย ไม่ค่อยเปิดใช้ ด้วยรู้สึกว่าทำให้ยุ่งยาก แต่ในความเป็นจริงแล้วยุคนี้ทำง่ายมาก แค่มีมือถือเครื่องที่ใช้ประจำติดตัวก็ทำได้แล้ว ซึ่งขอบอกเลยว่ากันไว้ก่อนดีกว่าแก้ เพราะถ้าโดนแฮคไปแล้วจะแย่และยุ่งกว่ามากนัก

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

หลักการของระบบยืนยันตัวตน 2 ระดับ

การทำงานของ 2FA โดยใช้ SMS

ความจริงชื่อที่เรียกกลไกป้องกันนี้แบบทางการว่า “ระบบยืนยันตัวตน 2 ระดับ” หรือ 2-Factor Authentication (2FA) อาจจะฟังดูยากไปหน่อย พูดให้ง่ายๆ ก็คือ ปกติเวลาเราจะเข้าใช้บริการอะไร ก็ต้องกรอกชื่อผู้ใช้ กับรหัสผ่าน เป็นปกติอยู่แล้ว ซึ่งอันนี้คือการยืนยันตัวตน “ระดับที่หนึ่ง” แสดงว่าเป็นตัวเราเองนะ ไม่ใช่คนอื่น แต่ตรงนี้ก็อาจมีช่องโหว่ให้ถูกขโมยบัญชีได้ง่ายๆ เช่น

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

ดังนั้นบริการอีเมล์หรือโซเชียลทั่วไปทุกอันจึงเพิ่มการยืนยันตัวตน “ระดับที่สอง” เข้ามา คือเมื่อใดที่จะล็อกอินเข้าใช้ ระบบจะส่งรหัสอีกชุดหนึ่งยาว 4-6 ตัว ให้ทาง SMS มาที่โทรศัพท์มือถือของเราหรืออีเมล์ ซึ่งจะต้องเอารหัสนั้นไปกรอกให้ถูกต้องเช่นเดียวกันถึงจะเข้าได้

——————————————————
ช่องทางในการส่งรหัส

การล็อกอินแล้วรอ SMS จาก Adobe

การส่งรหัสแบบนี้ปกติจะต้องใช้คนละช่องทางกับการเข้าใช้บริการ เช่นถ้าเข้าใช้ผ่านเว็บ ก็จะส่งรหัสให้ทางที่ไม่ใช่เว็บ เช่นทาง SMS เบอร์ที่เราแจ้งไว้ก่อน หรือทางอีเมล์ หรือบางทีถ้ามีแอพของบริการนั้นๆ อยู่ในเครื่องสมาร์ทโฟนแล้ว ก็ใช้วิธีส่งผ่านการแจ้งเตือน (Notification) ของแอพไปเลย เพราะหวังว่าคนที่พยายามแฮ็กจะยังไม่ได้เอาตัวเครื่องโทรศัพท์หรือรหัสอีเมล์ของเราไปด้วย (แต่ถ้าได้ไปด้วยกันหมดก็เสร็จโจร ป้องกันไม่อยู่เหมือนกัน)
——————————————————

เพิ่มความสะดวกด้วยแอพในมือถือ

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

  • เมื่อมีการพยายามเข้าระบบจากเครื่องใหม่ที่ไม่เคยใช้ ก็จะแจ้งเตือน (Notification) ขึ้นมาที่แอพนั้นให้เราตอบเลยว่าจะให้เข้าใช้บริการได้ไหม แค่เลือกว่าใช่หรือไม่ใช่ตัวเราก็จบแล้ว ไม่ต้องกรอกรหัสใดๆ ให้ยุ่งยาก
  • หรือบางทีถ้าไม่ได้ตั้งค่าให้เตือน ก็สามารถเข้าไปเปิดแอพนั้นๆ แล้วเลือกตอบใช่หรือไม่ใช่ (Yes หรือ No) เอาเองได้เช่นกัน

ล็อกอินแล้วรอ SMS จาก Adobe

 

 .   

ส่วนบางเว็บยังอาจต้องใช้วิธีรอเอสเอ็มเอสแล้วกรอกรหัสอยู่บ้าง แต่ก็มักจะทำต่อเมื่อล็อกอินจากเครื่องที่ไม่เคยใช้เท่านั้น เช่น โปรแกรมในชุด Adobe Creative Cloud (CC) เป็นต้น (ดังรูปก่อนหน้านี้)

——————————————————
ถ้าไม่มีเน็ตหรือไม่มีโทรศัพท์จะทำไง?

อีกปัญหาของการส่งรหัสคือ ถ้าเกิดว่าตอนนั้นไม่มีเน็ตใช้หรือไม่มีโทรศัพท์เบอร์นั้นๆ อยู่กับตัว เช่นกรณีเดินทางไปต่างประเทศแล้วเปลี่ยน SIM วิธีที่ใช้กันคือไม่ต้องส่งรหัส แต่ต้องมีแอพหรือโปรแกรมที่สามารถสร้างรหัสอยู่แล้วในเครื่อง (ก่อนจะลงแอพนั้นๆ ได้ก็ต้องมีเน็ตก่อนนะ ดังนั้นจึงต้องลงไว้ก่อนออกเดินทาง) เช่นแอพ Authenticator ของ Google, Microsoft (ใช้สร้างรหัสระดับที่ 2 นี้โดยเฉพาะ) หรือแอพ Facebook (เลือกเมนู More > Code Generator) ซึ่งรหัสที่ว่านี้จะเปลี่ยนไปเรื่อยๆ แทบจะทุกนาที (เพราะโปรแกรมผูกไว้กับเวลาที่เรียกใช้ โดยไม่ต้องมีการต่อเน็ต) เวลาใช้จึงต้องเปิดขึ้นมาปั๊บแล้วจดหรือก๊อปปี้เอา code ไปใส่เดี๋ยวนั้นเลย

ล็อกอินโดยใช้ code จากแอพ Authenticator

   

หน้าจอแอพ Authenticator ของ Google และ Microsoft

อีกวิธีที่เบสิกสุดๆ ก็คือบางราย เช่น GMail มีคำสั่งให้สร้างรหัสสำรองพิเศษ ที่สามารถใช้ได้ตลอด (แต่จะยาวกว่ารหัสปกติอยู่พอสมควร) ถ้าจะใช้ก็จดหรือสั่งปรินท์รหัสเหล่านี้บนกระดาษติดตัวไปด้วย อันนี้ก็สำหรับเวลาที่ใช้วิธีอื่นไม่ได้จริงๆ แล้ว
——————————————————

ปัญหาย้ายไปอยู่ที่มือถือ

   

หน้าจอล็อคเครื่องของ Android และ iPhone

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

แอพรับ-จ่ายเงินจะบังคับใช้ 2FA มาแล้วในตัวเลย

   

แอพ SCB Easy ของธนาคารไทยพาณิชย์

ในส่วนของแอพที่เกี่ยวข้องกับการรับและจ่ายเงินทั้งหลายนั้น โดยมากพวกที่เป็นของธนาคาร มักจะบังคับให้ใช้ 2-Factor Authentication (2FA) มาเป็นปกติแล้วตั้งแต่ตอนติดตั้ง คือก่อนจะลงทะเบียนและเข้าถึงบัญชีได้ก็จะต้องมีการยืนยันตัวตนโดยรับ SMS ทางหมายเลขที่แจ้งไว้ก่อน แถมตอนเข้าใช้งานยังมีการหมดเวลา คือบังคับให้ทำการล็อกอินแล้วกรอกชื่อและพาสเวิร์ดใหม่เป็นระยะๆ โดยไม่เปิดค้างไว้ตลอด ซึ่งก็น่าจะปลอดภัยกว่าแอพอื่นๆ ในระดับหนึ่ง

การตั้งรหัสผ่านแยกแต่ละบริการก็สำคัญ

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

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

เรื่องนี้ผมเคยเจอมากับตัวแล้วเมื่อเกิดกรณีข้อมูลชื่อผู้ใช้และรหัสผ่านของ Adobe กว่า 38 ล้านชื่อถูกแฮ็คเมื่อปี 2013 ซึ่ง เมื่อเกิดเรื่องขึ้นทาง Adobe ก็แจ้งมาให้เราเปลี่ยน password ใหม่ ซึ่งไม่ได้เสียหายอะไรเพราะตอนนั้นเรายังไม่ได้เก็บข้อมูลใดๆ บน Cloud ของ Adobe แต่ที่สำคัญคือถ้าใครดันใช้ชื่อกับพาสเวิร์ดนั้นในที่อื่นๆ ด้วยเช่น อีเมล์ ก็แปลว่าอาจโดนแฮ็คอีเมล์นั้นไปด้วย เพราะชื่อและพาสเวิร์ดของเราจะไปปรากฏหราอยู่บนตลาดมืดที่แลกเปลี่ยนข้อมูลผิดกฏหมายในมุมมืดของอินเทอร์เน็ตไปอีกนาน เช่นเดียวกับกรณีที่บริษัทมือถือรายใหญ่ของไทยทำข้อมูลรั่วไหลบนบริการ Cloud ของ Amazon ในปี 2018 ที่ผ่านมา แต่เคสหลังนี้แย่กว่าเพราะเป็นข้อมูลบัตรประชาชน ทั้งชื่อจริง เลยประจำตัว 13 หลัก และวันเดือนปีเกิด ที่ล้วนแต่เปลี่ยนแปลงแก้ไขอะไรไม่ได้ซักอย่าง ไม่เหมือนพาสเวิร์ดที่เปลี่ยนใหม่ได้เรื่อยๆ 🙁

สรุป

ทั้งหมดที่เล่ามานี้ก็หวังว่าจะกระตุ้นเตือนใครๆ ให้เห็นความสำคัญของการตั้งค่าระบบรักษาความปลอดภัยต่างๆ ทั้งอีเมล์ โซเชียล แอพรับ-จ่ายเงินออนไลน์ รวมไปถึงใส่รหัสผ่านในการเข้าใช้อุปกรณ์ Smart device ต่างๆ ทั้งสมาร์ทโฟนและแท็บเล็ต ให้แตกต่างกัน และรัดกุมขึ้นกว่าที่เคยๆ ทำกันมา ถ้าอันไหนมีระบบ 2FA ให้เลือกก็เลือกใช้ไปเถอะครับ มันจะทำให้ลดปัญหาที่จะตามมาในอนาคตไปอีกเยอะเลย 🙂