Как создать простую схему авторизации между IPhone и сервером? - PullRequest
0 голосов
/ 24 февраля 2011

Я разрабатываю приложение для iPhone, которое позволяет пользователям загружать фотографии в серверную часть Google App Engine, написанную на Python.

Данные передаются между устройством и сервером через HTTP POST и GET.Какой самый простой и безопасный способ обеспечить получение данных только с iPhone с моим приложением?Кроме того, я не хочу, чтобы пользователь вводил учетные данные, он должен быть для нее невидим.

Я мог бы встроить ключ в устройство и отправлять его при каждом запросе, с которым сервер проверял бы.Но злонамеренный пользователь может потенциально декомпилировать приложение и получить ключ.Есть предложения?

Ответы [ 2 ]

1 голос
/ 25 февраля 2011

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

Существуют подходы, которые не являются водонепроницаемыми, но могут затруднить массовое злоупотребление вашими услугами.Одним из примеров может быть выпуск обновлений для вашего приложения каждый месяц (или две недели, или что-то еще), которые содержат новый общий секрет.Тогда, очевидно, ваш веб-сервис должен ожидать нового общего секрета, а также принимать существующий секрет для каждого периода времени.

Если ваши данные очень чувствительны, вы можете прекратить прослушивание, используя HTTPS;но, как говорит Ник, если вы используете HTTPS для чего-либо, кроме аутентификации, у вас есть дополнительные обручи для перехода во время отправки приложения.

0 голосов
/ 24 февраля 2011

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

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

...