Xin chào các bạn đã đọc về mật khẩu, nhưng điều này nghe có vẻ hơi lạ. Nhưng làm thế nào để lưu trữ và bảo đảm muối. Ví dụ trong một kiến trúc lốp đa nói rằng tôi sử dụng GUID của máy khách để tạo ra muối của tôi sau đó người dùng bị hạn chế với một máy duy nhất nhưng nếu tôi sử dụng muối ngẫu nhiên, nó phải được lưu trữ ở đâu đó. Vài ngày trở lại tôi thấy một ứng dụng mẫu trong đó băm và muối được tạo ra trên hệ thống máy khách bất cứ khi nào người dùng mới được tạo và mật khẩu muối và băm được truyền tới máy chủ nơi chúng được lưu trữ trong máy chủ SQL. Nhưng nếu tôi làm theo phương pháp này và cơ sở dữ liệu bị xâm nhập mật khẩu và các giá trị muối cho mỗi mật khẩu sẽ có sẵn cho người X. Vì vậy, tôi nên một lần nữa muối/mã hóa các mật khẩu và nhận được muối trên phía máy chủ? Thực hành muối tốt nhất là gì?cách tốt nhất có thể để muối và lưu trữ muối là gì?
Trả lời
Lưu trữ muối không được mã hóa trong cơ sở dữ liệu bên cạnh mật khẩu băm không phải là vấn đề.
Mục đích của muối không phải là bí mật. Mục đích của nó là khác nhau đối với mỗi băm (tức là ngẫu nhiên), và đủ lâu để đánh bại việc sử dụng rainbow tables khi kẻ tấn công lấy tay của anh ta trên cơ sở dữ liệu.
Xem điều này excellent post về chủ đề của Thomas Ptacek.
chỉnh sửa @ZJR: ngay cả khi các muối đã hoàn toàn công khai, họ vẫn sẽ đánh bại lợi ích của bảng cầu vồng. Khi bạn có một muối và băm dữ liệu, tốt nhất bạn có thể làm để đảo ngược nó là brute force (với điều kiện là các hàm băm là mã hóa an toàn)
chỉnh sửa @ n10i: Xem bài viết wikipedia cho secure hash function. Đối với kích thước muối, việc thực hiện phổ biến bcrypt .gensalt() sử dụng 128 bit.
Hãy dành một chút thời gian để đọc mô tả rất tốt này của muối và băm
- 1. Có thể lưu trữ muối bằng băm không?
- 2. Tôi có cần lưu trữ muối bằng bcrypt không?
- 3. Nơi để lưu trữ muối mật khẩu và cách lấy mật khẩu
- 4. Bạn lưu chuỗi muối ở đâu?
- 5. Điểm muối và băm là gì nếu cơ sở dữ liệu có thể truy cập?
- 6. Tạo muối trong PHP
- 7. Mật khẩu băm, muối và lưu trữ các giá trị băm
- 8. Xác nhận hàm băm muối
- 9. Chúng tôi lưu trữ khóa/cụm mật khẩu/muối để mã hóa ở đâu?
- 10. OpenSSL - Mật khẩu và Mục đích Muối
- 11. Trường tốt nhất để lưu trữ ngày sinh là gì?
- 12. Có thể để muối và hoặc băm mật khẩu HOTP/TOTP trên máy chủ không?
- 13. Là muối chứa trong một băm phpass hoặc bạn cần phải muối đầu vào của nó?
- 14. Muối kép cho mật khẩu băm?
- 15. Cách tốt nhất để lưu trữ và truy xuất NSMutableArrays đa chiều là gì?
- 16. Cách tốt nhất để tải lên và lưu trữ hình ảnh trên trang web là gì?
- 17. Lưu trữ muối trong mã thay vì cơ sở dữ liệu
- 18. Optimal mật khẩu muối chiều dài
- 19. Cách tốt nhất để lưu trữ một URL Slug duy nhất là gì?
- 20. Cách chọn giá trị muối cho ValidateAntiForgeryToken
- 21. Làm thế nào để trữ và sử dụng muối của shiro từ cơ sở dữ liệu
- 22. ướp muối thích hợp và sử dụng PHPass
- 23. là dành cho các vòng lặp có thể có trong nước muối?
- 24. Thực hành tốt nhất để lưu trữ tên người dùng và mật khẩu trong MySQL Databases
- 25. Cách tốt nhất để lưu trữ quyền của người dùng là gì?
- 26. Cách tốt nhất để lưu trữ thẻ trong cơ sở dữ liệu là gì?
- 27. Cách tốt nhất để lưu trữ chuỗi kết nối trong .NET DLLs là gì?
- 28. Cách tốt nhất để triển khai Mẫu Kho lưu trữ là gì?
- 29. Cách tốt nhất để trích xuất một cây từ kho lưu trữ git là gì?
- 30. Cách tốt nhất để lưu trữ mã html trong mysql là gì?
Tôi muốn nói mục đích của muối không phải là để được ** ** công cộng, một trong hai. – ZJR
bạn có thể giải thích "hàm băm có an toàn về mặt mã hóa" không. xin lỗi tôi mới đến mật mã. cũng trong u trả lời của bạn đề cập đến "đủ dài để đánh bại việc sử dụng các bảng cầu vồng" bao lâu muối nên được, đủ dài? – Neel