Toàn bộ vấn đề là thiết kế một hệ thống đơn giản, nơi người dùng có thể gửi tin nhắn được mã hóa giữa chúng (với sự hỗ trợ từ máy chủ).Mật mã khóa công khai với mật khẩu do người dùng chọn?
Trong trường hợp này, khách hàng không có bộ nhớ cục bộ, vì vậy tôi buộc phải sử dụng mật khẩu mà người dùng có thể chọn, ghi nhớ và nhập khi cần. (Tôi biết điều này làm suy yếu toàn bộ hệ thống nhưng đây là một yêu cầu khó khăn)
yêu cầu khác là máy chủ không thể lưu trữ các khóa riêng cleartext hoặc bất kỳ dữ liệu khác có thể được sử dụng để giải mã thông điệp (ví dụ: chỉ người dùng có thể đọc tin nhắn được mã hóa, quản trị viên máy chủ sẽ không thể).
Cách tiếp cận của tôi là tạo cặp khóa bất đối xứng trên máy khách, xuất bản khóa công khai trên máy chủ cùng với bản sao mã hóa khóa cá nhân (được mã hóa bằng mật khẩu người dùng). Sau đó, người dùng có thể gửi tin nhắn được mã hóa tới người dùng khác, sử dụng khóa công khai của người nhận đã được xuất bản; khi người dùng cần giải mã thư, khóa cá nhân (được mã hóa) của anh ta được tìm nạp trên máy khách từ máy chủ, được giải mã bằng mật khẩu do người dùng cung cấp và sau đó được sử dụng để giải mã thư.
Điều này có ý nghĩa gì không? Có lỗ hổng nào trong thiết kế hệ thống này không? (ngoài điểm yếu bắt nguồn từ người dùng lựa chọn mật khẩu ngắn hoặc xấu) Cách tiếp cận này đã được sử dụng trong các tình huống tương tự chưa?
Cảm ơn bạn :)
Như được mô tả, nó có vẻ giống với những gì hushmail.com thực hiện. Họ có các trang trắng trên trang web của họ mô tả bảo mật. –
Cảm ơn tôi sẽ xem qua chúng. – Patonza