#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 на веб-сайте, пользователь будет знать, что его данные будут переданы через защищенное соединение. Возможно ли дать аналогичную индикацию в мобильном устройстве?