Безопасная Коммуникация Между iPhone и Сервером?

Я нашел, что выполнение упражнений в "Маленьком Интригане" действительно помогло заточить рекурсивную сторону сопоставления с образцом моих взглядов и сделало работу в XSLT значительно легче.

7
задан marcgg 16 September 2012 в 14:52
поделиться

5 ответов

Вы можете предоставить механизм быстрого ответа на запрос, если у вас есть контроль над API XML.

Сгенерируйте число и включите его в свое приложение и на сервер. Используйте это как начальное значение для srand () как на клиенте, так и на сервере.

Пусть запрос от клиента включает что-то вроде:

<handshake id="123">12312931</handshake>

там id означает сгенерированное 123 случайное число, а 12312931 - это значение после вызова rand ( ) 123 раза. Значение 123 также должно быть случайно сгенерированным числом (сгенерированным с другим начальным числом!).

Это не надежный ответ на вызов, но он простой и эффективный, и не полагается ни на что, кроме базового Набор библиотек ANSI C.

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

2
ответ дан 7 December 2019 в 14:34
поделиться

Доступ к вашей веб-службе через https с аутентификацией.

0
ответ дан 7 December 2019 в 14:34
поделиться

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

3
ответ дан 7 December 2019 в 14:34
поделиться

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

1
ответ дан 7 December 2019 в 14:34
поделиться

Я думаю, что реальный вопрос, который вам нужно задать, - это насколько ваши данные подвержены риску атаки. Я бы сказал, что в 99% случаев вы будете в порядке с просто обфусцированным URL-адресом, который будет трудно угадать, поскольку шансы среднего пользователя, пытающегося что-либо сделать с ним вне вашего приложения, невелики. Если вы беспокоитесь о том, что конкуренты воруют у вас, я бы предложил кое-что более гнусное:

Настройте в своем приложении так, чтобы ваше приложение и сервер меняли URL-адреса время от времени, может быть, каждые две недели. Затем, если кто-то попытается получить доступ к вашему XML API, он будет вести постоянную битву за выяснение ваших URL-адресов. И в качестве вишенки на торте оставьте старые URL-адреса активными, но пусть они возвращают неверные данные. Я думаю, вы можете дать волю своему воображению и выяснить остальное здесь.

-2
ответ дан 7 December 2019 в 14:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: