Безопасность HTTP-запросов iPhone - PullRequest
2 голосов
/ 06 июля 2010

Я не знаю много об этих вещах, поэтому прошу прощения за NOOBness

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

Но мне интересно, насколько это безопасно?Мой пароль для расшифровки p12 находится в моем коде, и поэтому эта строка не может быть увидена кем-то, кто взломает мои приложения в двоичном виде?Если так, то разве они не смогут дряхнуть p12 и использовать его для отправки вредоносного запроса на мой сервер?

Спасибо

1 Ответ

1 голос
/ 06 июля 2010

Рассматривали ли вы использование HTTPS с аутентификацией по сертификату клиента?Это определенно решит вашу проблему с аутентификацией, но я не уверен, как это работает в iPhone.(Например, в Safari есть проблемы с выбором клиентских сертификатов.) Это может сделать аутентификацию на транспортном уровне (TLS, под HTTP).

Если вы хотите сделать это на уровне сообщений (в пределахHTTP), вы также можете использовать дайджест, который вы подписываете с закрытым ключом в заголовке.Уже есть стандартный заголовок для дайджестов (Content-MD5) для дайджестов, но я бы не рекомендовал MD5 из-за недавно обнаруженных недостатков.Попробуйте SHA-1 или выше, возможно.Эти дайджесты не будут подписаны, поэтому вам понадобится дополнительный заголовок для подписи (например, X-Content-RsaWithSha1) и, возможно, еще один, чтобы отправить сертификат, если сервер не знает, какой сертификат ожидать заранее.Вам также потребуется поддержка чтения и проверки этих пользовательских заголовков на стороне сервера.

Спецификация HTTPSec касается безопасности на уровне сообщений на уровне HTTP, хотя я не знаю ни о какихРеализация на iPhone.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...