2013-12-02 6 views
2

Возможно ли получить доступ к сертификату, через который приложение подписывается с помощью какого-то неличного API, чтобы шифровать данные для обмена с сервером?Доступ к сертификату (разработка или распространение) от приложения iOS

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

Поскольку каждое приложение iOS подписано с уникальным сертификатом, поэтому каждое приложение может быть идентифицировано таким образом.

Является ли этот метод правильным и возможным?

Есть ли API для доступа к сертификату приложения и выполнения такого расчета?

Спасибо за вашу помощь,

ответ

1

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

Решение может включать в себя выделенный сертификат/закрытый ключ с ресурсами приложения и использование этого сертификата для открытия HTTPS-соединения с аутентификацией клиента. Недостатком является то, что злоумышленник на устройстве джейлбрейка мог бы реконструировать ваше приложение и извлечь секретные ключи для аутентификации на сервере за пределами авторизованного приложения.

Существует много дискуссий по StackOverflow о хранении/распределении конфиденциальных данных в приложении IOS с там плюсами & минусов (например here или here).

+0

Спасибо, я постепенно пришел к тому, что нет надежного и безопасного способа проверки идентификатора приложения с удаленной конечной точки. На самом деле это кажется невозможным! правильно? – anonim

+0

К сожалению, обе ссылки в вашем ответе одинаковы. Не могли бы вы исправить это? – anonim

+0

URL исправлен. Да, нет идеального решения, но безопасность - это компромисс. Вы должны установить курсор в зависимости от ваших ограничений, предполагаемых ресурсов злоумышленника ... – Jcs

Смежные вопросы