2012-08-31 47 views
6

Tôi đang làm việc trên một ứng dụng web cho dự án Thạc sĩ của mình. Đó là một hệ thống cho các giáo sư để quản lý các dự án sinh viên, và nó sử dụng Java cho mã phía máy chủ, HSQLDB cho cơ sở dữ liệu và JSP cho lớp trình bày, và nó chạy trên tomcat. Dữ liệu sẽ được lưu trữ không bao gồm bất kỳ thông tin nhạy cảm nào (ID sinh viên, thông tin tài chính, không có gì giống như vậy) nhưng tên người dùng và mật khẩu là một yêu cầu, vì vậy tôi muốn bảo vệ mật khẩu trong trường hợp sinh viên sử dụng mật khẩu cho ứng dụng của tôi mà họ sử dụng cho một số ứng dụng quan trọng khác (điều này chắc chắn sẽ xảy ra ngay cả khi tôi yêu cầu mọi người không làm điều đó).Truyền và bảo mật đúng mật khẩu của người dùng cho ứng dụng web

Tôi chưa bao giờ xem xét điều này trước đây và tôi khá lạc lõng. Tôi đã tìm thấy một bài viết hay giải thích cách sử dụng Java để create a hash of a password và tôi đã tìm thấy thông tin trong phần tomcat documentation giải thích cách đặt lược đồ băm được sử dụng trong cõi và cách thực hiện SSL with tomcat, cũng như JavaScript library để tạo băm từ mật khẩu, nhưng Tôi không chắc chắn làm thế nào để đặt tất cả các mảnh lại với nhau, và những gì phần tôi cần chính xác.

Nếu tôi sử dụng thư viện JavaScript để băm mật khẩu và sử dụng SSL cho bước đăng nhập (không cần thiết sau khi tôi nghĩ vì dữ liệu khác không cần bảo vệ), thì chỉ lưu trữ các phiên bản băm mật khẩu trong cơ sở dữ liệu , là đủ? Hay tôi cần phải làm gì đó hơn? Tôi chạy qua a question nơi câu trả lời thảo luận PBKDF2 và một số thứ khác, nhưng nó chỉ làm tôi bối rối hơn ... Nếu tôi nên sử dụng một trong các đề án được đề cập trong các câu trả lời đó, làm cách nào để tôi thực hiện? Tôi đã không nhìn thấy tài liệu tham khảo cho họ trong tomcat hoặc tài liệu khác vì vậy tôi không biết làm thế nào tôi sẽ sử dụng chúng ...

Nếu có ai có thể làm rõ sự nhầm lẫn của tôi và cho tôi biết cách chính xác để truyền tải một cách an toàn lưu trữ mật khẩu là, tôi thực sự sẽ đánh giá cao nó.

Trả lời

3

SSL đảm bảo việc bảo vệ toàn bộ lớp vận chuyển. Bạn không cần phải lo lắng về dữ liệu được gửi qua HTTPS.

Không bao giờ lưu trữ mật khẩu thực trong cơ sở dữ liệu của bạn. Chỉ lưu trữ các băm muối được thực hiện với các hàm băm an toàn thích hợp (nghĩa là không phải MD5). Sử dụng một loại muối khác nhau cho mỗi băm.

Nếu bạn làm theo các hiệu trưởng này, bất kể bạn sử dụng thành phần nào, bạn sẽ có cơ chế lưu trữ tên người dùng/mật khẩu hợp lý.

+2

đảm bảo bạn _salt hashes_! – jtahlborn

+0

@jtahlborn, Vâng! Làm thế nào tôi có thể quên điều đó. Đã thêm vào câu trả lời, cảm ơn bạn! – Brad

+0

bạn có thể tương lai bằng chứng lưu trữ bằng cách lưu trữ các thuật toán được sử dụng w/mỗi mật khẩu. cho phép bạn nâng cấp thuật toán trong tương lai mà không phá vỡ người dùng hiện tại. – jtahlborn

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