ทำไมรหัสผ่านที่เดาง่าย ถึงทำให้บัญชีเราเสี่ยงถูกแฮก?
NEXT4I Developer
Founder & Software Engineerทำไมรหัสผ่านที่เดาง่าย ถึงทำให้บัญชีเราเสี่ยงถูกแฮก?
เคยไหมครับ ตั้งรหัสผ่านแล้วคิดว่า “มีทั้งตัวใหญ่ ตัวเลข แถมใส่ @ ไปอีกตัว แบบนี้น่าจะเดายากแล้ว”
แต่ถ้ารหัสนั้นมาจากชื่อเราต่อด้วยปีเกิด หรือเป็นรหัสเดียวกับที่ใช้มาแล้วหลายเว็บ เครื่องหมายที่เพิ่มเข้าไปก็อาจช่วยได้น้อยกว่าที่คิด
คนที่อยากเข้าบัญชีเราไม่จำเป็นต้องนั่งเดาเองทีละรหัสครับ เขาใช้โปรแกรมลองรูปแบบที่คนชอบใช้ได้ และถ้ามีรหัสของเราหลุดมาจากเว็บอื่นอยู่แล้ว ก็อาจไม่ต้องเดาเลยด้วยซ้ำ
เรื่องนี้เลยไม่ได้มีแค่คำถามว่า “รหัสซับซ้อนพอหรือยัง?” แต่ต้องเช็กด้วยว่า เดาง่ายไหม ใช้ซ้ำหรือเปล่า และเคยหลุดไปแล้วหรือยัง
สรุปก่อนอ่าน
- ตัวใหญ่ ตัวเลข และเครื่องหมายไม่ได้ทำให้รหัสเดายากโดยอัตโนมัติ ถ้ายังมาจากรูปแบบที่คนใช้กันเยอะ
- รหัสที่ยาวและเดายากก็ยังเสี่ยง ถ้าใช้ซ้ำหรือถูกหลอกให้กรอกในเว็บปลอม
- การลองผ่านหน้าเว็บกับการลองจากข้อมูลรหัสผ่านที่รั่วเป็นคนละกรณี จึงบอกเวลาแฮกแบบตายตัวไม่ได้
- เริ่มจากใช้รหัสคนละชุด ให้แอปจัดการรหัสผ่านช่วยเก็บ และเปิดการยืนยันตัวตนเพิ่มหรือใช้ passkey ที่บริการรองรับ
แบบไหนเรียกว่ารหัสผ่านไม่ปลอดภัย?
ไม่ใช่แค่รหัสสั้นๆ อย่าง 123456 นะครับ รหัสยาวก็มีปัญหาได้ ถ้ามันเดาง่ายหรือคนอื่นรู้ไปแล้ว เช่น
- คำยอดฮิตอย่าง
password123หรือเรียงปุ่มบนคีย์บอร์ดแบบqwerty - ชื่อ วันเกิด เบอร์โทร หรือชื่อสัตว์เลี้ยงที่หาได้จากโปรไฟล์ของเรา
- คำคุ้นๆ ที่เปลี่ยน
aเป็น@หรือเติม1ท้ายคำ - รหัสเดียวที่ใช้ทั้งอีเมล โซเชียล และเว็บช้อปปิ้ง
- รหัสที่เคยหลุดไปแล้ว แต่เรายังใช้อยู่
การใส่ตัวเลขหรือเครื่องหมายไม่ได้ผิดครับ เพียงแต่ถ้าคนใช้รูปแบบนั้นกันเยอะ โปรแกรมก็ลองรูปแบบเดียวกันได้ ความยาวจึงควรมาคู่กับความคาดเดายาก ไม่ใช่แค่เอาข้อมูลที่คนอื่นรู้มาต่อให้ยาวขึ้น
คนอื่นเข้าบัญชีเราได้อย่างไร?
1. ใช้โปรแกรมลองรหัสที่คนชอบตั้ง
ถ้าให้คนนั่งเดาเอง ก็คงลองได้ไม่กี่รหัสแล้วเหนื่อย แต่โปรแกรมทำงานซ้ำๆ ได้ เริ่มจากคำที่พบบ่อย แล้วลองเติมเลข เปลี่ยนตัวใหญ่ หรือแทนตัวอักษรด้วยเครื่องหมาย
ชื่อเล่นบวกปีเกิดอาจผ่านกติกาของเว็บที่บังคับให้มีตัวอักษรและตัวเลข แต่ถ้าข้อมูลสองอย่างนี้อยู่บนโซเชียล มันก็ไม่ใช่ความลับเท่าไรแล้วครับ
อย่างไรก็ตาม ไม่ใช่ทุกเว็บจะปล่อยให้ลองได้เรื่อยๆ ผู้ให้บริการควรจำกัดความถี่และจำนวนครั้งที่ลองผิด รวมถึงตรวจจับการล็อกอินที่ดูผิดปกติ การป้องกันของเว็บจึงมีผลต่อความเสี่ยงด้วย
2. เอารหัสที่หลุดจากเว็บหนึ่ง ไปลองกับอีกเว็บ
สมมติเราใช้รหัสเดียวกันทั้งเว็บช้อปปิ้ง อีเมล และโซเชียล วันหนึ่งเว็บช้อปปิ้งมีข้อมูลรั่ว และมีคนได้อีเมลกับรหัสผ่านที่ใช้ได้ของเราไป
เขาอาจเอาคู่นี้ไปลองล็อกอินบริการอื่นต่อ ไม่ต้องเจาะระบบของทุกเว็บใหม่ทีละแห่ง วิธีนี้เรียกว่า Credential Stuffing หรือการนำข้อมูลล็อกอินที่หลุดไปลองใช้กับบัญชีอื่น
นี่แหละครับที่ทำให้การใช้รหัสซ้ำอันตราย ต่อให้ตอนตั้งรหัสเราคิดว่าซับซ้อนมาก ถ้ามีคนรู้รหัสนั้นแล้ว ความซับซ้อนก็ไม่ได้ช่วยหยุดการนำไปใช้ซ้ำ
ถ้าแต่ละบัญชีใช้คนละรหัส รหัสที่หลุดจากเว็บหนึ่งก็จะเอาไปเปิดอีกบัญชีด้วยรหัสเดียวกันไม่ได้ แต่ไม่ได้แปลว่าบัญชีอื่นปลอดภัยจากทุกวิธีนะครับ ยังต้องดูเรื่องการหลอกให้ล็อกอินและการกู้คืนบัญชีด้วย
3. ลองหารหัสจากข้อมูล hash ที่รั่ว
เว็บไม่ควรเก็บรหัสผ่านเป็นข้อความที่เปิดอ่านได้ตรงๆ แต่ควรใช้วิธีแปลงสำหรับเก็บรหัสผ่านที่เรียกว่า hash
อธิบายง่ายๆ คือ ตอนล็อกอิน ระบบนำรหัสที่เรากรอกไปคำนวณแล้วเทียบกับค่าที่เก็บไว้ ไม่จำเป็นต้องเก็บรหัสต้นฉบับเพื่อเปิดอ่านกลับมา
แต่การทำ hash ไม่ได้ทำให้รหัสที่เดาง่ายหมดความเสี่ยง ถ้าข้อมูลนี้รั่ว คนที่ได้ไปอาจลองคำนวณจากรหัสที่คาดไว้ แล้วดูว่าค่าตรงกับข้อมูลที่รั่วหรือไม่
การลองแบบนี้เกิดบนเครื่องของเขา ไม่ต้องผ่านหน้าล็อกอินของเว็บ จึงไม่ได้ติดข้อจำกัดจำนวนครั้งที่เว็บตั้งไว้สำหรับการล็อกอินตามปกติ
เว็บควรใช้วิธี hash ที่ออกแบบมาสำหรับรหัสผ่าน มีค่าที่ต่างกันสำหรับแต่ละรหัสที่เรียกว่า salt และตั้งต้นทุนการคำนวณให้เหมาะสม เพื่อให้การลองแต่ละครั้งมีต้นทุนมากขึ้น ส่วนนี้ผู้ให้บริการต้องดูแลครับ เราเปิดดูหน้าล็อกอินอย่างเดียวก็ไม่ได้รู้ว่าเขาเก็บรหัสไว้ดีแค่ไหน
4. หลอกให้เรากรอกรหัสเอง
ข้อความอย่าง “บัญชีมีปัญหา กดลิงก์เพื่อยืนยันทันที” อาจพาเราไปหน้าล็อกอินปลอมที่ดูคล้ายเว็บจริง ถ้าเผลอกรอก คนที่ทำเว็บปลอมก็อาจได้รหัสไปโดยไม่ต้องเดา
วิธีนี้เรียกว่า Phishing ต่อให้รหัสยาวและเดายาก ก็ยังเสี่ยงถ้าเอาไปกรอกผิดเว็บครับ
อย่าดูแค่โลโก้หรือหน้าตาที่คุ้นเคย ต้องดูชื่อโดเมนด้วย ถ้าไม่แน่ใจ เปิดแอปหรือเข้าเว็บที่ใช้อยู่เอง แทนการตามลิงก์ในข้อความ
แล้วทำไมบางบัญชีถึงถูกเข้าถึงได้เร็ว?
เพราะบางกรณีไม่ได้เริ่มจากศูนย์ครับ คนที่เข้าบัญชีอาจมีรหัสอยู่แล้ว หรือใช้โปรแกรมลองเฉพาะรูปแบบที่มีโอกาสตรง ไม่ได้ไล่ทุกตัวอักษรแบบเท่าๆ กัน
แต่บอกไม่ได้ว่ารหัสแบบหนึ่งจะถูกหาเจอในกี่วินาทีเหมือนกันทุกครั้ง ต้องแยกก่อนว่าเกิดอะไรขึ้น:
| กรณี | สิ่งที่มีผล |
|---|---|
| ลองรหัสผ่านหน้าเว็บ | ความคาดเดายากของรหัส การจำกัดการลอง และการตรวจจับของเว็บ |
| ใช้รหัสที่ขโมยมาหรือหลุดไปแล้ว | รหัสยังใช้ได้ไหม มีการยืนยันเพิ่มหรือไม่ และเว็บตรวจพบความผิดปกติหรือเปล่า |
| ลองจาก hash ที่รั่ว | ความคาดเดายากของรหัส วิธีเก็บรหัส ต้นทุนการคำนวณ และทรัพยากรของคนที่ลอง |
| หลอกให้กรอกในเว็บปลอม | เรากำลังเข้าเว็บไหน ใช้วิธียืนยันตัวตนแบบใด และมีขั้นตอนกู้คืนแบบไหน |
การใช้โปรแกรมทำงานแทนคนทำให้การโจมตีเกิดได้โดยไม่ต้องรู้จักเราเป็นการส่วนตัว แต่ไม่ใช่เหตุผลที่จะเหมารวมว่าทุกบัญชีแฮกได้ทันที
ถ้าจะเริ่มดูแลบัญชี ควรทำอะไรก่อน?
ใช้คนละรหัส โดยเริ่มจากบัญชีสำคัญ
ถ้ายังเปลี่ยนไม่ครบ เริ่มจากอีเมล บัญชีการเงิน และบัญชีที่ใช้กู้คืนบริการอื่นก่อนครับ อีเมลสำคัญเป็นพิเศษ เพราะหลายบริการส่งลิงก์ตั้งรหัสใหม่มาที่นี่
ให้แอปจัดการรหัสผ่านช่วยจำ
แอปจัดการรหัสผ่าน (Password Manager) ช่วยสร้างและเก็บรหัสยาวๆ แบบไม่ซ้ำกัน เราจะได้ไม่ต้องจำทุกชุดเองหรือกลับไปใช้รหัสเดียวทุกเว็บ
บัญชีที่ใช้เปิดแอปนี้ก็สำคัญ ควรป้องกันให้ดีและดูวิธีกู้คืนที่ผู้ให้บริการแนะนำ ไม่ใช่ดูแลบัญชีอื่นครบแล้วลืมจุดที่เก็บรหัสทั้งหมด
เปิดการยืนยันเพิ่ม และเลือกแบบที่ต้านเว็บปลอมได้เมื่อมี
การยืนยันตัวตนหลายปัจจัย (MFA) เพิ่มขั้นตอนนอกเหนือจากรหัสผ่าน แต่แต่ละแบบป้องกันได้ไม่เหมือนกัน รหัสใช้ครั้งเดียวหรือ OTP ยังอาจถูกหลอกให้กรอกในเว็บปลอมแล้วนำไปใช้ต่อได้
ถ้าบริการรองรับ ลองใช้กุญแจความปลอดภัยหรือ passkey แบบ FIDO/WebAuthn ซึ่งผูกการยืนยันกับเว็บจริง จึงช่วยต้านการหลอกให้ล็อกอินบนโดเมนปลอมได้
Passkey ใช้แทนรหัสผ่านได้ในบริการที่รองรับ แต่ไม่ได้รับประกันความปลอดภัยทุกด้าน ยังต้องดูแลอุปกรณ์และวิธีกู้คืนบัญชีด้วย
เปลี่ยนเมื่อมีเหตุ ไม่ใช่เปลี่ยนแค่ตามปฏิทิน
ถ้ารู้หรือสงสัยว่ารหัสหลุด ให้เปลี่ยนทันที รวมถึงบัญชีอื่นที่ใช้รหัสเดียวกัน และอ่านประกาศของผู้ให้บริการว่าเกิดอะไรขึ้น
ส่วนรหัสที่ยาว ไม่ซ้ำ และไม่มีเหตุให้สงสัยว่าหลุด ไม่จำเป็นต้องเปลี่ยนเพียงเพราะครบกำหนดเวลา แนวทาง NIST ไม่แนะนำให้บังคับเปลี่ยนรหัสเป็นรอบๆ โดยไม่มีเหตุจากการรั่วหรือถูกขโมย
เช็กการล็อกอินและข้อมูลกู้คืน
ดูว่ามีการล็อกอินที่ไม่คุ้นไหม อีเมลหรือเบอร์กู้คืนยังเป็นของเราอยู่หรือเปล่า และเมื่อเจอข้อความเร่งให้ยืนยันบัญชี อย่ารีบกรอกข้อมูลตามลิงก์
ผู้ให้บริการก็ต้องทำส่วนของตัวเอง
เราเลือกให้รหัสไม่ซ้ำได้ แต่เลือกวิธีเก็บรหัสของเว็บแทนเขาไม่ได้ครับ ระบบควรมีทั้งการเก็บรหัสอย่างเหมาะสม การจำกัดการลอง การตรวจรหัสที่รู้กันว่าเคยรั่ว และการยืนยันเพิ่ม
ขั้นตอนกู้คืนบัญชีก็ต้องดูแลไม่ให้กลายเป็นทางเข้าที่ง่ายกว่าการล็อกอินปกติ ถ้าเกิดข้อมูลรั่ว ผู้ให้บริการควรบอกให้ชัดว่าอะไรหลุด ผู้ใช้ต้องทำอะไร และบัญชีไหนต้องเปลี่ยนรหัส ไม่ใช่ปล่อยให้เดากันเอง
สรุป: อย่าฝากความปลอดภัยไว้กับรหัสอย่างเดียว
รหัสที่เดาง่าย ใช้ซ้ำ หรือหลุดไปแล้วทำให้บัญชีเสี่ยง เพราะคนอื่นอาจใช้โปรแกรมช่วยลอง ใช้ข้อมูลที่มีอยู่ หรือหลอกให้เราบอกรหัสเอง
ถ้าจะเริ่มวันนี้ ผมแนะนำให้เริ่มจากอีเมลหลักก่อนครับ ใช้รหัสที่ไม่ซ้ำกับบัญชีอื่น ให้แอปจัดการรหัสผ่านช่วยเก็บ และเปิดการยืนยันเพิ่มหรือใช้ passkey ถ้ามี
รหัสที่ดีช่วยได้เยอะ แต่ไม่ควรเป็นสิ่งเดียวที่เราพึ่ง
แหล่งอ้างอิง
- OWASP Authentication Cheat Sheet
- NIST SP 800-63B-4: Authentication and Authenticator Management
- CISA: Use Strong Passwords ใช้ประกอบคำแนะนำเรื่องรหัสยาว สุ่ม ไม่ซ้ำ และแอปจัดการรหัสผ่าน หน้าอ้างอิงนี้มีป้าย Archived Content
ติดตามการเดินทางของ NEXT4I ได้โดยตรงผ่านเว็บไซต์นี้ และสามารถลงทะเบียนเพื่อทดลองใช้ผลิตภัณฑ์ → ได้ที่นี่
Be the first to try it
ลงชื่อเพื่อรับแจ้งเตือน และร่วมเป็นผู้ใช้งานกลุ่มแรกพร้อมรับสิทธิพิเศษ
Drop your email to get notified. Early access members get exclusive perks!
We hate spam as much as you do. Only big updates, no junk.
No subscriptions. No annual fees. No lock-ins.
NEXT4I