Я разрабатываю серверный компонент, который будет обслуживать запросы для встроенного клиента, который также находится под моим контролем.Безопасное соединение между клиентом и сервером
Сейчас все бета и безопасности работает так:
клиент отправляет имя пользователя/пароль через HTTPS.
сервер возвращает токен доступа.
клиент делает дополнительные запросы по http с токеном доступа в пользовательском заголовке.
Это прекрасно подходит для демонстрации, но у него есть некоторые проблемы, которые должны быть исправлены, прежде чем отпустить:
Любой желающий может копируйтеКак некоторые пользователи ответили, это не проблема, так как она переместилась через https. Виноват.login
запрос, повторно отправить его и получить маркер доступа обратно.Любой может прослушать и получить ключ доступа, просто проверив заголовки запроса.
Я могу думать о симметричного ключа шифрования, с отметкой времени, так что я могу отказаться от дублирующих запросов, но мне было интересно, если есть некоторые хорошо известные хорошие методы для этого сценария (который, кажется, довольно часто).
Большое спасибо за понимание.
PS: Я использую Java для сервера, а клиент закодирован на C++, на всякий случай.