หากรหัสผ่านถูกเก็บไว้แฮชคอมพิวเตอร์จะทราบได้อย่างไรว่ารหัสผ่านของคุณคล้ายกับรหัสผ่านล่าสุดหากคุณลองรีเซ็ตรหัสผ่าน


11

หากรหัสผ่านถูกเก็บไว้แฮชคอมพิวเตอร์จะทราบได้อย่างไรว่ารหัสผ่านของคุณคล้ายกับรหัสผ่านล่าสุดหากคุณลองรีเซ็ตรหัสผ่าน รหัสผ่านทั้งสองจะไม่แตกต่างกันอย่างสิ้นเชิงเนื่องจากมีการแฮชและไม่สามารถย้อนกลับได้?


5
คอมพิวเตอร์จะไม่ทราบว่าพวกเขาเหมือนกันหรือไม่ มันจะรู้ว่าพวกเขาเหมือนกันหรือไม่ (โดยแฮชรหัสผ่านใหม่และเปรียบเทียบกับแฮชที่เก็บไว้ของรหัสผ่านเดิม)
Robert Harvey

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

หากคุณต้องการเปรียบเทียบรหัสผ่านคุณจะไม่ใช้แฮช อาจเป็นไปได้ว่าคุณจะใช้ AES หรือการเข้ารหัสแบบอื่น ๆ
Laiv

คำตอบ:


15

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

อีกวิธีหนึ่งในการใช้สิ่งนี้คือการทำให้รหัสผ่านเป็นมาตรฐานเช่นอักขระที่เน้นเสียงถูกทำให้เป็นมาตรฐานเป็นตัวอักษรภาษาอังกฤษที่ใกล้เคียงที่สุดพยายามที่จะคัดลอกข้อความการออกเสียงการลบตัวเลข ฯลฯ และทำการวิเคราะห์แฮชหลายรุ่น ได้รับการฟื้นฟูในรูปแบบที่แตกต่างกัน โปรดทราบว่าสิ่งนี้จะทำให้กลไกการแฮ็กอ่อนลงโดยไม่ระบุจำนวน ฉันจะไม่ถือว่าสิ่งนี้เป็นแนวทางปฏิบัติด้านความปลอดภัยที่ดีที่สุด


"รีเซ็ตรหัสผ่าน" โดยทั่วไปหมายถึง "ฉันลืมรหัสผ่านและฉันต้องการรีเซ็ตรหัสผ่าน" ดังนั้นคุณจะไม่ถูกถามถึงรหัสผ่านเก่า ในช่วงครึ่งหลังของคำตอบของคุณถูกต้องแล้ว
คาซาบลังกา

3
@casablanca: มีระบบจำนวนมากออกมีที่คุณ "รีเซ็ต" รหัสผ่านของคุณทุก ๆ วัน ....
whatsisname

1
@casablanca: ครึ่งแรกมีความถูกต้องเช่นกัน "การรีเซ็ตรหัสผ่าน" สามารถมีความหมายทั้งสองคำศัพท์นั้นไม่เข้มงวด เราจำเป็นต้องถาม OP ว่าพวกเขาหมายถึงอะไรอย่างแม่นยำ
Doc Brown

12

คำตอบง่ายๆคือระบบที่ปลอดภัยไม่ทราบว่าเหมือนกันหรือไม่

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

  • พวกเขาอาจเก็บแฮ็ช N ครั้งสุดท้ายของรหัสผ่านที่คุณใช้ หากคุณป้อนรหัสผ่านเก่ารหัสผ่านจะชัดเจนเนื่องจากรหัสผ่านใหม่ตรงกับรหัสผ่านเดิม
  • กลไกแฮชที่ใช้อาจมีกลไกการตอกนิ้วหัวแม่มือหรือรูปขนาดย่อที่แฮชอาจถูกเก็บไว้ข้างแฮช รูปแบบบิตที่แน่นอนบางอย่างภายในภาพขนาดย่อของแฮชแสดงชุดของรูปแบบบิตที่คล้ายกันอย่างมากในค่าที่สำคัญ
  • ในทำนองเดียวกันพวกเขาอาจเก็บสถิติด้านข้างเกี่ยวกับรหัสผ่านของคุณซึ่งจะช่วยให้สามารถวัดความคล้ายคลึงกันได้อย่างแม่นยำ

โดยทั่วไปแต่ละเทคนิคเหล่านี้จะลดความปลอดภัยของรหัสผ่าน

  • การรักษารหัสผ่านเก่าจะช่วยลดความปลอดภัยของรหัสผ่านเหล่านั้น หากรหัสผ่านใด ๆ เหล่านั้นถูกถอดรหัสมีโอกาสสูงที่รหัสผ่านปัจจุบันจะคล้ายกับรหัสผ่านเหล่านั้นคนส่วนใหญ่จะเปลี่ยนตัวเลขเท่านั้น

  • การตอกนิ้วหัวแม่มือและสถิติสามารถกำจัดการคาดเดารหัสผ่านที่ไม่ดีได้เร็วกว่าการพยายามแฮชการเดาและการเปรียบเทียบ เนื่องจากแฮชโดยเฉพาะแฮชที่ปลอดภัยนั้นมีความซับซ้อนในการคำนวณและใช้ความพยายามแม้ว่าฮาร์ดแวร์จะเร่งความเร็วก็ตาม ในขณะที่การคำนวณที่ง่ายกว่าซึ่งระบุว่า 'ไม่แน่นอน' หรือ 'อาจ' สามารถกำจัดการเดาส่วนใหญ่ได้หลังจากการตรวจสอบความเหมือนกันทั้งหมดนั้นมีขึ้นเพื่อหยุดคุณโดยใช้รหัสผ่านที่คล้ายกันไม่ใช่จากการใช้รหัสผ่านใหม่ทั้งหมด

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


7

หากรหัสผ่านถูกเก็บไว้แฮชคอมพิวเตอร์จะทราบได้อย่างไรว่ารหัสผ่านของคุณคล้ายกับรหัสผ่านล่าสุดหากคุณลองรีเซ็ตรหัสผ่าน รหัสผ่านทั้งสองจะไม่แตกต่างกันอย่างสิ้นเชิงเนื่องจากมีการแฮชและไม่สามารถย้อนกลับได้?

คุณสร้างรหัสผ่านที่คล้ายกันหลายรายการจากรหัสผ่านที่ผู้ใช้ป้อนและตรวจสอบว่ามีแฮชใดรหัสหนึ่งตรงกับรหัสผ่านเก่าหนึ่งรหัสหรือไม่


ใช่ผู้คนสามารถคาดเดาได้ค่อนข้างหลากหลายในการเปลี่ยนแปลงที่พวกเขาจะทำดังนั้นนี่อาจเป็นวิธีที่เหมาะสมในการทำเช่นนั้น
หุ่นยนต์

ที่จะระเบิดขึ้นอย่างรวดเร็วจริงๆในแง่ของการประมวลผลที่จำเป็นด้วยรหัสผ่านที่สั้นที่สุดเท่านั้น ดังนั้นฉันไม่เชื่อว่านี่เป็นการปฏิบัติจริง
Martin Maat

ฉันทำงานที่เดียวมานานและเมื่อฉันทิ้งรหัสผ่านของฉันคือรหัสผ่านที่ดีกว่า 39 (เฉพาะตัวเลขสองหลักสุดท้ายเท่านั้นที่เป็นจริง) จะเห็นได้ชัดว่ารหัสผ่านเริ่มต้นหรือลงท้ายด้วยตัวเลขเพื่อดูว่าใช้หมายเลขก่อนหน้านี้หรือไม่
gnasher729

@MartinMaat มันจะเป็นอย่างไร คุณสามารถตรวจพบว่าการเพิ่มหรือการเพิ่มจำนวนโดยการลบอักขระทีละตัวจากรหัสผ่านดั้งเดิม เช่น "รหัสผ่าน" คุณแฮ "assword" (heehee), "pssword", "pasword" ฯลฯ คุณยังสามารถใช้วิธีที่อ่อนแอกว่านี้ได้เนื่องจากความซับซ้อนเพิ่มเติมของการลองเปลี่ยนพีชคณิต 256 อันของแต่ละอัน หากคุณเกิดการแฮชรองแฮช (ยิ่งถ้าคุณเก็บมันไว้ในลำดับแบบสุ่มและคุณไม่รู้ว่าตัวละครตัวไหนเป็นตัวละครตัวไหนมันก็เป็น 256 * N สำหรับแต่ละตัว)
มิลลิโมเสส

มันทำให้การตั้งรหัสผ่านใหม่ N-times แพงกว่าเมื่อ N คือความยาวของรหัสผ่านไม่รวมถึงการตรวจสอบความคล้ายคลึงกันซึ่งควรจะมีราคาแพงน้อยกว่าการแฮช แต่คุณแฮรหัสผ่านทุกครั้งที่ผู้ใช้ลงชื่อเข้าใช้และนี่อาจเกิดขึ้นบ่อยกว่าการเปลี่ยนแปลงรหัสผ่านดังนั้นฉันสงสัยว่าการโหลดเพิ่มเติมจะเห็นได้ชัดเจน
millimoose

2

รูปแบบอื่นคือระบบของคุณแฮชชุดย่อยบางส่วนของรหัสผ่านของคุณและเก็บแฮชเหล่านั้นเพื่อตรวจสอบว่าชุดย่อยของรหัสผ่านใหม่ตรงกับของเก่าหรือไม่เช่น: รหัสผ่าน: "Admin2018" & ชุดย่อย: "Admin" = ไม่สามารถป้อน "Admin2019" อันใหม่.


1

วิธีหนึ่งคือการเก็บรหัสผ่านที่แฮชห้าครั้งล่าสุดในตารางเช่น 'ประวัติรหัสผ่าน' และเมื่อผู้ใช้พยายามตั้งรหัสผ่านใหม่ให้แฮชและเปรียบเทียบกับรหัสผ่านที่ถูกแฮชในตาราง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.