2012-08-27 22 views
6

Tôi đã sử dụng PHPass để băm mật khẩu của mình trong một thời gian dài. Tôi thừa nhận rằng vẫn còn những điều tôi không hoàn toàn hiểu (hoặc bỏ qua) để băm một mật khẩu đúng cách vì vậy hôm nay tôi đã xem xét tất cả các thông tin tôi có thể tìm thấy về nó.ướp muối thích hợp và sử dụng PHPass

Rà soát, bổ PHPass, tôi đã steped vào đây:

Bên cạnh băm thực tế, phpass minh bạch tạo ra muối ngẫu nhiên khi một mật khẩu mới hoặc cụm từ mật khẩu được băm, và nó mã hóa kiểu băm, muối, và số lần lặp lại mật khẩu kéo dài vào "chuỗi mã hóa băm" mà nó trả về. Khi phpass xác thực mật khẩu hoặc cụm từ mật khẩu so với băm được lưu trữ, nó trích xuất một cách minh bạch tương tự và sử dụng mã định danh loại băm, muối và tính lặp lại trong chuỗi "mã hóa băm". Vì vậy, bạn không cần phải bận tâm với muối và kéo dài trên của riêng bạn - phpass sẽ chăm sóc này cho bạn.

Tôi đã in đậm câu làm phiền tôi.
Tôi luôn luôn cho rằng muối nên phần nào bí mật, theo nghĩa là nó không nên được biết đến với kẻ tấn công. Vì vậy, nếu hiểu một cách chính xác, PHPass lưu trữ muối được sử dụng trong cùng một băm để nó có thể sử dụng nó khi so sánh mật khẩu và kiểm tra nếu hợp lệ.
Câu hỏi của tôi là

  1. Điều này có an toàn không? Nếu băm bị tổn hại, kẻ tấn công có muối được sử dụng để băm mật khẩu ... Có điều tôi nhớ ở đây.
  2. Tôi ở đây thực sự miễn phí vì bận tâm về mật khẩu muối? Tôi có thể thực sự dựa vào PHPass không?
+0

Với thêm 'salt' bạn thêm một lớp bảo mật. Đây là nguyên tắc chính của 'Defense in Depth'. Nhưng nếu _phpass_ đã thêm muối, nó sẽ không thêm một lớp khác. – Leri

+0

1.) Bạn bảo đảm loại an ninh nào? Bạn có thể làm cho nó cụ thể hơn không? - 2.) Bạn có thể trả lời một cách tự tin câu hỏi sau đây trong một phần nhỏ của giây với có hay không: "Phượt qua có sử dụng muối không?" - Nói như thế nào chắc chắn và nhanh như thế nào bạn có thể trả lời nó và cũng là câu trả lời. – hakre

+0

@hakra Tôi đang đề cập đến hành động lưu trữ muối cùng với mật khẩu. Tôi luôn luôn mặc dù lưu trữ nó ở những nơi khác nhau (đọc các lĩnh vực DB ví dụ) là tốt hơn. –

Trả lời

1

Mục đích của muối là không phải là là bí mật. Mục đích là thêm một thành phần duy nhất vào mỗi đầu vào băm, vì vậy mật khẩu giống hệt nhau sẽ không băm thành băm giống nhau, do đó làm cho quá trình brute-force khó khăn hơn và tốn thời gian vì mỗi băm phải được thử riêng lẻ. Có, nó sẽ được an toàn hơn nếu muối là bí mật, nhưng đó là khó khăn để thực hiện trong thực tế, kể từ ứng dụng của bạn cần muối là tốt, vì vậy nó cần phải được lưu trữ ở đâu đó mà mật khẩu có thể truy cập như tốt. Vì vậy, trong thực tế, khi kẻ tấn công nhận được mật khẩu băm, anh ta thường cũng có thể nhận được muối anyway.

1

Nếu tôi hiểu chính xác, các muối được sử dụng chủ yếu để ngăn chặn các cuộc tấn công bảng băm/cầu vồng được tính trước. Miễn là băm được sử dụng được tạo ra sao cho nó là duy nhất một cách hợp lý trên toàn cầu (không được mã hóa cứng trong PHPass chẳng hạn), bạn vẫn ổn.

3

Một nền ít
Một muối được không có nghĩa là bí mật, thay vào đó, một muối 'làm việc' bởi bằng cách đảm bảo kết quả băm duy nhất cho mỗi sử dụng ví dụ. Điều này được thực hiện bằng cách chọn một giá trị muối ngẫu nhiên khác nhau cho mỗi băm được tính toán.

Mục đích của muối không bị xâm phạm khi nó được biết; kẻ tấn công vẫn cần tấn công từng băm riêng biệt. Do đó, bạn có thể chỉ cần lưu trữ muối cùng với mật khẩu.

Vì vậy, PHPass có an toàn không?
CÓ! PHPass (theo các thực hành tốt nhất) tạo ra một muối ngẫu nhiên mạnh mẽ cho bạn. Nó là một thư viện chất lượng tốt và được đánh giá tốt.

Liên kết quan tâm:
How to securely hash passwords?
How to store salt?
Password Hashing add salt + pepper or is salt enough?
Salt Generation and open source software

Các vấn đề liên quan