Защита соединения с iPhone на сервер

#objective-c #security #ios #http #encryption

#цель-c #Безопасность #iOS #http #шифрование

Вопрос:

Я работаю над приложением для iOS, где ему необходимо подключиться к веб-службе, расположенной на веб-сервере. И для этого необходимо предоставить аргументы некоторым файлам .php, которые получат эти аргументы с помощью метода POST. Проблема в том, что я не хочу, чтобы кто-либо просматривал / знал эти аргументы, и то, что я пробовал, это то, что WireShark может раскрывать / прослушивать значения этих аргументов.

Итак, каков подходящий подход для защиты соединения? Я думал о шифровании данных перед отправкой их на сервер (используя simle secrete / single key, поскольку мои данные не являются высокочувствительными) и то же самое для извлечения данных с сервера, если я выберу этот подход, тогда мне нужно будет реализовать свои собственные классы, но у меня заканчивается время.

Заранее спасибо 🙂

Ответ №1:

Https здесь является опцией, но не будет скрывать данные от определенного злоумышленника. Злоумышленник может самостоятельно использовать MITM для обратного проектирования любого протокола, который вы используете для связи с iphone на сервер, и даже изменять запросы в режиме реального времени!

Вот хороший пример того, как исследователь смог перепроектировать протокол Apple Game Center и искусственно установить свой собственный высокий балл в приложении для iOS:

http://corte.si/posts/code/mitmproxy/tute-gamecenter/index.html

Если вы обеспокоены этим типом атаки, то вам следует зашифровать свою полезную нагрузку с помощью предварительно разделяемого ключа и симметричного шифра, такого как AES-256 или blowfish.

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

1. Когда мы используем https на веб-сайте, пользователь будет знать, что его данные будут переданы через защищенное соединение. Возможно ли дать аналогичную индикацию в мобильном устройстве?

Ответ №2:

Используйте https вместо этого. Ваши данные не являются высокочувствительными, поэтому этого должно быть достаточно. Возможно, вам даже не придется менять код вашего iPhone (кроме изменения URL-адреса), хотя это зависит от сертификата вашего сервера.

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

1. Когда мы используем https на веб-сайте, пользователь будет знать, что его данные будут переданы через защищенное соединение. Возможно ли дать аналогичную индикацию в мобильном устройстве?