Поэтому сейчас я работаю над мобильным приложением, которое будет отправлять запросы к REST API, созданному с помощью Django.
Чтобы защитить API, я планирую использовать систему аутентификации пары закрытый/открытый ключ.
Рабочий процесс, который я придумал, выглядит примерно так:
- Пользователь входит в систему с помощью Facebook
- Как только пользователь подписывает, приложение генерирует закрытый ключ
- . Закрытый ключ используется совместно сервером и приложением, чтобы сервер мог сопоставить этот закрытый ключ с конкретным пользователем.
- Каждый раз, когда мобильное приложение делает запрос, приложение генерирует HMAC/подпись, используя параметры запроса и закрытый ключ. В дополнение к HMAC приложение также отправляет пользователю _идентификатор отправившего его пользователя (, который будет действовать как открытый ключ ).
- Когда сервер получает запрос, он генерирует свой собственный HMAC. Он берет идентификатор пользователя _и ищет закрытый ключ в таблице. Используя закрытый ключ, он воссоздает HMAC с параметрами запроса и сравнивает его с HMAC, отправленным мобильным приложением.Если сервер и мобильный телефон имеют совпадающие HMAC, он выполняет запрос.
Теперь моя проблема заключается в шаге 3, где закрытый ключ должен каким-то образом делиться между мобильным приложением и сервером. Как я могу безопасно отправить закрытый ключ?
задан user1579937 6 August 2012 в 17:35
поделиться