Я согласен с другими ответами: использовать HTTPS (TLS).Это защитит передачу, включая защиту от повторных атак, посредника и т. Д. Хотя ничто не идеально (см., Например, Атака повторного согласования TLS ), вы можете считать TLS очень зрелым.
Но с учетом вашего заявления:
любое интернет-кафе может собрать все учетные записи своих клиентов
Да, к сожалению, это все еще так, даже если вы используетеHTTPS: Любое интернет-кафе может установить кейлоггеры, модифицированный браузер, ...
Так достаточно ли этого для защиты канала или вам также нужно аутентифицировать клиентов?Вы можете сделать это и с HTTPS, но это будет означать, что вам придется создавать клиентские сертификаты и устанавливать их на компьютерах (учетных записях пользователей), которым вы доверяете.В зависимости от ваших требований (высокий уровень безопасности, только пользователи компании, ...), это может быть хорошим подходом или нет (например, веб-сайт для широкой публики).