Безопасный способ подключения настольных клиентов к webapp

#api #authentication

#API #аутентификация

Вопрос:

В будущем я хотел бы создать настольный клиент, приложение для iPhone и т.д. Для взаимодействия с веб-приложением, над которым я сейчас работаю. В настоящее время я работаю над добавлением уровня аутентификации в приложение и пытаюсь учитывать эти планы на будущее. Каков наилучший способ настроить это. Я читал о защите API, и многое из того, что я прочитал, рекомендует использовать открытый и закрытый ключи. Правильный ли это подход для использования? Мне кажется, что это неправильный подход, поскольку первое, что сделает пользователь, это войдет в систему, после чего мне придется отправить закрытый ключ в приложение, которое не кажется очень закрытым.

Ответ №1:

Открытый и закрытый ключи — правильный подход. Ваше приложение или сервер никогда не отправляют свои закрытые ключи. Доступны только открытые ключи. Процесс заключается в следующем:

  1. Ваше приложение использует server's public ключ для шифрования данных и отправляет их
  2. Единственный способ расшифровать данные — это использовать server's private ключ, и поэтому только сервер может их прочитать.
  3. Сервер использует app's public ключ для шифрования данных и отправляет
  4. Единственный способ расшифровки данных — это использовать app's private ключ, и поэтому только приложение может его прочитать.

Я предлагаю вам прочитать больше о том, как работает обмен данными между открытым и закрытым ключами. Я постараюсь предоставить ссылку на хороший учебник.

Редактировать: Статья Википедии по этому вопросу на самом деле довольно хороша.

Комментарии:

1. Спасибо Питеру за информацию. Изложенные вами шаги помогли прояснить ситуацию, и я продолжу и подробнее ознакомлюсь с точным процессом.