Для начала я бы сказал, если вы действительно серьезно относитесь к безопасности, надлежащее время и ресурсы для этого и рассматривать его как гражданина первого класса в списке функций. Не просто «включите SSL» и притворитесь, что все в безопасности. Я не предлагаю вам делать это или не делать этого, но я просто чувствую, что должен сказать это, прежде чем продолжить.
Таким образом, вы, вероятно, уже знаете, что WS- * все построено поверх HTTP-запросов, и в любое время, когда вы выполняете множество запросов HTTP, вы, вероятно, найдете ASIHTTPRequest очень полезным на iPhone. Тем не менее, это не даст вам 100% пути.
С точки зрения iPhone в вас есть:
- URL loading system, что высокий уровень API для работы с сетевыми ресурсами любого рода
- CFNetwork C API, который ниже уровня и позволяет вам гораздо больше контроля шифрования потоков и сетевого трафика любым способом по своему усмотрению
- Certificate, Key, and Trust Services, что делать тяжелую работу, а более конкретно the X509 trust policies
На компьютерах Mac вы можете использовать Secure Transport, но насколько я знаю, они не портировали это устройство, поэтому я не стал бы слишком отвлекаться на это, если вы не планируете приносить это на рабочий стол или только в настроении, чтобы узнать все :)
Если вы делаете какой-либо безопасности с WCF, то первое, что вы, вероятно, поняли, что есть many options available to you, но все это сводится к тому, этот короткий список:
- Безопасность транспортного уровня (https) с четкими текстовыми сообщениями (xml/json/...)
- Безопасность на уровне сообщений (зашифрованная почта GE тело) на открытом транспорте (HTTP)
- Обеспеченных сообщений по защищенному транспорту
В последний раз я делал WCF (около года назад) общая рекомендация от Microsoft, казалось, безопасность слоя сообщений над открытый транспорт из-за проблем с брандмауэром/доступом, возникающих при попытке обеспечить транспорт. Однако этот подход предполагал, что все вовлеченные стороны были .NET/WCF. Я считаю, что было бы проще потреблять на устройстве, если бы это была безопасность транспортного уровня HTTPS, с четкими XML-сообщениями или сообщениями JSON. Таким образом, вы можете воспользоваться всеми вещами, запеченными в CFNetwork и NSHTTPRequest, которые Apple сделала.
После того, как вы получите что-то полезное, вы захотите сослаться на Enterprise Deployment Guide и, в частности, на документацию по зачислению в эфир, чтобы вы могли установить сертификаты на устройствах.Помните, что все возможно, и не бойтесь использовать один из этих билетов поддержки Apple, которые приходят с программой :)
EDIT:
я полностью забыл упомянуть GenericKeychain и CryptoExcercise примеров
РЕДАКТИРОВАТЬ 2:
После того, как я получил ниспровержение без видимой причины, я перечитал свой ответ и понял, что я чересчур перепутал, фактически не отвечая на ваш вопрос о том, как открыть файл p12 на устройстве. Вы должны иметь возможность просто [[UIApplication sharedApplication] openURL:urlToP12FileEitherLocalOrRemote]]
и запустить его в ОС для процедуры установки.
Этот вопрос имеет некоторую информацию о нем: http://stackoverflow.com/questions/2244764/iphone-web-service-calls-to-wcf- service-with-certificate-authentication –
Maike9, у вас были какие-то успехи в этом? – dredful