Как отправить данные на веб-сервер и узнать, что они поступают из определенного приложения? - PullRequest
2 голосов
/ 21 октября 2010

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

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

Редактировать: Прочитав некоторые ответы здесь, я все еще ничего не понял: если кто-то извлечет IPA и обратный инжиниринг, у него не будет доступа ко всем моим.h и .m, чтобы он мог искать там что-нибудь?

Ответы [ 3 ]

1 голос
/ 21 октября 2010

Вы можете сгенерировать клиентский сертификат для приложения iPhone и использовать взаимную аутентификацию для своего рукопожатия SSL. Затем вы знаете, что данные, отправляемые на сервер, поступают от определенного пользователя приложения и что ваше приложение обменивается данными с правильным сервером.

Что касается вашего отредактированного обновления, да, если кто-то обратный проектирует ваше приложение, он, вероятно, сможет выяснить, как защищены высокие оценки. А если серьезно, сколько неприятностей вы ожидаете, чтобы большинство людей пошло на то, чтобы подделать высокий балл в игре? Вы предлагаете денежный приз или что-то в этом роде?

0 голосов
/ 22 октября 2010

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

Вы можете использовать CommonCrypto - часть iOS SDK с тех пор - навсегда - чтобы фактически генерировать MAC.

0 голосов
/ 21 октября 2010

Если вы используете HTTPS, вы можете просто поместить ключ идентификатора в вашем POST на веб-сервер, либо в виде поля, либо, возможно, заголовка HTTP, который идентифицирует ваше приложение. Все соединение зашифровано, поэтому оно будет защищено. Если вы сделаете это, вы захотите зашифровать ключ даже в вашем двоичном файле и расшифровать его при отправке через соединение, чтобы никто не смог извлечь его с помощью шестнадцатеричного редактора.

...