นี่เป็นภาคผนวกของคำตอบที่ฉลาดของ @ Brian ปิดบังยัง @Martijn Pieters สำหรับการเพิ่มรายละเอียดเกี่ยวกับวิธีการเดรัจฉานบังคับใช้รหัสผ่านเก่าโดยอ้างอิงจากรหัสปัจจุบันและ @ratchet freak สำหรับ "ระยะแฮ็ก" ฉันไม่ได้ลบคำตอบของฉันเพราะฉันคิดว่ามันเป็นพื้นหลังที่น่าสนใจในการสำรองข้อมูล
พื้นที่เก็บข้อมูลรหัสผ่านที่ทันสมัยจำเป็นต้องใช้การเข้ารหัสแฮชเข้ารหัสแบบทางเดียว (SHA-512 +) หลายรอบด้วยเกลือที่ไม่ซ้ำกัน (128- บิต +) สำหรับผู้ใช้แต่ละคน แต่อย่าถูกล่อลวงให้เก็บข้อมูลเพิ่มเติมเกี่ยวกับรหัสผ่านแต่ละอัน ยิ่งคุณเก็บข้อมูลเกี่ยวกับรหัสผ่านแต่ละรหัสมากเท่าไหร่คุณก็ยิ่งทำลายความปลอดภัยของอัลกอริทึมการแปลงแป้นพิมพ์ของคุณมากเท่านั้น
ตัวอย่าง
พิจารณาว่ามันง่ายเพียงใดในการใช้รหัสผ่านที่ดุร้ายหากคุณรู้ว่า:
- ยาว 7 ตัวอักษร
- อักขระ 3-5 เป็นตัวพิมพ์ใหญ่ (4 ลดลง)
- 1 และ 7 เป็นตัวเลข
- 6 เป็นสัญลักษณ์
แป้นพิมพ์สหรัฐอเมริกามี 95 ตัวอักษรที่สามารถพิมพ์ได้ดังนั้นเมื่อรู้ว่ารหัสผ่านยาว 7 ตัวอักษรให้ผลตอบแทน 95 ^ 7 = 69,833,729,610,000 = 7x10 ^ 13 การเรียงสับเปลี่ยน หากเป็นการสุ่มอย่างแท้จริงอาจใช้เวลาหนึ่งปีในการถอดรหัสนี้ในโปรเซสเซอร์ 3Ghz เดียว แต่:
- มีอักขระตัวพิมพ์ใหญ่เพียง 26 ตัวและตัวพิมพ์เล็ก 26 ตัว
- มีเพียง 10 หลักเท่านั้นที่ให้ผล 100 โอกาสสำหรับสองตัวเลขนี้
- มีเพียง 32 สัญลักษณ์
ดังนั้น (แก้ไขให้ถูกต้องด้วย @Hellion):
26^4 (charcters 2-5 are known upper or lower-case)
x 100 (characters 1 & 7 are digits)
x 32 (character 6 is a symbol)
====
1,462,323,200 possible passwords.
นั่นง่ายกว่าการแตก 50,000 เท่า! การจัดเก็บข้อมูลที่ดีเพื่อป้องกันรหัสผ่านที่คล้ายกันในกรณีนี้ได้ใช้เวลาในการถอดรหัสรหัสผ่าน 7 ตัวอักษรจากหนึ่งปีเป็นสองชั่วโมง การถอดรหัสรหัสผ่านทั้งหมดของคุณด้วยเดสก์ท็อปแบบมัลติโปรเซสเซอร์อันทรงพลังพร้อมการ์ดแสดงผลที่ดีและความอดทนน้อยก็เป็นไปได้แล้วในตอนนี้ ฉันหวังว่าตัวอย่างง่ายๆนี้แสดงให้เห็นว่ายิ่งคุณสามารถเปรียบเทียบรหัสผ่านที่คล้ายกันได้มากเท่าไหร่ก็ยิ่งมีความปลอดภัยน้อยลงเท่านั้น
ความสำคัญของการแฮ็กที่แข็งแกร่ง
ฐานข้อมูลที่มีรหัสผ่านจะถูกขโมยเป็นประจำโดยมีตัวแบ่งขนาดใหญ่ในข่าวทุกเดือน เฮ็คเมื่อเดือนที่แล้วรัฐเซาท์แคโรไลนาสูญเสียหมายเลขประกันสังคมของทุกคน - โอ๊ะโอ! มีช่องโหว่อะไรอีกมากมายที่ถูกปกปิด
ปิดความคิด
สิ่งที่น่ากลัวที่สุดสำหรับฉันคือเมื่อผู้คนเลือกรหัสผ่านที่เหมือนกันหรือคล้ายกันสำหรับหลาย ๆ ไซต์เพื่อให้ผู้บุกรุกสามารถเข้าถึงพวกเขาได้ทั้งหมด ฉันชอบที่จะเห็นวิธีการที่พิสูจน์แล้วของการป้องกันสถานการณ์นั้น แต่ฉันคิดว่าการป้องกันรหัสผ่านที่ไม่ถูกต้องส่วนใหญ่จะช่วยได้มากกว่าการป้องกันไม่ให้ผู้ใช้แต่ละคนนำรหัสผ่านที่ไม่ดีกลับมาใช้ภายในไซต์เดียวกัน ที่ดีที่สุดที่ฉันสามารถแนะนำได้คือนโยบายทั่วทั้ง บริษัท ในการใช้ตัวจัดการรหัสผ่านที่ปลอดภัยซึ่งสร้างรหัสผ่านแบบสุ่มสูงสำหรับผู้ใช้แต่ละคนของคุณและเก็บไว้อย่างปลอดภัย