กู้ 2 factor authentication

ผมใช้ 2 factor authentication (2fa) มาได้สักสามสี่ปีแล้ว เนื่องจากวันนึงอีเมลผมโดนเด้งมาว่ามีการเข้าใช้จากประเทศแปลกๆ ผมก็รู้สึกไม่ปลอดภัย แต่ผมคิดรหัสผ่านใหม่เจ๋งๆ ไม่ออก กลัวจะลืมด้วย ก็เลยว่างั้นเปิด 2 factor เลยดีกว่า (ตอนนี้รหัสผมก็ใช้ password manager จัดการอีกที ก็ปลอดภัยขึ้นจากการเดารหัสแต่ถ้าไฟล์รหัสผมหลุดไปนี่ก็อีกเรื่องหนึ่ง ก็เก็บไฟล์ให้ดีๆ และตั้ง master password ที่ปลอดภัย)

ทีนี้วันนี้อยาก wipe rom ครับ ก็เลยกด wipe ไปโต้งๆ ด้วยความที่คิดว่า Authy มันมี backup ขึ้น cloud ให้อยู่ไม่ต้องกลัวอะไร ปรากฏว่า มัน backup ไม่ครบ และเป็นครั้งแรกที่ผมเจอว่ามันทำแบบนี้ (ครั้งก่อนผมได้คืนมาครบ) ก็เลยถึงคราวซวยที่ต้องมานั่งลิสต์แล้วครับว่าต้องทำอะไรบ้าง

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

  • Dropbox อันนี้ไม่มีปัญหา ใช้ SMS รับได้ แต่ตอนนั้นผมเข้าค้างไว้อยู่แล้ว รู้สึกน่ากลัวมากๆ ตรงที่มันเปลี่ยนการตั้งค่า 2 Factor ได้โดยไม่ต้องกรอกรหัสซ้ำ
  • GitHub ใช้ SMS รับรหัสได้แล้วก็เข้าไปเปลี่ยน (GitHub ใช้ sudo mode จะไม่ถามรหัสซ้ำในช่วงเวลาหนึ่ง ถึงจะตั้งให้ login ค้างไว้ก็อาจจะถามซ้ำได้)
  • Google ใช้ SMS รับได้ ปัญหาคือ Android first boot รับ SMS ไม่ได้ ก็จะมีตัวเลือกคือให้โทรมาแทน โทรมาเป็นเบอร์ 081 เป็นภาษาอังกฤษและคุณภาพเสียงห่วยมาก

Google ถ้าเปิดปิด 2FA จะเด้ง login ที่ค้างอยู่หมดนะครับ ยกเว้นเครื่องที่กดปิด แต่ถ้าเปลี่ยนประเภทจากแอพเป็น SMS แบบนี้ไม่เด้ง และผมได้ยินว่าถ้าใช้มือถือก็ไม่ได้ด้วยต้องส่งเอกสารยึนยันให้ Google

  • Facebook ใช้ SMS รับรหัสได้ แต่ผมรู้สึกแปลกๆ ตรงที่ถ้า sign in ได้แล้วบนมือถือ มือถือตัวนั้นจะกลายเป็น code generator ไปเลยทันที ซึ่งผมว่าไม่ปลอดภัยตรงที่ถ้าผมให้อุปกรณ์หนึ่งๆ เป็น 2FA ผมถือว่าผม trust อุปกรณ์นั้นสุดๆ แต่เครื่องชาวบ้านผม trust แค่ครึ่งนึง ถ้าเกิดมันดักรหัสผมก็ไม่ได้ OTP ไป นี่กลายเป็นว่ามันจะได้ OTP ไปด้วยก็ไม่ใช่
  • Amazon Web Service ใช้ SMS ไม่ได้เลย มีแต่ทิ้งเบอร์ไว้ซึ่งสิบนาทีต่อมา Amazon โทรหาผม (เป็นภาษาอังกฤษ) ถามอีเมล, security question และเมลมาฉบับหนึ่งมีรหัสให้ผมอ่านให้ฟัง แล้วก็ปลดออกให้
  • DigitalOcean ใช้ SMS เข้าได้ แต่ถ้าใช้ SMS เข้าแล้วจะปลด 2FA ถาวร ต้องเข้าไปตั้งค่าใหม่อย่างเดียว

(นี่ถ้าสักสองปีก่อนงานเข้าโคตรๆ เลยครับเพราะ TOT3G ไม่มีบริการไหนรองรับเลย ขอ OTP ผ่าน SMS ไม่ได้)

อื่นๆ ที่เคยเจอมาคือ Blizzard (battle.net) ถาม serial เกมในไอดี ซึ่งผมไม่มีเกมในไอดีนั้น ก็เลยบาย ปิดทิ้งสมัครใหม่ง่ายกว่า

สรุปแล้วใช้ 2 factor ไม่ค่อยจะมีปัญหาตรงทำแอพพังเท่าไรครับ เพราะใช้ SMS ได้หมด ก็จะมีแค่ Amazon เท่านั้นแหละที่เป็นปัญหา

ปล. service หลายๆ ตัวจะมี backup code นะครับที่ใช้แทน 2FA แต่ผมไม่ได้ print มาเพราะไม่รู้จะเก็บไว้ที่ไหนให้ปลอดภัย คือไม่อยากไว้โต๊ะคอมมันเหมือนเขียนรหัสผ่านแปะหน้าจอ

[Through the Loop] เกมกับการปฏิวัติวงการศึกษา

ผมก็ไม่รู้ Through the Loop อัพเตดมานานมากแล้วแต่บล็อคเค้าย้ายออกไปอยู่รวมกับหน้าแรกของ Strange Loop Games ก็เลยไม่ได้เอามาเขียนสักที

สำหรับตอนนี้เป็นตอนที่น่าสนใจมาก เกี่ยวกับการปฏิวัติวงการศึกษา ในบทความนี้ผมเสริมเข้าไปหลายๆ จุดจากบทความต้นฉบับด้วยนะครับ


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

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

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

“ส่งเสริมการเรียนรู้”

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

ผมว่าการทำเกมแบบนี้นี่แหละให้ผลตรงกันข้ามเลย เพราะมันมีข้อความแฝงอยู่ว่า ถ้าเนื้อหาวิชาการใช้เป็นอุปสรรค์ที่จะต้องทำเพื่อเจอเนื้อหาที่สนุก เหมือนเป็นตัวร้ายแล้ว สิ่งที่เกมกำลังนำเสนอให้ผู้เล่นคือสิ่งที่ผู้เล่นควรจะต้องทำลายหรือเลี่ยง เหมือนนำเสนอว่าคณิตศาสตร์ “น่าเบื่อ แต่ก็จำเป็น”

และอีกวิธีหนึ่งก็ไม่ต่างกันเลยคือเกมที่พยายามซ่อนเนื้อหาวิชาการไว้แล้วมาเฉลยทีหลังว่า “อ้อ พัซเซิ่ลเมื่อกี้นี้คือการแก้สมการนี่เอง” สิ่งที่เกมกำลังจะสื่อคือการแก้สมการมันยากน่ารำคาญมากจนต้องหลอกให้ผู้เล่นทำตาม

ถ้าเกมเพื่อการเรียนรู้ยังอยู่ได้แค่นี้ ก็คงเป็นเกมแนวน่าเบื่อหน่ายต่อไปอีกล่ะครับ

ทำได้มากกว่านั้น

แต่แน่นอนล่ะ ใน Oregon Trail เราก็เห็นว่ามันเป็นเกมการศึกษาได้ หรือในอีกหลายๆ เกมที่เราไม่คิดว่ามันจะเป็นเกมการศึกษาได้ เช่น Portal, Braid, Minecraft

ตัวอย่างหนึ่งคือเกม Papers, Please ซึ่งให้ผู้เล่นรับบทเป็นผู้ตรวจเอกสารในยุคสงครามเย็น ผมคิดว่านี่น่าจะเป็นเกมที่ให้ประสบการณ์สำหรับยุคสงครามเย็นดีที่ดีที่สุดแล้ว

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

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

แล้วเราจะทำยังไงดีล่ะ?

1. ตีความเกมเสียใหม่

จุดแรกเลยในการสร้างเกมเพื่อการเรียนรู้คือเข้าใจจุดมุ่งหมายของเราก่อน ถ้าเราจะนำเสนอสิ่งที่มันเรียบๆ อย่างสูตรคูณ คิดเลขเร็ว หรือทดสอบความรู้รอบตัว ไม่ว่าจะทำเกมมายังไงก็ยังจะอยู่ในกรอบแบบเดิมๆ อยู่

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

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

2. การเรียนรู้เป็นเครื่องมือ ไม่ใช่จุดมุ่งหมาย

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

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

3. เรียกเข้ามา ไม่ใช่บังคับเข้าหา

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

เมื่อการเรียนรู้เป็นสิ่งที่ผู้เล่นต้องการ ไม่ใช่จุดหมายปลายทาง การได้มาซึ่งความรู้ก็จะเป็นประสบการณ์ที่แปลกออกไป

4. ระบบที่ยืดหยุ่น

จุดสำคัญของเกมคือการเล่น และการตีความคำว่าเล่นนี้ก็สำคัญ เล่น คือการทดลอง คือการฝึกฝน คือการเรียนรู้

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

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

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

หนทางอีกยาวไกล

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

มันเหมือนสุภาษิตของฝรั่งที่ว่าสอนคนให้จับปลา “ถ้าสอนนักเรียนแยกสมการ เค้าจะสอบผ่าน แต่ถ้าสอนนักเรียนว่าทำไมจะต้องสนใจคณิตศาสตร์ นี่แหละจะเป็นของขวัญอันยิ่งใหญ่”

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


ผมนึกไปถึง Fallout 3 นะกับการที่เอาเกมมาเป็น “ตัวช่วย” ตัวอย่างเช่น ในเควสที่จะเข้าสู่เกมหลักตัวละครของเราจะต้องหนีออกจาก Vault 101 โดยสามารถปลดประตูทางออกได้สามทางคือ

  1. ข่มขู่ Overseer
  2. ล้วงกระเป๋า Overseer
  3. ค้นตู้
  4. ฆ่า Overseer (ซึ่งดันเป็นพ่อของเพื่อนสนิทเรา)
  5. Hack terminal

ฉะนั้นแล้วผู้เล่นสามารถเลือกที่จะไม่ Hack terminal ได้อยู่หลายวิธี แต่ถ้าจะเป็นคนดีจริงๆ Hack terminal น่าจะเป็นวิธีที่ดีที่สุดแล้ว การ hack terminal นี่ก็เหมือนเกม mastermind ครับ คือจะมีรายการคำมั่วๆ อยู่หลายคำบนจอที่ความยาวเท่ากัน ให้เราเลือกคำมาจะบอกว่าถูกกี่ตัว (ต้องถูกทั้งตัวและตำแหน่ง) สามารถลองได้ 5 ครั้งถึงจะถูกล็อค (หรือวิธีทั่วไปที่เล่นคือลอง 4 ครั้งแล้วกดออกเข้าใหม่ซึ่งเกมจะสุ่มเฉลยใหม่ด้วย)

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

ทีนี้อย่างแรกเลยคือเธรดครับ เกมจะมี runner อยู่สองสีคือแดงกับฟ้าซึ่งจะรันคนละคำสั่งกันได้ ด่านแรกๆ อาจจะใช้สีเดียวผ่าน แต่ถ้าอยากติด high score ก็ต้องใช้สองสี และด่านหลังๆ ก็น่าจะจำเป็นต้องใช้ ตรงนี้ก็จะทำให้เราเข้าใจถึงการออกแบบการประมวลผลแบบคู่ขนาน

เสร็จแล้วปัญหาที่จะเกิดครับคือห้ามโมเลกุลชนกันเด็ดขาด ฉะนั้นแล้วเราก็จะต้องเริ่มมีการแก้ไขกรณีเหล่านี้ด้วยการใช้คำสั่ง synchronize เข้ามาช่วยให้ตัว runner หยุดรออีกตัวหนึ่งได้

พวกนี้นี่คอนเซปต์เรื่อง threading ทั้งนั้นเลยนะครับเนี่ย

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

ตอนค้นพบนี่มันเป็นโมเมนต์ที่ยูเรก้ามากครับ และนั่นก็หลายปีแล้วแต่ผมยังจำสมบัติตัวนี้ได้อยู่เลย

-qv