Я не знал, как сформулировать этот вопрос, поэтому заранее извиняюсь, если это дубликат чего-то другого.
Я хотел проверить, как я защитил свое приложение на основе витой схемы, и думаю, что хорошо поработал над этим, но прошло более десяти лет с тех пор, как я написал что-либо, что использует сырые или управляемые сокеты.
Транзакция аутентификации: клиент подключается, и сразу же отправляется ответ на запрос с 16-символьной шестнадцатеричной строкой. Клиентская сторона принимает имя пользователя и пароль, пароль преобразуется sha1 (salt + sha1 (пароль)), а учетные данные отправляются обратно на сервер как {username, password}. На стороне сервера аутентификация выполняет стандартный шаблон поиска (если пользователь существует и имеет пароль, равный вводу, то предоставьте).
Если соединение между пользователем и клиентом потеряно, класс протокола помечает себя как грязный и отключается от объекта пользователя. В любое время после этого момента, чтобы снова получить доступ к объекту пользователя, клиенту придется повторить процесс аутентификации с новой солью.
Я что-то упускаю? Есть ли лучший / более безопасный подход для протокола на основе символьного потока?