Другими словами, вам нужен способ отличить действительный запрос клиента от неверного запроса клиента. Это означает, что клиент должен предоставить учетные данные, которые демонстрируют, что запрос поступил из действительного источника.
SSL-сертификаты являются отличным способом подтверждения личности, которую можно проверить. Действительность сертификата SSL может быть подтверждена, если сертификат содержит действительную подпись, созданную другим сертификатом, известным как безопасный, корневым сертификатом. Как отмечалось в других ответах, встроенный сертификат не будет работать, потому что этот сертификат может быть скомпрометирован путем распространения приложения. Как только он скомпрометирован, вы не можете принимать любые запросы, представляющие его, блокируя всех ваших пользователей.
Вместо одного сертификата встроенного приложения вам необходимо выдать отдельный сертификат каждому действительному пользователю. Для этого вам необходимо настроить (или передать на аутсорсинг) центр сертификации и выдать отдельные подписанные сертификаты действующим клиентам. Некоторые из этих сертификатов будут скомпрометированы пользователем - либо потому, что они были взломаны, небрежно или намеренно пытаются обмануть ваш сервис. Вам нужно будет следить за этими украденными сертификатами, помещать их в список отзыва сертификатов (CRL) и отказывать в обслуживании этим скомпрометированным сертификатам. Любой веб-сервер может отклонить соединение на основе CRL.
Это не решает проблемы безопасности, оно просто выводит их из приложения. Кто-то все еще может создать действительный сертификат с помощью социальной инженерии или путем кражи корневого сертификата и изготовления новых подписанных сертификатов. (Это проблемы, с которыми сталкиваются все поставщики PKI.)
Будет хит производительности. Сколько попаданий зависит от количества запросов от приложения. Класс iPhone NSURLConnection обеспечивает поддержку клиентских сертификатов SSL, и клиентские сертификаты могут быть установлены в телефоне по электронной почте или через веб-запрос с проверкой подлинности. Управление инфраструктурой для поддержки клиентских сертификатов потребует больше усилий, чем кодирование ее в приложение.
Кстати, голосование за любой ответ, который вам не нравится, создает пугающий эффект в сообществе. Вы вряд ли получите совет - хороший или плохой - если вы собираетесь нанести удар по репутации каждого.