Как передать секретный ключ моего мобильного приложения серверу при первом его создании?

Поэтому сейчас я работаю над мобильным приложением, которое будет отправлять запросы к REST API, созданному с помощью Django.

Чтобы защитить API, я планирую использовать систему аутентификации пары закрытый/открытый ключ.

Рабочий процесс, который я придумал, выглядит примерно так:

  1. Пользователь входит в систему с помощью Facebook
  2. Как только пользователь подписывает, приложение генерирует закрытый ключ
  3. . Закрытый ключ используется совместно сервером и приложением, чтобы сервер мог сопоставить этот закрытый ключ с конкретным пользователем.
  4. Каждый раз, когда мобильное приложение делает запрос, приложение генерирует HMAC/подпись, используя параметры запроса и закрытый ключ. В дополнение к HMAC приложение также отправляет пользователю _идентификатор отправившего его пользователя (, который будет действовать как открытый ключ ).
  5. Когда сервер получает запрос, он генерирует свой собственный HMAC. Он берет идентификатор пользователя _и ищет закрытый ключ в таблице. Используя закрытый ключ, он воссоздает HMAC с параметрами запроса и сравнивает его с HMAC, отправленным мобильным приложением.Если сервер и мобильный телефон имеют совпадающие HMAC, он выполняет запрос.

Теперь моя проблема заключается в шаге 3, где закрытый ключ должен каким-то образом делиться между мобильным приложением и сервером. Как я могу безопасно отправить закрытый ключ?

5
задан user1579937 6 August 2012 в 17:35
поделиться