Tôi đã tìm kiếm trên google để biết thông tin về mật khẩu ứng dụng và bảo mật SQLite trong một thời gian, và không có gì tôi tìm thấy đã thực sự trả lời câu hỏi của tôi.Mật khẩu ứng dụng và bảo mật SQLite
Dưới đây là những gì tôi đang cố gắng tìm ra:
1) Ứng dụng của tôi sẽ có một hoạt động mật khẩu tùy chọn sẽ được gọi khi ứng dụng được đầu tiên khai trương. Câu hỏi của tôi cho điều này là a) Nếu tôi lưu trữ mật khẩu thông qua sở thích Android hoặc cơ sở dữ liệu SQLite, làm cách nào để đảm bảo bảo mật và quyền riêng tư cho mật khẩu và b) cách xử lý khôi phục mật khẩu?
Về b) từ trên cao, tôi đã nghĩ đến việc yêu cầu địa chỉ email khi tính năng mật khẩu được bật và cũng là câu hỏi gợi ý mật khẩu để sử dụng khi yêu cầu khôi phục mật khẩu. Khi trả lời thành công câu hỏi gợi ý, mật khẩu sẽ được gửi qua email đến địa chỉ email đã được gửi. Tôi không hoàn toàn tự tin vào tính bảo mật và quyền riêng tư của phương pháp email, đặc biệt nếu email được gửi khi người dùng được kết nối với mạng không dây công cộng mở.
2) Ứng dụng của tôi sẽ sử dụng cơ sở dữ liệu SQLite, sẽ được lưu trữ trên thẻ SD nếu người dùng có. Bất kể nó được lưu trữ trên điện thoại hay thẻ SD, tôi có những tùy chọn nào để mã hóa dữ liệu và điều đó ảnh hưởng đến hiệu suất của ứng dụng như thế nào?
Cảm ơn bạn đã dành thời gian để trả lời những câu hỏi này. Tôi nghĩ rằng có thể có các nhà phát triển khác đang phải vật lộn với những lo ngại tương tự.
Tôi không có kinh nghiệm thực tế với những điều này, vì vậy tôi ngần ngại đăng câu trả lời, nhưng tôi biết rằng bạn không nên lưu trữ mật khẩu - bạn nên lưu trữ một băm muối của nó. Điều tương tự có thể được thực hiện cho câu trả lời câu hỏi bảo mật (sau khi một số tiêu chuẩn hóa - chuyển đổi sang chữ thường, cắt khoảng trống, v.v.). Để đặt lại mật khẩu, điều an toàn nhất là đặt câu hỏi và cho phép đặt lại tất cả trong một phiên bảo mật. Nếu không, bạn ít nhất có thể gửi email cho người dùng để cho họ biết họ có thể đăng nhập (trong giới hạn thời gian) và nhập/truy xuất mật khẩu mới của họ một cách an toàn. – Cascabel