รหัสผ่านของฉันแข็งแรงแค่ไหน?
TL;DR: ความปลอดภัยจริงของรหัสผ่านขึ้นอยู่กับสองสิ่ง — entropy (ความคาดเดาไม่ได้) และ ความไม่ซ้ำ (ไม่เคยใช้ซ้ำหรือรั่วไหล) รหัสผ่านที่ดูซับซ้อนก็สามารถถูกถอดรหัสได้ในไม่กี่วินาทีหากเป็นไปตามรูปแบบที่คาดเดาได้ กำหนดเป้าหมาย entropy อย่างน้อย 80 bits และใช้รหัสผ่านที่ไม่ซ้ำกันสำหรับทุกบัญชี
คนส่วนใหญ่ประเมินความปลอดภัยของรหัสผ่านตัวเองสูงเกินจริงมาก รหัสผ่านที่ดูซับซ้อนก็ยังสามารถถูกถอดรหัสได้ในไม่กี่วินาทีหากเป็นไปตาม รูปแบบที่คาดเดาได้
P@ssw0rd!)
จะถูกถอดรหัสทันที ไม่ว่าจะดูซับซ้อนแค่ไหนก็ตาม
→ สร้างรหัสผ่านที่แข็งแรงเดี๋ยวนี้
อะไรทำให้รหัสผ่านอ่อนแอ?
- ความยาวสั้น — ต่ำกว่า 12 ตัวอักษรทำให้มี entropy จำกัดแม้จะมีสัญลักษณ์ก็ตาม
- คำหรือรูปแบบที่ใช้กันทั่วไป — "P@ssw0rd1", "Admin123!" และการเดินบนแป้นพิมพ์เช่น "Qwerty!" อยู่ในพจนานุกรมของผู้โจมตีทุกคน
- ข้อมูลส่วนบุคคล — ชื่อ วันเกิด เบอร์โทรศัพท์ ชื่อสัตว์เลี้ยง และทีมกีฬา จะถูกเดาในช่วงต้นของการโจมตีแบบเจาะจงเป้าหมาย
- การใช้รหัสผ่านซ้ำ — การละเมิดข้อมูลครั้งเดียวเปิดเผยทุกเว็บไซต์ที่คุณใช้รหัสผ่านเดียวกัน
- การแทนที่ที่คาดเดาได้ — การแทน 'a' ด้วย '@', 'o' ด้วย '0' หรือ 'e' ด้วย '3' เพิ่ม entropy ได้เกือบเป็นศูนย์ ผู้โจมตีใช้การแปลงเหล่านี้โดยอัตโนมัติ
วิธีที่แฮกเกอร์ถอดรหัสผ่าน
1. การโจมตี Brute-Force
การโจมตี brute-force ลองทุกชุดตัวอักษรที่เป็นไปได้อย่างเป็นระบบ ความเร็วขึ้นอยู่กับฟังก์ชัน hash ที่ปกป้องรหัสผ่าน:
| อัลกอริทึม Hash | ความเร็ว (1 GPU, ~2024) | หมายเหตุ |
|---|---|---|
| MD5 | ~30–50 พันล้าน/วินาที | ล้าสมัย — ห้ามใช้กับรหัสผ่าน |
| NTLM | ~100+ พันล้าน/วินาที | ระบบเก่าของ Windows — ยังพบได้บ่อยในการรั่วไหล |
| SHA-256 | ~10–15 พันล้าน/วินาที | เร็ว — ไม่ปลอดภัยสำหรับรหัสผ่านหากไม่มีการยืดคีย์ |
| bcrypt (cost 12) | ~1,000–10,000/วินาที | สร้างมาเพื่อรหัสผ่านโดยเฉพาะ — ช้ากว่ามาก |
| Argon2id | <1,000/วินาที | แนะนำโดย NIST SP 800-63B — ใช้หน่วยความจำสูง |
การประมาณเวลาถอดรหัสของเครื่องมือนี้ใช้สมมติฐาน 10 พันล้านครั้งต่อวินาที (เหมาะสมสำหรับการโจมตี SHA-256 แบบ offline) สำหรับรหัสผ่านที่ปกป้องด้วย bcrypt หรือ Argon2id ให้คูณเวลาที่แสดง ด้วยจำนวนล้านเท่าหรือมากกว่า
2. Dictionary Attack
แทนที่จะลองทุกชุดตัวอักษร dictionary attack ใช้รายการที่คัดสรรแล้วของรหัสผ่านที่รู้จัก และคำที่ใช้กันทั่วไป ชุดข้อมูล RockYou (15 ล้านรหัสผ่านจริงจากการรั่วไหลปี 2009) และฐานข้อมูล Have I Been Pwned (ข้อมูลรับรองที่รั่วไหลกว่า 10 พันล้านรายการ) เป็นเครื่องมือมาตรฐาน สำหรับผู้โจมตี รหัสผ่านใด ๆ ที่ปรากฏในการรั่วไหลถือว่าถูกบุกรุกอย่างถาวร ไม่ว่า จะดูมีความซับซ้อนเพียงใดก็ตาม
3. Credential Stuffing
เมื่อเว็บไซต์หนึ่งถูกละเมิดข้อมูล คู่ชื่อผู้ใช้/รหัสผ่านที่รั่วไหลจะถูกลองใช้กับ เว็บไซต์อื่น ๆ อีกหลายร้อยแห่งโดยอัตโนมัติ การโจมตีนี้สำเร็จเมื่อใดก็ตามที่มีการใช้รหัสผ่านซ้ำ ไม่ว่ารหัสผ่านของคุณจะแข็งแรงแค่ไหนก็ตาม หากคุณใช้มันในหลายเว็บไซต์ — การละเมิดครั้งเดียวจะเปิดเผยทั้งหมด ควรใช้รหัสผ่านที่แตกต่างกันสำหรับทุกบัญชี
4. การโจมตี Rainbow Table
rainbow table เป็นตารางค้นหาที่คำนวณล่วงหน้า โดยจับคู่รหัสผ่านที่ใช้กันทั่วไปกับค่า hash ของมัน ทำให้สามารถค้นหาย้อนกลับได้ทันที ระบบยืนยันตัวตนสมัยใหม่เอาชนะสิ่งนี้ได้โดยการเพิ่ม salt แบบสุ่มที่ไม่ซ้ำกันให้กับแต่ละรหัสผ่านก่อนการทำ hash hash ที่เติม salt อย่างถูกต้อง ไม่สามารถถูกโจมตีด้วย rainbow table ได้
เวลาถอดรหัสจริงในโลกแห่งความเป็นจริงที่ 10 พันล้าน/วินาที
| รหัสผ่าน | Entropy | เวลาถอดรหัส |
|---|---|---|
password | ~0 bits (อยู่ในพจนานุกรม) | ทันที |
P@ssw0rd! | ~0 bits (อยู่ในพจนานุกรม) | ทันที |
abc12345 | ~37 bits (8 ตัวอักษร, ชุดเล็ก) | ~4 วินาที |
Tr0ub4dor&3 | ~40 bits (อยู่ใน XKCD, พจนานุกรม) | ไม่กี่นาที |
| ตัวอักษร+ตัวเลข 12 ตัว, สุ่ม | 71.5 bits | ~230 ปี |
| ทุกประเภท 16 ตัวอักษร, สุ่ม | 102 bits | นับพันล้านปี |
บทบาทของการยืนยันตัวตนสองขั้นตอน
แม้แต่รหัสผ่านที่แข็งแรงก็สามารถถูกเปิดเผยผ่านการหลอกลวงแบบฟิชชิงหรือการละเมิดข้อมูล การยืนยันตัวตนสองขั้นตอน (2FA) เพิ่มชั้นการพิสูจน์ตัวตนที่สอง — โดยทั่วไปคือรหัสผ่านใช้ครั้งเดียว ตามเวลา (TOTP) จากแอปยืนยันตัวตน แม้รหัสผ่านของคุณจะถูกขโมย ผู้โจมตีก็ไม่สามารถเข้าสู่ระบบได้หากไม่มีปัจจัยที่สองของคุณด้วย
แนวทางปฏิบัติที่ดีที่สุด: รหัสผ่านที่แข็งแรงและไม่ซ้ำกัน + 2FA สำหรับทุกบัญชีที่สำคัญ
สิ่งที่ควรทำทันที
- ใช้ตัวจัดการรหัสผ่าน (Bitwarden, 1Password, KeePass) เพื่อสร้างและจัดเก็บรหัสผ่านที่ไม่ซ้ำกันสำหรับทุกเว็บไซต์
- เปิดใช้งานการยืนยันตัวตนสองขั้นตอนบนอีเมล ธนาคาร และทุกบัญชีที่รองรับ
- ตรวจสอบอีเมลของคุณที่ haveibeenpwned.com เพื่อดูว่าบัญชีของคุณอยู่ในการรั่วไหลที่รู้จักหรือไม่
- สร้างรหัสผ่านใหม่ที่แข็งแรง: ใช้เครื่องมือสร้างรหัสผ่านปลอดภัย
คำถามที่พบบ่อย
แฮกเกอร์ถอดรหัสผ่านได้เร็วแค่ไหน?
สำหรับ hash แบบ MD5 หรือ NTLM GPU สมัยใหม่ตัวเดียวสามารถลองได้ 30–100 พันล้านรหัสผ่านต่อวินาที อัลกอริทึมที่สร้างมาเพื่อรหัสผ่านโดยเฉพาะเช่น bcrypt หรือ Argon2id นั้นตั้งใจให้ชำระช้า — ประมาณ 1,000–10,000 ครั้งต่อวินาที — นี่คือเหตุผลที่อัลกอริทึม hash มีความสำคัญไม่น้อยไปกว่าตัวรหัสผ่านเอง
คุณเก็บรหัสผ่านของฉันไหม?
ไม่ ทุกอย่างทำงานในเบราว์เซอร์ของคุณเอง ไม่มีข้อมูลรหัสผ่านใดถูกส่งไปยังเซิร์ฟเวอร์ คุณสามารถตรวจสอบสิ่งนี้ได้ในเครื่องมือนักพัฒนาของเบราว์เซอร์ภายใต้แท็บ Network
dictionary attack คืออะไร?
dictionary attack ลองรหัสผ่านจากรายการขนาดใหญ่ของคำที่รู้จัก รหัสผ่านที่ใช้กันทั่วไป และข้อมูลรับรองที่รั่วไหลไปก่อนหน้านี้ เนื่องจากรายการเหล่านี้มีจำนวนรายการนับพันล้าน รหัสผ่านใด ๆ ที่อิงจากคำจริงหรือรูปแบบที่ใช้กันทั่วไปจึงมีความเสี่ยงอย่างร้ายแรง
credential stuffing คืออะไร?
credential stuffing ใช้คู่ชื่อผู้ใช้/รหัสผ่านที่รั่วไหลจากเว็บไซต์หนึ่งเพื่อลองใช้กับเว็บไซต์อื่น ๆ โดยอัตโนมัติ การใช้รหัสผ่านซ้ำหมายความว่าการละเมิดครั้งเดียวสามารถบุกรุกบัญชีได้หลายสิบบัญชี
รหัสผ่านที่ปลอดภัยต้องมี entropy กี่ bits?
ผู้เชี่ยวชาญด้านความปลอดภัยแนะนำ entropy 80+ bits สำหรับรหัสผ่านที่แข็งแรง รหัสผ่านสุ่ม 16 ตัวอักษรที่ใช้ทุกประเภทอักขระจะได้ ~102 bits เรียนรู้เพิ่มเติมในคู่มือ entropy ของเรา
คู่มือที่เกี่ยวข้อง: Password เทียบกับ Passphrase · อธิบาย Password Entropy · ตัวอย่างรหัสผ่าน WiFi ที่แข็งแรง
เราไม่เก็บ ไม่จัดเก็บ หรือส่งรหัสผ่านใด ๆ