Nói một cách đơn giản, thuật toán băm mật khẩu $pH$ mất một muối $muối$ và nhập mật khẩu $pwd$ và tính toán $h' = pH(muối,pwd)$ và kiểm tra $h$ với hàm băm của mật khẩu được lưu trữ hiện tại $h$, $h \overset{?}{=} h'$.
nhập sai mật khẩu vừa băm vào có cho tôi vào không?
Nếu bạn nhập một mật khẩu tùy ý, nó có thể có một sự thay đổi không đáng kể để có cùng hàm băm mật khẩu với muối. Nếu điều này xảy ra thì điều này là hợp lệ và bạn có thể vào hệ thống.
Tôi sẽ không gọi đó là mật khẩu không chính xác, thay vào đó hãy gọi một hình ảnh trước khác cho $h$. Ngoài vũ lực (và các bảng cầu vồng nơi muối ngăn chặn điều này), đây là cuộc tấn công cần được thực hiện bởi những kẻ tấn công. Cuộc tấn công này thực sự là một cuộc tấn công trước hình ảnh;
- Đưa ra một giá trị băm $h$ tìm và nhập như vậy $m$ điều đó $h = hàm băm(m)$. Chi phí chung của cuộc tấn công này là $\mathcal{O}(2^n)$ vì $n$hàm băm -bit (hàm băm mật khẩu hoặc hàm băm mật mã)
Điểm yếu nhất trong việc bẻ khóa mật khẩu là yếu tố con người. con người có xu hướng có mật khẩu yếu và hiện tại một trong những phương pháp tốt là xúc xắc. Sử dụng dicewire để tạo mật khẩu của bạn hoặc tốt hơn là sử dụng trình quản lý mật khẩu nơi họ tạo mật khẩu thực sự ngẫu nhiên và bạn giữ cơ sở dữ liệu mật khẩu của mình bằng mật khẩu mạnh do dicewire tạo.
nhưng nó hoạt động như thế nào để ngăn mật khẩu xung đột được sử dụng thay thế cho nhau?
Bạn không thể ngăn chặn nó, nó tồn tại bởi nguyên tắc chuồng bồ câu. Thay vào đó, thuật toán băm mật khẩu theo thiết kế an toàn với nó, ngay cả khi bạn chỉ sử dụng MD5. MD5 vẫn an toàn trước các cuộc tấn công trước hình ảnh, bạn sẽ có ~128-bit khả năng chống lại hình ảnh trước. Tất nhiên, người ta cần sử dụng các thuật toán băm hiện đại, như Argon2.
nói cách khác, những kỹ thuật này có phải là lý do khiến đường chuyền sai không cho phép bạn vào hay dù sao thì nó cũng không hoạt động?
Đây là cách nó hoạt động, nó sẽ luôn hoạt động. Hãy nhớ rằng, bạn sẽ có xác suất $\dfrac{1}{2^{128}}$ cho một mật khẩu ngẫu nhiên khớp với hàm băm của mật khẩu của bạn (giả sử đầu ra 128 bit). Nếu xác suất của một sự kiện là $\geq \dfrac{1}{2^{100}}$ chúng tôi chỉ đơn giản nói rằng Điều này sẽ không xảy ra.
Ngay cả khi bạn sợ điều này, hãy sử dụng hệ thống xác thực hai yếu tố và thực tế là bạn nên sử dụng nó bất cứ khi nào có thể.
Một lưu ý phụ: việc tìm kiếm một vụ va chạm là không liên quan trong việc băm mật khẩu về mặt tấn công va chạm khi bạn chỉ cần tìm hai đầu vào tùy ý $a$ và $b$ như vậy mà $hash(a) = hàm băm(b)$. Trong băm mật khẩu, kẻ tấn công có hàm băm và cố gắng tìm một hàm tạo ra hàm băm giống nhau,