Có cách nào để sử dụng mã hóa một chiều của bí mật được chia sẻ OTP ...?
Không thực sự. Bạn có thể sử dụng một cơ chế mã hóa đảo ngược, nhưng có lẽ không có nhiều điểm.
Bạn chỉ có thể băm một khóa HMAC trên máy chủ nếu máy khách xác thực bằng cách gửi khóa HMAC chưa hoàn chỉnh trên mạng, thường là cách xác thực dựa trên mật khẩu, nhưng sẽ dễ bị tấn công phát lại. chính xác những gì HOTP/TOTP được thiết kế để tránh.
tại sao chúng tôi áp dụng chức năng 1 chiều cho mật khẩu trước khi lưu trữ (muối + băm) ...?
Đó thực sự là một câu hỏi hay.
Tôi nghĩ rằng nó bắt nguồn từ thực tế là các phiên bản đầu của hệ điều hành Unix lưu trữ tất cả thông tin mật khẩu của nó trong một tệp 'có thể đọc được' /etc/passwd
trên thế giới, vì vậy rõ ràng chúng phải bị làm mờ theo một cách nào đó. đã xảy ra là phương pháp mà họ đã chọn.
Ngày nay, người ta thường không làm cho tệp mật khẩu của họ tự do sẵn có, vì vậy có thể cho là không cần phải băm chúng.
Tuy nhiên, có một lý do khác để làm xáo trộn chúng, đó là mật khẩu thường được con người chọn, vì vậy, để thuận tiện, chúng thường chọn cùng một mật khẩu cho nhiều hệ thống. Tôi nghi ngờ điều này cũng đúng đối với các khóa HMAC, đó là (hy vọng) được chọn bằng cách sử dụng một cơ chế mã hóa mạnh hơn.
Vì vậy, lý do chính để băm mật khẩu ngày nay, không phải là quá nhiều để tăng tính bảo mật cho hệ thống của bạn, nhưng để giảm nguy cơ xâm phạm bảo mật của người dùng của bạn trên các hệ thống khác. .
Nếu kẻ tấn công có thể đọc mật khẩu văn bản thuần tuý từ hệ thống của bạn, nó có thể không được sử dụng nhiều đối với họ, bởi vì họ cũng có thể đọc mọi thứ khác trên hệ thống.
Nhưng, nếu cùng một mật khẩu cũng được sử dụng trên một hệ thống khác, thì bạn cũng có khả năng cho kẻ tấn công phương tiện xâm phạm hệ thống đó.
Nếu con người có thể tin cậy không sử dụng cùng một mật khẩu cho nhiều hệ thống, thì có lẽ không cần phải băm chúng chút nào, nhưng tôi nghĩ có phần lạc quan để cho rằng điều đó có khả năng xảy ra.:-)
Nếu bạn đã làm một băm bí mật, sau đó hiệu quả băm (bí mật) sẽ trở thành bí mật mới của bạn. –
Có, nhưng nếu kẻ tấn công đọc băm (bí mật) từ cơ sở dữ liệu máy chủ, anh ta không thể mạo danh người dùng, bởi vì băm sẽ không đủ để tạo ra một OTP. Tương tự như kịch bản băm mật khẩu - máy chủ có thể cho biết liệu mật khẩu được cung cấp có chính xác hay không, nhưng không có kiến thức về chính mật khẩu đó. – Paul