เครื่องมือตรวจสอบความแข็งแรงของรหัสผ่าน

0 อักขระ

สร้างรหัสผ่าน

ความยาว: 16

เครื่องมือตรวจสอบความแข็งแรงรหัสผ่าน GeekFormat ประเมินความปลอดภัยรหัสผ่านตามหลักวิทยาศาสตร์ตาม Shannon Entropy ป้อนรหัสผ่านเพื่อแสดงการจัดอันดับความแข็งแรงดาว 5 ระดับทันที ค่าเอนโทรปี (bits) การคาดการณ์เวลาถอดรหัส 3 สถานการณ์ (PC ทั่วไป/ซูเปอร์คอมพิวเตอร์/การโจมตีออนไลน์จำกัดความเร็ว) ตรวจสอบดัชนีความปลอดภัย 7 อย่างทีละรายการ (ความยาว ตัวพิมพ์ใหญ่/เล็ก ตัวเลข อักขระพิเศษ ไม่ซ้ำ ไม่เป็นลำดับต่อเนื่อง ตรงกับฐานข้อมูลรหัสผ่านอ่อนแอทั่วไป) และให้คำแนะนำการปรับปรุงส่วนบุคคล มีตัวสร้างรหัสผ่านสุ่มที่ปลอดภัยด้วยการเข้ารหัสในตัว (crypto.getRandomValues) รองรับความยาว 8-64 ตัวอักษรและชุดอักขระที่กำหนดเอง ประมวลผลในเบราว์เซอร์ในเครื่องอย่างสมบูรณ์ รหัสผ่านไม่ถูกส่งไปยังเซิร์ฟเวอร์

คำแนะนำที่เกี่ยวข้อง

เกี่ยวกับความแข็งแรงและความปลอดภัยของรหัสผ่าน

ความแข็งแรงของรหัสผ่าน (Password Strength) คือการวัดความสามารถของรหัสผ่านในการต้านทาน Brute-force Attack และ Dictionary Attack รหัสผ่านที่แข็งแรงควรมีความยาวเพียงพอ ชุดอักขระที่ใหญ่พอ (ผสมผสานอักขระหลายประเภท) การสุ่มที่เพียงพอ (ไม่มีรูปแบบ ไม่สามารถคาดเดาได้) และไม่อยู่ในรายการรหัสผ่านที่เคยรั่วไหล รหัสผ่านเป็นวิธีการยืนยันตัวตนดิจิทัลขั้นพื้นฐานที่สุดและใช้กันอย่างแพร่หลายที่สุด ตั้งแต่อีเมล บัญชีโซเชียลมีเดียไปจนถึงธนาคารออนไลน์ กระเป๋าเงินดิจิทัล เกือบทุกบริการออนไลน์ต้องพึ่งพาการป้องกันด้วยรหัสผ่าน รหัสผ่านอ่อนแอเป็นสาเหตุหลักของการรั่วไหลของข้อมูลและการขโมยบัญชี——สถิติหลายปีของ Verizon DBIR แสดงว่าเหตุการณ์การรั่วไหลของข้อมูลมากกว่า 80% เกี่ยวข้องกับรหัสผ่านอ่อนแอหรือการรั่วไหลของรหัสผ่าน

Shannon Entropy เป็นดัชนีทางวิทยาศาสตร์เพื่อวัดความแข็งแรงของรหัสผ่าน เสนอโดยบิดาแห่งทฤษฎีข้อมูล Claude Shannon ในปี 1948 ในวิชาการเข้ารหัส หน่วยของเอนโทรปีคือ bits แสดงลอการิทึม (ฐาน 2) ของจำนวนครั้งการลองเฉลี่ยที่จำเป็นสำหรับการ Brute-force รหัสผ่านนั้น ตัวอย่างเช่น เอนโทรปี 40 bits หมายความว่าผู้โจมตีโดยเฉลี่ยต้องลองชุดค่าผสม 2⁴⁰≈1 ล้านล้านชุด; เอนโทรปี 80 bits ต้องใช้ 2⁸⁰≈1 ล้านล้านล้านล้านครั้ง; เอนโทรปี 128 bits ไม่สามารถ Brute-force ได้ในอนาคตอันใกล้ จำเป็นต้องทราบว่า Shannon Entropy สมมติว่าอักขระรหัสผ่านเป็นการสุ่มอย่างสมบูรณ์ หากรหัสผ่านมีรูปแบบ (เช่น คำ + คำต่อท้ายตัวเลข) เอนโทรปีที่มีประสิทธิภาพจริงจะต่ำกว่าค่าทฤษฎี

Brute-force Attack เป็นวิธีการโจมตีรหัสผ่านที่ตรงไปตรงมาที่สุด: ลองชุดค่าผสมอักขระที่เป็นไปได้ทั้งหมดทีละชุด จนกว่าจะพบรหัสผ่านที่ถูกต้อง ความเร็วของ Brute-force Attack ขึ้นอยู่กับสองปัจจัย: ความสามารถในการประมวลผล (สามารถลองได้กี่ครั้งต่อวินาที) และค่าเอนโทรปีของรหัสผ่าน (ต้องลองกี่ครั้งจึงจะจับคู่ได้) พร้อมกับการเพิ่มขึ้นของความสามารถในการประมวลผลแบบขนานของ GPU ความเร็วของ Brute-force Attack เพิ่มขึ้นอย่างรวดเร็วอย่างยิ่ง——การ์ดกราฟิกระดับไฮเอนด์ในยุค 2020 สามารถลองหมื่นล้าน password hash ต่อวินาที แต่เมื่อค่าเอนโทรปีของรหัสผ่านสูงพอ (เช่น มากกว่า 100 bits) แม้จะรวบรวมทรัพยากรการประมวลผลทั้งหมดทั่วโลก ก็ไม่สามารถค้นหาให้เสร็จภายในอายุของเอกภพได้ ดังนั้น วิธีการที่มีประสิทธิภาพที่สุดในการต่อต้าน Brute-force Attack คือการใช้รหัสผ่านสุ่มยาวที่มีเอนโทรปีสูง

Dictionary Attack เป็นวิธีการโจมตีที่มีประสิทธิภาพมากกว่า Brute-force Attack: ผู้โจมตีไม่ได้ลองทุกชุดค่าผสม แต่ใช้ "พจนานุกรม" ซึ่งประกอบด้วยรหัสผ่านทั่วไป รหัสผ่านที่รั่วไหล รายการคำศัพท์ ชุดค่าผสมรูปแบบทั่วไปเพื่อลอง ผู้ใช้ส่วนใหญ่เลือกรหัสผ่านที่ไม่ได้สุ่มอย่างสมบูรณ์——การวิจัยแสดงว่าผู้ใช้มากกว่า 50% ใช้รูปแบบแปรผันของรหัสผ่านทั่วไป 1000 อันดับแรก Dictionary Attack เร็วกว่า Brute-force Attack หลายระดับขนาด เนื่องจากมันเพียงแค่ลองตัวเลือกที่เป็นไปได้สูงสุด ฐานข้อมูลรหัสผ่านทั่วไป (เช่น รหัสผ่าน 14 ล้านรายการที่รั่วไหลจาก rockyou ฐานข้อมูล Pwned Passwords ของ Have I Been Pwned) บันทึกรหัสผ่านหลายพันล้านรายการที่เคยรั่วไหลบนอินเทอร์เน็ต รหัสผ่านใดๆ ที่ปรากฏในรายการเหล่านี้ควรถือว่าไม่ปลอดภัย

การคาดการณ์เวลาในการถอดรหัสผ่านจำเป็นต้องพิจารณาสถานการณ์การโจมตี การโจมตีออนไลน์ (ลองผ่านอินเทอร์เฟซการเข้าสู่ระบบเว็บไซต์) มักถูกจำกัดความเร็วอย่างเข้มงวด——เซิร์ฟเวอร์จะจำกัดความถี่ของการพยายาม ล็อกบัญชีหลังจากล้มเหลวหลายครั้ง ขอรหัสยืนยัน ดังนั้นความเร็วจึงช้าที่สุด (ไม่กี่ครั้งถึงหลายร้อยครั้งต่อวินาที) การโจมตีออฟไลน์ (ผู้โจมตีได้รับฐานข้อมูล password hash แล้วถอดรหัสในเครื่อง) ความเร็วเร็วมาก——ใช้คลัสเตอร์ GPU ระดับไฮเอนด์สามารถลองร้อยพันล้านครั้งต่อวินาที ใช้คลาวด์คอมพิวติ้งหรือซูเปอร์คอมพิวเตอร์สามารถถึงล้านล้านครั้งหรือหลายพันล้านล้านครั้งต่อวินาที นอกจากนี้ ความเร็วในการถอดรหัสของอัลกอริทึมแฮชต่างกันมีความแตกต่างกันมาก: MD5 และ NTHash เร็วมาก อัลกอริทึมแฮชช้าเช่น bcrypt/Argon2 ได้รับการออกแบบมาโดยเฉพาะเพื่อต้านทาน Brute-force Attack ความเร็วช้ากว่าหลายล้านเท่า

NIST ในแนวทาง SP 800-63B ได้เสนอคำแนะนำสมัยใหม่สำหรับนโยบายรหัสผ่าน: 1) ความยาวรหัสผ่านอย่างน้อย 8 ตัวอักษร แนะนำให้ใช้รหัสผ่านที่ยาวกว่า (passphrase); 2) รองรับอักขระ ASCII และอักขระ Unicode ทั้งหมด (รวมถึงช่องว่าง); 3) ไม่บังคับเปลี่ยนรหัสผ่านเป็นประจำอีกต่อไป (เปลี่ยนเฉพาะเมื่อมีหลักฐานการรั่วไหล); 4) ไม่บังคับกฎการผสมอักขระเฉพาะอีกต่อไป (แต่แนะนำให้ใช้หลายประเภท); 5) ห้ามใช้รหัสผ่านที่ทราบว่ารั่วไหล; 6) ให้ข้อเสนอแนะความแข็งแรงรหัสผ่าน แกนหลักของคำแนะนำเหล่านี้คือ: ความแข็งแรงที่แท้จริงของรหัสผ่านมาจากความยาวและการสุ่ม ไม่ใช่กฎการประกอบที่ซับซ้อน; ความยาวมีความสำคัญกว่าความซับซ้อน

Passphrase เป็นกลยุทธ์รหัสผ่านที่สมดุลระหว่างความปลอดภัยและความสามารถในการจดจำ: ใช้คำ 4-6 คำที่ถูกเลือกแบบสุ่ม (เช่น correct horse battery staple) รวมกัน บรรลุเอนโทรปีสูงผ่านจำนวนคำแทนที่จะเป็นความซับซ้อนของอักขระ passphrase คำภาษาอังกฤษสุ่ม 5 คำจะมีค่าเอนโทรปีประมาณ 65-70 bits (สมมติว่าเลือกสุ่มจากคำทั่วไป 7776 คำ) เทียบเท่ากับอักขระ ASCII ที่สุ่มอย่างสมบูรณ์ 10-11 ตัว แต่จดจำได้ง่ายกว่า แต่จำเป็นต้องทราบว่า: คำใน passphrase ต้องถูกเลือกแบบสุ่ม การใช้ประโยคที่มีความหมายหรือวลีทั่วไป (เช่น iloveyou, tobeornottobe) จะทำให้ความปลอดภัยลดลงอย่างมาก

แนวทางปฏิบัติที่ดีที่สุดสำหรับความปลอดภัยรหัสผ่าน: ประการแรก ใช้ตัวจัดการรหัสผ่าน (เช่น Bitwarden, KeePassXC, 1Password ฯลฯ) เพื่อสร้างและจัดเก็บรหัสผ่านสุ่มที่แข็งแรงและไม่ซ้ำกันสำหรับแต่ละเว็บไซต์ (มากกว่า 16 ตัวอักขระทุกประเภท) หลีกเลี่ยงการใช้รหัสผ่านซ้ำ; ประการที่สอง เปิดใช้งาน 2FA/TOTP/คีย์ความปลอดภัยให้มากที่สุด แม้รหัสผ่านรั่วไหลก็ยังสามารถปกป้องบัญชีได้; ประการที่สาม ตรวจสอบเป็นประจำว่าอีเมลของคุณปรากฏในการรั่วไหลของข้อมูลหรือไม่ (ผ่านบริการเช่น Have I Been Pwned); ประการที่สี่ ระมัดระวังอีเมลฟิชชิงและเว็บไซต์ปลอม นี่คือวิธีการที่พบบ่อยที่สุดในการขโมยรหัสผ่าน; ประการที่ห้า บัญชีสำคัญ (อีเมล ธนาคารออนไลน์ กระเป๋าเงินดิจิทัล) ใช้การป้องกันที่แข็งแรงเพิ่มเติม หลีกเลี่ยงการเข้าสู่ระบบบัญชีที่ละเอียดอ่อนบน WiFi สาธารณะ; ประการที่หก ความปลอดภัยรหัสผ่านเป็นงานระบบ รหัสผ่านที่แข็งแรงเป็นเพียงแนวป้องกันแรกเท่านั้น

กรณีการใช้งาน

  • ตรวจสอบความแข็งแรงรหัสผ่านก่อนลงทะเบียนบัญชีเว็บไซต์ใหม่ หลีกเลี่ยงการใช้รหัสผ่านอ่อนแอที่อาจทำให้บัญชีถูกขโมย
  • ประเมินความปลอดภัยของรหัสผ่านใหม่เมื่อเปลี่ยนรหัสผ่านเป็นประจำ ตรวจสอบให้แน่ใจว่ารหัสผ่านใหม่มีความแข็งแรงสูงกว่ารหัสผ่านเก่า
  • เมื่อแผนก IT ขององค์กรกำหนดนโยบายรหัสผ่านของทีม ใช้เป็นเครื่องมือตรวจสอบอ้างอิงสำหรับข้อกำหนดความซับซ้อนของรหัสผ่าน
  • เมื่อพัฒนาฟังก์ชันลงทะเบียน/เปลี่ยนรหัสผ่านผู้ใช้ อ้างอิงมาตรฐานการตรวจสอบเพื่อออกแบบคำแนะนำความแข็งแรงรหัสผ่านในส่วนหน้า
  • เมื่อตรวจสอบเหตุการณ์ความปลอดภัยบัญชี ตรวจสอบว่ารหัสผ่านปัจจุบันเป็นรหัสผ่านอ่อนแอทั่วไปหรือไม่ เวลาในการถอดรหัสสั้นเกินไปหรือไม่
  • สร้างรหัสผ่านที่มีความแข็งแรงสอดคล้องกับบัญชีที่มีระดับความปลอดภัยต่างกัน——อีเมล/ธนาคารออนไลน์ใช้รหัสผ่านที่แข็งแรงมาก ฟอรั่มใช้รหัสผ่านระดับกลาง
  • อธิบายกับผู้ที่ไม่ใช่ด้านเทคนิคว่าทำไมรหัสผ่านที่ "ดูเหมือนยาว" (เช่น password123) จริงๆ แล้วไม่ปลอดภัย ใช้เวลาในการถอดรหัสแสดงความเสี่ยงอย่างชัดเจน
  • หลังจากตัวจัดการรหัสผ่านสร้างรหัสผ่าน ตรวจสอบอีกครั้งว่าค่าเอนโทรปีและระดับความแข็งแรงเป็นไปตามเกณฑ์หรือไม่
  • เมื่อเรียนรู้ความรู้ความปลอดภัยรหัสผ่าน สังเกตความสัมพันธ์การเปลี่ยนแปลงระหว่างค่าเอนโทรปีและเวลาในการถอดรหัสโดยการปรับแต่งชุดอักขระ
  • เปรียบเทียบประสิทธิภาพของนโยบายรหัสผ่านต่างๆ——เช่น ความแตกต่างของเวลาในการถอดรหัสระหว่าง 8 ตัวตัวเลขล้วน vs 8 ตัวอักขระผสม vs 16 ตัวอักขระผสม
  • ในการสาธิตการฝึกอบรมความปลอดภัย แสดงความเปราะบางของรหัสผ่านอ่อนแอ ป้อนรหัสผ่านทั่วไปเพื่อแสดงความเสี่ยงของการถูกถอดรหัสทันที
  • เมื่อตั้งรหัสผ่าน Wi-Fi รหัสผ่านฐานข้อมูล คีย์การเข้ารหัสและสถานการณ์ความปลอดภัยสูงอื่นๆ ตรวจสอบให้แน่ใจว่ารหัสผ่านถึงระดับ ★★★★ ขึ้นไป

วิธีการใช้งาน

  1. ป้อนรหัสผ่านที่ต้องการตรวจสอบในช่องป้อนรหัสผ่าน สามารถคลิกไอคอนรูปตาเพื่อสลับการแสดงข้อความธรรมดา/ข้อความที่ซ่อนไว้เพื่อตรวจสอบ
  2. เครื่องมือวิเคราะห์รหัสผ่านตามเวลาจริง แสดงการจัดอันดับความแข็งแรงดาว 5 ระดับ ค่า Shannon entropy (bits) เวลาในการถอดรหัส 3 สถานการณ์
  3. ดูตารางตรวจสอบชุดอักขระ ตรวจสอบว่า 7 ดัชนีความปลอดภัย (ความยาว ตัวพิมพ์ใหญ่/เล็ก ตัวเลข อักขระพิเศษ ไม่ซ้ำ ไม่ใช่รหัสผ่านทั่วไป) ผ่านหรือไม่
  4. ปรับแต่งรหัสผ่านตามคำแนะนำในส่วนคำแนะนำการปรับปรุง——เช่น เพิ่มความยาว เติมประเภทอักขระที่ขาด หลีกเลี่ยงรหัสผ่านทั่วไป
  5. หากต้องการสร้างรหัสผ่านที่แข็งแรง ตั้งค่าความยาว (8-64 ตัวอักษร) และตัวเลือกประเภทอักขระ คลิกปุ่มสร้างเพื่อรับรหัสผ่านสุ่มที่ปลอดภัยด้วยการเข้ารหัส

คุณสมบัติ

  • อัลกอริทึม Shannon Entropy: คำนวณค่าเอนโทรปี Shannon (bits) ตามขนาดชุดอักขระและความยาวรหัสผ่าน วัดความแข็งแรงของการสุ่มรหัสผ่านตามหลักวิทยาศาสตร์ แทนการให้คะแนนตามกฎง่ายๆ
  • จัดอันดับความแข็งแรงด้วยดาว 5 ระดับ: รวมทั้งหมด 5 ระดับตั้งแต่ ☆☆☆☆☆ (อ่อนแอมาก) ถึง ★★★★★ (แข็งแรงมาก) ตัดสินโดยรวมตามช่วงเอนโทรปี (< 30/30-45/45-60/60-80/> 80 bits) และผลการตรวจสอบความปลอดภัย
  • คาดการณ์เวลาถอดรหัสใน 3 สถานการณ์: คาดการณ์เวลา Brute-force Attack บน PC ทั่วไป (1 พันล้านครั้ง/วินาที) ซูเปอร์คอมพิวเตอร์ (1000 ล้านล้านครั้ง/วินาที) และการโจมตีออนไลน์จำกัดความเร็ว (100 ครั้ง/วินาที) ครอบคลุมช่วงเวลาตั้งแต่มิลลิวินาทีถึงล้านล้านปี
  • ตรวจสอบดัชนีความปลอดภัย 7 อย่างทีละรายการ: ตรวจสอบโดยอัตโนมัติว่ารหัสผ่านมีความยาว ≥8 ตัวอักษร มีตัวพิมพ์ใหญ่ มีตัวพิมพ์เล็ก มีตัวเลข มีอักขระพิเศษ ไม่มีอักขระซ้ำติดต่อกัน (เช่น aaa/111) ไม่มีลำดับตัวเลขต่อเนื่อง (เช่น 123/456) และไม่อยู่ในรายการรหัสผ่านอ่อนแอทั่วไป
  • ตรวจสอบฐานข้อมูลรหัสผ่านอ่อนแอทั่วไป: มีรายการรหัสผ่านอ่อนแอทั่วไปในตัว แจ้งเตือนสีแดงทันทีเมื่อป้อนรหัสผ่านอ่อนแอคลาสสิกเช่น 123456, password, qwerty รหัสผ่านเหล่านี้จะถูกถอดรหัสทันทีภายใต้ Rainbow Table attack
  • คำแนะนำการปรับปรุงแบบไดนามิก: ให้คำแนะนำการปรับปรุงส่วนบุคคลตามเวลาจริงตามผลการตรวจสอบ——ขาดตัวพิมพ์ใหญ่ก็แนะนำให้เพิ่มตัวพิมพ์ใหญ่ ความยาวไม่พอก็แนะนำให้เพิ่มความยาว ตรงกับรหัสผ่านทั่วไปก็แนะนำให้เปลี่ยน แนะนำผู้ใช้ปรับปรุงความแข็งแรงรหัสผ่านอย่างถูกต้อง
  • ตัวสร้างรหัสผ่านที่ปลอดภัยในตัว: ใช้ crypto.getRandomValues() ของเบราว์เซอร์เพื่อสร้างรหัสผ่านด้วยตัวเลขสุ่มที่ปลอดภัยด้วยการเข้ารหัส ปรับความยาวได้ 8-64 ตัวอักษร เลือกอิสระว่าจะรวมตัวพิมพ์ใหญ่ ตัวพิมพ์เล็ก ตัวเลข อักขระพิเศษ (!@#$%^&*-_+=?) หรือไม่
  • สลับแสดง/ซ่อนรหัสผ่าน: คลิกครั้งเดียวเพื่อสลับการแสดงรหัสผ่านเป็นข้อความธรรมดา/ข้อความที่ซ่อนไว้ สะดวกในการตรวจสอบเนื้อหาที่ป้อน หลีกเลี่ยงข้อผิดพลาดในการตั้งรหัสผ่านเนื่องจากมองเห็นอักขระผิด
  • นับจำนวนอักขระตามเวลาจริง: แสดงจำนวนอักขระรหัสผ่านปัจจุบันตามเวลาจริงใต้ช่องป้อนข้อมูล สะดวกในการประเมินว่าความยาวถึงเกณฑ์หรือไม่
  • วิเคราะห์ทันทีไม่มีความล่าช้า: วิเคราะห์ทันทีเมื่อป้อนรหัสผ่าน ไม่ต้องคลิกปุ่ม แก้ไขแล้วตอบสนองการเปลี่ยนแปลงความแข็งแรงทันที
  • คัดลอกผลการตรวจสอบด้วยคลิกเดียว: รองรับการคัดลอกข้อความสรุปแบบเต็มซึ่งประกอบด้วยระดับความแข็งแรง ค่าเอนโทรปี เวลาถอดรหัส 3 สถานการณ์ด้วยคลิกเดียว สะดวกในการบันทึกหรือแชร์
  • รูปแบบตัวเลขสากล: ตัวเลขเวลาถอดรหัสถูกจัดรูปแบบโดยอัตโนมัติตามสภาพแวดล้อมภาษาของผู้ใช้ (ตัวคั่นหลักพัน ฯลฯ)
  • ฟังก์ชันล้างข้อมูล: คลิกครั้งเดียวเพื่อล้างช่องป้อนข้อมูลเพื่อตรวจสอบใหม่ ใช้งานง่าย
  • ประมวลผลในเครื่องบนเบราว์เซอร์อย่างสมบูรณ์: การวิเคราะห์และสร้างรหัสผ่านทั้งหมดเสร็จสิ้นใน JavaScript ของเบราว์เซอร์ รหัสผ่านที่ป้อนจะไม่ถูกส่งผ่านเครือข่ายไปยังเซิร์ฟเวอร์ใดๆ ความปลอดภัยของรหัสผ่านจึงได้รับการรับประกัน

คำถามที่พบบ่อย

หลักการของการตรวจสอบความแข็งแรงรหัสผ่านคืออะไร? คำนวณ Shannon entropy อย่างไร?

เครื่องมือนี้วัดความแข็งแรงรหัสผ่านตามทฤษฎีเอนโทรปีข้อมูลที่เสนอโดย Claude Shannon สูตรคำนวณเอนโทรปี: เอนโทรปี = ความยาวรหัสผ่าน × log₂(ขนาดชุดอักขระ) ขนาดชุดอักขระสะสมตามประเภทอักขระที่รหัสผ่านใช้: ตัวพิมพ์เล็ก 26 ตัว ตัวพิมพ์ใหญ่ 26 ตัว ตัวเลข 10 ตัว อักขระพิเศษ 33 ตัว (!@#$%^&*-_+=? ฯลฯ) ตัวอย่างเช่น รหัสผ่าน 8 ตัวที่ใช้เฉพาะตัวพิมพ์เล็ก ชุดอักขระ=26 เอนโทรปี=8×log₂(26)≈37.6 bits; ส่วนรหัสผ่าน 16 ตัวที่ใช้ทั้งสี่ประเภทอักขระ ชุดอักขระ=95 เอนโทรปี=16×log₂(95)≈105 bits ยิ่งค่าเอนโทรปีสูง ยิ่งต้องลองชุดค่าผสมมากขึ้นสำหรับ Brute-force Attack รหัสผ่านก็ยิ่งปลอดภัย

ทำไมรหัสผ่านเช่น 123456, password ยาวแต่ถูกประเมินว่าอ่อนแอมาก?

เพราะความแข็งแรงรหัสผ่านไม่เพียงขึ้นอยู่กับความยาว แต่ยังขึ้นอยู่กับการสุ่มและความไม่สามารถคาดเดาได้ 123456 แม้จะมี 6 ตัวอักษร แต่มันเป็นหนึ่งในรหัสผ่านที่พบบ่อยที่สุด มีอยู่ในทุก Rainbow Table และพจนานุกรมรหัสผ่าน แฮกเกอร์จะลองรหัสผ่านที่มีความถี่สูงเหล่านี้ก่อนเมื่อถอดรหัส จริงๆ สามารถคาดเดาได้ภายในไม่กี่วินาที เครื่องมือนี้มีฐานข้อมูลรหัสผ่านอ่อนแอทั่วไปในตัว หากตรวจพบรหัสผ่านในรายการรหัสผ่านทั่วไปจะกำหนดโดยตรงว่าอ่อนแอมาก (☆☆☆☆☆) ไม่ว่าความยาวจะเป็นเท่าไหร่ รหัสผ่านอ่อนแอที่คล้ายกันอื่นๆ ได้แก่: qwerty, abc123, admin, letmein, welcome, monkey, dragon ฯลฯ

ความแตกต่างระหว่างสามสถานการณ์ในการคาดการณ์เวลาถอดรหัสคืออะไร?

สามสถานการณ์จำลองความเร็วในการถอดรหัสของความสามารถในการโจมตีต่างกัน: 1) การโจมตีออนไลน์จำกัดความเร็ว (100 ครั้ง/วินาที): จำลองอินเทอร์เฟซการเข้าสู่ระบบเว็บไซต์ เซิร์ฟเวอร์มักจำกัดความถี่ของการพยายาม (เช่น แต่ละบัญชีต่อวินาทีสูงสุดไม่กี่ครั้ง ล็อกหลังจากล้มเหลว 5 ครั้ง) นี่คือสถานการณ์การโจมตีระยะไกลที่พบบ่อยที่สุด ความเร็วช้าที่สุด; 2) การโจมตีออฟไลน์บน PC ทั่วไป (1 พันล้านครั้ง/วินาที): ผู้โจมตีหลังจากได้รับ password hash จะทำ Brute-force ด้วย GPU ในเครื่อง GPU สมัยใหม่สามารถลองพันล้านครั้งต่อวินาที; 3) ซูเปอร์คอมพิวเตอร์/การโจมตีแบบกระจาย (1000 ล้านล้านครั้ง/วินาที): ผู้โจมตีระดับชาติหรือบ็อตเน็ตขนาดใหญ่ มีความสามารถในการประมวลผลแบบขนานที่ทรงพลังอย่างยิ่ง รหัสผ่านของคุณต้องสามารถต้านทานได้นานพอในสถานการณ์ซูเปอร์คอมพิวเตอร์จึงจะถือว่าปลอดภัยอย่างแท้จริง

รหัสผ่านกี่ตัวอักษรจึงจะปลอดภัย? นโยบายรหัสผ่านที่แนะนำคืออะไร?

ระดับความปลอดภัยแตกต่างกันไปตามสถานการณ์: 1) ฟอรั่มทั่วไป/บัญชีที่ไม่สำคัญ: ≥12 ตัวอักขระผสม เอนโทรปี≥60 bits (★★★☆☆) ต้องใช้เวลาหลายปีภายใต้ซูเปอร์คอมพิวเตอร์; 2) อีเมล/บัญชีโซเชียลมีเดีย: ≥14 ตัวอักขระผสม เอนโทรปี≥80 bits (★★★★☆); 3) ธนาคารออนไลน์/กระเป๋าเงินดิจิทัล/บัญชีผู้ดูแลระบบ: ≥16 ตัวอักขระทุกประเภท เอนโทรปี≥100 bits (★★★★★) ซูเปอร์คอมพิวเตอร์ถอดรหัสต้องใช้เวลาล้านล้านปีขึ้นไป คำแนะนำทั่วไป: ใช้ตัวจัดการรหัสผ่านเพื่อสร้างรหัสผ่านสุ่มที่มีความยาวมากกว่า 16 ตัว ซึ่งประกอบด้วยตัวพิมพ์ใหญ่+เล็ก+ตัวเลข+อักขระพิเศษ ใช้รหัสผ่านที่ไม่ซ้ำกันสำหรับแต่ละเว็บไซต์ เปิดใช้งาน 2FA

ทำไมมีตัวพิมพ์ใหญ่+เล็ก+ตัวเลข+อักขระพิเศษแล้วแต่ยังถูกเตือนว่าไม่แข็งแรงพอ?

อาจมีสาเหตุหลายประการ: 1) ความยาวไม่พอ——แม้จะมีอักขระครบทั้งสี่ประเภท แต่ถ้ามีเพียง 8 ตัว ค่าเอนโทรปีจะอยู่ที่ประมาณ 52 bits ภายใต้ซูเปอร์คอมพิวเตอร์ยังสามารถถอดรหัสได้ค่อนข้างเร็ว; 2) มีรูปแบบซ้ำ——เช่น AAAbbb123!!! มีอักขระซ้ำติดต่อกัน เครื่องมือจะตรวจพบและหักคะแนน; 3) มีตัวเลขต่อเนื่อง——เช่น 123 ใน abc123! เป็นลำดับต่อเนื่อง; 4) โครงสร้างโดยรวมมีรูปแบบ——เช่น Password1! แม้จะเป็นไปตามข้อกำหนดสี่ประเภทอักขระ แต่ Password เป็นคำทั่วไปบวกกับตัวอักษรแรกเป็นตัวพิมพ์ใหญ่และคำต่อท้ายตัวเลข/สัญลักษณ์ ง่ายต่อการถูกโจมตีโดย Dictionary Attack แนะนำให้มีความยาวอย่างน้อย 12 ตัวอักษรขึ้นไป และจัดเรียงอักขระให้สุ่มที่สุดเท่าที่จะทำได้

รหัสผ่านที่ป้อนจะถูกอัปโหลดไปยังเซิร์ฟเวอร์หรือไม่? ปลอดภัยไหม?

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

ทำไมรหัสผ่านดูเหมือนสุ่มแต่ผลการตรวจสอบแสดงว่าไม่อยู่ในฐานข้อมูลรหัสผ่านทั่วไป? สิ่งนี้ถูกตัดสินอย่างไร?

เครื่องมือนี้มีชุดข้อมูลรหัสผ่านอ่อนแอทั่วไป (commonPasswords) ในตัว ซึ่งประกอบด้วยรหัสผ่านหลายพันรายการที่มีความถี่ในการปรากฏสูงสุดในการรั่วไหลของข้อมูลในประวัติศาสตร์ (เช่น รหัสผ่านความถี่สูงที่สถิติได้จากเหตุการณ์รั่วไหลเช่น rockyou) หากรหัสผ่านของคุณไม่อยู่ในรายการนี้ แสดงว่ามันไม่ใช่รหัสผ่านอ่อนแอที่ใช้กันอย่างแพร่หลาย แต่จำเป็นต้องทราบว่า: การไม่อยู่ในฐานข้อมูลรหัสผ่านทั่วไปไม่ได้หมายความว่าปลอดภัยอย่างสมบูรณ์——หากรหัสผ่านมีข้อมูลส่วนบุคคล (ชื่อ วันเกิด หมายเลขโทรศัพท์) เส้นทางแป้นพิมพ์ (asdfgh) หรือชุดคำที่มีความหมาย ยังสามารถถอดรหัสได้โดย Dictionary Attack ที่กำหนดเป้าหมาย รหัสผ่านที่ปลอดภัยที่สุดคือลำดับอักขระที่สร้างขึ้นแบบสุ่มอย่างสมบูรณ์

ตัวเลขสุ่มที่ตัวสร้างรหัสผ่านใช้ปลอดภัยหรือไม่?

ปลอดภัย ตัวสร้างรหัสผ่านใช้อินเทอร์เฟซ crypto.getRandomValues() ที่เบราว์เซอร์จัดเตรียม นี่คือ CSPRNG (Cryptographically Secure Pseudo-Random Number Generator) ที่ Web Cryptography API จัดเตรียม คุณภาพของตัวเลขสุ่มสูงกว่า Math.random() มาก แหล่งเอนโทรปีของตัวเลขสุ่มของ crypto.getRandomValues() มาจากพูลเอนโทรปีของระบบปฏิบัติการ (เช่น ช่วงเวลาการกดแป้น การเคลื่อนที่ของเมาส์ เวลา IO ดิสก์และแหล่งสุ่มทางกายภาพอื่นๆ) ไม่สามารถคาดเดาได้และไม่สามารถทำซ้ำได้ เหมาะสำหรับสร้างรหัสผ่าน คีย์และข้อมูลที่ละเอียดอ่อนด้านความปลอดภัยอื่นๆ อักขระรหัสผ่านที่สร้างขึ้นจะถูกสุ่มเลือกอย่างสม่ำเสมอจากชุดอักขระที่คุณเลือก

ทำไมการจัดอันดับความแข็งแรงของรหัสผ่านเดียวกันบนเครื่องมือต่างกันอาจแตกต่างกัน?

เครื่องมือตรวจสอบความแข็งแรงรหัสผ่านที่ต่างกันใช้อัลกอริทึมและเกณฑ์ที่ต่างกัน ผลการจัดอันดับอาจมีความแตกต่าง ความแตกต่างทั่วไป ได้แก่: 1) วิธีการคำนวณค่าเอนโทรปีแตกต่างกัน——เครื่องมือบางอย่างคำนวณอย่างง่ายตามจำนวนประเภทอักขระ บางอย่างทำการวิเคราะห์รูปแบบที่แม่นยำยิ่งขึ้น; 2) ขนาดฐานข้อมูลรหัสผ่านทั่วไปแตกต่างกัน——ฐานข้อมูลยิ่งสมบูรณ์ ยิ่งสามารถระบุรหัสผ่านอ่อนแอได้มาก; 3) เกณฑ์ระดับความแข็งแรงแตกต่างกัน——กี่ bits ถึงจะเรียกว่า "แข็งแรง" ไม่มีมาตรฐานที่เป็นหนึ่งเดียว; 4) มีการตรวจจับรูปแบบแป้นพิมพ์ (qwerty, qazwsx) รูปแบบวันที่ อักขระซ้ำและรูปแบบอื่นๆ หรือไม่ เครื่องมือนี้ใช้วิธีการรวมกันของ Shannon entropy + การตรวจสอบกฎ 7 รายการ และทำการตรวจสอบเฉพาะสำหรับรหัสผ่านอ่อนแอทั่วไป การจัดอันดับอ้างอิงตามมาตรฐานที่ใช้กันทั่วไปในอุตสาหกรรม (คำแนะนำ NIST, OWASP)

อักขระพิเศษรวมอะไรบ้าง? ทำไมไม่รองรับอักขระพิเศษมากกว่านี้?

ชุดอักขระพิเศษของเครื่องมือนี้คือ !@#$%^&*-_+=? (ทั้งหมด 14 ตัว) ตัวสร้างรหัสผ่านก็ใช้ชุดอักขระนี้เช่นกัน นี่เป็นเพราะเว็บไซต์หลายแห่งมีข้อจำกัดเกี่ยวกับอักขระพิเศษที่อนุญาตในรหัสผ่าน——ตัวอย่างเช่น อัญประกาศเดี่ยว อัญประกาศคู่ แบ็กสแลช ช่องว่าง วงเล็บเหลี่ยม ฯลฯ มีความหมายพิเศษใน SQL, HTML, บรรทัดคำสั่ง อาจทำให้เกิดปัญหาการฉีดหรือถูกเว็บไซต์ปฏิเสธ การเลือกอักขระพิเศษที่ใช้กันทั่วไปและได้รับการยอมรับอย่างกว้างขวางที่สุดสามารถรับประกันได้ว่ารหัสผ่านที่สร้างขึ้นสามารถใช้ได้บนเว็บไซต์ส่วนใหญ่ หากคุณใช้อักขระพิเศษอื่นๆ เมื่อป้อนรหัสผ่านด้วยตนเอง (เช่น %, ~, |, {}[] ฯลฯ) เครื่องมือจะยังคงรู้จักมันว่าเป็นอักขระพิเศษและนับรวมในชุดอักขระ

การเปลี่ยนรหัสผ่านเป็นประจำสามารถปรับปรุงความปลอดภัยได้หรือไม่?

ตามแนวทางล่าสุด NIST SP 800-63B ประโยชน์ด้านความปลอดภัยของการบังคับเปลี่ยนรหัสผ่านเป็นประจำ (เช่น ทุก 90 วัน) มีจำกัด ในทางกลับกันอาจทำให้ผู้ใช้เลือกรหัสผ่านอ่อนแอหรือทำการเปลี่ยนแปลงเล็กน้อยตามรหัสผ่านเก่า (เช่น password1→password2) กลยุทธ์ที่ดีกว่าคือ: 1) ใช้รหัสผ่านสุ่มยาวที่แข็งแรงพอ (มากกว่า 16 ตัว); 2) แต่ละบัญชีใช้รหัสผ่านที่ไม่ซ้ำกัน (จัดการผ่านตัวจัดการรหัสผ่าน); 3) เปิดใช้งาน 2FA; 4) เปลี่ยนรหัสผ่านที่เกี่ยวข้องทันทีหลังจากทราบเหตุการณ์การรั่วไหลของข้อมูล; 5) เปลี่ยนรหัสผ่านทันทีเมื่อพบการเข้าสู่ระบบที่ผิดปกติ เครื่องมือนี้สามารถช่วยคุณประเมินว่าความแข็งแรงรหัสผ่านปัจจุบันจำเป็นต้องได้รับการอัปเกรดหรือไม่

รหัสผ่านที่สร้างโดยตัวจัดการรหัสผ่านยังต้องตรวจสอบด้วยเครื่องมือนี้หรือไม่?

โดยทั่วไปไม่จำเป็น รหัสผ่านที่สร้างโดยตัวจัดการรหัสผ่านหลัก (1Password, Bitwarden, KeePassXC, LastPass ฯลฯ) ตามค่าเริ่มต้นจะใช้ตัวเลขสุ่มที่ปลอดภัยด้วยการเข้ารหัสและชุดอักขระที่สมบูรณ์ ความยาวมักจะมากกว่า 12-20 ตัว ความแข็งแรงโดยทั่วไปอยู่ที่ระดับ ★★★★ ขึ้นไป แต่หากคุณปรับแต่งกฎการสร้างของตัวจัดการรหัสผ่าน (เช่น ยกเว้นอักขระพิเศษ ลดความยาว) สามารถใช้เครื่องมือนี้เพื่อตรวจสอบว่าค่าเอนโทรปีและเวลาในการถอดรหัสเป็นไปตามความต้องการด้านความปลอดภัยของคุณหรือไม่ นอกจากนี้ หากคุณไม่แน่ใจว่าการนำไปใช้ตัวเลขสุ่มของตัวจัดการรหัสผ่านน่าเชื่อถือหรือไม่ การตรวจสอบอีกครั้งก็เป็นนิสัยที่ดี

ทำไมตัวเลขต่อเนื่องหรืออักขระซ้ำติดต่อกันถึงทำให้ความปลอดภัยรหัสผ่านลดลง?

เพราะเครื่องมือ Brute-force Attack และ Dictionary Attack ไม่เพียงแต่ลองรหัสผ่านทั่วไป แต่ยังสร้างรหัสผ่านตัวเลือกสำหรับรูปแบบทั่วไปอีกด้วย ตัวเลขต่อเนื่อง (123, 456, 789, 012) และอักขระซ้ำติดต่อกัน (aaa, 111, !!!) เป็นรูปแบบที่มีความถี่สูงมาก ปรากฏในรหัสผ่านจำนวนมาก เครื่องมือถอดรหัสผ่านจะสร้างรูปแบบแปรผันดังกล่าวโดยเฉพาะ (เช่น เพิ่ม 123, !!!, 2024 และตัวเลขปีอื่นๆ หลังคำ) รหัสผ่านที่มีรูปแบบเหล่านี้เทียบเท่ากับการลดเอนโทรปีที่มีประสิทธิภาพ——ผู้โจมตีไม่จำเป็นต้อง Brute-force ทุกชุดค่าผสม เพียงแค่ลองรูปแบบทั่วไปก็สามารถจับคู่ได้

รหัสผ่านภาษาจีนหรืออักขระฟูลวิธปลอดภัยหรือไม่?

เว็บไซต์และระบบส่วนใหญ่ไม่รองรับภาษาจีนหรืออักขระฟูลวิธเป็นรหัสผ่าน เนื่องจากการประมวลผลการเข้ารหัสอาจก่อให้เกิดปัญหาความเข้ากันได้ เครื่องมือนี้นับอักขระใดๆ ที่ไม่ใช่ตัวอักษร-ตัวเลขเป็นอักขระพิเศษ แต่ในทางปฏิบัติหากคุณใช้รหัสผ่านภาษาจีน อาจพบปัญหาเช่น ไม่สามารถเข้าสู่ระบบได้ ข้อผิดพลาดในการเข้ารหัสข้ามแพลตฟอร์ม แนะนำให้ใช้รหัสผ่านที่ประกอบด้วยชุดอักขระ ASCII (ตัวพิมพ์ใหญ่/เล็กภาษาอังกฤษ ตัวเลข สัญลักษณ์ฮาล์ฟวิธ) นี่คือแนวทางที่มีความเข้ากันได้ดีที่สุด หากระบบรองรับรหัสผ่าน Unicode (เช่น ระบบ Linux บางระบบ) รหัสผ่าน Unicode จะมีชุดอักขระที่ใหญ่ขึ้น แต่จำเป็นต้องตรวจสอบให้แน่ใจว่าเทอร์มินัลทั้งหมดสามารถป้อนได้อย่างถูกต้อง

Rainbow Table attack คืออะไร? แตกต่างจาก Brute-force Attack อย่างไร?

Brute-force Attack คือการลองชุดค่าผสมอักขระที่เป็นไปได้ทั้งหมดทีละชุด; ส่วน Rainbow Table attack คือการคำนวณล่วงหน้าตารางเปรียบเทียบรหัสผ่านทั่วไปและค่าแฮช (Rainbow Table) เมื่อโจมตีจะค้นหาตารางโดยตรงแทนที่จะคำนวณทีละครั้ง ความเร็วเร็วมาก หากผู้ใช้ใช้รหัสผ่านทั่วไป แม้ว่าอัลกอริทึมแฮชจะแข็งแรงมาก (เช่น SHA-256) ผู้โจมตีผ่าน Rainbow Table สามารถค้นหารหัสผ่านเดิมกลับคืนได้ภายในไม่กี่วินาที วิธีการป้องกัน Rainbow Table attack ได้แก่: 1) ใช้รหัสผ่านยาวที่สุ่มพอ (ไม่อยู่ในขอบเขตที่ Rainbow Table ครอบคลุม); 2) ระบบใช้ salted hash (เช่น bcrypt, scrypt, Argon2) ทำให้ Rainbow Table ที่คำนวณล่วงหน้าไม่มีผล เครื่องมือนี้ตรวจสอบฐานข้อมูลรหัสผ่านทั่วไปนั่นคือเพื่อช่วยผู้ใช้หลีกเลี่ยงการเลือกรหัสผ่านที่ Rainbow Table ครอบคลุมแล้ว

การแก้ไขปัญหา

ทำไมหลังจากป้อนรหัสผ่านแล้วไม่แสดงผลการวิเคราะห์?

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

ปุ่มสร้างรหัสผ่านหลังจากคลิกแล้วไม่ตอบสนอง?

ปุ่มสร้างรหัสผ่านจำเป็นต้องเลือกประเภทอักขระอย่างน้อยหนึ่งประเภท (อย่างน้อยหนึ่งใน ตัวพิมพ์ใหญ่/เล็ก/ตัวเลข/สัญลักษณ์) หากไม่ได้ทำเครื่องหมายที่ตัวเลือกทั้งหมด จะไม่สามารถสร้างรหัสผ่านได้ ตามค่าเริ่มต้นจะใช้ตัวพิมพ์เล็ก+ตัวเลขเป็นทางสำรอง แนะนำให้ทำเครื่องหมายทั้งสี่ตัวเลือกคือ ตัวพิมพ์ใหญ่ ตัวพิมพ์เล็ก ตัวเลข สัญลักษณ์ เพื่อสร้างรหัสผ่านที่แข็งแรงที่สุด ช่วงแถบเลื่อนความยาวคือ 8-64 ตัวอักษร รหัสผ่านที่สร้างขึ้นจะถูกเติมลงในช่องป้อนข้อมูลโดยอัตโนมัติและวิเคราะห์ทันที

ปุ่มแสดง/ซ่อนรหัสผ่านไม่ทำงาน?

ปุ่มไอคอนรูปตาใช้สำหรับสลับคุณสมบัติ type ของช่องป้อนรหัสผ่านระหว่าง password และ text หากหลังจากคลิกแล้วไม่สลับ อาจเป็นเพราะ JavaScript ของเบราว์เซอร์ผิดปกติ ลองรีเฟรชหน้า หมายเหตุ: ในโหมด password อักขระที่ป้อนจะแสดงเป็นจุด (•••) ในโหมด text จะแสดงข้อความธรรมดา เมื่ออยู่ในที่สาธารณะหรือบันทึกหน้าจอแนะนำให้ใช้โหมด password

รหัสผ่านของฉันชัดเจนว่าซับซ้อนมากทำไมระดับถึงไม่สูง?

ตรวจสอบปัญหาทั่วไปต่อไปนี้: 1) ความยาวไม่พอหรือไม่? ต่ำกว่า 12 ตัวอักษร แม้จะผสมอักขระทุกประเภท ภายใต้ซูเปอร์คอมพิวเตอร์ก็ยังสามารถถอดรหัสได้ค่อนข้างเร็ว แนะนำอย่างน้อย 14 ตัว; 2) มีลำดับซ้ำหรือไม่? เช่น AAA111!!! มีอักขระซ้ำติดต่อกัน; 3) เป็นคำทั่วไปบวกคำต่อท้ายหรือไม่? เช่น Password123! หรือ Qwerty@2024 แม้จะเป็นไปตามข้อกำหนดสี่ประเภทอักขระ แต่แกนหลักคือคำทั่วไป+คำต่อท้ายที่มีรูปแบบ; 4) เป็นเส้นทางแป้นพิมพ์หรือไม่? เช่น Qazwsx123! เป็นเส้นทางรูปตัว Z บนแป้นพิมพ์ รูปแบบประเภทนี้จะถูกเครื่องมือถอดรหัสลองก่อน แนะนำให้ใช้ตัวสร้างรหัสผ่านเพื่อสร้างรหัสผ่านที่สุ่มอย่างสมบูรณ์

อภิธานศัพท์

Shannon Entropy
แนวคิดทฤษฎีข้อมูลที่เสนอโดย Claude Shannon ใช้วัดความแข็งแรงของการสุ่มรหัสผ่าน หน่วยคือ bits ค่าเอนโทรปี=ความยาวรหัสผ่าน×log₂(ขนาดชุดอักขระ) ยิ่งค่าเอนโทรปีสูง ยิ่งต้องลองชุดค่าผสมมากขึ้นสำหรับ Brute-force Attack
Character Pool(ชุดอักขระ)
ขนาดของชุดอักขระที่เป็นไปได้ทั้งหมดที่ใช้ในรหัสผ่าน ตัวพิมพ์เล็ก 26 ตัว ตัวพิมพ์ใหญ่ 26 ตัว ตัวเลข 10 ตัว อักขระพิเศษประมาณ 33 ตัว ยิ่งใช้อักขระหลายประเภท ชุดอักขระจะยิ่งใหญ่ การเพิ่มอักขระแต่ละตัวจะให้ประโยชน์เอนโทรปีมากขึ้น
Brute-force Attack
วิธีการโจมตีโดยการคาดเดารหัสผ่านโดยลองชุดค่าผสมอักขระที่เป็นไปได้ทั้งหมดอย่างเป็นระบบ เวลาในการถอดรหัสขึ้นอยู่กับค่าเอนโทรปีของรหัสผ่านและความสามารถในการประมวลผลของผู้โจมตี รหัสผ่านที่มีเอนโทรปีสูงสามารถทำให้ Brute-force Attack ไม่สามารถทำได้ในทางการคำนวณ
Dictionary Attack
วิธีการโจมตีโดยการคาดเดารหัสผ่านโดยใช้รายการที่รวบรวมไว้ล่วงหน้าซึ่งประกอบด้วยรหัสผ่านทั่วไป รหัสผ่านที่รั่วไหล คำศัพท์ และรูปแบบทั่วไป มีประสิทธิภาพสูงกว่า Brute-force Attack อย่างมาก เป็นวิธีการโจมตีรหัสผ่านที่พบบ่อยที่สุดในทางปฏิบัติ
Rainbow Table
ตารางเปรียบเทียบค่า password hash ที่คำนวณล่วงหน้า ใช้เพื่อค้นหารหัสผ่านเดิมกลับคืนอย่างรวดเร็วหลังจากได้รับค่า hash การใช้ salted hash และอัลกอริทึมแฮชช้า (bcrypt/Argon2) สามารถป้องกัน Rainbow Table attack ได้อย่างมีประสิทธิภาพ
CSPRNG
Cryptographically Secure Pseudo-Random Number Generator ตัวสร้างตัวเลขสุ่มที่มีผลลัพธ์ไม่สามารถคาดเดาได้และไม่สามารถทำซ้ำได้ เครื่องมือนี้ใช้อินเทอร์เฟซ CSPRNG crypto.getRandomValues() ของเบราว์เซอร์เพื่อสร้างรหัสผ่าน
Common Password
รหัสผ่านที่มีความถี่ในการปรากฏสูงในเหตุการณ์การรั่วไหลของข้อมูลต่างๆ (เช่น 123456, password, qwerty, admin ฯลฯ) รหัสผ่านเหล่านี้มีอยู่ในทุกพจนานุกรมถอดรหัส ควรหลีกเลี่ยงการใช้อย่างสมบูรณ์
2FA/MFA
Two-Factor/Multi-Factor Authentication นอกจากรหัสผ่านยังต้องมีปัจจัยการยืนยันตัวที่สอง (เช่น รหัสยืนยันทางโทรศัพท์ TOTP คีย์ความปลอดภัยฮาร์ดแวร์) แม้รหัสผ่านรั่วไหลก็ยังสามารถปกป้องความปลอดภัยของบัญชีได้
Passphrase
รหัสผ่านยาวที่ประกอบด้วยคำสุ่มหลายคำ บรรลุค่าเอนโทรปีสูงผ่านจำนวนคำ และในขณะเดียวกันก็จดจำได้ง่ายกว่าสตริงสุ่ม ตัวอย่างเช่น ชุดคำสุ่ม 4 คำเช่น "correct horse battery staple"
Password Hash
การใช้ฟังก์ชันแฮชทางเดียวเพื่อแปลงรหัสผ่านเป็นสตริงความยาวคงที่ที่ไม่สามารถย้อนกลับได้เพื่อจัดเก็บ เมื่อทำการยืนยันจะเปรียบเทียบค่า hash แทนข้อความธรรมดา แม้ฐานข้อมูลรั่วไหลก็จะไม่เปิดเผยรหัสผ่านโดยตรง ควรใช้อัลกอริทึมแฮชช้าเช่น bcrypt/Argon2
Salt
สตริงสุ่มที่ต่อเข้ากับรหัสผ่านก่อนการคำนวณแฮช ทำให้รหัสผ่านเดียวกันสร้างค่า hash ที่แตกต่างกัน ป้องกัน Rainbow Table attack และการถอดรหัสแบบกลุ่ม แต่ละรหัสผ่านควรมีค่า salt ที่ไม่ซ้ำกัน
crypto.getRandomValues()
อินเทอร์เฟซตัวสร้างตัวเลขสุ่มที่ปลอดภัยด้วยการเข้ารหัสที่ Web Cryptography API จัดเตรียม ซึ่งนำไปใช้โดยเบราว์เซอร์ แหล่งที่มาของตัวเลขสุ่มมาจากพูลเอนโทรปีของระบบปฏิบัติการ เหนือกว่า Math.random() มาก เหมาะสำหรับสร้างรหัสผ่านและคีย์

ข้อมูลอ้างอิงค่าเอนโทรปีและเวลาในการถอดรหัสผ่าน

ข้อมูลอ้างอิงระดับความยากในการถอดรหัสของรหัสผ่านที่มีค่าเอนโทรปีต่างกันในสถานการณ์การโจมตีซูเปอร์คอมพิวเตอร์ (1000 ล้านล้านครั้ง/วินาที):

เอนโทรปี(bits)ชุดค่าผสมทั่วไปเวลาถอดรหัส PCเวลาถอดรหัสซูเปอร์คอมพิวเตอร์ระดับความแข็งแรง
< 306 ตัวเลขล้วน คำทั่วไป< 1 วินาทีทันที☆☆☆☆☆ อ่อนแอมาก
30-458 ตัวพิมพ์เล็กล้วนไม่กี่วินาที - ไม่กี่ชั่วโมง< 1 วินาที★☆☆☆☆ อ่อนแอ
45-608 ตัวพิมพ์ใหญ่/เล็ก+ตัวเลขไม่กี่วัน - ไม่กี่ปีไม่กี่วินาที - ไม่กี่นาที★★☆☆☆ ปานกลาง
60-8010 ตัวอักขระผสมทุกประเภทหลายสิบปี - หลายพันปีไม่กี่ชั่วโมง - ไม่กี่วัน★★★☆☆ ดี
80-10014 ตัวอักขระผสมทุกประเภทหลายร้อยปีขึ้นไปไม่กี่ปี - หลายร้อยปี★★★★☆ แข็งแรง
> 10016 ตัวอักขระสุ่มทุกประเภทเป็นไปไม่ได้ล้านล้านปีขึ้นไป★★★★★ แข็งแรงมาก

เปรียบเทียบค่าเอนโทรปีของชุดอักขระประเภทต่างๆ

ความแตกต่างของค่าเอนโทรปีทางทฤษฎีและความปลอดภัยเมื่อรหัสผ่าน 12 ตัวอักษรใช้ชุดอักขระผสมที่แตกต่างกัน:

ชุดอักขระผสมชุดอักขระเอนโทรปี 12 ตัวลำดับจำนวนชุดค่าผสมการประเมินความปลอดภัย
ตัวเลขล้วน (0-9)10~40 bits10¹²อ่อนแอมาก ถอดรหัสทันที
ตัวพิมพ์เล็กล้วน26~56 bits10¹⁷อ่อนแอ ถอดรหัสระดับนาที
ตัวพิมพ์ใหญ่และเล็ก52~68 bits10²⁰ปานกลาง ถอดรหัสระดับชั่วโมง
ใหญ่/เล็ก+ตัวเลข62~71 bits10²¹ดี ถอดรหัสระดับวัน
ใหญ่/เล็ก+ตัวเลข+สัญลักษณ์95~79 bits10²³แข็งแรง ถอดรหัสระดับปี
16 ตัวอักขระสุ่มทุกประเภท95~105 bits10³¹แข็งแรงมาก ไม่สามารถ brute-force ได้

คำอธิบายดัชนีการตรวจสอบความปลอดภัย 7 อย่าง

7 ดัชนีความปลอดภัยรหัสผ่านที่เครื่องมือตรวจสอบทีละรายการ:

รายการตรวจสอบเกณฑ์การผ่านความเสี่ยงหากไม่ผ่าน
ความยาว ≥8 ตัวอักษรความยาวรหัสผ่านอย่างน้อย 8 ตัวอักษรรหัสผ่านสั้นเกินไป พื้นที่ Brute-force เล็ก
มีตัวพิมพ์ใหญ่มี A-Z อย่างน้อยหนึ่งตัวชุดอักขระลดลง 26 เอนโทรปีลดลง
มีตัวพิมพ์เล็กมี a-z อย่างน้อยหนึ่งตัวชุดอักขระลดลง 26 เอนโทรปีลดลง
มีตัวเลขมี 0-9 อย่างน้อยหนึ่งตัวชุดอักขระลดลง 10 เอนโทรปีลดลง
มีอักขระพิเศษมีสัญลักษณ์ที่ไม่ใช่ตัวอักษร-ตัวเลขชุดอักขระลดลงประมาณ 33 เอนโทรปีลดลง
ไม่มีรูปแบบซ้ำ/ต่อเนื่องไม่มีอักขระเหมือนกันมากกว่า 3 ตัวหรือตัวเลขต่อเนื่องรหัสผ่านที่มีรูปแบบง่ายต่อการโจมตีด้วยกฎ
ไม่อยู่ในฐานข้อมูลรหัสผ่านทั่วไปไม่อยู่ในรายการรหัสผ่านอ่อนแอที่ทราบรหัสผ่านทั่วไปถูกถอดรหัสทันทีในพจนานุกรม

Privacy & Security

การดำเนินการทั้งหมดของเครื่องมือตรวจสอบความแข็งแรงรหัสผ่านนี้เสร็จสิ้นอย่างสมบูรณ์ในเครื่องบนเบราว์เซอร์ของคุณ: รหัสผ่านที่คุณป้อนจะถูกคำนวณค่าเอนโทรปีและวิเคราะห์ความปลอดภัยใน JavaScript ของเบราว์เซอร์เท่านั้น จะไม่ถูกส่งผ่านเครือข่ายไปยังเซิร์ฟเวอร์ภายนอกใดๆ ตัวสร้างรหัสผ่านใช้อินเทอร์เฟซ crypto.getRandomValues() ที่มีอยู่ในเบราว์เซอร์เพื่อสร้างรหัสผ่านสุ่มในเครื่อง ไม่ขึ้นอยู่กับเซิร์ฟเวอร์ หน้าเว็บไม่ได้ใช้การติดตาม Cookie ไม่รวบรวมรหัสผ่านที่ผู้ใช้ป้อนหรือข้อมูลการใช้งานใดๆ หลังจากปิดหรือรีเฟรชหน้า รหัสผ่านที่ป้อนและผลการวิเคราะห์จะถูกลบโดยอัตโนมัติ จะไม่ถูกจัดเก็บถาวรในเบราว์เซอร์ คุณสามารถใช้เครื่องมือนี้ในสถานะตัดการเชื่อมต่อเครือข่ายได้ ฟังก์ชันทั้งหมดสามารถใช้งานได้ตามปกติ

Authoritative References