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

У меня есть приложение для iOS, которое периодически подключается к серверу в поисках обновлений данных. Соединение использует SSL и HTTPBasicAuthentication.

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

Спасибо,

Майк


person gurenski    schedule 30.07.2011    source источник
comment
Если вам нужно защитить свое приложение даже на устройствах с джейлбрейком, то я думаю, что все ставки сняты...   -  person Yahia    schedule 31.07.2011


Ответы (2)


Нет никакого способа обезопасить это полностью. Лучшее, что вы можете сделать, это немного скрыть его (возможно, зашифрованный файл, который вы расшифровываете в приложении), а затем отслеживать сервер на предмет того, что выглядит как трафик не из приложения.

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

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

person Kendall Helmstetter Gelner    schedule 30.07.2011
comment
Я ценю ваш ответ. Любые быстрые идеи как лучший способ сделать то, что вы предлагаете здесь, «затем отслеживать сервер на предмет того, что выглядит как трафик не из приложения». - person gurenski; 01.08.2011
comment
В основном просто ищите вызовы, в которых отсутствуют параметры, которые, как вы знаете, отправит приложение, попробуйте добавить другие параметры или иметь большой объем трафика с одного IP-адреса. Существует множество возможных способов попытаться обнаружить использование службы не приложением. - person Kendall Helmstetter Gelner; 01.08.2011

Вам не нужно делать «джейлбрейк» вашего приложения, чтобы читать URL-адреса. Простое программное обеспечение для анализа пакетов на вашем Mac сделает это. Направьте весь трафик iPhone через Wi-Fi Mac и обнюхайте его. Но главный вопрос здесь: зачем?

Если вы защищаете данные, вы должны делать это безопасно. Если вы жестко кодируете имя пользователя/пароль в своем приложении в каком-то plist, где-то что-то не так.

Проверка обновлений не обязательно должна быть безопасной, тогда как реальный доступ к данным должен быть безопасным. Если вы загружаете данные для покупки в приложении, проверьте их по квитанции IAP. Если вы загружаете данные для пользователя, у которого есть учетная запись в вашем сервисе, то очевидно, что пароль вводится им, который не может быть «подхвачен» анализаторами пакетов, если вы используете правильные криптографические методы.

person Mugunth    schedule 31.07.2011