Technology

Passwordless กับโลกของ Password ที่ไม่มี Password

By Arnon Puitrakul - 25 กุมภาพันธ์ 2022 - 2 min read min(s)

Passwordless กับโลกของ Password ที่ไม่มี Password

Password เป็นของที่เราใช้งานมานานแล้ว อย่างเราเอง ณ วันที่เขียนเราอายุ 25 แล้ว ตั้งแต่เราใช้เครื่องคอมพิวเตอร์มา เราก็ใช้งาน Password มาโดยตลอด เพราะ Password เป็นวิธีการยืนยันตัวตน (Authentication) ที่เก่ามาก ๆ วิธีนึงเลย แต่เมื่อเวลาผ่านไป เรามี Account มากขึ้นเรื่อย ๆ การใช้ Password อาจไม่ตอบโจทย์เสมอไป ทำให้เรื่อง Passwordless เข้ามา มันคืออะไร และ เราในฐานะผู้ใช้ เราจะปรับตัวอย่างไร เราลองมาหาคำตอบในบทความนี้เลย

ทำไม Password ไม่ตอบโจทย์แล้ว

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

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

เพราะวิธีที่ใช้ในการเดาแบบนึงที่ทำได้ง่ายที่สุดคือการทำ Brute Force เข้าไปเลย หลักการก็คือ เราก็เดามันไปเลยทีละอัน ไล่ ๆ หาไปเรื่อย ๆ จนกว่า มันจะเจอ Password ที่ Login ผ่าน ดังนั้น ถ้าเราตั้ง Password ง่าย ๆ สั้น ๆ โอกาสที่จะหาเจอได้เร็วมันก็สูงขึ้น ไปดูที่เรื่องของความน่าจะเป็นกันดีกว่า ถ้าเราบอกว่า Password ของเราประกอบด้วย ตัวหนังสือภาษาอังกฤษ เอาแค่พิมพ์เล็กเท่านั้นก่อน ก็คือมี 24 ตัว ให้ใส่สัก 12 ตัวเลยอะ ดังนั้น Password ที่เป็นไปได้ คิดยังไงครับ 1 ช่องเรามีได้ 24 แบบ ดังนั้น 12 ช่อง ก็จะมีทั้งหมด 24 ยกกำลัง 12 หรือประมาณ 3.52 คูณ 10 ยกกำลัง 16 สำหรับคน เราบอกเลยว่าดูเหมือนเยอะนะ แต่ในมุมของเครื่อง เราบอกเลยว่าไม่เยอะเลย ง่ายมาก ๆ เรากำลังคุยกันหลักชั่วโมงเท่านั้น เอาดีขึ้นมาหน่อย เราใส่ตัวเล็ก และ ตัวใหญ่ด้วย จากเดิมที่มี 24 แบบต่อช่อง ก็จะกลายเป็น 48 ตัวต่อช่อง ความเป็นไปได้ก็คือ 1.495 คูณ 10 ยกกำลัง 20 ก็เยอะขึ้นมาหน่อยแต่สำหรับเครื่องก็ไม่นานมากหรอก

แต่ด้วยจำนวนขนาดนี้ Hacker เขาก็ฉลาดกว่านั้น ไม่ปล่อยให้เครื่องคิดง่าย ๆ หรอก เพราะจากการสังเกตหลาย ๆ User มักชอบ เอาชื่อ หรือข้อมูลส่วนตัวของตัวเองมาเป็น Password ทำให้วิธีที่จะช่วยให้หา Password ได้เร็วขึ้นคือการเอาพวก Keyword ที่อยู่ใน Username หรือข้อมูลส่วนตัวที่อาจจะมี มาค้นหาก่อน

GitHub - OWASP/passfault: OWASP Passfault evaluates passwords and enforces password policy in a completely different way.
OWASP Passfault evaluates passwords and enforces password policy in a completely different way. - GitHub - OWASP/passfault: OWASP Passfault evaluates passwords and enforces password policy in a com...

นอกจากนั้น มันมีรายงานออกมาถึง Password ที่คนชอบตั้งกัน โดยทั่ว ๆ ไปแล้วเวลาเราจะ Crack Password กัน เราก็จะเริ่มจาก Password พวกนี้แหละ เอามาหาก่อนเลย หรือพวก Pasword Cracker มันมี List พวกนี้ Built-in มาในโปรแกรมเลย เราแค่ติ๊ก แล้วก็หาพวกนี้ก่อนได้เลยแหละ

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

Authentication คือสาเหตุที่เราต้องใช้ Password

ก่อนเราจะไปเรื่องของ Passwordless เราอยากจะมาเล่าก่อนว่า ทำไมนะ ทำไมเราต้องใช้ Password สาเหตุของมันคือ การทำสิ่งที่เรียกว่า การยืนยันตัวตน หรือ Authentication บางคนอาจจะสับสนกับคำว่า Authorisation มันคือคนละความหมายเลยนะ

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

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

ถามว่า ถ้าจุดประสงค์ของการทำ Authentication คือการ ยืนยันตัวตน ถามว่า Password เป็นวิธีเดียวหรือไม่ที่จะช่วยยืนยันตัวตนได้ จริง ๆ แล้วก็คือ ไม่ เราสามารถใช้ะไรก็ได้ในการยืนยันตัวตน แต่ ควรจะ เป็นสิ่งที่ผู้ใช้นั้น ๆ มี หรือรู้คนเดียว เช่น ลายนิ้วมือ (Fingerprint) และ โครงหน้า (Facial Structure)

Passwordless คืออะไร ?

คำว่า Passwordless มันไม่ได้พึ่งเกิดมา 1-2 ปีนะ มันเกิดมานานกว่านี้แล้ว เพราะปัญหาของ Password มันปวดหัวขึ้นเรื่อย ๆ ทำให้นักคอมพิวเตอร์มองย้อนกลับมาที่พื้นฐานของการทำ Authentication ว่า จริง ๆ แล้วการทำ Authentication เราจำเป็นต้องใช้ Password จริง ๆ เหรอ เราสามารถใช้อย่างอื่นได้นิ เป็นสิ่งที่ User มี แต่คนอื่นไม่มีได้นิน่า

ดังนั้น Passwordless จริง ๆ ก็คือการ Authentication ด้วยอะไรก็ได้ที่ไม่ใช่ Password อาจจะเป็น หน้า และ ลายนิ้วมือก็ได้ แค่นั้นเลย

โดยในปัจจุบัน เราเชื่อว่าหลาย ๆ คนก็ใช้งานพวก Passwordless Authentication กันเยอะพอสมควรเลย อย่างถ้าใครที่ใช้ iPhone เอง ก็อาจจะคุ้นเคยกับสิ่งที่เรียกว่า FaceID ที่เป็นการใช้หนังหน้าของเราในการปลดล็อค ใช้พวก Depth Sensor ที่อยู่แถว ๆ กล้องหน้าของเราอ่านพวกโครงสร้างของหน้าเรา แล้วเอามาเทียบกับหน้าที่ลงทะเบียนไว้ตอนแรก ถ้าตรงก็เข้าได้เป็นอะไรแบบนั้น

หรือสำหรับ Mac เอง ที่ใช้คู่กับ Apple Watch เมื่อเราเปิดเครื่องขึ้นมา แล้วเครื่องมันหา Apple Watch ของเราเจอ มันก็จะปลดล็อคให้เรา มันก็เป็นการใช้หลักการที่ว่า นาฬิกาของเรา เราก็ควรเป็นคนใส่ ทำให้มันเป็นของที่เจ้าของตัวจริงเท่านั้นแหละ ถึงจะใส่อยู่ได้

Yubikey

อีกตัวอย่าง ก็คือ การใช้พวก Hardware Authenticator อย่าง Yubikey และ Smart Card ในการปลดล็อค ให้เรามองของพวกนี้เหมือนกุญแจจริง ๆ เลย นึกถึงกุญแจบ้านเราเองอะ คนอื่นมันก็ไม่ควรจะมี คนข้างบ้านไม่ควรจะมี คนแปลกหน้าไม่ควรมีกุญแจบ้านเราแน่ ๆ ทำให้กุญแจบ้านของเราเป็นของที่เราเท่านั้น หรือคนที่อาศัยอยู่ในบ้านเดียวกับเราเท่านั้นถึงจะมีได้ ทำให้มันเป็นของอีกอย่างที่สามารถใช้ในการทำ Authentication ได้นั่นเอง

ตอนนี้ Passwordless ถูกใช้เยอะแค่ไหนแล้ว

ณ วันที่เขียน เราต้องยอมรับเลยว่า Passwordless ถูกใช้งานเยอะขึ้นเรื่อย ๆ แล้ว ตัวอย่างที่เรายกมาเมื่อครู่ เราก็จะเห็นว่ามันเกิดขึ้นมานานมาก ๆ แล้ว แต่สำหรับ User ปกติ พวก Online Account เดี๋ยวนี้ก็มีเยอะขึ้นเรื่อย ๆ แล้ว เรายกตัวอย่างง่าย ๆ เป็น Microsoft Account ละกัน ถ้าเราเข้าไปที่หน้า Account > Security > Advanced security options เราจะเจอกับตัวเลือกที่เขียนว่า Passwordless Account ให้เราเปิดการใช้งานได้เลย

หรือส่วนของ Google Account เอง ก็มีเหมือนกัน โดยเราใช้กันมานานแล้วละ ที่เวลาเรา Login Google Account แล้วมันจะเด้งไปที่เครื่องที่เป็น Android หรือ iOS ที่ลง Google App ไว้ว่า มันมีการ Login จากเครื่องนั้น ๆ นี่ ๆ เราจะอนุญาติให้เข้าใช้ได้มั้ย ถ้ากด Allow มันก็จะเข้าไปได้เลย โดยที่ไม่ต้องใส่ Password เลย ง่ายมาก ๆ เลยละ

หลาย ๆ เว็บ และ บริการก็เริ่มหันมาใช้ Passwordless กันบ้างแล้วละ เราว่าอีกไม่นานมันก็น่าจะเป็นอะไรที่เราใช้กันเป็นเรื่องปกติละ

สรุป

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