Nếu mật khẩu được lưu trữ băm, làm thế nào một máy tính biết rằng mật khẩu của bạn giống với mật khẩu cuối cùng nếu bạn thử đặt lại mật khẩu của mình?


11

Nếu mật khẩu được lưu trữ băm, làm thế nào một máy tính biết rằng mật khẩu của bạn giống với mật khẩu cuối cùng nếu bạn thử đặt lại mật khẩu của mình? Không phải hai mật khẩu sẽ hoàn toàn khác nhau vì một mật khẩu được băm và không thể đảo ngược?


5
Máy tính sẽ không biết nếu chúng tương tự nhau. Nó sẽ chỉ biết nếu chúng giống hệt nhau (bằng cách băm mật khẩu mới và so sánh nó với hàm băm được lưu trữ của mật khẩu gốc).
Robert Harvey

Mặc dù, có nhiều cách để tạo ra một hàm băm nắm bắt một phần các đặc điểm của mật khẩu. Tuy nhiên, tính khả dụng của các băm như vậy là một lỗ hổng lớn, bởi vì những kẻ bẻ khóa mật khẩu cũng có thể sử dụng thông tin đó để thu hẹp tìm kiếm vũ lực mật khẩu theo nhiều đơn đặt hàng lớn.
rwong

Nếu bạn cần so sánh mật khẩu, bạn sẽ không sử dụng băm. Có khả năng bạn sẽ sử dụng AES hoặc các hình thức mã hóa
mô phỏng khác

Câu trả lời:


15

Một cách để thực hiện điều này là nếu bạn đặt lại mật khẩu, bạn cũng thường được yêu cầu nhập mật khẩu cũ. Bạn chỉ có thể sử dụng so sánh chuỗi tương tự thông thường trong tình huống đó bởi vì bạn có cả mật khẩu ở dạng văn bản gốc tại thời điểm đó.

Một cách khác để thực hiện điều này là bình thường hóa mật khẩu, ví dụ các ký tự có dấu được chuẩn hóa thành bảng chữ cái tiếng Anh gần nhất, cố gắng phiên âm văn bản theo ngữ âm, xóa số, v.v. và bằng cách tính toán trước nhiều phiên bản băm được tạo từ mật khẩu. đã được bình thường hóa theo những cách khác nhau. Lưu ý rằng điều này làm suy yếu cơ chế băm bởi số lượng không xác định. Tôi sẽ không coi đó là thực hành tốt nhất về an ninh.


"Đặt lại mật khẩu" thường đề cập đến "Tôi quên mật khẩu của mình và tôi muốn đặt lại mật khẩu", vì vậy bạn sẽ không được hỏi mật khẩu cũ. Nửa sau của câu trả lời của bạn là chính xác mặc dù.
casifer

3
@casTHER: có rất nhiều hệ thống ngoài đó có bạn "đặt lại" mật khẩu của bạn mỗi X ngày ....
whatsisname

1
@casTHER: nửa đầu cũng chính xác, "đặt lại mật khẩu" có thể có cả hai nghĩa, thuật ngữ này không cứng nhắc. Chúng ta cần hỏi OP chính xác ý nghĩa của chúng.
Doc Brown

12

Câu trả lời đơn giản là một hệ thống an toàn không biết chúng có giống nhau không.

Nhưng một số hệ thống cố tình giảm bảo mật cho một mật khẩu cụ thể trong một số trường hợp để ngăn mật khẩu mới trở thành mật khẩu cũ hoặc tương tự với chúng. Sự đánh đổi lợi ích chi phí là một mật khẩu mới sẽ được tạo ra trước khi ai đó bẻ khóa mật khẩu hiện tại ngay cả với thông tin tương tự.

  • Họ có thể lưu trữ băm mật khẩu cuối cùng mà bạn đã sử dụng. Nếu bạn nhập mật khẩu cũ thì rõ ràng vì băm mật khẩu mới khớp với băm mật khẩu cũ.
  • Cơ chế băm được sử dụng có thể chứa cơ chế đóng đinh ngón tay cái hoặc hình thu nhỏ được băm có thể được lưu trữ cùng với hàm băm. Về cơ bản các mẫu bit nhất định trong hình thu nhỏ băm biểu thị một tập hợp các mẫu bit rất giống nhau trong giá trị cơ bản.
  • Tương tự như vậy, họ có thể giữ các số liệu thống kê sang một bên về mật khẩu của bạn, điều này sẽ cho phép đo lường độ tương tự chính xác.

Nói chung, mỗi kỹ thuật này làm giảm tính bảo mật của mật khẩu.

  • Giữ mật khẩu cũ làm giảm tính bảo mật của những mật khẩu đó. Nếu bất kỳ mật khẩu nào trong số đó bị bẻ khóa, có khả năng cao là mật khẩu hiện tại sẽ giống với chúng, hầu hết mọi người chỉ thay đổi một số.

  • Thumbing và thống kê có thể loại bỏ đoán mật khẩu xấu nhanh hơn so với cố gắng băm đoán và so sánh. Điều này là do băm, đặc biệt là băm an toàn rất phức tạp để tính toán và mất công sức, ngay cả khi phần cứng được tăng tốc. Mặc dù một phép tính đơn giản hơn nói rằng 'chắc chắn không' hoặc 'có thể' có thể loại bỏ hầu hết các dự đoán đó, nhưng sau tất cả các kiểm tra tương tự đều có nghĩa là ngăn bạn sử dụng mật khẩu tương tự, không sử dụng mật khẩu hoàn toàn mới trông không giống với mật khẩu cũ.

Tóm lại, hãy cảnh giác với bất kỳ trang web nào chỉ ra một biện pháp tương tự với mật khẩu hiện tại / cũ của bạn. Trừ khi họ nói rằng mật khẩu mới là mật khẩu cũ.


7

Nếu mật khẩu được lưu trữ băm, làm thế nào một máy tính biết rằng mật khẩu của bạn giống với mật khẩu cuối cùng nếu bạn thử đặt lại mật khẩu của mình? Không phải hai mật khẩu sẽ hoàn toàn khác nhau vì một mật khẩu được băm và không thể đảo ngược?

Bạn tạo nhiều mật khẩu tương tự từ mật khẩu người dùng đã nhập và kiểm tra xem có bất kỳ băm nào của chúng khớp với một trong những mật khẩu cũ hay không.


Vâng, mọi người khá dễ đoán trong các loại thay đổi họ sẽ thực hiện để đây có thể là một cách hay để thực hiện.
cyborg

Điều đó sẽ nổ tung rất nhanh về mặt xử lý cần thiết chỉ với mật khẩu ngắn nhất. Vì vậy, tôi không tin rằng đây là một thực tế.
Martin Maat

Tôi đã làm việc tại một nơi trong một thời gian khá dài và khi tôi để lại mật khẩu của mình là supersecurepassword39. (Chỉ có hai chữ số cuối là đúng). Rõ ràng nếu mật khẩu bắt đầu hoặc kết thúc bằng một số để xem số trước đó đã được sử dụng chưa.
gnasher729

@MartinMaat Mặc dù vậy? Bạn có thể phát hiện nói thêm hoặc tăng một số bằng cách tách từng ký tự một từ mật khẩu ban đầu. Tức là đối với mật khẩu, bạn băm xác nhận mật khẩu (heehee), điện thoại di động, mật khẩu v.v ... Bạn thậm chí có thể tránh xa việc sử dụng một yếu hơn cho những điều này vì sự phức tạp thêm của việc phải thử 256 hoán vị của mỗi người nếu bạn xảy ra để bruteforce băm thứ cấp. (Nhiều hơn nếu bạn lưu trữ chúng theo thứ tự ngẫu nhiên và bạn không biết nhân vật nào bị tách biệt trong đó, sau đó là 256 * N cho mỗi người.)
millimoose

Nó làm cho việc thiết lập một mật khẩu mới đắt hơn N lần khi N là độ dài mật khẩu, không bao gồm các kiểm tra tương tự sẽ rẻ hơn nhiều so với băm. Nhưng bạn băm mật khẩu mỗi khi người dùng đăng nhập và điều này có thể xảy ra thường xuyên hơn nhiều so với thay đổi mật khẩu, vì vậy tôi nghi ngờ tải bổ sung sẽ đáng chú ý.
millimoose

2

Một mô hình khác là hệ thống của bạn băm một số tập hợp con đặc trưng của mật khẩu của bạn và lưu trữ các giá trị băm đó để kiểm tra xem các tập hợp con của mật khẩu mới có khớp với bất kỳ mật khẩu cũ nào không, ví dụ: password: "Admin2018" & tập hợp con: "Admin" = không thể nhập "Admin2019" như cái mới


1

Một cách sẽ là lưu trữ năm mật khẩu băm trước đây trong một bảng như 'Lịch sử mật khẩu' và khi người dùng đang cố gắng đặt mật khẩu mới, hãy băm mật khẩu và so sánh với mật khẩu được băm trong bảng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.